@flamingo-stack/openframe-frontend-core 0.0.726 → 0.0.727

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 (87) hide show
  1. package/dist/{chunk-3XDVGHL4.js → chunk-33AFAVBF.js} +2 -2
  2. package/dist/{chunk-R3BOJNZI.cjs → chunk-3D2SCG2E.cjs} +16 -16
  3. package/dist/{chunk-RSE3MU4G.cjs → chunk-3N3QA47Y.cjs} +11 -11
  4. package/dist/{chunk-COFT3YPA.js → chunk-3Q7ZNY4B.js} +5 -5
  5. package/dist/{chunk-3UZET2G7.js → chunk-4FQ5ZICE.js} +2 -2
  6. package/dist/{chunk-Q2G7NVFH.cjs → chunk-AM2RHT3H.cjs} +280 -280
  7. package/dist/{chunk-NZYMMYWN.js → chunk-AU4WWLFP.js} +1 -1
  8. package/dist/{chunk-RVSNXG6J.cjs → chunk-BKTV3VOD.cjs} +483 -418
  9. package/dist/{chunk-4ND65E2B.cjs → chunk-BMOEUIFI.cjs} +35 -35
  10. package/dist/{chunk-JYJBL7GD.js → chunk-C6Y22J32.js} +1 -1
  11. package/dist/{chunk-DXDLCYCM.cjs → chunk-CGL3TJ2A.cjs} +3 -3
  12. package/dist/{chunk-SBPPM65Y.js → chunk-CIAAU44V.js} +257 -192
  13. package/dist/{chunk-X2PG6XWF.cjs → chunk-CNBGSWLN.cjs} +9 -9
  14. package/dist/{chunk-4VRHDFF2.js → chunk-FIKAJKPE.js} +1 -1
  15. package/dist/{chunk-MZ3TMXIX.cjs → chunk-FLCYWEEB.cjs} +3 -3
  16. package/dist/{chunk-YVWJ3TRY.js → chunk-GKJFSE72.js} +5 -5
  17. package/dist/{chunk-NLWIBA55.js → chunk-HVMH67Z7.js} +3 -3
  18. package/dist/{chunk-MQ3ZM7FJ.js → chunk-J274GOBJ.js} +1 -1
  19. package/dist/{chunk-5SWQ2ZU5.cjs → chunk-MAGVU2HZ.cjs} +26 -26
  20. package/dist/{chunk-VPABPC2M.cjs → chunk-MGVT5RT6.cjs} +29 -56
  21. package/dist/{chunk-C5KMQLJP.js → chunk-N27CSEDR.js} +1 -1
  22. package/dist/{chunk-MZY6LBM5.cjs → chunk-N2PHC6RX.cjs} +3 -3
  23. package/dist/{chunk-AZKVHJA5.js → chunk-NQRFGXDG.js} +2 -2
  24. package/dist/{chunk-XEIDJ6SL.cjs → chunk-QJVG5V46.cjs} +65 -65
  25. package/dist/{chunk-Z3VAFLYK.cjs → chunk-RZFTEUV4.cjs} +9 -9
  26. package/dist/{chunk-EHYAOIE4.cjs → chunk-U6HOC7JD.cjs} +8 -8
  27. package/dist/{chunk-SCTS3EMJ.js → chunk-URDJXB75.js} +3 -3
  28. package/dist/{chunk-MM66P4X4.js → chunk-VTXIY33G.js} +22 -49
  29. package/dist/{chunk-FMFCPX3R.cjs → chunk-WWJOQGSH.cjs} +33 -33
  30. package/dist/{chunk-VKR56R3U.js → chunk-WXL5G7WC.js} +3 -3
  31. package/dist/{cloud-tenants-NH7VE7KE.js → cloud-tenants-65EUPGVC.js} +2 -2
  32. package/dist/{cloud-tenants-5JTQ2ENQ.cjs → cloud-tenants-PT5QPWWU.cjs} +3 -3
  33. package/dist/components/case-studies/index.cjs +14 -14
  34. package/dist/components/case-studies/index.js +3 -3
  35. package/dist/components/chat/assistant-ask-prompts.d.ts +34 -14
  36. package/dist/components/chat/assistant-ask-prompts.d.ts.map +1 -1
  37. package/dist/components/chat/hooks/index.d.ts +1 -1
  38. package/dist/components/chat/hooks/index.d.ts.map +1 -1
  39. package/dist/components/chat/hooks/use-ask-prompts.d.ts +34 -7
  40. package/dist/components/chat/hooks/use-ask-prompts.d.ts.map +1 -1
  41. package/dist/components/chat/index.cjs +2 -4
  42. package/dist/components/chat/index.js +3 -5
  43. package/dist/components/contact/index.cjs +4 -4
  44. package/dist/components/contact/index.js +3 -3
  45. package/dist/components/docs/index.cjs +7 -7
  46. package/dist/components/docs/index.js +6 -6
  47. package/dist/components/embeds/index.cjs +4 -4
  48. package/dist/components/embeds/index.js +3 -3
  49. package/dist/components/faq/faq-ask-card.d.ts +8 -11
  50. package/dist/components/faq/faq-ask-card.d.ts.map +1 -1
  51. package/dist/components/faq/index.cjs +4 -4
  52. package/dist/components/faq/index.js +3 -3
  53. package/dist/components/features/index.cjs +3 -3
  54. package/dist/components/features/index.js +2 -2
  55. package/dist/components/help-center-pages/index.cjs +71 -71
  56. package/dist/components/help-center-pages/index.js +13 -13
  57. package/dist/components/index.cjs +35 -37
  58. package/dist/components/index.js +14 -16
  59. package/dist/components/meeting-scheduler/index.cjs +19 -19
  60. package/dist/components/meeting-scheduler/index.js +2 -2
  61. package/dist/components/navigation/index.cjs +6 -6
  62. package/dist/components/navigation/index.js +5 -5
  63. package/dist/components/onboarding-guides/index.cjs +5 -5
  64. package/dist/components/onboarding-guides/index.js +4 -4
  65. package/dist/components/product-demo/index.cjs +6 -6
  66. package/dist/components/product-demo/index.js +6 -6
  67. package/dist/components/tickets/index.cjs +7 -7
  68. package/dist/components/tickets/index.js +6 -6
  69. package/dist/components/ui/index.cjs +3 -5
  70. package/dist/components/ui/index.js +4 -6
  71. package/dist/{devices-OC7JEI6U.js → devices-J253LQNQ.js} +2 -2
  72. package/dist/{devices-PV76NGQO.cjs → devices-ZPVLATZA.cjs} +4 -4
  73. package/dist/index.cjs +7 -9
  74. package/dist/index.js +8 -10
  75. package/dist/{knowledge-5AYFIVKD.cjs → knowledge-3FAF5T7Q.cjs} +4 -4
  76. package/dist/{knowledge-L7WQ7IEP.js → knowledge-IMTMYURI.js} +2 -2
  77. package/dist/{logs-MGFHGVIE.js → logs-55GOSGVE.js} +2 -2
  78. package/dist/{logs-4F77RJXJ.cjs → logs-UL7BQEXP.cjs} +11 -11
  79. package/dist/{policies-WRDZFNIB.js → policies-KRDF563O.js} +2 -2
  80. package/dist/{policies-VCGM3C5Z.cjs → policies-O5F2XSCY.cjs} +7 -7
  81. package/dist/{software-update-WVG2GDZO.js → software-update-NXSC4OVM.js} +2 -2
  82. package/dist/{software-update-YD2MNL3K.cjs → software-update-R2ASCRWP.cjs} +6 -6
  83. package/package.json +1 -1
  84. package/src/components/chat/assistant-ask-prompts.tsx +84 -39
  85. package/src/components/chat/hooks/index.ts +3 -2
  86. package/src/components/chat/hooks/use-ask-prompts.ts +140 -56
  87. package/src/components/faq/faq-ask-card.tsx +22 -67
@@ -8892,9 +8892,6 @@ function AskCard({
8892
8892
  );
8893
8893
  }
8894
8894
 
8895
- // src/components/chat/assistant-ask-prompts.tsx
8896
-
8897
-
8898
8895
  // src/components/chat/hooks/use-ask-prompts.ts
8899
8896
 
8900
8897
  var ASK_PROMPTS_DEFAULT_COUNT = 3;
@@ -8916,8 +8913,9 @@ function useAskPrompts({
8916
8913
  const assistant = _chunkEWPR7662cjs.useAssistantRuntime.call(void 0, );
8917
8914
  const base = assistantAvailable(assistant) ? assistant.askPromptsUrl : void 0;
8918
8915
  const url = base && enabled ? buildAskPromptsUrl(base, { count, topic, exclude }) : null;
8919
- const { data, isLoading } = _chunkHEQ4GPYEcjs.useSelfFetch.call(void 0, url);
8920
- return { prompts: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _232 => _232.prompts]), () => ( [])), isLoading: !!base && (!enabled || isLoading), supported: !!base };
8916
+ const { data, dataUrl, error } = _chunkHEQ4GPYEcjs.useSelfFetch.call(void 0, url);
8917
+ const landed = url !== null && (dataUrl === url || error);
8918
+ return { prompts: landed ? _nullishCoalesce(_optionalChain([data, 'optionalAccess', _232 => _232.prompts]), () => ( [])) : [], isLoading: !!base && !landed, supported: !!base };
8921
8919
  }
8922
8920
  function useAssistantOpen(topic, onOpen) {
8923
8921
  const assistant = _chunkEWPR7662cjs.useAssistantRuntime.call(void 0, );
@@ -8933,90 +8931,158 @@ function useAssistantOpen(topic, onOpen) {
8933
8931
  [onOpen, runtimeOpen, source, topic]
8934
8932
  );
8935
8933
  }
