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

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