@flamingo-stack/openframe-frontend-core 0.0.706 → 0.0.707-snapshot.20261006193610

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 (78) hide show
  1. package/dist/{chunk-K6O43WDL.cjs → chunk-2G7UYK35.cjs} +32 -32
  2. package/dist/{chunk-7SCNMP2B.cjs → chunk-2KXTOP6G.cjs} +26 -13
  3. package/dist/{chunk-DDVBX42E.cjs → chunk-2RNB5DTN.cjs} +7 -7
  4. package/dist/{chunk-TE773HEH.js → chunk-36BCTE7D.js} +4 -4
  5. package/dist/{chunk-STHZBOQI.cjs → chunk-3AHTOSXJ.cjs} +9 -9
  6. package/dist/{chunk-G6UMNAVI.js → chunk-4L6XCMOU.js} +10 -2
  7. package/dist/{chunk-T5TMCHWM.js → chunk-4UM2ETLM.js} +2 -2
  8. package/dist/{chunk-3PLDQDE6.cjs → chunk-6I4ZAFO2.cjs} +9 -9
  9. package/dist/{chunk-YGJKKDDM.js → chunk-6IW7TWPV.js} +1 -1
  10. package/dist/{chunk-3EZ4HHAP.js → chunk-6YKAT7NV.js} +2 -2
  11. package/dist/{chunk-HZ7CBXPL.cjs → chunk-AOWDNSTM.cjs} +40 -40
  12. package/dist/{chunk-SW5ZV2BN.cjs → chunk-B73373AG.cjs} +20 -20
  13. package/dist/{chunk-4ILM7W2R.js → chunk-CNWOMQQJ.js} +1 -1
  14. package/dist/{chunk-DWPAAWMR.js → chunk-CZSZSDD4.js} +4 -4
  15. package/dist/{chunk-PXOQIA5K.js → chunk-DA5UDTLG.js} +2 -2
  16. package/dist/{chunk-BHI6GVC4.js → chunk-F5FF4DME.js} +5 -4
  17. package/dist/{chunk-IKJA3Y7Z.js → chunk-I3ST4PLM.js} +1 -1
  18. package/dist/{chunk-LVSFKENJ.cjs → chunk-JRU2CXLB.cjs} +2 -2
  19. package/dist/{chunk-SEKYEWQG.cjs → chunk-L6Y6OOKG.cjs} +20 -20
  20. package/dist/{chunk-3NCM4ZQB.js → chunk-LFFB6EMB.js} +15 -2
  21. package/dist/{chunk-O2RSAA5M.js → chunk-LNW45N2C.js} +5 -5
  22. package/dist/{chunk-6232S532.js → chunk-MR3A4MZV.js} +1 -1
  23. package/dist/{chunk-RTIPR53L.cjs → chunk-NSGXARGJ.cjs} +70 -70
  24. package/dist/{chunk-UJ33ZXDT.cjs → chunk-OJLR5MEO.cjs} +4 -4
  25. package/dist/{chunk-GWQEYPYM.cjs → chunk-P42V6N34.cjs} +321 -313
  26. package/dist/{chunk-7GEBFJT2.js → chunk-PO33GZVY.js} +24 -4
  27. package/dist/{chunk-TQ4LB2DS.cjs → chunk-QAOFMK2A.cjs} +3 -3
  28. package/dist/{chunk-7OFPU7WE.cjs → chunk-SEXWHIMS.cjs} +351 -331
  29. package/dist/{chunk-4CJMQLB5.js → chunk-SS5MBHDP.js} +2 -2
  30. package/dist/{chunk-VZICIQW2.js → chunk-TDYIREDJ.js} +4 -4
  31. package/dist/{chunk-MB4PNY7C.cjs → chunk-YBUT4AMG.cjs} +2 -2
  32. package/dist/{chunk-M75XEEGT.cjs → chunk-ZCLBYT2V.cjs} +26 -25
  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/index.cjs +4 -2
  36. package/dist/components/chat/index.d.ts +1 -1
  37. package/dist/components/chat/index.d.ts.map +1 -1
  38. package/dist/components/chat/index.js +3 -1
  39. package/dist/components/chat/nav-link-anchor-via-runtime.d.ts +34 -5
  40. package/dist/components/chat/nav-link-anchor-via-runtime.d.ts.map +1 -1
  41. package/dist/components/contact/index.cjs +4 -4
  42. package/dist/components/contact/index.js +3 -3
  43. package/dist/components/docs/index.cjs +7 -7
  44. package/dist/components/docs/index.js +6 -6
  45. package/dist/components/embeds/index.cjs +4 -4
  46. package/dist/components/embeds/index.js +3 -3
  47. package/dist/components/faq/index.cjs +4 -4
  48. package/dist/components/faq/index.js +3 -3
  49. package/dist/components/features/index.cjs +3 -3
  50. package/dist/components/features/index.js +2 -2
  51. package/dist/components/help-center-pages/index.cjs +70 -70
  52. package/dist/components/help-center-pages/index.js +14 -14
  53. package/dist/components/index.cjs +38 -36
  54. package/dist/components/index.js +15 -13
  55. package/dist/components/meeting-scheduler/index.cjs +25 -25
  56. package/dist/components/meeting-scheduler/index.js +2 -2
  57. package/dist/components/navigation/index.cjs +6 -6
  58. package/dist/components/navigation/index.js +5 -5
  59. package/dist/components/navigation/site-footer.d.ts +7 -1
  60. package/dist/components/navigation/site-footer.d.ts.map +1 -1
  61. package/dist/components/onboarding-guides/index.cjs +6 -6
  62. package/dist/components/onboarding-guides/index.js +5 -5
  63. package/dist/components/platform/ToolBadge.d.ts +6 -0
  64. package/dist/components/platform/ToolBadge.d.ts.map +1 -1
  65. package/dist/components/tickets/index.cjs +7 -7
  66. package/dist/components/tickets/index.js +6 -6
  67. package/dist/components/ui/brand-association-card.d.ts +7 -0
  68. package/dist/components/ui/brand-association-card.d.ts.map +1 -1
  69. package/dist/components/ui/index.cjs +5 -3
  70. package/dist/components/ui/index.js +4 -2
  71. package/dist/index.cjs +9 -7
  72. package/dist/index.js +8 -6
  73. package/package.json +1 -1
  74. package/src/components/chat/index.ts +7 -1
  75. package/src/components/chat/nav-link-anchor-via-runtime.tsx +62 -9
  76. package/src/components/navigation/site-footer.tsx +13 -5
  77. package/src/components/platform/ToolBadge.tsx +18 -1
  78. package/src/components/ui/brand-association-card.tsx +25 -3