8936
- var NO_IDS = [];
8937
- function createShownList() {
8938
- const bySurface = /* @__PURE__ */ new Map();
8934
+ function createAskQueue() {
8935
+ const entries = /* @__PURE__ */ new Map();
8939
8936
  const listeners = /* @__PURE__ */ new Set();
8940
- let snapshot = NO_IDS;
8937
+ let next = 0;
8941
8938
  const publish = () => {
8942
- const lists = [...bySurface.values()];
8943
- const next = lists.some((list) => list === null) ? null : lists.flatMap((list) => _nullishCoalesce(list, () => ( [])));
8944
- const same = next === null ? snapshot === null : snapshot !== null && next.join(",") === snapshot.join(",");
8945
- if (same) return;
8946
- snapshot = next === null ? null : next.length > 0 ? next : NO_IDS;
8947
8939
  for (const listener of listeners) listener();
8948
8940
  };
8949
8941
  return {
8950
- set(surface, ids) {
8951
- bySurface.set(surface, ids);
8942
+ enter(surface) {
8943
+ if (entries.has(surface)) return;
8944
+ entries.set(surface, { turn: next++, ids: null });
8952
8945
  publish();
8953
8946
  },
8954
- remove(surface) {
8955
- bySurface.delete(surface);
8947
+ settle(surface, ids) {
8948
+ const entry = entries.get(surface);
8949
+ if (!entry || (_nullishCoalesce(_optionalChain([entry, 'access', _235 => _235.ids, 'optionalAccess', _236 => _236.join, 'call', _237 => _237(",")]), () => ( null))) === (_nullishCoalesce(_optionalChain([ids, 'optionalAccess', _238 => _238.join, 'call', _239 => _239(",")]), () => ( null)))) return;
8950
+ entry.ids = ids;
8956
8951
  publish();
8957
8952
  },
8953
+ leave(surface) {
8954
+ if (entries.delete(surface)) publish();
8955
+ },
8958
8956
  subscribe(listener) {
8959
8957
  listeners.add(listener);
8960
8958
  return () => listeners.delete(listener);
8961
8959
  },
8962
- read: () => snapshot
8960
+ turnOf(surface) {
8961
+ const own = entries.get(surface);
8962
+ if (!own) return null;
8963
+ const shown = [];
8964
+ for (const [other, entry] of entries) {
8965
+ if (other === surface) continue;
8966
+ if (entry.ids === null) {
8967
+ if (entry.turn < own.turn) return null;
8968
+ continue;
8969
+ }
8970
+ shown.push(...entry.ids);
8971
+ }
8972
+ return shown.join(",");
8973
+ }
8963
8974
  };
8964
8975
  }
8965
- var shownLists = /* @__PURE__ */ new Map();
8966
- function useShownList() {
8967
- const scope = _nullishCoalesce(_optionalChain([_chunkEWPR7662cjs.useAssistantRuntime.call(void 0, ), 'optionalAccess', _235 => _235.askPromptsUrl]), () => ( ""));
8968
- let list = shownLists.get(scope);
8969
- if (!list) {
8970
- list = createShownList();
8971
- shownLists.set(scope, list);
8976
+ var askQueues = /* @__PURE__ */ new Map();
8977
+ function useAskQueue() {
8978
+ const scope = _nullishCoalesce(_optionalChain([_chunkEWPR7662cjs.useAssistantRuntime.call(void 0, ), 'optionalAccess', _240 => _240.askPromptsUrl]), () => ( ""));
8979
+ let queue = askQueues.get(scope);
8980
+ if (!queue) {
8981
+ queue = createAskQueue();
8982
+ askQueues.set(scope, queue);
8972
8983
  }
8973
- return list;
8984
+ return queue;
8974
8985
  }
8975
- function useShownAskPrompts(ids) {
8986
+ function useAskSurface({
8987
+ topic,
8988
+ count = ASK_PROMPTS_DEFAULT_COUNT,
8989
+ exclude,
8990
+ enabled = true,
8991
+ onOpen
8992
+ } = {}) {
8993
+ const assistant = _chunkEWPR7662cjs.useAssistantRuntime.call(void 0, );
8976
8994
  const surface = _react.useId.call(void 0, );
8977
- const list = useShownList();
8978
- const key = ids === void 0 ? void 0 : ids === null ? null : ids.join(",");
8995
+ const queue = useAskQueue();
8996
+ const picks = assistantAvailable(assistant) && !!assistant.askPromptsUrl && enabled && exclude !== null;
8979
8997
  _react.useLayoutEffect.call(void 0, () => {
8980
- if (key === void 0) return void 0;
8981
- list.set(surface, key === null ? null : key ? key.split(",") : NO_IDS);
8982
- return () => list.remove(surface);
8983
- }, [list, surface, key]);
8984
- }
8985
- function useShownAskPromptIds() {
8986
- const list = useShownList();
8987
- return _react.useSyncExternalStore.call(void 0, list.subscribe, list.read, () => NO_IDS);
8998
+ if (!picks) return void 0;
8999
+ queue.enter(surface);
9000
+ return () => queue.leave(surface);
9001
+ }, [queue, surface, picks]);
9002
+ const turn = _react.useSyncExternalStore.call(void 0,
9003
+ queue.subscribe,
9004
+ () => queue.turnOf(surface),
9005
+ () => null
9006
+ );
9007
+ const [shownAtTurn, setShownAtTurn] = _react.useState.call(void 0, null);
9008
+ if (picks && turn !== null && shownAtTurn === null) setShownAtTurn(turn);
9009
+ const leftOut = _react.useMemo.call(void 0, () => _nullishCoalesce(exclude, () => ( (shownAtTurn ? shownAtTurn.split(",") : void 0))), [exclude, shownAtTurn]);
9010
+ const { prompts, isLoading, supported } = useAskPrompts({
9011
+ topic,
9012
+ count,
9013
+ exclude: leftOut,
9014
+ // Told exactly what to leave out, a surface needs nobody's pick: it never waits for a turn.
9015
+ enabled: picks && (exclude !== void 0 || shownAtTurn !== null)
9016
+ });
9017
+ const settled = picks && !isLoading ? prompts.map((prompt) => prompt.id).join(",") : null;
9018
+ _react.useLayoutEffect.call(void 0, () => {
9019
+ queue.settle(surface, settled === null ? null : settled ? settled.split(",") : []);
9020
+ }, [queue, surface, settled]);
9021
+ const open = useAssistantOpen(topic, onOpen);
9022
+ const scoped = _react.useMemo.call(void 0, () => assistant ? { ...assistant, open } : null, [assistant, open]);
9023
+ const onAsk = _optionalChain([assistant, 'optionalAccess', _241 => _241.onAsk]);
9024
+ const reportAsk = _react.useCallback.call(void 0, (prompt) => _optionalChain([onAsk, 'optionalCall', _242 => _242({ promptId: prompt.id, topic })]), [onAsk, topic]);
9025
+ return { assistant, scoped, prompts, isLoading: supported && (!picks || isLoading), supported, open, reportAsk };
8988
9026
  }
8989
9027
 
8990
9028
  // src/components/chat/assistant-ask-prompts.tsx
8991
9029
 
9030
+ var DEFAULT_ASK_CARD = {
9031
+ title: "Still deciding?",
9032
+ description: "{assistant} answers from our docs and customer stories."
9033
+ };
9034
+ var fillAssistant = (text2, name) => text2.split("{assistant}").join(name);
8992
9035
  function AssistantAskPrompts({
9036
+ variant = "row",
8993
9037
  topic,
8994
- count = ASK_PROMPTS_DEFAULT_COUNT,
9038
+ count,
9039
+ exclude,
9040
+ enabled,
8995
9041
  label,
8996
9042
  loading = false,
9043
+ title,
9044
+ description,
8997
9045
  onOpen,
8998
9046
  align,
8999
9047
  fadeColor,
9000
9048
  className
9001
9049
  }) {
9050
+ const card = variant === "card";
9002
9051
  const assistant = _chunkEWPR7662cjs.useAssistantRuntime.call(void 0, );
9003
- const { prompts, isLoading, supported } = useAskPrompts({ topic, count });
9004
- const open = useAssistantOpen(topic, onOpen);
9005
- const shown = assistantAvailable(assistant) && supported;
9006
- useShownAskPrompts(shown ? isLoading ? null : prompts.map((prompt) => prompt.id) : void 0);
9007
- const scoped = _react.useMemo.call(void 0, () => assistant ? { ...assistant, open } : null, [assistant, open]);
9008
- if (!assistantAvailable(assistant) || !supported) return null;
9009
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEWPR7662cjs.AssistantRuntimeContext.Provider, { value: scoped, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9052
+ const slots = _nullishCoalesce(_nullishCoalesce(count, () => ( (card ? _optionalChain([assistant, 'optionalAccess', _243 => _243.askCard, 'optionalAccess', _244 => _244.count]) : void 0))), () => ( ASK_PROMPTS_DEFAULT_COUNT));
9053
+ const ask = useAskSurface({ topic, count: slots, exclude, enabled, onOpen });
9054
+ if (!assistantAvailable(assistant)) return null;
9055
+ const shared = {
9056
+ prompts: ask.prompts,
9057
+ loading: ask.isLoading || loading,
9058
+ source: assistant.source,
9059
+ icon: assistant.icon,
9060
+ onOpen: ask.open,
9061
+ onAsk: ask.reportAsk
9062
+ };
9063
+ if (card) {
9064
+ const name = _nullishCoalesce(label, () => ( assistant.name));
9065
+ if (!name) return null;
9066
+ const words2 = _nullishCoalesce(_nullishCoalesce(description, () => ( _optionalChain([assistant, 'access', _245 => _245.askCard, 'optionalAccess', _246 => _246.description]))), () => ( DEFAULT_ASK_CARD.description));
9067
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEWPR7662cjs.AssistantRuntimeContext.Provider, { value: ask.scoped, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9068
+ AskCard,
9069
+ {
9070
+ ...shared,
9071
+ title: fillAssistant(_nullishCoalesce(_nullishCoalesce(title, () => ( _optionalChain([assistant, 'access', _247 => _247.askCard, 'optionalAccess', _248 => _248.title]))), () => ( DEFAULT_ASK_CARD.title)), name),
9072
+ description: words2 ? fillAssistant(words2, name) : void 0,
9073
+ count: ask.supported ? slots : 0,
9074
+ label: name,
9075
+ className
9076
+ }
9077
+ ) });
9078
+ }
9079
+ if (!ask.supported) return null;
9080
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEWPR7662cjs.AssistantRuntimeContext.Provider, { value: ask.scoped, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9010
9081
  AskPrompts,
9011
9082
  {
9012
- prompts,
9013
- loading: isLoading || loading,
9014
- count,
9015
- source: assistant.source,
9083
+ ...shared,
9084
+ count: slots,
9016
9085
  label: _nullishCoalesce(_nullishCoalesce(label, () => ( assistant.name)), () => ( void 0)),
9017
- icon: assistant.icon,
9018
- onOpen: open,
9019
- onAsk: (prompt) => _optionalChain([assistant, 'access', _236 => _236.onAsk, 'optionalCall', _237 => _237({ promptId: prompt.id, topic })]),
9020
9086
  align,
9021
9087
  fadeColor,
9022
9088
  className
@@ -9185,7 +9251,7 @@ function MarqueeWall({
9185
9251
  if (!container || !copy) return;
9186
9252
  const size = axis === "y" ? copy.offsetHeight : copy.offsetWidth;
9187
9253
  copySizeRef.current = size;
9188
- const clone = _optionalChain([trackRef, 'access', _238 => _238.current, 'optionalAccess', _239 => _239.querySelector, 'call', _240 => _240('[data-marquee-copy="clone"]')]);
9254
+ const clone = _optionalChain([trackRef, 'access', _249 => _249.current, 'optionalAccess', _250 => _250.querySelector, 'call', _251 => _251('[data-marquee-copy="clone"]')]);
9189
9255
  wrapSizeRef.current = clone ? axis === "y" ? clone.offsetTop - copy.offsetTop : clone.offsetLeft - copy.offsetLeft : size + (typeof copyGap === "number" ? copyGap : 0);
9190
9256
  const avail = axis === "y" ? container.clientHeight : container.clientWidth;
9191
9257
  setOverflows(size > avail + 1);
@@ -9316,7 +9382,7 @@ function MarqueeWall({
9316
9382
  if (Math.abs(delta) > 3 && !dragMovedRef.current) {
9317
9383
  dragMovedRef.current = true;
9318
9384
  try {
9319
- _optionalChain([containerRef, 'access', _241 => _241.current, 'optionalAccess', _242 => _242.setPointerCapture, 'call', _243 => _243(e.pointerId)]);
9385
+ _optionalChain([containerRef, 'access', _252 => _252.current, 'optionalAccess', _253 => _253.setPointerCapture, 'call', _254 => _254(e.pointerId)]);
9320
9386
  } catch (e19) {
9321
9387
  }
9322
9388
  }
@@ -9333,7 +9399,7 @@ function MarqueeWall({
9333
9399
  dragSuppressUntilRef.current = performance.now() + DRAG_RESUME_MS;
9334
9400
  if (dragMovedRef.current) {
9335
9401
  try {
9336
- _optionalChain([containerRef, 'access', _244 => _244.current, 'optionalAccess', _245 => _245.releasePointerCapture, 'call', _246 => _246(e.pointerId)]);
9402
+ _optionalChain([containerRef, 'access', _255 => _255.current, 'optionalAccess', _256 => _256.releasePointerCapture, 'call', _257 => _257(e.pointerId)]);
9337
9403
  } catch (e20) {
9338
9404
  }
9339
9405
  }
@@ -9665,7 +9731,7 @@ var ChatTicketItem = _react.forwardRef.call(void 0,
9665
9731
  {
9666
9732
  ref,
9667
9733
  type: "button",
9668
- onClick: () => _optionalChain([onClick, 'optionalCall', _247 => _247(ticket.id)]),
9734
+ onClick: () => _optionalChain([onClick, 'optionalCall', _258 => _258(ticket.id)]),
9669
9735
  className: _chunk3ATAYP36cjs.cn.call(void 0,
9670
9736
  "flex h-20 w-full items-center gap-4 px-4",
9671
9737
  "border-b border-ods-border bg-ods-card",
@@ -9935,7 +10001,7 @@ function MingoChatHistoryRow({
9935
10001
  const unread = _nullishCoalesce(dialog.unreadMessagesCount, () => ( 0));
9936
10002
  const hasMenu = !!onRequestRename || !!onRequestArchive || !!onRequestCopyLink || !!onRequestCompact;
9937
10003
  const owner = dialog.owner;
9938
- const hasAvatar = !!(_optionalChain([owner, 'optionalAccess', _248 => _248.name]) || _optionalChain([owner, 'optionalAccess', _249 => _249.avatarUrl]));
10004
+ const hasAvatar = !!(_optionalChain([owner, 'optionalAccess', _259 => _259.name]) || _optionalChain([owner, 'optionalAccess', _260 => _260.avatarUrl]));
9939
10005
  const [menuOpen, setMenuOpen] = _react.useState.call(void 0, false);
9940
10006
  const menuItems = chatDialogMenuItems({
9941
10007
  onCopyLink: onRequestCopyLink && (() => onRequestCopyLink(dialog)),
@@ -9960,11 +10026,11 @@ function MingoChatHistoryRow({
9960
10026
  {
9961
10027
  role: "button",
9962
10028
  tabIndex: 0,
9963
- onClick: () => _optionalChain([onSelect, 'optionalCall', _250 => _250(dialog.id)]),
10029
+ onClick: () => _optionalChain([onSelect, 'optionalCall', _261 => _261(dialog.id)]),
9964
10030
  onKeyDown: (e) => {
9965
10031
  if (e.key === "Enter" || e.key === " ") {
9966
10032
  e.preventDefault();
9967
- _optionalChain([onSelect, 'optionalCall', _251 => _251(dialog.id)]);
10033
+ _optionalChain([onSelect, 'optionalCall', _262 => _262(dialog.id)]);
9968
10034
  }
9969
10035
  },
9970
10036
  className: "flex min-w-0 flex-1 cursor-pointer items-center gap-[var(--spacing-system-xsf)] p-[var(--spacing-system-s)] focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ods-accent",
@@ -10031,8 +10097,8 @@ function MingoChatHistoryRow({
10031
10097
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10032
10098
  "span",
10033
10099
  {
10034
- onClick: () => _optionalChain([onSelect, 'optionalCall', _252 => _252(dialog.id)]),
10035
- title: _optionalChain([owner, 'optionalAccess', _253 => _253.name]) || void 0,
10100
+ onClick: () => _optionalChain([onSelect, 'optionalCall', _263 => _263(dialog.id)]),
10101
+ title: _optionalChain([owner, 'optionalAccess', _264 => _264.name]) || void 0,
10036
10102
  className: _chunk3ATAYP36cjs.cn.call(void 0,
10037
10103
  "absolute inset-0 flex cursor-pointer items-center justify-center transition-opacity",
10038
10104
  hasMenu && (menuOpen ? "pointer-events-none opacity-0" : "md:group-hover/row:pointer-events-none md:group-hover/row:opacity-0 md:peer-[:focus-within]/menu:pointer-events-none md:peer-[:focus-within]/menu:opacity-0")
@@ -10042,9 +10108,9 @@ function MingoChatHistoryRow({
10042
10108
  {
10043
10109
  variant: "round",
10044
10110
  sizePx: 24,
10045
- src: _optionalChain([owner, 'optionalAccess', _254 => _254.avatarUrl]) || void 0,
10046
- alt: _optionalChain([owner, 'optionalAccess', _255 => _255.name]) || void 0,
10047
- fallback: _optionalChain([owner, 'optionalAccess', _256 => _256.name]) || void 0,
10111
+ src: _optionalChain([owner, 'optionalAccess', _265 => _265.avatarUrl]) || void 0,
10112
+ alt: _optionalChain([owner, 'optionalAccess', _266 => _266.name]) || void 0,
10113
+ fallback: _optionalChain([owner, 'optionalAccess', _267 => _267.name]) || void 0,
10048
10114
  initialsClassName: "text-[10px] text-ods-text-secondary"
10049
10115
  }
10050
10116
  )
@@ -10096,7 +10162,7 @@ function MingoChatHistory({
10096
10162
  className
10097
10163
  }) {
10098
10164
  const groups = _react.useMemo.call(void 0, () => groupDialogs(dialogs), [dialogs]);
10099
- const noSearchResults = groups.length === 0 && !!_optionalChain([searchQuery, 'optionalAccess', _257 => _257.trim, 'call', _258 => _258()]);
10165
+ const noSearchResults = groups.length === 0 && !!_optionalChain([searchQuery, 'optionalAccess', _268 => _268.trim, 'call', _269 => _269()]);
10100
10166
  const { scrollRef, fadeTop, fadeBottom, update: updateFade } = useScrollFade();
10101
10167
  const sentinelRef = _react.useRef.call(void 0, null);
10102
10168
  const onLoadMoreRef = _react.useRef.call(void 0, onLoadMore);
@@ -10113,7 +10179,7 @@ function MingoChatHistory({
10113
10179
  const io = new IntersectionObserver(
10114
10180
  ([entry]) => {
10115
10181
  if (entry.isIntersecting && !isLoadingMoreRef.current) {
10116
- _optionalChain([onLoadMoreRef, 'access', _259 => _259.current, 'optionalCall', _260 => _260()]);
10182
+ _optionalChain([onLoadMoreRef, 'access', _270 => _270.current, 'optionalCall', _271 => _271()]);
10117
10183
  }
10118
10184
  },
10119
10185
  { root, rootMargin: "120px", threshold: 0.1 }
@@ -10298,8 +10364,8 @@ function MingoWelcome({
10298
10364
  icon: action.icon,
10299
10365
  variant: action.variant,
10300
10366
  onSelect: action.onClick,
10301
- onHoverStart: () => _optionalChain([onQuickActionHover, 'optionalCall', _261 => _261(action)]),
10302
- onHoverEnd: () => _optionalChain([onQuickActionHoverEnd, 'optionalCall', _262 => _262()])
10367
+ onHoverStart: () => _optionalChain([onQuickActionHover, 'optionalCall', _272 => _272(action)]),
10368
+ onHoverEnd: () => _optionalChain([onQuickActionHoverEnd, 'optionalCall', _273 => _273()])
10303
10369
  })),
10304
10370
  agentSlug,
10305
10371
  rows: 4,
@@ -10352,9 +10418,9 @@ function GuideWelcome({
10352
10418
  props: action.iconProps,
10353
10419
  accent: _nullishCoalesce(_nullishCoalesce(action.accent, () => ( accentFromIdentityIcon(icon))), () => ( "cyan"))
10354
10420
  },
10355
- onSelect: () => _optionalChain([onQuickAction, 'optionalCall', _263 => _263(action)]),
10356
- onHoverStart: () => _optionalChain([onQuickActionHover, 'optionalCall', _264 => _264(action)]),
10357
- onHoverEnd: () => _optionalChain([onQuickActionHoverEnd, 'optionalCall', _265 => _265()])
10421
+ onSelect: () => _optionalChain([onQuickAction, 'optionalCall', _274 => _274(action)]),
10422
+ onHoverStart: () => _optionalChain([onQuickActionHover, 'optionalCall', _275 => _275(action)]),
10423
+ onHoverEnd: () => _optionalChain([onQuickActionHoverEnd, 'optionalCall', _276 => _276()])
10358
10424
  })),
10359
10425
  [quickActions, icon, onQuickAction, onQuickActionHover, onQuickActionHoverEnd]
10360
10426
  );
@@ -10563,7 +10629,7 @@ function MingoArchiveList({
10563
10629
  if (!sentinel || !hasMore || typeof IntersectionObserver === "undefined") return void 0;
10564
10630
  const observer = new IntersectionObserver(
10565
10631
  ([entry]) => {
10566
- if (_optionalChain([entry, 'optionalAccess', _266 => _266.isIntersecting]) && !isLoadingMoreRef.current) _optionalChain([onLoadMoreRef, 'access', _267 => _267.current, 'optionalCall', _268 => _268()]);
10632
+ if (_optionalChain([entry, 'optionalAccess', _277 => _277.isIntersecting]) && !isLoadingMoreRef.current) _optionalChain([onLoadMoreRef, 'access', _278 => _278.current, 'optionalCall', _279 => _279()]);
10567
10633
  },
10568
10634
  { rootMargin: "120px", threshold: 0.1 }
10569
10635
  );
@@ -10582,7 +10648,7 @@ function MingoArchiveList({
10582
10648
  ChatListItem,
10583
10649
  {
10584
10650
  title: dialog.title || "Untitled Chat",
10585
- onClick: () => _optionalChain([onSelectDialog, 'optionalCall', _269 => _269(dialog.id)]),
10651
+ onClick: () => _optionalChain([onSelectDialog, 'optionalCall', _280 => _280(dialog.id)]),
10586
10652
  trailing: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: [
10587
10653
  dialog.timestamp && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-nowrap text-ods-text-secondary text-h6", children: _chunkHP4UUBJCcjs.formatRelativeTime.call(void 0, dialog.timestamp) }),
10588
10654
  dialog.owner && (dialog.owner.name || dialog.owner.avatarUrl) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -10721,7 +10787,7 @@ function ChatHeaderSearchField({
10721
10787
  const finishCollapse = _react.useCallback.call(void 0, () => {
10722
10788
  if (collapsedRef.current) return;
10723
10789
  collapsedRef.current = true;
10724
- _optionalChain([onCollapse, 'optionalCall', _270 => _270()]);
10790
+ _optionalChain([onCollapse, 'optionalCall', _281 => _281()]);
10725
10791
  }, [onCollapse]);
10726
10792
  const beginCollapse = _react.useCallback.call(void 0, () => {
10727
10793
  setExiting(true);
@@ -10802,7 +10868,7 @@ var STATUS_GLYPHS = {
10802
10868
  approval: { icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.ShieldCheckIcon, { className: "text-ods-accent" }), label: "Waiting for approval" }
10803
10869
  };
10804
10870
  function statusFor(dialog, statusOf) {
10805
- return _nullishCoalesce(_optionalChain([statusOf, 'optionalCall', _271 => _271(dialog)]), () => ( ((_nullishCoalesce(dialog.unreadMessagesCount, () => ( 0))) > 0 ? "unread" : void 0)));
10871
+ return _nullishCoalesce(_optionalChain([statusOf, 'optionalCall', _282 => _282(dialog)]), () => ( ((_nullishCoalesce(dialog.unreadMessagesCount, () => ( 0))) > 0 ? "unread" : void 0)));
10806
10872
  }
10807
10873
  function MingoChatRail({
10808
10874
  dialogs,
@@ -10831,8 +10897,8 @@ function MingoChatRail({
10831
10897
  onExpand,
10832
10898
  className
10833
10899
  }) {
10834
- const [searchOpen, setSearchOpen] = _react.useState.call(void 0, !!_optionalChain([searchQuery, 'optionalAccess', _272 => _272.trim, 'call', _273 => _273()]));
10835
- const hasSearch = !!_optionalChain([searchQuery, 'optionalAccess', _274 => _274.trim, 'call', _275 => _275()]);
10900
+ const [searchOpen, setSearchOpen] = _react.useState.call(void 0, !!_optionalChain([searchQuery, 'optionalAccess', _283 => _283.trim, 'call', _284 => _284()]));
10901
+ const hasSearch = !!_optionalChain([searchQuery, 'optionalAccess', _285 => _285.trim, 'call', _286 => _286()]);
10836
10902
  const items = [];
10837
10903
  if (onNewChat) items.push({ id: "new", label: "Start New Chat", icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.ChatPlusIcon, {}), onClick: onNewChat });
10838
10904
  if (onOpenArchive) {
@@ -10889,7 +10955,7 @@ function MingoChatRail({
10889
10955
  if (!sentinel || !hasMore || typeof IntersectionObserver === "undefined") return void 0;
10890
10956
  const observer = new IntersectionObserver(
10891
10957
  ([entry]) => {
10892
- if (_optionalChain([entry, 'optionalAccess', _276 => _276.isIntersecting]) && !isLoadingMoreRef.current) _optionalChain([onLoadMoreRef, 'access', _277 => _277.current, 'optionalCall', _278 => _278()]);
10958
+ if (_optionalChain([entry, 'optionalAccess', _287 => _287.isIntersecting]) && !isLoadingMoreRef.current) _optionalChain([onLoadMoreRef, 'access', _288 => _288.current, 'optionalCall', _289 => _289()]);
10893
10959
  },
10894
10960
  { rootMargin: "120px", threshold: 0.1 }
10895
10961
  );
@@ -11012,7 +11078,7 @@ function MingoChatRailRow({ dialog, active, status, onSelect, menuItems }) {
11012
11078
  {
11013
11079
  active,
11014
11080
  title,
11015
- onClick: () => _optionalChain([onSelect, 'optionalCall', _279 => _279(dialog.id)]),
11081
+ onClick: () => _optionalChain([onSelect, 'optionalCall', _290 => _290(dialog.id)]),
11016
11082
  className: _chunk3ATAYP36cjs.cn.call(void 0, hasMenu && "pr-10"),
11017
11083
  trailing: glyph ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
11018
11084
  "span",
@@ -11146,7 +11212,7 @@ function MingoHistoryRail({
11146
11212
  onRetry,
11147
11213
  className
11148
11214
  }) {
11149
- const hasSearch = !!_optionalChain([searchQuery, 'optionalAccess', _280 => _280.trim, 'call', _281 => _281()]);
11215
+ const hasSearch = !!_optionalChain([searchQuery, 'optionalAccess', _291 => _291.trim, 'call', _292 => _292()]);
11150
11216
  const hasList = dialogs.length > 0 || hasSearch;
11151
11217
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
11152
11218
  "div",
@@ -11295,7 +11361,7 @@ function ChatDialogModals({
11295
11361
  RenameChatModal,
11296
11362
  {
11297
11363
  isOpen: renameTarget != null,
11298
- initialName: _nullishCoalesce(_optionalChain([renameTarget, 'optionalAccess', _282 => _282.title]), () => ( "")),
11364
+ initialName: _nullishCoalesce(_optionalChain([renameTarget, 'optionalAccess', _293 => _293.title]), () => ( "")),
11299
11365
  onClose: () => setRenameTarget(null),
11300
11366
  onSave: onConfirmRename
11301
11367
  }
@@ -11512,7 +11578,7 @@ function ChatAttachmentAddButton({
11512
11578
  const canAddMore = slotsAvailable > 0 && !disabled;
11513
11579
  const handlePick = () => {
11514
11580
  if (!canAddMore) return;
11515
- _optionalChain([fileInputRef, 'access', _283 => _283.current, 'optionalAccess', _284 => _284.click, 'call', _285 => _285()]);
11581
+ _optionalChain([fileInputRef, 'access', _294 => _294.current, 'optionalAccess', _295 => _295.click, 'call', _296 => _296()]);
11516
11582
  };
11517
11583
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
11518
11584
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -11675,7 +11741,7 @@ function ChatContextMemoryBar({
11675
11741
  _react.useEffect.call(void 0, () => {
11676
11742
  if (!open) return void 0;
11677
11743
  const onOutside = (e) => {
11678
- if (_optionalChain([rootRef, 'access', _286 => _286.current, 'optionalAccess', _287 => _287.contains, 'call', _288 => _288(e.target)])) return;
11744
+ if (_optionalChain([rootRef, 'access', _297 => _297.current, 'optionalAccess', _298 => _298.contains, 'call', _299 => _299(e.target)])) return;
11679
11745
  setOpen(false);
11680
11746
  };
11681
11747
  document.addEventListener("mousedown", onOutside, true);
@@ -11978,7 +12044,7 @@ function ChatComposer({
11978
12044
  const locked = lock != null;
11979
12045
  const selected = _nullishCoalesce(selectedContextItems, () => ( []));
11980
12046
  const memory = _nullishCoalesce(contextMemoryItems, () => ( []));
11981
- const entityTypes = _optionalChain([contextPicker, 'optionalAccess', _289 => _289.entityTypes]);
12047
+ const entityTypes = _optionalChain([contextPicker, 'optionalAccess', _300 => _300.entityTypes]);
11982
12048
  const iconByType = _react.useMemo.call(void 0, () => {
11983
12049
  const map = /* @__PURE__ */ new Map();
11984
12050
  for (const t of _nullishCoalesce(entityTypes, () => ( []))) map.set(t.type, t.icon);
@@ -11994,7 +12060,7 @@ function ChatComposer({
11994
12060
  sending,
11995
12061
  placeholder,
11996
12062
  disabled: locked,
11997
- disabledPlaceholder: _optionalChain([lock, 'optionalAccess', _290 => _290.placeholder]),
12063
+ disabledPlaceholder: _optionalChain([lock, 'optionalAccess', _301 => _301.placeholder]),
11998
12064
  previewText,
11999
12065
  fullWidth: true,
12000
12066
  className: "px-0",
@@ -12007,7 +12073,7 @@ function ChatComposer({
12007
12073
  startIcon: contextEnabled ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
12008
12074
  ChatComposerPlusMenu,
12009
12075
  {
12010
- onToggle: () => contextPickerOpen ? _optionalChain([onCloseContextPicker, 'optionalCall', _291 => _291()]) : _optionalChain([onOpenContextPicker, 'optionalCall', _292 => _292()]),
12076
+ onToggle: () => contextPickerOpen ? _optionalChain([onCloseContextPicker, 'optionalCall', _302 => _302()]) : _optionalChain([onOpenContextPicker, 'optionalCall', _303 => _303()]),
12011
12077
  open: contextPickerOpen,
12012
12078
  disabled: attachmentsDisabled || locked,
12013
12079
  dropdown: contextPicker ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -12016,8 +12082,8 @@ function ChatComposer({
12016
12082
  open: contextPickerOpen,
12017
12083
  config: contextPicker,
12018
12084
  selectedItems: selected,
12019
- onToggleItem: (item) => _optionalChain([onToggleContextItem, 'optionalCall', _293 => _293(item)]),
12020
- onClose: () => _optionalChain([onCloseContextPicker, 'optionalCall', _294 => _294()]),
12085
+ onToggleItem: (item) => _optionalChain([onToggleContextItem, 'optionalCall', _304 => _304(item)]),
12086
+ onClose: () => _optionalChain([onCloseContextPicker, 'optionalCall', _305 => _305()]),
12021
12087
  mentionQuery
12022
12088
  }
12023
12089
  ) : void 0
@@ -12208,8 +12274,8 @@ ChatSidebarSkeleton.displayName = "ChatSidebarSkeleton";
12208
12274
  var DialogListItem = _react.forwardRef.call(void 0,
12209
12275
  ({ className, dialog, isActive, onDialogSelect, onClick, ...props }, ref) => {
12210
12276
  const handleClick = (e) => {
12211
- _optionalChain([onDialogSelect, 'optionalCall', _295 => _295(dialog.id)]);
12212
- _optionalChain([onClick, 'optionalCall', _296 => _296(e)]);
12277
+ _optionalChain([onDialogSelect, 'optionalCall', _306 => _306(dialog.id)]);
12278
+ _optionalChain([onClick, 'optionalCall', _307 => _307(e)]);
12213
12279
  };
12214
12280
  const formatTimestamp = (timestamp) => {
12215
12281
  return _chunkTKFTWM3Vcjs.formatDateWithTimezone.call(void 0, timestamp, _chunkTKFTWM3Vcjs.VIEWER_TIMEZONE, "numericDateTime24h");
@@ -12282,7 +12348,7 @@ var ChatSidebar = _react.forwardRef.call(void 0,
12282
12348
  (entries) => {
12283
12349
  const [entry] = entries;
12284
12350
  if (entry.isIntersecting && !isFetchingRef.current) {
12285
- _optionalChain([onLoadMoreRef, 'access', _297 => _297.current, 'optionalCall', _298 => _298()]);
12351
+ _optionalChain([onLoadMoreRef, 'access', _308 => _308.current, 'optionalCall', _309 => _309()]);
12286
12352
  }
12287
12353
  },
12288
12354
  { root: scrollContainer, rootMargin: "100px", threshold: 0.1 }
@@ -12497,7 +12563,7 @@ function OnboardingCarousel({
12497
12563
  " of ",
12498
12564
  steps.length,
12499
12565
  ": ",
12500
- _optionalChain([steps, 'access', _299 => _299[index], 'optionalAccess', _300 => _300.title])
12566
+ _optionalChain([steps, 'access', _310 => _310[index], 'optionalAccess', _311 => _311.title])
12501
12567
  ] }),
12502
12568
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", role: "group", "aria-label": "Choose step", children: steps.map((step, i) => {
12503
12569
  const isCurrent = i === index;
@@ -12602,7 +12668,7 @@ function isForeignOriginHref(href) {
12602
12668
  function runNavigation(runtime, href, path, targetPlatform, fallbackNavigate) {
12603
12669
  const isNewTab = runtime ? _chunkHEQ4GPYEcjs.computeIsNewTab.call(void 0, runtime, href, _nullishCoalesce(targetPlatform, () => ( null))) : false;
12604
12670
  if (isNewTab) {
12605
- if (_optionalChain([runtime, 'optionalAccess', _301 => _301.navigation, 'access', _302 => _302.openExternal])) runtime.navigation.openExternal(href);
12671
+ if (_optionalChain([runtime, 'optionalAccess', _312 => _312.navigation, 'access', _313 => _313.openExternal])) runtime.navigation.openExternal(href);
12606
12672
  else window.open(href, "_blank", NEW_TAB_FEATURES);
12607
12673
  return;
12608
12674
  }
@@ -12610,7 +12676,7 @@ function runNavigation(runtime, href, path, targetPlatform, fallbackNavigate) {
12610
12676
  if (target.includes("#") && _chunkK2JUJ37Dcjs.navigateSamePageHash.call(void 0, target, { headerOffset: _chunkK2JUJ37Dcjs.STICKY_HEADER_OFFSET_PX })) {
12611
12677
  return;
12612
12678
  }
12613
- const handled = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _303 => _303.navigation, 'access', _304 => _304.navigate, 'optionalCall', _305 => _305({ href, path, targetPlatform })]), () => ( false));
12679
+ const handled = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _314 => _314.navigation, 'access', _315 => _315.navigate, 'optionalCall', _316 => _316({ href, path, targetPlatform })]), () => ( false));
12614
12680
  if (!handled) {
12615
12681
  if (fallbackNavigate) fallbackNavigate(target);
12616
12682
  else window.location.assign(target);
@@ -12660,7 +12726,7 @@ function useNavLinkViaRuntime({
12660
12726
  const resolvedHref = resolveHrefForRuntime(href, runtime);
12661
12727
  const isNewTab = _chunkHEQ4GPYEcjs.computeIsNewTab.call(void 0, runtime, resolvedHref, _nullishCoalesce(targetPlatform, () => ( null)));
12662
12728
  const onClick = (e) => {
12663
- _optionalChain([onClickProp, 'optionalCall', _306 => _306(e)]);
12729
+ _optionalChain([onClickProp, 'optionalCall', _317 => _317(e)]);
12664
12730
  if (e.defaultPrevented) return;
12665
12731
  const handled = executeNavigation({
12666
12732
  event: e,
@@ -12670,7 +12736,7 @@ function useNavLinkViaRuntime({
12670
12736
  targetPlatform,
12671
12737
  fallbackNavigate: router.push
12672
12738
  });
12673
- if (handled && !isNewTab && _optionalChain([panel, 'optionalAccess', _307 => _307.closeChat])) panel.closeChat();
12739
+ if (handled && !isNewTab && _optionalChain([panel, 'optionalAccess', _318 => _318.closeChat])) panel.closeChat();
12674
12740
  };
12675
12741
  const attrs = _chunkHEQ4GPYEcjs.newTabAnchorAttrs.call(void 0, isNewTab);
12676
12742
  return {
@@ -12754,11 +12820,11 @@ var DEFAULT_CAPTIONS_PATH = "/api/captions";
12754
12820
  function getCaptionsUrl(entityType, entityId, srtContent, options) {
12755
12821
  if (!srtContent) return void 0;
12756
12822
  const hash = `${srtContent.length}-${srtContent.slice(0, 8).replace(/\s/g, "")}`;
12757
- const variant = _optionalChain([options, 'optionalAccess', _308 => _308.variant]) ? `&variant=${options.variant}` : "";
12823
+ const variant = _optionalChain([options, 'optionalAccess', _319 => _319.variant]) ? `&variant=${options.variant}` : "";
12758
12824
  return `${DEFAULT_CAPTIONS_PATH}/${entityType}/${entityId}?v=${hash}${variant}`;
12759
12825
  }
12760
12826
  function resolveCaptionsBase(endpoints) {
12761
- return _optionalChain([endpoints, 'optionalAccess', _309 => _309.captionsUrlPrefix]) || DEFAULT_CAPTIONS_PATH;
12827
+ return _optionalChain([endpoints, 'optionalAccess', _320 => _320.captionsUrlPrefix]) || DEFAULT_CAPTIONS_PATH;
12762
12828
  }
12763
12829
  function rebaseCaptionsUrl(endpoints, url) {
12764
12830
  if (!url || !url.startsWith(`${DEFAULT_CAPTIONS_PATH}/`)) return url;
@@ -12847,7 +12913,7 @@ TabsContent.displayName = TabsPrimitive.Content.displayName;
12847
12913
  // src/components/features/use-captions.ts
12848
12914
 
12849
12915
  function useCaptions() {
12850
- const endpoints = _nullishCoalesce(_optionalChain([_chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, ), 'optionalAccess', _310 => _310.endpoints]), () => ( null));
12916
+ const endpoints = _nullishCoalesce(_optionalChain([_chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, ), 'optionalAccess', _321 => _321.endpoints]), () => ( null));
12851
12917
  return _react.useMemo.call(void 0,
12852
12918
  () => ({
12853
12919
  forEntity: (entityType, entity) => getEntityCaptionUrls(endpoints, entityType, entity),
@@ -13122,9 +13188,9 @@ function CardsStrip(props) {
13122
13188
  const p = hoverPointerRef.current;
13123
13189
  if (!p.inside) return;
13124
13190
  const el = typeof document !== "undefined" ? document.elementFromPoint(p.x, p.y) : null;
13125
- const cardEl = _optionalChain([el, 'optionalAccess', _311 => _311.closest, 'optionalCall', _312 => _312("[data-strip-card-key]")]);
13126
- const scoped = cardEl && _optionalChain([scrollerRef, 'access', _313 => _313.current, 'optionalAccess', _314 => _314.contains, 'call', _315 => _315(cardEl)]) ? cardEl : null;
13127
- const key = _nullishCoalesce(_optionalChain([scoped, 'optionalAccess', _316 => _316.getAttribute, 'call', _317 => _317("data-strip-card-key")]), () => ( null));
13191
+ const cardEl = _optionalChain([el, 'optionalAccess', _322 => _322.closest, 'optionalCall', _323 => _323("[data-strip-card-key]")]);
13192
+ const scoped = cardEl && _optionalChain([scrollerRef, 'access', _324 => _324.current, 'optionalAccess', _325 => _325.contains, 'call', _326 => _326(cardEl)]) ? cardEl : null;
13193
+ const key = _nullishCoalesce(_optionalChain([scoped, 'optionalAccess', _327 => _327.getAttribute, 'call', _328 => _328("data-strip-card-key")]), () => ( null));
13128
13194
  const current = activeKeyRef.current;
13129
13195
  if (key === current) return;
13130
13196
  if (current !== null) deactivate(current);
@@ -13162,7 +13228,7 @@ function CardsStrip(props) {
13162
13228
  }, [syncHoverToPointer]);
13163
13229
  const seamBuffer = _react.useCallback.call(void 0, () => {
13164
13230
  const half = singleCopyWidthRef.current;
13165
- const viewport = _nullishCoalesce(_optionalChain([scrollerRef, 'access', _318 => _318.current, 'optionalAccess', _319 => _319.clientWidth]), () => ( 0));
13231
+ const viewport = _nullishCoalesce(_optionalChain([scrollerRef, 'access', _329 => _329.current, 'optionalAccess', _330 => _330.clientWidth]), () => ( 0));
13166
13232
  return Math.max(0, Math.min(200, half / 4, half - viewport - TRACK_GAP_PX - 1));
13167
13233
  }, []);
13168
13234
  const mirror = _react.useCallback.call(void 0,
@@ -13186,7 +13252,7 @@ function CardsStrip(props) {
13186
13252
  const scroller = scrollerRef.current;
13187
13253
  if (scroller) scroller.scrollLeft = mirror(pos);
13188
13254
  },
13189
- readBack: () => mirror(_nullishCoalesce(_optionalChain([scrollerRef, 'access', _320 => _320.current, 'optionalAccess', _321 => _321.scrollLeft]), () => ( 0))),
13255
+ readBack: () => mirror(_nullishCoalesce(_optionalChain([scrollerRef, 'access', _331 => _331.current, 'optionalAccess', _332 => _332.scrollLeft]), () => ( 0))),
13190
13256
  onAfterFrame: syncHoverIfScrolled
13191
13257
  });
13192
13258
  const [mountedIdx, setMountedIdx] = _react.useState.call(void 0, () => /* @__PURE__ */ new Set());
@@ -13234,11 +13300,11 @@ function CardsStrip(props) {
13234
13300
  fn = (el) => {
13235
13301
  if (!el) return void 0;
13236
13302
  cardElIdxRef.current.set(el, idx);
13237
- _optionalChain([cardObserverRef, 'access', _322 => _322.current, 'optionalAccess', _323 => _323.observe, 'call', _324 => _324(el)]);
13303
+ _optionalChain([cardObserverRef, 'access', _333 => _333.current, 'optionalAccess', _334 => _334.observe, 'call', _335 => _335(el)]);
13238
13304
  return () => {
13239
13305
  cardElIdxRef.current.delete(el);
13240
13306
  cardElNearRef.current.delete(el);
13241
- _optionalChain([cardObserverRef, 'access', _325 => _325.current, 'optionalAccess', _326 => _326.unobserve, 'call', _327 => _327(el)]);
13307
+ _optionalChain([cardObserverRef, 'access', _336 => _336.current, 'optionalAccess', _337 => _337.unobserve, 'call', _338 => _338(el)]);
13242
13308
  };
13243
13309
  };
13244
13310
  cardRefFns.set(idx, fn);
@@ -13257,7 +13323,7 @@ function CardsStrip(props) {
13257
13323
  const track = trackRef.current;
13258
13324
  if (!scroller || !track) return;
13259
13325
  const firstCard = track.firstElementChild;
13260
- const step = (_nullishCoalesce(_optionalChain([firstCard, 'optionalAccess', _328 => _328.offsetWidth]), () => ( 320))) + TRACK_GAP_PX;
13326
+ const step = (_nullishCoalesce(_optionalChain([firstCard, 'optionalAccess', _339 => _339.offsetWidth]), () => ( 320))) + TRACK_GAP_PX;
13261
13327
  chevronSuppressUntilRef.current = performance.now() + CHEVRON_SUPPRESS_MS;
13262
13328
  if (marqueeActiveRef.current) {
13263
13329
  glideBy((reverse ? -dir : dir) * step);
@@ -13318,7 +13384,7 @@ function CardsStrip(props) {
13318
13384
  {
13319
13385
  ref: (node) => {
13320
13386
  wrapperRef.current = node;
13321
- _optionalChain([rootRef, 'optionalCall', _329 => _329(node)]);
13387
+ _optionalChain([rootRef, 'optionalCall', _340 => _340(node)]);
13322
13388
  },
13323
13389
  className: _chunk3ATAYP36cjs.cn.call(void 0, "flex w-full min-w-0 flex-col gap-6", className),
13324
13390
  children: [
@@ -13493,7 +13559,7 @@ function VideoBitesStrip({
13493
13559
  const filtered = filterPublished ? bites.filter((b) => b.published) : [...bites];
13494
13560
  return filtered.sort(sortComparator);
13495
13561
  }, [bites, filterPublished, sortComparator]);
13496
- const warmup = _chunkHEQ4GPYEcjs.useVideoWarmup.call(void 0, { videoUrl: _optionalChain([items, 'access', _330 => _330[0], 'optionalAccess', _331 => _331.url]) || null });
13562
+ const warmup = _chunkHEQ4GPYEcjs.useVideoWarmup.call(void 0, { videoUrl: _optionalChain([items, 'access', _341 => _341[0], 'optionalAccess', _342 => _342.url]) || null });
13497
13563
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13498
13564
  CardsStrip,
13499
13565
  {
@@ -13560,8 +13626,8 @@ function VideoBiteCard({
13560
13626
  const controlled = active !== void 0;
13561
13627
  const [selfActive, setSelfActive] = _react.useState.call(void 0, false);
13562
13628
  const isActive = controlled ? !!active : selfActive;
13563
- const activate = () => controlled ? _optionalChain([onActivate, 'optionalCall', _332 => _332(key)]) : setSelfActive(true);
13564
- const deactivate = () => controlled ? _optionalChain([onDeactivate, 'optionalCall', _333 => _333(key)]) : setSelfActive(false);
13629
+ const activate = () => controlled ? _optionalChain([onActivate, 'optionalCall', _343 => _343(key)]) : setSelfActive(true);
13630
+ const deactivate = () => controlled ? _optionalChain([onDeactivate, 'optionalCall', _344 => _344(key)]) : setSelfActive(false);
13565
13631
  const titleInputRef = _react.useRef.call(void 0, null);
13566
13632
  _chunkULWVKHSIcjs.useIsomorphicLayoutEffect.call(void 0, () => {
13567
13633
  const el = titleInputRef.current;
@@ -13571,7 +13637,7 @@ function VideoBiteCard({
13571
13637
  });
13572
13638
  const navigate = () => {
13573
13639
  if (bite.onNavigate) bite.onNavigate();
13574
- else _optionalChain([onBiteNavigate, 'optionalCall', _334 => _334(bite, index)]);
13640
+ else _optionalChain([onBiteNavigate, 'optionalCall', _345 => _345(bite, index)]);
13575
13641
  };
13576
13642
  const handlePointerEnter = () => {
13577
13643
  if (!isTouch) activate();
@@ -13596,9 +13662,9 @@ function VideoBiteCard({
13596
13662
  placeholder: "Title (optional)",
13597
13663
  "aria-label": "Bite title",
13598
13664
  rows: 1,
13599
- onChange: (e) => _optionalChain([onTitleChange, 'optionalCall', _335 => _335(e.target.value)]),
13665
+ onChange: (e) => _optionalChain([onTitleChange, 'optionalCall', _346 => _346(e.target.value)]),
13600
13666
  ref: titleInputRef,
13601
- onBlur: (e) => _optionalChain([onTitleCommit, 'optionalCall', _336 => _336(e.target.value)]),
13667
+ onBlur: (e) => _optionalChain([onTitleCommit, 'optionalCall', _347 => _347(e.target.value)]),
13602
13668
  onClick: (e) => e.stopPropagation(),
13603
13669
  className: _chunk3ATAYP36cjs.cn.call(void 0,
13604
13670
  titleClass,
@@ -13675,7 +13741,7 @@ function VideoBiteCard({
13675
13741
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
13676
13742
  "div",
13677
13743
  {
13678
- ref: (node) => _optionalChain([rootRef, 'optionalCall', _337 => _337(node)]),
13744
+ ref: (node) => _optionalChain([rootRef, 'optionalCall', _348 => _348(node)]),
13679
13745
  "aria-hidden": isClone || void 0,
13680
13746
  "data-strip-card-key": key,
13681
13747
  className: _chunk3ATAYP36cjs.cn.call(void 0,
@@ -13730,8 +13796,8 @@ function EntityVideoSection({
13730
13796
  const hasHighlight = !!highlightVideoUrl;
13731
13797
  const hasVideo = hasFullVideo || hasHighlight;
13732
13798
  const derivedCaptions = captionsEntity ? captions.forEntityId(captionsEntity.type, captionsEntity.id) : null;
13733
- const captionsUrl = _nullishCoalesce(captionsUrlProp, () => ( _optionalChain([derivedCaptions, 'optionalAccess', _338 => _338.captionsUrl])));
13734
- const highlightCaptionsUrl = _nullishCoalesce(highlightCaptionsUrlProp, () => ( _optionalChain([derivedCaptions, 'optionalAccess', _339 => _339.highlightCaptionsUrl])));
13799
+ const captionsUrl = _nullishCoalesce(captionsUrlProp, () => ( _optionalChain([derivedCaptions, 'optionalAccess', _349 => _349.captionsUrl])));
13800
+ const highlightCaptionsUrl = _nullishCoalesce(highlightCaptionsUrlProp, () => ( _optionalChain([derivedCaptions, 'optionalAccess', _350 => _350.highlightCaptionsUrl])));
13735
13801
  if (!hasVideo && !videoSummary && (!videoBites || videoBites.length === 0)) {
13736
13802
  return null;
13737
13803
  }
@@ -14049,7 +14115,7 @@ var MediaSkeleton = {
14049
14115
 
14050
14116
  function designDocPeople(doc) {
14051
14117
  const people = [];
14052
- if (_optionalChain([doc, 'access', _340 => _340.author, 'optionalAccess', _341 => _341.full_name]))
14118
+ if (_optionalChain([doc, 'access', _351 => _351.author, 'optionalAccess', _352 => _352.full_name]))
14053
14119
  people.push({
14054
14120
  key: `dri-${_nullishCoalesce(doc.author.id, () => ( doc.author.full_name))}`,
14055
14121
  name: doc.author.full_name,
@@ -14062,7 +14128,7 @@ function designDocPeople(doc) {
14062
14128
  return people;
14063
14129
  }
14064
14130
  function designDocMetaLine(doc) {
14065
- return [_optionalChain([doc, 'access', _342 => _342.author, 'optionalAccess', _343 => _343.full_name]) ? `DRI ${doc.author.full_name}` : null, `updated ${_chunkHEQ4GPYEcjs.formatDateShort.call(void 0, doc.updated_at)}`].filter(Boolean).join(" \xB7 ");
14131
+ return [_optionalChain([doc, 'access', _353 => _353.author, 'optionalAccess', _354 => _354.full_name]) ? `DRI ${doc.author.full_name}` : null, `updated ${_chunkHEQ4GPYEcjs.formatDateShort.call(void 0, doc.updated_at)}`].filter(Boolean).join(" \xB7 ");
14066
14132
  }
14067
14133
  function DesignDocCardSkeleton() {
14068
14134
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -14536,7 +14602,7 @@ function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
14536
14602
  ] }) : null,
14537
14603
  item.preview ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-2 whitespace-pre-wrap break-words text-ods-text-secondary text-h6", children: item.preview }) }) : null
14538
14604
  ] }),
14539
- _optionalChain([anchorProps, 'optionalAccess', _344 => _344.href]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-3.5 w-3.5" }) }) : null
14605
+ _optionalChain([anchorProps, 'optionalAccess', _355 => _355.href]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-3.5 w-3.5" }) }) : null
14540
14606
  ] });
14541
14607
  if (!anchorProps) {
14542
14608
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkHEQ4GPYEcjs.COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
@@ -14564,7 +14630,7 @@ function DataRoomDocCardSkeleton({ className }) {
14564
14630
 
14565
14631
 
14566
14632
  function CampaignCardAdmin({ campaign, className, anchorProps }) {
14567
- const goalsCount = _optionalChain([campaign, 'access', _345 => _345.goals, 'optionalAccess', _346 => _346.length]) || 0;
14633
+ const goalsCount = _optionalChain([campaign, 'access', _356 => _356.goals, 'optionalAccess', _357 => _357.length]) || 0;
14568
14634
  const innerChildren = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
14569
14635
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkHEQ4GPYEcjs.COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Megaphone, { className: "h-5 w-5" }) }),
14570
14636
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkHEQ4GPYEcjs.COMPACT_CARD_TEXT_COL, children: [
@@ -14678,8 +14744,8 @@ function getVendorLogo(vendor) {
14678
14744
  if (vendor.logo) {
14679
14745
  return fixSupabaseStorageUrl(vendor.logo);
14680
14746
  }
14681
- const logoMedia = _optionalChain([vendor, 'access', _347 => _347.vendor_media, 'optionalAccess', _348 => _348.find, 'call', _349 => _349((m) => m.media_type === "logo")]);
14682
- if (_optionalChain([logoMedia, 'optionalAccess', _350 => _350.media_url])) {
14747
+ const logoMedia = _optionalChain([vendor, 'access', _358 => _358.vendor_media, 'optionalAccess', _359 => _359.find, 'call', _360 => _360((m) => m.media_type === "logo")]);
14748
+ if (_optionalChain([logoMedia, 'optionalAccess', _361 => _361.media_url])) {
14683
14749
  return fixSupabaseStorageUrl(logoMedia.media_url);
14684
14750
  }
14685
14751
  return null;
@@ -14748,7 +14814,7 @@ function VendorIcon({
14748
14814
  "flex items-center justify-center uppercase text-h6",
14749
14815
  backgroundStyle === "white" ? "text-[#333333]" : "text-ods-text-secondary"
14750
14816
  ),
14751
- children: _optionalChain([vendor, 'access', _351 => _351.title, 'optionalAccess', _352 => _352.substring, 'call', _353 => _353(0, 2)]) || "??"
14817
+ children: _optionalChain([vendor, 'access', _362 => _362.title, 'optionalAccess', _363 => _363.substring, 'call', _364 => _364(0, 2)]) || "??"
14752
14818
  }
14753
14819
  ) });
14754
14820
  }
@@ -14941,7 +15007,7 @@ function pickFetchedCardHref({
14941
15007
  itemHref,
14942
15008
  allowComposed
14943
15009
  }) {
14944
- if (_optionalChain([composed, 'optionalAccess', _354 => _354.hostOverride])) {
15010
+ if (_optionalChain([composed, 'optionalAccess', _365 => _365.hostOverride])) {
14945
15011
  return { source: "hostOverride", href: composed.href, targetPlatform: composed.targetPlatform };
14946
15012
  }
14947
15013
  if (itemHref) return { source: "item", href: itemHref };
@@ -15003,7 +15069,7 @@ function resolveSourceRowCTA(row, ctx = {}) {
15003
15069
  if (row.path && shouldFallbackToPathNav(row) && !row.externalUrl) {
15004
15070
  const safePath = sanitizePath(row.path);
15005
15071
  if (safePath) {
15006
- const docTarget = row.documentType ? _optionalChain([ctx, 'access', _355 => _355.docPlatformTargets, 'optionalAccess', _356 => _356[row.documentType]]) : void 0;
15072
+ const docTarget = row.documentType ? _optionalChain([ctx, 'access', _366 => _366.docPlatformTargets, 'optionalAccess', _367 => _367[row.documentType]]) : void 0;
15007
15073
  if (docTarget) {
15008
15074
  const seg = docTarget.basePath.split("/").filter(Boolean).join("/");
15009
15075
  const base = `${getPlatformUrl(docTarget.platform)}${seg ? `/${seg}` : ""}/`;
@@ -15072,7 +15138,7 @@ function resolveCardDestination({
15072
15138
  composeContentUrl,
15073
15139
  resolveHref = (href) => href
15074
15140
  }) {
15075
- const refPath = typeof _optionalChain([chatRef, 'access', _357 => _357.metadata, 'optionalAccess', _358 => _358.path]) === "string" && chatRef.metadata.path ? chatRef.metadata.path : null;
15141
+ const refPath = typeof _optionalChain([chatRef, 'access', _368 => _368.metadata, 'optionalAccess', _369 => _369.path]) === "string" && chatRef.metadata.path ? chatRef.metadata.path : null;
15076
15142
  const path = _nullishCoalesce(refPath, () => ( (item ? readFetchedCardPath(item) : null)));
15077
15143
  const cta = resolveSourceRowCTA(
15078
15144
  {
@@ -15089,7 +15155,7 @@ function resolveCardDestination({
15089
15155
  const rowUrl = cta.href ? resolveHref(cta.href) : _nullishCoalesce(chatRef.url, () => ( null));
15090
15156
  const rowPlatform = _nullishCoalesce(_nullishCoalesce(cta.targetPlatform, () => ( chatRef.targetPlatform)), () => ( null));
15091
15157
  if (rowUrl) return { url: rowUrl, targetPlatform: rowPlatform, path, source: "row" };
15092
- if (_optionalChain([entry, 'optionalAccess', _359 => _359.contentRefType]) && item) {
15158
+ if (_optionalChain([entry, 'optionalAccess', _370 => _370.contentRefType]) && item) {
15093
15159
  const choice = pickFetchedCardHref({
15094
15160
  composed: resolveFetchedCardHref({
15095
15161
  contentRefType: entry.contentRefType,
@@ -15097,7 +15163,7 @@ function resolveCardDestination({
15097
15163
  item,
15098
15164
  composeContentUrl
15099
15165
  }),
15100
- itemHref: _nullishCoalesce(_optionalChain([entry, 'access', _360 => _360.fallbackHref, 'optionalCall', _361 => _361(item)]), () => ( null)),
15166
+ itemHref: _nullishCoalesce(_optionalChain([entry, 'access', _371 => _371.fallbackHref, 'optionalCall', _372 => _372(item)]), () => ( null)),
15101
15167
  allowComposed: !entry.noComposedHref
15102
15168
  });
15103
15169
  const url = choice ? _nullishCoalesce(_chunkHEQ4GPYEcjs.safeHref.call(void 0, choice.href), () => ( null)) : null;
@@ -15191,8 +15257,8 @@ function cardMenuGroups(href, discuss, openDetails, externalLink) {
15191
15257
  if (href) {
15192
15258
  items.push({
15193
15259
  id: "open-details",
15194
- label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _362 => _362.label]), () => ( "Open Details")),
15195
- icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _363 => _363.icon]), () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.EyeIcon, { size: 20 }))),
15260
+ label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _373 => _373.label]), () => ( "Open Details")),
15261
+ icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _374 => _374.icon]), () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.EyeIcon, { size: 20 }))),
15196
15262
  // Main row → open the entity (same tab, soft Link nav).
15197
15263
  href,
15198
15264
  // Trailing 40px ↗ side-button → open in a new tab.
@@ -15252,18 +15318,18 @@ function itemVideoMetadata(item) {
15252
15318
  for (const v of vals) if (typeof v === "string" && v.length > 0) return v;
15253
15319
  return void 0;
15254
15320
  };
15255
- const m = _nullishCoalesce(_optionalChain([item, 'optionalAccess', _364 => _364.metadata]), () => ( {}));
15321
+ const m = _nullishCoalesce(_optionalChain([item, 'optionalAccess', _375 => _375.metadata]), () => ( {}));
15256
15322
  const out = {};
15257
- const videoUrl = pick2(m.videoUrl, _optionalChain([item, 'optionalAccess', _365 => _365.custom_video_url]), _optionalChain([item, 'optionalAccess', _366 => _366.main_video_url]));
15258
- const youtubeUrl = pick2(m.youtubeUrl, _optionalChain([item, 'optionalAccess', _367 => _367.youtube_url]), _optionalChain([item, 'optionalAccess', _368 => _368.testimonial_video_url]));
15259
- const highlightVideoUrl = pick2(m.highlightVideoUrl, _optionalChain([item, 'optionalAccess', _369 => _369.highlight_video_url]));
15323
+ const videoUrl = pick2(m.videoUrl, _optionalChain([item, 'optionalAccess', _376 => _376.custom_video_url]), _optionalChain([item, 'optionalAccess', _377 => _377.main_video_url]));
15324
+ const youtubeUrl = pick2(m.youtubeUrl, _optionalChain([item, 'optionalAccess', _378 => _378.youtube_url]), _optionalChain([item, 'optionalAccess', _379 => _379.testimonial_video_url]));
15325
+ const highlightVideoUrl = pick2(m.highlightVideoUrl, _optionalChain([item, 'optionalAccess', _380 => _380.highlight_video_url]));
15260
15326
  const videoPoster = pick2(
15261
15327
  m.videoPoster,
15262
- _optionalChain([item, 'optionalAccess', _370 => _370.main_video_thumbnail]),
15263
- _optionalChain([item, 'optionalAccess', _371 => _371.highlight_video_thumbnail]),
15264
- _optionalChain([item, 'optionalAccess', _372 => _372.featured_image])
15328
+ _optionalChain([item, 'optionalAccess', _381 => _381.main_video_thumbnail]),
15329
+ _optionalChain([item, 'optionalAccess', _382 => _382.highlight_video_thumbnail]),
15330
+ _optionalChain([item, 'optionalAccess', _383 => _383.featured_image])
15265
15331
  );
15266
- const highlightVideoPoster = pick2(m.highlightVideoPoster, _optionalChain([item, 'optionalAccess', _373 => _373.highlight_video_thumbnail]));
15332
+ const highlightVideoPoster = pick2(m.highlightVideoPoster, _optionalChain([item, 'optionalAccess', _384 => _384.highlight_video_thumbnail]));
15267
15333
  if (videoUrl) out.videoUrl = videoUrl;
15268
15334
  if (youtubeUrl) out.youtubeUrl = youtubeUrl;
15269
15335
  if (highlightVideoUrl) out.highlightVideoUrl = highlightVideoUrl;
@@ -15293,15 +15359,15 @@ function fetchedItemDisplayRef(item, chatRef) {
15293
15359
  }
15294
15360
  function fetchedFaqDisplayRef(item, chatRef) {
15295
15361
  const it = item;
15296
- const answer = typeof _optionalChain([it, 'optionalAccess', _374 => _374.answer]) === "string" && it.answer.trim().length > 0 ? it.answer.trim() : null;
15362
+ const answer = typeof _optionalChain([it, 'optionalAccess', _385 => _385.answer]) === "string" && it.answer.trim().length > 0 ? it.answer.trim() : null;
15297
15363
  return {
15298
15364
  type: "faq",
15299
15365
  id: chatRef.id,
15300
15366
  sourceRepo: chatRef.sourceRepo,
15301
- title: typeof _optionalChain([it, 'optionalAccess', _375 => _375.question]) === "string" && it.question ? it.question : chatRef.id,
15367
+ title: typeof _optionalChain([it, 'optionalAccess', _386 => _386.question]) === "string" && it.question ? it.question : chatRef.id,
15302
15368
  url: _nullishCoalesce(chatRef.url, () => ( null)),
15303
15369
  ...answer ? { preview: answer.length > 400 ? `${answer.slice(0, 397)}\u2026` : answer } : {},
15304
- metadata: typeof _optionalChain([it, 'optionalAccess', _376 => _376.section]) === "string" && it.section ? { section: it.section } : {}
15370
+ metadata: typeof _optionalChain([it, 'optionalAccess', _387 => _387.section]) === "string" && it.section ? { section: it.section } : {}
15305
15371
  };
15306
15372
  }
15307
15373
  function HubspotTicketChatCard({
@@ -15309,8 +15375,8 @@ function HubspotTicketChatCard({
15309
15375
  isNewTab,
15310
15376
  discuss
15311
15377
  }) {
15312
- const status = typeof _optionalChain([chatRef, 'access', _377 => _377.metadata, 'optionalAccess', _378 => _378.status]) === "string" ? chatRef.metadata.status : void 0;
15313
- const statusLabel = typeof _optionalChain([chatRef, 'access', _379 => _379.metadata, 'optionalAccess', _380 => _380.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
15378
+ const status = typeof _optionalChain([chatRef, 'access', _388 => _388.metadata, 'optionalAccess', _389 => _389.status]) === "string" ? chatRef.metadata.status : void 0;
15379
+ const statusLabel = typeof _optionalChain([chatRef, 'access', _390 => _390.metadata, 'optionalAccess', _391 => _391.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
15314
15380
  const statusText = _nullishCoalesce(statusLabel, () => ( formatStatusToken(status)));
15315
15381
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15316
15382
  MingoInfoCard,
@@ -15333,7 +15399,7 @@ function FaqChatCard({
15333
15399
  isNewTab,
15334
15400
  discuss
15335
15401
  }) {
15336
- const section = typeof _optionalChain([chatRef, 'access', _381 => _381.metadata, 'optionalAccess', _382 => _382.section]) === "string" ? chatRef.metadata.section.trim() : void 0;
15402
+ const section = typeof _optionalChain([chatRef, 'access', _392 => _392.metadata, 'optionalAccess', _393 => _393.section]) === "string" ? chatRef.metadata.section.trim() : void 0;
15337
15403
  const statusLabel = section && section.length > 0 ? section : "FAQ";
15338
15404
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15339
15405
  MingoInfoCard,
@@ -15353,7 +15419,7 @@ function SlackChatCard({
15353
15419
  isNewTab,
15354
15420
  discuss
15355
15421
  }) {
15356
- const channelName = typeof _optionalChain([chatRef, 'access', _383 => _383.metadata, 'optionalAccess', _384 => _384.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
15422
+ const channelName = typeof _optionalChain([chatRef, 'access', _394 => _394.metadata, 'optionalAccess', _395 => _395.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
15357
15423
  const channelPretty = channelName ? channelName.startsWith("#") ? channelName : `#${channelName}` : void 0;
15358
15424
  const title = channelPretty ? `${chatRef.title} \xB7 ${channelPretty}` : chatRef.title;
15359
15425
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -15396,7 +15462,7 @@ function TrustCenterChatCard({
15396
15462
  isNewTab,
15397
15463
  discuss
15398
15464
  }) {
15399
- const raw = _optionalChain([item, 'optionalAccess', _385 => _385.frameworks]);
15465
+ const raw = _optionalChain([item, 'optionalAccess', _396 => _396.frameworks]);
15400
15466
  const frameworks = Array.isArray(raw) ? raw : [];
15401
15467
  const summary = _chunkHEQ4GPYEcjs.trustFrameworksSummary.call(void 0, frameworks);
15402
15468
  const leadFramework = frameworks[0];
@@ -15445,7 +15511,7 @@ function GenericFinancialChatCard({
15445
15511
  isNewTab,
15446
15512
  discuss
15447
15513
  }) {
15448
- const subtitle = typeof _optionalChain([chatRef, 'access', _386 => _386.metadata, 'optionalAccess', _387 => _387.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
15514
+ const subtitle = typeof _optionalChain([chatRef, 'access', _397 => _397.metadata, 'optionalAccess', _398 => _398.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
15449
15515
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15450
15516
  MingoInfoCard,
15451
15517
  {
@@ -15514,12 +15580,12 @@ function ProductReleaseChatCard({
15514
15580
  discuss
15515
15581
  }) {
15516
15582
  const releaseProps = buildProps(item);
15517
- const status = _optionalChain([item, 'optionalAccess', _388 => _388.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
15583
+ const status = _optionalChain([item, 'optionalAccess', _399 => _399.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
15518
15584
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15519
15585
  EntityMingoCard,
15520
15586
  {
15521
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _389 => _389.title]), () => ( "")),
15522
- description: _optionalChain([item, 'optionalAccess', _390 => _390.summary]) || releaseProps.formattedDate || void 0,
15587
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _400 => _400.title]), () => ( "")),
15588
+ description: _optionalChain([item, 'optionalAccess', _401 => _401.summary]) || releaseProps.formattedDate || void 0,
15523
15589
  cover: releaseProps.coverImage || void 0,
15524
15590
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.Rocket02Icon, { size: 24 }),
15525
15591
  status,
@@ -15536,17 +15602,17 @@ function CampaignChatCard({
15536
15602
  isNewTab,
15537
15603
  discuss
15538
15604
  }) {
15539
- const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _391 => _391.goals])) ? item.goals.length : 0;
15605
+ const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _402 => _402.goals])) ? item.goals.length : 0;
15540
15606
  const meta = [
15541
- _optionalChain([item, 'optionalAccess', _392 => _392.start_date]) ? _chunkHEQ4GPYEcjs.formatDateShort.call(void 0, item.start_date) : null,
15607
+ _optionalChain([item, 'optionalAccess', _403 => _403.start_date]) ? _chunkHEQ4GPYEcjs.formatDateShort.call(void 0, item.start_date) : null,
15542
15608
  goalsCount > 0 ? `${goalsCount} goal${goalsCount !== 1 ? "s" : ""}` : null,
15543
15609
  "Marketing campaign"
15544
15610
  ].filter(Boolean).join(" \xB7 ");
15545
15611
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15546
15612
  EntityMingoCard,
15547
15613
  {
15548
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _393 => _393.name]), () => ( "")),
15549
- description: meta || _optionalChain([item, 'optionalAccess', _394 => _394.description]) || void 0,
15614
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _404 => _404.name]), () => ( "")),
15615
+ description: meta || _optionalChain([item, 'optionalAccess', _405 => _405.description]) || void 0,
15550
15616
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.Megaphone01Icon, { size: 24 }),
15551
15617
  chatRef,
15552
15618
  isNewTab,
@@ -15601,14 +15667,14 @@ function BlogChatCard({
15601
15667
  hasEmbeddedVideo,
15602
15668
  discuss
15603
15669
  }) {
15604
- const category = Array.isArray(_optionalChain([item, 'optionalAccess', _395 => _395.categories])) ? _nullishCoalesce(_optionalChain([item, 'access', _396 => _396.categories, 'access', _397 => _397.find, 'call', _398 => _398((c) => _optionalChain([c, 'optionalAccess', _399 => _399.name])), 'optionalAccess', _400 => _400.name]), () => ( void 0)) : void 0;
15670
+ const category = Array.isArray(_optionalChain([item, 'optionalAccess', _406 => _406.categories])) ? _nullishCoalesce(_optionalChain([item, 'access', _407 => _407.categories, 'access', _408 => _408.find, 'call', _409 => _409((c) => _optionalChain([c, 'optionalAccess', _410 => _410.name])), 'optionalAccess', _411 => _411.name]), () => ( void 0)) : void 0;
15605
15671
  const status = hasEmbeddedVideo ? { label: "Video", variant: "primary" } : category ? { label: category, variant: "grey" } : void 0;
15606
15672
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15607
15673
  EntityMingoCard,
15608
15674
  {
15609
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _401 => _401.title]), () => ( "")),
15610
- description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _402 => _402.summary]), () => ( void 0)),
15611
- cover: entityCover(_optionalChain([item, 'optionalAccess', _403 => _403.featured_image]), ogPlaceholder),
15675
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _412 => _412.title]), () => ( "")),
15676
+ description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _413 => _413.summary]), () => ( void 0)),
15677
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _414 => _414.featured_image]), ogPlaceholder),
15612
15678
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.NewspaperIcon, { size: 24 }),
15613
15679
  status,
15614
15680
  chatRef,
@@ -15625,13 +15691,13 @@ function CaseStudyChatCard({
15625
15691
  ogPlaceholder,
15626
15692
  discuss
15627
15693
  }) {
15628
- const meta = [_optionalChain([item, 'optionalAccess', _404 => _404.msp, 'optionalAccess', _405 => _405.name]), _optionalChain([item, 'optionalAccess', _406 => _406.user, 'optionalAccess', _407 => _407.full_name])].filter(Boolean).join(" \xB7 ");
15694
+ const meta = [_optionalChain([item, 'optionalAccess', _415 => _415.msp, 'optionalAccess', _416 => _416.name]), _optionalChain([item, 'optionalAccess', _417 => _417.user, 'optionalAccess', _418 => _418.full_name])].filter(Boolean).join(" \xB7 ");
15629
15695
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15630
15696
  EntityMingoCard,
15631
15697
  {
15632
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _408 => _408.title]), () => ( "")),
15633
- description: _optionalChain([item, 'optionalAccess', _409 => _409.summary]) || meta || void 0,
15634
- cover: entityCover(_optionalChain([item, 'optionalAccess', _410 => _410.featured_image]), ogPlaceholder),
15698
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _419 => _419.title]), () => ( "")),
15699
+ description: _optionalChain([item, 'optionalAccess', _420 => _420.summary]) || meta || void 0,
15700
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _421 => _421.featured_image]), ogPlaceholder),
15635
15701
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.TrophyIcon, { size: 24 }),
15636
15702
  status: { label: "Case study", variant: "grey" },
15637
15703
  chatRef,
@@ -15648,13 +15714,13 @@ function CustomerInterviewChatCard({
15648
15714
  ogPlaceholder,
15649
15715
  discuss
15650
15716
  }) {
15651
- const meta = [_optionalChain([item, 'optionalAccess', _411 => _411.user, 'optionalAccess', _412 => _412.full_name]), _optionalChain([item, 'optionalAccess', _413 => _413.msp, 'optionalAccess', _414 => _414.name])].filter(Boolean).join(" \xB7 ");
15717
+ const meta = [_optionalChain([item, 'optionalAccess', _422 => _422.user, 'optionalAccess', _423 => _423.full_name]), _optionalChain([item, 'optionalAccess', _424 => _424.msp, 'optionalAccess', _425 => _425.name])].filter(Boolean).join(" \xB7 ");
15652
15718
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15653
15719
  EntityMingoCard,
15654
15720
  {
15655
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _415 => _415.title]), () => ( "")),
15656
- description: _optionalChain([item, 'optionalAccess', _416 => _416.video_summary]) || meta || void 0,
15657
- cover: entityCover(_optionalChain([item, 'optionalAccess', _417 => _417.featured_image]), ogPlaceholder),
15721
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _426 => _426.title]), () => ( "")),
15722
+ description: _optionalChain([item, 'optionalAccess', _427 => _427.video_summary]) || meta || void 0,
15723
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _428 => _428.featured_image]), ogPlaceholder),
15658
15724
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.MicrophoneIcon, { size: 24 }),
15659
15725
  status: { label: "Interview", variant: "grey" },
15660
15726
  chatRef,
@@ -15671,12 +15737,12 @@ function DesignDocChatCard({
15671
15737
  discuss
15672
15738
  }) {
15673
15739
  const displayRef = fetchedItemDisplayRef(item, chatRef);
15674
- const doc = _optionalChain([item, 'optionalAccess', _418 => _418.doc]);
15740
+ const doc = _optionalChain([item, 'optionalAccess', _429 => _429.doc]);
15675
15741
  const readiness = doc ? DESIGN_DOC_READINESS_DISPLAY[designDocReadiness(doc.completion)] : null;
15676
15742
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15677
15743
  MingoInfoCard,
15678
15744
  {
15679
- title: _nullishCoalesce(_optionalChain([doc, 'optionalAccess', _419 => _419.title]), () => ( displayRef.title)),
15745
+ title: _nullishCoalesce(_optionalChain([doc, 'optionalAccess', _430 => _430.title]), () => ( displayRef.title)),
15680
15746
  description: doc ? [designDocMetaLine(doc), formatCompletionLabel(doc.completion)].join(" \xB7 ") : _nullishCoalesce(displayRef.preview, () => ( void 0)),
15681
15747
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.FileContentIcon, { size: 24 }),
15682
15748
  status: readiness ? { label: readiness.label, variant: readiness.scheme === "success" ? "success" : "grey" } : { label: "Design doc", variant: "grey" },
@@ -15693,13 +15759,13 @@ function InvestorUpdateChatCard({
15693
15759
  ogPlaceholder,
15694
15760
  discuss
15695
15761
  }) {
15696
- const title = _optionalChain([item, 'optionalAccess', _420 => _420.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _421 => _421.update_number]), () => ( "?"))}`;
15762
+ const title = _optionalChain([item, 'optionalAccess', _431 => _431.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _432 => _432.update_number]), () => ( "?"))}`;
15697
15763
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15698
15764
  EntityMingoCard,
15699
15765
  {
15700
15766
  title,
15701
- description: _optionalChain([item, 'optionalAccess', _422 => _422.strategic_update]) || _optionalChain([item, 'optionalAccess', _423 => _423.content]) || _chunkHEQ4GPYEcjs.formatInvestorUpdatePeriod.call(void 0, _nullishCoalesce(_optionalChain([item, 'optionalAccess', _424 => _424.period_start]), () => ( null)), _nullishCoalesce(_optionalChain([item, 'optionalAccess', _425 => _425.period_end]), () => ( null))) || void 0,
15702
- cover: entityCover(_optionalChain([item, 'optionalAccess', _426 => _426.featured_image]), ogPlaceholder),
15767
+ description: _optionalChain([item, 'optionalAccess', _433 => _433.strategic_update]) || _optionalChain([item, 'optionalAccess', _434 => _434.content]) || _chunkHEQ4GPYEcjs.formatInvestorUpdatePeriod.call(void 0, _nullishCoalesce(_optionalChain([item, 'optionalAccess', _435 => _435.period_start]), () => ( null)), _nullishCoalesce(_optionalChain([item, 'optionalAccess', _436 => _436.period_end]), () => ( null))) || void 0,
15768
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _437 => _437.featured_image]), ogPlaceholder),
15703
15769
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.PresentationLineIcon, { size: 24 }),
15704
15770
  status: { label: "Investor update", variant: "grey" },
15705
15771
  chatRef,
@@ -15716,12 +15782,12 @@ function OnboardingGuideChatCard({
15716
15782
  ogPlaceholder,
15717
15783
  discuss
15718
15784
  }) {
15719
- const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess', _427 => _427.featured_image])), () => ( entityCover(_optionalChain([item, 'optionalAccess', _428 => _428.main_video_thumbnail])))), () => ( entityCover(_optionalChain([item, 'optionalAccess', _429 => _429.og_image_url]), ogPlaceholder)));
15785
+ const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess', _438 => _438.featured_image])), () => ( entityCover(_optionalChain([item, 'optionalAccess', _439 => _439.main_video_thumbnail])))), () => ( entityCover(_optionalChain([item, 'optionalAccess', _440 => _440.og_image_url]), ogPlaceholder)));
15720
15786
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15721
15787
  EntityMingoCard,
15722
15788
  {
15723
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _430 => _430.title]), () => ( "")),
15724
- description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _431 => _431.summary]), () => ( _optionalChain([item, 'optionalAccess', _432 => _432.description]))), () => ( void 0)),
15789
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _441 => _441.title]), () => ( "")),
15790
+ description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _442 => _442.summary]), () => ( _optionalChain([item, 'optionalAccess', _443 => _443.description]))), () => ( void 0)),
15725
15791
  cover,
15726
15792
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.CompassIcon, { size: 24 }),
15727
15793
  status: { label: "Guide", variant: "grey" },
@@ -15746,9 +15812,9 @@ function ProgramChatCard({
15746
15812
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15747
15813
  EntityMingoCard,
15748
15814
  {
15749
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _433 => _433.title]), () => ( "")),
15750
- description: meta || _optionalChain([item, 'optionalAccess', _434 => _434.description]) || void 0,
15751
- cover: entityCover(_optionalChain([item, 'optionalAccess', _435 => _435.cover_url]), ogPlaceholder),
15815
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _444 => _444.title]), () => ( "")),
15816
+ description: meta || _optionalChain([item, 'optionalAccess', _445 => _445.description]) || void 0,
15817
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _446 => _446.cover_url]), ogPlaceholder),
15752
15818
  fallbackIcon: icon,
15753
15819
  status: { label, variant: "grey" },
15754
15820
  chatRef,
@@ -15765,10 +15831,10 @@ function RoadmapChatCard({
15765
15831
  cardType,
15766
15832
  discuss
15767
15833
  }) {
15768
- const logoUrl = typeof _optionalChain([item, 'optionalAccess', _436 => _436.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
15769
- const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _437 => _437.customItemId]) != null;
15834
+ const logoUrl = typeof _optionalChain([item, 'optionalAccess', _447 => _447.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
15835
+ const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _448 => _448.customItemId]) != null;
15770
15836
  const defaultIcon = cardType === "delivery_item" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.TruckFastIcon, { size: 24 }) : cardType === "internal_task" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.CheckSquareIcon, { size: 24 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.MapIcon, { size: 24 });
15771
- const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHEQ4GPYEcjs.TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _438 => _438.customItemId]), className: "size-6" }) : logoUrl ? (
15837
+ const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHEQ4GPYEcjs.TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _449 => _449.customItemId]), className: "size-6" }) : logoUrl ? (
15772
15838
  // Contained (not full-bleed) so the integration logo keeps its aspect
15773
15839
  // ratio inside the bordered icon box — matches RoadmapCard.
15774
15840
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMGHIV4L6cjs.next_image_default, { src: logoUrl, alt: "", className: "size-6 object-contain", width: 24, height: 24, unoptimized: true })
@@ -15779,10 +15845,10 @@ function RoadmapChatCard({
15779
15845
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15780
15846
  EntityMingoCard,
15781
15847
  {
15782
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _439 => _439.title]), () => ( "")),
15783
- description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _440 => _440.description]), () => ( void 0)),
15848
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _450 => _450.title]), () => ( "")),
15849
+ description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _451 => _451.description]), () => ( void 0)),
15784
15850
  fallbackIcon: icon,
15785
- status: statusPill(_optionalChain([item, 'optionalAccess', _441 => _441.status])),
15851
+ status: statusPill(_optionalChain([item, 'optionalAccess', _452 => _452.status])),
15786
15852
  chatRef,
15787
15853
  isNewTab,
15788
15854
  discuss,
@@ -15798,7 +15864,7 @@ function refHydratedEntry(docType, label, renderRef) {
15798
15864
  bareInline: true,
15799
15865
  contentRefType: docType,
15800
15866
  noComposedHref: true,
15801
- fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess', _442 => _442.url]), () => ( null)),
15867
+ fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess', _453 => _453.url]), () => ( null)),
15802
15868
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoInfoCardSkeleton, {}),
15803
15869
  render: (item, chatRef, opts) => renderRef(fetchedItemDisplayRef(item, chatRef), opts)
15804
15870
  };
@@ -15830,7 +15896,7 @@ function financialRegistryEntries() {
15830
15896
  );
15831
15897
  }
15832
15898
  function refText(ref, key) {
15833
- const value = _optionalChain([ref, 'optionalAccess', _443 => _443[key]]);
15899
+ const value = _optionalChain([ref, 'optionalAccess', _454 => _454[key]]);
15834
15900
  return typeof value === "string" && value.length > 0 ? value : null;
15835
15901
  }
15836
15902
  function VendorGlyph({ title, logoUrl }) {
@@ -15876,7 +15942,7 @@ var REF_GLYPH_CARD_CONFIGS = {
15876
15942
  // rate. A glyph card; it opens the pricing page.
15877
15943
  openframe_price: { label: "OpenFrame price" },
15878
15944
  // A vendor (product) of the OpenMSP directory. A glyph card; it opens the vendor's page there.
15879
- vendor: { label: "Vendor", icon: (ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VendorGlyph, { title: _nullishCoalesce(_optionalChain([ref, 'optionalAccess', _444 => _444.title]), () => ( "")), logoUrl: refText(ref, "logo_url") }) }
15945
+ vendor: { label: "Vendor", icon: (ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VendorGlyph, { title: _nullishCoalesce(_optionalChain([ref, 'optionalAccess', _455 => _455.title]), () => ( "")), logoUrl: refText(ref, "logo_url") }) }
15880
15946
  };
15881
15947
  function sourceGlyph(docType) {
15882
15948
  const { Icon } = resolveSourceIcon({ sourceRepo: defaultTableIdForDocumentType(docType), documentType: docType });
@@ -15895,8 +15961,8 @@ function refGlyphRegistryEntries() {
15895
15961
  title: displayRef.title,
15896
15962
  description: _nullishCoalesce(displayRef.preview, () => ( void 0)),
15897
15963
  cover: entityCover(
15898
- _optionalChain([displayRef, 'access', _445 => _445.metadata, 'optionalAccess', _446 => _446.videoPoster]),
15899
- _nullishCoalesce(_optionalChain([opts, 'access', _447 => _447.extras, 'optionalAccess', _448 => _448.buildOgPlaceholderUrl, 'optionalCall', _449 => _449(_nullishCoalesce(displayRef.title, () => ( "")))]), () => ( null))
15964
+ _optionalChain([displayRef, 'access', _456 => _456.metadata, 'optionalAccess', _457 => _457.videoPoster]),
15965
+ _nullishCoalesce(_optionalChain([opts, 'access', _458 => _458.extras, 'optionalAccess', _459 => _459.buildOgPlaceholderUrl, 'optionalCall', _460 => _460(_nullishCoalesce(displayRef.title, () => ( "")))]), () => ( null))
15900
15966
  ),
15901
15967
  fallbackIcon: glyph(displayRef),
15902
15968
  status: { label: cfg.label, variant: "grey" },
@@ -15911,9 +15977,9 @@ function refGlyphRegistryEntries() {
15911
15977
  }
15912
15978
  function fetchedEmployeeEntryDisplayRef(item, chatRef) {
15913
15979
  const it = item;
15914
- const title = typeof _optionalChain([it, 'optionalAccess', _450 => _450.title]) === "string" && it.title.trim().length > 0 ? it.title.trim() : chatRef.title;
15915
- const author = typeof _optionalChain([it, 'optionalAccess', _451 => _451.author, 'optionalAccess', _452 => _452.full_name]) === "string" ? it.author.full_name.trim() : "";
15916
- const summary = typeof _optionalChain([it, 'optionalAccess', _453 => _453.summary]) === "string" ? it.summary.trim() : "";
15980
+ const title = typeof _optionalChain([it, 'optionalAccess', _461 => _461.title]) === "string" && it.title.trim().length > 0 ? it.title.trim() : chatRef.title;
15981
+ const author = typeof _optionalChain([it, 'optionalAccess', _462 => _462.author, 'optionalAccess', _463 => _463.full_name]) === "string" ? it.author.full_name.trim() : "";
15982
+ const summary = typeof _optionalChain([it, 'optionalAccess', _464 => _464.summary]) === "string" ? it.summary.trim() : "";
15917
15983
  const preview = [author, summary].filter((x) => x.length > 0).join(" \xB7 ");
15918
15984
  return { ...chatRef, title, preview: preview.length > 0 ? preview : chatRef.preview };
15919
15985
  }
@@ -15965,7 +16031,7 @@ function programRegistryEntries() {
15965
16031
  discuss: opts.discuss,
15966
16032
  configKey: cfg.configKey,
15967
16033
  label: cfg.configKey.charAt(0).toUpperCase() + cfg.configKey.slice(1),
15968
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _454 => _454.extras, 'optionalAccess', _455 => _455.buildOgPlaceholderUrl, 'optionalCall', _456 => _456(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _457 => _457.title]), () => ( "")))]), () => ( null))
16034
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _465 => _465.extras, 'optionalAccess', _466 => _466.buildOgPlaceholderUrl, 'optionalCall', _467 => _467(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _468 => _468.title]), () => ( "")))]), () => ( null))
15969
16035
  }
15970
16036
  )
15971
16037
  }));
@@ -15986,7 +16052,7 @@ var ROADMAP_CARD_CONFIGS = {
15986
16052
  // The card's destination IS the ClickUp deep link, derived from the
15987
16053
  // task id post-fetch (the refs frame used to carry it).
15988
16054
  noComposedHref: true,
15989
- fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _458 => _458.id]) != null ? clickupTaskUrl(String(item.id)) : null
16055
+ fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _469 => _469.id]) != null ? clickupTaskUrl(String(item.id)) : null
15990
16056
  }
15991
16057
  };
15992
16058
  function roadmapRegistryEntries() {
@@ -16028,8 +16094,8 @@ var CHAT_CARD_REGISTRY = {
16028
16094
  DeletedDataCard,
16029
16095
  {
16030
16096
  title: chatRef.title && chatRef.title !== chatRef.id ? chatRef.title : null,
16031
- entityLabel: _nullishCoalesce(_optionalChain([chatRef, 'access', _459 => _459.metadata, 'optionalAccess', _460 => _460.entity_label]), () => ( null)),
16032
- recoveryNote: _nullishCoalesce(_optionalChain([chatRef, 'access', _461 => _461.metadata, 'optionalAccess', _462 => _462.recovery_note]), () => ( null))
16097
+ entityLabel: _nullishCoalesce(_optionalChain([chatRef, 'access', _470 => _470.metadata, 'optionalAccess', _471 => _471.entity_label]), () => ( null)),
16098
+ recoveryNote: _nullishCoalesce(_optionalChain([chatRef, 'access', _472 => _472.metadata, 'optionalAccess', _473 => _473.recovery_note]), () => ( null))
16033
16099
  }
16034
16100
  )
16035
16101
  },
@@ -16046,7 +16112,7 @@ var CHAT_CARD_REGISTRY = {
16046
16112
  bareInline: true,
16047
16113
  contentRefType: "faq",
16048
16114
  noComposedHref: true,
16049
- fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _463 => _463.id]) != null ? `/faqs#${faqItemAnchor(item.id)}` : null,
16115
+ fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _474 => _474.id]) != null ? `/faqs#${faqItemAnchor(item.id)}` : null,
16050
16116
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoInfoCardSkeleton, {}),
16051
16117
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, FaqChatCard, { chatRef: fetchedFaqDisplayRef(item, chatRef), isNewTab: opts.isNewTab, discuss: opts.discuss })
16052
16118
  },
@@ -16093,8 +16159,8 @@ var CHAT_CARD_REGISTRY = {
16093
16159
  chatRef,
16094
16160
  isNewTab: opts.isNewTab,
16095
16161
  discuss: opts.discuss,
16096
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _464 => _464.extras, 'optionalAccess', _465 => _465.buildOgPlaceholderUrl, 'optionalCall', _466 => _466(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _467 => _467.title]), () => ( "")))]), () => ( null)),
16097
- hasEmbeddedVideo: _optionalChain([chatRef, 'access', _468 => _468.metadata, 'optionalAccess', _469 => _469.hasEmbeddedVideo]) === true
16162
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _475 => _475.extras, 'optionalAccess', _476 => _476.buildOgPlaceholderUrl, 'optionalCall', _477 => _477(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _478 => _478.title]), () => ( "")))]), () => ( null)),
16163
+ hasEmbeddedVideo: _optionalChain([chatRef, 'access', _479 => _479.metadata, 'optionalAccess', _480 => _480.hasEmbeddedVideo]) === true
16098
16164
  }
