@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.
Files changed (119) hide show
  1. package/dist/{chunk-KW7GDLSG.cjs → chunk-262OTU4W.cjs} +14 -14
  2. package/dist/{chunk-KW7GDLSG.cjs.map → chunk-262OTU4W.cjs.map} +1 -1
  3. package/dist/{chunk-I6IWT62M.cjs → chunk-2AHSX63M.cjs} +5 -5
  4. package/dist/{chunk-I6IWT62M.cjs.map → chunk-2AHSX63M.cjs.map} +1 -1
  5. package/dist/{chunk-LQ2R7IA2.cjs → chunk-2EU3TWCW.cjs} +26 -26
  6. package/dist/{chunk-LQ2R7IA2.cjs.map → chunk-2EU3TWCW.cjs.map} +1 -1
  7. package/dist/{chunk-MVY3WDFZ.js → chunk-2ZHVOTSA.js} +2 -2
  8. package/dist/{chunk-UBTOOE55.js → chunk-5OGHZNY5.js} +10 -1
  9. package/dist/chunk-5OGHZNY5.js.map +1 -0
  10. package/dist/{chunk-PUBL2NCH.js → chunk-6EAACE7G.js} +2 -2
  11. package/dist/{chunk-IIPBTWQR.cjs → chunk-7INXXQVK.cjs} +10 -1
  12. package/dist/{chunk-IIPBTWQR.cjs.map → chunk-7INXXQVK.cjs.map} +1 -1
  13. package/dist/{chunk-IVTENGMF.js → chunk-7J4DGFHZ.js} +2 -2
  14. package/dist/{chunk-LL4C2NXG.js → chunk-7SPVAAWE.js} +109 -134
  15. package/dist/{chunk-LL4C2NXG.js.map → chunk-7SPVAAWE.js.map} +1 -1
  16. package/dist/{chunk-NJJWY7SO.js → chunk-BBI7GD2Q.js} +2 -2
  17. package/dist/{chunk-P6M5MN3L.js → chunk-CV624KM6.js} +6 -6
  18. package/dist/{chunk-WQDDSJWN.cjs → chunk-FAOL7EI2.cjs} +11 -11
  19. package/dist/{chunk-WQDDSJWN.cjs.map → chunk-FAOL7EI2.cjs.map} +1 -1
  20. package/dist/{chunk-MI7WNVWX.js → chunk-FISSR67K.js} +6 -6
  21. package/dist/{chunk-BQXHC336.cjs → chunk-IPHH3GKC.cjs} +3 -3
  22. package/dist/{chunk-BQXHC336.cjs.map → chunk-IPHH3GKC.cjs.map} +1 -1
  23. package/dist/{chunk-PV3LXEHJ.js → chunk-J2JLAW2J.js} +3 -3
  24. package/dist/{chunk-RLVJISO4.cjs → chunk-J3DRYWFP.cjs} +61 -61
  25. package/dist/{chunk-RLVJISO4.cjs.map → chunk-J3DRYWFP.cjs.map} +1 -1
  26. package/dist/{chunk-GH5YZSQQ.cjs → chunk-LY7IT5QX.cjs} +9 -9
  27. package/dist/{chunk-GH5YZSQQ.cjs.map → chunk-LY7IT5QX.cjs.map} +1 -1
  28. package/dist/{chunk-K26W23C2.cjs → chunk-MKPJYEOR.cjs} +6 -6
  29. package/dist/{chunk-K26W23C2.cjs.map → chunk-MKPJYEOR.cjs.map} +1 -1
  30. package/dist/{chunk-MOZUJ7IN.js → chunk-MY7663CW.js} +2 -2
  31. package/dist/{chunk-YH627NWE.cjs → chunk-PJ4WHNJH.cjs} +9 -9
  32. package/dist/{chunk-YH627NWE.cjs.map → chunk-PJ4WHNJH.cjs.map} +1 -1
  33. package/dist/{chunk-CHMQCXYO.cjs → chunk-QNJCZGHH.cjs} +37 -37
  34. package/dist/{chunk-CHMQCXYO.cjs.map → chunk-QNJCZGHH.cjs.map} +1 -1
  35. package/dist/{chunk-TFIPJAA5.js → chunk-QOUKB6OJ.js} +3 -3
  36. package/dist/{chunk-YUQNJXSC.js → chunk-QPCPYCU2.js} +2 -2
  37. package/dist/{chunk-DN3GKQ47.cjs → chunk-S3C4RT4O.cjs} +98 -98
  38. package/dist/{chunk-DN3GKQ47.cjs.map → chunk-S3C4RT4O.cjs.map} +1 -1
  39. package/dist/{chunk-MKN6S7SU.cjs → chunk-SYQ4KUXW.cjs} +251 -276
  40. package/dist/chunk-SYQ4KUXW.cjs.map +1 -0
  41. package/dist/{chunk-URU6YKOA.cjs → chunk-U6NODSTY.cjs} +28 -28
  42. package/dist/{chunk-URU6YKOA.cjs.map → chunk-U6NODSTY.cjs.map} +1 -1
  43. package/dist/{chunk-RJU7YCN3.js → chunk-V3K5H4I2.js} +2 -2
  44. package/dist/{chunk-KRBH3PI4.js → chunk-V76TAQ3O.js} +4 -4
  45. package/dist/{chunk-QJHBYNHI.js → chunk-VCA3HNJ2.js} +4 -4
  46. package/dist/{chunk-25JSVBPR.cjs → chunk-WBEF37M5.cjs} +12 -12
  47. package/dist/{chunk-25JSVBPR.cjs.map → chunk-WBEF37M5.cjs.map} +1 -1
  48. package/dist/{chunk-O4XLTA5G.cjs → chunk-XDADNUC5.cjs} +31 -31
  49. package/dist/{chunk-O4XLTA5G.cjs.map → chunk-XDADNUC5.cjs.map} +1 -1
  50. package/dist/{chunk-XARCNHWZ.js → chunk-YHAYMOXR.js} +3 -3
  51. package/dist/components/calendar.cjs +3 -3
  52. package/dist/components/calendar.js +2 -2
  53. package/dist/components/case-studies/index.cjs +9 -9
  54. package/dist/components/case-studies/index.js +3 -3
  55. package/dist/components/chat/hooks/use-jetstream-dialog-subscription.d.ts +1 -7
  56. package/dist/components/chat/hooks/use-jetstream-dialog-subscription.d.ts.map +1 -1
  57. package/dist/components/chat/index.cjs +3 -5
  58. package/dist/components/chat/index.cjs.map +1 -1
  59. package/dist/components/chat/index.js +2 -4
  60. package/dist/components/chat/types/api.types.d.ts +4 -22
  61. package/dist/components/chat/types/api.types.d.ts.map +1 -1
  62. package/dist/components/contact/index.cjs +4 -4
  63. package/dist/components/contact/index.js +3 -3
  64. package/dist/components/docs/index.cjs +6 -6
  65. package/dist/components/docs/index.js +5 -5
  66. package/dist/components/embeds/index.cjs +4 -4
  67. package/dist/components/embeds/index.js +3 -3
  68. package/dist/components/faq/index.cjs +4 -4
  69. package/dist/components/faq/index.js +3 -3
  70. package/dist/components/features/index.cjs +3 -3
  71. package/dist/components/features/index.js +2 -2
  72. package/dist/components/help-center-pages/index.cjs +23 -23
  73. package/dist/components/help-center-pages/index.js +14 -14
  74. package/dist/components/index.cjs +150 -152
  75. package/dist/components/index.cjs.map +1 -1
  76. package/dist/components/index.js +12 -14
  77. package/dist/components/index.js.map +1 -1
  78. package/dist/components/meeting-scheduler/index.cjs +41 -41
  79. package/dist/components/meeting-scheduler/index.js +5 -5
  80. package/dist/components/navigation/index.cjs +3 -3
  81. package/dist/components/navigation/index.js +2 -2
  82. package/dist/components/onboarding-guides/index.cjs +6 -6
  83. package/dist/components/onboarding-guides/index.js +5 -5
  84. package/dist/components/related-content/index.cjs +4 -4
  85. package/dist/components/related-content/index.js +3 -3
  86. package/dist/components/tickets/index.cjs +7 -7
  87. package/dist/components/tickets/index.js +6 -6
  88. package/dist/components/ui/button/button.d.ts +1 -1
  89. package/dist/components/ui/button/button.d.ts.map +1 -1
  90. package/dist/components/ui/file-manager/index.cjs +15 -15
  91. package/dist/components/ui/file-manager/index.js +1 -1
  92. package/dist/components/ui/index.cjs +3 -5
  93. package/dist/components/ui/index.cjs.map +1 -1
  94. package/dist/components/ui/index.js +2 -4
  95. package/dist/index.cjs +3 -5
  96. package/dist/index.cjs.map +1 -1
  97. package/dist/index.js +2 -4
  98. package/package.json +1 -1
  99. package/src/components/chat/hooks/.use-jetstream-dialog-subscription.md +4 -11
  100. package/src/components/chat/hooks/use-jetstream-dialog-subscription.ts +6 -71
  101. package/src/components/chat/types/api.types.ts +4 -22
  102. package/src/components/chat/utils/__tests__/history-merge.test.ts +0 -99
  103. package/src/components/ui/button/button.tsx +9 -0
  104. package/dist/chunk-MKN6S7SU.cjs.map +0 -1
  105. package/dist/chunk-UBTOOE55.js.map +0 -1
  106. /package/dist/{chunk-MVY3WDFZ.js.map → chunk-2ZHVOTSA.js.map} +0 -0
  107. /package/dist/{chunk-PUBL2NCH.js.map → chunk-6EAACE7G.js.map} +0 -0
  108. /package/dist/{chunk-IVTENGMF.js.map → chunk-7J4DGFHZ.js.map} +0 -0
  109. /package/dist/{chunk-NJJWY7SO.js.map → chunk-BBI7GD2Q.js.map} +0 -0
  110. /package/dist/{chunk-P6M5MN3L.js.map → chunk-CV624KM6.js.map} +0 -0
  111. /package/dist/{chunk-MI7WNVWX.js.map → chunk-FISSR67K.js.map} +0 -0
  112. /package/dist/{chunk-PV3LXEHJ.js.map → chunk-J2JLAW2J.js.map} +0 -0
  113. /package/dist/{chunk-MOZUJ7IN.js.map → chunk-MY7663CW.js.map} +0 -0
  114. /package/dist/{chunk-TFIPJAA5.js.map → chunk-QOUKB6OJ.js.map} +0 -0
  115. /package/dist/{chunk-YUQNJXSC.js.map → chunk-QPCPYCU2.js.map} +0 -0
  116. /package/dist/{chunk-RJU7YCN3.js.map → chunk-V3K5H4I2.js.map} +0 -0
  117. /package/dist/{chunk-KRBH3PI4.js.map → chunk-V76TAQ3O.js.map} +0 -0
  118. /package/dist/{chunk-QJHBYNHI.js.map → chunk-VCA3HNJ2.js.map} +0 -0
  119. /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-UBTOOE55.js";
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 { useCallback as useCallback49, useEffect as useEffect84, useRef as useRef68, useState as useState114 } from "react";
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
- requestResync();
52722
+ setReconnectionCount((c) => c + 1);
52741
52723
  }