@@ -11929,12 +11929,11 @@ function handleChatNavClick(event, runtime, { href, path, targetPlatform }, fall
11929
11929
 
11930
11930
  // src/components/chat/nav-link-anchor-via-runtime.tsx
11931
11931
 
11932
- function NavLinkAnchorViaRuntime({
11932
+ function useNavLinkViaRuntime({
11933
11933
  href,
11934
11934
  path,
11935
11935
  targetPlatform,
11936
- className,
11937
- children
11936
+ onClick: onClickProp
11938
11937
  }) {
11939
11938
  const runtime = _chunkUJ7AXHRZcjs.useRequiredChatRuntime.call(void 0, );
11940
11939
  const router = _chunk7DNL734Scjs.useRouter.call(void 0, );
@@ -11942,6 +11941,8 @@ function NavLinkAnchorViaRuntime({
11942
11941
  const resolvedHref = resolveHrefForRuntime(href, runtime);
11943
11942
  const isNewTab = _chunk6NTPY5QAcjs.computeIsNewTab.call(void 0, runtime, resolvedHref, _nullishCoalesce(targetPlatform, () => ( null)));
11944
11943
  const onClick = (e) => {
11944
+ _optionalChain([onClickProp, 'optionalCall', _241 => _241(e)]);
11945
+ if (e.defaultPrevented) return;
11945
11946
  const handled = executeNavigation({
11946
11947
  event: e,
11947
11948
  runtime,
@@ -11950,9 +11951,27 @@ function NavLinkAnchorViaRuntime({
11950
11951
  targetPlatform,
11951
11952
  fallbackNavigate: router.push
11952
11953
  });
11953
- if (handled && !isNewTab && _optionalChain([panel, 'optionalAccess', _241 => _241.closeChat])) panel.closeChat();
11954
+ if (handled && !isNewTab && _optionalChain([panel, 'optionalAccess', _242 => _242.closeChat])) panel.closeChat();
11955
+ };
11956
+ const attrs = _chunk6NTPY5QAcjs.newTabAnchorAttrs.call(void 0, isNewTab);
11957
+ return {
11958
+ href: resolvedHref,
11959
+ ...attrs,
11960
+ ...isNewTab && targetPlatform && { rel: "noopener" },
11961
+ onClick
11954
11962
  };
11955
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { href: resolvedHref, ..._chunk6NTPY5QAcjs.newTabAnchorAttrs.call(void 0, isNewTab), onClick, className, children });
11963
+ }
11964
+ function NavLinkAnchorViaRuntime({
11965
+ href,
11966
+ path,
11967
+ targetPlatform,
11968
+ className,
11969
+ children,
11970
+ onClick,
11971
+ ...anchorAttrs
11972
+ }) {
11973
+ const linkProps = useNavLinkViaRuntime({ href, path, targetPlatform, onClick });
11974
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { ...linkProps, ...anchorAttrs, className, children });
11956
11975
  }
11957
11976
 
11958
11977
  // src/components/chat/source-action-button.tsx
@@ -12016,11 +12035,11 @@ var DEFAULT_CAPTIONS_PATH = "/api/captions";
12016
12035
  function getCaptionsUrl(entityType, entityId, srtContent, options) {
12017
12036
  if (!srtContent) return void 0;
12018
12037
  const hash = `${srtContent.length}-${srtContent.slice(0, 8).replace(/\s/g, "")}`;
12019
- const variant = _optionalChain([options, 'optionalAccess', _242 => _242.variant]) ? `&variant=${options.variant}` : "";
12038
+ const variant = _optionalChain([options, 'optionalAccess', _243 => _243.variant]) ? `&variant=${options.variant}` : "";
12020
12039
  return `${DEFAULT_CAPTIONS_PATH}/${entityType}/${entityId}?v=${hash}${variant}`;
12021
12040
  }
12022
12041
  function resolveCaptionsBase(endpoints) {
12023
- return _optionalChain([endpoints, 'optionalAccess', _243 => _243.captionsUrlPrefix]) || DEFAULT_CAPTIONS_PATH;
12042
+ return _optionalChain([endpoints, 'optionalAccess', _244 => _244.captionsUrlPrefix]) || DEFAULT_CAPTIONS_PATH;
12024
12043
  }
12025
12044
  function rebaseCaptionsUrl(endpoints, url) {
12026
12045
  if (!url || !url.startsWith(`${DEFAULT_CAPTIONS_PATH}/`)) return url;
@@ -12109,7 +12128,7 @@ TabsContent.displayName = TabsPrimitive.Content.displayName;
12109
12128
  // src/components/features/use-captions.ts
12110
12129
 
12111
12130
  function useCaptions() {
12112
- const endpoints = _nullishCoalesce(_optionalChain([_chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, ), 'optionalAccess', _244 => _244.endpoints]), () => ( null));
12131
+ const endpoints = _nullishCoalesce(_optionalChain([_chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, ), 'optionalAccess', _245 => _245.endpoints]), () => ( null));
12113
12132
  return _react.useMemo.call(void 0,
12114
12133
  () => ({
12115
12134
  forEntity: (entityType, entity) => getEntityCaptionUrls(endpoints, entityType, entity),
@@ -12384,9 +12403,9 @@ function CardsStrip(props) {
12384
12403
  const p = hoverPointerRef.current;
12385
12404
  if (!p.inside) return;
12386
12405
  const el = typeof document !== "undefined" ? document.elementFromPoint(p.x, p.y) : null;
12387
- const cardEl = _optionalChain([el, 'optionalAccess', _245 => _245.closest, 'optionalCall', _246 => _246("[data-strip-card-key]")]);
12388
- const scoped = cardEl && _optionalChain([scrollerRef, 'access', _247 => _247.current, 'optionalAccess', _248 => _248.contains, 'call', _249 => _249(cardEl)]) ? cardEl : null;
12389
- const key = _nullishCoalesce(_optionalChain([scoped, 'optionalAccess', _250 => _250.getAttribute, 'call', _251 => _251("data-strip-card-key")]), () => ( null));
12406
+ const cardEl = _optionalChain([el, 'optionalAccess', _246 => _246.closest, 'optionalCall', _247 => _247("[data-strip-card-key]")]);
12407
+ const scoped = cardEl && _optionalChain([scrollerRef, 'access', _248 => _248.current, 'optionalAccess', _249 => _249.contains, 'call', _250 => _250(cardEl)]) ? cardEl : null;
12408
+ const key = _nullishCoalesce(_optionalChain([scoped, 'optionalAccess', _251 => _251.getAttribute, 'call', _252 => _252("data-strip-card-key")]), () => ( null));
12390
12409
  const current = activeKeyRef.current;
12391
12410
  if (key === current) return;
12392
12411
  if (current !== null) deactivate(current);
@@ -12424,7 +12443,7 @@ function CardsStrip(props) {
12424
12443
  }, [syncHoverToPointer]);
12425
12444
  const seamBuffer = _react.useCallback.call(void 0, () => {
12426
12445
  const half = singleCopyWidthRef.current;
12427
- const viewport = _nullishCoalesce(_optionalChain([scrollerRef, 'access', _252 => _252.current, 'optionalAccess', _253 => _253.clientWidth]), () => ( 0));
12446
+ const viewport = _nullishCoalesce(_optionalChain([scrollerRef, 'access', _253 => _253.current, 'optionalAccess', _254 => _254.clientWidth]), () => ( 0));
12428
12447
  return Math.max(0, Math.min(200, half / 4, half - viewport - TRACK_GAP_PX - 1));
12429
12448
  }, []);
12430
12449
  const mirror = _react.useCallback.call(void 0,
@@ -12448,7 +12467,7 @@ function CardsStrip(props) {
12448
12467
  const scroller = scrollerRef.current;
12449
12468
  if (scroller) scroller.scrollLeft = mirror(pos);
12450
12469
  },
12451
- readBack: () => mirror(_nullishCoalesce(_optionalChain([scrollerRef, 'access', _254 => _254.current, 'optionalAccess', _255 => _255.scrollLeft]), () => ( 0))),
12470
+ readBack: () => mirror(_nullishCoalesce(_optionalChain([scrollerRef, 'access', _255 => _255.current, 'optionalAccess', _256 => _256.scrollLeft]), () => ( 0))),
12452
12471
  onAfterFrame: syncHoverIfScrolled
12453
12472
  });
12454
12473
  const [mountedIdx, setMountedIdx] = _react.useState.call(void 0, () => /* @__PURE__ */ new Set());
@@ -12496,11 +12515,11 @@ function CardsStrip(props) {
12496
12515
  fn = (el) => {
12497
12516
  if (!el) return void 0;
12498
12517
  cardElIdxRef.current.set(el, idx);
12499
- _optionalChain([cardObserverRef, 'access', _256 => _256.current, 'optionalAccess', _257 => _257.observe, 'call', _258 => _258(el)]);
12518
+ _optionalChain([cardObserverRef, 'access', _257 => _257.current, 'optionalAccess', _258 => _258.observe, 'call', _259 => _259(el)]);
12500
12519
  return () => {
12501
12520
  cardElIdxRef.current.delete(el);
12502
12521
  cardElNearRef.current.delete(el);
12503
- _optionalChain([cardObserverRef, 'access', _259 => _259.current, 'optionalAccess', _260 => _260.unobserve, 'call', _261 => _261(el)]);
12522
+ _optionalChain([cardObserverRef, 'access', _260 => _260.current, 'optionalAccess', _261 => _261.unobserve, 'call', _262 => _262(el)]);
12504
12523
  };
12505
12524
  };
12506
12525
  cardRefFns.set(idx, fn);
@@ -12519,7 +12538,7 @@ function CardsStrip(props) {
12519
12538
  const track = trackRef.current;
12520
12539
  if (!scroller || !track) return;
12521
12540
  const firstCard = track.firstElementChild;
12522
- const step = (_nullishCoalesce(_optionalChain([firstCard, 'optionalAccess', _262 => _262.offsetWidth]), () => ( 320))) + TRACK_GAP_PX;
12541
+ const step = (_nullishCoalesce(_optionalChain([firstCard, 'optionalAccess', _263 => _263.offsetWidth]), () => ( 320))) + TRACK_GAP_PX;
12523
12542
  chevronSuppressUntilRef.current = performance.now() + CHEVRON_SUPPRESS_MS;
12524
12543
  if (marqueeActiveRef.current) {
12525
12544
  glideBy((reverse ? -dir : dir) * step);
@@ -12580,7 +12599,7 @@ function CardsStrip(props) {
12580
12599
  {
12581
12600
  ref: (node) => {
12582
12601
  wrapperRef.current = node;
12583
- _optionalChain([rootRef, 'optionalCall', _263 => _263(node)]);
12602
+ _optionalChain([rootRef, 'optionalCall', _264 => _264(node)]);
12584
12603
  },
12585
12604
  className: _chunk3ATAYP36cjs.cn.call(void 0, "flex w-full min-w-0 flex-col gap-6", className),
12586
12605
  children: [
@@ -12755,7 +12774,7 @@ function VideoBitesStrip({
12755
12774
  const filtered = filterPublished ? bites.filter((b) => b.published) : [...bites];
12756
12775
  return filtered.sort(sortComparator);
12757
12776
  }, [bites, filterPublished, sortComparator]);
12758
- const warmup = _chunk6NTPY5QAcjs.useVideoWarmup.call(void 0, { videoUrl: _optionalChain([items, 'access', _264 => _264[0], 'optionalAccess', _265 => _265.url]) || null });
12777
+ const warmup = _chunk6NTPY5QAcjs.useVideoWarmup.call(void 0, { videoUrl: _optionalChain([items, 'access', _265 => _265[0], 'optionalAccess', _266 => _266.url]) || null });
12759
12778
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
12760
12779
  CardsStrip,
12761
12780
  {
@@ -12822,8 +12841,8 @@ function VideoBiteCard({
12822
12841
  const controlled = active !== void 0;
12823
12842
  const [selfActive, setSelfActive] = _react.useState.call(void 0, false);
12824
12843
  const isActive = controlled ? !!active : selfActive;
12825
- const activate = () => controlled ? _optionalChain([onActivate, 'optionalCall', _266 => _266(key)]) : setSelfActive(true);
12826
- const deactivate = () => controlled ? _optionalChain([onDeactivate, 'optionalCall', _267 => _267(key)]) : setSelfActive(false);
12844
+ const activate = () => controlled ? _optionalChain([onActivate, 'optionalCall', _267 => _267(key)]) : setSelfActive(true);
12845
+ const deactivate = () => controlled ? _optionalChain([onDeactivate, 'optionalCall', _268 => _268(key)]) : setSelfActive(false);
12827
12846
  const titleInputRef = _react.useRef.call(void 0, null);
12828
12847
  _chunkLM7TXMLUcjs.useIsomorphicLayoutEffect.call(void 0, () => {
12829
12848
  const el = titleInputRef.current;
@@ -12833,7 +12852,7 @@ function VideoBiteCard({
12833
12852
  });
12834
12853
  const navigate = () => {
12835
12854
  if (bite.onNavigate) bite.onNavigate();
12836
- else _optionalChain([onBiteNavigate, 'optionalCall', _268 => _268(bite, index)]);
12855
+ else _optionalChain([onBiteNavigate, 'optionalCall', _269 => _269(bite, index)]);
12837
12856
  };
12838
12857
  const handlePointerEnter = () => {
12839
12858
  if (!isTouch) activate();
@@ -12858,9 +12877,9 @@ function VideoBiteCard({
12858
12877
  placeholder: "Title (optional)",
12859
12878
  "aria-label": "Bite title",
12860
12879
  rows: 1,
12861
- onChange: (e) => _optionalChain([onTitleChange, 'optionalCall', _269 => _269(e.target.value)]),
12880
+ onChange: (e) => _optionalChain([onTitleChange, 'optionalCall', _270 => _270(e.target.value)]),
12862
12881
  ref: titleInputRef,
12863
- onBlur: (e) => _optionalChain([onTitleCommit, 'optionalCall', _270 => _270(e.target.value)]),
12882
+ onBlur: (e) => _optionalChain([onTitleCommit, 'optionalCall', _271 => _271(e.target.value)]),
12864
12883
  onClick: (e) => e.stopPropagation(),
12865
12884
  className: _chunk3ATAYP36cjs.cn.call(void 0,
12866
12885
  titleClass,
@@ -12937,7 +12956,7 @@ function VideoBiteCard({
12937
12956
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
12938
12957
  "div",
12939
12958
  {
12940
- ref: (node) => _optionalChain([rootRef, 'optionalCall', _271 => _271(node)]),
12959
+ ref: (node) => _optionalChain([rootRef, 'optionalCall', _272 => _272(node)]),
12941
12960
  "aria-hidden": isClone || void 0,
12942
12961
  "data-strip-card-key": key,
12943
12962
  className: _chunk3ATAYP36cjs.cn.call(void 0,
@@ -12992,8 +13011,8 @@ function EntityVideoSection({
12992
13011
  const hasHighlight = !!highlightVideoUrl;
12993
13012
  const hasVideo = hasFullVideo || hasHighlight;
12994
13013
  const derivedCaptions = captionsEntity ? captions.forEntityId(captionsEntity.type, captionsEntity.id) : null;
12995
- const captionsUrl = _nullishCoalesce(captionsUrlProp, () => ( _optionalChain([derivedCaptions, 'optionalAccess', _272 => _272.captionsUrl])));
12996
- const highlightCaptionsUrl = _nullishCoalesce(highlightCaptionsUrlProp, () => ( _optionalChain([derivedCaptions, 'optionalAccess', _273 => _273.highlightCaptionsUrl])));
13014
+ const captionsUrl = _nullishCoalesce(captionsUrlProp, () => ( _optionalChain([derivedCaptions, 'optionalAccess', _273 => _273.captionsUrl])));
13015
+ const highlightCaptionsUrl = _nullishCoalesce(highlightCaptionsUrlProp, () => ( _optionalChain([derivedCaptions, 'optionalAccess', _274 => _274.highlightCaptionsUrl])));
12997
13016
  if (!hasVideo && !videoSummary && (!videoBites || videoBites.length === 0)) {
12998
13017
  return null;
12999
13018
  }
@@ -13327,7 +13346,7 @@ var MediaSkeleton = {
13327
13346
 
13328
13347
  function designDocPeople(doc) {
13329
13348
  const people = [];
13330
- if (_optionalChain([doc, 'access', _274 => _274.author, 'optionalAccess', _275 => _275.full_name]))
13349
+ if (_optionalChain([doc, 'access', _275 => _275.author, 'optionalAccess', _276 => _276.full_name]))
13331
13350
  people.push({
13332
13351
  key: `dri-${_nullishCoalesce(doc.author.id, () => ( doc.author.full_name))}`,
13333
13352
  name: doc.author.full_name,
@@ -13340,7 +13359,7 @@ function designDocPeople(doc) {
13340
13359
  return people;
13341
13360
  }
13342
13361
  function designDocMetaLine(doc) {
13343
- return [_optionalChain([doc, 'access', _276 => _276.author, 'optionalAccess', _277 => _277.full_name]) ? `DRI ${doc.author.full_name}` : null, `updated ${_chunk6NTPY5QAcjs.formatDateShort.call(void 0, doc.updated_at)}`].filter(Boolean).join(" \xB7 ");
13362
+ return [_optionalChain([doc, 'access', _277 => _277.author, 'optionalAccess', _278 => _278.full_name]) ? `DRI ${doc.author.full_name}` : null, `updated ${_chunk6NTPY5QAcjs.formatDateShort.call(void 0, doc.updated_at)}`].filter(Boolean).join(" \xB7 ");
13344
13363
  }
13345
13364
  function DesignDocCardSkeleton() {
13346
13365
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -13814,7 +13833,7 @@ function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
13814
13833
  ] }) : null,
13815
13834
  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
13816
13835
  ] }),
13817
- _optionalChain([anchorProps, 'optionalAccess', _278 => _278.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
13836
+ _optionalChain([anchorProps, 'optionalAccess', _279 => _279.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
13818
13837
  ] });
13819
13838
  if (!anchorProps) {
13820
13839
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunk6NTPY5QAcjs.COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
@@ -13842,7 +13861,7 @@ function DataRoomDocCardSkeleton({ className }) {
13842
13861
 
13843
13862
 
13844
13863
  function CampaignCardAdmin({ campaign, className, anchorProps }) {
13845
- const goalsCount = _optionalChain([campaign, 'access', _279 => _279.goals, 'optionalAccess', _280 => _280.length]) || 0;
13864
+ const goalsCount = _optionalChain([campaign, 'access', _280 => _280.goals, 'optionalAccess', _281 => _281.length]) || 0;
13846
13865
  const innerChildren = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
13847
13866
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunk6NTPY5QAcjs.COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Megaphone, { className: "h-5 w-5" }) }),
13848
13867
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunk6NTPY5QAcjs.COMPACT_CARD_TEXT_COL, children: [
@@ -14133,7 +14152,7 @@ function pickFetchedCardHref({
14133
14152
  itemHref,
14134
14153
  allowComposed
14135
14154
  }) {
14136
- if (_optionalChain([composed, 'optionalAccess', _281 => _281.hostOverride])) {
14155
+ if (_optionalChain([composed, 'optionalAccess', _282 => _282.hostOverride])) {
14137
14156
  return { source: "hostOverride", href: composed.href, targetPlatform: composed.targetPlatform };
14138
14157
  }
14139
14158
  if (itemHref) return { source: "item", href: itemHref };
@@ -14218,7 +14237,7 @@ function byKey(key) {
14218
14237
  return PLATFORM_DOMAINS.find((e) => e.key === key);
14219
14238
  }
14220
14239
  function envOverrideFor(key) {
14221
- const envVar = _optionalChain([byKey, 'call', _282 => _282(key), 'optionalAccess', _283 => _283.envVar]);
14240
+ const envVar = _optionalChain([byKey, 'call', _283 => _283(key), 'optionalAccess', _284 => _284.envVar]);
14222
14241
  if (!envVar) return null;
14223
14242
  return ENV_OVERRIDES[envVar] || null;
14224
14243
  }
@@ -14228,7 +14247,7 @@ function ensureScheme(url) {
14228
14247
  return `https://${trimmed.replace(/^\/+/, "")}`;
14229
14248
  }
14230
14249
  function getPlatformProductionUrl(platform) {
14231
- const resolved = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(envOverrideFor(platform), () => ( _optionalChain([byKey, 'call', _284 => _284(platform), 'optionalAccess', _285 => _285.defaultUrl]))), () => ( envOverrideFor("flamingo"))), () => ( "https://www.flamingo.run"));
14250
+ const resolved = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(envOverrideFor(platform), () => ( _optionalChain([byKey, 'call', _285 => _285(platform), 'optionalAccess', _286 => _286.defaultUrl]))), () => ( envOverrideFor("flamingo"))), () => ( "https://www.flamingo.run"));
14232
14251
  return ensureScheme(resolved);
14233
14252
  }
14234
14253
  function getPlatformUrl(platform, options = {}) {
@@ -14237,7 +14256,7 @@ function getPlatformUrl(platform, options = {}) {
14237
14256
  }
14238
14257
  function getDeploymentUrl(options) {
14239
14258
  if (typeof window !== "undefined") return window.location.origin;
14240
- const configured = _optionalChain([options, 'access', _286 => _286.configuredUrl, 'optionalAccess', _287 => _287.trim, 'call', _288 => _288()]);
14259
+ const configured = _optionalChain([options, 'access', _287 => _287.configuredUrl, 'optionalAccess', _288 => _288.trim, 'call', _289 => _289()]);
14241
14260
  if (configured) return ensureScheme(configured).replace(/\/+$/, "");
14242
14261
  if (process.env.VERCEL_ENV === "preview" && process.env.VERCEL_URL) {
14243
14262
  return ensureScheme(process.env.VERCEL_URL).replace(/\/+$/, "");
@@ -14259,7 +14278,7 @@ function getRequestOrigin(headers, options) {
14259
14278
  const host = headers.get("host");
14260
14279
  if (!host) return getDeploymentUrl(options);
14261
14280
  const local = LOCAL_HOSTNAME.test(host.replace(/:\d+$/, ""));
14262
- const proto = _optionalChain([headers, 'access', _289 => _289.get, 'call', _290 => _290("x-forwarded-proto"), 'optionalAccess', _291 => _291.split, 'call', _292 => _292(","), 'access', _293 => _293[0], 'access', _294 => _294.trim, 'call', _295 => _295()]) || (local ? "http" : "https");
14281
+ const proto = _optionalChain([headers, 'access', _290 => _290.get, 'call', _291 => _291("x-forwarded-proto"), 'optionalAccess', _292 => _292.split, 'call', _293 => _293(","), 'access', _294 => _294[0], 'access', _295 => _295.trim, 'call', _296 => _296()]) || (local ? "http" : "https");
14263
14282
  return `${proto}://${host}`;
14264
14283
  }
14265
14284
  function resolveRedirectTarget(origin, target) {
@@ -14288,7 +14307,7 @@ function toRegistrableBaseDomain(host) {
14288
14307
  return void 0;
14289
14308
  }
14290
14309
  function aliasHostsOf(key) {
14291
- return _nullishCoalesce(_optionalChain([byKey, 'call', _296 => _296(key), 'optionalAccess', _297 => _297.aliasHostnames]), () => ( []));
14310
+ return _nullishCoalesce(_optionalChain([byKey, 'call', _297 => _297(key), 'optionalAccess', _298 => _298.aliasHostnames]), () => ( []));
14292
14311
  }
14293
14312
  function hostsForEntry(entry, opts) {
14294
14313
  const resolved = hostOf(getPlatformProductionUrl(entry.key));
@@ -14557,13 +14576,13 @@ function recordCountLabel(count) {
14557
14576
  }
14558
14577
  function buildGroupedSource(spec) {
14559
14578
  const first = spec.rows[0];
14560
- const externalUrl = _nullishCoalesce(spec.externalUrl, () => ( _optionalChain([first, 'optionalAccess', _298 => _298.externalUrl])));
14561
- const targetPlatform = spec.targetPlatform !== void 0 ? spec.targetPlatform : _optionalChain([first, 'optionalAccess', _299 => _299.targetPlatform]);
14579
+ const externalUrl = _nullishCoalesce(spec.externalUrl, () => ( _optionalChain([first, 'optionalAccess', _299 => _299.externalUrl])));
14580
+ const targetPlatform = spec.targetPlatform !== void 0 ? spec.targetPlatform : _optionalChain([first, 'optionalAccess', _300 => _300.targetPlatform]);
14562
14581
  return {
14563
14582
  index: spec.index,
14564
14583
  name: `${getSourceLabel(spec.sourceRepo)} ${recordCountLabel(spec.rows.length)}`,
14565
- path: _nullishCoalesce(_optionalChain([first, 'optionalAccess', _300 => _300.path]), () => ( "")),
14566
- documentType: _nullishCoalesce(_optionalChain([first, 'optionalAccess', _301 => _301.documentType]), () => ( "")),
14584
+ path: _nullishCoalesce(_optionalChain([first, 'optionalAccess', _301 => _301.path]), () => ( "")),
14585
+ documentType: _nullishCoalesce(_optionalChain([first, 'optionalAccess', _302 => _302.documentType]), () => ( "")),
14567
14586
  ...externalUrl ? { externalUrl } : {},
14568
14587
  targetPlatform: _nullishCoalesce(targetPlatform, () => ( null)),
14569
14588
  sourceRepo: spec.sourceRepo,
@@ -14632,7 +14651,7 @@ function groupSourcesByTable(sources2) {
14632
14651
  index: source.index,
14633
14652
  sourceRepo: source.sourceRepo,
14634
14653
  rows: uniqueRows(members.flatMap(rowsOf)),
14635
- ..._optionalChain([serverChip, 'optionalAccess', _302 => _302.externalUrl]) ? { externalUrl: serverChip.externalUrl } : {},
14654
+ ..._optionalChain([serverChip, 'optionalAccess', _303 => _303.externalUrl]) ? { externalUrl: serverChip.externalUrl } : {},
14636
14655
  ...serverChip && serverChip.targetPlatform !== void 0 ? { targetPlatform: serverChip.targetPlatform } : {}
14637
14656
  })
14638
14657
  );
@@ -14682,7 +14701,7 @@ function resolveSourceRowCTA(row, ctx = {}) {
14682
14701
  if (row.path && shouldFallbackToPathNav(row) && !row.externalUrl) {
14683
14702
  const safePath = sanitizePath(row.path);
14684
14703
  if (safePath) {
14685
- const docTarget = row.documentType ? _optionalChain([ctx, 'access', _303 => _303.docPlatformTargets, 'optionalAccess', _304 => _304[row.documentType]]) : void 0;
14704
+ const docTarget = row.documentType ? _optionalChain([ctx, 'access', _304 => _304.docPlatformTargets, 'optionalAccess', _305 => _305[row.documentType]]) : void 0;
14686
14705
  if (docTarget) {
14687
14706
  const seg = docTarget.basePath.split("/").filter(Boolean).join("/");
14688
14707
  const base = `${getPlatformUrl(docTarget.platform)}${seg ? `/${seg}` : ""}/`;
@@ -14751,7 +14770,7 @@ function resolveCardDestination({
14751
14770
  composeContentUrl,
14752
14771
  resolveHref = (href) => href
14753
14772
  }) {
14754
- const refPath = typeof _optionalChain([chatRef, 'access', _305 => _305.metadata, 'optionalAccess', _306 => _306.path]) === "string" && chatRef.metadata.path ? chatRef.metadata.path : null;
14773
+ const refPath = typeof _optionalChain([chatRef, 'access', _306 => _306.metadata, 'optionalAccess', _307 => _307.path]) === "string" && chatRef.metadata.path ? chatRef.metadata.path : null;
14755
14774
  const path = _nullishCoalesce(refPath, () => ( (item ? readFetchedCardPath(item) : null)));
14756
14775
  const cta = resolveSourceRowCTA(
14757
14776
  {
@@ -14768,7 +14787,7 @@ function resolveCardDestination({
14768
14787
  const rowUrl = cta.href ? resolveHref(cta.href) : _nullishCoalesce(chatRef.url, () => ( null));
14769
14788
  const rowPlatform = _nullishCoalesce(_nullishCoalesce(cta.targetPlatform, () => ( chatRef.targetPlatform)), () => ( null));
14770
14789
  if (rowUrl) return { url: rowUrl, targetPlatform: rowPlatform, path, source: "row" };
14771
- if (_optionalChain([entry, 'optionalAccess', _307 => _307.contentRefType]) && item) {
14790
+ if (_optionalChain([entry, 'optionalAccess', _308 => _308.contentRefType]) && item) {
14772
14791
  const choice = pickFetchedCardHref({
14773
14792
  composed: resolveFetchedCardHref({
14774
14793
  contentRefType: entry.contentRefType,
@@ -14776,7 +14795,7 @@ function resolveCardDestination({
14776
14795
  item,
14777
14796
  composeContentUrl
14778
14797
  }),
14779
- itemHref: _nullishCoalesce(_optionalChain([entry, 'access', _308 => _308.fallbackHref, 'optionalCall', _309 => _309(item)]), () => ( null)),
14798
+ itemHref: _nullishCoalesce(_optionalChain([entry, 'access', _309 => _309.fallbackHref, 'optionalCall', _310 => _310(item)]), () => ( null)),
14780
14799
  allowComposed: !entry.noComposedHref
14781
14800
  });
14782
14801
  const url = choice ? _nullishCoalesce(_chunk6NTPY5QAcjs.safeHref.call(void 0, choice.href), () => ( null)) : null;
@@ -14877,8 +14896,8 @@ function cardMenuGroups(href, discuss, openDetails, externalLink) {
14877
14896
  if (href) {
14878
14897
  items.push({
14879
14898
  id: "open-details",
14880
- label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _310 => _310.label]), () => ( "Open Details")),
14881
- icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _311 => _311.icon]), () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.EyeIcon, { size: 20 }))),
14899
+ label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _311 => _311.label]), () => ( "Open Details")),
14900
+ icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _312 => _312.icon]), () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.EyeIcon, { size: 20 }))),
14882
14901
  // Main row → open the entity (same tab, soft Link nav).
14883
14902
  href,
14884
14903
  // Trailing 40px ↗ side-button → open in a new tab.
@@ -14938,18 +14957,18 @@ function itemVideoMetadata(item) {
14938
14957
  for (const v of vals) if (typeof v === "string" && v.length > 0) return v;
14939
14958
  return void 0;
14940
14959
  };
14941
- const m = _nullishCoalesce(_optionalChain([item, 'optionalAccess', _312 => _312.metadata]), () => ( {}));
14960
+ const m = _nullishCoalesce(_optionalChain([item, 'optionalAccess', _313 => _313.metadata]), () => ( {}));
14942
14961
  const out = {};
14943
- const videoUrl = pick(m.videoUrl, _optionalChain([item, 'optionalAccess', _313 => _313.custom_video_url]), _optionalChain([item, 'optionalAccess', _314 => _314.main_video_url]));
14944
- const youtubeUrl = pick(m.youtubeUrl, _optionalChain([item, 'optionalAccess', _315 => _315.youtube_url]), _optionalChain([item, 'optionalAccess', _316 => _316.testimonial_video_url]));
14945
- const highlightVideoUrl = pick(m.highlightVideoUrl, _optionalChain([item, 'optionalAccess', _317 => _317.highlight_video_url]));
14962
+ const videoUrl = pick(m.videoUrl, _optionalChain([item, 'optionalAccess', _314 => _314.custom_video_url]), _optionalChain([item, 'optionalAccess', _315 => _315.main_video_url]));
14963
+ const youtubeUrl = pick(m.youtubeUrl, _optionalChain([item, 'optionalAccess', _316 => _316.youtube_url]), _optionalChain([item, 'optionalAccess', _317 => _317.testimonial_video_url]));
14964
+ const highlightVideoUrl = pick(m.highlightVideoUrl, _optionalChain([item, 'optionalAccess', _318 => _318.highlight_video_url]));
14946
14965
  const videoPoster = pick(
14947
14966
  m.videoPoster,
14948
- _optionalChain([item, 'optionalAccess', _318 => _318.main_video_thumbnail]),
14949
- _optionalChain([item, 'optionalAccess', _319 => _319.highlight_video_thumbnail]),
14950
- _optionalChain([item, 'optionalAccess', _320 => _320.featured_image])
14967
+ _optionalChain([item, 'optionalAccess', _319 => _319.main_video_thumbnail]),
14968
+ _optionalChain([item, 'optionalAccess', _320 => _320.highlight_video_thumbnail]),
14969
+ _optionalChain([item, 'optionalAccess', _321 => _321.featured_image])
14951
14970
  );
14952
- const highlightVideoPoster = pick(m.highlightVideoPoster, _optionalChain([item, 'optionalAccess', _321 => _321.highlight_video_thumbnail]));
14971
+ const highlightVideoPoster = pick(m.highlightVideoPoster, _optionalChain([item, 'optionalAccess', _322 => _322.highlight_video_thumbnail]));
14953
14972
  if (videoUrl) out.videoUrl = videoUrl;
14954
14973
  if (youtubeUrl) out.youtubeUrl = youtubeUrl;
14955
14974
  if (highlightVideoUrl) out.highlightVideoUrl = highlightVideoUrl;
@@ -14979,15 +14998,15 @@ function fetchedItemDisplayRef(item, chatRef) {
14979
14998
  }
14980
14999
  function fetchedFaqDisplayRef(item, chatRef) {
14981
15000
  const it = item;
14982
- const answer = typeof _optionalChain([it, 'optionalAccess', _322 => _322.answer]) === "string" && it.answer.trim().length > 0 ? it.answer.trim() : null;
15001
+ const answer = typeof _optionalChain([it, 'optionalAccess', _323 => _323.answer]) === "string" && it.answer.trim().length > 0 ? it.answer.trim() : null;
14983
15002
  return {
14984
15003
  type: "faq",
14985
15004
  id: chatRef.id,
14986
15005
  sourceRepo: chatRef.sourceRepo,
14987
- title: typeof _optionalChain([it, 'optionalAccess', _323 => _323.question]) === "string" && it.question ? it.question : chatRef.id,
15006
+ title: typeof _optionalChain([it, 'optionalAccess', _324 => _324.question]) === "string" && it.question ? it.question : chatRef.id,
14988
15007
  url: _nullishCoalesce(chatRef.url, () => ( null)),
14989
15008
  ...answer ? { preview: answer.length > 400 ? `${answer.slice(0, 397)}\u2026` : answer } : {},
14990
- metadata: typeof _optionalChain([it, 'optionalAccess', _324 => _324.section]) === "string" && it.section ? { section: it.section } : {}
15009
+ metadata: typeof _optionalChain([it, 'optionalAccess', _325 => _325.section]) === "string" && it.section ? { section: it.section } : {}
14991
15010
  };
14992
15011
  }
14993
15012
  function HubspotTicketChatCard({
@@ -14995,8 +15014,8 @@ function HubspotTicketChatCard({
14995
15014
  isNewTab,
14996
15015
  discuss
14997
15016
  }) {
14998
- const status = typeof _optionalChain([chatRef, 'access', _325 => _325.metadata, 'optionalAccess', _326 => _326.status]) === "string" ? chatRef.metadata.status : void 0;
14999
- const statusLabel = typeof _optionalChain([chatRef, 'access', _327 => _327.metadata, 'optionalAccess', _328 => _328.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
15017
+ const status = typeof _optionalChain([chatRef, 'access', _326 => _326.metadata, 'optionalAccess', _327 => _327.status]) === "string" ? chatRef.metadata.status : void 0;
15018
+ const statusLabel = typeof _optionalChain([chatRef, 'access', _328 => _328.metadata, 'optionalAccess', _329 => _329.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
15000
15019
  const statusText = _nullishCoalesce(statusLabel, () => ( formatStatusToken(status)));
15001
15020
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15002
15021
  MingoInfoCard,
@@ -15019,7 +15038,7 @@ function FaqChatCard({
15019
15038
  isNewTab,
15020
15039
  discuss
15021
15040
  }) {
15022
- const section = typeof _optionalChain([chatRef, 'access', _329 => _329.metadata, 'optionalAccess', _330 => _330.section]) === "string" ? chatRef.metadata.section.trim() : void 0;
15041
+ const section = typeof _optionalChain([chatRef, 'access', _330 => _330.metadata, 'optionalAccess', _331 => _331.section]) === "string" ? chatRef.metadata.section.trim() : void 0;
15023
15042
  const statusLabel = section && section.length > 0 ? section : "FAQ";
15024
15043
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15025
15044
  MingoInfoCard,
@@ -15039,7 +15058,7 @@ function SlackChatCard({
15039
15058
  isNewTab,
15040
15059
  discuss
15041
15060
  }) {
15042
- const channelName = typeof _optionalChain([chatRef, 'access', _331 => _331.metadata, 'optionalAccess', _332 => _332.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
15061
+ const channelName = typeof _optionalChain([chatRef, 'access', _332 => _332.metadata, 'optionalAccess', _333 => _333.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
15043
15062
  const channelPretty = channelName ? channelName.startsWith("#") ? channelName : `#${channelName}` : void 0;
15044
15063
  const title = channelPretty ? `${chatRef.title} \xB7 ${channelPretty}` : chatRef.title;
15045
15064
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -15082,7 +15101,7 @@ function TrustCenterChatCard({
15082
15101
  isNewTab,
15083
15102
  discuss
15084
15103
  }) {
15085
- const raw = _optionalChain([item, 'optionalAccess', _333 => _333.frameworks]);
15104
+ const raw = _optionalChain([item, 'optionalAccess', _334 => _334.frameworks]);
15086
15105
  const frameworks = Array.isArray(raw) ? raw : [];
15087
15106
  const summary = _chunk6NTPY5QAcjs.trustFrameworksSummary.call(void 0, frameworks);
15088
15107
  const leadFramework = frameworks[0];
@@ -15131,7 +15150,7 @@ function GenericFinancialChatCard({
15131
15150
  isNewTab,
15132
15151
  discuss
15133
15152
  }) {
15134
- const subtitle = typeof _optionalChain([chatRef, 'access', _334 => _334.metadata, 'optionalAccess', _335 => _335.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
15153
+ const subtitle = typeof _optionalChain([chatRef, 'access', _335 => _335.metadata, 'optionalAccess', _336 => _336.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
15135
15154
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15136
15155
  MingoInfoCard,
15137
15156
  {
@@ -15200,12 +15219,12 @@ function ProductReleaseChatCard({
15200
15219
  discuss
15201
15220
  }) {
15202
15221
  const releaseProps = buildProps(item);
15203
- const status = _optionalChain([item, 'optionalAccess', _336 => _336.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
15222
+ const status = _optionalChain([item, 'optionalAccess', _337 => _337.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
15204
15223
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15205
15224
  EntityMingoCard,
15206
15225
  {
15207
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _337 => _337.title]), () => ( "")),
15208
- description: _optionalChain([item, 'optionalAccess', _338 => _338.summary]) || releaseProps.formattedDate || void 0,
15226
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _338 => _338.title]), () => ( "")),
15227
+ description: _optionalChain([item, 'optionalAccess', _339 => _339.summary]) || releaseProps.formattedDate || void 0,
15209
15228
  cover: releaseProps.coverImage || void 0,
15210
15229
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.Rocket02Icon, { size: 24 }),
15211
15230
  status,
@@ -15222,17 +15241,17 @@ function CampaignChatCard({
15222
15241
  isNewTab,
15223
15242
  discuss
15224
15243
  }) {
15225
- const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _339 => _339.goals])) ? item.goals.length : 0;
15244
+ const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _340 => _340.goals])) ? item.goals.length : 0;
15226
15245
  const meta = [
15227
- _optionalChain([item, 'optionalAccess', _340 => _340.start_date]) ? _chunk6NTPY5QAcjs.formatDateShort.call(void 0, item.start_date) : null,
15246
+ _optionalChain([item, 'optionalAccess', _341 => _341.start_date]) ? _chunk6NTPY5QAcjs.formatDateShort.call(void 0, item.start_date) : null,
15228
15247
  goalsCount > 0 ? `${goalsCount} goal${goalsCount !== 1 ? "s" : ""}` : null,
15229
15248
  "Marketing campaign"
15230
15249
  ].filter(Boolean).join(" \xB7 ");
15231
15250
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15232
15251
  EntityMingoCard,
15233
15252
  {
15234
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _341 => _341.name]), () => ( "")),
15235
- description: meta || _optionalChain([item, 'optionalAccess', _342 => _342.description]) || void 0,
15253
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _342 => _342.name]), () => ( "")),
15254
+ description: meta || _optionalChain([item, 'optionalAccess', _343 => _343.description]) || void 0,
15236
15255
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.Megaphone01Icon, { size: 24 }),
15237
15256
  chatRef,
15238
15257
  isNewTab,
@@ -15287,14 +15306,14 @@ function BlogChatCard({
15287
15306
  hasEmbeddedVideo,
15288
15307
  discuss
15289
15308
  }) {
15290
- const category = Array.isArray(_optionalChain([item, 'optionalAccess', _343 => _343.categories])) ? _nullishCoalesce(_optionalChain([item, 'access', _344 => _344.categories, 'access', _345 => _345.find, 'call', _346 => _346((c) => _optionalChain([c, 'optionalAccess', _347 => _347.name])), 'optionalAccess', _348 => _348.name]), () => ( void 0)) : void 0;
15309
+ const category = Array.isArray(_optionalChain([item, 'optionalAccess', _344 => _344.categories])) ? _nullishCoalesce(_optionalChain([item, 'access', _345 => _345.categories, 'access', _346 => _346.find, 'call', _347 => _347((c) => _optionalChain([c, 'optionalAccess', _348 => _348.name])), 'optionalAccess', _349 => _349.name]), () => ( void 0)) : void 0;
15291
15310
  const status = hasEmbeddedVideo ? { label: "Video", variant: "primary" } : category ? { label: category, variant: "grey" } : void 0;
15292
15311
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15293
15312
  EntityMingoCard,
15294
15313
  {
15295
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _349 => _349.title]), () => ( "")),
15296
- description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _350 => _350.summary]), () => ( void 0)),
15297
- cover: entityCover(_optionalChain([item, 'optionalAccess', _351 => _351.featured_image]), ogPlaceholder),
15314
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _350 => _350.title]), () => ( "")),
15315
+ description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _351 => _351.summary]), () => ( void 0)),
15316
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _352 => _352.featured_image]), ogPlaceholder),
15298
15317
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.NewspaperIcon, { size: 24 }),
15299
15318
  status,
15300
15319
  chatRef,
@@ -15311,13 +15330,13 @@ function CaseStudyChatCard({
15311
15330
  ogPlaceholder,
15312
15331
  discuss
15313
15332
  }) {
15314
- const meta = [_optionalChain([item, 'optionalAccess', _352 => _352.msp, 'optionalAccess', _353 => _353.name]), _optionalChain([item, 'optionalAccess', _354 => _354.user, 'optionalAccess', _355 => _355.full_name])].filter(Boolean).join(" \xB7 ");
15333
+ const meta = [_optionalChain([item, 'optionalAccess', _353 => _353.msp, 'optionalAccess', _354 => _354.name]), _optionalChain([item, 'optionalAccess', _355 => _355.user, 'optionalAccess', _356 => _356.full_name])].filter(Boolean).join(" \xB7 ");
15315
15334
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15316
15335
  EntityMingoCard,
15317
15336
  {
15318
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _356 => _356.title]), () => ( "")),
15319
- description: _optionalChain([item, 'optionalAccess', _357 => _357.summary]) || meta || void 0,
15320
- cover: entityCover(_optionalChain([item, 'optionalAccess', _358 => _358.featured_image]), ogPlaceholder),
15337
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _357 => _357.title]), () => ( "")),
15338
+ description: _optionalChain([item, 'optionalAccess', _358 => _358.summary]) || meta || void 0,
15339
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _359 => _359.featured_image]), ogPlaceholder),
15321
15340
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.TrophyIcon, { size: 24 }),
15322
15341
  status: { label: "Case study", variant: "grey" },
15323
15342
  chatRef,
@@ -15334,13 +15353,13 @@ function CustomerInterviewChatCard({
15334
15353
  ogPlaceholder,
15335
15354
  discuss
15336
15355
  }) {
15337
- const meta = [_optionalChain([item, 'optionalAccess', _359 => _359.user, 'optionalAccess', _360 => _360.full_name]), _optionalChain([item, 'optionalAccess', _361 => _361.msp, 'optionalAccess', _362 => _362.name])].filter(Boolean).join(" \xB7 ");
15356
+ const meta = [_optionalChain([item, 'optionalAccess', _360 => _360.user, 'optionalAccess', _361 => _361.full_name]), _optionalChain([item, 'optionalAccess', _362 => _362.msp, 'optionalAccess', _363 => _363.name])].filter(Boolean).join(" \xB7 ");
15338
15357
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15339
15358
  EntityMingoCard,
15340
15359
  {
15341
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _363 => _363.title]), () => ( "")),
15342
- description: _optionalChain([item, 'optionalAccess', _364 => _364.video_summary]) || meta || void 0,
15343
- cover: entityCover(_optionalChain([item, 'optionalAccess', _365 => _365.featured_image]), ogPlaceholder),
15360
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _364 => _364.title]), () => ( "")),
15361
+ description: _optionalChain([item, 'optionalAccess', _365 => _365.video_summary]) || meta || void 0,
15362
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _366 => _366.featured_image]), ogPlaceholder),
15344
15363
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.MicrophoneIcon, { size: 24 }),
15345
15364
  status: { label: "Interview", variant: "grey" },
15346
15365
  chatRef,
@@ -15357,12 +15376,12 @@ function DesignDocChatCard({
15357
15376
  discuss
15358
15377
  }) {
15359
15378
  const displayRef = fetchedItemDisplayRef(item, chatRef);
15360
- const doc = _optionalChain([item, 'optionalAccess', _366 => _366.doc]);
15379
+ const doc = _optionalChain([item, 'optionalAccess', _367 => _367.doc]);
15361
15380
  const readiness = doc ? DESIGN_DOC_READINESS_DISPLAY[designDocReadiness(doc.completion)] : null;
15362
15381
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15363
15382
  MingoInfoCard,
15364
15383
  {
15365
- title: _nullishCoalesce(_optionalChain([doc, 'optionalAccess', _367 => _367.title]), () => ( displayRef.title)),
15384
+ title: _nullishCoalesce(_optionalChain([doc, 'optionalAccess', _368 => _368.title]), () => ( displayRef.title)),
15366
15385
  description: doc ? [designDocMetaLine(doc), formatCompletionLabel(doc.completion)].join(" \xB7 ") : _nullishCoalesce(displayRef.preview, () => ( void 0)),
15367
15386
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.FileContentIcon, { size: 24 }),
15368
15387
  status: readiness ? { label: readiness.label, variant: readiness.scheme === "success" ? "success" : "grey" } : { label: "Design doc", variant: "grey" },
@@ -15379,13 +15398,13 @@ function InvestorUpdateChatCard({
15379
15398
  ogPlaceholder,
15380
15399
  discuss
15381
15400
  }) {
15382
- const title = _optionalChain([item, 'optionalAccess', _368 => _368.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _369 => _369.update_number]), () => ( "?"))}`;
15401
+ const title = _optionalChain([item, 'optionalAccess', _369 => _369.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _370 => _370.update_number]), () => ( "?"))}`;
15383
15402
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15384
15403
  EntityMingoCard,
15385
15404
  {
15386
15405
  title,
15387
- description: _optionalChain([item, 'optionalAccess', _370 => _370.strategic_update]) || _optionalChain([item, 'optionalAccess', _371 => _371.content]) || _chunk6NTPY5QAcjs.formatInvestorUpdatePeriod.call(void 0, _nullishCoalesce(_optionalChain([item, 'optionalAccess', _372 => _372.period_start]), () => ( null)), _nullishCoalesce(_optionalChain([item, 'optionalAccess', _373 => _373.period_end]), () => ( null))) || void 0,
15388
- cover: entityCover(_optionalChain([item, 'optionalAccess', _374 => _374.featured_image]), ogPlaceholder),
15406
+ description: _optionalChain([item, 'optionalAccess', _371 => _371.strategic_update]) || _optionalChain([item, 'optionalAccess', _372 => _372.content]) || _chunk6NTPY5QAcjs.formatInvestorUpdatePeriod.call(void 0, _nullishCoalesce(_optionalChain([item, 'optionalAccess', _373 => _373.period_start]), () => ( null)), _nullishCoalesce(_optionalChain([item, 'optionalAccess', _374 => _374.period_end]), () => ( null))) || void 0,
15407
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _375 => _375.featured_image]), ogPlaceholder),
15389
15408
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.PresentationLineIcon, { size: 24 }),
15390
15409
  status: { label: "Investor update", variant: "grey" },
15391
15410
  chatRef,
@@ -15402,12 +15421,12 @@ function OnboardingGuideChatCard({
15402
15421
  ogPlaceholder,
15403
15422
  discuss
15404
15423
  }) {
15405
- const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess', _375 => _375.featured_image])), () => ( entityCover(_optionalChain([item, 'optionalAccess', _376 => _376.main_video_thumbnail])))), () => ( entityCover(_optionalChain([item, 'optionalAccess', _377 => _377.og_image_url]), ogPlaceholder)));
15424
+ const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess', _376 => _376.featured_image])), () => ( entityCover(_optionalChain([item, 'optionalAccess', _377 => _377.main_video_thumbnail])))), () => ( entityCover(_optionalChain([item, 'optionalAccess', _378 => _378.og_image_url]), ogPlaceholder)));
15406
15425
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15407
15426
  EntityMingoCard,
15408
15427
  {
15409
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _378 => _378.title]), () => ( "")),
15410
- description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _379 => _379.summary]), () => ( _optionalChain([item, 'optionalAccess', _380 => _380.description]))), () => ( void 0)),
15428
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _379 => _379.title]), () => ( "")),
15429
+ description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _380 => _380.summary]), () => ( _optionalChain([item, 'optionalAccess', _381 => _381.description]))), () => ( void 0)),
15411
15430
  cover,