16099
16165
  )
16100
16166
  },
@@ -16110,7 +16176,7 @@ var CHAT_CARD_REGISTRY = {
16110
16176
  chatRef,
16111
16177
  isNewTab: opts.isNewTab,
16112
16178
  discuss: opts.discuss,
16113
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _470 => _470.extras, 'optionalAccess', _471 => _471.buildOgPlaceholderUrl, 'optionalCall', _472 => _472(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _473 => _473.title]), () => ( "")))]), () => ( null))
16179
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _481 => _481.extras, 'optionalAccess', _482 => _482.buildOgPlaceholderUrl, 'optionalCall', _483 => _483(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _484 => _484.title]), () => ( "")))]), () => ( null))
16114
16180
  }
16115
16181
  )
16116
16182
  },
@@ -16119,7 +16185,7 @@ var CHAT_CARD_REGISTRY = {
16119
16185
  contentRefType: "design_doc",
16120
16186
  bareInline: true,
16121
16187
  noComposedHref: true,
16122
- fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess', _474 => _474.url]), () => ( null)),
16188
+ fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess', _485 => _485.url]), () => ( null)),
16123
16189
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoInfoCardSkeleton, {}),
16124
16190
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DesignDocChatCard, { item, chatRef, isNewTab: opts.isNewTab, discuss: opts.discuss })
16125
16191
  },