52742
52724
  };
52743
52725
  document.addEventListener("visibilitychange", onVisibilityChange);
52744
52726
  return () => document.removeEventListener("visibilitychange", onVisibilityChange);
52745
- }, [enabled, requestResync]);
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 useCallback50, useMemo as useMemo49, useRef as useRef70, useState as useState117 } from "react";
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 = useCallback50((id, patch) => {
53308
+ const updateOne = useCallback49((id, patch) => {
53333
53309
  setAttachments((prev) => prev.map((a) => a.id === id ? { ...a, ...patch } : a));
53334
53310
  }, []);
53335
- const removeAttachment = useCallback50((id) => {
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 = useCallback50(() => {
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 = useCallback50(
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 = useCallback50(
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 useCallback51, useEffect as useEffect87, useRef as useRef71, useState as useState118 } from "react";
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 = useCallback51(() => setState(CLOSED), []);
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 useCallback53, useEffect as useEffect89, useRef as useRef74 } from "react";
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 useCallback52, useRef as useRef73 } from "react";
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 = useCallback52(async function* () {
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 = useCallback52(
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 = useCallback52(() => {
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 = useCallback52(() => {
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 = useCallback53((message2) => {
53638
+ const addMessage = useCallback52((message2) => {
53663
53639
  setMessages((prev) => [...prev, message2]);
53664
53640
  }, []);
53665
- const updateLastAssistantMessage = useCallback53((segments) => {
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 = useCallback53(
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 = useCallback53(
53884
+ const handleQuickAction = useCallback52(
53909
53885
  (actionText) => {
53910
53886
  sendMessage(actionText);
53911
53887
  },
53912
53888
  [sendMessage]
53913
53889
  );
53914
- const clearMessages = useCallback53(() => {
53890
+ const clearMessages = useCallback52(() => {
53915
53891
  setMessages([]);
53916
53892
  setIsTyping(false);
53917
53893
  reset();
53918
53894
  }, [reset]);
53919
- const hydrateMessages = useCallback53((history) => {
53895
+ const hydrateMessages = useCallback52((history) => {
53920
53896
  setMessages((prev) => prev.length === 0 ? history : [...history, ...prev]);
53921
53897
  }, []);
53922
- const stopMessage = useCallback53(() => {
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 useCallback55, useMemo as useMemo51, useRef as useRef77 } from "react";
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 useCallback54, useEffect as useEffect91, useMemo as useMemo50, useRef as useRef76, useSyncExternalStore } from "react";
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 = useCallback54(() => store.getSnapshot(dialogId, side), [store, dialogId, side]);
56254
- const getServerSnapshot = useCallback54(() => store.getServerSnapshot(), [store]);
56255
- const subscribe = useCallback54((listener) => store.subscribe(listener), [store]);
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 = useCallback54(() => batcher.flush(), [batcher]);
56274
- const applyEvent = useCallback54(
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 = useCallback54(
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 = useCallback55(
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 = useCallback55(
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 = useCallback55(
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 = useCallback55(
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 = useCallback55(
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 = useCallback55(() => {
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 = useCallback55(() => {
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 = useCallback55(
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 = useCallback55(
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 useCallback56, useEffect as useEffect92, useMemo as useMemo52, useRef as useRef78, useState as useState122 } from "react";
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 = useCallback56((requestId) => {
57406
+ const accumApprove = useCallback55((requestId) => {
57431
57407
  if (!requestId) return;
57432
57408
  return handleApproveRef.current(requestId);
57433
57409
  }, []);
57434
- const accumReject = useCallback56((requestId) => {
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 = useCallback56(
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 = useCallback56(
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 = useCallback56(
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 = useCallback56(() => {
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 = useCallback56(
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 = useCallback56(() => {
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 = useCallback56(() => {
57694
+ const clearMessages = useCallback55(() => {
57719
57695
  mutate((r) => r.clearThread());
57720
57696
  }, [mutate]);
57721
- const selectDialog = useCallback56(
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 = useCallback56(async () => {
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 = useCallback56(
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 = useCallback56(
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 = useCallback56(
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 = useCallback56(async () => {
57786
+ const loadMoreDialogs = useCallback55(async () => {
57811
57787
  if (!dialogsNextCursor) return;
57812
57788
  await loadDialogsPage(dialogsNextCursor);
57813
57789
  }, [dialogsNextCursor, loadDialogsPage]);
57814
- const loadMoreMessages = useCallback56(async () => {
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 = useCallback56(
57794
+ const approveRequest = useCallback55(
57819
57795
  async (requestId) => {
57820
57796
  await handleApproveRef.current(requestId);
57821
57797
  },
57822
57798
  []
57823
57799
  );
57824
- const rejectRequest = useCallback56(
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 = useCallback56(
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 = useCallback56((_ref) => {
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 useCallback57, useMemo as useMemo53, useRef as useRef79 } from "react";
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 = useCallback57(() => activeStateRef.current.stopMessage(), []);
57960
- const clearMessages = useCallback57(
57935
+ const stopMessage = useCallback56(() => activeStateRef.current.stopMessage(), []);
57936
+ const clearMessages = useCallback56(
57961
57937
  () => activeStateRef.current.clearMessages(),
57962
57938
  []
57963
57939
  );
57964
- const sendMessage = useCallback57(
57940
+ const sendMessage = useCallback56(
57965
57941
  (text, opts) => activeStateRef.current.sendMessage(text, opts),
57966
57942
  []
57967
57943
  );
57968
- const discussRef = useCallback57(
57944
+ const discussRef = useCallback56(
57969
57945
  (ref) => activeStateRef.current.discussRef(ref),
57970
57946
  []
57971
57947
  );
57972
- const displayRef = useCallback57(
57948
+ const displayRef = useCallback56(
57973
57949
  (ref) => activeStateRef.current.displayRef(ref),
57974
57950
  []
57975
57951
  );
57976
- const selectDialog = useCallback57(
57952
+ const selectDialog = useCallback56(
57977
57953
  (id) => activeStateRef.current.selectDialog(id),
57978
57954
  []
57979
57955
  );
57980
- const startNewDialog = useCallback57(
57956
+ const startNewDialog = useCallback56(
57981
57957
  () => activeStateRef.current.startNewDialog(),
57982
57958
  []
57983
57959
  );
57984
- const deleteDialog = useCallback57(
57960
+ const deleteDialog = useCallback56(
57985
57961
  (id) => activeStateRef.current.deleteDialog(id),
57986
57962
  []
57987
57963
  );
57988
- const renameDialog = useCallback57(
57964
+ const renameDialog = useCallback56(
57989
57965
  (id, title) => activeStateRef.current.renameDialog(id, title),
57990
57966
  []
57991
57967
  );
57992
- const archiveDialog = useCallback57(
57968
+ const archiveDialog = useCallback56(
57993
57969
  (id) => activeStateRef.current.archiveDialog(id),
57994
57970
  []
57995
57971
  );
57996
- const loadMoreDialogs = useCallback57(
57972
+ const loadMoreDialogs = useCallback56(
57997
57973
  () => activeStateRef.current.loadMoreDialogs(),
57998
57974
  []
57999
57975
  );
58000
- const setDialogScope = useCallback57(
57976
+ const setDialogScope = useCallback56(
58001
57977
  (scope) => activeStateRef.current.setDialogScope?.(scope),
58002
57978
  []
58003
57979
  );
58004
- const reloadDialogs = useCallback57(
57980
+ const reloadDialogs = useCallback56(
58005
57981
  () => activeStateRef.current.reloadDialogs(),
58006
57982
  []
58007
57983
  );
58008
- const loadMoreMessages = useCallback57(
57984
+ const loadMoreMessages = useCallback56(
58009
57985
  () => activeStateRef.current.loadMoreMessages(),
58010
57986
  []
58011
57987
  );
58012
- const approveRequest = useCallback57(
57988
+ const approveRequest = useCallback56(
58013
57989
  (requestId) => activeStateRef.current.approveRequest(requestId),
58014
57990
  []
58015
57991
  );
58016
- const rejectRequest = useCallback57(
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 useCallback59, useEffect as useEffect93, useMemo as useMemo55, useRef as useRef81, useState as useState124 } from "react";
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 useCallback58, useMemo as useMemo54, useRef as useRef80, useState as useState123 } from "react";
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 = useCallback58(
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 = useCallback58(async () => {
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 = useCallback58(
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 = useCallback58(() => {
58495
+ const openArchive = useCallback57(() => {
58520
58496
  setArchiveOpen(true);
58521
58497
  void loadArchivedPage();
58522
58498
  }, [loadArchivedPage]);
58523
- const closeArchive = useCallback58(() => setArchiveOpen(false), []);
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 = useCallback58(
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 = useCallback58(
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 = useCallback58(async () => {
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 = useCallback58(() => {
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 = useCallback58(() => {
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 = useCallback59(
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 = useCallback59(
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 = useCallback59((item) => {
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 = useCallback59((value) => {
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 = useCallback59(() => {
59184
+ const openContextPicker = useCallback58(() => {
59209
59185
  setMentionQuery(null);
59210
59186
  setContextPickerOpen(true);
59211
59187
  }, []);
59212
- const closeContextPicker = useCallback59(() => {
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 = useCallback59((query) => {
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 = useCallback59(() => setIsOpen(false), [setIsOpen]);
59225
- const handleNavigationClose = useCallback59(() => {
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 = useCallback59(
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 = useCallback59(
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 = useCallback59(() => setIsOpen(true), [setIsOpen]);
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 = useCallback59((node) => {
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 = useCallback59(() => {
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 = useCallback59(() => {
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-LL4C2NXG.js.map
61103
+ //# sourceMappingURL=chunk-7SPVAAWE.js.map