15412
15431
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.CompassIcon, { size: 24 }),
15413
15432
  status: { label: "Guide", variant: "grey" },
@@ -15432,9 +15451,9 @@ function ProgramChatCard({
15432
15451
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15433
15452
  EntityMingoCard,
15434
15453
  {
15435
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _381 => _381.title]), () => ( "")),
15436
- description: meta || _optionalChain([item, 'optionalAccess', _382 => _382.description]) || void 0,
15437
- cover: entityCover(_optionalChain([item, 'optionalAccess', _383 => _383.cover_url]), ogPlaceholder),
15454
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _382 => _382.title]), () => ( "")),
15455
+ description: meta || _optionalChain([item, 'optionalAccess', _383 => _383.description]) || void 0,
15456
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _384 => _384.cover_url]), ogPlaceholder),
15438
15457
  fallbackIcon: icon,
15439
15458
  status: { label, variant: "grey" },
15440
15459
  chatRef,
@@ -15451,10 +15470,10 @@ function RoadmapChatCard({
15451
15470
  cardType,
15452
15471
  discuss
15453
15472
  }) {
15454
- const logoUrl = typeof _optionalChain([item, 'optionalAccess', _384 => _384.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
15455
- const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _385 => _385.customItemId]) != null;
15473
+ const logoUrl = typeof _optionalChain([item, 'optionalAccess', _385 => _385.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
15474
+ const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _386 => _386.customItemId]) != null;
15456
15475
  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 });
15457
- const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6NTPY5QAcjs.TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _386 => _386.customItemId]), className: "size-6" }) : logoUrl ? (
15476
+ const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6NTPY5QAcjs.TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _387 => _387.customItemId]), className: "size-6" }) : logoUrl ? (
15458
15477
  // Contained (not full-bleed) so the integration logo keeps its aspect
15459
15478
  // ratio inside the bordered icon box — matches RoadmapCard.
15460
15479
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMGHIV4L6cjs.next_image_default, { src: logoUrl, alt: "", className: "size-6 object-contain", width: 24, height: 24, unoptimized: true })
@@ -15465,10 +15484,10 @@ function RoadmapChatCard({
15465
15484
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15466
15485
  EntityMingoCard,
15467
15486
  {
15468
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _387 => _387.title]), () => ( "")),
15469
- description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _388 => _388.description]), () => ( void 0)),
15487
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _388 => _388.title]), () => ( "")),
15488
+ description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _389 => _389.description]), () => ( void 0)),
15470
15489
  fallbackIcon: icon,
15471
- status: statusPill(_optionalChain([item, 'optionalAccess', _389 => _389.status])),
15490
+ status: statusPill(_optionalChain([item, 'optionalAccess', _390 => _390.status])),
15472
15491
  chatRef,
15473
15492
  isNewTab,
15474
15493
  discuss,
@@ -15484,7 +15503,7 @@ function refHydratedEntry(docType, label, renderRef) {
15484
15503
  bareInline: true,
15485
15504
  contentRefType: docType,
15486
15505
  noComposedHref: true,
15487
- fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess', _390 => _390.url]), () => ( null)),
15506
+ fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess', _391 => _391.url]), () => ( null)),
15488
15507
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoInfoCardSkeleton, {}),
15489
15508
  render: (item, chatRef, opts) => renderRef(fetchedItemDisplayRef(item, chatRef), opts)
15490
15509
  };
@@ -15558,8 +15577,8 @@ function refGlyphRegistryEntries() {
15558
15577
  title: displayRef.title,
15559
15578
  description: _nullishCoalesce(displayRef.preview, () => ( void 0)),
15560
15579
  cover: entityCover(
15561
- _optionalChain([displayRef, 'access', _391 => _391.metadata, 'optionalAccess', _392 => _392.videoPoster]),
15562
- _nullishCoalesce(_optionalChain([opts, 'access', _393 => _393.extras, 'optionalAccess', _394 => _394.buildOgPlaceholderUrl, 'optionalCall', _395 => _395(_nullishCoalesce(displayRef.title, () => ( "")))]), () => ( null))
15580
+ _optionalChain([displayRef, 'access', _392 => _392.metadata, 'optionalAccess', _393 => _393.videoPoster]),
15581
+ _nullishCoalesce(_optionalChain([opts, 'access', _394 => _394.extras, 'optionalAccess', _395 => _395.buildOgPlaceholderUrl, 'optionalCall', _396 => _396(_nullishCoalesce(displayRef.title, () => ( "")))]), () => ( null))
15563
15582
  ),
15564
15583
  fallbackIcon: cfg.icon(),
15565
15584
  status: { label: cfg.label, variant: "grey" },
@@ -15574,9 +15593,9 @@ function refGlyphRegistryEntries() {
15574
15593
  }
15575
15594
  function fetchedEmployeeEntryDisplayRef(item, chatRef) {
15576
15595
  const it = item;
15577
- const title = typeof _optionalChain([it, 'optionalAccess', _396 => _396.title]) === "string" && it.title.trim().length > 0 ? it.title.trim() : chatRef.title;
15578
- const author = typeof _optionalChain([it, 'optionalAccess', _397 => _397.author, 'optionalAccess', _398 => _398.full_name]) === "string" ? it.author.full_name.trim() : "";
15579
- const summary = typeof _optionalChain([it, 'optionalAccess', _399 => _399.summary]) === "string" ? it.summary.trim() : "";
15596
+ const title = typeof _optionalChain([it, 'optionalAccess', _397 => _397.title]) === "string" && it.title.trim().length > 0 ? it.title.trim() : chatRef.title;
15597
+ const author = typeof _optionalChain([it, 'optionalAccess', _398 => _398.author, 'optionalAccess', _399 => _399.full_name]) === "string" ? it.author.full_name.trim() : "";
15598
+ const summary = typeof _optionalChain([it, 'optionalAccess', _400 => _400.summary]) === "string" ? it.summary.trim() : "";
15580
15599
  const preview = [author, summary].filter((x) => x.length > 0).join(" \xB7 ");
15581
15600
  return { ...chatRef, title, preview: preview.length > 0 ? preview : chatRef.preview };
15582
15601
  }
@@ -15628,7 +15647,7 @@ function programRegistryEntries() {
15628
15647
  discuss: opts.discuss,
15629
15648
  configKey: cfg.configKey,
15630
15649
  label: cfg.configKey.charAt(0).toUpperCase() + cfg.configKey.slice(1),
15631
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _400 => _400.extras, 'optionalAccess', _401 => _401.buildOgPlaceholderUrl, 'optionalCall', _402 => _402(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _403 => _403.title]), () => ( "")))]), () => ( null))
15650
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _401 => _401.extras, 'optionalAccess', _402 => _402.buildOgPlaceholderUrl, 'optionalCall', _403 => _403(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _404 => _404.title]), () => ( "")))]), () => ( null))
15632
15651
  }
15633
15652
  )
15634
15653
  }));
@@ -15649,7 +15668,7 @@ var ROADMAP_CARD_CONFIGS = {
15649
15668
  // The card's destination IS the ClickUp deep link, derived from the
15650
15669
  // task id post-fetch (the refs frame used to carry it).
15651
15670
  noComposedHref: true,
15652
- fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _404 => _404.id]) != null ? clickupTaskUrl(String(item.id)) : null
15671
+ fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _405 => _405.id]) != null ? clickupTaskUrl(String(item.id)) : null
15653
15672
  }
15654
15673
  };
15655
15674
  function roadmapRegistryEntries() {
@@ -15691,8 +15710,8 @@ var CHAT_CARD_REGISTRY = {
15691
15710
  DeletedDataCard,
15692
15711
  {
15693
15712
  title: chatRef.title && chatRef.title !== chatRef.id ? chatRef.title : null,
15694
- entityLabel: _nullishCoalesce(_optionalChain([chatRef, 'access', _405 => _405.metadata, 'optionalAccess', _406 => _406.entity_label]), () => ( null)),
15695
- recoveryNote: _nullishCoalesce(_optionalChain([chatRef, 'access', _407 => _407.metadata, 'optionalAccess', _408 => _408.recovery_note]), () => ( null))
15713
+ entityLabel: _nullishCoalesce(_optionalChain([chatRef, 'access', _406 => _406.metadata, 'optionalAccess', _407 => _407.entity_label]), () => ( null)),
15714
+ recoveryNote: _nullishCoalesce(_optionalChain([chatRef, 'access', _408 => _408.metadata, 'optionalAccess', _409 => _409.recovery_note]), () => ( null))
15696
15715
  }
15697
15716
  )
15698
15717
  },
@@ -15709,7 +15728,7 @@ var CHAT_CARD_REGISTRY = {
15709
15728
  bareInline: true,
15710
15729
  contentRefType: "faq",
15711
15730
  noComposedHref: true,
15712
- fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _409 => _409.id]) != null ? `/faqs#${faqItemAnchor(item.id)}` : null,
15731
+ fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _410 => _410.id]) != null ? `/faqs#${faqItemAnchor(item.id)}` : null,
15713
15732
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoInfoCardSkeleton, {}),
15714
15733
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, FaqChatCard, { chatRef: fetchedFaqDisplayRef(item, chatRef), isNewTab: opts.isNewTab, discuss: opts.discuss })
15715
15734
  },
@@ -15756,8 +15775,8 @@ var CHAT_CARD_REGISTRY = {
15756
15775
  chatRef,
15757
15776
  isNewTab: opts.isNewTab,
15758
15777
  discuss: opts.discuss,
15759
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _410 => _410.extras, 'optionalAccess', _411 => _411.buildOgPlaceholderUrl, 'optionalCall', _412 => _412(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _413 => _413.title]), () => ( "")))]), () => ( null)),
15760
- hasEmbeddedVideo: _optionalChain([chatRef, 'access', _414 => _414.metadata, 'optionalAccess', _415 => _415.hasEmbeddedVideo]) === true
15778
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _411 => _411.extras, 'optionalAccess', _412 => _412.buildOgPlaceholderUrl, 'optionalCall', _413 => _413(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _414 => _414.title]), () => ( "")))]), () => ( null)),
15779
+ hasEmbeddedVideo: _optionalChain([chatRef, 'access', _415 => _415.metadata, 'optionalAccess', _416 => _416.hasEmbeddedVideo]) === true
15761
15780
  }
15762
15781
  )
15763
15782
  },
@@ -15773,7 +15792,7 @@ var CHAT_CARD_REGISTRY = {
15773
15792
  chatRef,
15774
15793
  isNewTab: opts.isNewTab,
15775
15794
  discuss: opts.discuss,
15776
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _416 => _416.extras, 'optionalAccess', _417 => _417.buildOgPlaceholderUrl, 'optionalCall', _418 => _418(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _419 => _419.title]), () => ( "")))]), () => ( null))
15795
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _417 => _417.extras, 'optionalAccess', _418 => _418.buildOgPlaceholderUrl, 'optionalCall', _419 => _419(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _420 => _420.title]), () => ( "")))]), () => ( null))
15777
15796
  }
15778
15797
  )
15779
15798
  },
@@ -15782,7 +15801,7 @@ var CHAT_CARD_REGISTRY = {
15782
15801
  contentRefType: "design_doc",
15783
15802
  bareInline: true,
15784
15803
  noComposedHref: true,
15785
- fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess', _420 => _420.url]), () => ( null)),
15804
+ fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess', _421 => _421.url]), () => ( null)),
15786
15805
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoInfoCardSkeleton, {}),
15787
15806
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DesignDocChatCard, { item, chatRef, isNewTab: opts.isNewTab, discuss: opts.discuss })
15788
15807
  },
@@ -15798,7 +15817,7 @@ var CHAT_CARD_REGISTRY = {
15798
15817
  chatRef,
15799
15818
  isNewTab: opts.isNewTab,
15800
15819
  discuss: opts.discuss,
15801
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _421 => _421.extras, 'optionalAccess', _422 => _422.buildOgPlaceholderUrl, 'optionalCall', _423 => _423(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _424 => _424.title]), () => ( "")))]), () => ( null))
15820
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _422 => _422.extras, 'optionalAccess', _423 => _423.buildOgPlaceholderUrl, 'optionalCall', _424 => _424(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _425 => _425.title]), () => ( "")))]), () => ( null))
15802
15821
  }
15803
15822
  )
15804
15823
  },
@@ -15808,7 +15827,7 @@ var CHAT_CARD_REGISTRY = {
15808
15827
  bareInline: true,
15809
15828
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6NTPY5QAcjs.ProductReleaseCardSkeleton, { size: "sm" }),
15810
15829
  render: (item, chatRef, opts) => {
15811
- const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _425 => _425.extras, 'optionalAccess', _426 => _426.buildProductReleaseCardProps]), () => ( _chunk6NTPY5QAcjs.defaultBuildProductReleaseCardProps));
15830
+ const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _426 => _426.extras, 'optionalAccess', _427 => _427.buildProductReleaseCardProps]), () => ( _chunk6NTPY5QAcjs.defaultBuildProductReleaseCardProps));
15812
15831
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15813
15832
  ProductReleaseChatCard,
15814
15833
  {
@@ -15834,7 +15853,7 @@ var CHAT_CARD_REGISTRY = {
15834
15853
  chatRef,
15835
15854
  isNewTab: opts.isNewTab,
15836
15855
  discuss: opts.discuss,
15837
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _427 => _427.extras, 'optionalAccess', _428 => _428.buildOgPlaceholderUrl, 'optionalCall', _429 => _429(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _430 => _430.title]), () => ( "")))]), () => ( null))
15856
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _428 => _428.extras, 'optionalAccess', _429 => _429.buildOgPlaceholderUrl, 'optionalCall', _430 => _430(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _431 => _431.title]), () => ( "")))]), () => ( null))
15838
15857
  }
15839
15858
  )
15840
15859
  },
@@ -15852,7 +15871,7 @@ var CHAT_CARD_REGISTRY = {
15852
15871
  chatRef,
15853
15872
  isNewTab: opts.isNewTab,
15854
15873
  discuss: opts.discuss,
15855
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _431 => _431.extras, 'optionalAccess', _432 => _432.buildOgPlaceholderUrl, 'optionalCall', _433 => _433(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _434 => _434.title]), () => ( "")))]), () => ( null))
15874
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _432 => _432.extras, 'optionalAccess', _433 => _433.buildOgPlaceholderUrl, 'optionalCall', _434 => _434(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _435 => _435.title]), () => ( "")))]), () => ( null))
15856
15875
  }
15857
15876
  )
15858
15877
  },
@@ -15863,13 +15882,13 @@ var CHAT_CARD_REGISTRY = {
15863
15882
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignCardAdminSkeleton, {}),
15864
15883
  // No public viewer — synthesize the hub-internal admin URL post-fetch
15865
15884
  // so the wrapper + isNewTab computation see the actual destination.
15866
- fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _435 => _435.id]) ? `/admin/campaigns/${encodeURIComponent(String(item.id))}` : null,
15885
+ fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _436 => _436.id]) ? `/admin/campaigns/${encodeURIComponent(String(item.id))}` : null,
15867
15886
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignChatCard, { item, chatRef, isNewTab: opts.isNewTab, discuss: opts.discuss })
15868
15887
  },
15869
15888
  ...roadmapRegistryEntries()
15870
15889
  };
15871
15890
  function chatCardLabel(docType) {
15872
- return _optionalChain([CHAT_CARD_REGISTRY, 'access', _436 => _436[docType], 'optionalAccess', _437 => _437.label]);
15891
+ return _optionalChain([CHAT_CARD_REGISTRY, 'access', _437 => _437[docType], 'optionalAccess', _438 => _438.label]);
15873
15892
  }
15874
15893
  function ChatCardNavWrap({
15875
15894
  href,
@@ -15885,13 +15904,13 @@ function ChatCardNavWrap({
15885
15904
  if (!href) return;
15886
15905
  const targetEl = e.target;
15887
15906
  const host = e.currentTarget;
15888
- if (!_optionalChain([host, 'optionalAccess', _438 => _438.contains, 'call', _439 => _439(targetEl)])) return;
15889
- if (_optionalChain([targetEl, 'optionalAccess', _440 => _440.closest, 'optionalCall', _441 => _441("button")])) return;
15890
- if (!_optionalChain([targetEl, 'optionalAccess', _442 => _442.closest, 'optionalCall', _443 => _443("a")])) return;
15907
+ if (!_optionalChain([host, 'optionalAccess', _439 => _439.contains, 'call', _440 => _440(targetEl)])) return;
15908
+ if (_optionalChain([targetEl, 'optionalAccess', _441 => _441.closest, 'optionalCall', _442 => _442("button")])) return;
15909
+ if (!_optionalChain([targetEl, 'optionalAccess', _443 => _443.closest, 'optionalCall', _444 => _444("a")])) return;
15891
15910
  const handled = executeNavigation({ event: e, runtime, href, path, targetPlatform, fallbackNavigate: router.push });
15892
15911
  if (!handled) return;
15893
15912
  e.stopPropagation();
15894
- if (!isNewTab && _optionalChain([panel, 'optionalAccess', _444 => _444.closeChat])) panel.closeChat();
15913
+ if (!isNewTab && _optionalChain([panel, 'optionalAccess', _445 => _445.closeChat])) panel.closeChat();
15895
15914
  };
15896
15915
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "contents", onClickCapture, children });
15897
15916
  }
@@ -15907,7 +15926,7 @@ function ChatCardLoader({
15907
15926
  const entry = CHAT_CARD_REGISTRY[chatRef.type];
15908
15927
  const fetchEntry = entry && entry.contentRefType ? entry : null;
15909
15928
  const { item, isLoading, isError, isFetched } = useChatCardItem(
15910
- _nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _445 => _445.contentRefType]), () => ( "")),
15929
+ _nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _446 => _446.contentRefType]), () => ( "")),
15911
15930
  fetchEntry ? chatRef.id : ""
15912
15931
  );
15913
15932
  if (!entry) return null;