@@ -16135,7 +16201,7 @@ var CHAT_CARD_REGISTRY = {
16135
16201
  chatRef,
16136
16202
  isNewTab: opts.isNewTab,
16137
16203
  discuss: opts.discuss,
16138
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _475 => _475.extras, 'optionalAccess', _476 => _476.buildOgPlaceholderUrl, 'optionalCall', _477 => _477(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _478 => _478.title]), () => ( "")))]), () => ( null))
16204
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _486 => _486.extras, 'optionalAccess', _487 => _487.buildOgPlaceholderUrl, 'optionalCall', _488 => _488(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _489 => _489.title]), () => ( "")))]), () => ( null))
16139
16205
  }
16140
16206
  )
16141
16207
  },
@@ -16145,7 +16211,7 @@ var CHAT_CARD_REGISTRY = {
16145
16211
  bareInline: true,
16146
16212
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHEQ4GPYEcjs.ProductReleaseCardSkeleton, { size: "sm" }),
16147
16213
  render: (item, chatRef, opts) => {
16148
- const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _479 => _479.extras, 'optionalAccess', _480 => _480.buildProductReleaseCardProps]), () => ( _chunkHEQ4GPYEcjs.defaultBuildProductReleaseCardProps));
16214
+ const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _490 => _490.extras, 'optionalAccess', _491 => _491.buildProductReleaseCardProps]), () => ( _chunkHEQ4GPYEcjs.defaultBuildProductReleaseCardProps));
16149
16215
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16150
16216
  ProductReleaseChatCard,
16151
16217
  {
@@ -16171,7 +16237,7 @@ var CHAT_CARD_REGISTRY = {
16171
16237
  chatRef,
16172
16238
  isNewTab: opts.isNewTab,
16173
16239
  discuss: opts.discuss,
16174
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _481 => _481.extras, 'optionalAccess', _482 => _482.buildOgPlaceholderUrl, 'optionalCall', _483 => _483(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _484 => _484.title]), () => ( "")))]), () => ( null))
16240
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _492 => _492.extras, 'optionalAccess', _493 => _493.buildOgPlaceholderUrl, 'optionalCall', _494 => _494(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _495 => _495.title]), () => ( "")))]), () => ( null))
16175
16241
  }
16176
16242
  )
16177
16243
  },
@@ -16189,7 +16255,7 @@ var CHAT_CARD_REGISTRY = {
16189
16255
  chatRef,
16190
16256
  isNewTab: opts.isNewTab,
16191
16257
  discuss: opts.discuss,
16192
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _485 => _485.extras, 'optionalAccess', _486 => _486.buildOgPlaceholderUrl, 'optionalCall', _487 => _487(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _488 => _488.title]), () => ( "")))]), () => ( null))
16258
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _496 => _496.extras, 'optionalAccess', _497 => _497.buildOgPlaceholderUrl, 'optionalCall', _498 => _498(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _499 => _499.title]), () => ( "")))]), () => ( null))
16193
16259
  }
16194
16260
  )
16195
16261
  },
@@ -16200,13 +16266,13 @@ var CHAT_CARD_REGISTRY = {
16200
16266
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignCardAdminSkeleton, {}),
16201
16267
  // No public viewer — synthesize the hub-internal admin URL post-fetch
16202
16268
  // so the wrapper + isNewTab computation see the actual destination.
16203
- fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _489 => _489.id]) ? `/admin/campaigns/${encodeURIComponent(String(item.id))}` : null,
16269
+ fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _500 => _500.id]) ? `/admin/campaigns/${encodeURIComponent(String(item.id))}` : null,
16204
16270
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignChatCard, { item, chatRef, isNewTab: opts.isNewTab, discuss: opts.discuss })
16205
16271
  },
16206
16272
  ...roadmapRegistryEntries()
16207
16273
  };
16208
16274
  function chatCardLabel(docType) {
16209
- return _optionalChain([CHAT_CARD_REGISTRY, 'access', _490 => _490[docType], 'optionalAccess', _491 => _491.label]);
16275
+ return _optionalChain([CHAT_CARD_REGISTRY, 'access', _501 => _501[docType], 'optionalAccess', _502 => _502.label]);
16210
16276
  }
16211
16277
  function ChatCardNavWrap({
16212
16278
  href,
@@ -16222,13 +16288,13 @@ function ChatCardNavWrap({
16222
16288
  if (!href) return;
16223
16289
  const targetEl = e.target;
16224
16290
  const host = e.currentTarget;
16225
- if (!_optionalChain([host, 'optionalAccess', _492 => _492.contains, 'call', _493 => _493(targetEl)])) return;
16226
- if (_optionalChain([targetEl, 'optionalAccess', _494 => _494.closest, 'optionalCall', _495 => _495("button")])) return;
16227
- if (!_optionalChain([targetEl, 'optionalAccess', _496 => _496.closest, 'optionalCall', _497 => _497("a")])) return;
16291
+ if (!_optionalChain([host, 'optionalAccess', _503 => _503.contains, 'call', _504 => _504(targetEl)])) return;
16292
+ if (_optionalChain([targetEl, 'optionalAccess', _505 => _505.closest, 'optionalCall', _506 => _506("button")])) return;
16293
+ if (!_optionalChain([targetEl, 'optionalAccess', _507 => _507.closest, 'optionalCall', _508 => _508("a")])) return;
16228
16294
  const handled = executeNavigation({ event: e, runtime, href, path, targetPlatform, fallbackNavigate: router.push });
16229
16295
  if (!handled) return;
16230
16296
  e.stopPropagation();
16231
- if (!isNewTab && _optionalChain([panel, 'optionalAccess', _498 => _498.closeChat])) panel.closeChat();
16297
+ if (!isNewTab && _optionalChain([panel, 'optionalAccess', _509 => _509.closeChat])) panel.closeChat();
16232
16298
  };
16233
16299
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "contents", onClickCapture, children });
16234
16300
  }
@@ -16244,7 +16310,7 @@ function ChatCardLoader({
16244
16310
  const entry = CHAT_CARD_REGISTRY[chatRef.type];
16245
16311
  const fetchEntry = entry && entry.contentRefType ? entry : null;
16246
16312
  const { item, isLoading, isError, isFetched } = useChatCardItem(
16247
- _nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _499 => _499.contentRefType]), () => ( "")),
16313
+ _nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _510 => _510.contentRefType]), () => ( "")),
16248
16314
  fetchEntry ? chatRef.id : ""
16249
16315
  );
16250
16316
  if (!entry) return null;
@@ -16288,7 +16354,7 @@ function ChatCardLoader({
16288
16354
  isNewTab,
16289
16355
  discuss
16290
16356
  };
16291
- const path = typeof _optionalChain([finalChatRef, 'access', _500 => _500.metadata, 'optionalAccess', _501 => _501.path]) === "string" ? finalChatRef.metadata.path : null;
16357
+ const path = typeof _optionalChain([finalChatRef, 'access', _511 => _511.metadata, 'optionalAccess', _512 => _512.path]) === "string" ? finalChatRef.metadata.path : null;
16292
16358
  const navWrap = (children) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16293
16359
  ChatCardNavWrap,
16294
16360
  {
@@ -16312,7 +16378,7 @@ function ChatCardLoader({
16312
16378
  if (!fetchEntry) {
16313
16379
  return finish(entry.render(void 0, finalChatRef, renderOpts));
16314
16380
  }
16315
- if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: _nullishCoalesce(_optionalChain([fetchEntry, 'access', _502 => _502.skeleton, 'optionalCall', _503 => _503()]), () => ( null)) });
16381
+ if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: _nullishCoalesce(_optionalChain([fetchEntry, 'access', _513 => _513.skeleton, 'optionalCall', _514 => _514()]), () => ( null)) });
16316
16382
  if (!item) {
16317
16383
  if (isError) {
16318
16384
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CardLoadFailure, { label: entry.label, id: finalChatRef.id, detail: "Failed to load" });
@@ -16620,7 +16686,7 @@ function useChunkCatchup({
16620
16686
  if (catchupRun.current === run) {
16621
16687
  if (currentDialogId !== dialogIdRef.current) {
16622
16688
  catchupRun.current = null;
16623
- if (_optionalChain([pendingCatchupRef, 'access', _504 => _504.current, 'optionalAccess', _505 => _505.dialogId]) === currentDialogId) {
16689
+ if (_optionalChain([pendingCatchupRef, 'access', _515 => _515.current, 'optionalAccess', _516 => _516.dialogId]) === currentDialogId) {
16624
16690
  pendingCatchupRef.current = null;
16625
16691
  }
16626
16692
  } else {
@@ -16631,7 +16697,7 @@ function useChunkCatchup({
16631
16697
  if (pending.dialogId === currentDialogId) {
16632
16698
  rearmForQueuedCatchup();
16633
16699
  try {
16634
- await _optionalChain([catchUpChunksRef, 'access', _506 => _506.current, 'optionalCall', _507 => _507(pending.fromSequenceId)]);
16700
+ await _optionalChain([catchUpChunksRef, 'access', _517 => _517.current, 'optionalCall', _518 => _518(pending.fromSequenceId)]);
16635
16701
  } catch (rerunError) {
16636
16702
  console.error("Queued catch-up re-run failed:", rerunError);
16637
16703
  }
@@ -16698,7 +16764,7 @@ function useChunkCatchup({
16698
16764
 
16699
16765
  var EMPTY_FRAME = { messages: [], phase: "idle", typing: false, delayMs: 0 };
16700
16766
  function prefersReducedMotion() {
16701
- return typeof window !== "undefined" && _optionalChain([window, 'access', _508 => _508.matchMedia, 'optionalCall', _509 => _509("(prefers-reduced-motion: reduce)"), 'access', _510 => _510.matches]) === true;
16767
+ return typeof window !== "undefined" && _optionalChain([window, 'access', _519 => _519.matchMedia, 'optionalCall', _520 => _520("(prefers-reduced-motion: reduce)"), 'access', _521 => _521.matches]) === true;
16702
16768
  }
16703
16769
  function useScriptedStream(frames, resetKey, enabled = true) {
16704
16770
  const [index, setIndex] = _react.useState.call(void 0, 0);
@@ -16709,7 +16775,7 @@ function useScriptedStream(frames, resetKey, enabled = true) {
16709
16775
  setIndex(0);
16710
16776
  }
16711
16777
  _react.useEffect.call(void 0, () => {
16712
- const mq = _optionalChain([window, 'access', _511 => _511.matchMedia, 'optionalCall', _512 => _512("(prefers-reduced-motion: reduce)")]);
16778
+ const mq = _optionalChain([window, 'access', _522 => _522.matchMedia, 'optionalCall', _523 => _523("(prefers-reduced-motion: reduce)")]);
16713
16779
  const sync = () => setReducedMotion(mq ? mq.matches : prefersReducedMotion());
16714
16780
  sync();
16715
16781
  if (!mq) return void 0;
@@ -16852,7 +16918,7 @@ function useJetStreamDialogSubscription({
16852
16918
  const lifecycle = _chunkG7SBHMRRcjs.startConnectionLifecycle.call(void 0, {
16853
16919
  conn: sharedConn,
16854
16920
  wsUrl,
16855
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _513 => _513.current, 'optionalCall', _514 => _514()]),
16921
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _524 => _524.current, 'optionalCall', _525 => _525()]),
16856
16922
  backoff: reconnectionBackoffRef.current,
16857
16923
  getFreshUrl: () => getNatsWsUrlRef.current(),
16858
16924
  // JetStream emits 'error' for protocol-level failures (e.g. -ERR Permissions
@@ -16867,7 +16933,7 @@ function useJetStreamDialogSubscription({
16867
16933
  setReconnectionCount((c) => c + 1);
16868
16934
  }
16869
16935
  hadConnectionBeforeRef.current = true;
16870
- _optionalChain([onConnectRef, 'access', _515 => _515.current, 'optionalCall', _516 => _516()]);
16936
+ _optionalChain([onConnectRef, 'access', _526 => _526.current, 'optionalCall', _527 => _527()]);
16871
16937
  }
16872
16938
  if (status === "error") {
16873
16939
  console.warn("[JetStream] NATS protocol error:", evt.data);
@@ -16877,7 +16943,7 @@ function useJetStreamDialogSubscription({
16877
16943
  setIsConnected(false);
16878
16944
  setIsSubscribed(false);
16879
16945
  tearDownSubscription();
16880
- _optionalChain([onDisconnectRef, 'access', _517 => _517.current, 'optionalCall', _518 => _518()]);
16946
+ _optionalChain([onDisconnectRef, 'access', _528 => _528.current, 'optionalCall', _529 => _529()]);
16881
16947
  }
16882
16948
  }
16883
16949
  });
@@ -17003,7 +17069,7 @@ function useJetStreamDialogSubscription({
17003
17069
  }
17004
17070
  subscriptionRef.current = handle;
17005
17071
  setIsSubscribed(true);
17006
- _optionalChain([onSubscribedRef, 'access', _519 => _519.current, 'optionalCall', _520 => _520()]);
17072
+ _optionalChain([onSubscribedRef, 'access', _530 => _530.current, 'optionalCall', _531 => _531()]);
17007
17073
  } catch (e31) {
17008
17074
  if (!cancelled) {
17009
17075
  setIsSubscribed(false);
@@ -17119,20 +17185,20 @@ function useNatsDialogSubscription({
17119
17185
  const tearDownSubscriptions = () => {
17120
17186
  subscriptionRefs.current.forEach((sub) => {
17121
17187
  try {
17122
- _optionalChain([sub, 'optionalAccess', _521 => _521.unsubscribe, 'call', _522 => _522()]);
17188
+ _optionalChain([sub, 'optionalAccess', _532 => _532.unsubscribe, 'call', _533 => _533()]);
17123
17189
  } catch (e33) {
17124
17190
  }
17125
17191
  });
17126
17192
  subscriptionRefs.current.clear();
17127
17193
  lastSubscribedDialogIdRef.current = null;
17128
- _optionalChain([abortControllerRef, 'access', _523 => _523.current, 'optionalAccess', _524 => _524.abort, 'call', _525 => _525()]);
17194
+ _optionalChain([abortControllerRef, 'access', _534 => _534.current, 'optionalAccess', _535 => _535.abort, 'call', _536 => _536()]);
17129
17195
  abortControllerRef.current = null;
17130
17196
  };
17131
17197
  const isDisconnectStatus = (status) => status === "closed" || status === "disconnected";
17132
17198
  const lifecycle = _chunkG7SBHMRRcjs.startConnectionLifecycle.call(void 0, {
17133
17199
  conn: sharedConn,
17134
17200
  wsUrl,
17135
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _526 => _526.current, 'optionalCall', _527 => _527()]),
17201
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _537 => _537.current, 'optionalCall', _538 => _538()]),
17136
17202
  backoff: reconnectionBackoffRef.current,
17137
17203
  getFreshUrl: () => getNatsWsUrlRef.current(),
17138
17204
  shouldRetryOn: isDisconnectStatus,
@@ -17143,7 +17209,7 @@ function useNatsDialogSubscription({
17143
17209
  setReconnectionCount((c) => c + 1);
17144
17210
  }
17145
17211
  hadConnectionBeforeRef.current = true;
17146
- _optionalChain([onConnectRef, 'access', _528 => _528.current, 'optionalCall', _529 => _529()]);
17212
+ _optionalChain([onConnectRef, 'access', _539 => _539.current, 'optionalCall', _540 => _540()]);
17147
17213
  }
17148
17214
  if (status === "error") {
17149
17215
  console.warn("[NATS] protocol error:", evt.data);
@@ -17153,7 +17219,7 @@ function useNatsDialogSubscription({
17153
17219
  setIsConnected(false);
17154
17220
  setIsSubscribed(false);
17155
17221
  tearDownSubscriptions();
17156
- _optionalChain([onDisconnectRef, 'access', _530 => _530.current, 'optionalCall', _531 => _531()]);
17222
+ _optionalChain([onDisconnectRef, 'access', _541 => _541.current, 'optionalCall', _542 => _542()]);
17157
17223
  }
17158
17224
  }
17159
17225
  });
@@ -17184,13 +17250,13 @@ function useNatsDialogSubscription({
17184
17250
  setIsSubscribed(false);
17185
17251
  subscriptionRefs.current.forEach((sub) => {
17186
17252
  try {
17187
- _optionalChain([sub, 'optionalAccess', _532 => _532.unsubscribe, 'call', _533 => _533()]);
17253
+ _optionalChain([sub, 'optionalAccess', _543 => _543.unsubscribe, 'call', _544 => _544()]);
17188
17254
  } catch (e34) {
17189
17255
  }
17190
17256
  });
17191
17257
  subscriptionRefs.current.clear();
17192
17258
  lastSubscribedDialogIdRef.current = null;
17193
- _optionalChain([abortControllerRef, 'access', _534 => _534.current, 'optionalAccess', _535 => _535.abort, 'call', _536 => _536()]);
17259
+ _optionalChain([abortControllerRef, 'access', _545 => _545.current, 'optionalAccess', _546 => _546.abort, 'call', _547 => _547()]);
17194
17260
  abortControllerRef.current = null;
17195
17261
  }
17196
17262
  return void 0;
@@ -17202,12 +17268,12 @@ function useNatsDialogSubscription({
17202
17268
  if (subscriptionRefs.current.size > 0) {
17203
17269
  subscriptionRefs.current.forEach((sub) => {
17204
17270
  try {
17205
- _optionalChain([sub, 'optionalAccess', _537 => _537.unsubscribe, 'call', _538 => _538()]);
17271
+ _optionalChain([sub, 'optionalAccess', _548 => _548.unsubscribe, 'call', _549 => _549()]);
17206
17272
  } catch (e35) {
17207
17273
  }
17208
17274
  });
17209
17275
  subscriptionRefs.current.clear();
17210
- _optionalChain([abortControllerRef, 'access', _539 => _539.current, 'optionalAccess', _540 => _540.abort, 'call', _541 => _541()]);
17276
+ _optionalChain([abortControllerRef, 'access', _550 => _550.current, 'optionalAccess', _551 => _551.abort, 'call', _552 => _552()]);
17211
17277
  }
17212
17278
  abortControllerRef.current = new AbortController();
17213
17279
  const abort = abortControllerRef.current;
@@ -17237,7 +17303,7 @@ function useNatsDialogSubscription({
17237
17303
  });
17238
17304
  lastSubscribedDialogIdRef.current = dialogId;
17239
17305
  setIsSubscribed(true);
17240
- _optionalChain([onSubscribedRef, 'access', _542 => _542.current, 'optionalCall', _543 => _543()]);
17306
+ _optionalChain([onSubscribedRef, 'access', _553 => _553.current, 'optionalCall', _554 => _554()]);
17241
17307
  };
17242
17308
  if (isConnectedRef.current) {
17243
17309
  createSubscriptions();
@@ -17248,7 +17314,7 @@ function useNatsDialogSubscription({
17248
17314
  abort.abort();
17249
17315
  subscriptions.forEach((sub) => {
17250
17316
  try {
17251
- _optionalChain([sub, 'optionalAccess', _544 => _544.unsubscribe, 'call', _545 => _545()]);
17317
+ _optionalChain([sub, 'optionalAccess', _555 => _555.unsubscribe, 'call', _556 => _556()]);
17252
17318
  } catch (e37) {
17253
17319
  }
17254
17320
  });
@@ -17287,7 +17353,7 @@ function useNatsDialogSubscription({
17287
17353
  });
17288
17354
  lastSubscribedDialogIdRef.current = currentDialogId;
17289
17355
  setIsSubscribed(true);
17290
- _optionalChain([onSubscribedRef, 'access', _546 => _546.current, 'optionalCall', _547 => _547()]);
17356
+ _optionalChain([onSubscribedRef, 'access', _557 => _557.current, 'optionalCall', _558 => _558()]);
17291
17357
  } else if (subscriptionRefs.current.size > 0) {
17292
17358
  setIsSubscribed(true);
17293
17359
  }
@@ -17295,10 +17361,10 @@ function useNatsDialogSubscription({
17295
17361
  return { isConnected, isSubscribed, reconnectionCount };
17296
17362
  }
17297
17363
  function buildNatsWsUrl(apiBaseUrl, options) {
17298
- const path = _optionalChain([options, 'optionalAccess', _548 => _548.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
17364
+ const path = _optionalChain([options, 'optionalAccess', _559 => _559.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
17299
17365
  const u = new URL(path, apiBaseUrl);
17300
17366
  u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
17301
- if (_optionalChain([options, 'optionalAccess', _549 => _549.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _550 => _550.token])) {
17367
+ if (_optionalChain([options, 'optionalAccess', _560 => _560.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _561 => _561.token])) {
17302
17368
  u.searchParams.set("authorization", options.token);
17303
17369
  }
17304
17370
  return u.toString();
@@ -17316,7 +17382,7 @@ async function fetchSlashCommands(prefix, signal, commandsUrl) {
17316
17382
  const data = await res.json();
17317
17383
  return _nullishCoalesce(data.commands, () => ( []));
17318
17384
  } catch (err) {
17319
- if (_optionalChain([err, 'optionalAccess', _551 => _551.name]) === "AbortError") throw err;
17385
+ if (_optionalChain([err, 'optionalAccess', _562 => _562.name]) === "AbortError") throw err;
17320
17386
  console.warn("[chat] slash-commands fetch failed, showing none:", err);
17321
17387
  return [];
17322
17388
  }
@@ -17324,8 +17390,8 @@ async function fetchSlashCommands(prefix, signal, commandsUrl) {
17324
17390
  var NO_COMMANDS = [];
17325
17391
  function useSlashCommands(prefix, commandsUrl) {
17326
17392
  const [answered, setAnswered] = _react.useState.call(void 0, null);
17327
- const commands = prefix != null && _optionalChain([answered, 'optionalAccess', _552 => _552.prefix]) === prefix ? answered.commands : NO_COMMANDS;
17328
- const loading = prefix != null && _optionalChain([answered, 'optionalAccess', _553 => _553.prefix]) !== prefix;
17393
+ const commands = prefix != null && _optionalChain([answered, 'optionalAccess', _563 => _563.prefix]) === prefix ? answered.commands : NO_COMMANDS;
17394
+ const loading = prefix != null && _optionalChain([answered, 'optionalAccess', _564 => _564.prefix]) !== prefix;
17329
17395
  _react.useEffect.call(void 0, () => {
17330
17396
  if (prefix == null) return void 0;
17331
17397
  let cancelled = false;
@@ -17335,7 +17401,7 @@ function useSlashCommands(prefix, commandsUrl) {
17335
17401
  const next = await fetchSlashCommands(prefix, ctrl.signal, commandsUrl);
17336
17402
  if (!cancelled) setAnswered({ prefix, commands: next });
17337
17403
  } catch (err) {
17338
- if (!cancelled && _optionalChain([err, 'optionalAccess', _554 => _554.name]) !== "AbortError") {
17404
+ if (!cancelled && _optionalChain([err, 'optionalAccess', _565 => _565.name]) !== "AbortError") {
17339
17405
  console.warn("[use-slash-commands] fetch failed:", err);
17340
17406
  setAnswered({ prefix, commands: NO_COMMANDS });
17341
17407
  }
@@ -17358,7 +17424,7 @@ function useSlashCommandRegistry(commandsUrl, options) {
17358
17424
  const query = _reactquery.useQuery.call(void 0, {
17359
17425
  queryKey: ["chat-slash-commands", commandsUrl],
17360
17426
  queryFn: ({ signal }) => fetchSlashCommands("", signal, commandsUrl),
17361
- enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _555 => _555.enabled]), () => ( true)),
17427
+ enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _566 => _566.enabled]), () => ( true)),
17362
17428
  staleTime: Infinity,
17363
17429
  gcTime: Infinity,
17364
17430
  // The commands registry is non-critical chrome — a failure degrades to an
@@ -17397,21 +17463,21 @@ async function fetchEmptyStateConfig(signal, emptyStateUrl) {
17397
17463
  }
17398
17464
  const data = await res.json();
17399
17465
  return {
17400
- name: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _556 => _556.name]), () => ( null)),
17401
- icon: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _557 => _557.icon]), () => ( null)),
17402
- greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _558 => _558.greeting]), () => ( null)),
17403
- enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _559 => _559.enabledRagTableIds]), () => ( [])),
17404
- quickActions: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _560 => _560.quickActions]), () => ( [])),
17405
- suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _561 => _561.suggestedQueries]), () => ( []))
17466
+ name: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _567 => _567.name]), () => ( null)),
17467
+ icon: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _568 => _568.icon]), () => ( null)),
17468
+ greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _569 => _569.greeting]), () => ( null)),
17469
+ enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _570 => _570.enabledRagTableIds]), () => ( [])),
17470
+ quickActions: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _571 => _571.quickActions]), () => ( [])),
17471
+ suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _572 => _572.suggestedQueries]), () => ( []))
17406
17472
  };
17407
17473
  } catch (err) {
17408
- if (_optionalChain([err, 'optionalAccess', _562 => _562.name]) === "AbortError") throw err;
17474
+ if (_optionalChain([err, 'optionalAccess', _573 => _573.name]) === "AbortError") throw err;
17409
17475
  console.warn("[chat] empty-state config fetch failed, using neutral defaults:", err);
17410
17476
  return EMPTY_STATE_FALLBACK;
17411
17477
  }
17412
17478
  }