@@ -15951,7 +15970,7 @@ function ChatCardLoader({
15951
15970
  isNewTab,
15952
15971
  discuss
15953
15972
  };
15954
- const path = typeof _optionalChain([finalChatRef, 'access', _446 => _446.metadata, 'optionalAccess', _447 => _447.path]) === "string" ? finalChatRef.metadata.path : null;
15973
+ const path = typeof _optionalChain([finalChatRef, 'access', _447 => _447.metadata, 'optionalAccess', _448 => _448.path]) === "string" ? finalChatRef.metadata.path : null;
15955
15974
  const navWrap = (children) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15956
15975
  ChatCardNavWrap,
15957
15976
  {
@@ -15975,7 +15994,7 @@ function ChatCardLoader({
15975
15994
  if (!fetchEntry) {
15976
15995
  return finish(entry.render(void 0, finalChatRef, renderOpts));
15977
15996
  }
15978
- if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: _nullishCoalesce(_optionalChain([fetchEntry, 'access', _448 => _448.skeleton, 'optionalCall', _449 => _449()]), () => ( null)) });
15997
+ if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: _nullishCoalesce(_optionalChain([fetchEntry, 'access', _449 => _449.skeleton, 'optionalCall', _450 => _450()]), () => ( null)) });
15979
15998
  if (!item) {
15980
15999
  if (isError) {
15981
16000
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CardLoadFailure, { label: entry.label, id: finalChatRef.id, detail: "Failed to load" });
@@ -16283,7 +16302,7 @@ function useChunkCatchup({
16283
16302
  if (catchupRun.current === run) {
16284
16303
  if (currentDialogId !== dialogIdRef.current) {
16285
16304
  catchupRun.current = null;
16286
- if (_optionalChain([pendingCatchupRef, 'access', _450 => _450.current, 'optionalAccess', _451 => _451.dialogId]) === currentDialogId) {
16305
+ if (_optionalChain([pendingCatchupRef, 'access', _451 => _451.current, 'optionalAccess', _452 => _452.dialogId]) === currentDialogId) {
16287
16306
  pendingCatchupRef.current = null;
16288
16307
  }
16289
16308
  } else {
@@ -16294,7 +16313,7 @@ function useChunkCatchup({
16294
16313
  if (pending.dialogId === currentDialogId) {
16295
16314
  rearmForQueuedCatchup();
16296
16315
  try {
16297
- await _optionalChain([catchUpChunksRef, 'access', _452 => _452.current, 'optionalCall', _453 => _453(pending.fromSequenceId)]);
16316
+ await _optionalChain([catchUpChunksRef, 'access', _453 => _453.current, 'optionalCall', _454 => _454(pending.fromSequenceId)]);
16298
16317
  } catch (rerunError) {
16299
16318
  console.error("Queued catch-up re-run failed:", rerunError);
16300
16319
  }
@@ -16361,7 +16380,7 @@ function useChunkCatchup({
16361
16380
 
16362
16381
  var EMPTY_FRAME = { messages: [], phase: "idle", typing: false, delayMs: 0 };
16363
16382
  function prefersReducedMotion() {
16364
- return typeof window !== "undefined" && _optionalChain([window, 'access', _454 => _454.matchMedia, 'optionalCall', _455 => _455("(prefers-reduced-motion: reduce)"), 'access', _456 => _456.matches]) === true;
16383
+ return typeof window !== "undefined" && _optionalChain([window, 'access', _455 => _455.matchMedia, 'optionalCall', _456 => _456("(prefers-reduced-motion: reduce)"), 'access', _457 => _457.matches]) === true;
16365
16384
  }
16366
16385
  function useScriptedStream(frames, resetKey, enabled = true) {
16367
16386
  const [index, setIndex] = _react.useState.call(void 0, 0);
@@ -16372,7 +16391,7 @@ function useScriptedStream(frames, resetKey, enabled = true) {
16372
16391
  setIndex(0);
16373
16392
  }
16374
16393
  _react.useEffect.call(void 0, () => {
16375
- const mq = _optionalChain([window, 'access', _457 => _457.matchMedia, 'optionalCall', _458 => _458("(prefers-reduced-motion: reduce)")]);
16394
+ const mq = _optionalChain([window, 'access', _458 => _458.matchMedia, 'optionalCall', _459 => _459("(prefers-reduced-motion: reduce)")]);
16376
16395
  const sync = () => setReducedMotion(mq ? mq.matches : prefersReducedMotion());
16377
16396
  sync();
16378
16397
  if (!mq) return void 0;
@@ -16515,7 +16534,7 @@ function useJetStreamDialogSubscription({
16515
16534
  const lifecycle = _chunkG7SBHMRRcjs.startConnectionLifecycle.call(void 0, {
16516
16535
  conn: sharedConn,
16517
16536
  wsUrl,
16518
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _459 => _459.current, 'optionalCall', _460 => _460()]),
16537
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _460 => _460.current, 'optionalCall', _461 => _461()]),
16519
16538
  backoff: reconnectionBackoffRef.current,
16520
16539
  getFreshUrl: () => getNatsWsUrlRef.current(),
16521
16540
  // JetStream emits 'error' for protocol-level failures (e.g. -ERR Permissions
@@ -16530,7 +16549,7 @@ function useJetStreamDialogSubscription({
16530
16549
  setReconnectionCount((c) => c + 1);
16531
16550
  }
16532
16551
  hadConnectionBeforeRef.current = true;
16533
- _optionalChain([onConnectRef, 'access', _461 => _461.current, 'optionalCall', _462 => _462()]);
16552
+ _optionalChain([onConnectRef, 'access', _462 => _462.current, 'optionalCall', _463 => _463()]);
16534
16553
  }
16535
16554
  if (status === "error") {
16536
16555
  console.warn("[JetStream] NATS protocol error:", evt.data);
@@ -16540,7 +16559,7 @@ function useJetStreamDialogSubscription({
16540
16559
  setIsConnected(false);
16541
16560
  setIsSubscribed(false);
16542
16561
  tearDownSubscription();
16543
- _optionalChain([onDisconnectRef, 'access', _463 => _463.current, 'optionalCall', _464 => _464()]);
16562
+ _optionalChain([onDisconnectRef, 'access', _464 => _464.current, 'optionalCall', _465 => _465()]);
16544
16563
  }
16545
16564
  }
16546
16565
  });
@@ -16666,7 +16685,7 @@ function useJetStreamDialogSubscription({
16666
16685
  }
16667
16686
  subscriptionRef.current = handle;
16668
16687
  setIsSubscribed(true);
16669
- _optionalChain([onSubscribedRef, 'access', _465 => _465.current, 'optionalCall', _466 => _466()]);
16688
+ _optionalChain([onSubscribedRef, 'access', _466 => _466.current, 'optionalCall', _467 => _467()]);
16670
16689
  } catch (e21) {
16671
16690
  if (!cancelled) {
16672
16691
  setIsSubscribed(false);
@@ -16782,20 +16801,20 @@ function useNatsDialogSubscription({
16782
16801
  const tearDownSubscriptions = () => {
16783
16802
  subscriptionRefs.current.forEach((sub) => {
16784
16803
  try {
16785
- _optionalChain([sub, 'optionalAccess', _467 => _467.unsubscribe, 'call', _468 => _468()]);
16804
+ _optionalChain([sub, 'optionalAccess', _468 => _468.unsubscribe, 'call', _469 => _469()]);
16786
16805
  } catch (e23) {
16787
16806
  }
16788
16807
  });
16789
16808
  subscriptionRefs.current.clear();
16790
16809
  lastSubscribedDialogIdRef.current = null;
16791
- _optionalChain([abortControllerRef, 'access', _469 => _469.current, 'optionalAccess', _470 => _470.abort, 'call', _471 => _471()]);
16810
+ _optionalChain([abortControllerRef, 'access', _470 => _470.current, 'optionalAccess', _471 => _471.abort, 'call', _472 => _472()]);
16792
16811
  abortControllerRef.current = null;
16793
16812
  };
16794
16813
  const isDisconnectStatus = (status) => status === "closed" || status === "disconnected";
16795
16814
  const lifecycle = _chunkG7SBHMRRcjs.startConnectionLifecycle.call(void 0, {
16796
16815
  conn: sharedConn,
16797
16816
  wsUrl,
16798
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _472 => _472.current, 'optionalCall', _473 => _473()]),
16817
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _473 => _473.current, 'optionalCall', _474 => _474()]),
16799
16818
  backoff: reconnectionBackoffRef.current,
16800
16819
  getFreshUrl: () => getNatsWsUrlRef.current(),
16801
16820
  shouldRetryOn: isDisconnectStatus,
@@ -16806,7 +16825,7 @@ function useNatsDialogSubscription({
16806
16825
  setReconnectionCount((c) => c + 1);
16807
16826
  }
16808
16827
  hadConnectionBeforeRef.current = true;
16809
- _optionalChain([onConnectRef, 'access', _474 => _474.current, 'optionalCall', _475 => _475()]);
16828
+ _optionalChain([onConnectRef, 'access', _475 => _475.current, 'optionalCall', _476 => _476()]);
16810
16829
  }
16811
16830
  if (status === "error") {
16812
16831
  console.warn("[NATS] protocol error:", evt.data);
@@ -16816,7 +16835,7 @@ function useNatsDialogSubscription({
16816
16835
  setIsConnected(false);
16817
16836
  setIsSubscribed(false);
16818
16837
  tearDownSubscriptions();
16819
- _optionalChain([onDisconnectRef, 'access', _476 => _476.current, 'optionalCall', _477 => _477()]);
16838
+ _optionalChain([onDisconnectRef, 'access', _477 => _477.current, 'optionalCall', _478 => _478()]);
16820
16839
  }
16821
16840
  }
16822
16841
  });
@@ -16847,13 +16866,13 @@ function useNatsDialogSubscription({
16847
16866
  setIsSubscribed(false);
16848
16867
  subscriptionRefs.current.forEach((sub) => {
16849
16868
  try {
16850
- _optionalChain([sub, 'optionalAccess', _478 => _478.unsubscribe, 'call', _479 => _479()]);
16869
+ _optionalChain([sub, 'optionalAccess', _479 => _479.unsubscribe, 'call', _480 => _480()]);
16851
16870
  } catch (e24) {
16852
16871
  }
16853
16872
  });
16854
16873
  subscriptionRefs.current.clear();
16855
16874
  lastSubscribedDialogIdRef.current = null;
16856
- _optionalChain([abortControllerRef, 'access', _480 => _480.current, 'optionalAccess', _481 => _481.abort, 'call', _482 => _482()]);
16875
+ _optionalChain([abortControllerRef, 'access', _481 => _481.current, 'optionalAccess', _482 => _482.abort, 'call', _483 => _483()]);
16857
16876
  abortControllerRef.current = null;
16858
16877
  }
16859
16878
  return void 0;
@@ -16865,12 +16884,12 @@ function useNatsDialogSubscription({
16865
16884
  if (subscriptionRefs.current.size > 0) {
16866
16885
  subscriptionRefs.current.forEach((sub) => {
16867
16886
  try {
16868
- _optionalChain([sub, 'optionalAccess', _483 => _483.unsubscribe, 'call', _484 => _484()]);
16887
+ _optionalChain([sub, 'optionalAccess', _484 => _484.unsubscribe, 'call', _485 => _485()]);
16869
16888
  } catch (e25) {
16870
16889
  }
16871
16890
  });
16872
16891
  subscriptionRefs.current.clear();
16873
- _optionalChain([abortControllerRef, 'access', _485 => _485.current, 'optionalAccess', _486 => _486.abort, 'call', _487 => _487()]);
16892
+ _optionalChain([abortControllerRef, 'access', _486 => _486.current, 'optionalAccess', _487 => _487.abort, 'call', _488 => _488()]);
16874
16893
  }
16875
16894
  abortControllerRef.current = new AbortController();
16876
16895
  const abort = abortControllerRef.current;
@@ -16900,7 +16919,7 @@ function useNatsDialogSubscription({
16900
16919
  });
16901
16920
  lastSubscribedDialogIdRef.current = dialogId;
16902
16921
  setIsSubscribed(true);
16903
- _optionalChain([onSubscribedRef, 'access', _488 => _488.current, 'optionalCall', _489 => _489()]);
16922
+ _optionalChain([onSubscribedRef, 'access', _489 => _489.current, 'optionalCall', _490 => _490()]);
16904
16923
  };
16905
16924
  if (isConnectedRef.current) {
16906
16925
  createSubscriptions();
@@ -16911,7 +16930,7 @@ function useNatsDialogSubscription({
16911
16930
  abort.abort();
16912
16931
  subscriptions.forEach((sub) => {
16913
16932
  try {
16914
- _optionalChain([sub, 'optionalAccess', _490 => _490.unsubscribe, 'call', _491 => _491()]);
16933
+ _optionalChain([sub, 'optionalAccess', _491 => _491.unsubscribe, 'call', _492 => _492()]);
16915
16934
  } catch (e27) {
16916
16935
  }
16917
16936
  });
@@ -16950,7 +16969,7 @@ function useNatsDialogSubscription({
16950
16969
  });
16951
16970
  lastSubscribedDialogIdRef.current = currentDialogId;
16952
16971
  setIsSubscribed(true);
16953
- _optionalChain([onSubscribedRef, 'access', _492 => _492.current, 'optionalCall', _493 => _493()]);
16972
+ _optionalChain([onSubscribedRef, 'access', _493 => _493.current, 'optionalCall', _494 => _494()]);
16954
16973
  } else if (subscriptionRefs.current.size > 0) {
16955
16974
  setIsSubscribed(true);
16956
16975
  }
@@ -16958,10 +16977,10 @@ function useNatsDialogSubscription({
16958
16977
  return { isConnected, isSubscribed, reconnectionCount };
16959
16978
  }
16960
16979
  function buildNatsWsUrl(apiBaseUrl, options) {
16961
- const path = _optionalChain([options, 'optionalAccess', _494 => _494.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
16980
+ const path = _optionalChain([options, 'optionalAccess', _495 => _495.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
16962
16981
  const u = new URL(path, apiBaseUrl);
16963
16982
  u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
16964
- if (_optionalChain([options, 'optionalAccess', _495 => _495.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _496 => _496.token])) {
16983
+ if (_optionalChain([options, 'optionalAccess', _496 => _496.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _497 => _497.token])) {
16965
16984
  u.searchParams.set("authorization", options.token);
16966
16985
  }
16967
16986
  return u.toString();
@@ -16979,7 +16998,7 @@ async function fetchSlashCommands(prefix, signal, commandsUrl) {
16979
16998
  const data = await res.json();
16980
16999
  return _nullishCoalesce(data.commands, () => ( []));
16981
17000
  } catch (err) {
16982
- if (_optionalChain([err, 'optionalAccess', _497 => _497.name]) === "AbortError") throw err;
17001
+ if (_optionalChain([err, 'optionalAccess', _498 => _498.name]) === "AbortError") throw err;
16983
17002
  console.warn("[chat] slash-commands fetch failed, showing none:", err);
16984
17003
  return [];
16985
17004
  }
@@ -16987,8 +17006,8 @@ async function fetchSlashCommands(prefix, signal, commandsUrl) {
16987
17006
  var NO_COMMANDS = [];
16988
17007
  function useSlashCommands(prefix, commandsUrl) {
16989
17008
  const [answered, setAnswered] = _react.useState.call(void 0, null);
16990
- const commands = prefix != null && _optionalChain([answered, 'optionalAccess', _498 => _498.prefix]) === prefix ? answered.commands : NO_COMMANDS;
16991
- const loading = prefix != null && _optionalChain([answered, 'optionalAccess', _499 => _499.prefix]) !== prefix;
17009
+ const commands = prefix != null && _optionalChain([answered, 'optionalAccess', _499 => _499.prefix]) === prefix ? answered.commands : NO_COMMANDS;
17010
+ const loading = prefix != null && _optionalChain([answered, 'optionalAccess', _500 => _500.prefix]) !== prefix;
16992
17011
  _react.useEffect.call(void 0, () => {
16993
17012
  if (prefix == null) return void 0;
16994
17013
  let cancelled = false;
@@ -16998,7 +17017,7 @@ function useSlashCommands(prefix, commandsUrl) {
16998
17017
  const next = await fetchSlashCommands(prefix, ctrl.signal, commandsUrl);
16999
17018
  if (!cancelled) setAnswered({ prefix, commands: next });
17000
17019
  } catch (err) {
17001
- if (!cancelled && _optionalChain([err, 'optionalAccess', _500 => _500.name]) !== "AbortError") {
17020
+ if (!cancelled && _optionalChain([err, 'optionalAccess', _501 => _501.name]) !== "AbortError") {
17002
17021
  console.warn("[use-slash-commands] fetch failed:", err);
17003
17022
  setAnswered({ prefix, commands: NO_COMMANDS });
17004
17023
  }
@@ -17021,7 +17040,7 @@ function useSlashCommandRegistry(commandsUrl, options) {
17021
17040
  const query = _reactquery.useQuery.call(void 0, {
17022
17041
  queryKey: ["chat-slash-commands", commandsUrl],
17023
17042
  queryFn: ({ signal }) => fetchSlashCommands("", signal, commandsUrl),
17024
- enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _501 => _501.enabled]), () => ( true)),
17043
+ enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _502 => _502.enabled]), () => ( true)),
17025
17044
  staleTime: Infinity,
17026
17045
  gcTime: Infinity,
17027
17046
  // The commands registry is non-critical chrome — a failure degrades to an
@@ -17060,21 +17079,21 @@ async function fetchEmptyStateConfig(signal, emptyStateUrl) {
17060
17079
  }
17061
17080
  const data = await res.json();
17062
17081
  return {
17063
- name: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _502 => _502.name]), () => ( null)),
17064
- icon: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _503 => _503.icon]), () => ( null)),
17065
- greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _504 => _504.greeting]), () => ( null)),
17066
- enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _505 => _505.enabledRagTableIds]), () => ( [])),
17067
- quickActions: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _506 => _506.quickActions]), () => ( [])),
17068
- suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _507 => _507.suggestedQueries]), () => ( []))
17082
+ name: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _503 => _503.name]), () => ( null)),
17083
+ icon: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _504 => _504.icon]), () => ( null)),
17084
+ greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _505 => _505.greeting]), () => ( null)),
17085
+ enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _506 => _506.enabledRagTableIds]), () => ( [])),
17086
+ quickActions: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _507 => _507.quickActions]), () => ( [])),
17087
+ suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _508 => _508.suggestedQueries]), () => ( []))
17069
17088
  };
17070
17089
  } catch (err) {
17071
- if (_optionalChain([err, 'optionalAccess', _508 => _508.name]) === "AbortError") throw err;
17090
+ if (_optionalChain([err, 'optionalAccess', _509 => _509.name]) === "AbortError") throw err;
17072
17091
  console.warn("[chat] empty-state config fetch failed, using neutral defaults:", err);
17073
17092
  return EMPTY_STATE_FALLBACK;
17074
17093
  }
17075
17094
  }