17413
17479
  function useEmptyStateConfig(emptyStateUrl, options) {
17414
- const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _563 => _563.enabled]), () => ( true))) && !!emptyStateUrl;
17480
+ const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _574 => _574.enabled]), () => ( true))) && !!emptyStateUrl;
17415
17481
  const query = _reactquery.useQuery.call(void 0, {
17416
17482
  queryKey: ["chat-empty-state", emptyStateUrl],
17417
17483
  queryFn: ({ signal }) => fetchEmptyStateConfig(signal, emptyStateUrl),
@@ -17440,7 +17506,7 @@ var CHAT_ATTACHMENT_MAX_SIZE_BYTES = 25 * 1024 * 1024;
17440
17506
  var STORAGE_CACHE_CONTROL_IMMUTABLE = "public, max-age=31536000, immutable";
17441
17507
  function uploadWithProgress(url, file, token, onProgress, signal) {
17442
17508
  return new Promise((resolve, reject) => {
17443
- if (_optionalChain([signal, 'optionalAccess', _564 => _564.aborted])) {
17509
+ if (_optionalChain([signal, 'optionalAccess', _575 => _575.aborted])) {
17444
17510
  reject(new Error("Upload cancelled"));
17445
17511
  return;
17446
17512
  }
@@ -17482,7 +17548,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
17482
17548
  const handleSignalAbort = () => {
17483
17549
  xhr.abort();
17484
17550
  };
17485
- _optionalChain([signal, 'optionalAccess', _565 => _565.addEventListener, 'call', _566 => _566("abort", handleSignalAbort, { once: true, signal: listeners.signal })]);
17551
+ _optionalChain([signal, 'optionalAccess', _576 => _576.addEventListener, 'call', _577 => _577("abort", handleSignalAbort, { once: true, signal: listeners.signal })]);
17486
17552
  xhr.upload.addEventListener("progress", handleProgress, { signal: listeners.signal });
17487
17553
  xhr.addEventListener("load", handleLoad, { signal: listeners.signal });
17488
17554
  xhr.addEventListener("error", handleError, { signal: listeners.signal });
@@ -17526,10 +17592,10 @@ function useChatAttachments() {
17526
17592
  try {
17527
17593
  sniffed = await _filetype.fileTypeFromBlob.call(void 0, att.file);
17528
17594
  } catch (err) {
17529
- if (_optionalChain([ctrl, 'optionalAccess', _567 => _567.signal, 'access', _568 => _568.aborted])) return;
17595
+ if (_optionalChain([ctrl, 'optionalAccess', _578 => _578.signal, 'access', _579 => _579.aborted])) return;
17530
17596
  throw new Error(`Could not read file content: ${err instanceof Error ? err.message : String(err)}`);
17531
17597
  }
17532
- if (_optionalChain([ctrl, 'optionalAccess', _569 => _569.signal, 'access', _570 => _570.aborted])) return;
17598
+ if (_optionalChain([ctrl, 'optionalAccess', _580 => _580.signal, 'access', _581 => _581.aborted])) return;
17533
17599
  if (!sniffed) {
17534
17600
  throw new Error("Unrecognized file format");
17535
17601
  }
@@ -17543,7 +17609,7 @@ function useChatAttachments() {
17543
17609
  const urlResp = await _chunkULWVKHSIcjs.embedAuthedFetch.call(void 0, uploadUrlEndpoint, {
17544
17610
  method: "POST",
17545
17611
  headers: { "Content-Type": "application/json" },
17546
- signal: _optionalChain([ctrl, 'optionalAccess', _571 => _571.signal]),
17612
+ signal: _optionalChain([ctrl, 'optionalAccess', _582 => _582.signal]),
17547
17613
  body: JSON.stringify({
17548
17614
  fileName: att.file.name,
17549
17615
  // Pass the SNIFFED MIME (not `file.type`, which can be a
@@ -17572,9 +17638,9 @@ function useChatAttachments() {
17572
17638
  (pct) => {
17573
17639
  updateOne(att.id, { progress: pct });
17574
17640
  },
17575
- _optionalChain([ctrl, 'optionalAccess', _572 => _572.signal])
17641
+ _optionalChain([ctrl, 'optionalAccess', _583 => _583.signal])
17576
17642
  );
17577
- if (_optionalChain([ctrl, 'optionalAccess', _573 => _573.signal, 'access', _574 => _574.aborted])) return;
17643
+ if (_optionalChain([ctrl, 'optionalAccess', _584 => _584.signal, 'access', _585 => _585.aborted])) return;
17578
17644
  updateOne(att.id, {
17579
17645
  status: "ready",
17580
17646
  progress: 100,
@@ -17582,7 +17648,7 @@ function useChatAttachments() {
17582
17648
  viewToken: mintData.viewToken
17583
17649
  });
17584
17650
  } catch (err) {
17585
- if (_optionalChain([ctrl, 'optionalAccess', _575 => _575.signal, 'access', _576 => _576.aborted])) return;
17651
+ if (_optionalChain([ctrl, 'optionalAccess', _586 => _586.signal, 'access', _587 => _587.aborted])) return;
17586
17652
  const message = err instanceof Error ? err.message : String(err);
17587
17653
  updateOne(att.id, { status: "error", progress: 0, errorMessage: message });
17588
17654
  } finally {
@@ -17731,11 +17797,11 @@ var ANON_DEFAULTS = {
17731
17797
  function useResolveChatIdentity(enabled) {
17732
17798
  const runtime = _chunkUJ7AXHRZcjs.useRequiredChatRuntime.call(void 0, );
17733
17799
  const url = runtime.endpoints.identityUrl;
17734
- const proxyEmail = _nullishCoalesce(_optionalChain([_chunkULWVKHSIcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _577 => _577.email]), () => ( null));
17800
+ const proxyEmail = _nullishCoalesce(_optionalChain([_chunkULWVKHSIcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _588 => _588.email]), () => ( null));
17735
17801
  const requestKey = enabled ? `${url}\0${_nullishCoalesce(proxyEmail, () => ( ""))}` : null;
17736
17802
  const [resolved, setResolved] = _react.useState.call(void 0, null);
17737
- const data = _optionalChain([resolved, 'optionalAccess', _578 => _578.key]) === requestKey ? resolved.data : ANON_DEFAULTS;
17738
- const isLoading = requestKey !== null && _optionalChain([resolved, 'optionalAccess', _579 => _579.key]) !== requestKey;
17803
+ const data = _optionalChain([resolved, 'optionalAccess', _589 => _589.key]) === requestKey ? resolved.data : ANON_DEFAULTS;
17804
+ const isLoading = requestKey !== null && _optionalChain([resolved, 'optionalAccess', _590 => _590.key]) !== requestKey;
17739
17805
  _react.useEffect.call(void 0, () => {
17740
17806
  if (requestKey === null) return void 0;
17741
17807
  let cancelled = false;
@@ -17882,7 +17948,7 @@ function useChat({
17882
17948
  onMessagesChangeRef.current = onMessagesChange;
17883
17949
  });
17884
17950
  _react.useEffect.call(void 0, () => {
17885
- _optionalChain([onMessagesChangeRef, 'access', _580 => _580.current, 'optionalCall', _581 => _581(messages)]);
17951
+ _optionalChain([onMessagesChangeRef, 'access', _591 => _591.current, 'optionalCall', _592 => _592(messages)]);
17886
17952
  }, [messages]);
17887
17953
  const {
17888
17954
  streamMessage,
@@ -17919,7 +17985,7 @@ function useChat({
17919
17985
  name: "You",
17920
17986
  content: text2,
17921
17987
  timestamp: /* @__PURE__ */ new Date(),
17922
- ..._optionalChain([options, 'optionalAccess', _582 => _582.hidden]) ? { hidden: true } : {}
17988
+ ..._optionalChain([options, 'optionalAccess', _593 => _593.hidden]) ? { hidden: true } : {}
17923
17989
  };
17924
17990
  addMessage(userMessage);
17925
17991
  setIsTyping(true);
@@ -18133,7 +18199,7 @@ function buildConfirmToolBody(request) {
18133
18199
  async function readServerErrorMessage(response) {
18134
18200
  try {
18135
18201
  const body = await response.json();
18136
- if (typeof _optionalChain([body, 'optionalAccess', _583 => _583.error]) === "string" && body.error.length > 0) return body.error;
18202
+ if (typeof _optionalChain([body, 'optionalAccess', _594 => _594.error]) === "string" && body.error.length > 0) return body.error;
18137
18203
  } catch (e39) {
18138
18204
  }
18139
18205
  return null;
@@ -18461,7 +18527,7 @@ function youtubeVideoId(value) {
18461
18527
  const hostname = parsed.hostname.toLowerCase();
18462
18528
  const isYoutubeHost = hostname === "youtu.be" || hostname === "youtube.com" || hostname.endsWith(".youtube.com");
18463
18529
  if (!isYoutubeHost) return void 0;
18464
- const fromPath = hostname === "youtu.be" ? parsed.pathname.split("/").filter(Boolean)[0] : _optionalChain([/^\/(?:embed|v|shorts)\/([A-Za-z0-9_-]{11})(?:\/|$)/, 'access', _584 => _584.exec, 'call', _585 => _585(parsed.pathname), 'optionalAccess', _586 => _586[1]]);
18530
+ const fromPath = hostname === "youtu.be" ? parsed.pathname.split("/").filter(Boolean)[0] : _optionalChain([/^\/(?:embed|v|shorts)\/([A-Za-z0-9_-]{11})(?:\/|$)/, 'access', _595 => _595.exec, 'call', _596 => _596(parsed.pathname), 'optionalAccess', _597 => _597[1]]);
18465
18531
  const id = _nullishCoalesce(_nullishCoalesce(fromPath, () => ( parsed.searchParams.get("v"))), () => ( void 0));
18466
18532
  return id && YOUTUBE_ID.test(id) ? id : void 0;
18467
18533
  }
@@ -18580,11 +18646,11 @@ function cards(value, decodedSources) {
18580
18646
  {
18581
18647
  type,
18582
18648
  id,
18583
- title: _nullishCoalesce(_optionalChain([source, 'optionalAccess', _587 => _587.name]), () => ( id)),
18584
- url: _nullishCoalesce(_optionalChain([source, 'optionalAccess', _588 => _588.externalUrl]), () => ( null)),
18585
- ..._optionalChain([source, 'optionalAccess', _589 => _589.sourceRepo]) ? { sourceRepo: source.sourceRepo } : {},
18586
- ..._optionalChain([source, 'optionalAccess', _590 => _590.targetPlatform]) !== void 0 ? { targetPlatform: source.targetPlatform } : {},
18587
- ..._optionalChain([source, 'optionalAccess', _591 => _591.path]) ? { metadata: { path: source.path } } : {}
18649
+ title: _nullishCoalesce(_optionalChain([source, 'optionalAccess', _598 => _598.name]), () => ( id)),
18650
+ url: _nullishCoalesce(_optionalChain([source, 'optionalAccess', _599 => _599.externalUrl]), () => ( null)),
18651
+ ..._optionalChain([source, 'optionalAccess', _600 => _600.sourceRepo]) ? { sourceRepo: source.sourceRepo } : {},
18652
+ ..._optionalChain([source, 'optionalAccess', _601 => _601.targetPlatform]) !== void 0 ? { targetPlatform: source.targetPlatform } : {},
18653
+ ..._optionalChain([source, 'optionalAccess', _602 => _602.path]) ? { metadata: { path: source.path } } : {}
18588
18654
  }
18589
18655
  ];
18590
18656
  });
@@ -18620,11 +18686,11 @@ function attachmentsEvent(record) {
18620
18686
  }
18621
18687
  function mergeSourceMetadata(previous, event) {
18622
18688
  const byIndex = /* @__PURE__ */ new Map();
18623
- for (const source of [..._nullishCoalesce(_optionalChain([previous, 'optionalAccess', _592 => _592.sources]), () => ( [])), ..._nullishCoalesce(event.sources, () => ( []))]) {
18689
+ for (const source of [..._nullishCoalesce(_optionalChain([previous, 'optionalAccess', _603 => _603.sources]), () => ( [])), ..._nullishCoalesce(event.sources, () => ( []))]) {
18624
18690
  if (!byIndex.has(source.index)) byIndex.set(source.index, source);
18625
18691
  }
18626
18692
  const byIdentity = /* @__PURE__ */ new Map();
18627
- for (const ref of [..._nullishCoalesce(_optionalChain([previous, 'optionalAccess', _593 => _593.refs]), () => ( [])), ..._nullishCoalesce(event.refs, () => ( []))]) {
18693
+ for (const ref of [..._nullishCoalesce(_optionalChain([previous, 'optionalAccess', _604 => _604.refs]), () => ( [])), ..._nullishCoalesce(event.refs, () => ( []))]) {
18628
18694
  const identity = `${ref.type}:${ref.id}`;
18629
18695
  if (!byIdentity.has(identity)) byIdentity.set(identity, ref);
18630
18696
  }
@@ -18710,9 +18776,9 @@ function appendToTrailingAssistant(prev, segments) {
18710
18776
  for (const seg of segments) {
18711
18777
  const tail = merged[merged.length - 1];
18712
18778
  const key = upsertKey(seg);
18713
- if (seg.type === "text" && _optionalChain([tail, 'optionalAccess', _594 => _594.type]) === "text") {
18779
+ if (seg.type === "text" && _optionalChain([tail, 'optionalAccess', _605 => _605.type]) === "text") {
18714
18780
  merged[merged.length - 1] = { type: "text", text: tail.text + seg.text };
18715
- } else if (seg.type === "thinking" && _optionalChain([tail, 'optionalAccess', _595 => _595.type]) === "thinking") {
18781
+ } else if (seg.type === "thinking" && _optionalChain([tail, 'optionalAccess', _606 => _606.type]) === "thinking") {
18716
18782
  merged[merged.length - 1] = { type: "thinking", text: tail.text + seg.text };
18717
18783
  } else if (key) {
18718
18784
  let idx = merged.findIndex((m) => upsertKey(m) === key);
@@ -18753,7 +18819,7 @@ function applyApprovalStatusToSegment(s, requestId, status, resolvedByName) {
18753
18819
  }
18754
18820
  if (s.type !== "approval_batch") return s;
18755
18821
  const isAnchor = s.data.approvalRequestId === requestId;
18756
- const hasRow = _optionalChain([s, 'access', _596 => _596.data, 'access', _597 => _597.toolCalls, 'optionalAccess', _598 => _598.some, 'call', _599 => _599((c) => c.toolExecutionRequestId === requestId)]);
18822
+ const hasRow = _optionalChain([s, 'access', _607 => _607.data, 'access', _608 => _608.toolCalls, 'optionalAccess', _609 => _609.some, 'call', _610 => _610((c) => c.toolExecutionRequestId === requestId)]);
18757
18823
  if (!isAnchor && !hasRow) return s;
18758
18824
  const nextResolvedBy = _nullishCoalesce(resolvedByName, () => ( s.resolvedByName));
18759
18825
  const nextExecutions = hasRow ? {
@@ -18775,8 +18841,8 @@ function applyApprovalStatusToSegment(s, requestId, status, resolvedByName) {
18775
18841
  };
18776
18842
  }
18777
18843
  function nextBatchExecution(prevExec, toolData) {
18778
- if (toolData.type === "EXECUTING_TOOL" && _optionalChain([prevExec, 'optionalAccess', _600 => _600.status]) === "done") return null;
18779
- return toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prevExec, 'optionalAccess', _601 => _601.result]), success: _optionalChain([prevExec, 'optionalAccess', _602 => _602.success]) };
18844
+ if (toolData.type === "EXECUTING_TOOL" && _optionalChain([prevExec, 'optionalAccess', _611 => _611.status]) === "done") return null;
18845
+ return toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prevExec, 'optionalAccess', _612 => _612.result]), success: _optionalChain([prevExec, 'optionalAccess', _613 => _613.success]) };
18780
18846
  }
18781
18847
  function withBatchExecution(seg, execId, state) {
18782
18848
  return {
@@ -18793,11 +18859,11 @@ function projectBatchStatusToMessages(prev, anchorId, status) {
18793
18859
  }
18794
18860
  function projectBatchRowFailureToMessages(prev, rowRequestId) {
18795
18861
  return mapSegments(prev, (s) => {
18796
- if (s.type !== "approval_batch" || !_optionalChain([s, 'access', _603 => _603.data, 'access', _604 => _604.toolCalls, 'optionalAccess', _605 => _605.some, 'call', _606 => _606((c) => c.toolExecutionRequestId === rowRequestId)])) {
18862
+ if (s.type !== "approval_batch" || !_optionalChain([s, 'access', _614 => _614.data, 'access', _615 => _615.toolCalls, 'optionalAccess', _616 => _616.some, 'call', _617 => _617((c) => c.toolExecutionRequestId === rowRequestId)])) {
18797
18863
  return s;
18798
18864
  }
18799
- const existing = _optionalChain([s, 'access', _607 => _607.data, 'access', _608 => _608.executions, 'optionalAccess', _609 => _609[rowRequestId]]);
18800
- if (_optionalChain([existing, 'optionalAccess', _610 => _610.status]) === "done") return s;
18865
+ const existing = _optionalChain([s, 'access', _618 => _618.data, 'access', _619 => _619.executions, 'optionalAccess', _620 => _620[rowRequestId]]);
18866
+ if (_optionalChain([existing, 'optionalAccess', _621 => _621.status]) === "done") return s;
18801
18867
  return withBatchExecution(s, rowRequestId, { status: "done", success: false });
18802
18868
  });
18803
18869
  }
@@ -18833,7 +18899,7 @@ function mergeToolExecutionIfPresent(prev, segment) {
18833
18899
  for (let j = message.segments.length - 1; j >= 0; j--) {
18834
18900
  const seg = message.segments[j];
18835
18901
  if (execId && seg.type === "approval_batch" && seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId)) {
18836
- const prevExec = _optionalChain([seg, 'access', _611 => _611.data, 'access', _612 => _612.executions, 'optionalAccess', _613 => _613[execId]]);
18902
+ const prevExec = _optionalChain([seg, 'access', _622 => _622.data, 'access', _623 => _623.executions, 'optionalAccess', _624 => _624[execId]]);
18837
18903
  const nextExec = nextBatchExecution(prevExec, toolData);
18838
18904
  if (nextExec === null) return prev;
18839
18905
  if (sameExecutionState(prevExec, nextExec)) return prev;
@@ -19006,9 +19072,9 @@ var MessageSegmentAccumulator = class {
19006
19072
  type: "tool_execution",
19007
19073
  data: {
19008
19074
  ...toolData,
19009
- toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _614 => _614.data, 'access', _615 => _615.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _616 => _616.toolTitle]))),
19010
- toolExplanation: _nullishCoalesce(_nullishCoalesce(toolData.toolExplanation, () => ( _optionalChain([existingExecuting, 'optionalAccess', _617 => _617.data, 'access', _618 => _618.toolExplanation]))), () => ( _optionalChain([executingTool, 'optionalAccess', _619 => _619.toolExplanation]))),
19011
- parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _620 => _620.parameters])
19075
+ toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _625 => _625.data, 'access', _626 => _626.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _627 => _627.toolTitle]))),
19076
+ toolExplanation: _nullishCoalesce(_nullishCoalesce(toolData.toolExplanation, () => ( _optionalChain([existingExecuting, 'optionalAccess', _628 => _628.data, 'access', _629 => _629.toolExplanation]))), () => ( _optionalChain([executingTool, 'optionalAccess', _630 => _630.toolExplanation]))),
19077
+ parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _631 => _631.parameters])
19012
19078
  }
19013
19079
  };
19014
19080
  if (existingIndex !== -1) {
@@ -19032,7 +19098,7 @@ var MessageSegmentAccumulator = class {
19032
19098
  if (seg.type !== "approval_batch") return seg;
19033
19099
  const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
19034
19100
  if (!hasCall) return seg;
19035
- const prev = _optionalChain([seg, 'access', _621 => _621.data, 'access', _622 => _622.executions, 'optionalAccess', _623 => _623[execId]]);
19101
+ const prev = _optionalChain([seg, 'access', _632 => _632.data, 'access', _633 => _633.executions, 'optionalAccess', _634 => _634[execId]]);
19036
19102
  const next = nextBatchExecution(prev, toolData);
19037
19103
  matched = true;
19038
19104
  if (next === null) return seg;
@@ -19166,8 +19232,8 @@ var MessageSegmentAccumulator = class {
19166
19232
  requestId,
19167
19233
  {
19168
19234
  ...pendingApproval,
19169
- command: _optionalChain([pendingApproval, 'optionalAccess', _624 => _624.command]) || "",
19170
- approvalType: _optionalChain([pendingApproval, 'optionalAccess', _625 => _625.approvalType]) || approvalType
19235
+ command: _optionalChain([pendingApproval, 'optionalAccess', _635 => _635.command]) || "",
19236
+ approvalType: _optionalChain([pendingApproval, 'optionalAccess', _636 => _636.approvalType]) || approvalType
19171
19237
  },
19172
19238
  status
19173
19239
  );
@@ -19192,9 +19258,9 @@ var MessageSegmentAccumulator = class {
19192
19258
  type: "escalation_offer",
19193
19259
  // The resolved chunk carries no text/origin — a redelivered offer must
19194
19260
  // not blank the card the PENDING chunk already painted.
19195
- data: { offerId, text: text2 || _optionalChain([existing, 'optionalAccess', _626 => _626.data, 'access', _627 => _627.text]) || "", origin: _nullishCoalesce(origin, () => ( _optionalChain([existing, 'optionalAccess', _628 => _628.data, 'access', _629 => _629.origin]))) },
19261
+ data: { offerId, text: text2 || _optionalChain([existing, 'optionalAccess', _637 => _637.data, 'access', _638 => _638.text]) || "", origin: _nullishCoalesce(origin, () => ( _optionalChain([existing, 'optionalAccess', _639 => _639.data, 'access', _640 => _640.origin]))) },
19196
19262
  status,
19197
- resolvedByName: _nullishCoalesce(resolvedByName, () => ( _optionalChain([existing, 'optionalAccess', _630 => _630.resolvedByName]))),
19263
+ resolvedByName: _nullishCoalesce(resolvedByName, () => ( _optionalChain([existing, 'optionalAccess', _641 => _641.resolvedByName]))),
19198
19264
  onApprove: this.callbacks.onEscalationApprove,
19199
19265
  onReject: this.callbacks.onEscalationReject
19200
19266
  };
@@ -19514,7 +19580,7 @@ function createChatStreamReducer(options = {}) {
19514
19580
  let stateCache = null;
19515
19581
  function invalidate() {
19516
19582
  stateCache = null;
19517
- _optionalChain([onChange, 'optionalCall', _631 => _631()]);
19583
+ _optionalChain([onChange, 'optionalCall', _642 => _642()]);
19518
19584
  }
19519
19585
  function getState() {
19520
19586
  if (!stateCache) {
@@ -19532,7 +19598,7 @@ function createChatStreamReducer(options = {}) {
19532
19598
  return stateCache;
19533
19599
  }
19534
19600
  function emit(name, ...args) {
19535
- _optionalChain([onEffect, 'optionalCall', _632 => _632({ name, args })]);
19601
+ _optionalChain([onEffect, 'optionalCall', _643 => _643({ name, args })]);
19536
19602
  }
19537
19603
  function setMessagesInternal(next) {
19538
19604
  if (next !== messages) {
@@ -19575,12 +19641,12 @@ function createChatStreamReducer(options = {}) {
19575
19641
  return stampTrailingAssistantSourceMetadata(stampTrailingAssistantSeq(next, seq));
19576
19642
  }
19577
19643
  function applySegmentsToState(segments, meta) {
19578
- const seq = _optionalChain([meta, 'optionalAccess', _633 => _633.streamSeq]);
19579
- if (_optionalChain([meta, 'optionalAccess', _634 => _634.append]) && meta.isCompacting) {
19644
+ const seq = _optionalChain([meta, 'optionalAccess', _644 => _644.streamSeq]);
19645
+ if (_optionalChain([meta, 'optionalAccess', _645 => _645.append]) && meta.isCompacting) {
19580
19646
  setMessagesInternal(commitTrailingAssistant(upsertTrailingCompaction(messages, segments), seq));
19581
19647
  return;
19582
19648
  }
19583
- if (_optionalChain([meta, 'optionalAccess', _635 => _635.append])) {
19649
+ if (_optionalChain([meta, 'optionalAccess', _646 => _646.append])) {
19584
19650
  setMessagesInternal(commitTrailingAssistant(appendToTrailingAssistant(messages, segments), seq));
19585
19651
  return;
19586
19652
  }
@@ -19592,7 +19658,7 @@ function createChatStreamReducer(options = {}) {
19592
19658
  adoptTrailingAssistant = false;
19593
19659
  const last = messages[messages.length - 1];
19594
19660
  if (!last || last.role !== "assistant" || adoptTail) return;
19595
- const hasContent = (_nullishCoalesce(_optionalChain([last, 'access', _636 => _636.segments, 'optionalAccess', _637 => _637.length]), () => ( 0))) > 0 || last.content !== "";
19661
+ const hasContent = (_nullishCoalesce(_optionalChain([last, 'access', _647 => _647.segments, 'optionalAccess', _648 => _648.length]), () => ( 0))) > 0 || last.content !== "";
19596
19662
  if (!hasContent) return;
19597
19663
  setMessagesInternal([...messages, { id: nextId("assistant"), role: "assistant", content: "", segments: [] }]);
19598
19664
  }
@@ -19811,13 +19877,13 @@ function createChatStreamReducer(options = {}) {
19811
19877
  const summary = required ? _chunkHP4UUBJCcjs.getCommandText.call(void 0, required) : `Batch of ${toolCalls.length} tool calls`;
19812
19878
  pendingEscalated.set(requestId, {
19813
19879
  command: summary,
19814
- explanation: _optionalChain([required, 'optionalAccess', _638 => _638.toolExplanation]),
19880
+ explanation: _optionalChain([required, 'optionalAccess', _649 => _649.toolExplanation]),
19815
19881
  approvalType,
19816
19882
  toolCalls
19817
19883
  });
19818
19884
  emit("onEscalatedApproval", requestId, {
19819
19885
  command: summary,
19820
- explanation: _optionalChain([required, 'optionalAccess', _639 => _639.toolExplanation]),
19886
+ explanation: _optionalChain([required, 'optionalAccess', _650 => _650.toolExplanation]),
19821
19887
  approvalType
19822
19888
  });
19823
19889
  break;
@@ -20205,7 +20271,7 @@ function createChatStreamReducer(options = {}) {
20205
20271
  const resolveBatch = (status, confirm) => async () => {
20206
20272
  setMessagesInternal(projectBatchStatusToMessages(messages, anchorId, status));
20207
20273
  for (const id of ids) {
20208
- const ok = await _optionalChain([confirm, 'optionalCall', _640 => _640(id)]);
20274
+ const ok = await _optionalChain([confirm, 'optionalCall', _651 => _651(id)]);
20209
20275
  if (ok === false) {
20210
20276
  setMessagesInternal(projectBatchRowFailureToMessages(messages, id));
20211
20277
  }
@@ -20341,8 +20407,8 @@ function createChatStreamReducer(options = {}) {
20341
20407
  }
20342
20408
  }
20343
20409
  }
20344
- hasEverStreamed = hasEverStreamed || (_nullishCoalesce(_optionalChain([extras, 'optionalAccess', _641 => _641.resumed]), () => ( messages.length > 0)));
20345
- if (_optionalChain([extras, 'optionalAccess', _642 => _642.agentBusy])) agentBusyState();
20410
+ hasEverStreamed = hasEverStreamed || (_nullishCoalesce(_optionalChain([extras, 'optionalAccess', _652 => _652.resumed]), () => ( messages.length > 0)));
20411
+ if (_optionalChain([extras, 'optionalAccess', _653 => _653.agentBusy])) agentBusyState();
20346
20412
  invalidate();
20347
20413
  }
20348
20414
  return {
@@ -20429,7 +20495,7 @@ function createChatStreamReducer(options = {}) {
20429
20495
  },
20430
20496
  endSseTurn() {
20431
20497
  const last = messages[messages.length - 1];
20432
- if (last && last.role === "assistant" && (_nullishCoalesce(_optionalChain([last, 'access', _643 => _643.segments, 'optionalAccess', _644 => _644.length]), () => ( 0))) === 0 && last.content === "") {
20498
+ if (last && last.role === "assistant" && (_nullishCoalesce(_optionalChain([last, 'access', _654 => _654.segments, 'optionalAccess', _655 => _655.length]), () => ( 0))) === 0 && last.content === "") {
20433
20499
  messages = messages.slice(0, -1);
20434
20500
  }
20435
20501
  sseCurrentText = "";
@@ -20583,10 +20649,10 @@ function createChatDialogStore(options = {}) {
20583
20649
  if (onEvict) {
20584
20650
  const sep = key.indexOf(KEY_SEP);
20585
20651
  onEvict(key.slice(0, sep), key.slice(sep + 1), {
20586
- messages: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _645 => _645.state, 'access', _646 => _646.messages]), () => ( EMPTY_STATE.messages)),
20587
- approvalStatuses: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _647 => _647.state, 'access', _648 => _648.approvalStatuses]), () => ( EMPTY_STATE.approvalStatuses)),
20588
- lastAppliedSeq: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _649 => _649.getLastAppliedSeq, 'call', _650 => _650()]), () => ( Number.NEGATIVE_INFINITY)),
20589
- pendingEchoes: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _651 => _651.getPendingEchoes, 'call', _652 => _652()]), () => ( EMPTY_PENDING_ECHOES))
20652
+ messages: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _656 => _656.state, 'access', _657 => _657.messages]), () => ( EMPTY_STATE.messages)),
20653
+ approvalStatuses: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _658 => _658.state, 'access', _659 => _659.approvalStatuses]), () => ( EMPTY_STATE.approvalStatuses)),
20654
+ lastAppliedSeq: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _660 => _660.getLastAppliedSeq, 'call', _661 => _661()]), () => ( Number.NEGATIVE_INFINITY)),
20655
+ pendingEchoes: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _662 => _662.getPendingEchoes, 'call', _663 => _663()]), () => ( EMPTY_PENDING_ECHOES))
20590
20656
  });
20591
20657
  }
20592
20658
  }
@@ -20596,12 +20662,12 @@ function createChatDialogStore(options = {}) {
20596
20662
  const key = keyOf(dialogId, side);
20597
20663
  let reducer = reducers.get(key);
20598
20664
  if (!reducer) {
20599
- const base = _nullishCoalesce(_optionalChain([(_nullishCoalesce(createOptions, () => ( defaultCreateOptions))), 'optionalCall', _653 => _653(dialogId, side)]), () => ( {}));
20665
+ const base = _nullishCoalesce(_optionalChain([(_nullishCoalesce(createOptions, () => ( defaultCreateOptions))), 'optionalCall', _664 => _664(dialogId, side)]), () => ( {}));
20600
20666
  const userOnChange = base.onChange;
20601
20667
  reducer = createChatStreamReducer({
20602
20668
  ...base,
20603
20669
  onChange: () => {
20604
- _optionalChain([userOnChange, 'optionalCall', _654 => _654()]);
20670
+ _optionalChain([userOnChange, 'optionalCall', _665 => _665()]);
20605
20671
  notify();
20606
20672
  }
20607
20673
  });
@@ -20646,7 +20712,7 @@ function createChatDialogStore(options = {}) {
20646
20712
  };
20647
20713
  }
20648
20714
  function getSnapshot2(dialogId, side = DEFAULT_DIALOG_SIDE) {
20649
- return _nullishCoalesce(_optionalChain([reducers, 'access', _655 => _655.get, 'call', _656 => _656(keyOf(dialogId, side)), 'optionalAccess', _657 => _657.state]), () => ( EMPTY_STATE));
20715
+ return _nullishCoalesce(_optionalChain([reducers, 'access', _666 => _666.get, 'call', _667 => _667(keyOf(dialogId, side)), 'optionalAccess', _668 => _668.state]), () => ( EMPTY_STATE));
20650
20716
  }
20651
20717
  function getServerSnapshot2() {
20652
20718
  return EMPTY_STATE;
@@ -20738,7 +20804,7 @@ function createDeltaBatcher({
20738
20804
  pending = [];
20739
20805
  const key = pendingKey;
20740
20806
  for (const delta of batch) applyOne(delta, key);
20741
- _optionalChain([onFlushed, 'optionalCall', _658 => _658(batch.length)]);
20807
+ _optionalChain([onFlushed, 'optionalCall', _669 => _669(batch.length)]);
20742
20808
  }
20743
20809
  function schedule() {
20744
20810
  if (raf !== null || timer !== null) return;
@@ -20762,7 +20828,7 @@ function createDeltaBatcher({
20762
20828
  }
20763
20829
  if (!isDeltaEvent(event)) return false;
20764
20830
  const tail = pending[pending.length - 1];
20765
- const seqAdvances = _optionalChain([tail, 'optionalAccess', _659 => _659.seq]) == null ? event.seq == null : event.seq != null && event.seq > tail.seq;
20831
+ const seqAdvances = _optionalChain([tail, 'optionalAccess', _670 => _670.seq]) == null ? event.seq == null : event.seq != null && event.seq > tail.seq;
20766
20832
  if (tail && seqAdvances && tail.type === event.type && (tail.type !== "text-delta" || tail.leading === event.leading)) {
20767
20833
  pending[pending.length - 1] = {
20768
20834
  ...tail,
@@ -20793,7 +20859,7 @@ function useChatStreamReducer({
20793
20859
  side = DEFAULT_DIALOG_SIDE,
20794
20860
  createReducerOptions
20795
20861
  }) {
20796
- const reducer = store.getReducer(dialogId, side, () => _nullishCoalesce(_optionalChain([createReducerOptions, 'optionalCall', _660 => _660()]), () => ( {})));
20862
+ const reducer = store.getReducer(dialogId, side, () => _nullishCoalesce(_optionalChain([createReducerOptions, 'optionalCall', _671 => _671()]), () => ( {})));
20797
20863
  const getSnapshot2 = _react.useCallback.call(void 0, () => store.getSnapshot(dialogId, side), [store, dialogId, side]);
20798
20864
  const getServerSnapshot2 = _react.useCallback.call(void 0, () => store.getServerSnapshot(), [store]);
20799
20865
  const subscribe2 = _react.useCallback.call(void 0, (listener) => store.subscribe(listener), [store]);
@@ -20832,7 +20898,7 @@ var STORAGE_KEY = "conversation";
20832
20898
  var namespaceFor = (source) => {
20833
20899
  const base = `mingo-chat-${source}`;
20834
20900
  const auth = _chunkULWVKHSIcjs.getEmbedProxyAuth.call(void 0, );
20835
- return _optionalChain([auth, 'optionalAccess', _661 => _661.email]) ? `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}` : base;
20901
+ return _optionalChain([auth, 'optionalAccess', _672 => _672.email]) ? `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}` : base;
20836
20902
  };
20837
20903
  function createChatConversationStorage(source) {
20838
20904
  return _chunkULWVKHSIcjs.createLocalStorageAdapter.call(void 0, {
@@ -20963,7 +21029,7 @@ function useChatHistoryHydration({
20963
21029
  if (cancelled) return;
20964
21030
  if (rows.length === 0) {
20965
21031
  const found = isRecord(body) ? body.found : void 0;
20966
- if (found === false) _optionalChain([onOrphanedConversation, 'optionalCall', _662 => _662(conversationId)]);
21032
+ if (found === false) _optionalChain([onOrphanedConversation, 'optionalCall', _673 => _673(conversationId)]);
20967
21033
  return;
20968
21034
  }
20969
21035
  const hydrated = [];
@@ -21107,7 +21173,7 @@ function useManagedDialogList({
21107
21173
  try {
21108
21174
  await deleteDialogCallback(id);
21109
21175
  removeLocal(id);
21110
- _optionalChain([onDialogRemovedRef, 'access', _663 => _663.current, 'optionalCall', _664 => _664(id, "deleted")]);
21176
+ _optionalChain([onDialogRemovedRef, 'access', _674 => _674.current, 'optionalCall', _675 => _675(id, "deleted")]);
21111
21177
  } catch (err) {
21112
21178
  console.error(`${logTag} deleteDialog failed:`, err);
21113
21179
  throw err;
@@ -21118,7 +21184,7 @@ function useManagedDialogList({
21118
21184
  const renameDialog = _react.useCallback.call(void 0,
21119
21185
  async (id, title) => {
21120
21186
  if (!renameDialogCallback) return;
21121
- const previous = _optionalChain([dialogsRef, 'access', _665 => _665.current, 'access', _666 => _666.find, 'call', _667 => _667((d) => d.id === id), 'optionalAccess', _668 => _668.title]);
21187
+ const previous = _optionalChain([dialogsRef, 'access', _676 => _676.current, 'access', _677 => _677.find, 'call', _678 => _678((d) => d.id === id), 'optionalAccess', _679 => _679.title]);
21122
21188
  setDialogs((prev) => prev.map((d) => d.id === id ? { ...d, title } : d));
21123
21189
  try {
21124
21190
  await renameDialogCallback(id, title);
@@ -21137,7 +21203,7 @@ function useManagedDialogList({
21137
21203
  try {
21138
21204
  await archiveDialogCallback(id);
21139
21205
  removeLocal(id);
21140
- _optionalChain([onDialogRemovedRef, 'access', _669 => _669.current, 'optionalCall', _670 => _670(id, "archived")]);
21206
+ _optionalChain([onDialogRemovedRef, 'access', _680 => _680.current, 'optionalCall', _681 => _681(id, "archived")]);
21141
21207
  } catch (err) {
21142
21208
  console.error(`${logTag} archiveDialog failed:`, err);
21143
21209
  throw err;
@@ -21229,7 +21295,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21229
21295
  const { active = true } = runtimeOptions;
21230
21296
  const runtime = _chunkUJ7AXHRZcjs.useRequiredChatRuntime.call(void 0, );
21231
21297
  const source = runtime.source || DEFAULT_CHAT_SOURCE;
21232
- const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _671 => _671.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
21298
+ const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _682 => _682.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
21233
21299
  const sendMessageRef = _react.useRef.call(void 0,
21234
21300
  () => Promise.resolve(true)
21235
21301
  );
@@ -21265,7 +21331,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21265
21331
  if (!restoredConversationRef.current) {
21266
21332
  restoredConversationRef.current = true;
21267
21333
  pruneStaleChatConversationStorage(source);
21268
- conversationIdRef.current = _nullishCoalesce(_optionalChain([conversationStorage, 'access', _672 => _672.load, 'call', _673 => _673(), 'optionalAccess', _674 => _674.conversationId]), () => ( null));
21334
+ conversationIdRef.current = _nullishCoalesce(_optionalChain([conversationStorage, 'access', _683 => _683.load, 'call', _684 => _684(), 'optionalAccess', _685 => _685.conversationId]), () => ( null));
21269
21335
  }
21270
21336
  const [conversationId, setConversationId] = _react.useState.call(void 0, () => conversationIdRef.current);
21271
21337
  const commitConversationId = _react.useCallback.call(void 0,
@@ -21356,7 +21422,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21356
21422
  const abortControllerRef = _react.useRef.call(void 0, null);
21357
21423
  const switchConversation = _react.useCallback.call(void 0,
21358
21424
  (id) => {
21359
- _optionalChain([abortControllerRef, 'access', _675 => _675.current, 'optionalAccess', _676 => _676.abort, 'call', _677 => _677()]);
21425
+ _optionalChain([abortControllerRef, 'access', _686 => _686.current, 'optionalAccess', _687 => _687.abort, 'call', _688 => _688()]);
21360
21426
  flushDeltas();
21361
21427
  mutate((r) => r.reset());
21362
21428
  hydrationSendCountRef.current = 0;
@@ -21393,8 +21459,8 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21393
21459
  } = useManagedDialogList({
21394
21460
  autoLoad: active,
21395
21461
  fetchDialogs: fetchActiveDialogs,
21396
- renameDialog: _optionalChain([conversationsApi, 'optionalAccess', _678 => _678.renameDialog]),
21397
- archiveDialog: _optionalChain([conversationsApi, 'optionalAccess', _679 => _679.archiveDialog]),
21462
+ renameDialog: _optionalChain([conversationsApi, 'optionalAccess', _689 => _689.renameDialog]),
21463
+ archiveDialog: _optionalChain([conversationsApi, 'optionalAccess', _690 => _690.archiveDialog]),
21398
21464
  pageSize: 20,
21399
21465
  search: conversationsApi ? dialogSearch : void 0,
21400
21466
  logTag: "[useSseChatAdapter]",
@@ -21458,7 +21524,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21458
21524
  const serverMessage = await readServerErrorMessage(response);
21459
21525
  throw new Error(_nullishCoalesce(serverMessage, () => ( `Chat request failed: ${response.status}`)));
21460
21526
  }
21461
- const reader = _optionalChain([response, 'access', _680 => _680.body, 'optionalAccess', _681 => _681.getReader, 'call', _682 => _682()]);
21527
+ const reader = _optionalChain([response, 'access', _691 => _691.body, 'optionalAccess', _692 => _692.getReader, 'call', _693 => _693()]);
21462
21528
  if (!reader) throw new Error("No response body");
21463
21529
  const frameDecoder = createSseFrameDecoder();
21464
21530
  let finished = false;
@@ -21487,7 +21553,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21487
21553
  }
21488
21554
  return true;
21489
21555
  } catch (err) {
21490
- if (_optionalChain([err, 'optionalAccess', _683 => _683.name]) === "AbortError" || ctrl.signal.aborted) {
21556
+ if (_optionalChain([err, 'optionalAccess', _694 => _694.name]) === "AbortError" || ctrl.signal.aborted) {
21491
21557
  return true;
21492
21558
  }
21493
21559
  flushDeltas();
@@ -21523,7 +21589,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21523
21589
  );
21524
21590
  sendMessageRef.current = sendMessage;
21525
21591
  const stopMessage = _react.useCallback.call(void 0, () => {
21526
- _optionalChain([abortControllerRef, 'access', _684 => _684.current, 'optionalAccess', _685 => _685.abort, 'call', _686 => _686()]);
21592
+ _optionalChain([abortControllerRef, 'access', _695 => _695.current, 'optionalAccess', _696 => _696.abort, 'call', _697 => _697()]);
21527
21593
  flushDeltas();
21528
21594
  mutate((r) => r.setPhase("idle"));
21529
21595
  }, [mutate, flushDeltas]);
@@ -21559,7 +21625,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21559
21625
  let sendIdx = -1;
21560
21626
  return state.messages.map((m) => {
21561
21627
  const segments = m.segments;
21562
- const content = typeof m.content === "string" && !segments ? m.content : _nullishCoalesce(_optionalChain([segments, 'optionalAccess', _687 => _687.filter, 'call', _688 => _688((s) => s.type === "text"), 'access', _689 => _689.map, 'call', _690 => _690((s) => s.text), 'access', _691 => _691.join, 'call', _692 => _692("")]), () => ( ""));
21628
+ const content = typeof m.content === "string" && !segments ? m.content : _nullishCoalesce(_optionalChain([segments, 'optionalAccess', _698 => _698.filter, 'call', _699 => _699((s) => s.type === "text"), 'access', _700 => _700.map, 'call', _701 => _701((s) => s.text), 'access', _702 => _702.join, 'call', _703 => _703("")]), () => ( ""));
21563
21629
  let sources2;
21564
21630
  let scrollAnchor;
21565
21631
  if (m.role === "user" && !m.hidden) {
@@ -21568,7 +21634,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21568
21634
  if (m.role === "assistant") {
21569
21635
  const lookupIdx = sendIdx >= 0 ? sendIdx : 0;
21570
21636
  sources2 = sourcesMap.get(lookupIdx);
21571
- scrollAnchor = _nullishCoalesce(_optionalChain([meta, 'access', _693 => _693.get, 'call', _694 => _694(lookupIdx), 'optionalAccess', _695 => _695.scrollAnchor]), () => ( void 0));
21637
+ scrollAnchor = _nullishCoalesce(_optionalChain([meta, 'access', _704 => _704.get, 'call', _705 => _705(lookupIdx), 'optionalAccess', _706 => _706.scrollAnchor]), () => ( void 0));
21572
21638
  }
21573
21639
  return {
21574
21640
  id: m.id,
@@ -21595,7 +21661,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21595
21661
  );
21596
21662
  return;
21597
21663
  }
21598
- const refSlug = typeof _optionalChain([reference, 'access', _696 => _696.metadata, 'optionalAccess', _697 => _697.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
21664
+ const refSlug = typeof _optionalChain([reference, 'access', _707 => _707.metadata, 'optionalAccess', _708 => _708.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
21599
21665
  const queryValue = refSlug || sanitizeTitleForChat(reference.title) || reference.id;
21600
21666
  const escaped = queryValue.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
21601
21667
  const text2 = `/${cmdId} display "${escaped}"`;
@@ -21643,18 +21709,18 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21643
21709
  /** True while the mount-time rebuild from the server transcript runs. */
21644
21710
  isHydratingHistory,
21645
21711
  /** Provider key for the lib's `<ModelDisplay>` icon. */
21646
- currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _698 => _698.provider]), () => ( null)),
21647
- currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _699 => _699.modelLabel]), () => ( null)),
21648
- currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _700 => _700.contextWindowMaxTokens]), () => ( null)),
21712
+ currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _709 => _709.provider]), () => ( null)),
21713
+ currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _710 => _710.modelLabel]), () => ( null)),
21714
+ currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _711 => _711.contextWindowMaxTokens]), () => ( null)),
21649
21715
  /** Input tokens (known after server's message_start frame; null until). */
21650
- currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _701 => _701.inputTokens]), () => ( null)),
21716
+ currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _712 => _712.inputTokens]), () => ( null)),
21651
21717
  /** Output tokens (known only after server's trailing usage frame). */
21652
- currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _702 => _702.outputTokens]), () => ( null)),
21718
+ currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _713 => _713.outputTokens]), () => ( null)),
21653
21719
  /** Cache hit % (read / total-input × 100). null during streaming. */
21654
- currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _703 => _703.cacheHitRatePct]), () => ( null)),
21720
+ currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _714 => _714.cacheHitRatePct]), () => ( null)),
21655
21721
  /** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
21656
21722
  * token counts). null until the trailing usage frame lands. */