17076
17095
  function useEmptyStateConfig(emptyStateUrl, options) {
17077
- const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _509 => _509.enabled]), () => ( true))) && !!emptyStateUrl;
17096
+ const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _510 => _510.enabled]), () => ( true))) && !!emptyStateUrl;
17078
17097
  const query = _reactquery.useQuery.call(void 0, {
17079
17098
  queryKey: ["chat-empty-state", emptyStateUrl],
17080
17099
  queryFn: ({ signal }) => fetchEmptyStateConfig(signal, emptyStateUrl),
@@ -17103,7 +17122,7 @@ var CHAT_ATTACHMENT_MAX_SIZE_BYTES = 25 * 1024 * 1024;
17103
17122
  var STORAGE_CACHE_CONTROL_IMMUTABLE = "public, max-age=31536000, immutable";
17104
17123
  function uploadWithProgress(url, file, token, onProgress, signal) {
17105
17124
  return new Promise((resolve, reject) => {
17106
- if (_optionalChain([signal, 'optionalAccess', _510 => _510.aborted])) {
17125
+ if (_optionalChain([signal, 'optionalAccess', _511 => _511.aborted])) {
17107
17126
  reject(new Error("Upload cancelled"));
17108
17127
  return;
17109
17128
  }
@@ -17145,7 +17164,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
17145
17164
  const handleSignalAbort = () => {
17146
17165
  xhr.abort();
17147
17166
  };
17148
- _optionalChain([signal, 'optionalAccess', _511 => _511.addEventListener, 'call', _512 => _512("abort", handleSignalAbort, { once: true, signal: listeners.signal })]);
17167
+ _optionalChain([signal, 'optionalAccess', _512 => _512.addEventListener, 'call', _513 => _513("abort", handleSignalAbort, { once: true, signal: listeners.signal })]);
17149
17168
  xhr.upload.addEventListener("progress", handleProgress, { signal: listeners.signal });
17150
17169
  xhr.addEventListener("load", handleLoad, { signal: listeners.signal });
17151
17170
  xhr.addEventListener("error", handleError, { signal: listeners.signal });
@@ -17189,10 +17208,10 @@ function useChatAttachments() {
17189
17208
  try {
17190
17209
  sniffed = await _filetype.fileTypeFromBlob.call(void 0, att.file);
17191
17210
  } catch (err) {
17192
- if (_optionalChain([ctrl, 'optionalAccess', _513 => _513.signal, 'access', _514 => _514.aborted])) return;
17211
+ if (_optionalChain([ctrl, 'optionalAccess', _514 => _514.signal, 'access', _515 => _515.aborted])) return;
17193
17212
  throw new Error(`Could not read file content: ${err instanceof Error ? err.message : String(err)}`);
17194
17213
  }
17195
- if (_optionalChain([ctrl, 'optionalAccess', _515 => _515.signal, 'access', _516 => _516.aborted])) return;
17214
+ if (_optionalChain([ctrl, 'optionalAccess', _516 => _516.signal, 'access', _517 => _517.aborted])) return;
17196
17215
  if (!sniffed) {
17197
17216
  throw new Error("Unrecognized file format");
17198
17217
  }
@@ -17206,7 +17225,7 @@ function useChatAttachments() {
17206
17225
  const urlResp = await _chunkLM7TXMLUcjs.embedAuthedFetch.call(void 0, uploadUrlEndpoint, {
17207
17226
  method: "POST",
17208
17227
  headers: { "Content-Type": "application/json" },
17209
- signal: _optionalChain([ctrl, 'optionalAccess', _517 => _517.signal]),
17228
+ signal: _optionalChain([ctrl, 'optionalAccess', _518 => _518.signal]),
17210
17229
  body: JSON.stringify({
17211
17230
  fileName: att.file.name,
17212
17231
  // Pass the SNIFFED MIME (not `file.type`, which can be a
@@ -17235,9 +17254,9 @@ function useChatAttachments() {
17235
17254
  (pct) => {
17236
17255
  updateOne(att.id, { progress: pct });
17237
17256
  },
17238
- _optionalChain([ctrl, 'optionalAccess', _518 => _518.signal])
17257
+ _optionalChain([ctrl, 'optionalAccess', _519 => _519.signal])
17239
17258
  );
17240
- if (_optionalChain([ctrl, 'optionalAccess', _519 => _519.signal, 'access', _520 => _520.aborted])) return;
17259
+ if (_optionalChain([ctrl, 'optionalAccess', _520 => _520.signal, 'access', _521 => _521.aborted])) return;
17241
17260
  updateOne(att.id, {
17242
17261
  status: "ready",
17243
17262
  progress: 100,
@@ -17245,7 +17264,7 @@ function useChatAttachments() {
17245
17264
  viewToken: mintData.viewToken
17246
17265
  });
17247
17266
  } catch (err) {
17248
- if (_optionalChain([ctrl, 'optionalAccess', _521 => _521.signal, 'access', _522 => _522.aborted])) return;
17267
+ if (_optionalChain([ctrl, 'optionalAccess', _522 => _522.signal, 'access', _523 => _523.aborted])) return;
17249
17268
  const message = err instanceof Error ? err.message : String(err);
17250
17269
  updateOne(att.id, { status: "error", progress: 0, errorMessage: message });
17251
17270
  } finally {
@@ -17394,11 +17413,11 @@ var ANON_DEFAULTS = {
17394
17413
  function useResolveChatIdentity(enabled) {
17395
17414
  const runtime = _chunkUJ7AXHRZcjs.useRequiredChatRuntime.call(void 0, );
17396
17415
  const url = runtime.endpoints.identityUrl;
17397
- const proxyEmail = _nullishCoalesce(_optionalChain([_chunkLM7TXMLUcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _523 => _523.email]), () => ( null));
17416
+ const proxyEmail = _nullishCoalesce(_optionalChain([_chunkLM7TXMLUcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _524 => _524.email]), () => ( null));
17398
17417
  const requestKey = enabled ? `${url}\0${_nullishCoalesce(proxyEmail, () => ( ""))}` : null;
17399
17418
  const [resolved, setResolved] = _react.useState.call(void 0, null);
17400
- const data = _optionalChain([resolved, 'optionalAccess', _524 => _524.key]) === requestKey ? resolved.data : ANON_DEFAULTS;
17401
- const isLoading = requestKey !== null && _optionalChain([resolved, 'optionalAccess', _525 => _525.key]) !== requestKey;
17419
+ const data = _optionalChain([resolved, 'optionalAccess', _525 => _525.key]) === requestKey ? resolved.data : ANON_DEFAULTS;
17420
+ const isLoading = requestKey !== null && _optionalChain([resolved, 'optionalAccess', _526 => _526.key]) !== requestKey;
17402
17421
  _react.useEffect.call(void 0, () => {
17403
17422
  if (requestKey === null) return void 0;
17404
17423
  let cancelled = false;
@@ -17545,7 +17564,7 @@ function useChat({
17545
17564
  onMessagesChangeRef.current = onMessagesChange;
17546
17565
  });
17547
17566
  _react.useEffect.call(void 0, () => {
17548
- _optionalChain([onMessagesChangeRef, 'access', _526 => _526.current, 'optionalCall', _527 => _527(messages)]);
17567
+ _optionalChain([onMessagesChangeRef, 'access', _527 => _527.current, 'optionalCall', _528 => _528(messages)]);
17549
17568
  }, [messages]);
17550
17569
  const {
17551
17570
  streamMessage,
@@ -17582,7 +17601,7 @@ function useChat({
17582
17601
  name: "You",
17583
17602
  content: text2,
17584
17603
  timestamp: /* @__PURE__ */ new Date(),
17585
- ..._optionalChain([options, 'optionalAccess', _528 => _528.hidden]) ? { hidden: true } : {}
17604
+ ..._optionalChain([options, 'optionalAccess', _529 => _529.hidden]) ? { hidden: true } : {}
17586
17605
  };
17587
17606
  addMessage(userMessage);
17588
17607
  setIsTyping(true);
@@ -17796,7 +17815,7 @@ function buildConfirmToolBody(request) {
17796
17815
  async function readServerErrorMessage(response) {
17797
17816
  try {
17798
17817
  const body = await response.json();
17799
- if (typeof _optionalChain([body, 'optionalAccess', _529 => _529.error]) === "string" && body.error.length > 0) return body.error;
17818
+ if (typeof _optionalChain([body, 'optionalAccess', _530 => _530.error]) === "string" && body.error.length > 0) return body.error;
17800
17819
  } catch (e29) {
17801
17820
  }
17802
17821
  return null;
@@ -18124,7 +18143,7 @@ function youtubeVideoId(value) {
18124
18143
  const hostname = parsed.hostname.toLowerCase();
18125
18144
  const isYoutubeHost = hostname === "youtu.be" || hostname === "youtube.com" || hostname.endsWith(".youtube.com");
18126
18145
  if (!isYoutubeHost) return void 0;
18127
- const fromPath = hostname === "youtu.be" ? parsed.pathname.split("/").filter(Boolean)[0] : _optionalChain([/^\/(?:embed|v|shorts)\/([A-Za-z0-9_-]{11})(?:\/|$)/, 'access', _530 => _530.exec, 'call', _531 => _531(parsed.pathname), 'optionalAccess', _532 => _532[1]]);
18146
+ const fromPath = hostname === "youtu.be" ? parsed.pathname.split("/").filter(Boolean)[0] : _optionalChain([/^\/(?:embed|v|shorts)\/([A-Za-z0-9_-]{11})(?:\/|$)/, 'access', _531 => _531.exec, 'call', _532 => _532(parsed.pathname), 'optionalAccess', _533 => _533[1]]);
18128
18147
  const id = _nullishCoalesce(_nullishCoalesce(fromPath, () => ( parsed.searchParams.get("v"))), () => ( void 0));
18129
18148
  return id && YOUTUBE_ID.test(id) ? id : void 0;
18130
18149
  }
@@ -18243,11 +18262,11 @@ function cards(value, decodedSources) {
18243
18262
  {
18244
18263
  type,
18245
18264
  id,
18246
- title: _nullishCoalesce(_optionalChain([source, 'optionalAccess', _533 => _533.name]), () => ( id)),
18247
- url: _nullishCoalesce(_optionalChain([source, 'optionalAccess', _534 => _534.externalUrl]), () => ( null)),
18248
- ..._optionalChain([source, 'optionalAccess', _535 => _535.sourceRepo]) ? { sourceRepo: source.sourceRepo } : {},
18249
- ..._optionalChain([source, 'optionalAccess', _536 => _536.targetPlatform]) !== void 0 ? { targetPlatform: source.targetPlatform } : {},
18250
- ..._optionalChain([source, 'optionalAccess', _537 => _537.path]) ? { metadata: { path: source.path } } : {}
18265
+ title: _nullishCoalesce(_optionalChain([source, 'optionalAccess', _534 => _534.name]), () => ( id)),
18266
+ url: _nullishCoalesce(_optionalChain([source, 'optionalAccess', _535 => _535.externalUrl]), () => ( null)),
18267
+ ..._optionalChain([source, 'optionalAccess', _536 => _536.sourceRepo]) ? { sourceRepo: source.sourceRepo } : {},
18268
+ ..._optionalChain([source, 'optionalAccess', _537 => _537.targetPlatform]) !== void 0 ? { targetPlatform: source.targetPlatform } : {},
18269
+ ..._optionalChain([source, 'optionalAccess', _538 => _538.path]) ? { metadata: { path: source.path } } : {}
18251
18270
  }
18252
18271
  ];
18253
18272
  });
@@ -18273,11 +18292,11 @@ function sourceMetadataEvent(payload) {
18273
18292
  }
18274
18293
  function mergeSourceMetadata(previous, event) {
18275
18294
  const byIndex = /* @__PURE__ */ new Map();
18276
- for (const source of [..._nullishCoalesce(_optionalChain([previous, 'optionalAccess', _538 => _538.sources]), () => ( [])), ..._nullishCoalesce(event.sources, () => ( []))]) {
18295
+ for (const source of [..._nullishCoalesce(_optionalChain([previous, 'optionalAccess', _539 => _539.sources]), () => ( [])), ..._nullishCoalesce(event.sources, () => ( []))]) {
18277
18296
  if (!byIndex.has(source.index)) byIndex.set(source.index, source);
18278
18297
  }
18279
18298
  const byIdentity = /* @__PURE__ */ new Map();
18280
- for (const ref of [..._nullishCoalesce(_optionalChain([previous, 'optionalAccess', _539 => _539.refs]), () => ( [])), ..._nullishCoalesce(event.refs, () => ( []))]) {
18299
+ for (const ref of [..._nullishCoalesce(_optionalChain([previous, 'optionalAccess', _540 => _540.refs]), () => ( [])), ..._nullishCoalesce(event.refs, () => ( []))]) {
18281
18300
  const identity = `${ref.type}:${ref.id}`;
18282
18301
  if (!byIdentity.has(identity)) byIdentity.set(identity, ref);
18283
18302
  }
@@ -18363,9 +18382,9 @@ function appendToTrailingAssistant(prev, segments) {
18363
18382
  for (const seg of segments) {
18364
18383
  const tail = merged[merged.length - 1];
18365
18384
  const key = upsertKey(seg);
18366
- if (seg.type === "text" && _optionalChain([tail, 'optionalAccess', _540 => _540.type]) === "text") {
18385
+ if (seg.type === "text" && _optionalChain([tail, 'optionalAccess', _541 => _541.type]) === "text") {
18367
18386
  merged[merged.length - 1] = { type: "text", text: tail.text + seg.text };
18368
- } else if (seg.type === "thinking" && _optionalChain([tail, 'optionalAccess', _541 => _541.type]) === "thinking") {
18387
+ } else if (seg.type === "thinking" && _optionalChain([tail, 'optionalAccess', _542 => _542.type]) === "thinking") {
18369
18388
  merged[merged.length - 1] = { type: "thinking", text: tail.text + seg.text };
18370
18389
  } else if (key) {
18371
18390
  let idx = merged.findIndex((m) => upsertKey(m) === key);
@@ -18406,7 +18425,7 @@ function applyApprovalStatusToSegment(s, requestId, status, resolvedByName) {
18406
18425
  }
18407
18426
  if (s.type !== "approval_batch") return s;
18408
18427
  const isAnchor = s.data.approvalRequestId === requestId;
18409
- const hasRow = _optionalChain([s, 'access', _542 => _542.data, 'access', _543 => _543.toolCalls, 'optionalAccess', _544 => _544.some, 'call', _545 => _545((c) => c.toolExecutionRequestId === requestId)]);
18428
+ const hasRow = _optionalChain([s, 'access', _543 => _543.data, 'access', _544 => _544.toolCalls, 'optionalAccess', _545 => _545.some, 'call', _546 => _546((c) => c.toolExecutionRequestId === requestId)]);
18410
18429
  if (!isAnchor && !hasRow) return s;
18411
18430
  const nextResolvedBy = _nullishCoalesce(resolvedByName, () => ( s.resolvedByName));
18412
18431
  const nextExecutions = hasRow ? {
@@ -18428,8 +18447,8 @@ function applyApprovalStatusToSegment(s, requestId, status, resolvedByName) {
18428
18447
  };
18429
18448
  }
18430
18449
  function nextBatchExecution(prevExec, toolData) {
18431
- if (toolData.type === "EXECUTING_TOOL" && _optionalChain([prevExec, 'optionalAccess', _546 => _546.status]) === "done") return null;
18432
- return toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prevExec, 'optionalAccess', _547 => _547.result]), success: _optionalChain([prevExec, 'optionalAccess', _548 => _548.success]) };
18450
+ if (toolData.type === "EXECUTING_TOOL" && _optionalChain([prevExec, 'optionalAccess', _547 => _547.status]) === "done") return null;
18451
+ return toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prevExec, 'optionalAccess', _548 => _548.result]), success: _optionalChain([prevExec, 'optionalAccess', _549 => _549.success]) };
18433
18452
  }
18434
18453
  function withBatchExecution(seg, execId, state) {
18435
18454
  return {
@@ -18446,11 +18465,11 @@ function projectBatchStatusToMessages(prev, anchorId, status) {
18446
18465
  }
18447
18466
  function projectBatchRowFailureToMessages(prev, rowRequestId) {
18448
18467
  return mapSegments(prev, (s) => {
18449
- if (s.type !== "approval_batch" || !_optionalChain([s, 'access', _549 => _549.data, 'access', _550 => _550.toolCalls, 'optionalAccess', _551 => _551.some, 'call', _552 => _552((c) => c.toolExecutionRequestId === rowRequestId)])) {
18468
+ if (s.type !== "approval_batch" || !_optionalChain([s, 'access', _550 => _550.data, 'access', _551 => _551.toolCalls, 'optionalAccess', _552 => _552.some, 'call', _553 => _553((c) => c.toolExecutionRequestId === rowRequestId)])) {
18450
18469
  return s;
18451
18470
  }
18452
- const existing = _optionalChain([s, 'access', _553 => _553.data, 'access', _554 => _554.executions, 'optionalAccess', _555 => _555[rowRequestId]]);
18453
- if (_optionalChain([existing, 'optionalAccess', _556 => _556.status]) === "done") return s;
18471
+ const existing = _optionalChain([s, 'access', _554 => _554.data, 'access', _555 => _555.executions, 'optionalAccess', _556 => _556[rowRequestId]]);
18472
+ if (_optionalChain([existing, 'optionalAccess', _557 => _557.status]) === "done") return s;
18454
18473
  return withBatchExecution(s, rowRequestId, { status: "done", success: false });
18455
18474
  });
18456
18475
  }
@@ -18486,7 +18505,7 @@ function mergeToolExecutionIfPresent(prev, segment) {
18486
18505
  for (let j = message.segments.length - 1; j >= 0; j--) {
18487
18506
  const seg = message.segments[j];
18488
18507
  if (execId && seg.type === "approval_batch" && seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId)) {
18489
- const prevExec = _optionalChain([seg, 'access', _557 => _557.data, 'access', _558 => _558.executions, 'optionalAccess', _559 => _559[execId]]);
18508
+ const prevExec = _optionalChain([seg, 'access', _558 => _558.data, 'access', _559 => _559.executions, 'optionalAccess', _560 => _560[execId]]);
18490
18509
  const nextExec = nextBatchExecution(prevExec, toolData);
18491
18510
  if (nextExec === null) return prev;
18492
18511
  if (sameExecutionState(prevExec, nextExec)) return prev;
@@ -18659,9 +18678,9 @@ var MessageSegmentAccumulator = class {
18659
18678
  type: "tool_execution",
18660
18679
  data: {
18661
18680
  ...toolData,
18662
- toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _560 => _560.data, 'access', _561 => _561.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _562 => _562.toolTitle]))),
18663
- toolExplanation: _nullishCoalesce(_nullishCoalesce(toolData.toolExplanation, () => ( _optionalChain([existingExecuting, 'optionalAccess', _563 => _563.data, 'access', _564 => _564.toolExplanation]))), () => ( _optionalChain([executingTool, 'optionalAccess', _565 => _565.toolExplanation]))),
18664
- parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _566 => _566.parameters])
18681
+ toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _561 => _561.data, 'access', _562 => _562.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _563 => _563.toolTitle]))),
18682
+ toolExplanation: _nullishCoalesce(_nullishCoalesce(toolData.toolExplanation, () => ( _optionalChain([existingExecuting, 'optionalAccess', _564 => _564.data, 'access', _565 => _565.toolExplanation]))), () => ( _optionalChain([executingTool, 'optionalAccess', _566 => _566.toolExplanation]))),
18683
+ parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _567 => _567.parameters])
18665
18684
  }
18666
18685
  };
18667
18686
  if (existingIndex !== -1) {
@@ -18685,7 +18704,7 @@ var MessageSegmentAccumulator = class {
18685
18704
  if (seg.type !== "approval_batch") return seg;
18686
18705
  const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
18687
18706
  if (!hasCall) return seg;
18688
- const prev = _optionalChain([seg, 'access', _567 => _567.data, 'access', _568 => _568.executions, 'optionalAccess', _569 => _569[execId]]);
18707
+ const prev = _optionalChain([seg, 'access', _568 => _568.data, 'access', _569 => _569.executions, 'optionalAccess', _570 => _570[execId]]);
18689
18708
  const next = nextBatchExecution(prev, toolData);
18690
18709
  matched = true;
18691
18710
  if (next === null) return seg;
@@ -18819,8 +18838,8 @@ var MessageSegmentAccumulator = class {
18819
18838
  requestId,
18820
18839
  {
18821
18840
  ...pendingApproval,
18822
- command: _optionalChain([pendingApproval, 'optionalAccess', _570 => _570.command]) || "",
18823
- approvalType: _optionalChain([pendingApproval, 'optionalAccess', _571 => _571.approvalType]) || approvalType
18841
+ command: _optionalChain([pendingApproval, 'optionalAccess', _571 => _571.command]) || "",
18842
+ approvalType: _optionalChain([pendingApproval, 'optionalAccess', _572 => _572.approvalType]) || approvalType
18824
18843
  },
18825
18844
  status
18826
18845
  );
@@ -18845,9 +18864,9 @@ var MessageSegmentAccumulator = class {
18845
18864
  type: "escalation_offer",
18846
18865
  // The resolved chunk carries no text/origin — a redelivered offer must
18847
18866
  // not blank the card the PENDING chunk already painted.
18848
- data: { offerId, text: text2 || _optionalChain([existing, 'optionalAccess', _572 => _572.data, 'access', _573 => _573.text]) || "", origin: _nullishCoalesce(origin, () => ( _optionalChain([existing, 'optionalAccess', _574 => _574.data, 'access', _575 => _575.origin]))) },
18867
+ data: { offerId, text: text2 || _optionalChain([existing, 'optionalAccess', _573 => _573.data, 'access', _574 => _574.text]) || "", origin: _nullishCoalesce(origin, () => ( _optionalChain([existing, 'optionalAccess', _575 => _575.data, 'access', _576 => _576.origin]))) },
18849
18868
  status,
18850
- resolvedByName: _nullishCoalesce(resolvedByName, () => ( _optionalChain([existing, 'optionalAccess', _576 => _576.resolvedByName]))),
18869
+ resolvedByName: _nullishCoalesce(resolvedByName, () => ( _optionalChain([existing, 'optionalAccess', _577 => _577.resolvedByName]))),
18851
18870
  onApprove: this.callbacks.onEscalationApprove,
18852
18871
  onReject: this.callbacks.onEscalationReject
18853
18872
  };
@@ -19173,7 +19192,7 @@ function createChatStreamReducer(options = {}) {
19173
19192
  let stateCache = null;
19174
19193
  function invalidate() {
19175
19194
  stateCache = null;
19176
- _optionalChain([onChange, 'optionalCall', _577 => _577()]);
19195
+ _optionalChain([onChange, 'optionalCall', _578 => _578()]);
19177
19196
  }
19178
19197
  function getState() {
19179
19198
  if (!stateCache) {
@@ -19191,7 +19210,7 @@ function createChatStreamReducer(options = {}) {
19191
19210
  return stateCache;
19192
19211
  }
19193
19212
  function emit(name, ...args) {
19194
- _optionalChain([onEffect, 'optionalCall', _578 => _578({ name, args })]);
19213
+ _optionalChain([onEffect, 'optionalCall', _579 => _579({ name, args })]);
19195
19214
  }
19196
19215
  function setMessagesInternal(next) {
19197
19216
  if (next !== messages) {
@@ -19234,12 +19253,12 @@ function createChatStreamReducer(options = {}) {
19234
19253
  return stampTrailingAssistantSourceMetadata(stampTrailingAssistantSeq(next, seq));
19235
19254
  }
19236
19255
  function applySegmentsToState(segments, meta) {
19237
- const seq = _optionalChain([meta, 'optionalAccess', _579 => _579.streamSeq]);
19238
- if (_optionalChain([meta, 'optionalAccess', _580 => _580.append]) && meta.isCompacting) {
19256
+ const seq = _optionalChain([meta, 'optionalAccess', _580 => _580.streamSeq]);
19257
+ if (_optionalChain([meta, 'optionalAccess', _581 => _581.append]) && meta.isCompacting) {
19239
19258
  setMessagesInternal(commitTrailingAssistant(upsertTrailingCompaction(messages, segments), seq));
19240
19259
  return;
19241
19260
  }
19242
- if (_optionalChain([meta, 'optionalAccess', _581 => _581.append])) {
19261
+ if (_optionalChain([meta, 'optionalAccess', _582 => _582.append])) {
19243
19262
  setMessagesInternal(commitTrailingAssistant(appendToTrailingAssistant(messages, segments), seq));
19244
19263
  return;
19245
19264
  }
@@ -19251,7 +19270,7 @@ function createChatStreamReducer(options = {}) {
19251
19270
  adoptTrailingAssistant = false;
19252
19271
  const last = messages[messages.length - 1];
19253
19272
  if (!last || last.role !== "assistant" || adoptTail) return;
19254
- const hasContent = (_nullishCoalesce(_optionalChain([last, 'access', _582 => _582.segments, 'optionalAccess', _583 => _583.length]), () => ( 0))) > 0 || last.content !== "";
19273
+ const hasContent = (_nullishCoalesce(_optionalChain([last, 'access', _583 => _583.segments, 'optionalAccess', _584 => _584.length]), () => ( 0))) > 0 || last.content !== "";
19255
19274
  if (!hasContent) return;
19256
19275
  setMessagesInternal([...messages, { id: nextId("assistant"), role: "assistant", content: "", segments: [] }]);
19257
19276
  }
@@ -19470,13 +19489,13 @@ function createChatStreamReducer(options = {}) {
19470
19489
  const summary = required ? getCommandText(required) : `Batch of ${toolCalls.length} tool calls`;
19471
19490
  pendingEscalated.set(requestId, {
19472
19491
  command: summary,
19473
- explanation: _optionalChain([required, 'optionalAccess', _584 => _584.toolExplanation]),
19492
+ explanation: _optionalChain([required, 'optionalAccess', _585 => _585.toolExplanation]),
19474
19493
  approvalType,
19475
19494
  toolCalls
19476
19495
  });
19477
19496
  emit("onEscalatedApproval", requestId, {
19478
19497
  command: summary,
19479
- explanation: _optionalChain([required, 'optionalAccess', _585 => _585.toolExplanation]),
19498
+ explanation: _optionalChain([required, 'optionalAccess', _586 => _586.toolExplanation]),
19480
19499
  approvalType
19481
19500
  });
19482
19501
  break;
@@ -19864,7 +19883,7 @@ function createChatStreamReducer(options = {}) {
19864
19883
  const resolveBatch = (status, confirm) => async () => {
19865
19884
  setMessagesInternal(projectBatchStatusToMessages(messages, anchorId, status));
19866
19885
  for (const id of ids) {
19867
- const ok = await _optionalChain([confirm, 'optionalCall', _586 => _586(id)]);
19886
+ const ok = await _optionalChain([confirm, 'optionalCall', _587 => _587(id)]);
19868
19887
  if (ok === false) {
19869
19888
  setMessagesInternal(projectBatchRowFailureToMessages(messages, id));
19870
19889
  }
@@ -20000,8 +20019,8 @@ function createChatStreamReducer(options = {}) {
20000
20019
  }
20001
20020
  }
20002
20021
  }
20003
- hasEverStreamed = hasEverStreamed || (_nullishCoalesce(_optionalChain([extras, 'optionalAccess', _587 => _587.resumed]), () => ( messages.length > 0)));
20004
- if (_optionalChain([extras, 'optionalAccess', _588 => _588.agentBusy])) agentBusyState();
20022
+ hasEverStreamed = hasEverStreamed || (_nullishCoalesce(_optionalChain([extras, 'optionalAccess', _588 => _588.resumed]), () => ( messages.length > 0)));
20023
+ if (_optionalChain([extras, 'optionalAccess', _589 => _589.agentBusy])) agentBusyState();
20005
20024
  invalidate();
20006
20025
  }
20007
20026
  return {
@@ -20088,7 +20107,7 @@ function createChatStreamReducer(options = {}) {
20088
20107
  },
20089
20108
  endSseTurn() {
20090
20109
  const last = messages[messages.length - 1];
20091
- if (last && last.role === "assistant" && (_nullishCoalesce(_optionalChain([last, 'access', _589 => _589.segments, 'optionalAccess', _590 => _590.length]), () => ( 0))) === 0 && last.content === "") {
20110
+ if (last && last.role === "assistant" && (_nullishCoalesce(_optionalChain([last, 'access', _590 => _590.segments, 'optionalAccess', _591 => _591.length]), () => ( 0))) === 0 && last.content === "") {
20092
20111
  messages = messages.slice(0, -1);
20093
20112
  }
20094
20113
  sseCurrentText = "";
@@ -20242,10 +20261,10 @@ function createChatDialogStore(options = {}) {
20242
20261
  if (onEvict) {
20243
20262
  const sep = key.indexOf(KEY_SEP);
20244
20263
  onEvict(key.slice(0, sep), key.slice(sep + 1), {
20245
- messages: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _591 => _591.state, 'access', _592 => _592.messages]), () => ( EMPTY_STATE.messages)),
20246
- approvalStatuses: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _593 => _593.state, 'access', _594 => _594.approvalStatuses]), () => ( EMPTY_STATE.approvalStatuses)),
20247
- lastAppliedSeq: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _595 => _595.getLastAppliedSeq, 'call', _596 => _596()]), () => ( Number.NEGATIVE_INFINITY)),
20248
- pendingEchoes: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _597 => _597.getPendingEchoes, 'call', _598 => _598()]), () => ( EMPTY_PENDING_ECHOES))
20264
+ messages: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _592 => _592.state, 'access', _593 => _593.messages]), () => ( EMPTY_STATE.messages)),
20265
+ approvalStatuses: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _594 => _594.state, 'access', _595 => _595.approvalStatuses]), () => ( EMPTY_STATE.approvalStatuses)),
20266
+ lastAppliedSeq: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _596 => _596.getLastAppliedSeq, 'call', _597 => _597()]), () => ( Number.NEGATIVE_INFINITY)),
20267
+ pendingEchoes: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _598 => _598.getPendingEchoes, 'call', _599 => _599()]), () => ( EMPTY_PENDING_ECHOES))
20249
20268
  });
20250
20269
  }
20251
20270
  }
@@ -20255,12 +20274,12 @@ function createChatDialogStore(options = {}) {
20255
20274
  const key = keyOf(dialogId, side);
20256
20275
  let reducer = reducers.get(key);
20257
20276
  if (!reducer) {
20258
- const base = _nullishCoalesce(_optionalChain([(_nullishCoalesce(createOptions, () => ( defaultCreateOptions))), 'optionalCall', _599 => _599(dialogId, side)]), () => ( {}));
20277
+ const base = _nullishCoalesce(_optionalChain([(_nullishCoalesce(createOptions, () => ( defaultCreateOptions))), 'optionalCall', _600 => _600(dialogId, side)]), () => ( {}));
20259
20278
  const userOnChange = base.onChange;
20260
20279
  reducer = createChatStreamReducer({
20261
20280
  ...base,
20262
20281
  onChange: () => {
20263
- _optionalChain([userOnChange, 'optionalCall', _600 => _600()]);
20282
+ _optionalChain([userOnChange, 'optionalCall', _601 => _601()]);
20264
20283
  notify();
20265
20284
  }
20266
20285
  });
@@ -20305,7 +20324,7 @@ function createChatDialogStore(options = {}) {
20305
20324
  };
20306
20325
  }
20307
20326
  function getSnapshot2(dialogId, side = DEFAULT_DIALOG_SIDE) {
20308
- return _nullishCoalesce(_optionalChain([reducers, 'access', _601 => _601.get, 'call', _602 => _602(keyOf(dialogId, side)), 'optionalAccess', _603 => _603.state]), () => ( EMPTY_STATE));
20327
+ return _nullishCoalesce(_optionalChain([reducers, 'access', _602 => _602.get, 'call', _603 => _603(keyOf(dialogId, side)), 'optionalAccess', _604 => _604.state]), () => ( EMPTY_STATE));
20309
20328
  }
20310
20329
  function getServerSnapshot2() {
20311
20330
  return EMPTY_STATE;
@@ -20397,7 +20416,7 @@ function createDeltaBatcher({
20397
20416
  pending = [];
20398
20417
  const key = pendingKey;
20399
20418
  for (const delta of batch) applyOne(delta, key);
20400
- _optionalChain([onFlushed, 'optionalCall', _604 => _604(batch.length)]);
20419
+ _optionalChain([onFlushed, 'optionalCall', _605 => _605(batch.length)]);
20401
20420
  }
20402
20421
  function schedule() {
20403
20422
  if (raf !== null || timer !== null) return;
@@ -20421,7 +20440,7 @@ function createDeltaBatcher({
20421
20440
  }
20422
20441
  if (!isDeltaEvent(event)) return false;
20423
20442
  const tail = pending[pending.length - 1];
20424
- const seqAdvances = _optionalChain([tail, 'optionalAccess', _605 => _605.seq]) == null ? event.seq == null : event.seq != null && event.seq > tail.seq;
20443
+ const seqAdvances = _optionalChain([tail, 'optionalAccess', _606 => _606.seq]) == null ? event.seq == null : event.seq != null && event.seq > tail.seq;
20425
20444
  if (tail && seqAdvances && tail.type === event.type && (tail.type !== "text-delta" || tail.leading === event.leading)) {
20426
20445
  pending[pending.length - 1] = {
20427
20446
  ...tail,
@@ -20452,7 +20471,7 @@ function useChatStreamReducer({
20452
20471
  side = DEFAULT_DIALOG_SIDE,
20453
20472
  createReducerOptions
20454
20473
  }) {
20455
- const reducer = store.getReducer(dialogId, side, () => _nullishCoalesce(_optionalChain([createReducerOptions, 'optionalCall', _606 => _606()]), () => ( {})));
20474
+ const reducer = store.getReducer(dialogId, side, () => _nullishCoalesce(_optionalChain([createReducerOptions, 'optionalCall', _607 => _607()]), () => ( {})));
20456
20475
  const getSnapshot2 = _react.useCallback.call(void 0, () => store.getSnapshot(dialogId, side), [store, dialogId, side]);
20457
20476
  const getServerSnapshot2 = _react.useCallback.call(void 0, () => store.getServerSnapshot(), [store]);
20458
20477
  const subscribe2 = _react.useCallback.call(void 0, (listener) => store.subscribe(listener), [store]);
@@ -20491,7 +20510,7 @@ var STORAGE_KEY = "conversation";
20491
20510
  var namespaceFor = (source) => {
20492
20511
  const base = `mingo-chat-${source}`;
20493
20512
  const auth = _chunkLM7TXMLUcjs.getEmbedProxyAuth.call(void 0, );
20494
- return _optionalChain([auth, 'optionalAccess', _607 => _607.email]) ? `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}` : base;
20513
+ return _optionalChain([auth, 'optionalAccess', _608 => _608.email]) ? `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}` : base;
20495
20514
  };
20496
20515
  function createChatConversationStorage(source) {
20497
20516
  return _chunkLM7TXMLUcjs.createLocalStorageAdapter.call(void 0, {
@@ -20603,7 +20622,7 @@ function formatSingularLookupInvocation(cmdId, value) {
20603
20622
  return safe ? `/${cmdId} "${safe}"` : `/${cmdId}`;
20604
20623
  }
20605
20624
  function extractEntityIdFilter(override, expectedTableId) {
20606
- const f = _optionalChain([override, 'optionalAccess', _608 => _608.entityIdFilter]);
20625
+ const f = _optionalChain([override, 'optionalAccess', _609 => _609.entityIdFilter]);
20607
20626
  if (!f) return null;
20608
20627
  const tableId = typeof f.tableId === "string" ? f.tableId : "";
20609
20628
  const id = typeof f.id === "string" ? f.id : "";
@@ -20642,7 +20661,7 @@ var AUTO_CONTINUATION_DIRECTIVE_PREFIX = "[internal-auto-continuation]";
20642
20661
  function buildAutoContinuationDirective(toolName, opts = {}) {
20643
20662
  const ticketRef = opts.ticketId ? ` (ticket #${opts.ticketId})` : "";
20644
20663
  const ticketHash = opts.ticketId ? ` #${opts.ticketId}` : "";
20645
- const isClose = toolName === "update_ticket" && _optionalChain([opts, 'access', _609 => _609.status, 'optionalAccess', _610 => _610.toUpperCase, 'call', _611 => _611()]) === "CLOSED";
20664
+ const isClose = toolName === "update_ticket" && _optionalChain([opts, 'access', _610 => _610.status, 'optionalAccess', _611 => _611.toUpperCase, 'call', _612 => _612()]) === "CLOSED";
20646
20665
  if (toolName === "create_ticket") {
20647
20666
  return `${AUTO_CONTINUATION_DIRECTIVE_PREFIX} The user just approved create_ticket${ticketRef}. Per ticket-protocol \xA71a, ask 2-4 SHORT, issue-specific diagnostic follow-up questions tailored to the symptom they reported in their original message. When they answer, propose an update_ticket with content_addendum carrying a clean Q&A digest. Do NOT call any tool in this turn \u2014 just write the questions as prose.`;
20648
20667
  }
@@ -20692,7 +20711,7 @@ function useChatHistoryHydration({
20692
20711
  if (cancelled) return;
20693
20712
  if (rows.length === 0) {
20694
20713
  const found = isRecord(body) ? body.found : void 0;
20695
- if (found === false) _optionalChain([onOrphanedConversation, 'optionalCall', _612 => _612(conversationId)]);
20714
+ if (found === false) _optionalChain([onOrphanedConversation, 'optionalCall', _613 => _613(conversationId)]);
20696
20715
  return;
20697
20716
  }
20698
20717
  const hydrated = [];
@@ -20836,7 +20855,7 @@ function useManagedDialogList({
20836
20855
  try {
20837
20856
  await deleteDialogCallback(id);
20838
20857
  removeLocal(id);
20839
- _optionalChain([onDialogRemovedRef, 'access', _613 => _613.current, 'optionalCall', _614 => _614(id, "deleted")]);
20858
+ _optionalChain([onDialogRemovedRef, 'access', _614 => _614.current, 'optionalCall', _615 => _615(id, "deleted")]);
20840
20859
  } catch (err) {
20841
20860
  console.error(`${logTag} deleteDialog failed:`, err);
20842
20861
  throw err;
@@ -20847,7 +20866,7 @@ function useManagedDialogList({
20847
20866
  const renameDialog = _react.useCallback.call(void 0,
20848
20867
  async (id, title) => {
20849
20868
  if (!renameDialogCallback) return;
20850
- const previous = _optionalChain([dialogsRef, 'access', _615 => _615.current, 'access', _616 => _616.find, 'call', _617 => _617((d) => d.id === id), 'optionalAccess', _618 => _618.title]);
20869
+ const previous = _optionalChain([dialogsRef, 'access', _616 => _616.current, 'access', _617 => _617.find, 'call', _618 => _618((d) => d.id === id), 'optionalAccess', _619 => _619.title]);
20851
20870
  setDialogs((prev) => prev.map((d) => d.id === id ? { ...d, title } : d));
20852
20871
  try {
20853
20872
  await renameDialogCallback(id, title);
@@ -20866,7 +20885,7 @@ function useManagedDialogList({
20866
20885
  try {
20867
20886
  await archiveDialogCallback(id);
20868
20887
  removeLocal(id);
20869
- _optionalChain([onDialogRemovedRef, 'access', _619 => _619.current, 'optionalCall', _620 => _620(id, "archived")]);
20888
+ _optionalChain([onDialogRemovedRef, 'access', _620 => _620.current, 'optionalCall', _621 => _621(id, "archived")]);
20870
20889
  } catch (err) {
20871
20890
  console.error(`${logTag} archiveDialog failed:`, err);
20872
20891
  throw err;
@@ -20958,7 +20977,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
20958
20977
  const { active = true } = runtimeOptions;
20959
20978
  const runtime = _chunkUJ7AXHRZcjs.useRequiredChatRuntime.call(void 0, );
20960
20979
  const source = runtime.source || DEFAULT_CHAT_SOURCE;
20961
- const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _621 => _621.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
20980
+ const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _622 => _622.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
20962
20981
  const sendMessageRef = _react.useRef.call(void 0,
20963
20982
  () => Promise.resolve(true)
20964
20983
  );
@@ -20994,7 +21013,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
20994
21013
  if (!restoredConversationRef.current) {
20995
21014
  restoredConversationRef.current = true;
20996
21015
  pruneStaleChatConversationStorage(source);
20997
- conversationIdRef.current = _nullishCoalesce(_optionalChain([conversationStorage, 'access', _622 => _622.load, 'call', _623 => _623(), 'optionalAccess', _624 => _624.conversationId]), () => ( null));
21016
+ conversationIdRef.current = _nullishCoalesce(_optionalChain([conversationStorage, 'access', _623 => _623.load, 'call', _624 => _624(), 'optionalAccess', _625 => _625.conversationId]), () => ( null));
20998
21017
  }
20999
21018
  const [conversationId, setConversationId] = _react.useState.call(void 0, () => conversationIdRef.current);
21000
21019
  const commitConversationId = _react.useCallback.call(void 0,
@@ -21085,7 +21104,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21085
21104
  const abortControllerRef = _react.useRef.call(void 0, null);
21086
21105
  const switchConversation = _react.useCallback.call(void 0,
21087
21106
  (id) => {
21088
- _optionalChain([abortControllerRef, 'access', _625 => _625.current, 'optionalAccess', _626 => _626.abort, 'call', _627 => _627()]);
21107
+ _optionalChain([abortControllerRef, 'access', _626 => _626.current, 'optionalAccess', _627 => _627.abort, 'call', _628 => _628()]);
21089
21108
  flushDeltas();
21090
21109
  mutate((r) => r.reset());
21091
21110
  hydrationSendCountRef.current = 0;
@@ -21122,8 +21141,8 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21122
21141
  } = useManagedDialogList({
21123
21142
  autoLoad: active,
21124
21143
  fetchDialogs: fetchActiveDialogs,
21125
- renameDialog: _optionalChain([conversationsApi, 'optionalAccess', _628 => _628.renameDialog]),
21126
- archiveDialog: _optionalChain([conversationsApi, 'optionalAccess', _629 => _629.archiveDialog]),
21144
+ renameDialog: _optionalChain([conversationsApi, 'optionalAccess', _629 => _629.renameDialog]),
21145
+ archiveDialog: _optionalChain([conversationsApi, 'optionalAccess', _630 => _630.archiveDialog]),
21127
21146
  pageSize: 20,
21128
21147
  search: conversationsApi ? dialogSearch : void 0,
21129
21148
  logTag: "[useSseChatAdapter]",
@@ -21187,7 +21206,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21187
21206
  const serverMessage = await readServerErrorMessage(response);
21188
21207
  throw new Error(_nullishCoalesce(serverMessage, () => ( `Chat request failed: ${response.status}`)));
21189
21208
  }
21190
- const reader = _optionalChain([response, 'access', _630 => _630.body, 'optionalAccess', _631 => _631.getReader, 'call', _632 => _632()]);
21209
+ const reader = _optionalChain([response, 'access', _631 => _631.body, 'optionalAccess', _632 => _632.getReader, 'call', _633 => _633()]);
21191
21210
  if (!reader) throw new Error("No response body");
21192
21211
  const frameDecoder = createSseFrameDecoder();
21193
21212
  let finished = false;
@@ -21216,7 +21235,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21216
21235
  }
21217
21236
  return true;
21218
21237
  } catch (err) {
21219
- if (_optionalChain([err, 'optionalAccess', _633 => _633.name]) === "AbortError" || ctrl.signal.aborted) {
21238
+ if (_optionalChain([err, 'optionalAccess', _634 => _634.name]) === "AbortError" || ctrl.signal.aborted) {
21220
21239
  return true;
21221
21240
  }
21222
21241
  flushDeltas();
@@ -21252,7 +21271,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21252
21271
  );
21253
21272
  sendMessageRef.current = sendMessage;
21254
21273
  const stopMessage = _react.useCallback.call(void 0, () => {
21255
- _optionalChain([abortControllerRef, 'access', _634 => _634.current, 'optionalAccess', _635 => _635.abort, 'call', _636 => _636()]);
21274
+ _optionalChain([abortControllerRef, 'access', _635 => _635.current, 'optionalAccess', _636 => _636.abort, 'call', _637 => _637()]);
21256
21275
  flushDeltas();
21257
21276
  mutate((r) => r.setPhase("idle"));
21258
21277
  }, [mutate, flushDeltas]);
@@ -21288,7 +21307,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21288
21307
  let sendIdx = -1;
21289
21308
  return state.messages.map((m) => {
21290
21309
  const segments = m.segments;
21291
- const content = typeof m.content === "string" && !segments ? m.content : _nullishCoalesce(_optionalChain([segments, 'optionalAccess', _637 => _637.filter, 'call', _638 => _638((s) => s.type === "text"), 'access', _639 => _639.map, 'call', _640 => _640((s) => s.text), 'access', _641 => _641.join, 'call', _642 => _642("")]), () => ( ""));
21310
+ const content = typeof m.content === "string" && !segments ? m.content : _nullishCoalesce(_optionalChain([segments, 'optionalAccess', _638 => _638.filter, 'call', _639 => _639((s) => s.type === "text"), 'access', _640 => _640.map, 'call', _641 => _641((s) => s.text), 'access', _642 => _642.join, 'call', _643 => _643("")]), () => ( ""));
21292
21311
  let sources2;
21293
21312
  let scrollAnchor;
21294
21313
  if (m.role === "user" && !m.hidden) {
@@ -21297,7 +21316,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21297
21316
  if (m.role === "assistant") {
21298
21317
  const lookupIdx = sendIdx >= 0 ? sendIdx : 0;
21299
21318
  sources2 = sourcesMap.get(lookupIdx);
21300
- scrollAnchor = _nullishCoalesce(_optionalChain([meta, 'access', _643 => _643.get, 'call', _644 => _644(lookupIdx), 'optionalAccess', _645 => _645.scrollAnchor]), () => ( void 0));
21319
+ scrollAnchor = _nullishCoalesce(_optionalChain([meta, 'access', _644 => _644.get, 'call', _645 => _645(lookupIdx), 'optionalAccess', _646 => _646.scrollAnchor]), () => ( void 0));
21301
21320
  }
21302
21321
  return {
21303
21322
  id: m.id,
@@ -21324,7 +21343,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21324
21343
  );
21325
21344
  return;
21326
21345
  }
21327
- const refSlug = typeof _optionalChain([reference, 'access', _646 => _646.metadata, 'optionalAccess', _647 => _647.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
21346
+ const refSlug = typeof _optionalChain([reference, 'access', _647 => _647.metadata, 'optionalAccess', _648 => _648.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
21328
21347
  const queryValue = refSlug || sanitizeTitleForChat(reference.title) || reference.id;
21329
21348
  const escaped = queryValue.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
21330
21349
  const text2 = `/${cmdId} display "${escaped}"`;
@@ -21372,18 +21391,18 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21372
21391
  /** True while the mount-time rebuild from the server transcript runs. */
21373
21392
  isHydratingHistory,
21374
21393
  /** Provider key for the lib's `<ModelDisplay>` icon. */
21375
- currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _648 => _648.provider]), () => ( null)),
21376
- currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _649 => _649.modelLabel]), () => ( null)),
21377
- currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _650 => _650.contextWindowMaxTokens]), () => ( null)),
21394
+ currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _649 => _649.provider]), () => ( null)),
21395
+ currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _650 => _650.modelLabel]), () => ( null)),
21396
+ currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _651 => _651.contextWindowMaxTokens]), () => ( null)),
21378
21397
  /** Input tokens (known after server's message_start frame; null until). */
21379
- currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _651 => _651.inputTokens]), () => ( null)),
21398
+ currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _652 => _652.inputTokens]), () => ( null)),
21380
21399
  /** Output tokens (known only after server's trailing usage frame). */
21381
- currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _652 => _652.outputTokens]), () => ( null)),
21400
+ currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _653 => _653.outputTokens]), () => ( null)),
21382
21401
  /** Cache hit % (read / total-input × 100). null during streaming. */
21383
- currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _653 => _653.cacheHitRatePct]), () => ( null)),
21402
+ currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _654 => _654.cacheHitRatePct]), () => ( null)),
21384
21403
  /** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
21385
21404
  * token counts). null until the trailing usage frame lands. */
21386
- currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _654 => _654.breakdown]), () => ( null)),
21405
+ currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _655 => _655.breakdown]), () => ( null)),
21387
21406
  // ─── Dialog management ───────────────────────────────────────────────