21657
- currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _704 => _704.breakdown]), () => ( null)),
21723
+ currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _715 => _715.breakdown]), () => ( null)),
21658
21724
  // ─── Dialog management ───────────────────────────────────────────────
21659
21725
  // With `chatConversationsUrl` the server transcript store IS the dialog
21660
21726
  // list (shared `useManagedDialogList`); selecting a row re-hydrates through
@@ -21910,7 +21976,7 @@ function decodeNatsChunk(chunk) {
21910
21976
  userId: typeof data.userId === "string" ? data.userId : void 0,
21911
21977
  // Wire shape carries no label; fall back to the id (parity with
21912
21978
  // the history path in `process-historical-messages.ts`).
21913
- contextItems: Array.isArray(data.contextItems) ? data.contextItems.filter((it) => typeof _optionalChain([it, 'optionalAccess', _705 => _705.type]) === "string" && typeof _optionalChain([it, 'optionalAccess', _706 => _706.id]) === "string").map((it) => ({
21979
+ contextItems: Array.isArray(data.contextItems) ? data.contextItems.filter((it) => typeof _optionalChain([it, 'optionalAccess', _716 => _716.type]) === "string" && typeof _optionalChain([it, 'optionalAccess', _717 => _717.id]) === "string").map((it) => ({
21914
21980
  type: it.type,
21915
21981
  id: it.id,
21916
21982
  label: it.id
@@ -22001,7 +22067,7 @@ function extractIncompleteMessageState(lastMessage) {
22001
22067
  }
22002
22068
  break;
22003
22069
  case "approval_batch": {
22004
- const allDone = !!segment.data.executions && segment.data.toolCalls.every((c) => _optionalChain([segment, 'access', _707 => _707.data, 'access', _708 => _708.executions, 'optionalAccess', _709 => _709[c.toolExecutionRequestId], 'optionalAccess', _710 => _710.status]) === "done");
22070
+ const allDone = !!segment.data.executions && segment.data.toolCalls.every((c) => _optionalChain([segment, 'access', _718 => _718.data, 'access', _719 => _719.executions, 'optionalAccess', _720 => _720[c.toolExecutionRequestId], 'optionalAccess', _721 => _721.status]) === "done");
22005
22071
  if (segment.status !== "rejected" && !allDone) {
22006
22072
  hasIncompleteState = true;
22007
22073
  }
@@ -22063,11 +22129,11 @@ function extractIncompleteMessageState(lastMessage) {
22063
22129
  function extractIncompleteTailState(messages) {
22064
22130
  if (!messages || messages.length === 0) return void 0;
22065
22131
  let start = messages.length;
22066
- while (start > 0 && _optionalChain([messages, 'access', _711 => _711[start - 1], 'optionalAccess', _712 => _712.role]) === "assistant") start -= 1;
22132
+ while (start > 0 && _optionalChain([messages, 'access', _722 => _722[start - 1], 'optionalAccess', _723 => _723.role]) === "assistant") start -= 1;
22067
22133
  if (start === messages.length) return void 0;
22068
22134
  const segments = [];
22069
22135
  for (let i = start; i < messages.length; i += 1) {
22070
- const content = _optionalChain([messages, 'access', _713 => _713[i], 'optionalAccess', _714 => _714.content]);
22136
+ const content = _optionalChain([messages, 'access', _724 => _724[i], 'optionalAccess', _725 => _725.content]);
22071
22137
  if (Array.isArray(content)) segments.push(...content);
22072
22138
  }
22073
22139
  if (segments.length === 0) return void 0;
@@ -22080,15 +22146,15 @@ function extractIncompleteTailState(messages) {
22080
22146
 
22081
22147
  // src/components/chat/utils/process-historical-messages.ts
22082
22148
  function getOwnerDisplayName(owner) {
22083
- if (_optionalChain([owner, 'optionalAccess', _715 => _715.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.ADMIN && owner.user) {
22149
+ if (_optionalChain([owner, 'optionalAccess', _726 => _726.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.ADMIN && owner.user) {
22084
22150
  const { firstName, lastName } = owner.user;
22085
22151
  const name = [firstName, lastName].filter(Boolean).join(" ");
22086
22152
  if (name) return name;
22087
22153
  }
22088
- return _optionalChain([owner, 'optionalAccess', _716 => _716.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.ADMIN ? "Admin" : "You";
22154
+ return _optionalChain([owner, 'optionalAccess', _727 => _727.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.ADMIN ? "Admin" : "You";
22089
22155
  }
22090
22156
  function getOwnerAvatar(owner) {
22091
- return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _717 => _717.user, 'optionalAccess', _718 => _718.image, 'optionalAccess', _719 => _719.imageUrl]), () => ( void 0));
22157
+ return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _728 => _728.user, 'optionalAccess', _729 => _729.image, 'optionalAccess', _730 => _730.imageUrl]), () => ( void 0));
22092
22158
  }
22093
22159
  function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
22094
22160
  messageDataArray.forEach((data) => {
@@ -22280,7 +22346,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
22280
22346
  event.offerId,
22281
22347
  event.text,
22282
22348
  event.origin,
22283
- _nullishCoalesce(_optionalChain([escalationOfferStates, 'optionalAccess', _720 => _720[event.offerId]]), () => ( "pending"))
22349
+ _nullishCoalesce(_optionalChain([escalationOfferStates, 'optionalAccess', _731 => _731[event.offerId]]), () => ( "pending"))
22284
22350
  );
22285
22351
  break;
22286
22352
  case "ticket-escalated":
@@ -22314,7 +22380,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
22314
22380
  );
22315
22381
  break;
22316
22382
  case "escalation-offer-resolved":
22317
- _optionalChain([offerResolutions, 'optionalAccess', _721 => _721.set, 'call', _722 => _722(event.offerId, {
22383
+ _optionalChain([offerResolutions, 'optionalAccess', _732 => _732.set, 'call', _733 => _733(event.offerId, {
22318
22384
  status: event.status,
22319
22385
  resolvedByName: event.resolvedByName
22320
22386
  })]);
@@ -22378,7 +22444,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
22378
22444
  }
22379
22445
  }
22380
22446
  } else {
22381
- _optionalChain([escalatedApprovals, 'optionalAccess', _723 => _723.set, 'call', _724 => _724(event.requestId, {
22447
+ _optionalChain([escalatedApprovals, 'optionalAccess', _734 => _734.set, 'call', _735 => _735(event.requestId, {
22382
22448
  command: event.command || "",
22383
22449
  explanation: event.explanation,
22384
22450
  approvalType,
@@ -22393,8 +22459,8 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
22393
22459
  const existingStatus = approvalStatuses[requestId];
22394
22460
  const status = existingStatus || event.status;
22395
22461
  const resolvedByName = event.resolvedByName;
22396
- const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _725 => _725.get, 'call', _726 => _726(requestId)]);
22397
- if (_optionalChain([escalatedData, 'optionalAccess', _727 => _727.toolCalls]) && escalatedData.toolCalls.length > 0) {
22462
+ const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _736 => _736.get, 'call', _737 => _737(requestId)]);
22463
+ if (_optionalChain([escalatedData, 'optionalAccess', _738 => _738.toolCalls]) && escalatedData.toolCalls.length > 0) {
22398
22464
  if (batchApprovalsEnabled) {
22399
22465
  accumulator.addApprovalBatch(
22400
22466
  requestId,
@@ -22416,7 +22482,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
22416
22482
  );
22417
22483
  }
22418
22484
  }
22419
- _optionalChain([escalatedApprovals, 'optionalAccess', _728 => _728.delete, 'call', _729 => _729(requestId)]);
22485
+ _optionalChain([escalatedApprovals, 'optionalAccess', _739 => _739.delete, 'call', _740 => _740(requestId)]);
22420
22486
  break;
22421
22487
  }
22422
22488
  if (escalatedData) {
@@ -22425,7 +22491,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
22425
22491
  explanation: escalatedData.explanation,
22426
22492
  approvalType: escalatedData.approvalType
22427
22493
  });
22428
- _optionalChain([escalatedApprovals, 'optionalAccess', _730 => _730.delete, 'call', _731 => _731(requestId)]);
22494
+ _optionalChain([escalatedApprovals, 'optionalAccess', _741 => _741.delete, 'call', _742 => _742(requestId)]);
22429
22495
  }
22430
22496
  const before = accumulator.getSegments();
22431
22497
  const after = accumulator.updateApprovalStatus(requestId, status, resolvedByName);
@@ -22517,14 +22583,14 @@ function processHistoricalMessages(messages, options = {}) {
22517
22583
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
22518
22584
  return;
22519
22585
  }
22520
- const isUserMessage = _optionalChain([msg, 'access', _732 => _732.owner, 'optionalAccess', _733 => _733.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _734 => _734.owner, 'optionalAccess', _735 => _735.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.ADMIN;
22586
+ const isUserMessage = _optionalChain([msg, 'access', _743 => _743.owner, 'optionalAccess', _744 => _744.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _745 => _745.owner, 'optionalAccess', _746 => _746.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.ADMIN;
22521
22587
  if (isUserMessage) {
22522
22588
  flushAssistantMessage();
22523
- const userAuthorType = _optionalChain([msg, 'access', _736 => _736.owner, 'optionalAccess', _737 => _737.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.ADMIN ? "admin" : "user";
22589
+ const userAuthorType = _optionalChain([msg, 'access', _747 => _747.owner, 'optionalAccess', _748 => _748.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.ADMIN ? "admin" : "user";
22524
22590
  messageDataArray.forEach((data) => {
22525
22591
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
22526
22592
  const rawContext = data.contextItems;
22527
- const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _738 => _738.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _739 => _739.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
22593
+ const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _749 => _749.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _750 => _750.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
22528
22594
  processedMessages.push({
22529
22595
  id: msg.id,
22530
22596
  role: "user",
@@ -22571,7 +22637,7 @@ function processHistoricalMessages(messages, options = {}) {
22571
22637
  });
22572
22638
  const nextMsg = messages[index + 1];
22573
22639
  const isLastMessage = index === messages.length - 1;
22574
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _740 => _740.owner, 'optionalAccess', _741 => _741.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _742 => _742.owner, 'optionalAccess', _743 => _743.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.ADMIN);
22640
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _751 => _751.owner, 'optionalAccess', _752 => _752.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _753 => _753.owner, 'optionalAccess', _754 => _754.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.ADMIN);
22575
22641
  if (isLastMessage || nextIsFromUser) {
22576
22642
  flushAssistantMessage();
22577
22643
  }
@@ -22954,7 +23020,7 @@ function useNatsChatAdapter(config, options = {}) {
22954
23020
  const connectionState = !active || !dialogId ? "connected" : connectedForDialog === dialogId ? "connected" : "connecting";
22955
23021
  const sendMessage = _react.useCallback.call(void 0,
22956
23022
  async (text2, sendOptions) => {
22957
- const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _744 => _744.hidden]), () => ( false));
23023
+ const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _755 => _755.hidden]), () => ( false));
22958
23024
  mutate((r) => r.pushOptimisticSend(text2, hidden));
22959
23025
  await publishUserMessage(text2, { hidden, dialogId });
22960
23026
  },
@@ -23047,11 +23113,11 @@ function useNatsChatAdapter(config, options = {}) {
23047
23113
  // Tokens: live `token_usage` frame / dialog snapshot (`dialogTokenUsage`).
23048
23114
  // contextWindow uses the dialog's `contextSize` (the "X / Y" denominator,
23049
23115
  // matching the /mingo page). cacheHitRate/breakdown are SSE-only → null.
23050
- currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _745 => _745.provider]), () => ( modelProvider)), () => ( null)),
23051
- currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _746 => _746.modelLabel]), () => ( modelLabel)), () => ( null)),
23052
- currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _747 => _747.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _748 => _748.contextWindowMaxTokens]))), () => ( null)),
23053
- currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _749 => _749.inputTokensSize]), () => ( null)),
23054
- currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _750 => _750.outputTokensSize]), () => ( null)),
23116
+ currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _756 => _756.provider]), () => ( modelProvider)), () => ( null)),
23117
+ currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _757 => _757.modelLabel]), () => ( modelLabel)), () => ( null)),
23118
+ currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _758 => _758.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _759 => _759.contextWindowMaxTokens]))), () => ( null)),
23119
+ currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _760 => _760.inputTokensSize]), () => ( null)),
23120
+ currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _761 => _761.outputTokensSize]), () => ( null)),
23055
23121
  currentCacheHitRatePct: null,
23056
23122
  currentUsageBreakdown: null,
23057
23123
  // Dialog management
@@ -23173,7 +23239,7 @@ function useUnifiedChat(options) {
23173
23239
  []
23174
23240
  );
23175
23241
  const displayRefForward = _react.useCallback.call(void 0,
23176
- (ref) => _optionalChain([activeStateRef, 'access', _751 => _751.current, 'access', _752 => _752.displayRef, 'optionalCall', _753 => _753(ref)]),
23242
+ (ref) => _optionalChain([activeStateRef, 'access', _762 => _762.current, 'access', _763 => _763.displayRef, 'optionalCall', _764 => _764(ref)]),
23177
23243
  []
23178
23244
  );
23179
23245
  const displayRef = activeState.displayRef ? displayRefForward : void 0;
@@ -23183,7 +23249,7 @@ function useUnifiedChat(options) {
23183
23249
  const renameDialog = _react.useCallback.call(void 0, (id, title) => activeStateRef.current.renameDialog(id, title), []);
23184
23250
  const archiveDialog = _react.useCallback.call(void 0, (id) => activeStateRef.current.archiveDialog(id), []);
23185
23251
  const loadMoreDialogs = _react.useCallback.call(void 0, () => activeStateRef.current.loadMoreDialogs(), []);
23186
- const setDialogScope = _react.useCallback.call(void 0, (scope) => _optionalChain([activeStateRef, 'access', _754 => _754.current, 'access', _755 => _755.setDialogScope, 'optionalCall', _756 => _756(scope)]), []);
23252
+ const setDialogScope = _react.useCallback.call(void 0, (scope) => _optionalChain([activeStateRef, 'access', _765 => _765.current, 'access', _766 => _766.setDialogScope, 'optionalCall', _767 => _767(scope)]), []);
23187
23253
  const reloadDialogs = _react.useCallback.call(void 0, () => activeStateRef.current.reloadDialogs(), []);
23188
23254
  const loadMoreMessages = _react.useCallback.call(void 0, () => activeStateRef.current.loadMoreMessages(), []);
23189
23255
  const approveRequest = _react.useCallback.call(void 0, (requestId) => activeStateRef.current.approveRequest(requestId), []);
@@ -23293,19 +23359,19 @@ function turnRequestKeys(content) {
23293
23359
  if (!Array.isArray(content)) return keys;
23294
23360
  for (const seg of content) {
23295
23361
  if (seg.type === "tool_execution") {
23296
- const id = _optionalChain([seg, 'access', _757 => _757.data, 'optionalAccess', _758 => _758.toolExecutionRequestId]);
23362
+ const id = _optionalChain([seg, 'access', _768 => _768.data, 'optionalAccess', _769 => _769.toolExecutionRequestId]);
23297
23363
  if (id) keys.add(id);
23298
23364
  } else if (seg.type === "approval_request") {
23299
- const id = _optionalChain([seg, 'access', _759 => _759.data, 'optionalAccess', _760 => _760.requestId]);
23365
+ const id = _optionalChain([seg, 'access', _770 => _770.data, 'optionalAccess', _771 => _771.requestId]);
23300
23366
  if (id) keys.add(id);
23301
23367
  } else if (seg.type === "escalation_offer") {
23302
- const id = _optionalChain([seg, 'access', _761 => _761.data, 'optionalAccess', _762 => _762.offerId]);
23368
+ const id = _optionalChain([seg, 'access', _772 => _772.data, 'optionalAccess', _773 => _773.offerId]);
23303
23369
  if (id) keys.add(id);
23304
23370
  } else if (seg.type === "approval_batch") {
23305
23371
  const data = seg.data;
23306
- if (_optionalChain([data, 'optionalAccess', _763 => _763.approvalRequestId])) keys.add(data.approvalRequestId);
23307
- for (const call of _nullishCoalesce(_optionalChain([data, 'optionalAccess', _764 => _764.toolCalls]), () => ( []))) {
23308
- if (_optionalChain([call, 'optionalAccess', _765 => _765.toolExecutionRequestId])) keys.add(call.toolExecutionRequestId);
23372
+ if (_optionalChain([data, 'optionalAccess', _774 => _774.approvalRequestId])) keys.add(data.approvalRequestId);
23373
+ for (const call of _nullishCoalesce(_optionalChain([data, 'optionalAccess', _775 => _775.toolCalls]), () => ( []))) {
23374
+ if (_optionalChain([call, 'optionalAccess', _776 => _776.toolExecutionRequestId])) keys.add(call.toolExecutionRequestId);
23309
23375
  }
23310
23376
  }
23311
23377
  }
@@ -23390,18 +23456,18 @@ function mergeHistoryWithRealtime(input) {
23390
23456
  }
23391
23457
  }
23392
23458
  const trailing = processedHistory[processedHistory.length - 1];
23393
- const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _766 => _766.role]) === "assistant" ? trailing : null;
23394
- const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _767 => _767.content, 'access', _768 => _768.find, 'call', _769 => _769((s) => s.type === "approval_batch"), 'optionalAccess', _770 => _770.data, 'optionalAccess', _771 => _771.approvalRequestId]), () => ( null)) : null;
23459
+ const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _777 => _777.role]) === "assistant" ? trailing : null;
23460
+ const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _778 => _778.content, 'access', _779 => _779.find, 'call', _780 => _780((s) => s.type === "approval_batch"), 'optionalAccess', _781 => _781.data, 'optionalAccess', _782 => _782.approvalRequestId]), () => ( null)) : null;
23395
23461
  let processedToUse = processedHistory;
23396
23462
  const pinnedSyntheticIds = /* @__PURE__ */ new Set();
23397
23463
  const droppedSyntheticIds = /* @__PURE__ */ new Set();
23398
23464
  if (historyBatchId) {
23399
23465
  const batchTwins = existingMessages.filter(
23400
- (m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some((s) => s.type === "approval_batch" && _optionalChain([s, 'access', _772 => _772.data, 'optionalAccess', _773 => _773.approvalRequestId]) === historyBatchId)
23466
+ (m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some((s) => s.type === "approval_batch" && _optionalChain([s, 'access', _783 => _783.data, 'optionalAccess', _784 => _784.approvalRequestId]) === historyBatchId)
23401
23467
  );
23402
23468
  const existingWithSameBatch = _nullishCoalesce(batchTwins.find((m) => m.id === streamingMessageId), () => ( batchTwins[batchTwins.length - 1]));
23403
23469
  if (existingWithSameBatch && Array.isArray(existingWithSameBatch.content)) {
23404
- const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _774 => _774.content])) ? historyTrailingAssistant.content.length : 0;
23470
+ const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _785 => _785.content])) ? historyTrailingAssistant.content.length : 0;
23405
23471
  const realtimeSize = existingWithSameBatch.content.length;
23406
23472
  if (existingWithSameBatch.id === streamingMessageId || realtimeSize > histSize) {
23407
23473
  processedToUse = processedHistory.slice(0, -1);
@@ -23434,9 +23500,9 @@ function mergeHistoryWithRealtime(input) {
23434
23500
  const trailingAssistantText = lastProcessed && lastProcessed.role === "assistant" ? assistantAnswerText(lastProcessed.content) : "";
23435
23501
  const windowSignals = collectTwinSignals(processedToUse);
23436
23502
  const seenUserSyntheticByContent = /* @__PURE__ */ new Map();
23437
- const isInWindow = (m) => processedIds.has(m.id) || (_nullishCoalesce(_optionalChain([rawHistoryIds, 'optionalAccess', _775 => _775.has, 'call', _776 => _776(m.id)]), () => ( false)));
23503
+ const isInWindow = (m) => processedIds.has(m.id) || (_nullishCoalesce(_optionalChain([rawHistoryIds, 'optionalAccess', _786 => _786.has, 'call', _787 => _787(m.id)]), () => ( false)));
23438
23504
  const firstWindowIndex = existingMessages.findIndex(isInWindow);
23439
- const isPersistedOlder = (m) => !isClientMintedId(m.id) && (_nullishCoalesce(_optionalChain([m, 'access', _777 => _777.timestamp, 'optionalAccess', _778 => _778.getTime, 'call', _779 => _779()]), () => ( 0))) <= historyFetchedAt;
23505
+ const isPersistedOlder = (m) => !isClientMintedId(m.id) && (_nullishCoalesce(_optionalChain([m, 'access', _788 => _788.timestamp, 'optionalAccess', _789 => _789.getTime, 'call', _790 => _790()]), () => ( 0))) <= historyFetchedAt;
23440
23506
  let lastOlderPersistedIndex = -1;
23441
23507
  if (firstWindowIndex < 0) {
23442
23508
  for (const [index, m] of existingMessages.entries()) {
@@ -23454,7 +23520,7 @@ function mergeHistoryWithRealtime(input) {
23454
23520
  } else if (pm.role === "assistant") {
23455
23521
  windowHasUnstampedAssistant = true;
23456
23522
  }
23457
- const time = _optionalChain([pm, 'access', _780 => _780.timestamp, 'optionalAccess', _781 => _781.getTime, 'call', _782 => _782()]);
23523
+ const time = _optionalChain([pm, 'access', _791 => _791.timestamp, 'optionalAccess', _792 => _792.getTime, 'call', _793 => _793()]);
23458
23524
  if (typeof time === "number" && time < windowMinTime) windowMinTime = time;
23459
23525
  }
23460
23526
  const threadHasClientMintedRow = existingMessages.some((m) => isClientMintedId(m.id));
@@ -23472,14 +23538,14 @@ function mergeHistoryWithRealtime(input) {
23472
23538
  const verdict = twinVerdict(windowSignals, m);
23473
23539
  return verdict === "unknown" ? !seqCanMislead(m) : verdict === "distinct";
23474
23540
  }
23475
- const time = _optionalChain([m, 'access', _783 => _783.timestamp, 'optionalAccess', _784 => _784.getTime, 'call', _785 => _785()]);
23541
+ const time = _optionalChain([m, 'access', _794 => _794.timestamp, 'optionalAccess', _795 => _795.getTime, 'call', _796 => _796()]);
23476
23542
  if (typeof time !== "number" || time > historyFetchedAt) return false;
23477
23543
  if (!Number.isFinite(windowMinTime) || time >= windowMinTime) return false;
23478
23544
  return twinVerdict(windowSignals, m) === "distinct";
23479
23545
  };
23480
23546
  const keepRealtime = (m) => {
23481
23547
  if (m.role === "user" && isOptimisticId(m.id) && typeof m.content === "string") {
23482
- const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _786 => _786.timestamp, 'optionalAccess', _787 => _787.getTime, 'call', _788 => _788()]), () => ( 0))) <= historyFetchedAt;
23548
+ const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _797 => _797.timestamp, 'optionalAccess', _798 => _798.getTime, 'call', _799 => _799()]), () => ( 0))) <= historyFetchedAt;
23483
23549
  return !(canBeInSnapshot && windowSignals.userContents.has(userTwinKey(m)));
23484
23550
  }
23485
23551
  if (isSyntheticRealtimeId(m.id) && m.id !== streamingMessageId) {
@@ -23504,7 +23570,7 @@ function mergeHistoryWithRealtime(input) {
23504
23570
  } else if (typeof m.streamSeq === "number") {
23505
23571
  covered = historyMaxStreamSeq > 0 && historyMaxStreamSeq >= m.streamSeq;
23506
23572
  } else {
23507
- covered = historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _789 => _789.timestamp, 'optionalAccess', _790 => _790.getTime, 'call', _791 => _791()]), () => ( 0))) <= historyFetchedAt;
23573
+ covered = historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _800 => _800.timestamp, 'optionalAccess', _801 => _801.getTime, 'call', _802 => _802()]), () => ( 0))) <= historyFetchedAt;
23508
23574
  }
23509
23575
  if (covered) return false;
23510
23576
  }
@@ -23599,7 +23665,7 @@ function normalizeHistoricalMessageData(md) {
23599
23665
  function isHistoricalUserTurn(m) {
23600
23666
  return !!m.owner;
23601
23667
  }
23602
- var isTextSegment = (d) => _optionalChain([d, 'optionalAccess', _792 => _792.type]) === "TEXT" && typeof d.text === "string";
23668
+ var isTextSegment = (d) => _optionalChain([d, 'optionalAccess', _803 => _803.type]) === "TEXT" && typeof d.text === "string";
23603
23669
  var THINK_MS = 550;
23604
23670
  var TOKEN_MS = 55;
23605
23671
  var USER_MS = 480;
@@ -23696,8 +23762,8 @@ function useResizablePanelSize({
23696
23762
  }) : null,
23697
23763
  [enabled, storageKey]
23698
23764
  );
23699
- const [held, setChosen] = _react.useState.call(void 0, () => ({ storage, size: _nullishCoalesce(_optionalChain([storage, 'optionalAccess', _793 => _793.load, 'call', _794 => _794(), 'optionalAccess', _795 => _795.size]), () => ( null)) }));
23700
- const chosen = held.storage === storage ? held : { storage, size: _nullishCoalesce(_optionalChain([storage, 'optionalAccess', _796 => _796.load, 'call', _797 => _797(), 'optionalAccess', _798 => _798.size]), () => ( null)) };
23765
+ const [held, setChosen] = _react.useState.call(void 0, () => ({ storage, size: _nullishCoalesce(_optionalChain([storage, 'optionalAccess', _804 => _804.load, 'call', _805 => _805(), 'optionalAccess', _806 => _806.size]), () => ( null)) }));
23766
+ const chosen = held.storage === storage ? held : { storage, size: _nullishCoalesce(_optionalChain([storage, 'optionalAccess', _807 => _807.load, 'call', _808 => _808(), 'optionalAccess', _809 => _809.size]), () => ( null)) };
23701
23767
  if (chosen !== held) setChosen(chosen);
23702
23768
  const chosenSize = chosen.size;