21388
21407
  // With `chatConversationsUrl` the server transcript store IS the dialog
21389
21408
  // list (shared `useManagedDialogList`); selecting a row re-hydrates through
@@ -21638,7 +21657,7 @@ function decodeNatsChunk(chunk) {
21638
21657
  userId: typeof data.userId === "string" ? data.userId : void 0,
21639
21658
  // Wire shape carries no label; fall back to the id (parity with
21640
21659
  // the history path in `process-historical-messages.ts`).
21641
- contextItems: Array.isArray(data.contextItems) ? data.contextItems.filter((it) => typeof _optionalChain([it, 'optionalAccess', _655 => _655.type]) === "string" && typeof _optionalChain([it, 'optionalAccess', _656 => _656.id]) === "string").map((it) => ({
21660
+ contextItems: Array.isArray(data.contextItems) ? data.contextItems.filter((it) => typeof _optionalChain([it, 'optionalAccess', _656 => _656.type]) === "string" && typeof _optionalChain([it, 'optionalAccess', _657 => _657.id]) === "string").map((it) => ({
21642
21661
  type: it.type,
21643
21662
  id: it.id,
21644
21663
  label: it.id
@@ -21729,7 +21748,7 @@ function extractIncompleteMessageState(lastMessage) {
21729
21748
  }
21730
21749
  break;
21731
21750
  case "approval_batch": {
21732
- const allDone = !!segment.data.executions && segment.data.toolCalls.every((c) => _optionalChain([segment, 'access', _657 => _657.data, 'access', _658 => _658.executions, 'optionalAccess', _659 => _659[c.toolExecutionRequestId], 'optionalAccess', _660 => _660.status]) === "done");
21751
+ const allDone = !!segment.data.executions && segment.data.toolCalls.every((c) => _optionalChain([segment, 'access', _658 => _658.data, 'access', _659 => _659.executions, 'optionalAccess', _660 => _660[c.toolExecutionRequestId], 'optionalAccess', _661 => _661.status]) === "done");
21733
21752
  if (segment.status !== "rejected" && !allDone) {
21734
21753
  hasIncompleteState = true;
21735
21754
  }
@@ -21791,11 +21810,11 @@ function extractIncompleteMessageState(lastMessage) {
21791
21810
  function extractIncompleteTailState(messages) {
21792
21811
  if (!messages || messages.length === 0) return void 0;
21793
21812
  let start = messages.length;
21794
- while (start > 0 && _optionalChain([messages, 'access', _661 => _661[start - 1], 'optionalAccess', _662 => _662.role]) === "assistant") start -= 1;
21813
+ while (start > 0 && _optionalChain([messages, 'access', _662 => _662[start - 1], 'optionalAccess', _663 => _663.role]) === "assistant") start -= 1;
21795
21814
  if (start === messages.length) return void 0;
21796
21815
  const segments = [];
21797
21816
  for (let i = start; i < messages.length; i += 1) {
21798
- const content = _optionalChain([messages, 'access', _663 => _663[i], 'optionalAccess', _664 => _664.content]);
21817
+ const content = _optionalChain([messages, 'access', _664 => _664[i], 'optionalAccess', _665 => _665.content]);
21799
21818
  if (Array.isArray(content)) segments.push(...content);
21800
21819
  }
21801
21820
  if (segments.length === 0) return void 0;
@@ -21808,15 +21827,15 @@ function extractIncompleteTailState(messages) {
21808
21827
 
21809
21828
  // src/components/chat/utils/process-historical-messages.ts
21810
21829
  function getOwnerDisplayName(owner) {
21811
- if (_optionalChain([owner, 'optionalAccess', _665 => _665.type]) === OWNER_TYPE.ADMIN && owner.user) {
21830
+ if (_optionalChain([owner, 'optionalAccess', _666 => _666.type]) === OWNER_TYPE.ADMIN && owner.user) {
21812
21831
  const { firstName, lastName } = owner.user;
21813
21832
  const name = [firstName, lastName].filter(Boolean).join(" ");
21814
21833
  if (name) return name;
21815
21834
  }
21816
- return _optionalChain([owner, 'optionalAccess', _666 => _666.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
21835
+ return _optionalChain([owner, 'optionalAccess', _667 => _667.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
21817
21836
  }
21818
21837
  function getOwnerAvatar(owner) {
21819
- return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _667 => _667.user, 'optionalAccess', _668 => _668.image, 'optionalAccess', _669 => _669.imageUrl]), () => ( void 0));
21838
+ return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _668 => _668.user, 'optionalAccess', _669 => _669.image, 'optionalAccess', _670 => _670.imageUrl]), () => ( void 0));
21820
21839
  }
21821
21840
  function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
21822
21841
  messageDataArray.forEach((data) => {
@@ -22006,7 +22025,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
22006
22025
  event.offerId,
22007
22026
  event.text,
22008
22027
  event.origin,
22009
- _nullishCoalesce(_optionalChain([escalationOfferStates, 'optionalAccess', _670 => _670[event.offerId]]), () => ( "pending"))
22028
+ _nullishCoalesce(_optionalChain([escalationOfferStates, 'optionalAccess', _671 => _671[event.offerId]]), () => ( "pending"))
22010
22029
  );
22011
22030
  break;
22012
22031
  case "ticket-escalated":
@@ -22040,7 +22059,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
22040
22059
  );
22041
22060
  break;
22042
22061
  case "escalation-offer-resolved":
22043
- _optionalChain([offerResolutions, 'optionalAccess', _671 => _671.set, 'call', _672 => _672(event.offerId, {
22062
+ _optionalChain([offerResolutions, 'optionalAccess', _672 => _672.set, 'call', _673 => _673(event.offerId, {
22044
22063
  status: event.status,
22045
22064
  resolvedByName: event.resolvedByName
22046
22065
  })]);
@@ -22104,7 +22123,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
22104
22123
  }
22105
22124
  }
22106
22125
  } else {
22107
- _optionalChain([escalatedApprovals, 'optionalAccess', _673 => _673.set, 'call', _674 => _674(event.requestId, {
22126
+ _optionalChain([escalatedApprovals, 'optionalAccess', _674 => _674.set, 'call', _675 => _675(event.requestId, {
22108
22127
  command: event.command || "",
22109
22128
  explanation: event.explanation,
22110
22129
  approvalType,
@@ -22119,8 +22138,8 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
22119
22138
  const existingStatus = approvalStatuses[requestId];
22120
22139
  const status = existingStatus || event.status;
22121
22140
  const resolvedByName = event.resolvedByName;
22122
- const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _675 => _675.get, 'call', _676 => _676(requestId)]);
22123
- if (_optionalChain([escalatedData, 'optionalAccess', _677 => _677.toolCalls]) && escalatedData.toolCalls.length > 0) {
22141
+ const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _676 => _676.get, 'call', _677 => _677(requestId)]);
22142
+ if (_optionalChain([escalatedData, 'optionalAccess', _678 => _678.toolCalls]) && escalatedData.toolCalls.length > 0) {
22124
22143
  if (batchApprovalsEnabled) {
22125
22144
  accumulator.addApprovalBatch(
22126
22145
  requestId,
@@ -22142,7 +22161,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
22142
22161
  );
22143
22162
  }
22144
22163
  }
22145
- _optionalChain([escalatedApprovals, 'optionalAccess', _678 => _678.delete, 'call', _679 => _679(requestId)]);
22164
+ _optionalChain([escalatedApprovals, 'optionalAccess', _679 => _679.delete, 'call', _680 => _680(requestId)]);
22146
22165
  break;
22147
22166
  }
22148
22167
  if (escalatedData) {
@@ -22151,7 +22170,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
22151
22170
  explanation: escalatedData.explanation,
22152
22171
  approvalType: escalatedData.approvalType
22153
22172
  });
22154
- _optionalChain([escalatedApprovals, 'optionalAccess', _680 => _680.delete, 'call', _681 => _681(requestId)]);
22173
+ _optionalChain([escalatedApprovals, 'optionalAccess', _681 => _681.delete, 'call', _682 => _682(requestId)]);
22155
22174
  }
22156
22175
  const before = accumulator.getSegments();
22157
22176
  const after = accumulator.updateApprovalStatus(requestId, status, resolvedByName);
@@ -22243,14 +22262,14 @@ function processHistoricalMessages(messages, options = {}) {
22243
22262
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
22244
22263
  return;
22245
22264
  }
22246
- const isUserMessage = _optionalChain([msg, 'access', _682 => _682.owner, 'optionalAccess', _683 => _683.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _684 => _684.owner, 'optionalAccess', _685 => _685.type]) === OWNER_TYPE.ADMIN;
22265
+ const isUserMessage = _optionalChain([msg, 'access', _683 => _683.owner, 'optionalAccess', _684 => _684.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _685 => _685.owner, 'optionalAccess', _686 => _686.type]) === OWNER_TYPE.ADMIN;
22247
22266
  if (isUserMessage) {
22248
22267
  flushAssistantMessage();
22249
- const userAuthorType = _optionalChain([msg, 'access', _686 => _686.owner, 'optionalAccess', _687 => _687.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
22268
+ const userAuthorType = _optionalChain([msg, 'access', _687 => _687.owner, 'optionalAccess', _688 => _688.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
22250
22269
  messageDataArray.forEach((data) => {
22251
22270
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
22252
22271
  const rawContext = data.contextItems;
22253
- const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _688 => _688.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _689 => _689.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
22272
+ const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _689 => _689.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _690 => _690.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
22254
22273
  processedMessages.push({
22255
22274
  id: msg.id,
22256
22275
  role: "user",
@@ -22297,7 +22316,7 @@ function processHistoricalMessages(messages, options = {}) {
22297
22316
  });
22298
22317
  const nextMsg = messages[index + 1];
22299
22318
  const isLastMessage = index === messages.length - 1;
22300
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _690 => _690.owner, 'optionalAccess', _691 => _691.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _692 => _692.owner, 'optionalAccess', _693 => _693.type]) === OWNER_TYPE.ADMIN);
22319
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _691 => _691.owner, 'optionalAccess', _692 => _692.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _693 => _693.owner, 'optionalAccess', _694 => _694.type]) === OWNER_TYPE.ADMIN);
22301
22320
  if (isLastMessage || nextIsFromUser) {
22302
22321
  flushAssistantMessage();
22303
22322
  }
@@ -22680,7 +22699,7 @@ function useNatsChatAdapter(config, options = {}) {
22680
22699
  const connectionState = !active || !dialogId ? "connected" : connectedForDialog === dialogId ? "connected" : "connecting";
22681
22700
  const sendMessage = _react.useCallback.call(void 0,
22682
22701
  async (text2, sendOptions) => {
22683
- const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _694 => _694.hidden]), () => ( false));
22702
+ const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _695 => _695.hidden]), () => ( false));
22684
22703
  mutate((r) => r.pushOptimisticSend(text2, hidden));
22685
22704
  await publishUserMessage(text2, { hidden, dialogId });
22686
22705
  },
@@ -22773,11 +22792,11 @@ function useNatsChatAdapter(config, options = {}) {
22773
22792
  // Tokens: live `token_usage` frame / dialog snapshot (`dialogTokenUsage`).
22774
22793
  // contextWindow uses the dialog's `contextSize` (the "X / Y" denominator,
22775
22794
  // matching the /mingo page). cacheHitRate/breakdown are SSE-only → null.
22776
- currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _695 => _695.provider]), () => ( modelProvider)), () => ( null)),
22777
- currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _696 => _696.modelLabel]), () => ( modelLabel)), () => ( null)),
22778
- currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _697 => _697.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _698 => _698.contextWindowMaxTokens]))), () => ( null)),
22779
- currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _699 => _699.inputTokensSize]), () => ( null)),
22780
- currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _700 => _700.outputTokensSize]), () => ( null)),
22795
+ currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _696 => _696.provider]), () => ( modelProvider)), () => ( null)),
22796
+ currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _697 => _697.modelLabel]), () => ( modelLabel)), () => ( null)),
22797
+ currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _698 => _698.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _699 => _699.contextWindowMaxTokens]))), () => ( null)),
22798
+ currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _700 => _700.inputTokensSize]), () => ( null)),
22799
+ currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _701 => _701.outputTokensSize]), () => ( null)),
22781
22800
  currentCacheHitRatePct: null,
22782
22801
  currentUsageBreakdown: null,
22783
22802
  // Dialog management
@@ -22899,7 +22918,7 @@ function useUnifiedChat(options) {
22899
22918
  []
22900
22919
  );
22901
22920
  const displayRefForward = _react.useCallback.call(void 0,
22902
- (ref) => _optionalChain([activeStateRef, 'access', _701 => _701.current, 'access', _702 => _702.displayRef, 'optionalCall', _703 => _703(ref)]),
22921
+ (ref) => _optionalChain([activeStateRef, 'access', _702 => _702.current, 'access', _703 => _703.displayRef, 'optionalCall', _704 => _704(ref)]),
22903
22922
  []
22904
22923
  );
22905
22924
  const displayRef = activeState.displayRef ? displayRefForward : void 0;
@@ -22909,7 +22928,7 @@ function useUnifiedChat(options) {
22909
22928
  const renameDialog = _react.useCallback.call(void 0, (id, title) => activeStateRef.current.renameDialog(id, title), []);
22910
22929
  const archiveDialog = _react.useCallback.call(void 0, (id) => activeStateRef.current.archiveDialog(id), []);
22911
22930
  const loadMoreDialogs = _react.useCallback.call(void 0, () => activeStateRef.current.loadMoreDialogs(), []);
22912
- const setDialogScope = _react.useCallback.call(void 0, (scope) => _optionalChain([activeStateRef, 'access', _704 => _704.current, 'access', _705 => _705.setDialogScope, 'optionalCall', _706 => _706(scope)]), []);
22931
+ const setDialogScope = _react.useCallback.call(void 0, (scope) => _optionalChain([activeStateRef, 'access', _705 => _705.current, 'access', _706 => _706.setDialogScope, 'optionalCall', _707 => _707(scope)]), []);
22913
22932
  const reloadDialogs = _react.useCallback.call(void 0, () => activeStateRef.current.reloadDialogs(), []);
22914
22933
  const loadMoreMessages = _react.useCallback.call(void 0, () => activeStateRef.current.loadMoreMessages(), []);
22915
22934
  const approveRequest = _react.useCallback.call(void 0, (requestId) => activeStateRef.current.approveRequest(requestId), []);
@@ -23018,19 +23037,19 @@ function turnRequestKeys(content) {
23018
23037
  if (!Array.isArray(content)) return keys;
23019
23038
  for (const seg of content) {
23020
23039
  if (seg.type === "tool_execution") {
23021
- const id = _optionalChain([seg, 'access', _707 => _707.data, 'optionalAccess', _708 => _708.toolExecutionRequestId]);
23040
+ const id = _optionalChain([seg, 'access', _708 => _708.data, 'optionalAccess', _709 => _709.toolExecutionRequestId]);
23022
23041
  if (id) keys.add(id);
23023
23042
  } else if (seg.type === "approval_request") {
23024
- const id = _optionalChain([seg, 'access', _709 => _709.data, 'optionalAccess', _710 => _710.requestId]);
23043
+ const id = _optionalChain([seg, 'access', _710 => _710.data, 'optionalAccess', _711 => _711.requestId]);
23025
23044
  if (id) keys.add(id);
23026
23045
  } else if (seg.type === "escalation_offer") {
23027
- const id = _optionalChain([seg, 'access', _711 => _711.data, 'optionalAccess', _712 => _712.offerId]);
23046
+ const id = _optionalChain([seg, 'access', _712 => _712.data, 'optionalAccess', _713 => _713.offerId]);
23028
23047
  if (id) keys.add(id);
23029
23048
  } else if (seg.type === "approval_batch") {
23030
23049
  const data = seg.data;
23031
- if (_optionalChain([data, 'optionalAccess', _713 => _713.approvalRequestId])) keys.add(data.approvalRequestId);
23032
- for (const call of _nullishCoalesce(_optionalChain([data, 'optionalAccess', _714 => _714.toolCalls]), () => ( []))) {
23033
- if (_optionalChain([call, 'optionalAccess', _715 => _715.toolExecutionRequestId])) keys.add(call.toolExecutionRequestId);
23050
+ if (_optionalChain([data, 'optionalAccess', _714 => _714.approvalRequestId])) keys.add(data.approvalRequestId);
23051
+ for (const call of _nullishCoalesce(_optionalChain([data, 'optionalAccess', _715 => _715.toolCalls]), () => ( []))) {
23052
+ if (_optionalChain([call, 'optionalAccess', _716 => _716.toolExecutionRequestId])) keys.add(call.toolExecutionRequestId);
23034
23053
  }
23035
23054
  }
23036
23055
  }
@@ -23115,18 +23134,18 @@ function mergeHistoryWithRealtime(input) {
23115
23134
  }
23116
23135
  }
23117
23136
  const trailing = processedHistory[processedHistory.length - 1];
23118
- const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _716 => _716.role]) === "assistant" ? trailing : null;
23119
- const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _717 => _717.content, 'access', _718 => _718.find, 'call', _719 => _719((s) => s.type === "approval_batch"), 'optionalAccess', _720 => _720.data, 'optionalAccess', _721 => _721.approvalRequestId]), () => ( null)) : null;
23137
+ const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _717 => _717.role]) === "assistant" ? trailing : null;
23138
+ const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _718 => _718.content, 'access', _719 => _719.find, 'call', _720 => _720((s) => s.type === "approval_batch"), 'optionalAccess', _721 => _721.data, 'optionalAccess', _722 => _722.approvalRequestId]), () => ( null)) : null;
23120
23139
  let processedToUse = processedHistory;
23121
23140
  const pinnedSyntheticIds = /* @__PURE__ */ new Set();
23122
23141
  const droppedSyntheticIds = /* @__PURE__ */ new Set();
23123
23142
  if (historyBatchId) {
23124
23143
  const batchTwins = existingMessages.filter(
23125
- (m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some((s) => s.type === "approval_batch" && _optionalChain([s, 'access', _722 => _722.data, 'optionalAccess', _723 => _723.approvalRequestId]) === historyBatchId)
23144
+ (m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some((s) => s.type === "approval_batch" && _optionalChain([s, 'access', _723 => _723.data, 'optionalAccess', _724 => _724.approvalRequestId]) === historyBatchId)
23126
23145
  );
23127
23146
  const existingWithSameBatch = _nullishCoalesce(batchTwins.find((m) => m.id === streamingMessageId), () => ( batchTwins[batchTwins.length - 1]));
23128
23147
  if (existingWithSameBatch && Array.isArray(existingWithSameBatch.content)) {
23129
- const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _724 => _724.content])) ? historyTrailingAssistant.content.length : 0;
23148
+ const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _725 => _725.content])) ? historyTrailingAssistant.content.length : 0;
23130
23149
  const realtimeSize = existingWithSameBatch.content.length;
23131
23150
  if (existingWithSameBatch.id === streamingMessageId || realtimeSize > histSize) {
23132
23151
  processedToUse = processedHistory.slice(0, -1);
@@ -23159,9 +23178,9 @@ function mergeHistoryWithRealtime(input) {
23159
23178
  const trailingAssistantText = lastProcessed && lastProcessed.role === "assistant" ? assistantAnswerText(lastProcessed.content) : "";
23160
23179
  const windowSignals = collectTwinSignals(processedToUse);
23161
23180
  const seenUserSyntheticByContent = /* @__PURE__ */ new Map();
23162
- const isInWindow = (m) => processedIds.has(m.id) || (_nullishCoalesce(_optionalChain([rawHistoryIds, 'optionalAccess', _725 => _725.has, 'call', _726 => _726(m.id)]), () => ( false)));
23181
+ const isInWindow = (m) => processedIds.has(m.id) || (_nullishCoalesce(_optionalChain([rawHistoryIds, 'optionalAccess', _726 => _726.has, 'call', _727 => _727(m.id)]), () => ( false)));
23163
23182
  const firstWindowIndex = existingMessages.findIndex(isInWindow);
23164
- const isPersistedOlder = (m) => !isClientMintedId(m.id) && (_nullishCoalesce(_optionalChain([m, 'access', _727 => _727.timestamp, 'optionalAccess', _728 => _728.getTime, 'call', _729 => _729()]), () => ( 0))) <= historyFetchedAt;
23183
+ const isPersistedOlder = (m) => !isClientMintedId(m.id) && (_nullishCoalesce(_optionalChain([m, 'access', _728 => _728.timestamp, 'optionalAccess', _729 => _729.getTime, 'call', _730 => _730()]), () => ( 0))) <= historyFetchedAt;
23165
23184
  let lastOlderPersistedIndex = -1;
23166
23185
  if (firstWindowIndex < 0) {
23167
23186
  for (const [index, m] of existingMessages.entries()) {
@@ -23179,7 +23198,7 @@ function mergeHistoryWithRealtime(input) {
23179
23198
  } else if (pm.role === "assistant") {
23180
23199
  windowHasUnstampedAssistant = true;
23181
23200
  }
23182
- const time = _optionalChain([pm, 'access', _730 => _730.timestamp, 'optionalAccess', _731 => _731.getTime, 'call', _732 => _732()]);
23201
+ const time = _optionalChain([pm, 'access', _731 => _731.timestamp, 'optionalAccess', _732 => _732.getTime, 'call', _733 => _733()]);
23183
23202
  if (typeof time === "number" && time < windowMinTime) windowMinTime = time;
23184
23203
  }
23185
23204
  const threadHasClientMintedRow = existingMessages.some((m) => isClientMintedId(m.id));
@@ -23197,14 +23216,14 @@ function mergeHistoryWithRealtime(input) {
23197
23216
  const verdict = twinVerdict(windowSignals, m);
23198
23217
  return verdict === "unknown" ? !seqCanMislead(m) : verdict === "distinct";
23199
23218
  }
23200
- const time = _optionalChain([m, 'access', _733 => _733.timestamp, 'optionalAccess', _734 => _734.getTime, 'call', _735 => _735()]);
23219
+ const time = _optionalChain([m, 'access', _734 => _734.timestamp, 'optionalAccess', _735 => _735.getTime, 'call', _736 => _736()]);
23201
23220
  if (typeof time !== "number" || time > historyFetchedAt) return false;
23202
23221
  if (!Number.isFinite(windowMinTime) || time >= windowMinTime) return false;
23203
23222
  return twinVerdict(windowSignals, m) === "distinct";
23204
23223
  };
23205
23224
  const keepRealtime = (m) => {
23206
23225
  if (m.role === "user" && isOptimisticId(m.id) && typeof m.content === "string") {
23207
- const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _736 => _736.timestamp, 'optionalAccess', _737 => _737.getTime, 'call', _738 => _738()]), () => ( 0))) <= historyFetchedAt;
23226
+ const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _737 => _737.timestamp, 'optionalAccess', _738 => _738.getTime, 'call', _739 => _739()]), () => ( 0))) <= historyFetchedAt;
23208
23227
  return !(canBeInSnapshot && windowSignals.userContents.has(userTwinKey(m)));
23209
23228
  }
23210
23229
  if (isSyntheticRealtimeId(m.id) && m.id !== streamingMessageId) {
@@ -23229,7 +23248,7 @@ function mergeHistoryWithRealtime(input) {
23229
23248
  } else if (typeof m.streamSeq === "number") {
23230
23249
  covered = historyMaxStreamSeq > 0 && historyMaxStreamSeq >= m.streamSeq;
23231
23250
  } else {
23232
- covered = historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _739 => _739.timestamp, 'optionalAccess', _740 => _740.getTime, 'call', _741 => _741()]), () => ( 0))) <= historyFetchedAt;
23251
+ covered = historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _740 => _740.timestamp, 'optionalAccess', _741 => _741.getTime, 'call', _742 => _742()]), () => ( 0))) <= historyFetchedAt;
23233
23252
  }
23234
23253
  if (covered) return false;
23235
23254
  }
@@ -23338,7 +23357,7 @@ function normalizeHistoricalMessageData(md) {
23338
23357
  function isHistoricalUserTurn(m) {
23339
23358
  return !!m.owner;
23340
23359
  }
23341
- var isTextSegment = (d) => _optionalChain([d, 'optionalAccess', _742 => _742.type]) === "TEXT" && typeof d.text === "string";
23360
+ var isTextSegment = (d) => _optionalChain([d, 'optionalAccess', _743 => _743.type]) === "TEXT" && typeof d.text === "string";
23342
23361
  var THINK_MS = 550;
23343
23362
  var TOKEN_MS = 55;
23344
23363
  var USER_MS = 480;
@@ -23435,8 +23454,8 @@ function useResizablePanelSize({
23435
23454
  }) : null,
23436
23455
  [enabled, storageKey]
23437
23456
  );
23438
- const [held, setChosen] = _react.useState.call(void 0, () => ({ storage, size: _nullishCoalesce(_optionalChain([storage, 'optionalAccess', _743 => _743.load, 'call', _744 => _744(), 'optionalAccess', _745 => _745.size]), () => ( null)) }));
23439
- const chosen = held.storage === storage ? held : { storage, size: _nullishCoalesce(_optionalChain([storage, 'optionalAccess', _746 => _746.load, 'call', _747 => _747(), 'optionalAccess', _748 => _748.size]), () => ( null)) };
23457
+ const [held, setChosen] = _react.useState.call(void 0, () => ({ storage, size: _nullishCoalesce(_optionalChain([storage, 'optionalAccess', _744 => _744.load, 'call', _745 => _745(), 'optionalAccess', _746 => _746.size]), () => ( null)) }));
23458
+ const chosen = held.storage === storage ? held : { storage, size: _nullishCoalesce(_optionalChain([storage, 'optionalAccess', _747 => _747.load, 'call', _748 => _748(), 'optionalAccess', _749 => _749.size]), () => ( null)) };
23440
23459
  if (chosen !== held) setChosen(chosen);
23441
23460
  const chosenSize = chosen.size;