23703
23769
  const clampSize = _react.useCallback.call(void 0,
@@ -23713,7 +23779,7 @@ function useResizablePanelSize({
23713
23779
  (next) => {
23714
23780
  const nextSize = Math.round(clampSize(next));
23715
23781
  setChosen({ storage, size: nextSize });
23716
- _optionalChain([storage, 'optionalAccess', _799 => _799.save, 'call', _800 => _800({ size: nextSize })]);
23782
+ _optionalChain([storage, 'optionalAccess', _810 => _810.save, 'call', _811 => _811({ size: nextSize })]);
23717
23783
  },
23718
23784
  [clampSize, storage]
23719
23785
  );
@@ -24303,7 +24369,7 @@ function useChatDialogManager({
24303
24369
  const handleConfirmRestore = _react.useCallback.call(void 0, async () => {
24304
24370
  if (restoreTarget) {
24305
24371
  try {
24306
- await _optionalChain([unarchiveDialog, 'optionalCall', _801 => _801(restoreTarget.id)]);
24372
+ await _optionalChain([unarchiveDialog, 'optionalCall', _812 => _812(restoreTarget.id)]);
24307
24373
  } catch (err) {
24308
24374
  console.error("[useChatDialogManager] unarchive failed:", err);
24309
24375
  return;
@@ -24314,7 +24380,7 @@ function useChatDialogManager({
24314
24380
  setRestoreTarget(null);
24315
24381
  }, [restoreTarget, unarchiveDialog]);
24316
24382
  const hostDialog = hostActiveDialog != null && hostActiveDialog.id === activeDialogId ? hostActiveDialog : void 0;
24317
- const isViewingArchived = viewingArchivedId != null && viewingArchivedId === activeDialogId || _optionalChain([hostDialog, 'optionalAccess', _802 => _802.archived]) === true;
24383
+ const isViewingArchived = viewingArchivedId != null && viewingArchivedId === activeDialogId || _optionalChain([hostDialog, 'optionalAccess', _813 => _813.archived]) === true;
24318
24384
  const handleBack = _react.useCallback.call(void 0, () => {
24319
24385
  const wasArchived = isViewingArchived;
24320
24386
  setViewingArchivedId(null);
@@ -24870,7 +24936,7 @@ function EmbeddableChatInner({
24870
24936
  }),
24871
24937
  [commandsUrl]
24872
24938
  );
24873
- const headerUserName = _optionalChain([identityUser, 'optionalAccess', _803 => _803.name, 'optionalAccess', _804 => _804.trim, 'call', _805 => _805()]) || [_optionalChain([identityUser, 'optionalAccess', _806 => _806.firstName]), _optionalChain([identityUser, 'optionalAccess', _807 => _807.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([userDisplayName, 'optionalAccess', _808 => _808.trim, 'call', _809 => _809()]) || void 0;
24939
+ const headerUserName = _optionalChain([identityUser, 'optionalAccess', _814 => _814.name, 'optionalAccess', _815 => _815.trim, 'call', _816 => _816()]) || [_optionalChain([identityUser, 'optionalAccess', _817 => _817.firstName]), _optionalChain([identityUser, 'optionalAccess', _818 => _818.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([userDisplayName, 'optionalAccess', _819 => _819.trim, 'call', _820 => _820()]) || void 0;
24874
24940
  const effectiveModes = _react.useMemo.call(void 0, () => {
24875
24941
  if (modes) return modes;
24876
24942
  const guideOptions = tableIdForDocumentType ? { tableIdForDocumentType } : {};
@@ -24885,7 +24951,7 @@ function EmbeddableChatInner({
24885
24951
  if (controlledActiveMode === void 0) {
24886
24952
  setUncontrolledActiveMode(next);
24887
24953
  }
24888
- _optionalChain([onActiveModeChange, 'optionalCall', _810 => _810(next)]);
24954
+ _optionalChain([onActiveModeChange, 'optionalCall', _821 => _821(next)]);
24889
24955
  },
24890
24956
  [controlledActiveMode, onActiveModeChange]
24891
24957
  );
@@ -24912,7 +24978,7 @@ function EmbeddableChatInner({
24912
24978
  );
24913
24979
  const effectiveAssistantName = emptyStateConfig.name;
24914
24980
  const effectiveAssistantIcon = emptyStateConfig.icon;
24915
- const headerAssistantName = _nullishCoalesce(effectiveAssistantName, () => ( (typeof _optionalChain([guideWelcome, 'optionalAccess', _811 => _811.title]) === "string" ? guideWelcome.title : null)));
24981
+ const headerAssistantName = _nullishCoalesce(effectiveAssistantName, () => ( (typeof _optionalChain([guideWelcome, 'optionalAccess', _822 => _822.title]) === "string" ? guideWelcome.title : null)));
24916
24982
  const {
24917
24983
  messages: rawMessages,
24918
24984
  isLoading: chatLoading,
@@ -24969,8 +25035,8 @@ function EmbeddableChatInner({
24969
25035
  const mingoCaps = _react.useMemo.call(void 0,
24970
25036
  () => ({
24971
25037
  ...dialogCapabilities,
24972
- canRename: _nullishCoalesce(_optionalChain([dialogCapabilities, 'optionalAccess', _812 => _812.canRename]), () => ( false)),
24973
- canArchive: _nullishCoalesce(_optionalChain([dialogCapabilities, 'optionalAccess', _813 => _813.canArchive]), () => ( false))
25038
+ canRename: _nullishCoalesce(_optionalChain([dialogCapabilities, 'optionalAccess', _823 => _823.canRename]), () => ( false)),
25039
+ canArchive: _nullishCoalesce(_optionalChain([dialogCapabilities, 'optionalAccess', _824 => _824.canArchive]), () => ( false))
24974
25040
  }),
24975
25041
  [dialogCapabilities]
24976
25042
  );
@@ -24985,7 +25051,7 @@ function EmbeddableChatInner({
24985
25051
  void sendMessage(guidePendingPrompt).catch((err) => {
24986
25052
  console.error("[EmbeddableChat] guide launcher prompt failed:", err);
24987
25053
  });
24988
- _optionalChain([onGuidePromptConsumed, 'optionalCall', _814 => _814()]);
25054
+ _optionalChain([onGuidePromptConsumed, 'optionalCall', _825 => _825()]);
24989
25055
  }, [guidePendingPrompt, activeMode, sendMessage, onGuidePromptConsumed]);
24990
25056
  const {
24991
25057
  attachments: stagedAttachments,
@@ -24996,7 +25062,7 @@ function EmbeddableChatInner({
24996
25062
  clear: clearAttachments
24997
25063
  } = useChatAttachments();
24998
25064
  const { panelRef: galleryPanelRef, modal: galleryModal } = useChatAttachmentImageGallery();
24999
- const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _815 => _815.maxItems]), () => ( 10));
25065
+ const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _826 => _826.maxItems]), () => ( 10));
25000
25066
  const contextPickerForMode = activeMode === "mingo" ? contextPicker : void 0;
25001
25067
  const [contextItems, setContextItems] = _react.useState.call(void 0, NO_CONTEXT_ITEMS);
25002
25068
  const [contextPickerOpen, setContextPickerOpen] = _react.useState.call(void 0, false);
@@ -25025,10 +25091,10 @@ function EmbeddableChatInner({
25025
25091
  }, [composerKey, clearAttachments]);
25026
25092
  const mentionMarkerByType = _react.useMemo.call(void 0, () => {
25027
25093
  const m = /* @__PURE__ */ new Map();
25028
- for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _816 => _816.entityTypes]), () => ( []))) if (t.marker) m.set(t.type, t.marker);
25094
+ for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _827 => _827.entityTypes]), () => ( []))) if (t.marker) m.set(t.type, t.marker);
25029
25095
  return m;
25030
- }, [_optionalChain([contextPicker, 'optionalAccess', _817 => _817.entityTypes])]);
25031
- const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess', _818 => _818.entityTypes]);
25096
+ }, [_optionalChain([contextPicker, 'optionalAccess', _828 => _828.entityTypes])]);
25097
+ const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess', _829 => _829.entityTypes]);
25032
25098
  const resolveContextIcon = _react.useMemo.call(void 0, () => {
25033
25099
  const byType = /* @__PURE__ */ new Map();
25034
25100
  for (const t of _nullishCoalesce(contextEntityTypes, () => ( []))) byType.set(t.type, t.icon);
@@ -25040,7 +25106,7 @@ function EmbeddableChatInner({
25040
25106
  if (mentionActiveRef.current) {
25041
25107
  if (contextItems.some((p) => `${p.type}:${p.id}` === key)) return;
25042
25108
  if (contextItems.length >= contextMaxItems) return;
25043
- _optionalChain([chatInputRef, 'access', _819 => _819.current, 'optionalAccess', _820 => _820.commitMention, 'call', _821 => _821(mentionTokenOf(key, mentionMarkerByType), {
25109
+ _optionalChain([chatInputRef, 'access', _830 => _830.current, 'optionalAccess', _831 => _831.commitMention, 'call', _832 => _832(mentionTokenOf(key, mentionMarkerByType), {
25044
25110
  label: item.label,
25045
25111
  icon: resolveContextIcon(item)
25046
25112
  })]);
@@ -25063,9 +25129,9 @@ function EmbeddableChatInner({
25063
25129
  setContextItems((prev) => prev.filter((p) => `${p.type}:${p.id}` !== key));
25064
25130
  if (mentionKeysRef.current.has(key)) {
25065
25131
  mentionKeysRef.current.delete(key);
25066
- const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _822 => _822.current, 'optionalAccess', _823 => _823.getValue, 'call', _824 => _824()]), () => ( ""));
25132
+ const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _833 => _833.current, 'optionalAccess', _834 => _834.getValue, 'call', _835 => _835()]), () => ( ""));
25067
25133
  const next = cur.replace(`@${mentionTokenOf(key, mentionMarkerByType)}`, "").replace(/\s{2,}/g, " ").trimStart();
25068
- _optionalChain([chatInputRef, 'access', _825 => _825.current, 'optionalAccess', _826 => _826.setValue, 'call', _827 => _827(next)]);
25134
+ _optionalChain([chatInputRef, 'access', _836 => _836.current, 'optionalAccess', _837 => _837.setValue, 'call', _838 => _838(next)]);
25069
25135
  }
25070
25136
  },
25071
25137
  [mentionMarkerByType]
@@ -25087,7 +25153,7 @@ function EmbeddableChatInner({
25087
25153
  }, []);
25088
25154
  const closeContextPicker = _react.useCallback.call(void 0, () => {
25089
25155
  if (mentionActiveRef.current) {
25090
- _optionalChain([chatInputRef, 'access', _828 => _828.current, 'optionalAccess', _829 => _829.removeMentionTrigger, 'call', _830 => _830()]);
25156
+ _optionalChain([chatInputRef, 'access', _839 => _839.current, 'optionalAccess', _840 => _840.removeMentionTrigger, 'call', _841 => _841()]);
25091
25157
  }
25092
25158
  setContextPickerOpen(false);
25093
25159
  setMentionQuery(null);
@@ -25124,8 +25190,8 @@ function EmbeddableChatInner({
25124
25190
  [effectiveAssistantIcon]
25125
25191
  );
25126
25192
  const [timestampCache] = _react.useState.call(void 0, () => /* @__PURE__ */ new Map());
25127
- const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess', _831 => _831.firstName]), _optionalChain([identityUser, 'optionalAccess', _832 => _832.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([identityUser, 'optionalAccess', _833 => _833.name, 'optionalAccess', _834 => _834.trim, 'call', _835 => _835()]) || void 0 : void 0;
25128
- const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess', _836 => _836.avatarUrl, 'optionalAccess', _837 => _837.trim, 'call', _838 => _838()]) || void 0 : void 0;
25193
+ const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess', _842 => _842.firstName]), _optionalChain([identityUser, 'optionalAccess', _843 => _843.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([identityUser, 'optionalAccess', _844 => _844.name, 'optionalAccess', _845 => _845.trim, 'call', _846 => _846()]) || void 0 : void 0;
25194
+ const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess', _847 => _847.avatarUrl, 'optionalAccess', _848 => _848.trim, 'call', _849 => _849()]) || void 0 : void 0;
25129
25195
  const messages = _react.useMemo.call(void 0, () => {
25130
25196
  const options = { userName: guideUserName, userAvatar: guideUserAvatar, timestampCache };
25131
25197
  const mapped = rawMessages.map((m) => mapHostMessage(m, options));
@@ -25328,7 +25394,7 @@ function EmbeddableChatInner({
25328
25394
  _react.useEffect.call(void 0, () => {
25329
25395
  if (!panelBoundary || typeof ResizeObserver === "undefined") return void 0;
25330
25396
  const ro = new ResizeObserver((entries) => {
25331
- const w = _optionalChain([entries, 'access', _839 => _839[0], 'optionalAccess', _840 => _840.contentRect, 'optionalAccess', _841 => _841.width]);
25397
+ const w = _optionalChain([entries, 'access', _850 => _850[0], 'optionalAccess', _851 => _851.contentRect, 'optionalAccess', _852 => _852.width]);
25332
25398
  if (typeof w === "number") setCanSplit(w >= splitMinWidth);
25333
25399
  });
25334
25400
  ro.observe(panelBoundary);
@@ -25374,18 +25440,18 @@ function EmbeddableChatInner({
25374
25440
  const stackedListView = isMingoMode && !hasConversation && !archiveOpen && !wideMingo && !composeOpen && !emptyListSkipped;
25375
25441
  const headerShowBack = hasConversation || guideCanReturnToMingo;
25376
25442
  const freshConversationTitle = isGuideEmpty ? _nullishCoalesce(headerAssistantName, () => ( "Mingo Guide")) : "New Chat";
25377
- const headerTitle = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _842 => _842.title]) || freshConversationTitle : isGuideEmpty ? freshConversationTitle : "Current Chats";
25443
+ const headerTitle = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _853 => _853.title]) || freshConversationTitle : isGuideEmpty ? freshConversationTitle : "Current Chats";
25378
25444
  const headerBackAriaLabel = hasConversation ? isViewingArchived ? "Back to archive" : "Back" : "Back to Mingo";
25379
25445
  const headerOnBack = hasConversation ? handleBack : () => handleActiveModeChange("mingo");
25380
25446
  const headerOnRestore = isViewingArchived && unarchiveDialog && activeDialog ? () => setRestoreTarget(activeDialog) : void 0;
25381
25447
  const headerOnRename = activeDialogId && activeDialog && mingoCaps.canRename ? () => setRenameTarget(activeDialog) : void 0;
25382
25448
  const headerOnArchive = activeDialogId && activeDialog && mingoCaps.canArchive ? () => setArchiveTarget(activeDialog) : void 0;
25383
- const headerOnCopyLink = activeDialogId && activeDialog && mingoCaps.onCopyLink ? () => _optionalChain([mingoCaps, 'access', _843 => _843.onCopyLink, 'optionalCall', _844 => _844(activeDialog)]) : void 0;
25384
- const headerOnCompact = activeDialogId && activeDialog && mingoCaps.compactDialog ? () => _optionalChain([mingoCaps, 'access', _845 => _845.compactDialog, 'optionalCall', _846 => _846(activeDialog)]) : void 0;
25449
+ const headerOnCopyLink = activeDialogId && activeDialog && mingoCaps.onCopyLink ? () => _optionalChain([mingoCaps, 'access', _854 => _854.onCopyLink, 'optionalCall', _855 => _855(activeDialog)]) : void 0;
25450
+ const headerOnCompact = activeDialogId && activeDialog && mingoCaps.compactDialog ? () => _optionalChain([mingoCaps, 'access', _856 => _856.compactDialog, 'optionalCall', _857 => _857(activeDialog)]) : void 0;
25385
25451
  const headerOnOpenArchive = fetchArchivedDialogs ? openArchive : void 0;
25386
- const headerOwner = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _847 => _847.owner]) : void 0;
25387
- const headerPersonName = _optionalChain([headerOwner, 'optionalAccess', _848 => _848.name, 'optionalAccess', _849 => _849.trim, 'call', _850 => _850()]) || headerUserName;
25388
- const headerPersonAvatarUrl = headerOwner ? _optionalChain([headerOwner, 'access', _851 => _851.avatarUrl, 'optionalAccess', _852 => _852.trim, 'call', _853 => _853()]) || void 0 : _optionalChain([identityUser, 'optionalAccess', _854 => _854.avatarUrl, 'optionalAccess', _855 => _855.trim, 'call', _856 => _856()]) || _optionalChain([userAvatarUrl, 'optionalAccess', _857 => _857.trim, 'call', _858 => _858()]) || void 0;
25452
+ const headerOwner = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _858 => _858.owner]) : void 0;
25453
+ const headerPersonName = _optionalChain([headerOwner, 'optionalAccess', _859 => _859.name, 'optionalAccess', _860 => _860.trim, 'call', _861 => _861()]) || headerUserName;
25454
+ const headerPersonAvatarUrl = headerOwner ? _optionalChain([headerOwner, 'access', _862 => _862.avatarUrl, 'optionalAccess', _863 => _863.trim, 'call', _864 => _864()]) || void 0 : _optionalChain([identityUser, 'optionalAccess', _865 => _865.avatarUrl, 'optionalAccess', _866 => _866.trim, 'call', _867 => _867()]) || _optionalChain([userAvatarUrl, 'optionalAccess', _868 => _868.trim, 'call', _869 => _869()]) || void 0;
25389
25455
  const headerAvatar = headerPersonName || headerPersonAvatarUrl ? { name: headerPersonName, avatarUrl: headerPersonAvatarUrl } : void 0;
25390
25456
  const handleNewChat = _react.useCallback.call(void 0, () => {
25391
25457
  resetToNewChat();
@@ -25764,7 +25830,7 @@ function EmbeddableChatInner({
25764
25830
  onNewChat: () => setComposeOpen(true),
25765
25831
  onExpand: onExpand && (() => {
25766
25832
  const last = lastDialogIdRef.current;
25767
- const target = last && dialogs.some((d) => d.id === last) ? last : _optionalChain([dialogs, 'access', _859 => _859[0], 'optionalAccess', _860 => _860.id]);
25833
+ const target = last && dialogs.some((d) => d.id === last) ? last : _optionalChain([dialogs, 'access', _870 => _870[0], 'optionalAccess', _871 => _871.id]);
25768
25834
  if (archiveOpen) closeArchive();
25769
25835
  if (target) handleSelectDialog(target);
25770
25836
  else handleNewChat();
@@ -25871,9 +25937,9 @@ function EmbeddableChatInner({
25871
25937
  subtitle: _nullishCoalesce(effectiveGreeting, () => ( void 0)),
25872
25938
  subtitleLoading: emptyStateLoading,
25873
25939
  ...guideWelcome,
25874
- title: _nullishCoalesce(effectiveAssistantName, () => ( _optionalChain([guideWelcome, 'optionalAccess', _861 => _861.title]))),
25875
- icon: _nullishCoalesce(effectiveAssistantIcon, () => ( _optionalChain([guideWelcome, 'optionalAccess', _862 => _862.icon]))),
25876
- quickActions: agentConfigUrl && guideSuggestedActions.length > 0 ? guideSuggestedActions : _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess', _863 => _863.quickActions]), () => ( guideSuggestedActions)),
25940
+ title: _nullishCoalesce(effectiveAssistantName, () => ( _optionalChain([guideWelcome, 'optionalAccess', _872 => _872.title]))),
25941
+ icon: _nullishCoalesce(effectiveAssistantIcon, () => ( _optionalChain([guideWelcome, 'optionalAccess', _873 => _873.icon]))),
25942
+ quickActions: agentConfigUrl && guideSuggestedActions.length > 0 ? guideSuggestedActions : _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess', _874 => _874.quickActions]), () => ( guideSuggestedActions)),
25877
25943
  onQuickAction: (action) => {
25878
25944
  setQuickActionPreview(null);
25879
25945
  handleSend(_nullishCoalesce(action.prompt, () => ( action.label)));
@@ -25948,8 +26014,8 @@ function EmbeddableChatInner({
25948
26014
  selectedContextItems: contextItems,
25949
26015
  onToggleContextItem: toggleContextItem,
25950
26016
  onRemoveContextItem: removeContextItem,
25951
- contextMemoryItems: _optionalChain([contextMemory, 'optionalAccess', _864 => _864.items]),
25952
- onRemoveContextMemoryItem: _optionalChain([contextMemory, 'optionalAccess', _865 => _865.onRemove]),
26017
+ contextMemoryItems: _optionalChain([contextMemory, 'optionalAccess', _875 => _875.items]),
26018
+ onRemoveContextMemoryItem: _optionalChain([contextMemory, 'optionalAccess', _876 => _876.onRemove]),
25953
26019
  contextPickerOpen,
25954
26020
  onOpenContextPicker: openContextPicker,
25955
26021
  onCloseContextPicker: closeContextPicker,
@@ -26162,7 +26228,7 @@ var GROUPS = [
26162
26228
  }
26163
26229
  ];
26164
26230
  function maskKey(key) {
26165
- const prefix = _nullishCoalesce(_optionalChain([/^fpk_[a-z0-9-]+_/i, 'access', _866 => _866.exec, 'call', _867 => _867(key), 'optionalAccess', _868 => _868[0]]), () => ( ""));
26231
+ const prefix = _nullishCoalesce(_optionalChain([/^fpk_[a-z0-9-]+_/i, 'access', _877 => _877.exec, 'call', _878 => _878(key), 'optionalAccess', _879 => _879[0]]), () => ( ""));
26166
26232
  return key.length - prefix.length <= 8 ? `${prefix}\u2022\u2022\u2022\u2022` : `${prefix}\u2026${key.slice(-4)}`;
26167
26233
  }
26168
26234
  function HeaderName({ children }) {
@@ -26199,8 +26265,8 @@ function ProxyCredentialsForm({ description, saved }) {
26199
26265
  const errors = _react.useMemo.call(void 0, () => {
26200
26266
  const out = {};
26201
26267
  for (const { field } of _chunkULWVKHSIcjs.EMBED_PROXY_OPTIONAL_HEADERS) {
26202
- const value = _optionalChain([optional, 'access', _869 => _869[field], 'optionalAccess', _870 => _870.trim, 'call', _871 => _871()]);
26203
- const message = value ? _optionalChain([OPTIONAL_FIELD_COPY, 'access', _872 => _872[field], 'access', _873 => _873.validate, 'optionalCall', _874 => _874(value)]) : null;
26268
+ const value = _optionalChain([optional, 'access', _880 => _880[field], 'optionalAccess', _881 => _881.trim, 'call', _882 => _882()]);
26269
+ const message = value ? _optionalChain([OPTIONAL_FIELD_COPY, 'access', _883 => _883[field], 'access', _884 => _884.validate, 'optionalCall', _885 => _885(value)]) : null;
26204
26270
  if (message) out[field] = message;
26205
26271
  }
26206
26272
  return out;
@@ -26212,12 +26278,12 @@ function ProxyCredentialsForm({ description, saved }) {
26212
26278
  ...keyForPreview ? [["Authorization", `Bearer ${keyForPreview}`]] : [],
26213
26279
  ...email.trim() ? [["X-Chat-Act-As", email.trim().toLowerCase()]] : [],
26214
26280
  ..._chunkULWVKHSIcjs.EMBED_PROXY_OPTIONAL_HEADERS.flatMap(({ field, header }) => {
26215
- const value = _optionalChain([optional, 'access', _875 => _875[field], 'optionalAccess', _876 => _876.trim, 'call', _877 => _877()]);
26281
+ const value = _optionalChain([optional, 'access', _886 => _886[field], 'optionalAccess', _887 => _887.trim, 'call', _888 => _888()]);
26216
26282
  return value ? [[header, value]] : [];
26217
26283
  })
26218
26284
  ];
26219
26285
  const save = () => {
26220
- const key = secret.trim() || _optionalChain([_chunkULWVKHSIcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _878 => _878.secret]);
26286
+ const key = secret.trim() || _optionalChain([_chunkULWVKHSIcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _889 => _889.secret]);
26221
26287
  const actAs = email.trim().toLowerCase();
26222
26288
  if (!key || !actAs || hasErrors) {
26223
26289
  setStatus(hasErrors ? "Fix the highlighted fields first." : "API key and act-as email are required.");
@@ -26833,5 +26899,4 @@ function ProxyCredentialsForm({ description, saved }) {
26833
26899
 
26834
26900
 
26835
26901
 
26836
-
26837
- exports.InfoHint = InfoHint; exports.Field = Field; exports.useScrollFade = useScrollFade; exports.ScrollFadeOverlay = ScrollFadeOverlay; exports.ScrollShadow = ScrollShadow; exports.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS = HUBSPOT_DO_NOT_COLLECT_FORM_PROPS; exports.useResizablePanelSize = useResizablePanelSize; exports.PanelResizeHandle = PanelResizeHandle; exports.OVERLAY_BACKDROP_CLASS = OVERLAY_BACKDROP_CLASS; exports.Drawer = Drawer; exports.DrawerTrigger = DrawerTrigger; exports.DrawerClose = DrawerClose; exports.DrawerPortal = DrawerPortal; exports.DrawerOverlay = DrawerOverlay; exports.DrawerContent = DrawerContent; exports.DrawerHeader = DrawerHeader; exports.DrawerTitle = DrawerTitle; exports.DrawerDescription = DrawerDescription; exports.DrawerBody = DrawerBody; exports.DrawerFooter = DrawerFooter; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.stripInlineMarkdown = stripInlineMarkdown; exports.markdownToPlainText = markdownToPlainText; exports.buildHeadingIdMap = buildHeadingIdMap; exports.useHeadingIdMap = useHeadingIdMap; exports.extractText = extractText; exports.useIsHydrated = useIsHydrated; exports.MermaidDiagram = MermaidDiagram; exports.hasRenderableSrc = hasRenderableSrc; exports.buildStandardLeafRenderers = buildStandardLeafRenderers; exports.SAFE_HTML_TAGS = SAFE_HTML_TAGS; exports.SVG_TAGS = SVG_TAGS; exports.buildEffectiveTagSet = buildEffectiveTagSet; exports.buildSanitizeSchema = buildSanitizeSchema; exports.rehypeStripUnsafe = rehypeStripUnsafe; exports.escapeUnknownHtmlTags = escapeUnknownHtmlTags; exports.cardAwareUrlTransform = cardAwareUrlTransform; exports.splitStreamingBlocks = splitStreamingBlocks; exports.completeStreamingTail = completeStreamingTail; exports.TEXT_SIZE_PRESETS = TEXT_SIZE_PRESETS; exports.resolveTextSizeConfig = resolveTextSizeConfig; exports.NO_BROKEN_LINKS = NO_BROKEN_LINKS; exports.MarkdownEngine = MarkdownEngine; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.FullscreenSwitchController = FullscreenSwitchController; exports.SOCIAL_PLATFORM_ALIASES = SOCIAL_PLATFORM_ALIASES; exports.normalizeSocialPlatform = normalizeSocialPlatform; exports.hostMatches = hostMatches; exports.SOCIAL_PLATFORM_ALT_HOSTS = SOCIAL_PLATFORM_ALT_HOSTS; exports.socialPlatformHosts = socialPlatformHosts; exports.classifySocialHost = classifySocialHost; exports.pickSocialLink = pickSocialLink; exports.HoverDropdown = HoverDropdown; exports.ChatAppearanceContext = ChatAppearanceContext; exports.useChatAppearance = useChatAppearance; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.EscalationOfferMessage = EscalationOfferMessage; exports.AiAssistantInfo = AiAssistantInfo; exports.TicketEscalatedMessage = TicketEscalatedMessage; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.TICKET_EVENT_KIND = TICKET_EVENT_KIND; exports.TicketEventMessage = TicketEventMessage; exports.SystemEventMessage = SystemEventMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.ThinkingDisplay = ThinkingDisplay; exports.AskDisplay = AskDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.MspOrganizationCard = MspOrganizationCard; exports.MspOrganizationCardSkeleton = MspOrganizationCardSkeleton; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.CONTEXT_ROW_CLASS = CONTEXT_ROW_CLASS; exports.CONTEXT_ICON_CLASS = CONTEXT_ICON_CLASS; exports.CONTEXT_LABEL_CLASS = CONTEXT_LABEL_CLASS; exports.CONTEXT_BACK_CLASS = CONTEXT_BACK_CLASS; exports.CONTEXT_STATE_CLASS = CONTEXT_STATE_CLASS; exports.ContextMenuRow = ContextMenuRow; exports.ContextItemsSkeleton = ContextItemsSkeleton; exports.ContextItemsList = ContextItemsList; exports.ContextErrorBoundary = ContextErrorBoundary; exports.CHAT_CONTEXT_ITEMS_DEFAULT_MAX = CHAT_CONTEXT_ITEMS_DEFAULT_MAX; exports.ChatComposerPlusMenu = ChatComposerPlusMenu; exports.ChatContextPicker = ChatContextPicker; exports.ChatContextChipStrip = ChatContextChipStrip; exports.BlockCard = BlockCard; exports.remarkCardLinks = remarkCardLinks; exports.remarkMentionChips = remarkMentionChips; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageSkeleton = ChatMessageSkeleton; exports.ChatMessageListSkeleton = ChatMessageListSkeleton; exports.ChatMessageList = ChatMessageList; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.getAgentAccent = getAgentAccent; exports.accentFromIdentityIcon = accentFromIdentityIcon; exports.isQuickActionIconSpec = isQuickActionIconSpec; exports.renderQuickActionIcon = renderQuickActionIcon; exports.QuickActionChipSkeleton = QuickActionChipSkeleton; exports.QuickActionChipButton = QuickActionChipButton; exports.QuickActionChipFromData = QuickActionChipFromData; exports.getPlatformProductionUrl = getPlatformProductionUrl; exports.getPlatformUrl = getPlatformUrl; exports.getDeploymentUrl = getDeploymentUrl; exports.isLocalUrl = isLocalUrl; exports.getRequestOrigin = getRequestOrigin; exports.resolveRedirectTarget = resolveRedirectTarget; exports.getAllPlatformBaseDomains = getAllPlatformBaseDomains; exports.AI_PROVIDERS = AI_PROVIDERS; exports.aiProvider = aiProvider; exports.TOKEN_RATE_EMPTY = TOKEN_RATE_EMPTY; exports.formatTokenRate = formatTokenRate; exports.tokenCost = tokenCost; exports.formatTokenAmount = formatTokenAmount; exports.tokensForBalance = tokensForBalance; exports.tokenRateProviderLabel = tokenRateProviderLabel; exports.groupTokenRatesByProvider = groupTokenRatesByProvider; exports.TRIAL_DAYS = TRIAL_DAYS; exports.TRIAL_LABELS = TRIAL_LABELS; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.SEO_DESCRIPTION_MAX_LENGTH = SEO_DESCRIPTION_MAX_LENGTH; exports.BRAND_MARK_SVGS = BRAND_MARK_SVGS; exports.brandMarkDataUri = brandMarkDataUri; exports.DESIGN_DOC_READINESS = DESIGN_DOC_READINESS; exports.DESIGN_DOC_READINESS_DISPLAY = DESIGN_DOC_READINESS_DISPLAY; exports.designDocReadiness = designDocReadiness; exports.formatCompletionLabel = formatCompletionLabel; exports.formatCompletionLabelWithBlockers = formatCompletionLabelWithBlockers; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; exports.TICKET_OPEN_PARAM = TICKET_OPEN_PARAM; exports.buildTicketOpenHref = buildTicketOpenHref; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.BITE_ID_RE = BITE_ID_RE; exports.generateBiteId = generateBiteId; exports.ensureBiteIds = ensureBiteIds; exports.matchBiteElement = matchBiteElement; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.DOWNLOAD_PAGE_PATH = DOWNLOAD_PAGE_PATH; exports.resolveMobileStoreUrl = resolveMobileStoreUrl; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.getCountryByName = getCountryByName; exports.getFlagFromCountryName = getFlagFromCountryName; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.COMPLIANCE_STANDARDS = COMPLIANCE_STANDARDS; exports.complianceStandardForName = complianceStandardForName; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.isDismissedCookieValue = isDismissedCookieValue; exports.readDismissCookie = readDismissCookie; exports.writeDismissCookie = writeDismissCookie; exports.clearDismissCookie = clearDismissCookie; exports.announcementDismissCookieName = announcementDismissCookieName; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.WALKTHROUGH_VIDEO_DISMISS_KEY = WALKTHROUGH_VIDEO_DISMISS_KEY; exports.walkthroughDismissCookieName = walkthroughDismissCookieName; exports.isWalkthroughDismissed = isWalkthroughDismissed; exports.dismissWalkthrough = dismissWalkthrough; exports.clearWalkthroughDismissal = clearWalkthroughDismissal; exports.WALKTHROUGH_OPEN_QUERY_PARAM = WALKTHROUGH_OPEN_QUERY_PARAM; exports.withWalkthroughOpenParam = withWalkthroughOpenParam; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.DOC_TABLE_TYPES = DOC_TABLE_TYPES; exports.groupsByTable = groupsByTable; exports.recordCountLabel = recordCountLabel; exports.buildGroupedSource = buildGroupedSource; exports.groupSourcesByTable = groupSourcesByTable; exports.formatCitationIndices = formatCitationIndices; exports.createSseSubscription = createSseSubscription; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.clickupTaskUrl = clickupTaskUrl; exports.ANNOUNCEMENT_CTA_DEFAULTS = ANNOUNCEMENT_CTA_DEFAULTS; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.ENTITY_QUOTES_TITLE = ENTITY_QUOTES_TITLE; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.openInNewTab = openInNewTab; exports.faqSectionSlug = faqSectionSlug; exports.faqItemAnchor = faqItemAnchor; exports.parseFaqHash = parseFaqHash; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.extractSections = extractSections; exports.SCHEDULING_SLUG_SHAPE = SCHEDULING_SLUG_SHAPE; exports.MAX_MONTH_OFFSET = MAX_MONTH_OFFSET; exports.normalizeSchedulingSlug = normalizeSchedulingSlug; exports.isValidSchedulingSlug = isValidSchedulingSlug; exports.parseSchedulingLinkName = parseSchedulingLinkName; exports.isListedSchedulingName = isListedSchedulingName; exports.schedulingAudienceKey = schedulingAudienceKey; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.FIRST_TOUCH_ATTRIBUTION_KEY = FIRST_TOUCH_ATTRIBUTION_KEY; exports.sanitizeLandingUrl = sanitizeLandingUrl; exports.parseAttributionFromUrl = parseAttributionFromUrl; exports.captureFirstTouchAttribution = captureFirstTouchAttribution; exports.getFirstTouchAttribution = getFirstTouchAttribution; exports.withFirstTouchAttribution = withFirstTouchAttribution; exports.clearFirstTouchAttribution = clearFirstTouchAttribution; exports.ODS_SPACING_TOKENS = ODS_SPACING_TOKENS; exports.ODS_SPACING_TOKEN_PATTERN = ODS_SPACING_TOKEN_PATTERN; exports.ODS_SPACING_PROPS = ODS_SPACING_PROPS; exports.TAILWIND_STEP_TO_ODS_TOKEN = TAILWIND_STEP_TO_ODS_TOKEN; exports.CSV_CONTENT_TYPE = CSV_CONTENT_TYPE; exports.csvEscape = csvEscape; exports.toCsv = toCsv; exports.copyrightLine = copyrightLine; exports.isValidPathPattern = isValidPathPattern; exports.matchesPathPattern = matchesPathPattern; exports.pathMatchesAny = pathMatchesAny; exports.ASK_AI_OPEN_EVENT = ASK_AI_OPEN_EVENT; exports.openAskAi = openAskAi; exports.MingoAiButton = MingoAiButton; exports.AskPrompts = AskPrompts; exports.AskCard = AskCard; exports.ASK_PROMPTS_DEFAULT_COUNT = ASK_PROMPTS_DEFAULT_COUNT; exports.buildAskPromptsUrl = buildAskPromptsUrl; exports.assistantAvailable = assistantAvailable; exports.useAskPrompts = useAskPrompts; exports.useAssistantOpen = useAssistantOpen; exports.useShownAskPrompts = useShownAskPrompts; exports.useShownAskPromptIds = useShownAskPromptIds; exports.AssistantAskPrompts = AssistantAskPrompts; exports.useMarqueeSync = useMarqueeSync; exports.getMarqueeTrackOffset = getMarqueeTrackOffset; exports.getMarqueeAppliedOffset = getMarqueeAppliedOffset; exports.getMarqueeCloneTwin = getMarqueeCloneTwin; exports.MarqueeWallFades = MarqueeWallFades; exports.MarqueeWall = MarqueeWall; exports.WALL_SKELETON_LABEL_CH = WALL_SKELETON_LABEL_CH; exports.interleave = interleave; exports.QuickActionWall = QuickActionWall; exports.QuickActionMarquee = QuickActionMarquee; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.ChatListEmptyState = ChatListEmptyState; exports.MingoChatHistorySkeleton = MingoChatHistorySkeleton; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; exports.GuideModeBanner = GuideModeBanner; exports.ChatNavSidebar = ChatNavSidebar; exports.ChatListItem = ChatListItem; exports.MingoArchiveList = MingoArchiveList; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.MingoChatHeader = MingoChatHeader; exports.ChatHeaderSearchField = ChatHeaderSearchField; exports.MingoChatRail = MingoChatRail; exports.TabSelector = TabSelector; exports.MingoHistoryRail = MingoHistoryRail; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatPanelHeader = ChatPanelHeader; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.ChatContextMemoryBar = ChatContextMemoryBar; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.ModelDisplaySkeleton = ModelDisplaySkeleton; exports.ChatComposer = ChatComposer; exports.ChatArchivePage = ChatArchivePage; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.ChatTopNavigation = ChatTopNavigation; exports.OnboardingCarousel = OnboardingCarousel; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveExternalNavigation = resolveExternalNavigation; exports.executeNavigation = executeNavigation; exports.executeNavigationImperative = executeNavigationImperative; exports.handleChatNavClick = handleChatNavClick; exports.useNavLinkViaRuntime = useNavLinkViaRuntime; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.getCaptionsUrl = getCaptionsUrl; exports.rebaseCaptionsUrl = rebaseCaptionsUrl; exports.buildCaptionsUrl = buildCaptionsUrl; exports.getEntityCaptionUrls = getEntityCaptionUrls; exports.getEntityCaptionUrlsById = getEntityCaptionUrlsById; exports.captionsEntityTypeForDocType = captionsEntityTypeForDocType; exports.useCaptions = useCaptions; exports.UserDisplay = UserDisplay; exports.CardHitLayer = CardHitLayer; exports.STRIP_CELL_MAX_WIDTH = STRIP_CELL_MAX_WIDTH; exports.CardsStrip = CardsStrip; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_TO_CSS_ASPECT = RATIO_TO_CSS_ASPECT; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesStrip = VideoBitesStrip; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.UnifiedSkeleton = UnifiedSkeleton; exports.TextSkeleton = TextSkeleton; exports.InteractiveSkeleton = InteractiveSkeleton; exports.MediaSkeleton = MediaSkeleton; exports.designDocPeople = designDocPeople; exports.designDocMetaLine = designDocMetaLine; exports.DesignDocCardSkeleton = DesignDocCardSkeleton; exports.DesignDocCard = DesignDocCard; exports.GitHubActivityCard = GitHubActivityCard; exports.GitHubActivityCardSkeleton = GitHubActivityCardSkeleton; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.getVendorLogo = getVendorLogo; exports.VendorIcon = VendorIcon; exports.useChatCardItem = useChatCardItem; exports.readFetchedCardTitle = readFetchedCardTitle; exports.readFetchedCardPath = readFetchedCardPath; exports.resolveFetchedCardHref = resolveFetchedCardHref; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.resolveCardDestination = resolveCardDestination; exports.chatCardLabel = chatCardLabel; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.EMPTY_DIALOG_CAPABILITIES = EMPTY_DIALOG_CAPABILITIES; exports.useChunkCatchup = useChunkCatchup; exports.useScriptedStream = useScriptedStream; exports.RESYNC_AFTER_HIDDEN_MS = RESYNC_AFTER_HIDDEN_MS; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.useSlashCommandRegistry = useSlashCommandRegistry; exports.fetchEmptyStateConfig = fetchEmptyStateConfig; exports.useEmptyStateConfig = useEmptyStateConfig; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.ChatIdentityProvider = ChatIdentityProvider; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.approvalDisplaysInline = approvalDisplaysInline; exports.appendToTrailingAssistant = appendToTrailingAssistant; exports.upsertTrailingCompaction = upsertTrailingCompaction; exports.applyToolExecutionToMessages = applyToolExecutionToMessages; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.createEmptyTurnMeta = createEmptyTurnMeta; exports.createChatStreamReducer = createChatStreamReducer; exports.DEFAULT_DIALOG_SIDE = DEFAULT_DIALOG_SIDE; exports.DEFAULT_MAX_REDUCERS = DEFAULT_MAX_REDUCERS; exports.MAX_PENDING_RETAIN_KEYS = MAX_PENDING_RETAIN_KEYS; exports.createChatDialogStore = createChatDialogStore; exports.createDeltaBatcher = createDeltaBatcher; exports.useChatStreamReducer = useChatStreamReducer; exports.createChatConversationsApi = createChatConversationsApi; exports.buildDiscussPrompt = buildDiscussPrompt; exports.useManagedDialogList = useManagedDialogList; exports.useSseChatAdapter = useSseChatAdapter; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.extractIncompleteTailState = extractIncompleteTailState; exports.decodeHistoricalMessageData = decodeHistoricalMessageData; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.mapProcessedToUnified = mapProcessedToUnified; exports.historicalToUnified = historicalToUnified; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useStableShallow = useStableShallow; exports.useUnifiedChat = useUnifiedChat; exports.SYNTHETIC_REALTIME_ID_PREFIXES = SYNTHETIC_REALTIME_ID_PREFIXES; exports.flattenMessagePagesChronological = flattenMessagePagesChronological; exports.maxPersistedStreamSeq = maxPersistedStreamSeq; exports.mergeHistoryWithRealtime = mergeHistoryWithRealtime; exports.computeHistoryPrepend = computeHistoryPrepend; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.normalizeHistoricalMessageData = normalizeHistoricalMessageData; exports.isHistoricalUserTurn = isHistoricalUserTurn; exports.buildStreamFrames = buildStreamFrames; exports.MINGO_V2_RAIL_WIDTH = MINGO_V2_RAIL_WIDTH; exports.MINGO_V2_SPLIT_WIDTH = MINGO_V2_SPLIT_WIDTH; exports.EmbeddableChat = EmbeddableChat; exports.ProxyCredentialsPanel = ProxyCredentialsPanel;
26902
+ exports.InfoHint = InfoHint; exports.Field = Field; exports.useScrollFade = useScrollFade; exports.ScrollFadeOverlay = ScrollFadeOverlay; exports.ScrollShadow = ScrollShadow; exports.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS = HUBSPOT_DO_NOT_COLLECT_FORM_PROPS; exports.useResizablePanelSize = useResizablePanelSize; exports.PanelResizeHandle = PanelResizeHandle; exports.OVERLAY_BACKDROP_CLASS = OVERLAY_BACKDROP_CLASS; exports.Drawer = Drawer; exports.DrawerTrigger = DrawerTrigger; exports.DrawerClose = DrawerClose; exports.DrawerPortal = DrawerPortal; exports.DrawerOverlay = DrawerOverlay; exports.DrawerContent = DrawerContent; exports.DrawerHeader = DrawerHeader; exports.DrawerTitle = DrawerTitle; exports.DrawerDescription = DrawerDescription; exports.DrawerBody = DrawerBody; exports.DrawerFooter = DrawerFooter; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.stripInlineMarkdown = stripInlineMarkdown; exports.markdownToPlainText = markdownToPlainText; exports.buildHeadingIdMap = buildHeadingIdMap; exports.useHeadingIdMap = useHeadingIdMap; exports.extractText = extractText; exports.useIsHydrated = useIsHydrated; exports.MermaidDiagram = MermaidDiagram; exports.hasRenderableSrc = hasRenderableSrc; exports.buildStandardLeafRenderers = buildStandardLeafRenderers; exports.SAFE_HTML_TAGS = SAFE_HTML_TAGS; exports.SVG_TAGS = SVG_TAGS; exports.buildEffectiveTagSet = buildEffectiveTagSet; exports.buildSanitizeSchema = buildSanitizeSchema; exports.rehypeStripUnsafe = rehypeStripUnsafe; exports.escapeUnknownHtmlTags = escapeUnknownHtmlTags; exports.cardAwareUrlTransform = cardAwareUrlTransform; exports.splitStreamingBlocks = splitStreamingBlocks; exports.completeStreamingTail = completeStreamingTail; exports.TEXT_SIZE_PRESETS = TEXT_SIZE_PRESETS; exports.resolveTextSizeConfig = resolveTextSizeConfig; exports.NO_BROKEN_LINKS = NO_BROKEN_LINKS; exports.MarkdownEngine = MarkdownEngine; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.FullscreenSwitchController = FullscreenSwitchController; exports.SOCIAL_PLATFORM_ALIASES = SOCIAL_PLATFORM_ALIASES; exports.normalizeSocialPlatform = normalizeSocialPlatform; exports.hostMatches = hostMatches; exports.SOCIAL_PLATFORM_ALT_HOSTS = SOCIAL_PLATFORM_ALT_HOSTS; exports.socialPlatformHosts = socialPlatformHosts; exports.classifySocialHost = classifySocialHost; exports.pickSocialLink = pickSocialLink; exports.HoverDropdown = HoverDropdown; exports.ChatAppearanceContext = ChatAppearanceContext; exports.useChatAppearance = useChatAppearance; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.EscalationOfferMessage = EscalationOfferMessage; exports.AiAssistantInfo = AiAssistantInfo; exports.TicketEscalatedMessage = TicketEscalatedMessage; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.TICKET_EVENT_KIND = TICKET_EVENT_KIND; exports.TicketEventMessage = TicketEventMessage; exports.SystemEventMessage = SystemEventMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.ThinkingDisplay = ThinkingDisplay; exports.AskDisplay = AskDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.MspOrganizationCard = MspOrganizationCard; exports.MspOrganizationCardSkeleton = MspOrganizationCardSkeleton; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.CONTEXT_ROW_CLASS = CONTEXT_ROW_CLASS; exports.CONTEXT_ICON_CLASS = CONTEXT_ICON_CLASS; exports.CONTEXT_LABEL_CLASS = CONTEXT_LABEL_CLASS; exports.CONTEXT_BACK_CLASS = CONTEXT_BACK_CLASS; exports.CONTEXT_STATE_CLASS = CONTEXT_STATE_CLASS; exports.ContextMenuRow = ContextMenuRow; exports.ContextItemsSkeleton = ContextItemsSkeleton; exports.ContextItemsList = ContextItemsList; exports.ContextErrorBoundary = ContextErrorBoundary; exports.CHAT_CONTEXT_ITEMS_DEFAULT_MAX = CHAT_CONTEXT_ITEMS_DEFAULT_MAX; exports.ChatComposerPlusMenu = ChatComposerPlusMenu; exports.ChatContextPicker = ChatContextPicker; exports.ChatContextChipStrip = ChatContextChipStrip; exports.BlockCard = BlockCard; exports.remarkCardLinks = remarkCardLinks; exports.remarkMentionChips = remarkMentionChips; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageSkeleton = ChatMessageSkeleton; exports.ChatMessageListSkeleton = ChatMessageListSkeleton; exports.ChatMessageList = ChatMessageList; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.getAgentAccent = getAgentAccent; exports.accentFromIdentityIcon = accentFromIdentityIcon; exports.isQuickActionIconSpec = isQuickActionIconSpec; exports.renderQuickActionIcon = renderQuickActionIcon; exports.QuickActionChipSkeleton = QuickActionChipSkeleton; exports.QuickActionChipButton = QuickActionChipButton; exports.QuickActionChipFromData = QuickActionChipFromData; exports.getPlatformProductionUrl = getPlatformProductionUrl; exports.getPlatformUrl = getPlatformUrl; exports.getDeploymentUrl = getDeploymentUrl; exports.isLocalUrl = isLocalUrl; exports.getRequestOrigin = getRequestOrigin; exports.resolveRedirectTarget = resolveRedirectTarget; exports.getAllPlatformBaseDomains = getAllPlatformBaseDomains; exports.AI_PROVIDERS = AI_PROVIDERS; exports.aiProvider = aiProvider; exports.TOKEN_RATE_EMPTY = TOKEN_RATE_EMPTY; exports.formatTokenRate = formatTokenRate; exports.tokenCost = tokenCost; exports.formatTokenAmount = formatTokenAmount; exports.tokensForBalance = tokensForBalance; exports.tokenRateProviderLabel = tokenRateProviderLabel; exports.groupTokenRatesByProvider = groupTokenRatesByProvider; exports.TRIAL_DAYS = TRIAL_DAYS; exports.TRIAL_LABELS = TRIAL_LABELS; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.SEO_DESCRIPTION_MAX_LENGTH = SEO_DESCRIPTION_MAX_LENGTH; exports.BRAND_MARK_SVGS = BRAND_MARK_SVGS; exports.brandMarkDataUri = brandMarkDataUri; exports.DESIGN_DOC_READINESS = DESIGN_DOC_READINESS; exports.DESIGN_DOC_READINESS_DISPLAY = DESIGN_DOC_READINESS_DISPLAY; exports.designDocReadiness = designDocReadiness; exports.formatCompletionLabel = formatCompletionLabel; exports.formatCompletionLabelWithBlockers = formatCompletionLabelWithBlockers; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; exports.TICKET_OPEN_PARAM = TICKET_OPEN_PARAM; exports.buildTicketOpenHref = buildTicketOpenHref; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.BITE_ID_RE = BITE_ID_RE; exports.generateBiteId = generateBiteId; exports.ensureBiteIds = ensureBiteIds; exports.matchBiteElement = matchBiteElement; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.DOWNLOAD_PAGE_PATH = DOWNLOAD_PAGE_PATH; exports.resolveMobileStoreUrl = resolveMobileStoreUrl; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.getCountryByName = getCountryByName; exports.getFlagFromCountryName = getFlagFromCountryName; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.COMPLIANCE_STANDARDS = COMPLIANCE_STANDARDS; exports.complianceStandardForName = complianceStandardForName; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.isDismissedCookieValue = isDismissedCookieValue; exports.readDismissCookie = readDismissCookie; exports.writeDismissCookie = writeDismissCookie; exports.clearDismissCookie = clearDismissCookie; exports.announcementDismissCookieName = announcementDismissCookieName; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.WALKTHROUGH_VIDEO_DISMISS_KEY = WALKTHROUGH_VIDEO_DISMISS_KEY; exports.walkthroughDismissCookieName = walkthroughDismissCookieName; exports.isWalkthroughDismissed = isWalkthroughDismissed; exports.dismissWalkthrough = dismissWalkthrough; exports.clearWalkthroughDismissal = clearWalkthroughDismissal; exports.WALKTHROUGH_OPEN_QUERY_PARAM = WALKTHROUGH_OPEN_QUERY_PARAM; exports.withWalkthroughOpenParam = withWalkthroughOpenParam; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.DOC_TABLE_TYPES = DOC_TABLE_TYPES; exports.groupsByTable = groupsByTable; exports.recordCountLabel = recordCountLabel; exports.buildGroupedSource = buildGroupedSource; exports.groupSourcesByTable = groupSourcesByTable; exports.formatCitationIndices = formatCitationIndices; exports.createSseSubscription = createSseSubscription; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.clickupTaskUrl = clickupTaskUrl; exports.ANNOUNCEMENT_CTA_DEFAULTS = ANNOUNCEMENT_CTA_DEFAULTS; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.ENTITY_QUOTES_TITLE = ENTITY_QUOTES_TITLE; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.openInNewTab = openInNewTab; exports.faqSectionSlug = faqSectionSlug; exports.faqItemAnchor = faqItemAnchor; exports.parseFaqHash = parseFaqHash; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.extractSections = extractSections; exports.SCHEDULING_SLUG_SHAPE = SCHEDULING_SLUG_SHAPE; exports.MAX_MONTH_OFFSET = MAX_MONTH_OFFSET; exports.normalizeSchedulingSlug = normalizeSchedulingSlug; exports.isValidSchedulingSlug = isValidSchedulingSlug; exports.parseSchedulingLinkName = parseSchedulingLinkName; exports.isListedSchedulingName = isListedSchedulingName; exports.schedulingAudienceKey = schedulingAudienceKey; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.FIRST_TOUCH_ATTRIBUTION_KEY = FIRST_TOUCH_ATTRIBUTION_KEY; exports.sanitizeLandingUrl = sanitizeLandingUrl; exports.parseAttributionFromUrl = parseAttributionFromUrl; exports.captureFirstTouchAttribution = captureFirstTouchAttribution; exports.getFirstTouchAttribution = getFirstTouchAttribution; exports.withFirstTouchAttribution = withFirstTouchAttribution; exports.clearFirstTouchAttribution = clearFirstTouchAttribution; exports.ODS_SPACING_TOKENS = ODS_SPACING_TOKENS; exports.ODS_SPACING_TOKEN_PATTERN = ODS_SPACING_TOKEN_PATTERN; exports.ODS_SPACING_PROPS = ODS_SPACING_PROPS; exports.TAILWIND_STEP_TO_ODS_TOKEN = TAILWIND_STEP_TO_ODS_TOKEN; exports.CSV_CONTENT_TYPE = CSV_CONTENT_TYPE; exports.csvEscape = csvEscape; exports.toCsv = toCsv; exports.copyrightLine = copyrightLine; exports.isValidPathPattern = isValidPathPattern; exports.matchesPathPattern = matchesPathPattern; exports.pathMatchesAny = pathMatchesAny; exports.ASK_AI_OPEN_EVENT = ASK_AI_OPEN_EVENT; exports.openAskAi = openAskAi; exports.MingoAiButton = MingoAiButton; exports.AskPrompts = AskPrompts; exports.AskCard = AskCard; exports.ASK_PROMPTS_DEFAULT_COUNT = ASK_PROMPTS_DEFAULT_COUNT; exports.buildAskPromptsUrl = buildAskPromptsUrl; exports.assistantAvailable = assistantAvailable; exports.useAskPrompts = useAskPrompts; exports.useAssistantOpen = useAssistantOpen; exports.useAskSurface = useAskSurface; exports.AssistantAskPrompts = AssistantAskPrompts; exports.useMarqueeSync = useMarqueeSync; exports.getMarqueeTrackOffset = getMarqueeTrackOffset; exports.getMarqueeAppliedOffset = getMarqueeAppliedOffset; exports.getMarqueeCloneTwin = getMarqueeCloneTwin; exports.MarqueeWallFades = MarqueeWallFades; exports.MarqueeWall = MarqueeWall; exports.WALL_SKELETON_LABEL_CH = WALL_SKELETON_LABEL_CH; exports.interleave = interleave; exports.QuickActionWall = QuickActionWall; exports.QuickActionMarquee = QuickActionMarquee; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.ChatListEmptyState = ChatListEmptyState; exports.MingoChatHistorySkeleton = MingoChatHistorySkeleton; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; exports.GuideModeBanner = GuideModeBanner; exports.ChatNavSidebar = ChatNavSidebar; exports.ChatListItem = ChatListItem; exports.MingoArchiveList = MingoArchiveList; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.MingoChatHeader = MingoChatHeader; exports.ChatHeaderSearchField = ChatHeaderSearchField; exports.MingoChatRail = MingoChatRail; exports.TabSelector = TabSelector; exports.MingoHistoryRail = MingoHistoryRail; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatPanelHeader = ChatPanelHeader; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.ChatContextMemoryBar = ChatContextMemoryBar; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.ModelDisplaySkeleton = ModelDisplaySkeleton; exports.ChatComposer = ChatComposer; exports.ChatArchivePage = ChatArchivePage; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.ChatTopNavigation = ChatTopNavigation; exports.OnboardingCarousel = OnboardingCarousel; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveExternalNavigation = resolveExternalNavigation; exports.executeNavigation = executeNavigation; exports.executeNavigationImperative = executeNavigationImperative; exports.handleChatNavClick = handleChatNavClick; exports.useNavLinkViaRuntime = useNavLinkViaRuntime; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.getCaptionsUrl = getCaptionsUrl; exports.rebaseCaptionsUrl = rebaseCaptionsUrl; exports.buildCaptionsUrl = buildCaptionsUrl; exports.getEntityCaptionUrls = getEntityCaptionUrls; exports.getEntityCaptionUrlsById = getEntityCaptionUrlsById; exports.captionsEntityTypeForDocType = captionsEntityTypeForDocType; exports.useCaptions = useCaptions; exports.UserDisplay = UserDisplay; exports.CardHitLayer = CardHitLayer; exports.STRIP_CELL_MAX_WIDTH = STRIP_CELL_MAX_WIDTH; exports.CardsStrip = CardsStrip; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_TO_CSS_ASPECT = RATIO_TO_CSS_ASPECT; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesStrip = VideoBitesStrip; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.UnifiedSkeleton = UnifiedSkeleton; exports.TextSkeleton = TextSkeleton; exports.InteractiveSkeleton = InteractiveSkeleton; exports.MediaSkeleton = MediaSkeleton; exports.designDocPeople = designDocPeople; exports.designDocMetaLine = designDocMetaLine; exports.DesignDocCardSkeleton = DesignDocCardSkeleton; exports.DesignDocCard = DesignDocCard; exports.GitHubActivityCard = GitHubActivityCard; exports.GitHubActivityCardSkeleton = GitHubActivityCardSkeleton; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.getVendorLogo = getVendorLogo; exports.VendorIcon = VendorIcon; exports.useChatCardItem = useChatCardItem; exports.readFetchedCardTitle = readFetchedCardTitle; exports.readFetchedCardPath = readFetchedCardPath; exports.resolveFetchedCardHref = resolveFetchedCardHref; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.resolveCardDestination = resolveCardDestination; exports.chatCardLabel = chatCardLabel; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.EMPTY_DIALOG_CAPABILITIES = EMPTY_DIALOG_CAPABILITIES; exports.useChunkCatchup = useChunkCatchup; exports.useScriptedStream = useScriptedStream; exports.RESYNC_AFTER_HIDDEN_MS = RESYNC_AFTER_HIDDEN_MS; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.useSlashCommandRegistry = useSlashCommandRegistry; exports.fetchEmptyStateConfig = fetchEmptyStateConfig; exports.useEmptyStateConfig = useEmptyStateConfig; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.ChatIdentityProvider = ChatIdentityProvider; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.approvalDisplaysInline = approvalDisplaysInline; exports.appendToTrailingAssistant = appendToTrailingAssistant; exports.upsertTrailingCompaction = upsertTrailingCompaction; exports.applyToolExecutionToMessages = applyToolExecutionToMessages; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.createEmptyTurnMeta = createEmptyTurnMeta; exports.createChatStreamReducer = createChatStreamReducer; exports.DEFAULT_DIALOG_SIDE = DEFAULT_DIALOG_SIDE; exports.DEFAULT_MAX_REDUCERS = DEFAULT_MAX_REDUCERS; exports.MAX_PENDING_RETAIN_KEYS = MAX_PENDING_RETAIN_KEYS; exports.createChatDialogStore = createChatDialogStore; exports.createDeltaBatcher = createDeltaBatcher; exports.useChatStreamReducer = useChatStreamReducer; exports.createChatConversationsApi = createChatConversationsApi; exports.buildDiscussPrompt = buildDiscussPrompt; exports.useManagedDialogList = useManagedDialogList; exports.useSseChatAdapter = useSseChatAdapter; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.extractIncompleteTailState = extractIncompleteTailState; exports.decodeHistoricalMessageData = decodeHistoricalMessageData; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.mapProcessedToUnified = mapProcessedToUnified; exports.historicalToUnified = historicalToUnified; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useStableShallow = useStableShallow; exports.useUnifiedChat = useUnifiedChat; exports.SYNTHETIC_REALTIME_ID_PREFIXES = SYNTHETIC_REALTIME_ID_PREFIXES; exports.flattenMessagePagesChronological = flattenMessagePagesChronological; exports.maxPersistedStreamSeq = maxPersistedStreamSeq; exports.mergeHistoryWithRealtime = mergeHistoryWithRealtime; exports.computeHistoryPrepend = computeHistoryPrepend; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.normalizeHistoricalMessageData = normalizeHistoricalMessageData; exports.isHistoricalUserTurn = isHistoricalUserTurn; exports.buildStreamFrames = buildStreamFrames; exports.MINGO_V2_RAIL_WIDTH = MINGO_V2_RAIL_WIDTH; exports.MINGO_V2_SPLIT_WIDTH = MINGO_V2_SPLIT_WIDTH; exports.EmbeddableChat = EmbeddableChat; exports.ProxyCredentialsPanel = ProxyCredentialsPanel;