23442
23461
  const clampSize = _react.useCallback.call(void 0,
@@ -23452,7 +23471,7 @@ function useResizablePanelSize({
23452
23471
  (next) => {
23453
23472
  const nextSize = Math.round(clampSize(next));
23454
23473
  setChosen({ storage, size: nextSize });
23455
- _optionalChain([storage, 'optionalAccess', _749 => _749.save, 'call', _750 => _750({ size: nextSize })]);
23474
+ _optionalChain([storage, 'optionalAccess', _750 => _750.save, 'call', _751 => _751({ size: nextSize })]);
23456
23475
  },
23457
23476
  [clampSize, storage]
23458
23477
  );
@@ -24041,7 +24060,7 @@ function useChatDialogManager({
24041
24060
  const handleConfirmRestore = _react.useCallback.call(void 0, async () => {
24042
24061
  if (restoreTarget) {
24043
24062
  try {
24044
- await _optionalChain([unarchiveDialog, 'optionalCall', _751 => _751(restoreTarget.id)]);
24063
+ await _optionalChain([unarchiveDialog, 'optionalCall', _752 => _752(restoreTarget.id)]);
24045
24064
  } catch (err) {
24046
24065
  console.error("[useChatDialogManager] unarchive failed:", err);
24047
24066
  return;
@@ -24607,7 +24626,7 @@ function EmbeddableChatInner({
24607
24626
  }),
24608
24627
  [commandsUrl]
24609
24628
  );
24610
- const headerUserName = _optionalChain([identityUser, 'optionalAccess', _752 => _752.name, 'optionalAccess', _753 => _753.trim, 'call', _754 => _754()]) || [_optionalChain([identityUser, 'optionalAccess', _755 => _755.firstName]), _optionalChain([identityUser, 'optionalAccess', _756 => _756.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([userDisplayName, 'optionalAccess', _757 => _757.trim, 'call', _758 => _758()]) || void 0;
24629
+ const headerUserName = _optionalChain([identityUser, 'optionalAccess', _753 => _753.name, 'optionalAccess', _754 => _754.trim, 'call', _755 => _755()]) || [_optionalChain([identityUser, 'optionalAccess', _756 => _756.firstName]), _optionalChain([identityUser, 'optionalAccess', _757 => _757.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([userDisplayName, 'optionalAccess', _758 => _758.trim, 'call', _759 => _759()]) || void 0;
24611
24630
  const effectiveModes = _react.useMemo.call(void 0, () => {
24612
24631
  if (modes) return modes;
24613
24632
  const guideOptions = tableIdForDocumentType ? { tableIdForDocumentType } : {};
@@ -24622,7 +24641,7 @@ function EmbeddableChatInner({
24622
24641
  if (controlledActiveMode === void 0) {
24623
24642
  setUncontrolledActiveMode(next);
24624
24643
  }
24625
- _optionalChain([onActiveModeChange, 'optionalCall', _759 => _759(next)]);
24644
+ _optionalChain([onActiveModeChange, 'optionalCall', _760 => _760(next)]);
24626
24645
  },
24627
24646
  [controlledActiveMode, onActiveModeChange]
24628
24647
  );
@@ -24649,7 +24668,7 @@ function EmbeddableChatInner({
24649
24668
  );
24650
24669
  const effectiveAssistantName = emptyStateConfig.name;
24651
24670
  const effectiveAssistantIcon = emptyStateConfig.icon;
24652
- const headerAssistantName = _nullishCoalesce(effectiveAssistantName, () => ( (typeof _optionalChain([guideWelcome, 'optionalAccess', _760 => _760.title]) === "string" ? guideWelcome.title : null)));
24671
+ const headerAssistantName = _nullishCoalesce(effectiveAssistantName, () => ( (typeof _optionalChain([guideWelcome, 'optionalAccess', _761 => _761.title]) === "string" ? guideWelcome.title : null)));
24653
24672
  const {
24654
24673
  messages: rawMessages,
24655
24674
  isLoading: chatLoading,
@@ -24705,8 +24724,8 @@ function EmbeddableChatInner({
24705
24724
  const mingoCaps = _react.useMemo.call(void 0,
24706
24725
  () => ({
24707
24726
  ...dialogCapabilities,
24708
- canRename: _nullishCoalesce(_optionalChain([dialogCapabilities, 'optionalAccess', _761 => _761.canRename]), () => ( false)),
24709
- canArchive: _nullishCoalesce(_optionalChain([dialogCapabilities, 'optionalAccess', _762 => _762.canArchive]), () => ( false))
24727
+ canRename: _nullishCoalesce(_optionalChain([dialogCapabilities, 'optionalAccess', _762 => _762.canRename]), () => ( false)),
24728
+ canArchive: _nullishCoalesce(_optionalChain([dialogCapabilities, 'optionalAccess', _763 => _763.canArchive]), () => ( false))
24710
24729
  }),
24711
24730
  [dialogCapabilities]
24712
24731
  );
@@ -24721,7 +24740,7 @@ function EmbeddableChatInner({
24721
24740
  void sendMessage(guidePendingPrompt).catch((err) => {
24722
24741
  console.error("[EmbeddableChat] guide launcher prompt failed:", err);
24723
24742
  });
24724
- _optionalChain([onGuidePromptConsumed, 'optionalCall', _763 => _763()]);
24743
+ _optionalChain([onGuidePromptConsumed, 'optionalCall', _764 => _764()]);
24725
24744
  }, [guidePendingPrompt, activeMode, sendMessage, onGuidePromptConsumed]);
24726
24745
  const {
24727
24746
  attachments: stagedAttachments,
@@ -24732,7 +24751,7 @@ function EmbeddableChatInner({
24732
24751
  clear: clearAttachments
24733
24752
  } = useChatAttachments();
24734
24753
  const { panelRef: galleryPanelRef, modal: galleryModal } = useChatAttachmentImageGallery();
24735
- const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _764 => _764.maxItems]), () => ( 10));
24754
+ const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _765 => _765.maxItems]), () => ( 10));
24736
24755
  const contextPickerForMode = activeMode === "mingo" ? contextPicker : void 0;
24737
24756
  const [contextItems, setContextItems] = _react.useState.call(void 0, NO_CONTEXT_ITEMS);
24738
24757
  const [contextPickerOpen, setContextPickerOpen] = _react.useState.call(void 0, false);
@@ -24761,10 +24780,10 @@ function EmbeddableChatInner({
24761
24780
  }, [composerKey, clearAttachments]);
24762
24781
  const mentionMarkerByType = _react.useMemo.call(void 0, () => {
24763
24782
  const m = /* @__PURE__ */ new Map();
24764
- for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _765 => _765.entityTypes]), () => ( []))) if (t.marker) m.set(t.type, t.marker);
24783
+ for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _766 => _766.entityTypes]), () => ( []))) if (t.marker) m.set(t.type, t.marker);
24765
24784
  return m;
24766
- }, [_optionalChain([contextPicker, 'optionalAccess', _766 => _766.entityTypes])]);
24767
- const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess', _767 => _767.entityTypes]);
24785
+ }, [_optionalChain([contextPicker, 'optionalAccess', _767 => _767.entityTypes])]);
24786
+ const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess', _768 => _768.entityTypes]);
24768
24787
  const resolveContextIcon = _react.useMemo.call(void 0, () => {
24769
24788
  const byType = /* @__PURE__ */ new Map();
24770
24789
  for (const t of _nullishCoalesce(contextEntityTypes, () => ( []))) byType.set(t.type, t.icon);
@@ -24776,7 +24795,7 @@ function EmbeddableChatInner({
24776
24795
  if (mentionActiveRef.current) {
24777
24796
  if (contextItems.some((p) => `${p.type}:${p.id}` === key)) return;
24778
24797
  if (contextItems.length >= contextMaxItems) return;
24779
- _optionalChain([chatInputRef, 'access', _768 => _768.current, 'optionalAccess', _769 => _769.commitMention, 'call', _770 => _770(mentionTokenOf(key, mentionMarkerByType), {
24798
+ _optionalChain([chatInputRef, 'access', _769 => _769.current, 'optionalAccess', _770 => _770.commitMention, 'call', _771 => _771(mentionTokenOf(key, mentionMarkerByType), {
24780
24799
  label: item.label,
24781
24800
  icon: resolveContextIcon(item)
24782
24801
  })]);
@@ -24799,9 +24818,9 @@ function EmbeddableChatInner({
24799
24818
  setContextItems((prev) => prev.filter((p) => `${p.type}:${p.id}` !== key));
24800
24819
  if (mentionKeysRef.current.has(key)) {
24801
24820
  mentionKeysRef.current.delete(key);
24802
- const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _771 => _771.current, 'optionalAccess', _772 => _772.getValue, 'call', _773 => _773()]), () => ( ""));
24821
+ const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _772 => _772.current, 'optionalAccess', _773 => _773.getValue, 'call', _774 => _774()]), () => ( ""));
24803
24822
  const next = cur.replace(`@${mentionTokenOf(key, mentionMarkerByType)}`, "").replace(/\s{2,}/g, " ").trimStart();
24804
- _optionalChain([chatInputRef, 'access', _774 => _774.current, 'optionalAccess', _775 => _775.setValue, 'call', _776 => _776(next)]);
24823
+ _optionalChain([chatInputRef, 'access', _775 => _775.current, 'optionalAccess', _776 => _776.setValue, 'call', _777 => _777(next)]);
24805
24824
  }
24806
24825
  },
24807
24826
  [mentionMarkerByType]
@@ -24823,7 +24842,7 @@ function EmbeddableChatInner({
24823
24842
  }, []);
24824
24843
  const closeContextPicker = _react.useCallback.call(void 0, () => {
24825
24844
  if (mentionActiveRef.current) {
24826
- _optionalChain([chatInputRef, 'access', _777 => _777.current, 'optionalAccess', _778 => _778.removeMentionTrigger, 'call', _779 => _779()]);
24845
+ _optionalChain([chatInputRef, 'access', _778 => _778.current, 'optionalAccess', _779 => _779.removeMentionTrigger, 'call', _780 => _780()]);
24827
24846
  }
24828
24847
  setContextPickerOpen(false);
24829
24848
  setMentionQuery(null);
@@ -24860,8 +24879,8 @@ function EmbeddableChatInner({
24860
24879
  [effectiveAssistantIcon]
24861
24880
  );
24862
24881
  const [timestampCache] = _react.useState.call(void 0, () => /* @__PURE__ */ new Map());
24863
- const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess', _780 => _780.firstName]), _optionalChain([identityUser, 'optionalAccess', _781 => _781.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([identityUser, 'optionalAccess', _782 => _782.name, 'optionalAccess', _783 => _783.trim, 'call', _784 => _784()]) || void 0 : void 0;
24864
- const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess', _785 => _785.avatarUrl, 'optionalAccess', _786 => _786.trim, 'call', _787 => _787()]) || void 0 : void 0;
24882
+ const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess', _781 => _781.firstName]), _optionalChain([identityUser, 'optionalAccess', _782 => _782.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([identityUser, 'optionalAccess', _783 => _783.name, 'optionalAccess', _784 => _784.trim, 'call', _785 => _785()]) || void 0 : void 0;
24883
+ const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess', _786 => _786.avatarUrl, 'optionalAccess', _787 => _787.trim, 'call', _788 => _788()]) || void 0 : void 0;
24865
24884
  const messages = _react.useMemo.call(void 0, () => {
24866
24885
  const options = { userName: guideUserName, userAvatar: guideUserAvatar, timestampCache };
24867
24886
  const mapped = rawMessages.map((m) => mapHostMessage(m, options));
@@ -25037,7 +25056,7 @@ function EmbeddableChatInner({
25037
25056
  _react.useEffect.call(void 0, () => {
25038
25057
  if (!panelBoundary || typeof ResizeObserver === "undefined") return void 0;
25039
25058
  const ro = new ResizeObserver((entries) => {
25040
- const w = _optionalChain([entries, 'access', _788 => _788[0], 'optionalAccess', _789 => _789.contentRect, 'optionalAccess', _790 => _790.width]);
25059
+ const w = _optionalChain([entries, 'access', _789 => _789[0], 'optionalAccess', _790 => _790.contentRect, 'optionalAccess', _791 => _791.width]);
25041
25060
  if (typeof w === "number") setCanSplit(w >= splitMinWidth);
25042
25061
  });
25043
25062
  ro.observe(panelBoundary);
@@ -25083,18 +25102,18 @@ function EmbeddableChatInner({
25083
25102
  const stackedListView = isMingoMode && !hasConversation && !archiveOpen && !wideMingo && !composeOpen && !emptyListSkipped;
25084
25103
  const headerShowBack = hasConversation || guideCanReturnToMingo;
25085
25104
  const freshConversationTitle = isGuideEmpty ? _nullishCoalesce(headerAssistantName, () => ( "Mingo Guide")) : "New Chat";
25086
- const headerTitle = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _791 => _791.title]) || freshConversationTitle : isGuideEmpty ? freshConversationTitle : "Current Chats";
25105
+ const headerTitle = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _792 => _792.title]) || freshConversationTitle : isGuideEmpty ? freshConversationTitle : "Current Chats";
25087
25106
  const headerBackAriaLabel = hasConversation ? isViewingArchived ? "Back to archive" : "Back" : "Back to Mingo";
25088
25107
  const headerOnBack = hasConversation ? handleBack : () => handleActiveModeChange("mingo");
25089
25108
  const headerOnRestore = isViewingArchived && unarchiveDialog && activeDialog ? () => setRestoreTarget(activeDialog) : void 0;
25090
25109
  const headerOnRename = activeDialogId && activeDialog && mingoCaps.canRename ? () => setRenameTarget(activeDialog) : void 0;
25091
25110
  const headerOnArchive = activeDialogId && activeDialog && mingoCaps.canArchive ? () => setArchiveTarget(activeDialog) : void 0;
25092
- const headerOnCopyLink = activeDialogId && activeDialog && mingoCaps.onCopyLink ? () => _optionalChain([mingoCaps, 'access', _792 => _792.onCopyLink, 'optionalCall', _793 => _793(activeDialog)]) : void 0;
25093
- const headerOnCompact = activeDialogId && activeDialog && mingoCaps.compactDialog ? () => _optionalChain([mingoCaps, 'access', _794 => _794.compactDialog, 'optionalCall', _795 => _795(activeDialog)]) : void 0;
25111
+ const headerOnCopyLink = activeDialogId && activeDialog && mingoCaps.onCopyLink ? () => _optionalChain([mingoCaps, 'access', _793 => _793.onCopyLink, 'optionalCall', _794 => _794(activeDialog)]) : void 0;
25112
+ const headerOnCompact = activeDialogId && activeDialog && mingoCaps.compactDialog ? () => _optionalChain([mingoCaps, 'access', _795 => _795.compactDialog, 'optionalCall', _796 => _796(activeDialog)]) : void 0;
25094
25113
  const headerOnOpenArchive = fetchArchivedDialogs ? openArchive : void 0;
25095
- const headerOwner = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _796 => _796.owner]) : void 0;
25096
- const headerPersonName = _optionalChain([headerOwner, 'optionalAccess', _797 => _797.name, 'optionalAccess', _798 => _798.trim, 'call', _799 => _799()]) || headerUserName;
25097
- const headerPersonAvatarUrl = headerOwner ? _optionalChain([headerOwner, 'access', _800 => _800.avatarUrl, 'optionalAccess', _801 => _801.trim, 'call', _802 => _802()]) || void 0 : _optionalChain([identityUser, 'optionalAccess', _803 => _803.avatarUrl, 'optionalAccess', _804 => _804.trim, 'call', _805 => _805()]) || _optionalChain([userAvatarUrl, 'optionalAccess', _806 => _806.trim, 'call', _807 => _807()]) || void 0;
25114
+ const headerOwner = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _797 => _797.owner]) : void 0;
25115
+ const headerPersonName = _optionalChain([headerOwner, 'optionalAccess', _798 => _798.name, 'optionalAccess', _799 => _799.trim, 'call', _800 => _800()]) || headerUserName;
25116
+ const headerPersonAvatarUrl = headerOwner ? _optionalChain([headerOwner, 'access', _801 => _801.avatarUrl, 'optionalAccess', _802 => _802.trim, 'call', _803 => _803()]) || void 0 : _optionalChain([identityUser, 'optionalAccess', _804 => _804.avatarUrl, 'optionalAccess', _805 => _805.trim, 'call', _806 => _806()]) || _optionalChain([userAvatarUrl, 'optionalAccess', _807 => _807.trim, 'call', _808 => _808()]) || void 0;
25098
25117
  const headerAvatar = headerPersonName || headerPersonAvatarUrl ? { name: headerPersonName, avatarUrl: headerPersonAvatarUrl } : void 0;
25099
25118
  const handleNewChat = _react.useCallback.call(void 0, () => {
25100
25119
  resetToNewChat();
@@ -25473,7 +25492,7 @@ function EmbeddableChatInner({
25473
25492
  onNewChat: () => setComposeOpen(true),
25474
25493
  onExpand: onExpand && (() => {
25475
25494
  const last = lastDialogIdRef.current;
25476
- const target = last && dialogs.some((d) => d.id === last) ? last : _optionalChain([dialogs, 'access', _808 => _808[0], 'optionalAccess', _809 => _809.id]);
25495
+ const target = last && dialogs.some((d) => d.id === last) ? last : _optionalChain([dialogs, 'access', _809 => _809[0], 'optionalAccess', _810 => _810.id]);
25477
25496
  if (archiveOpen) closeArchive();
25478
25497
  if (target) handleSelectDialog(target);
25479
25498
  else handleNewChat();
@@ -25580,9 +25599,9 @@ function EmbeddableChatInner({
25580
25599
  subtitle: _nullishCoalesce(effectiveGreeting, () => ( void 0)),
25581
25600
  subtitleLoading: emptyStateLoading,
25582
25601
  ...guideWelcome,
25583
- title: _nullishCoalesce(effectiveAssistantName, () => ( _optionalChain([guideWelcome, 'optionalAccess', _810 => _810.title]))),
25584
- icon: _nullishCoalesce(effectiveAssistantIcon, () => ( _optionalChain([guideWelcome, 'optionalAccess', _811 => _811.icon]))),
25585
- quickActions: agentConfigUrl && guideSuggestedActions.length > 0 ? guideSuggestedActions : _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess', _812 => _812.quickActions]), () => ( guideSuggestedActions)),
25602
+ title: _nullishCoalesce(effectiveAssistantName, () => ( _optionalChain([guideWelcome, 'optionalAccess', _811 => _811.title]))),
25603
+ icon: _nullishCoalesce(effectiveAssistantIcon, () => ( _optionalChain([guideWelcome, 'optionalAccess', _812 => _812.icon]))),
25604
+ quickActions: agentConfigUrl && guideSuggestedActions.length > 0 ? guideSuggestedActions : _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess', _813 => _813.quickActions]), () => ( guideSuggestedActions)),
25586
25605
  onQuickAction: (action) => {
25587
25606
  setQuickActionPreview(null);
25588
25607
  handleSend(_nullishCoalesce(action.prompt, () => ( action.label)));
@@ -25657,8 +25676,8 @@ function EmbeddableChatInner({
25657
25676
  selectedContextItems: contextItems,
25658
25677
  onToggleContextItem: toggleContextItem,
25659
25678
  onRemoveContextItem: removeContextItem,
25660
- contextMemoryItems: _optionalChain([contextMemory, 'optionalAccess', _813 => _813.items]),
25661
- onRemoveContextMemoryItem: _optionalChain([contextMemory, 'optionalAccess', _814 => _814.onRemove]),
25679
+ contextMemoryItems: _optionalChain([contextMemory, 'optionalAccess', _814 => _814.items]),
25680
+ onRemoveContextMemoryItem: _optionalChain([contextMemory, 'optionalAccess', _815 => _815.onRemove]),
25662
25681
  contextPickerOpen,
25663
25682
  onOpenContextPicker: openContextPicker,
25664
25683
  onCloseContextPicker: closeContextPicker,
@@ -25871,7 +25890,7 @@ var GROUPS = [
25871
25890
  }
25872
25891
  ];
25873
25892
  function maskKey(key) {
25874
- const prefix = _nullishCoalesce(_optionalChain([/^fpk_[a-z0-9-]+_/i, 'access', _815 => _815.exec, 'call', _816 => _816(key), 'optionalAccess', _817 => _817[0]]), () => ( ""));
25893
+ const prefix = _nullishCoalesce(_optionalChain([/^fpk_[a-z0-9-]+_/i, 'access', _816 => _816.exec, 'call', _817 => _817(key), 'optionalAccess', _818 => _818[0]]), () => ( ""));
25875
25894
  return key.length - prefix.length <= 8 ? `${prefix}\u2022\u2022\u2022\u2022` : `${prefix}\u2026${key.slice(-4)}`;
25876
25895
  }
25877
25896
  function HeaderName({ children }) {
@@ -25908,8 +25927,8 @@ function ProxyCredentialsForm({ description, saved }) {
25908
25927
  const errors = _react.useMemo.call(void 0, () => {
25909
25928
  const out = {};
25910
25929
  for (const { field } of _chunkLM7TXMLUcjs.EMBED_PROXY_OPTIONAL_HEADERS) {
25911
- const value = _optionalChain([optional, 'access', _818 => _818[field], 'optionalAccess', _819 => _819.trim, 'call', _820 => _820()]);
25912
- const message = value ? _optionalChain([OPTIONAL_FIELD_COPY, 'access', _821 => _821[field], 'access', _822 => _822.validate, 'optionalCall', _823 => _823(value)]) : null;
25930
+ const value = _optionalChain([optional, 'access', _819 => _819[field], 'optionalAccess', _820 => _820.trim, 'call', _821 => _821()]);
25931
+ const message = value ? _optionalChain([OPTIONAL_FIELD_COPY, 'access', _822 => _822[field], 'access', _823 => _823.validate, 'optionalCall', _824 => _824(value)]) : null;
25913
25932
  if (message) out[field] = message;
25914
25933
  }
25915
25934
  return out;
@@ -25921,12 +25940,12 @@ function ProxyCredentialsForm({ description, saved }) {
25921
25940
  ...keyForPreview ? [["Authorization", `Bearer ${keyForPreview}`]] : [],
25922
25941
  ...email.trim() ? [["X-Chat-Act-As", email.trim().toLowerCase()]] : [],
25923
25942
  ..._chunkLM7TXMLUcjs.EMBED_PROXY_OPTIONAL_HEADERS.flatMap(({ field, header }) => {
25924
- const value = _optionalChain([optional, 'access', _824 => _824[field], 'optionalAccess', _825 => _825.trim, 'call', _826 => _826()]);
25943
+ const value = _optionalChain([optional, 'access', _825 => _825[field], 'optionalAccess', _826 => _826.trim, 'call', _827 => _827()]);
25925
25944
  return value ? [[header, value]] : [];
25926
25945
  })
25927
25946
  ];
25928
25947
  const save = () => {
25929
- const key = secret.trim() || _optionalChain([_chunkLM7TXMLUcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _827 => _827.secret]);
25948
+ const key = secret.trim() || _optionalChain([_chunkLM7TXMLUcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _828 => _828.secret]);
25930
25949
  const actAs = email.trim().toLowerCase();
25931
25950
  if (!key || !actAs || hasErrors) {
25932
25951
  setStatus(hasErrors ? "Fix the highlighted fields first." : "API key and act-as email are required.");
@@ -26445,4 +26464,5 @@ function ProxyCredentialsForm({ description, saved }) {
26445
26464
 
26446
26465
 
26447
26466
 
26448
- exports.InfoHint = InfoHint; exports.Field = Field; exports.formatTicketRelativeTime = formatTicketRelativeTime; exports.formatTicketFullTimestamp = formatTicketFullTimestamp; exports.formatRelativeTime = formatRelativeTime; exports.formatAbsoluteDate = formatAbsoluteDate; exports.formatDateTime = formatDateTime; exports.getDetailedTimeDifference = getDetailedTimeDifference; exports.isToday = isToday; exports.isWithinMinutes = isWithinMinutes; exports.createUTCTimestamp = createUTCTimestamp; exports.DESIGN_PALETTE = DESIGN_PALETTE; exports.getContrastRatio = getContrastRatio; exports.pickReadableTextColor = pickReadableTextColor; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.getCurrentPlatform = getCurrentPlatform; exports.switchPlatformTheme = switchPlatformTheme; exports.getSemanticColor = getSemanticColor; exports.getPlatformConfig = getPlatformConfig; exports.usePlatformColors = usePlatformColors; exports.getReadableTextColor = getReadableTextColor; exports.HEX_PATTERN = HEX_PATTERN; exports.hexToRgb = hexToRgb2; exports.rgbToHex = rgbToHex; exports.deriveHoverColor = deriveHoverColor; exports.deriveActiveColor = deriveActiveColor; exports.rgbToHsl = rgbToHsl; exports.hslToRgb = hslToRgb; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.ColorSwatch = ColorSwatch; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.kindToCanonicalStatus = kindToCanonicalStatus; exports.usesCanonicalStatusStyle = usesCanonicalStatusStyle; exports.resolveStatusTagProps = resolveStatusTagProps; exports.TicketStatusTag = TicketStatusTag; exports.useScrollFade = useScrollFade; exports.ScrollFadeOverlay = ScrollFadeOverlay; exports.ScrollShadow = ScrollShadow; exports.Modal = Modal; exports.ModalContent = ModalContent; exports.ModalTwoColumn = ModalTwoColumn; exports.ModalHeader = ModalHeader; exports.ModalTitle = ModalTitle; exports.ModalFooter = ModalFooter; 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.HoverDropdown = HoverDropdown; exports.StatusLine = StatusLine; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.CommandBlock = CommandBlock; exports.ApprovalStatusTag = ApprovalStatusTag; exports.ApprovalWaitingLine = ApprovalWaitingLine; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.CHAT_TYPE = CHAT_TYPE; exports.OWNER_TYPE = OWNER_TYPE; exports.MESSAGE_ROLE = MESSAGE_ROLE; exports.ASSISTANT_TYPE = ASSISTANT_TYPE; exports.AUTHOR_TYPE = AUTHOR_TYPE; exports.APPROVAL_STATUS = APPROVAL_STATUS; exports.APPROVAL_BLOCK_VARIANT = APPROVAL_BLOCK_VARIANT; exports.CHAT_APPEARANCE = CHAT_APPEARANCE; exports.CONNECTION_STATUS = CONNECTION_STATUS; exports.isStructuredContent = isStructuredContent; exports.normalizeContent = normalizeContent; exports.ChatAppearanceContext = ChatAppearanceContext; exports.useChatAppearance = useChatAppearance; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.EscalationOfferMessage = EscalationOfferMessage; exports.formatTime = formatTime; 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.ChatTypingIndicator = ChatTypingIndicator; exports.MingoOnboardingCard = MingoOnboardingCard; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; 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.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_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.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.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.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.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.faqSectionSlug = faqSectionSlug; exports.faqItemAnchor = faqItemAnchor; exports.parseFaqHash = parseFaqHash; exports.useChatCardItem = useChatCardItem; exports.readFetchedCardTitle = readFetchedCardTitle; exports.readFetchedCardPath = readFetchedCardPath; exports.resolveFetchedCardHref = resolveFetchedCardHref; exports.byKey = byKey; exports.getPlatformProductionUrl = getPlatformProductionUrl; exports.getPlatformUrl = getPlatformUrl; exports.getDeploymentUrl = getDeploymentUrl; exports.isLocalUrl = isLocalUrl; exports.getRequestOrigin = getRequestOrigin; exports.resolveRedirectTarget = resolveRedirectTarget; exports.getAllPlatformBaseDomains = getAllPlatformBaseDomains; 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.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.resolveCardDestination = resolveCardDestination; exports.clickupTaskUrl = clickupTaskUrl; 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.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; 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.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.buildDiscussPrompt = buildDiscussPrompt; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; 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.flattenAssistantContent = flattenAssistantContent; 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;
26467
+
26468
+ exports.InfoHint = InfoHint; exports.Field = Field; exports.formatTicketRelativeTime = formatTicketRelativeTime; exports.formatTicketFullTimestamp = formatTicketFullTimestamp; exports.formatRelativeTime = formatRelativeTime; exports.formatAbsoluteDate = formatAbsoluteDate; exports.formatDateTime = formatDateTime; exports.getDetailedTimeDifference = getDetailedTimeDifference; exports.isToday = isToday; exports.isWithinMinutes = isWithinMinutes; exports.createUTCTimestamp = createUTCTimestamp; exports.DESIGN_PALETTE = DESIGN_PALETTE; exports.getContrastRatio = getContrastRatio; exports.pickReadableTextColor = pickReadableTextColor; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.getCurrentPlatform = getCurrentPlatform; exports.switchPlatformTheme = switchPlatformTheme; exports.getSemanticColor = getSemanticColor; exports.getPlatformConfig = getPlatformConfig; exports.usePlatformColors = usePlatformColors; exports.getReadableTextColor = getReadableTextColor; exports.HEX_PATTERN = HEX_PATTERN; exports.hexToRgb = hexToRgb2; exports.rgbToHex = rgbToHex; exports.deriveHoverColor = deriveHoverColor; exports.deriveActiveColor = deriveActiveColor; exports.rgbToHsl = rgbToHsl; exports.hslToRgb = hslToRgb; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.ColorSwatch = ColorSwatch; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.kindToCanonicalStatus = kindToCanonicalStatus; exports.usesCanonicalStatusStyle = usesCanonicalStatusStyle; exports.resolveStatusTagProps = resolveStatusTagProps; exports.TicketStatusTag = TicketStatusTag; exports.useScrollFade = useScrollFade; exports.ScrollFadeOverlay = ScrollFadeOverlay; exports.ScrollShadow = ScrollShadow; exports.Modal = Modal; exports.ModalContent = ModalContent; exports.ModalTwoColumn = ModalTwoColumn; exports.ModalHeader = ModalHeader; exports.ModalTitle = ModalTitle; exports.ModalFooter = ModalFooter; 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.HoverDropdown = HoverDropdown; exports.StatusLine = StatusLine; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.CommandBlock = CommandBlock; exports.ApprovalStatusTag = ApprovalStatusTag; exports.ApprovalWaitingLine = ApprovalWaitingLine; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.CHAT_TYPE = CHAT_TYPE; exports.OWNER_TYPE = OWNER_TYPE; exports.MESSAGE_ROLE = MESSAGE_ROLE; exports.ASSISTANT_TYPE = ASSISTANT_TYPE; exports.AUTHOR_TYPE = AUTHOR_TYPE; exports.APPROVAL_STATUS = APPROVAL_STATUS; exports.APPROVAL_BLOCK_VARIANT = APPROVAL_BLOCK_VARIANT; exports.CHAT_APPEARANCE = CHAT_APPEARANCE; exports.CONNECTION_STATUS = CONNECTION_STATUS; exports.isStructuredContent = isStructuredContent; exports.normalizeContent = normalizeContent; exports.ChatAppearanceContext = ChatAppearanceContext; exports.useChatAppearance = useChatAppearance; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.EscalationOfferMessage = EscalationOfferMessage; exports.formatTime = formatTime; 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.ChatTypingIndicator = ChatTypingIndicator; exports.MingoOnboardingCard = MingoOnboardingCard; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; 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.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_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.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.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.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.faqSectionSlug = faqSectionSlug; exports.faqItemAnchor = faqItemAnchor; exports.parseFaqHash = parseFaqHash; exports.useChatCardItem = useChatCardItem; exports.readFetchedCardTitle = readFetchedCardTitle; exports.readFetchedCardPath = readFetchedCardPath; exports.resolveFetchedCardHref = resolveFetchedCardHref; exports.byKey = byKey; exports.getPlatformProductionUrl = getPlatformProductionUrl; exports.getPlatformUrl = getPlatformUrl; exports.getDeploymentUrl = getDeploymentUrl; exports.isLocalUrl = isLocalUrl; exports.getRequestOrigin = getRequestOrigin; exports.resolveRedirectTarget = resolveRedirectTarget; exports.getAllPlatformBaseDomains = getAllPlatformBaseDomains; 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.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.resolveCardDestination = resolveCardDestination; exports.clickupTaskUrl = clickupTaskUrl; 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.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; 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.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.buildDiscussPrompt = buildDiscussPrompt; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; 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.flattenAssistantContent = flattenAssistantContent; 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;