@flamingo-stack/openframe-frontend-core 0.0.288 → 0.0.289-snapshot.20260618174139

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 (59) hide show
  1. package/dist/{chunk-6CSW5TMS.cjs → chunk-2V6RCQ5M.cjs} +23 -23
  2. package/dist/{chunk-6CSW5TMS.cjs.map → chunk-2V6RCQ5M.cjs.map} +1 -1
  3. package/dist/{chunk-GJDXIVEQ.js → chunk-4F3X2AOB.js} +2 -2
  4. package/dist/{chunk-TY2EB7VK.js → chunk-4XMYOZFO.js} +2 -2
  5. package/dist/{chunk-RG6FNZUA.cjs → chunk-7L22MF3U.cjs} +3 -3
  6. package/dist/{chunk-RG6FNZUA.cjs.map → chunk-7L22MF3U.cjs.map} +1 -1
  7. package/dist/{chunk-DVUFNTI2.cjs → chunk-AAK6IY6Y.cjs} +4 -4
  8. package/dist/{chunk-DVUFNTI2.cjs.map → chunk-AAK6IY6Y.cjs.map} +1 -1
  9. package/dist/{chunk-AISIZLZP.js → chunk-KJF7SRKH.js} +2 -2
  10. package/dist/{chunk-RWCA2ZQK.js → chunk-LVOBI2M5.js} +2 -2
  11. package/dist/{chunk-6AW25OS6.cjs → chunk-OYXZIPNM.cjs} +25 -25
  12. package/dist/{chunk-6AW25OS6.cjs.map → chunk-OYXZIPNM.cjs.map} +1 -1
  13. package/dist/{chunk-EFYXPR43.js → chunk-R4CLIWAU.js} +33 -5
  14. package/dist/{chunk-EFYXPR43.js.map → chunk-R4CLIWAU.js.map} +1 -1
  15. package/dist/{chunk-JQ4I743L.cjs → chunk-UC5GB255.cjs} +5 -5
  16. package/dist/{chunk-JQ4I743L.cjs.map → chunk-UC5GB255.cjs.map} +1 -1
  17. package/dist/{chunk-OXC72UIP.cjs → chunk-VJ4ZWD5G.cjs} +226 -198
  18. package/dist/chunk-VJ4ZWD5G.cjs.map +1 -0
  19. package/dist/{chunk-ZYLQMCHW.js → chunk-Z5QIVHJW.js} +2 -2
  20. package/dist/components/chat/entity-cards/dispatch.d.ts.map +1 -1
  21. package/dist/components/chat/hooks/use-realtime-chunk-processor.d.ts.map +1 -1
  22. package/dist/components/chat/index.cjs +2 -2
  23. package/dist/components/chat/index.js +1 -1
  24. package/dist/components/chat/types/api.types.d.ts +11 -4
  25. package/dist/components/chat/types/api.types.d.ts.map +1 -1
  26. package/dist/components/chat/utils/history-merge.d.ts +5 -1
  27. package/dist/components/chat/utils/history-merge.d.ts.map +1 -1
  28. package/dist/components/contact/index.cjs +3 -3
  29. package/dist/components/contact/index.js +2 -2
  30. package/dist/components/embeds/index.cjs +3 -3
  31. package/dist/components/embeds/index.js +2 -2
  32. package/dist/components/faq/index.cjs +3 -3
  33. package/dist/components/faq/index.js +2 -2
  34. package/dist/components/features/index.cjs +2 -2
  35. package/dist/components/features/index.js +1 -1
  36. package/dist/components/index.cjs +46 -46
  37. package/dist/components/index.js +5 -5
  38. package/dist/components/navigation/index.cjs +2 -2
  39. package/dist/components/navigation/index.js +1 -1
  40. package/dist/components/related-content/index.cjs +3 -3
  41. package/dist/components/related-content/index.js +2 -2
  42. package/dist/components/tickets/index.cjs +45 -45
  43. package/dist/components/tickets/index.js +3 -3
  44. package/dist/components/ui/index.cjs +2 -2
  45. package/dist/components/ui/index.js +1 -1
  46. package/dist/index.cjs +2 -2
  47. package/dist/index.js +1 -1
  48. package/package.json +1 -1
  49. package/src/components/chat/entity-cards/dispatch.tsx +42 -0
  50. package/src/components/chat/hooks/use-realtime-chunk-processor.ts +3 -1
  51. package/src/components/chat/types/api.types.ts +9 -6
  52. package/src/components/chat/utils/__tests__/history-merge.test.ts +62 -0
  53. package/src/components/chat/utils/history-merge.ts +5 -1
  54. package/dist/chunk-OXC72UIP.cjs.map +0 -1
  55. /package/dist/{chunk-GJDXIVEQ.js.map → chunk-4F3X2AOB.js.map} +0 -0
  56. /package/dist/{chunk-TY2EB7VK.js.map → chunk-4XMYOZFO.js.map} +0 -0
  57. /package/dist/{chunk-AISIZLZP.js.map → chunk-KJF7SRKH.js.map} +0 -0
  58. /package/dist/{chunk-RWCA2ZQK.js.map → chunk-LVOBI2M5.js.map} +0 -0
  59. /package/dist/{chunk-ZYLQMCHW.js.map → chunk-Z5QIVHJW.js.map} +0 -0
@@ -32356,12 +32356,32 @@ function HubspotTicketChatCard({
32356
32356
  }
32357
32357
  );
32358
32358
  }
32359
+ function FaqChatCard({
32360
+ chatRef,
32361
+ isNewTab,
32362
+ discuss
32363
+ }) {
32364
+ const section = typeof _optionalChain([chatRef, 'access', _659 => _659.metadata, 'optionalAccess', _660 => _660.section]) === "string" ? chatRef.metadata.section.trim() : void 0;
32365
+ const statusLabel = section && section.length > 0 ? section : "FAQ";
32366
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32367
+ MingoInfoCard,
32368
+ {
32369
+ title: chatRef.title,
32370
+ description: _nullishCoalesce(chatRef.preview, () => ( void 0)),
32371
+ icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZS2SBWBRcjs.QuestionCircleIcon, { size: 24 }),
32372
+ status: { label: statusLabel, variant: "grey" },
32373
+ anchorProps: _chunkEI4WALN2cjs.buildAnchorProps.call(void 0, chatRef.url, isNewTab),
32374
+ menuGroups: cardMenuGroups(chatRef.url, discuss),
32375
+ menuAriaLabel: "FAQ actions"
32376
+ }
32377
+ );
32378
+ }
32359
32379
  function SlackChatCard({
32360
32380
  chatRef,
32361
32381
  isNewTab,
32362
32382
  discuss
32363
32383
  }) {
32364
- const channelName = typeof _optionalChain([chatRef, 'access', _659 => _659.metadata, 'optionalAccess', _660 => _660.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
32384
+ const channelName = typeof _optionalChain([chatRef, 'access', _661 => _661.metadata, 'optionalAccess', _662 => _662.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
32365
32385
  const channelPretty = channelName ? channelName.startsWith("#") ? channelName : `#${channelName}` : void 0;
32366
32386
  const title = channelPretty ? `${chatRef.title} \xB7 ${channelPretty}` : chatRef.title;
32367
32387
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -32401,7 +32421,7 @@ function GenericFinancialChatCard({
32401
32421
  isNewTab,
32402
32422
  discuss
32403
32423
  }) {
32404
- const subtitle = typeof _optionalChain([chatRef, 'access', _661 => _661.metadata, 'optionalAccess', _662 => _662.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
32424
+ const subtitle = typeof _optionalChain([chatRef, 'access', _663 => _663.metadata, 'optionalAccess', _664 => _664.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
32405
32425
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32406
32426
  MingoInfoCard,
32407
32427
  {
@@ -32470,12 +32490,12 @@ function ProductReleaseChatCard({
32470
32490
  discuss
32471
32491
  }) {
32472
32492
  const releaseProps = buildProps(item);
32473
- const status = _optionalChain([item, 'optionalAccess', _663 => _663.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
32493
+ const status = _optionalChain([item, 'optionalAccess', _665 => _665.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
32474
32494
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32475
32495
  EntityMingoCard,
32476
32496
  {
32477
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _664 => _664.title]), () => ( "")),
32478
- description: _optionalChain([item, 'optionalAccess', _665 => _665.summary]) || releaseProps.formattedDate || void 0,
32497
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _666 => _666.title]), () => ( "")),
32498
+ description: _optionalChain([item, 'optionalAccess', _667 => _667.summary]) || releaseProps.formattedDate || void 0,
32479
32499
  cover: releaseProps.coverImage || void 0,
32480
32500
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZS2SBWBRcjs.Rocket02Icon, { size: 24 }),
32481
32501
  status,
@@ -32492,17 +32512,17 @@ function CampaignChatCard({
32492
32512
  isNewTab,
32493
32513
  discuss
32494
32514
  }) {
32495
- const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _666 => _666.goals])) ? item.goals.length : 0;
32515
+ const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _668 => _668.goals])) ? item.goals.length : 0;
32496
32516
  const meta = [
32497
- _optionalChain([item, 'optionalAccess', _667 => _667.start_date]) ? _chunkD6RK5YXXcjs.formatDateShort.call(void 0, item.start_date) : null,
32517
+ _optionalChain([item, 'optionalAccess', _669 => _669.start_date]) ? _chunkD6RK5YXXcjs.formatDateShort.call(void 0, item.start_date) : null,
32498
32518
  goalsCount > 0 ? `${goalsCount} goal${goalsCount !== 1 ? "s" : ""}` : null,
32499
32519
  "Marketing campaign"
32500
32520
  ].filter(Boolean).join(" \xB7 ");
32501
32521
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32502
32522
  EntityMingoCard,
32503
32523
  {
32504
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _668 => _668.name]), () => ( "")),
32505
- description: meta || _optionalChain([item, 'optionalAccess', _669 => _669.description]) || void 0,
32524
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _670 => _670.name]), () => ( "")),
32525
+ description: meta || _optionalChain([item, 'optionalAccess', _671 => _671.description]) || void 0,
32506
32526
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZS2SBWBRcjs.Megaphone01Icon, { size: 24 }),
32507
32527
  chatRef,
32508
32528
  isNewTab,
@@ -32555,14 +32575,14 @@ function BlogChatCard({
32555
32575
  hasEmbeddedVideo,
32556
32576
  discuss
32557
32577
  }) {
32558
- const category = Array.isArray(_optionalChain([item, 'optionalAccess', _670 => _670.categories])) ? _optionalChain([item, 'access', _671 => _671.categories, 'access', _672 => _672.find, 'call', _673 => _673((c) => c && c.name), 'optionalAccess', _674 => _674.name]) : void 0;
32578
+ const category = Array.isArray(_optionalChain([item, 'optionalAccess', _672 => _672.categories])) ? _optionalChain([item, 'access', _673 => _673.categories, 'access', _674 => _674.find, 'call', _675 => _675((c) => c && c.name), 'optionalAccess', _676 => _676.name]) : void 0;
32559
32579
  const status = hasEmbeddedVideo ? { label: "Video", variant: "primary" } : category ? { label: category, variant: "grey" } : void 0;
32560
32580
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32561
32581
  EntityMingoCard,
32562
32582
  {
32563
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _675 => _675.title]), () => ( "")),
32564
- description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _676 => _676.summary]), () => ( void 0)),
32565
- cover: entityCover(_optionalChain([item, 'optionalAccess', _677 => _677.featured_image]), ogPlaceholder),
32583
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _677 => _677.title]), () => ( "")),
32584
+ description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _678 => _678.summary]), () => ( void 0)),
32585
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _679 => _679.featured_image]), ogPlaceholder),
32566
32586
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZS2SBWBRcjs.NewspaperIcon, { size: 24 }),
32567
32587
  status,
32568
32588
  chatRef,
@@ -32579,13 +32599,13 @@ function CaseStudyChatCard({
32579
32599
  ogPlaceholder,
32580
32600
  discuss
32581
32601
  }) {
32582
- const meta = [_optionalChain([item, 'optionalAccess', _678 => _678.msp, 'optionalAccess', _679 => _679.name]), _optionalChain([item, 'optionalAccess', _680 => _680.user, 'optionalAccess', _681 => _681.full_name])].filter(Boolean).join(" \xB7 ");
32602
+ const meta = [_optionalChain([item, 'optionalAccess', _680 => _680.msp, 'optionalAccess', _681 => _681.name]), _optionalChain([item, 'optionalAccess', _682 => _682.user, 'optionalAccess', _683 => _683.full_name])].filter(Boolean).join(" \xB7 ");
32583
32603
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32584
32604
  EntityMingoCard,
32585
32605
  {
32586
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _682 => _682.title]), () => ( "")),
32587
- description: _optionalChain([item, 'optionalAccess', _683 => _683.summary]) || meta || void 0,
32588
- cover: entityCover(_optionalChain([item, 'optionalAccess', _684 => _684.featured_image]), ogPlaceholder),
32606
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _684 => _684.title]), () => ( "")),
32607
+ description: _optionalChain([item, 'optionalAccess', _685 => _685.summary]) || meta || void 0,
32608
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _686 => _686.featured_image]), ogPlaceholder),
32589
32609
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZS2SBWBRcjs.TrophyIcon, { size: 24 }),
32590
32610
  status: { label: "Case study", variant: "grey" },
32591
32611
  chatRef,
@@ -32602,13 +32622,13 @@ function CustomerInterviewChatCard({
32602
32622
  ogPlaceholder,
32603
32623
  discuss
32604
32624
  }) {
32605
- const meta = [_optionalChain([item, 'optionalAccess', _685 => _685.user, 'optionalAccess', _686 => _686.full_name]), _optionalChain([item, 'optionalAccess', _687 => _687.msp, 'optionalAccess', _688 => _688.name])].filter(Boolean).join(" \xB7 ");
32625
+ const meta = [_optionalChain([item, 'optionalAccess', _687 => _687.user, 'optionalAccess', _688 => _688.full_name]), _optionalChain([item, 'optionalAccess', _689 => _689.msp, 'optionalAccess', _690 => _690.name])].filter(Boolean).join(" \xB7 ");
32606
32626
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32607
32627
  EntityMingoCard,
32608
32628
  {
32609
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _689 => _689.title]), () => ( "")),
32610
- description: _optionalChain([item, 'optionalAccess', _690 => _690.video_summary]) || meta || void 0,
32611
- cover: entityCover(_optionalChain([item, 'optionalAccess', _691 => _691.featured_image]), ogPlaceholder),
32629
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _691 => _691.title]), () => ( "")),
32630
+ description: _optionalChain([item, 'optionalAccess', _692 => _692.video_summary]) || meta || void 0,
32631
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _693 => _693.featured_image]), ogPlaceholder),
32612
32632
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZS2SBWBRcjs.MicrophoneIcon, { size: 24 }),
32613
32633
  status: { label: "Interview", variant: "grey" },
32614
32634
  chatRef,
@@ -32625,13 +32645,13 @@ function InvestorUpdateChatCard({
32625
32645
  ogPlaceholder,
32626
32646
  discuss
32627
32647
  }) {
32628
- const title = _optionalChain([item, 'optionalAccess', _692 => _692.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _693 => _693.update_number]), () => ( "?"))}`;
32648
+ const title = _optionalChain([item, 'optionalAccess', _694 => _694.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _695 => _695.update_number]), () => ( "?"))}`;
32629
32649
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32630
32650
  EntityMingoCard,
32631
32651
  {
32632
32652
  title,
32633
- description: _optionalChain([item, 'optionalAccess', _694 => _694.strategic_update]) || _optionalChain([item, 'optionalAccess', _695 => _695.content]) || formatInvestorUpdatePeriod(_optionalChain([item, 'optionalAccess', _696 => _696.period_start]), _optionalChain([item, 'optionalAccess', _697 => _697.period_end])) || void 0,
32634
- cover: entityCover(_optionalChain([item, 'optionalAccess', _698 => _698.featured_image]), ogPlaceholder),
32653
+ description: _optionalChain([item, 'optionalAccess', _696 => _696.strategic_update]) || _optionalChain([item, 'optionalAccess', _697 => _697.content]) || formatInvestorUpdatePeriod(_optionalChain([item, 'optionalAccess', _698 => _698.period_start]), _optionalChain([item, 'optionalAccess', _699 => _699.period_end])) || void 0,
32654
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _700 => _700.featured_image]), ogPlaceholder),
32635
32655
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZS2SBWBRcjs.PresentationLineIcon, { size: 24 }),
32636
32656
  status: { label: "Investor update", variant: "grey" },
32637
32657
  chatRef,
@@ -32648,12 +32668,12 @@ function OnboardingGuideChatCard({
32648
32668
  ogPlaceholder,
32649
32669
  discuss
32650
32670
  }) {
32651
- const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess', _699 => _699.featured_image])), () => ( entityCover(_optionalChain([item, 'optionalAccess', _700 => _700.main_video_thumbnail])))), () => ( entityCover(_optionalChain([item, 'optionalAccess', _701 => _701.og_image_url]), ogPlaceholder)));
32671
+ const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess', _701 => _701.featured_image])), () => ( entityCover(_optionalChain([item, 'optionalAccess', _702 => _702.main_video_thumbnail])))), () => ( entityCover(_optionalChain([item, 'optionalAccess', _703 => _703.og_image_url]), ogPlaceholder)));
32652
32672
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32653
32673
  EntityMingoCard,
32654
32674
  {
32655
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _702 => _702.title]), () => ( "")),
32656
- description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _703 => _703.summary]), () => ( _optionalChain([item, 'optionalAccess', _704 => _704.description]))), () => ( void 0)),
32675
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _704 => _704.title]), () => ( "")),
32676
+ description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _705 => _705.summary]), () => ( _optionalChain([item, 'optionalAccess', _706 => _706.description]))), () => ( void 0)),
32657
32677
  cover,
32658
32678
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZS2SBWBRcjs.CompassIcon, { size: 24 }),
32659
32679
  status: { label: "Guide", variant: "grey" },
@@ -32674,25 +32694,25 @@ function ProgramChatCard({
32674
32694
  discuss
32675
32695
  }) {
32676
32696
  const icon = configKey === "webinar" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZS2SBWBRcjs.PresentationBarIcon, { size: 24 }) : configKey === "event" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZS2SBWBRcjs.CalendarIcon, { size: 24 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZS2SBWBRcjs.MicrophoneIcon, { size: 24 });
32677
- const isScheduled = _optionalChain([item, 'optionalAccess', _705 => _705.status]) === "scheduled";
32697
+ const isScheduled = _optionalChain([item, 'optionalAccess', _707 => _707.status]) === "scheduled";
32678
32698
  let typeMeta;
32679
- if (configKey === "podcast" && typeof _optionalChain([item, 'optionalAccess', _706 => _706.duration_seconds]) === "number" && item.duration_seconds > 0 && !isScheduled) {
32699
+ if (configKey === "podcast" && typeof _optionalChain([item, 'optionalAccess', _708 => _708.duration_seconds]) === "number" && item.duration_seconds > 0 && !isScheduled) {
32680
32700
  typeMeta = _chunkY4JNA4W6cjs.formatDurationCompact.call(void 0, item.duration_seconds);
32681
- } else if (configKey === "event" && typeof _optionalChain([item, 'optionalAccess', _707 => _707.location_name]) === "string" && item.location_name.trim().length > 0) {
32701
+ } else if (configKey === "event" && typeof _optionalChain([item, 'optionalAccess', _709 => _709.location_name]) === "string" && item.location_name.trim().length > 0) {
32682
32702
  typeMeta = item.location_name;
32683
- } else if (configKey === "webinar" && _optionalChain([item, 'optionalAccess', _708 => _708.start_at])) {
32703
+ } else if (configKey === "webinar" && _optionalChain([item, 'optionalAccess', _710 => _710.start_at])) {
32684
32704
  const time = _chunkY4JNA4W6cjs.formatTimeWithTimezone.call(void 0, item.start_at, null);
32685
32705
  const dur = _chunkY4JNA4W6cjs.formatDurationFromRange.call(void 0, item.start_at, item.end_at);
32686
32706
  typeMeta = dur ? `${time} \xB7 ${dur}` : time;
32687
32707
  }
32688
- const itemDate = _chunkY4JNA4W6cjs.formatDateUTC.call(void 0, _nullishCoalesce(_optionalChain([item, 'optionalAccess', _709 => _709.date]), () => ( null)), { fallback: "", timezone: "local" });
32708
+ const itemDate = _chunkY4JNA4W6cjs.formatDateUTC.call(void 0, _nullishCoalesce(_optionalChain([item, 'optionalAccess', _711 => _711.date]), () => ( null)), { fallback: "", timezone: "local" });
32689
32709
  const meta = [itemDate, typeMeta].filter(Boolean).join(" \xB7 ");
32690
32710
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32691
32711
  EntityMingoCard,
32692
32712
  {
32693
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _710 => _710.title]), () => ( "")),
32694
- description: meta || _optionalChain([item, 'optionalAccess', _711 => _711.description]) || void 0,
32695
- cover: entityCover(_optionalChain([item, 'optionalAccess', _712 => _712.cover_url]), ogPlaceholder),
32713
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _712 => _712.title]), () => ( "")),
32714
+ description: meta || _optionalChain([item, 'optionalAccess', _713 => _713.description]) || void 0,
32715
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _714 => _714.cover_url]), ogPlaceholder),
32696
32716
  fallbackIcon: icon,
32697
32717
  status: { label, variant: "grey" },
32698
32718
  chatRef,
@@ -32709,10 +32729,10 @@ function RoadmapChatCard({
32709
32729
  cardType,
32710
32730
  discuss
32711
32731
  }) {
32712
- const logoUrl = typeof _optionalChain([item, 'optionalAccess', _713 => _713.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
32713
- const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _714 => _714.customItemId]) != null;
32732
+ const logoUrl = typeof _optionalChain([item, 'optionalAccess', _715 => _715.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
32733
+ const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _716 => _716.customItemId]) != null;
32714
32734
  const defaultIcon = cardType === "delivery_item" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZS2SBWBRcjs.TruckFastIcon, { size: 24 }) : cardType === "internal_task" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZS2SBWBRcjs.CheckSquareIcon, { size: 24 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZS2SBWBRcjs.MapIcon, { size: 24 });
32715
- const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _715 => _715.customItemId]), className: "size-6" }) : logoUrl ? (
32735
+ const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _717 => _717.customItemId]), className: "size-6" }) : logoUrl ? (
32716
32736
  // Contained (not full-bleed) so the integration logo keeps its aspect
32717
32737
  // ratio inside the bordered icon box — matches RoadmapCard.
32718
32738
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "img", { src: logoUrl, alt: "", className: "size-6 object-contain" })
@@ -32720,10 +32740,10 @@ function RoadmapChatCard({
32720
32740
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32721
32741
  EntityMingoCard,
32722
32742
  {
32723
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _716 => _716.title]), () => ( "")),
32724
- description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _717 => _717.description]), () => ( void 0)),
32743
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _718 => _718.title]), () => ( "")),
32744
+ description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _719 => _719.description]), () => ( void 0)),
32725
32745
  fallbackIcon: icon,
32726
- status: statusPill(_optionalChain([item, 'optionalAccess', _718 => _718.status])),
32746
+ status: statusPill(_optionalChain([item, 'optionalAccess', _720 => _720.status])),
32727
32747
  chatRef,
32728
32748
  isNewTab,
32729
32749
  discuss,
@@ -32809,7 +32829,7 @@ function programRegistryEntries() {
32809
32829
  discuss: opts.discuss,
32810
32830
  configKey: cfg.configKey,
32811
32831
  label: cfg.configKey.charAt(0).toUpperCase() + cfg.configKey.slice(1),
32812
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _719 => _719.extras, 'optionalAccess', _720 => _720.buildOgPlaceholderUrl, 'optionalCall', _721 => _721(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _722 => _722.title]), () => ( "")))]), () => ( null))
32832
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _721 => _721.extras, 'optionalAccess', _722 => _722.buildOgPlaceholderUrl, 'optionalCall', _723 => _723(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _724 => _724.title]), () => ( "")))]), () => ( null))
32813
32833
  }
32814
32834
  )
32815
32835
  };
@@ -32868,6 +32888,12 @@ var CHAT_CARD_REGISTRY = {
32868
32888
  }
32869
32889
  )
32870
32890
  },
32891
+ faq: {
32892
+ mode: "no-fetch",
32893
+ label: "FAQ",
32894
+ bareInline: true,
32895
+ render: (chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, FaqChatCard, { chatRef, isNewTab: opts.isNewTab, discuss: opts.discuss })
32896
+ },
32871
32897
  hubspot_ticket: {
32872
32898
  mode: "no-fetch",
32873
32899
  label: "HubSpot ticket",
@@ -32955,8 +32981,8 @@ var CHAT_CARD_REGISTRY = {
32955
32981
  chatRef,
32956
32982
  isNewTab: opts.isNewTab,
32957
32983
  discuss: opts.discuss,
32958
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _723 => _723.extras, 'optionalAccess', _724 => _724.buildOgPlaceholderUrl, 'optionalCall', _725 => _725(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _726 => _726.title]), () => ( "")))]), () => ( null)),
32959
- hasEmbeddedVideo: _optionalChain([chatRef, 'access', _727 => _727.metadata, 'optionalAccess', _728 => _728.hasEmbeddedVideo]) === true
32984
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _725 => _725.extras, 'optionalAccess', _726 => _726.buildOgPlaceholderUrl, 'optionalCall', _727 => _727(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _728 => _728.title]), () => ( "")))]), () => ( null)),
32985
+ hasEmbeddedVideo: _optionalChain([chatRef, 'access', _729 => _729.metadata, 'optionalAccess', _730 => _730.hasEmbeddedVideo]) === true
32960
32986
  }
32961
32987
  )
32962
32988
  },
@@ -32973,7 +32999,7 @@ var CHAT_CARD_REGISTRY = {
32973
32999
  chatRef,
32974
33000
  isNewTab: opts.isNewTab,
32975
33001
  discuss: opts.discuss,
32976
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _729 => _729.extras, 'optionalAccess', _730 => _730.buildOgPlaceholderUrl, 'optionalCall', _731 => _731(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _732 => _732.title]), () => ( "")))]), () => ( null))
33002
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _731 => _731.extras, 'optionalAccess', _732 => _732.buildOgPlaceholderUrl, 'optionalCall', _733 => _733(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _734 => _734.title]), () => ( "")))]), () => ( null))
32977
33003
  }
32978
33004
  )
32979
33005
  },
@@ -32990,7 +33016,7 @@ var CHAT_CARD_REGISTRY = {
32990
33016
  chatRef,
32991
33017
  isNewTab: opts.isNewTab,
32992
33018
  discuss: opts.discuss,
32993
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _733 => _733.extras, 'optionalAccess', _734 => _734.buildOgPlaceholderUrl, 'optionalCall', _735 => _735(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _736 => _736.title]), () => ( "")))]), () => ( null))
33019
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _735 => _735.extras, 'optionalAccess', _736 => _736.buildOgPlaceholderUrl, 'optionalCall', _737 => _737(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _738 => _738.title]), () => ( "")))]), () => ( null))
32994
33020
  }
32995
33021
  )
32996
33022
  },
@@ -33001,7 +33027,7 @@ var CHAT_CARD_REGISTRY = {
33001
33027
  bareInline: true,
33002
33028
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ProductReleaseCardSkeleton, { size: "sm" }),
33003
33029
  render: (item, chatRef, opts) => {
33004
- const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _737 => _737.extras, 'optionalAccess', _738 => _738.buildProductReleaseCardProps]), () => ( defaultBuildProductReleaseCardProps));
33030
+ const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _739 => _739.extras, 'optionalAccess', _740 => _740.buildProductReleaseCardProps]), () => ( defaultBuildProductReleaseCardProps));
33005
33031
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33006
33032
  ProductReleaseChatCard,
33007
33033
  {
@@ -33028,7 +33054,7 @@ var CHAT_CARD_REGISTRY = {
33028
33054
  chatRef,
33029
33055
  isNewTab: opts.isNewTab,
33030
33056
  discuss: opts.discuss,
33031
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _739 => _739.extras, 'optionalAccess', _740 => _740.buildOgPlaceholderUrl, 'optionalCall', _741 => _741(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _742 => _742.title]), () => ( "")))]), () => ( null))
33057
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _741 => _741.extras, 'optionalAccess', _742 => _742.buildOgPlaceholderUrl, 'optionalCall', _743 => _743(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _744 => _744.title]), () => ( "")))]), () => ( null))
33032
33058
  }
33033
33059
  )
33034
33060
  },
@@ -33047,7 +33073,7 @@ var CHAT_CARD_REGISTRY = {
33047
33073
  chatRef,
33048
33074
  isNewTab: opts.isNewTab,
33049
33075
  discuss: opts.discuss,
33050
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _743 => _743.extras, 'optionalAccess', _744 => _744.buildOgPlaceholderUrl, 'optionalCall', _745 => _745(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _746 => _746.title]), () => ( "")))]), () => ( null))
33076
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _745 => _745.extras, 'optionalAccess', _746 => _746.buildOgPlaceholderUrl, 'optionalCall', _747 => _747(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _748 => _748.title]), () => ( "")))]), () => ( null))
33051
33077
  }
33052
33078
  )
33053
33079
  },
@@ -33059,7 +33085,7 @@ var CHAT_CARD_REGISTRY = {
33059
33085
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignCardAdminSkeleton, {}),
33060
33086
  // No public viewer — synthesize the hub-internal admin URL post-fetch
33061
33087
  // so the wrapper + isNewTab computation see the actual destination.
33062
- fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _747 => _747.id]) ? `/admin/campaigns/${encodeURIComponent(item.id)}` : null,
33088
+ fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _749 => _749.id]) ? `/admin/campaigns/${encodeURIComponent(item.id)}` : null,
33063
33089
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33064
33090
  CampaignChatCard,
33065
33091
  {
@@ -33085,12 +33111,12 @@ function ChatCardNavWrap({
33085
33111
  const onClickCapture = (e) => {
33086
33112
  if (!href) return;
33087
33113
  const targetEl = e.target;
33088
- if (_optionalChain([targetEl, 'optionalAccess', _748 => _748.closest, 'optionalCall', _749 => _749("button")])) return;
33089
- if (!_optionalChain([targetEl, 'optionalAccess', _750 => _750.closest, 'optionalCall', _751 => _751("a")])) return;
33114
+ if (_optionalChain([targetEl, 'optionalAccess', _750 => _750.closest, 'optionalCall', _751 => _751("button")])) return;
33115
+ if (!_optionalChain([targetEl, 'optionalAccess', _752 => _752.closest, 'optionalCall', _753 => _753("a")])) return;
33090
33116
  const handled = handleChatNavClick(e, runtime, { href, path, targetPlatform }, router.push);
33091
33117
  if (!handled) return;
33092
33118
  e.stopPropagation();
33093
- if (!isNewTab && _optionalChain([panel, 'optionalAccess', _752 => _752.closeChat])) panel.closeChat();
33119
+ if (!isNewTab && _optionalChain([panel, 'optionalAccess', _754 => _754.closeChat])) panel.closeChat();
33094
33120
  };
33095
33121
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "contents", onClickCapture, children });
33096
33122
  }
@@ -33112,7 +33138,7 @@ function ChatCardLoader({
33112
33138
  title: chatRef.title,
33113
33139
  externalUrl: chatRef.url,
33114
33140
  targetPlatform: chatRef.targetPlatform,
33115
- path: typeof _optionalChain([chatRef, 'access', _753 => _753.metadata, 'optionalAccess', _754 => _754.path]) === "string" ? chatRef.metadata.path : null
33141
+ path: typeof _optionalChain([chatRef, 'access', _755 => _755.metadata, 'optionalAccess', _756 => _756.path]) === "string" ? chatRef.metadata.path : null
33116
33142
  },
33117
33143
  _chunkY4JNA4W6cjs.sourceRowCtxFromRuntime.call(void 0, runtime, { baseRoute, chipBasePlatform })
33118
33144
  );
@@ -33126,7 +33152,7 @@ function ChatCardLoader({
33126
33152
  const entry = CHAT_CARD_REGISTRY[resolvedChatRef.type];
33127
33153
  const fetchEntry = entry && entry.mode === "fetch" ? entry : null;
33128
33154
  const { item, isLoading } = useChatCardItem(
33129
- _nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _755 => _755.contentRefType]), () => ( "")),
33155
+ _nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _757 => _757.contentRefType]), () => ( "")),
33130
33156
  fetchEntry ? resolvedChatRef.id : ""
33131
33157
  );
33132
33158
  if (!entry) return null;
@@ -33157,7 +33183,7 @@ function ChatCardLoader({
33157
33183
  isNewTab,
33158
33184
  discuss
33159
33185
  };
33160
- const path = typeof _optionalChain([finalChatRef, 'access', _756 => _756.metadata, 'optionalAccess', _757 => _757.path]) === "string" ? finalChatRef.metadata.path : null;
33186
+ const path = typeof _optionalChain([finalChatRef, 'access', _758 => _758.metadata, 'optionalAccess', _759 => _759.path]) === "string" ? finalChatRef.metadata.path : null;
33161
33187
  const navWrap = (children) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
33162
33188
  ChatCardNavWrap,
33163
33189
  {
@@ -33543,7 +33569,7 @@ function useJetStreamDialogSubscription({
33543
33569
  const lifecycle = _chunkPXXS27EEcjs.startConnectionLifecycle.call(void 0, {
33544
33570
  conn: sharedConn,
33545
33571
  wsUrl,
33546
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _758 => _758.current, 'optionalCall', _759 => _759()]),
33572
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _760 => _760.current, 'optionalCall', _761 => _761()]),
33547
33573
  backoff: reconnectionBackoffRef.current,
33548
33574
  getFreshUrl: () => getNatsWsUrlRef.current(),
33549
33575
  // JetStream emits 'error' for protocol-level failures (e.g. -ERR Permissions
@@ -33558,7 +33584,7 @@ function useJetStreamDialogSubscription({
33558
33584
  setReconnectionCount((c) => c + 1);
33559
33585
  }
33560
33586
  hadConnectionBeforeRef.current = true;
33561
- _optionalChain([onConnectRef, 'access', _760 => _760.current, 'optionalCall', _761 => _761()]);
33587
+ _optionalChain([onConnectRef, 'access', _762 => _762.current, 'optionalCall', _763 => _763()]);
33562
33588
  }
33563
33589
  if (status === "error") {
33564
33590
  console.warn("[JetStream] NATS protocol error:", evt.data);
@@ -33568,7 +33594,7 @@ function useJetStreamDialogSubscription({
33568
33594
  setIsConnected(false);
33569
33595
  setIsSubscribed(false);
33570
33596
  tearDownSubscription();
33571
- _optionalChain([onDisconnectRef, 'access', _762 => _762.current, 'optionalCall', _763 => _763()]);
33597
+ _optionalChain([onDisconnectRef, 'access', _764 => _764.current, 'optionalCall', _765 => _765()]);
33572
33598
  }
33573
33599
  }
33574
33600
  });
@@ -33647,7 +33673,7 @@ function useJetStreamDialogSubscription({
33647
33673
  }
33648
33674
  subscriptionRef.current = handle;
33649
33675
  setIsSubscribed(true);
33650
- _optionalChain([onSubscribedRef, 'access', _764 => _764.current, 'optionalCall', _765 => _765()]);
33676
+ _optionalChain([onSubscribedRef, 'access', _766 => _766.current, 'optionalCall', _767 => _767()]);
33651
33677
  } catch (e24) {
33652
33678
  if (!cancelled) {
33653
33679
  setIsSubscribed(false);
@@ -33760,20 +33786,20 @@ function useNatsDialogSubscription({
33760
33786
  const tearDownSubscriptions = () => {
33761
33787
  subscriptionRefs.current.forEach((sub) => {
33762
33788
  try {
33763
- _optionalChain([sub, 'optionalAccess', _766 => _766.unsubscribe, 'call', _767 => _767()]);
33789
+ _optionalChain([sub, 'optionalAccess', _768 => _768.unsubscribe, 'call', _769 => _769()]);
33764
33790
  } catch (e26) {
33765
33791
  }
33766
33792
  });
33767
33793
  subscriptionRefs.current.clear();
33768
33794
  lastSubscribedDialogIdRef.current = null;
33769
- _optionalChain([abortControllerRef, 'access', _768 => _768.current, 'optionalAccess', _769 => _769.abort, 'call', _770 => _770()]);
33795
+ _optionalChain([abortControllerRef, 'access', _770 => _770.current, 'optionalAccess', _771 => _771.abort, 'call', _772 => _772()]);
33770
33796
  abortControllerRef.current = null;
33771
33797
  };
33772
33798
  const isDisconnectStatus = (status) => status === "closed" || status === "disconnected";
33773
33799
  const lifecycle = _chunkPXXS27EEcjs.startConnectionLifecycle.call(void 0, {
33774
33800
  conn: sharedConn,
33775
33801
  wsUrl,
33776
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _771 => _771.current, 'optionalCall', _772 => _772()]),
33802
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _773 => _773.current, 'optionalCall', _774 => _774()]),
33777
33803
  backoff: reconnectionBackoffRef.current,
33778
33804
  getFreshUrl: () => getNatsWsUrlRef.current(),
33779
33805
  shouldRetryOn: isDisconnectStatus,
@@ -33784,7 +33810,7 @@ function useNatsDialogSubscription({
33784
33810
  setReconnectionCount((c) => c + 1);
33785
33811
  }
33786
33812
  hadConnectionBeforeRef.current = true;
33787
- _optionalChain([onConnectRef, 'access', _773 => _773.current, 'optionalCall', _774 => _774()]);
33813
+ _optionalChain([onConnectRef, 'access', _775 => _775.current, 'optionalCall', _776 => _776()]);
33788
33814
  }
33789
33815
  if (status === "error") {
33790
33816
  console.warn("[NATS] protocol error:", evt.data);
@@ -33794,7 +33820,7 @@ function useNatsDialogSubscription({
33794
33820
  setIsConnected(false);
33795
33821
  setIsSubscribed(false);
33796
33822
  tearDownSubscriptions();
33797
- _optionalChain([onDisconnectRef, 'access', _775 => _775.current, 'optionalCall', _776 => _776()]);
33823
+ _optionalChain([onDisconnectRef, 'access', _777 => _777.current, 'optionalCall', _778 => _778()]);
33798
33824
  }
33799
33825
  }
33800
33826
  });
@@ -33825,13 +33851,13 @@ function useNatsDialogSubscription({
33825
33851
  setIsSubscribed(false);
33826
33852
  subscriptionRefs.current.forEach((sub) => {
33827
33853
  try {
33828
- _optionalChain([sub, 'optionalAccess', _777 => _777.unsubscribe, 'call', _778 => _778()]);
33854
+ _optionalChain([sub, 'optionalAccess', _779 => _779.unsubscribe, 'call', _780 => _780()]);
33829
33855
  } catch (e27) {
33830
33856
  }
33831
33857
  });
33832
33858
  subscriptionRefs.current.clear();
33833
33859
  lastSubscribedDialogIdRef.current = null;
33834
- _optionalChain([abortControllerRef, 'access', _779 => _779.current, 'optionalAccess', _780 => _780.abort, 'call', _781 => _781()]);
33860
+ _optionalChain([abortControllerRef, 'access', _781 => _781.current, 'optionalAccess', _782 => _782.abort, 'call', _783 => _783()]);
33835
33861
  abortControllerRef.current = null;
33836
33862
  }
33837
33863
  return;
@@ -33843,12 +33869,12 @@ function useNatsDialogSubscription({
33843
33869
  if (subscriptionRefs.current.size > 0) {
33844
33870
  subscriptionRefs.current.forEach((sub) => {
33845
33871
  try {
33846
- _optionalChain([sub, 'optionalAccess', _782 => _782.unsubscribe, 'call', _783 => _783()]);
33872
+ _optionalChain([sub, 'optionalAccess', _784 => _784.unsubscribe, 'call', _785 => _785()]);
33847
33873
  } catch (e28) {
33848
33874
  }
33849
33875
  });
33850
33876
  subscriptionRefs.current.clear();
33851
- _optionalChain([abortControllerRef, 'access', _784 => _784.current, 'optionalAccess', _785 => _785.abort, 'call', _786 => _786()]);
33877
+ _optionalChain([abortControllerRef, 'access', _786 => _786.current, 'optionalAccess', _787 => _787.abort, 'call', _788 => _788()]);
33852
33878
  }
33853
33879
  abortControllerRef.current = new AbortController();
33854
33880
  const abort = abortControllerRef.current;
@@ -33880,7 +33906,7 @@ function useNatsDialogSubscription({
33880
33906
  });
33881
33907
  lastSubscribedDialogIdRef.current = dialogId;
33882
33908
  setIsSubscribed(true);
33883
- _optionalChain([onSubscribedRef, 'access', _787 => _787.current, 'optionalCall', _788 => _788()]);
33909
+ _optionalChain([onSubscribedRef, 'access', _789 => _789.current, 'optionalCall', _790 => _790()]);
33884
33910
  };
33885
33911
  if (isConnectedRef.current) {
33886
33912
  createSubscriptions();
@@ -33890,7 +33916,7 @@ function useNatsDialogSubscription({
33890
33916
  abort.abort();
33891
33917
  subscriptionRefs.current.forEach((sub) => {
33892
33918
  try {
33893
- _optionalChain([sub, 'optionalAccess', _789 => _789.unsubscribe, 'call', _790 => _790()]);
33919
+ _optionalChain([sub, 'optionalAccess', _791 => _791.unsubscribe, 'call', _792 => _792()]);
33894
33920
  } catch (e30) {
33895
33921
  }
33896
33922
  });
@@ -33931,7 +33957,7 @@ function useNatsDialogSubscription({
33931
33957
  });
33932
33958
  lastSubscribedDialogIdRef.current = dialogId2;
33933
33959
  setIsSubscribed(true);
33934
- _optionalChain([onSubscribedRef, 'access', _791 => _791.current, 'optionalCall', _792 => _792()]);
33960
+ _optionalChain([onSubscribedRef, 'access', _793 => _793.current, 'optionalCall', _794 => _794()]);
33935
33961
  } else if (subscriptionRefs.current.size > 0) {
33936
33962
  setIsSubscribed(true);
33937
33963
  }
@@ -33939,10 +33965,10 @@ function useNatsDialogSubscription({
33939
33965
  return { isConnected, isSubscribed, reconnectionCount };
33940
33966
  }
33941
33967
  function buildNatsWsUrl(apiBaseUrl, options) {
33942
- const path = _optionalChain([options, 'optionalAccess', _793 => _793.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
33968
+ const path = _optionalChain([options, 'optionalAccess', _795 => _795.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
33943
33969
  const u = new URL(path, apiBaseUrl);
33944
33970
  u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
33945
- if (_optionalChain([options, 'optionalAccess', _794 => _794.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _795 => _795.token])) {
33971
+ if (_optionalChain([options, 'optionalAccess', _796 => _796.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _797 => _797.token])) {
33946
33972
  u.searchParams.set("authorization", options.token);
33947
33973
  }
33948
33974
  return u.toString();
@@ -34263,8 +34289,8 @@ var MessageSegmentAccumulator = class {
34263
34289
  type: "tool_execution",
34264
34290
  data: {
34265
34291
  ...toolData,
34266
- toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _796 => _796.data, 'access', _797 => _797.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _798 => _798.toolTitle]))),
34267
- parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _799 => _799.parameters])
34292
+ toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _798 => _798.data, 'access', _799 => _799.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _800 => _800.toolTitle]))),
34293
+ parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _801 => _801.parameters])
34268
34294
  }
34269
34295
  };
34270
34296
  if (existingIndex !== -1) {
@@ -34288,8 +34314,8 @@ var MessageSegmentAccumulator = class {
34288
34314
  if (seg.type !== "approval_batch") return seg;
34289
34315
  const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
34290
34316
  if (!hasCall) return seg;
34291
- const prev = _optionalChain([seg, 'access', _800 => _800.data, 'access', _801 => _801.executions, 'optionalAccess', _802 => _802[execId]]);
34292
- const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _803 => _803.result]), success: _optionalChain([prev, 'optionalAccess', _804 => _804.success]) };
34317
+ const prev = _optionalChain([seg, 'access', _802 => _802.data, 'access', _803 => _803.executions, 'optionalAccess', _804 => _804[execId]]);
34318
+ const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _805 => _805.result]), success: _optionalChain([prev, 'optionalAccess', _806 => _806.success]) };
34293
34319
  matched = true;
34294
34320
  return {
34295
34321
  ...seg,
@@ -34411,10 +34437,10 @@ var MessageSegmentAccumulator = class {
34411
34437
  const segment = {
34412
34438
  type: "approval_request",
34413
34439
  data: {
34414
- command: _optionalChain([pendingApproval, 'optionalAccess', _805 => _805.command]) || "",
34415
- explanation: _optionalChain([pendingApproval, 'optionalAccess', _806 => _806.explanation]),
34440
+ command: _optionalChain([pendingApproval, 'optionalAccess', _807 => _807.command]) || "",
34441
+ explanation: _optionalChain([pendingApproval, 'optionalAccess', _808 => _808.explanation]),
34416
34442
  requestId,
34417
- approvalType: _optionalChain([pendingApproval, 'optionalAccess', _807 => _807.approvalType]) || approvalType
34443
+ approvalType: _optionalChain([pendingApproval, 'optionalAccess', _809 => _809.approvalType]) || approvalType
34418
34444
  },
34419
34445
  status,
34420
34446
  onApprove: this.callbacks.onApprove,
@@ -34607,7 +34633,7 @@ function useRealtimeChunkProcessor(options) {
34607
34633
  if (initialState.escalatedApprovals) {
34608
34634
  pendingEscalatedRef.current = new Map(initialState.escalatedApprovals);
34609
34635
  initialState.escalatedApprovals.forEach((data, requestId) => {
34610
- _optionalChain([callbacks, 'access', _808 => _808.onEscalatedApproval, 'optionalCall', _809 => _809(requestId, data)]);
34636
+ _optionalChain([callbacks, 'access', _810 => _810.onEscalatedApproval, 'optionalCall', _811 => _811(requestId, data)]);
34611
34637
  });
34612
34638
  }
34613
34639
  hasEverStreamedRef.current = true;
@@ -34631,12 +34657,12 @@ function useRealtimeChunkProcessor(options) {
34631
34657
  if (!action) return;
34632
34658
  const accumulator = accumulatorRef.current;
34633
34659
  const streamSeq = chunk && typeof chunk === "object" && typeof chunk.streamSeq === "number" ? chunk.streamSeq : void 0;
34634
- const emitSegments = (s, meta) => _optionalChain([callbacks, 'access', _810 => _810.onSegmentsUpdate, 'optionalCall', _811 => _811(s, streamSeq != null ? { ...meta, streamSeq } : meta)]);
34660
+ const emitSegments = (s, meta) => _optionalChain([callbacks, 'access', _812 => _812.onSegmentsUpdate, 'optionalCall', _813 => _813(s, streamSeq != null ? { ...meta, streamSeq } : meta)]);
34635
34661
  if (action.action === "direct_message") sawDirectMessageRef.current = true;
34636
34662
  if ((directModeFlagRef.current || sawDirectMessageRef.current) && !DIRECT_MODE_ALLOWED.has(action.action)) {
34637
34663
  if (isInStreamRef.current) {
34638
34664
  isInStreamRef.current = false;
34639
- _optionalChain([callbacks, 'access', _812 => _812.onStreamEnd, 'optionalCall', _813 => _813()]);
34665
+ _optionalChain([callbacks, 'access', _814 => _814.onStreamEnd, 'optionalCall', _815 => _815()]);
34640
34666
  accumulator.resetSegments();
34641
34667
  }
34642
34668
  return;
@@ -34645,16 +34671,16 @@ function useRealtimeChunkProcessor(options) {
34645
34671
  case "message_start":
34646
34672
  isInStreamRef.current = true;
34647
34673
  hasEverStreamedRef.current = true;
34648
- _optionalChain([callbacks, 'access', _814 => _814.onStreamStart, 'optionalCall', _815 => _815()]);
34674
+ _optionalChain([callbacks, 'access', _816 => _816.onStreamStart, 'optionalCall', _817 => _817()]);
34649
34675
  accumulator.resetSegments();
34650
34676
  break;
34651
34677
  case "message_end":
34652
34678
  isInStreamRef.current = false;
34653
- _optionalChain([callbacks, 'access', _816 => _816.onStreamEnd, 'optionalCall', _817 => _817()]);
34679
+ _optionalChain([callbacks, 'access', _818 => _818.onStreamEnd, 'optionalCall', _819 => _819()]);
34654
34680
  accumulator.resetSegments();
34655
34681
  break;
34656
34682
  case "metadata":
34657
- _optionalChain([callbacks, 'access', _818 => _818.onMetadata, 'optionalCall', _819 => _819(action)]);
34683
+ _optionalChain([callbacks, 'access', _820 => _820.onMetadata, 'optionalCall', _821 => _821(action)]);
34658
34684
  break;
34659
34685
  case "text": {
34660
34686
  const segments = accumulator.appendText(action.text);
@@ -34697,7 +34723,7 @@ function useRealtimeChunkProcessor(options) {
34697
34723
  emitSegments(segments);
34698
34724
  } else {
34699
34725
  pendingEscalatedRef.current.set(requestId, { command, explanation, approvalType });
34700
- _optionalChain([callbacks, 'access', _820 => _820.onEscalatedApproval, 'optionalCall', _821 => _821(requestId, { command, explanation, approvalType })]);
34726
+ _optionalChain([callbacks, 'access', _822 => _822.onEscalatedApproval, 'optionalCall', _823 => _823(requestId, { command, explanation, approvalType })]);
34701
34727
  }
34702
34728
  break;
34703
34729
  }
@@ -34709,13 +34735,13 @@ function useRealtimeChunkProcessor(options) {
34709
34735
  const summary = required ? getCommandText(required) : `Batch of ${toolCalls.length} tool calls`;
34710
34736
  pendingEscalatedRef.current.set(requestId, {
34711
34737
  command: summary,
34712
- explanation: _optionalChain([required, 'optionalAccess', _822 => _822.toolExplanation]),
34738
+ explanation: _optionalChain([required, 'optionalAccess', _824 => _824.toolExplanation]),
34713
34739
  approvalType,
34714
34740
  toolCalls
34715
34741
  });
34716
- _optionalChain([callbacks, 'access', _823 => _823.onEscalatedApproval, 'optionalCall', _824 => _824(requestId, {
34742
+ _optionalChain([callbacks, 'access', _825 => _825.onEscalatedApproval, 'optionalCall', _826 => _826(requestId, {
34717
34743
  command: summary,
34718
- explanation: _optionalChain([required, 'optionalAccess', _825 => _825.toolExplanation]),
34744
+ explanation: _optionalChain([required, 'optionalAccess', _827 => _827.toolExplanation]),
34719
34745
  approvalType
34720
34746
  })]);
34721
34747
  break;
@@ -34745,7 +34771,7 @@ function useRealtimeChunkProcessor(options) {
34745
34771
  const status = approved ? "approved" : "rejected";
34746
34772
  if (escalatedData) {
34747
34773
  pendingEscalatedRef.current.delete(requestId);
34748
- _optionalChain([callbacks, 'access', _826 => _826.onEscalatedApprovalResult, 'optionalCall', _827 => _827(requestId, approved, {
34774
+ _optionalChain([callbacks, 'access', _828 => _828.onEscalatedApprovalResult, 'optionalCall', _829 => _829(requestId, approved, {
34749
34775
  command: escalatedData.command,
34750
34776
  explanation: escalatedData.explanation,
34751
34777
  approvalType: escalatedData.approvalType
@@ -34791,44 +34817,46 @@ function useRealtimeChunkProcessor(options) {
34791
34817
  emitSegments(accumulator.getSegments());
34792
34818
  }
34793
34819
  }
34794
- _optionalChain([callbacks, 'access', _828 => _828.onApprovalResolved, 'optionalCall', _829 => _829(requestId, status, approvalType, resolvedByName)]);
34820
+ _optionalChain([callbacks, 'access', _830 => _830.onApprovalResolved, 'optionalCall', _831 => _831(requestId, status, approvalType, resolvedByName)]);
34795
34821
  break;
34796
34822
  }
34797
34823
  case "error": {
34798
34824
  let message2;
34799
- if ("details" in action && _optionalChain([action, 'optionalAccess', _830 => _830.details])) {
34825
+ if ("details" in action && _optionalChain([action, 'optionalAccess', _832 => _832.details])) {
34800
34826
  try {
34801
- message2 = _optionalChain([JSON, 'access', _831 => _831.parse, 'call', _832 => _832(action.details), 'optionalAccess', _833 => _833.error, 'optionalAccess', _834 => _834.message]);
34827
+ message2 = _optionalChain([JSON, 'access', _833 => _833.parse, 'call', _834 => _834(action.details), 'optionalAccess', _835 => _835.error, 'optionalAccess', _836 => _836.message]);
34802
34828
  } catch (e32) {
34803
34829
  message2 = action.details;
34804
34830
  }
34805
34831
  }
34806
34832
  const segments = accumulator.addError(action.error, message2);
34807
34833
  emitSegments(segments);
34808
- _optionalChain([callbacks, 'access', _835 => _835.onError, 'optionalCall', _836 => _836(action.error, message2)]);
34834
+ _optionalChain([callbacks, 'access', _837 => _837.onError, 'optionalCall', _838 => _838(action.error, message2)]);
34809
34835
  break;
34810
34836
  }
34811
34837
  case "system": {
34812
- _optionalChain([callbacks, 'access', _837 => _837.onSystemMessage, 'optionalCall', _838 => _838(action.text)]);
34838
+ _optionalChain([callbacks, 'access', _839 => _839.onSystemMessage, 'optionalCall', _840 => _840(action.text, { streamSeq })]);
34813
34839
  break;
34814
34840
  }
34815
34841
  case "direct_message": {
34816
- _optionalChain([callbacks, 'access', _839 => _839.onDirectMessage, 'optionalCall', _840 => _840(action.text, {
34842
+ _optionalChain([callbacks, 'access', _841 => _841.onDirectMessage, 'optionalCall', _842 => _842(action.text, {
34817
34843
  ownerType: action.ownerType,
34818
34844
  displayName: action.displayName,
34819
- userId: action.userId
34845
+ userId: action.userId,
34846
+ streamSeq
34820
34847
  })]);
34821
34848
  break;
34822
34849
  }
34823
34850
  case "message_request":
34824
- _optionalChain([callbacks, 'access', _841 => _841.onUserMessage, 'optionalCall', _842 => _842(action.text, {
34851
+ _optionalChain([callbacks, 'access', _843 => _843.onUserMessage, 'optionalCall', _844 => _844(action.text, {
34825
34852
  ownerType: action.ownerType,
34826
34853
  displayName: action.displayName,
34827
- userId: action.userId
34854
+ userId: action.userId,
34855
+ streamSeq
34828
34856
  })]);
34829
34857
  break;
34830
34858
  case "token_usage":
34831
- _optionalChain([callbacks, 'access', _843 => _843.onTokenUsage, 'optionalCall', _844 => _844(action.data)]);
34859
+ _optionalChain([callbacks, 'access', _845 => _845.onTokenUsage, 'optionalCall', _846 => _846(action.data)]);
34832
34860
  break;
34833
34861
  case "context_compaction_start": {
34834
34862
  const standalone = !isInStreamRef.current;
@@ -34843,7 +34871,7 @@ function useRealtimeChunkProcessor(options) {
34843
34871
  break;
34844
34872
  }
34845
34873
  case "dialog_closed":
34846
- _optionalChain([callbacks, 'access', _845 => _845.onDialogClosed, 'optionalCall', _846 => _846()]);
34874
+ _optionalChain([callbacks, 'access', _847 => _847.onDialogClosed, 'optionalCall', _848 => _848()]);
34847
34875
  break;
34848
34876
  default:
34849
34877
  break;
@@ -34905,7 +34933,7 @@ function useSlashCommands(prefix, commandsUrl) {
34905
34933
  const next = await fetchSlashCommands(prefix, ctrl.signal, commandsUrl);
34906
34934
  if (!cancelled) setCommands(next);
34907
34935
  } catch (err) {
34908
- if (!cancelled && _optionalChain([err, 'optionalAccess', _847 => _847.name]) !== "AbortError") {
34936
+ if (!cancelled && _optionalChain([err, 'optionalAccess', _849 => _849.name]) !== "AbortError") {
34909
34937
  console.warn("[use-slash-commands] fetch failed:", err);
34910
34938
  }
34911
34939
  } finally {
@@ -34924,7 +34952,7 @@ function useSlashCommandRegistry(commandsUrl, options) {
34924
34952
  const query = _reactquery.useQuery.call(void 0, {
34925
34953
  queryKey: ["chat-slash-commands", commandsUrl],
34926
34954
  queryFn: ({ signal }) => fetchSlashCommands("", signal, commandsUrl),
34927
- enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _848 => _848.enabled]), () => ( true)),
34955
+ enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _850 => _850.enabled]), () => ( true)),
34928
34956
  staleTime: Infinity,
34929
34957
  gcTime: Infinity
34930
34958
  });
@@ -34954,13 +34982,13 @@ async function fetchEmptyStateConfig(signal, emptyStateUrl) {
34954
34982
  }
34955
34983
  const data = await res.json();
34956
34984
  return {
34957
- greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _849 => _849.greeting]), () => ( null)),
34958
- enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _850 => _850.enabledRagTableIds]), () => ( [])),
34959
- suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _851 => _851.suggestedQueries]), () => ( []))
34985
+ greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _851 => _851.greeting]), () => ( null)),
34986
+ enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _852 => _852.enabledRagTableIds]), () => ( [])),
34987
+ suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _853 => _853.suggestedQueries]), () => ( []))
34960
34988
  };
34961
34989
  }
34962
34990
  function useEmptyStateConfig(emptyStateUrl, options) {
34963
- const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _852 => _852.enabled]), () => ( true))) && !!emptyStateUrl;
34991
+ const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _854 => _854.enabled]), () => ( true))) && !!emptyStateUrl;
34964
34992
  const query = _reactquery.useQuery.call(void 0, {
34965
34993
  queryKey: ["chat-empty-state", emptyStateUrl],
34966
34994
  queryFn: ({ signal }) => fetchEmptyStateConfig(signal, emptyStateUrl),
@@ -34985,7 +35013,7 @@ var CHAT_ATTACHMENT_MAX_SIZE_BYTES = 25 * 1024 * 1024;
34985
35013
  var STORAGE_CACHE_CONTROL_IMMUTABLE = "public, max-age=31536000, immutable";
34986
35014
  function uploadWithProgress(url, file, token, onProgress, signal) {
34987
35015
  return new Promise((resolve, reject) => {
34988
- if (_optionalChain([signal, 'optionalAccess', _853 => _853.aborted])) {
35016
+ if (_optionalChain([signal, 'optionalAccess', _855 => _855.aborted])) {
34989
35017
  reject(new Error("Upload cancelled"));
34990
35018
  return;
34991
35019
  }
@@ -34999,7 +35027,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
34999
35027
  xhr.removeEventListener("error", handleError);
35000
35028
  xhr.removeEventListener("abort", handleAbort);
35001
35029
  xhr.removeEventListener("timeout", handleTimeout);
35002
- _optionalChain([signal, 'optionalAccess', _854 => _854.removeEventListener, 'call', _855 => _855("abort", handleSignalAbort)]);
35030
+ _optionalChain([signal, 'optionalAccess', _856 => _856.removeEventListener, 'call', _857 => _857("abort", handleSignalAbort)]);
35003
35031
  if (xhr.readyState !== XMLHttpRequest.DONE) xhr.abort();
35004
35032
  };
35005
35033
  const handleProgress = (event) => {
@@ -35035,7 +35063,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
35035
35063
  const handleSignalAbort = () => {
35036
35064
  xhr.abort();
35037
35065
  };
35038
- _optionalChain([signal, 'optionalAccess', _856 => _856.addEventListener, 'call', _857 => _857("abort", handleSignalAbort, { once: true })]);
35066
+ _optionalChain([signal, 'optionalAccess', _858 => _858.addEventListener, 'call', _859 => _859("abort", handleSignalAbort, { once: true })]);
35039
35067
  xhr.upload.addEventListener("progress", handleProgress);
35040
35068
  xhr.addEventListener("load", handleLoad);
35041
35069
  xhr.addEventListener("error", handleError);
@@ -35079,12 +35107,12 @@ function useChatAttachments() {
35079
35107
  try {
35080
35108
  sniffed = await _filetype.fileTypeFromBlob.call(void 0, att.file);
35081
35109
  } catch (err) {
35082
- if (_optionalChain([ctrl, 'optionalAccess', _858 => _858.signal, 'access', _859 => _859.aborted])) return;
35110
+ if (_optionalChain([ctrl, 'optionalAccess', _860 => _860.signal, 'access', _861 => _861.aborted])) return;
35083
35111
  throw new Error(
35084
35112
  `Could not read file content: ${err instanceof Error ? err.message : String(err)}`
35085
35113
  );
35086
35114
  }
35087
- if (_optionalChain([ctrl, 'optionalAccess', _860 => _860.signal, 'access', _861 => _861.aborted])) return;
35115
+ if (_optionalChain([ctrl, 'optionalAccess', _862 => _862.signal, 'access', _863 => _863.aborted])) return;
35088
35116
  if (!sniffed) {
35089
35117
  throw new Error("Unrecognized file format");
35090
35118
  }
@@ -35098,7 +35126,7 @@ function useChatAttachments() {
35098
35126
  const urlResp = await _chunkYETA25JWcjs.embedAuthedFetch.call(void 0, uploadUrlEndpoint, {
35099
35127
  method: "POST",
35100
35128
  headers: { "Content-Type": "application/json" },
35101
- signal: _optionalChain([ctrl, 'optionalAccess', _862 => _862.signal]),
35129
+ signal: _optionalChain([ctrl, 'optionalAccess', _864 => _864.signal]),
35102
35130
  body: JSON.stringify({
35103
35131
  fileName: att.file.name,
35104
35132
  // Pass the SNIFFED MIME (not `file.type`, which can be a
@@ -35124,9 +35152,9 @@ function useChatAttachments() {
35124
35152
  (pct) => {
35125
35153
  updateOne(att.id, { progress: pct });
35126
35154
  },
35127
- _optionalChain([ctrl, 'optionalAccess', _863 => _863.signal])
35155
+ _optionalChain([ctrl, 'optionalAccess', _865 => _865.signal])
35128
35156
  );
35129
- if (_optionalChain([ctrl, 'optionalAccess', _864 => _864.signal, 'access', _865 => _865.aborted])) return;
35157
+ if (_optionalChain([ctrl, 'optionalAccess', _866 => _866.signal, 'access', _867 => _867.aborted])) return;
35130
35158
  updateOne(att.id, {
35131
35159
  status: "ready",
35132
35160
  progress: 100,
@@ -35134,7 +35162,7 @@ function useChatAttachments() {
35134
35162
  viewToken: mintData.viewToken
35135
35163
  });
35136
35164
  } catch (err) {
35137
- if (_optionalChain([ctrl, 'optionalAccess', _866 => _866.signal, 'access', _867 => _867.aborted])) return;
35165
+ if (_optionalChain([ctrl, 'optionalAccess', _868 => _868.signal, 'access', _869 => _869.aborted])) return;
35138
35166
  const message2 = err instanceof Error ? err.message : String(err);
35139
35167
  updateOne(att.id, { status: "error", progress: 0, errorMessage: message2 });
35140
35168
  } finally {
@@ -35285,7 +35313,7 @@ var ANON_DEFAULTS = {
35285
35313
  function useResolveChatIdentity(enabled) {
35286
35314
  const runtime = _chunkAQOWFSMBcjs.useRequiredChatRuntime.call(void 0, );
35287
35315
  const url = runtime.endpoints.identityUrl;
35288
- const proxyEmail = _nullishCoalesce(_optionalChain([_chunkYETA25JWcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _868 => _868.email]), () => ( null));
35316
+ const proxyEmail = _nullishCoalesce(_optionalChain([_chunkYETA25JWcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _870 => _870.email]), () => ( null));
35289
35317
  const [data, setData] = _react.useState.call(void 0, ANON_DEFAULTS);
35290
35318
  const [isLoading, setIsLoading] = _react.useState.call(void 0, enabled);
35291
35319
  _react.useEffect.call(void 0, () => {
@@ -35373,7 +35401,7 @@ function useSSE({ useMock = true, debugMode = false, streamFn } = {}) {
35373
35401
  yield chunk;
35374
35402
  }
35375
35403
  } catch (err) {
35376
- if (_optionalChain([err, 'optionalAccess', _869 => _869.name]) === "AbortError" || ctrl.signal.aborted) {
35404
+ if (_optionalChain([err, 'optionalAccess', _871 => _871.name]) === "AbortError" || ctrl.signal.aborted) {
35377
35405
  return;
35378
35406
  }
35379
35407
  const errorMessage = err instanceof Error ? err.message : "An error occurred";
@@ -35424,7 +35452,7 @@ function useChat({
35424
35452
  const onMessagesChangeRef = _react.useRef.call(void 0, onMessagesChange);
35425
35453
  onMessagesChangeRef.current = onMessagesChange;
35426
35454
  _react.useEffect.call(void 0, () => {
35427
- _optionalChain([onMessagesChangeRef, 'access', _870 => _870.current, 'optionalCall', _871 => _871(messages)]);
35455
+ _optionalChain([onMessagesChangeRef, 'access', _872 => _872.current, 'optionalCall', _873 => _873(messages)]);
35428
35456
  }, [messages]);
35429
35457
  const {
35430
35458
  streamMessage,
@@ -35461,7 +35489,7 @@ function useChat({
35461
35489
  name: "You",
35462
35490
  content: text,
35463
35491
  timestamp: /* @__PURE__ */ new Date(),
35464
- ..._optionalChain([options, 'optionalAccess', _872 => _872.hidden]) ? { hidden: true } : {}
35492
+ ..._optionalChain([options, 'optionalAccess', _874 => _874.hidden]) ? { hidden: true } : {}
35465
35493
  };
35466
35494
  addMessage(userMessage);
35467
35495
  setIsTyping(true);
@@ -35523,7 +35551,7 @@ function useChat({
35523
35551
  currentTextSegment = "";
35524
35552
  }
35525
35553
  const seg = segment;
35526
- const proposalId = _optionalChain([seg, 'access', _873 => _873.data, 'optionalAccess', _874 => _874.requestId]);
35554
+ const proposalId = _optionalChain([seg, 'access', _875 => _875.data, 'optionalAccess', _876 => _876.requestId]);
35527
35555
  const updateApprovalMessage = (transform) => {
35528
35556
  setMessages((prev) => {
35529
35557
  for (let i = prev.length - 1; i >= 0; i--) {
@@ -35532,7 +35560,7 @@ function useChat({
35532
35560
  if (!Array.isArray(m.content)) continue;
35533
35561
  const segments = m.content;
35534
35562
  const hasMatch = segments.some(
35535
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _875 => _875.data, 'optionalAccess', _876 => _876.requestId]) === proposalId
35563
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _877 => _877.data, 'optionalAccess', _878 => _878.requestId]) === proposalId
35536
35564
  );
35537
35565
  if (!hasMatch) continue;
35538
35566
  const next = [...prev];
@@ -35574,11 +35602,11 @@ function useChat({
35574
35602
  if (!Array.isArray(m.content)) continue;
35575
35603
  const segments = m.content;
35576
35604
  const hasMatch = segments.some(
35577
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _877 => _877.data, 'optionalAccess', _878 => _878.requestId]) === decision.proposalId
35605
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _879 => _879.data, 'optionalAccess', _880 => _880.requestId]) === decision.proposalId
35578
35606
  );
35579
35607
  if (!hasMatch) continue;
35580
35608
  const flipped = segments.map(
35581
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _879 => _879.data, 'optionalAccess', _880 => _880.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
35609
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _881 => _881.data, 'optionalAccess', _882 => _882.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
35582
35610
  );
35583
35611
  const next = [...prev];
35584
35612
  next[i] = { ...m, content: flipped };
@@ -35740,8 +35768,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
35740
35768
  })),
35741
35769
  { role: "user", content: message2 }
35742
35770
  ];
35743
- const targetPath = _optionalChain([extra, 'optionalAccess', _881 => _881.approvalAction]) ? endpoints.approvalToolUrl : endpoints.chatStreamUrl;
35744
- const requestBody = _optionalChain([extra, 'optionalAccess', _882 => _882.approvalAction]) ? {
35771
+ const targetPath = _optionalChain([extra, 'optionalAccess', _883 => _883.approvalAction]) ? endpoints.approvalToolUrl : endpoints.chatStreamUrl;
35772
+ const requestBody = _optionalChain([extra, 'optionalAccess', _884 => _884.approvalAction]) ? {
35745
35773
  proposal_id: extra.approvalAction.proposalId,
35746
35774
  action: extra.approvalAction.action,
35747
35775
  messages: currentMessages.filter((m) => (m.role === "user" || m.role === "assistant") && !m.hidden).map((m) => ({
@@ -35750,8 +35778,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
35750
35778
  }))
35751
35779
  } : {
35752
35780
  messages: apiMessages,
35753
- ..._optionalChain([extra, 'optionalAccess', _883 => _883.commandOverride]) ? { commandOverride: extra.commandOverride } : {},
35754
- ..._optionalChain([extra, 'optionalAccess', _884 => _884.pendingAttachments]) && extra.pendingAttachments.length > 0 ? { pendingAttachments: extra.pendingAttachments } : {}
35781
+ ..._optionalChain([extra, 'optionalAccess', _885 => _885.commandOverride]) ? { commandOverride: extra.commandOverride } : {},
35782
+ ..._optionalChain([extra, 'optionalAccess', _886 => _886.pendingAttachments]) && extra.pendingAttachments.length > 0 ? { pendingAttachments: extra.pendingAttachments } : {}
35755
35783
  };
35756
35784
  const response = await _chunkYETA25JWcjs.embedAuthedFetch.call(void 0, targetPath, {
35757
35785
  method: "POST",
@@ -35761,7 +35789,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
35761
35789
  if (!response.ok) {
35762
35790
  throw new Error(`Chat request failed: ${response.status}`);
35763
35791
  }
35764
- const reader = _optionalChain([response, 'access', _885 => _885.body, 'optionalAccess', _886 => _886.getReader, 'call', _887 => _887()]);
35792
+ const reader = _optionalChain([response, 'access', _887 => _887.body, 'optionalAccess', _888 => _888.getReader, 'call', _889 => _889()]);
35765
35793
  if (!reader) throw new Error("No response body");
35766
35794
  const decoder = new TextDecoder();
35767
35795
  let buffer = "";
@@ -35844,7 +35872,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
35844
35872
  const toolName = typeof meta.tool_name === "string" ? meta.tool_name : void 0;
35845
35873
  const result = _nullishCoalesce(meta.result, () => ( null));
35846
35874
  const card = _nullishCoalesce(meta.card, () => ( null));
35847
- if (_optionalChain([card, 'optionalAccess', _888 => _888.ref, 'optionalAccess', _889 => _889.id]) && _optionalChain([card, 'optionalAccess', _890 => _890.type])) {
35875
+ if (_optionalChain([card, 'optionalAccess', _890 => _890.ref, 'optionalAccess', _891 => _891.id]) && _optionalChain([card, 'optionalAccess', _892 => _892.type])) {
35848
35876
  const existing = _nullishCoalesce(refsMapRef.current.get(sendIdx), () => ( {}));
35849
35877
  const key = buildChatRefKey(card.type, card.ref.id);
35850
35878
  refsMapRef.current.set(sendIdx, { ...existing, [key]: card.ref });
@@ -35857,8 +35885,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
35857
35885
  willAutoContinue: meta.willAutoContinue === true,
35858
35886
  ...toolName ? { toolName } : {},
35859
35887
  ...result ? { result } : {},
35860
- ..._optionalChain([card, 'optionalAccess', _891 => _891.marker]) ? { marker: card.marker } : {},
35861
- ..._optionalChain([card, 'optionalAccess', _892 => _892.ref]) ? { cardRef: card.ref } : {},
35888
+ ..._optionalChain([card, 'optionalAccess', _893 => _893.marker]) ? { marker: card.marker } : {},
35889
+ ..._optionalChain([card, 'optionalAccess', _894 => _894.ref]) ? { cardRef: card.ref } : {},
35862
35890
  ...typeof meta.receiptText === "string" ? { receiptText: meta.receiptText } : {},
35863
35891
  proposalId: typeof meta.proposalId === "string" ? meta.proposalId : void 0
35864
35892
  };
@@ -35977,7 +36005,7 @@ var DEFAULT_CHAT_SOURCE = "embed";
35977
36005
  var chatStorageKey = (source) => {
35978
36006
  const base = `mingo-chat-${source}-v${CHAT_STORAGE_VERSION}`;
35979
36007
  const auth = _chunkYETA25JWcjs.getEmbedProxyAuth.call(void 0, );
35980
- if (_optionalChain([auth, 'optionalAccess', _893 => _893.email])) {
36008
+ if (_optionalChain([auth, 'optionalAccess', _895 => _895.email])) {
35981
36009
  return `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}`;
35982
36010
  }
35983
36011
  return base;
@@ -36032,7 +36060,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
36032
36060
  const { active = true } = runtimeOptions;
36033
36061
  const runtime = _chunkAQOWFSMBcjs.useRequiredChatRuntime.call(void 0, );
36034
36062
  const source = runtime.source || DEFAULT_CHAT_SOURCE;
36035
- const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _894 => _894.tableIdForDocumentType]), () => ( _chunkY4JNA4W6cjs.defaultTableIdForDocumentType));
36063
+ const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _896 => _896.tableIdForDocumentType]), () => ( _chunkY4JNA4W6cjs.defaultTableIdForDocumentType));
36036
36064
  const persistedRef = _react.useRef.call(void 0, null);
36037
36065
  if (persistedRef.current === null) {
36038
36066
  pruneStaleChatStorage(source);
@@ -36137,7 +36165,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
36137
36165
  const lookupIdx = sendIdx >= 0 ? sendIdx : 0;
36138
36166
  sources = sourcesMapRef.current.get(lookupIdx);
36139
36167
  chatRefs = _nullishCoalesce(m.chatRefs, () => ( refsMapRef.current.get(lookupIdx)));
36140
- scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access', _895 => _895.current, 'access', _896 => _896.get, 'call', _897 => _897(lookupIdx), 'optionalAccess', _898 => _898.scrollAnchor]), () => ( void 0));
36168
+ scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access', _897 => _897.current, 'access', _898 => _898.get, 'call', _899 => _899(lookupIdx), 'optionalAccess', _900 => _900.scrollAnchor]), () => ( void 0));
36141
36169
  }
36142
36170
  return {
36143
36171
  id: m.id,
@@ -36185,7 +36213,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
36185
36213
  );
36186
36214
  return;
36187
36215
  }
36188
- const refSlug = typeof _optionalChain([reference, 'access', _899 => _899.metadata, 'optionalAccess', _900 => _900.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
36216
+ const refSlug = typeof _optionalChain([reference, 'access', _901 => _901.metadata, 'optionalAccess', _902 => _902.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
36189
36217
  const queryValue = refSlug || _chunkD6RK5YXXcjs.sanitizeTitleForChat.call(void 0, reference.title) || reference.id;
36190
36218
  const escaped = queryValue.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
36191
36219
  const text = `/${cmdId} display "${escaped}"`;
@@ -36257,18 +36285,18 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
36257
36285
  clearMessages,
36258
36286
  streamingPhase,
36259
36287
  /** Provider key for the lib's `<ModelDisplay>` icon. */
36260
- currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _901 => _901.provider]), () => ( null)),
36261
- currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _902 => _902.modelLabel]), () => ( null)),
36262
- currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _903 => _903.contextWindowMaxTokens]), () => ( null)),
36288
+ currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _903 => _903.provider]), () => ( null)),
36289
+ currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _904 => _904.modelLabel]), () => ( null)),
36290
+ currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _905 => _905.contextWindowMaxTokens]), () => ( null)),
36263
36291
  /** Input tokens (known after server's message_start frame; null until). */
36264
- currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _904 => _904.inputTokens]), () => ( null)),
36292
+ currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _906 => _906.inputTokens]), () => ( null)),
36265
36293
  /** Output tokens (known only after server's trailing usage frame). */
36266
- currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _905 => _905.outputTokens]), () => ( null)),
36294
+ currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _907 => _907.outputTokens]), () => ( null)),
36267
36295
  /** Cache hit % (read / total-input × 100). null during streaming. */
36268
- currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _906 => _906.cacheHitRatePct]), () => ( null)),
36296
+ currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _908 => _908.cacheHitRatePct]), () => ( null)),
36269
36297
  /** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
36270
36298
  * token counts). null until the trailing usage frame lands. */
36271
- currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _907 => _907.breakdown]), () => ( null)),
36299
+ currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _909 => _909.breakdown]), () => ( null)),
36272
36300
  // ─── Dialog management — stubs for v1 ────────────────────────────────
36273
36301
  // Guide mode currently keeps its history in `localStorage` opaquely
36274
36302
  // under the hood (`runtime.source` namespaced key). Surfacing that
@@ -36326,15 +36354,15 @@ var noopRejectRequest = async (_id, _reason) => {
36326
36354
 
36327
36355
  // src/components/chat/utils/process-historical-messages.ts
36328
36356
  function getOwnerDisplayName(owner) {
36329
- if (_optionalChain([owner, 'optionalAccess', _908 => _908.type]) === OWNER_TYPE.ADMIN && owner.user) {
36357
+ if (_optionalChain([owner, 'optionalAccess', _910 => _910.type]) === OWNER_TYPE.ADMIN && owner.user) {
36330
36358
  const { firstName, lastName } = owner.user;
36331
36359
  const name = [firstName, lastName].filter(Boolean).join(" ");
36332
36360
  if (name) return name;
36333
36361
  }
36334
- return _optionalChain([owner, 'optionalAccess', _909 => _909.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
36362
+ return _optionalChain([owner, 'optionalAccess', _911 => _911.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
36335
36363
  }
36336
36364
  function getOwnerAvatar(owner) {
36337
- return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _910 => _910.user, 'optionalAccess', _911 => _911.image, 'optionalAccess', _912 => _912.imageUrl]), () => ( void 0));
36365
+ return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _912 => _912.user, 'optionalAccess', _913 => _913.image, 'optionalAccess', _914 => _914.imageUrl]), () => ( void 0));
36338
36366
  }
36339
36367
  function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
36340
36368
  messageDataArray.forEach((data) => {
@@ -36397,10 +36425,10 @@ function processHistoricalMessages(messages, options = {}) {
36397
36425
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
36398
36426
  return;
36399
36427
  }
36400
- const isUserMessage = _optionalChain([msg, 'access', _913 => _913.owner, 'optionalAccess', _914 => _914.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _915 => _915.owner, 'optionalAccess', _916 => _916.type]) === OWNER_TYPE.ADMIN;
36428
+ const isUserMessage = _optionalChain([msg, 'access', _915 => _915.owner, 'optionalAccess', _916 => _916.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _917 => _917.owner, 'optionalAccess', _918 => _918.type]) === OWNER_TYPE.ADMIN;
36401
36429
  if (isUserMessage) {
36402
36430
  flushAssistantMessage();
36403
- const userAuthorType = _optionalChain([msg, 'access', _917 => _917.owner, 'optionalAccess', _918 => _918.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
36431
+ const userAuthorType = _optionalChain([msg, 'access', _919 => _919.owner, 'optionalAccess', _920 => _920.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
36404
36432
  messageDataArray.forEach((data) => {
36405
36433
  if (data.type === _chunkD6RK5YXXcjs.MESSAGE_TYPE.TEXT && "text" in data && data.text) {
36406
36434
  processedMessages.push({
@@ -36425,7 +36453,7 @@ function processHistoricalMessages(messages, options = {}) {
36425
36453
  });
36426
36454
  const nextMsg = messages[index + 1];
36427
36455
  const isLastMessage = index === messages.length - 1;
36428
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _919 => _919.owner, 'optionalAccess', _920 => _920.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _921 => _921.owner, 'optionalAccess', _922 => _922.type]) === OWNER_TYPE.ADMIN);
36456
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _921 => _921.owner, 'optionalAccess', _922 => _922.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _923 => _923.owner, 'optionalAccess', _924 => _924.type]) === OWNER_TYPE.ADMIN);
36429
36457
  if (isLastMessage || nextIsFromUser) {
36430
36458
  flushAssistantMessage();
36431
36459
  }
@@ -36535,7 +36563,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
36535
36563
  }
36536
36564
  }
36537
36565
  } else {
36538
- _optionalChain([escalatedApprovals, 'optionalAccess', _923 => _923.set, 'call', _924 => _924(data.approvalRequestId, {
36566
+ _optionalChain([escalatedApprovals, 'optionalAccess', _925 => _925.set, 'call', _926 => _926(data.approvalRequestId, {
36539
36567
  command: data.command || "",
36540
36568
  explanation: data.explanation,
36541
36569
  approvalType,
@@ -36549,8 +36577,8 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
36549
36577
  const existingStatus = approvalStatuses[data.approvalRequestId];
36550
36578
  const status = existingStatus || (data.approved ? "approved" : "rejected");
36551
36579
  const resolvedByName = "resolvedByName" in data ? data.resolvedByName : void 0;
36552
- const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _925 => _925.get, 'call', _926 => _926(data.approvalRequestId)]);
36553
- if (_optionalChain([escalatedData, 'optionalAccess', _927 => _927.toolCalls]) && escalatedData.toolCalls.length > 0) {
36580
+ const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _927 => _927.get, 'call', _928 => _928(data.approvalRequestId)]);
36581
+ if (_optionalChain([escalatedData, 'optionalAccess', _929 => _929.toolCalls]) && escalatedData.toolCalls.length > 0) {
36554
36582
  if (batchApprovalsEnabled) {
36555
36583
  accumulator.addApprovalBatch(
36556
36584
  data.approvalRequestId,
@@ -36572,7 +36600,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
36572
36600
  );
36573
36601
  }
36574
36602
  }
36575
- _optionalChain([escalatedApprovals, 'optionalAccess', _928 => _928.delete, 'call', _929 => _929(data.approvalRequestId)]);
36603
+ _optionalChain([escalatedApprovals, 'optionalAccess', _930 => _930.delete, 'call', _931 => _931(data.approvalRequestId)]);
36576
36604
  break;
36577
36605
  }
36578
36606
  if (escalatedData) {
@@ -36581,7 +36609,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
36581
36609
  explanation: escalatedData.explanation,
36582
36610
  approvalType: escalatedData.approvalType
36583
36611
  });
36584
- _optionalChain([escalatedApprovals, 'optionalAccess', _930 => _930.delete, 'call', _931 => _931(data.approvalRequestId)]);
36612
+ _optionalChain([escalatedApprovals, 'optionalAccess', _932 => _932.delete, 'call', _933 => _933(data.approvalRequestId)]);
36585
36613
  }
36586
36614
  const before = accumulator.getSegments();
36587
36615
  const after = accumulator.updateApprovalStatus(data.approvalRequestId, status, resolvedByName);
@@ -36597,9 +36625,9 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
36597
36625
  case _chunkD6RK5YXXcjs.MESSAGE_TYPE.ERROR:
36598
36626
  if ("error" in data) {
36599
36627
  let message2;
36600
- if ("details" in data && _optionalChain([data, 'optionalAccess', _932 => _932.details])) {
36628
+ if ("details" in data && _optionalChain([data, 'optionalAccess', _934 => _934.details])) {
36601
36629
  try {
36602
- message2 = _optionalChain([JSON, 'access', _933 => _933.parse, 'call', _934 => _934(data.details), 'optionalAccess', _935 => _935.error, 'optionalAccess', _936 => _936.message]);
36630
+ message2 = _optionalChain([JSON, 'access', _935 => _935.parse, 'call', _936 => _936(data.details), 'optionalAccess', _937 => _937.error, 'optionalAccess', _938 => _938.message]);
36603
36631
  } catch (e39) {
36604
36632
  message2 = data.details;
36605
36633
  }
@@ -36682,10 +36710,10 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
36682
36710
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
36683
36711
  return;
36684
36712
  }
36685
- const isUserMessage = _optionalChain([msg, 'access', _937 => _937.owner, 'optionalAccess', _938 => _938.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _939 => _939.owner, 'optionalAccess', _940 => _940.type]) === OWNER_TYPE.ADMIN;
36713
+ const isUserMessage = _optionalChain([msg, 'access', _939 => _939.owner, 'optionalAccess', _940 => _940.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _941 => _941.owner, 'optionalAccess', _942 => _942.type]) === OWNER_TYPE.ADMIN;
36686
36714
  if (isUserMessage) {
36687
36715
  flushAssistantMessage();
36688
- const userAuthorType = _optionalChain([msg, 'access', _941 => _941.owner, 'optionalAccess', _942 => _942.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
36716
+ const userAuthorType = _optionalChain([msg, 'access', _943 => _943.owner, 'optionalAccess', _944 => _944.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
36689
36717
  messageDataArray.forEach((data) => {
36690
36718
  if (data.type === _chunkD6RK5YXXcjs.MESSAGE_TYPE.TEXT && "text" in data && data.text) {
36691
36719
  processedMessages.push({
@@ -36710,7 +36738,7 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
36710
36738
  });
36711
36739
  const nextMsg = messages[index + 1];
36712
36740
  const isLastMessage = index === messages.length - 1;
36713
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _943 => _943.owner, 'optionalAccess', _944 => _944.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _945 => _945.owner, 'optionalAccess', _946 => _946.type]) === OWNER_TYPE.ADMIN);
36741
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _945 => _945.owner, 'optionalAccess', _946 => _946.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _947 => _947.owner, 'optionalAccess', _948 => _948.type]) === OWNER_TYPE.ADMIN);
36714
36742
  if (isLastMessage || nextIsFromUser) {
36715
36743
  flushAssistantMessage();
36716
36744
  }
@@ -37048,7 +37076,7 @@ function useNatsChatAdapter(config, options = {}) {
37048
37076
  }, [active, fetchDialogs, loadDialogsPage]);
37049
37077
  const sendMessage = _react.useCallback.call(void 0,
37050
37078
  async (text, sendOptions) => {
37051
- const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _947 => _947.hidden]), () => ( false));
37079
+ const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _949 => _949.hidden]), () => ( false));
37052
37080
  setMessages((prev) => [
37053
37081
  ...prev,
37054
37082
  {
@@ -37212,11 +37240,11 @@ function useNatsChatAdapter(config, options = {}) {
37212
37240
  // Tokens: live `token_usage` frame / dialog snapshot (`dialogTokenUsage`).
37213
37241
  // contextWindow uses the dialog's `contextSize` (the "X / Y" denominator,
37214
37242
  // matching the /mingo page). cacheHitRate/breakdown are SSE-only → null.
37215
- currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _948 => _948.provider]), () => ( modelProvider)), () => ( null)),
37216
- currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _949 => _949.modelLabel]), () => ( modelLabel)), () => ( null)),
37217
- currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _950 => _950.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _951 => _951.contextWindowMaxTokens]))), () => ( null)),
37218
- currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _952 => _952.inputTokensSize]), () => ( null)),
37219
- currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _953 => _953.outputTokensSize]), () => ( null)),
37243
+ currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _950 => _950.provider]), () => ( modelProvider)), () => ( null)),
37244
+ currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _951 => _951.modelLabel]), () => ( modelLabel)), () => ( null)),
37245
+ currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _952 => _952.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _953 => _953.contextWindowMaxTokens]))), () => ( null)),
37246
+ currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _954 => _954.inputTokensSize]), () => ( null)),
37247
+ currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _955 => _955.outputTokensSize]), () => ( null)),
37220
37248
  currentCacheHitRatePct: null,
37221
37249
  currentUsageBreakdown: null,
37222
37250
  // Dialog management
@@ -37464,7 +37492,7 @@ function extractIncompleteMessageState(lastMessage) {
37464
37492
  break;
37465
37493
  case "approval_batch": {
37466
37494
  const allDone = !!segment.data.executions && segment.data.toolCalls.every(
37467
- (c) => _optionalChain([segment, 'access', _954 => _954.data, 'access', _955 => _955.executions, 'optionalAccess', _956 => _956[c.toolExecutionRequestId], 'optionalAccess', _957 => _957.status]) === "done"
37495
+ (c) => _optionalChain([segment, 'access', _956 => _956.data, 'access', _957 => _957.executions, 'optionalAccess', _958 => _958[c.toolExecutionRequestId], 'optionalAccess', _959 => _959.status]) === "done"
37468
37496
  );
37469
37497
  if (segment.status !== "rejected" && !allDone) {
37470
37498
  hasIncompleteState = true;
@@ -37489,7 +37517,7 @@ function extractIncompleteMessageState(lastMessage) {
37489
37517
  }
37490
37518
 
37491
37519
  // src/components/chat/utils/history-merge.ts
37492
- var SYNTHETIC_REALTIME_ID_PREFIXES = ["assistant-", "user-", "error-"];
37520
+ var SYNTHETIC_REALTIME_ID_PREFIXES = ["assistant-", "user-", "direct-", "system-", "error-"];
37493
37521
  function isSyntheticRealtimeId(id) {
37494
37522
  return SYNTHETIC_REALTIME_ID_PREFIXES.some((prefix) => id.startsWith(prefix));
37495
37523
  }
@@ -37532,20 +37560,20 @@ function mergeHistoryWithRealtime(input) {
37532
37560
  const seqCoverageKnown = realtimeSeenStreamSeq > 0 && historyMaxStreamSeq > 0;
37533
37561
  const historyCoversRealtime = seqCoverageKnown ? historyMaxStreamSeq >= realtimeSeenStreamSeq : null;
37534
37562
  const trailing = processedHistory[processedHistory.length - 1];
37535
- const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _958 => _958.role]) === "assistant" ? trailing : null;
37536
- const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _959 => _959.content, 'access', _960 => _960.find, 'call', _961 => _961((s) => s.type === "approval_batch"), 'optionalAccess', _962 => _962.data, 'optionalAccess', _963 => _963.approvalRequestId]), () => ( null)) : null;
37563
+ const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _960 => _960.role]) === "assistant" ? trailing : null;
37564
+ const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _961 => _961.content, 'access', _962 => _962.find, 'call', _963 => _963((s) => s.type === "approval_batch"), 'optionalAccess', _964 => _964.data, 'optionalAccess', _965 => _965.approvalRequestId]), () => ( null)) : null;
37537
37565
  let processedToUse = processedHistory;
37538
37566
  const pinnedSyntheticIds = /* @__PURE__ */ new Set();
37539
37567
  const droppedSyntheticIds = /* @__PURE__ */ new Set();
37540
37568
  if (historyBatchId) {
37541
37569
  const batchTwins = existingMessages.filter(
37542
37570
  (m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some(
37543
- (s) => s.type === "approval_batch" && _optionalChain([s, 'access', _964 => _964.data, 'optionalAccess', _965 => _965.approvalRequestId]) === historyBatchId
37571
+ (s) => s.type === "approval_batch" && _optionalChain([s, 'access', _966 => _966.data, 'optionalAccess', _967 => _967.approvalRequestId]) === historyBatchId
37544
37572
  )
37545
37573
  );
37546
37574
  const existingWithSameBatch = _nullishCoalesce(batchTwins.find((m) => m.id === streamingMessageId), () => ( batchTwins[batchTwins.length - 1]));
37547
37575
  if (existingWithSameBatch && Array.isArray(existingWithSameBatch.content)) {
37548
- const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _966 => _966.content])) ? historyTrailingAssistant.content.length : 0;
37576
+ const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _968 => _968.content])) ? historyTrailingAssistant.content.length : 0;
37549
37577
  const realtimeSize = existingWithSameBatch.content.length;
37550
37578
  if (existingWithSameBatch.id === streamingMessageId || realtimeSize > histSize) {
37551
37579
  processedToUse = processedHistory.slice(0, -1);
@@ -37561,16 +37589,16 @@ function mergeHistoryWithRealtime(input) {
37561
37589
  if (pinnedSyntheticIds.has(m.id)) return true;
37562
37590
  if (droppedSyntheticIds.has(m.id)) return false;
37563
37591
  if (processedIds.has(m.id)) return false;
37564
- if (_optionalChain([rawHistoryIds, 'optionalAccess', _967 => _967.has, 'call', _968 => _968(m.id)])) return false;
37592
+ if (_optionalChain([rawHistoryIds, 'optionalAccess', _969 => _969.has, 'call', _970 => _970(m.id)])) return false;
37565
37593
  if (m.role === "user" && m.id.startsWith("optimistic-") && typeof m.content === "string") {
37566
- const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _969 => _969.timestamp, 'optionalAccess', _970 => _970.getTime, 'call', _971 => _971()]), () => ( 0))) <= historyFetchedAt;
37594
+ const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _971 => _971.timestamp, 'optionalAccess', _972 => _972.getTime, 'call', _973 => _973()]), () => ( 0))) <= historyFetchedAt;
37567
37595
  return !(canBeInSnapshot && processedToUse.some((pm) => pm.role === "user" && pm.content === m.content));
37568
37596
  }
37569
37597
  if (isSyntheticRealtimeId(m.id) && m.id !== streamingMessageId) {
37570
37598
  if (m.role === "assistant" && trailingAssistantText && assistantAnswerText(m.content) === trailingAssistantText) {
37571
37599
  return false;
37572
37600
  }
37573
- const covered = typeof m.streamSeq === "number" && historyMaxStreamSeq > 0 ? historyMaxStreamSeq >= m.streamSeq : historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _972 => _972.timestamp, 'optionalAccess', _973 => _973.getTime, 'call', _974 => _974()]), () => ( 0))) <= historyFetchedAt;
37601
+ const covered = typeof m.streamSeq === "number" && historyMaxStreamSeq > 0 ? historyMaxStreamSeq >= m.streamSeq : historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _974 => _974.timestamp, 'optionalAccess', _975 => _975.getTime, 'call', _976 => _976()]), () => ( 0))) <= historyFetchedAt;
37574
37602
  if (covered) return false;
37575
37603
  }
37576
37604
  return true;
@@ -37790,7 +37818,7 @@ function useChatDialogManager({
37790
37818
  const handleConfirmRestore = _react.useCallback.call(void 0, async () => {
37791
37819
  if (restoreTarget) {
37792
37820
  try {
37793
- await _optionalChain([unarchiveDialog, 'optionalCall', _975 => _975(restoreTarget.id)]);
37821
+ await _optionalChain([unarchiveDialog, 'optionalCall', _977 => _977(restoreTarget.id)]);
37794
37822
  } catch (err) {
37795
37823
  console.error("[useChatDialogManager] unarchive failed:", err);
37796
37824
  return;
@@ -38191,7 +38219,7 @@ function EmbeddableChatInner({
38191
38219
  }),
38192
38220
  [commandsUrl]
38193
38221
  );
38194
- const userName = _optionalChain([identityUser, 'optionalAccess', _976 => _976.firstName, 'optionalAccess', _977 => _977.trim, 'call', _978 => _978()]) || _optionalChain([identityUser, 'optionalAccess', _979 => _979.name, 'optionalAccess', _980 => _980.split, 'call', _981 => _981(" "), 'access', _982 => _982[0], 'optionalAccess', _983 => _983.trim, 'call', _984 => _984()]) || void 0;
38222
+ const userName = _optionalChain([identityUser, 'optionalAccess', _978 => _978.firstName, 'optionalAccess', _979 => _979.trim, 'call', _980 => _980()]) || _optionalChain([identityUser, 'optionalAccess', _981 => _981.name, 'optionalAccess', _982 => _982.split, 'call', _983 => _983(" "), 'access', _984 => _984[0], 'optionalAccess', _985 => _985.trim, 'call', _986 => _986()]) || void 0;
38195
38223
  const effectiveModes = _react.useMemo.call(void 0, () => {
38196
38224
  if (modes) return modes;
38197
38225
  const guideOptions = tableIdForDocumentType ? { tableIdForDocumentType } : {};
@@ -38200,17 +38228,17 @@ function EmbeddableChatInner({
38200
38228
  const mingoCaps = _react.useMemo.call(void 0, () => {
38201
38229
  if (mingoState) {
38202
38230
  return {
38203
- canRename: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _985 => _985.canRename]), () => ( false)),
38204
- canArchive: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _986 => _986.canArchive]), () => ( false)),
38205
- fetchArchivedDialogs: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _987 => _987.fetchArchivedDialogs]),
38206
- unarchiveDialog: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _988 => _988.unarchiveDialog])
38231
+ canRename: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _987 => _987.canRename]), () => ( false)),
38232
+ canArchive: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _988 => _988.canArchive]), () => ( false)),
38233
+ fetchArchivedDialogs: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _989 => _989.fetchArchivedDialogs]),
38234
+ unarchiveDialog: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _990 => _990.unarchiveDialog])
38207
38235
  };
38208
38236
  }
38209
38237
  return {
38210
- canRename: !!_optionalChain([effectiveModes, 'access', _989 => _989.mingo, 'optionalAccess', _990 => _990.renameDialog]),
38211
- canArchive: !!_optionalChain([effectiveModes, 'access', _991 => _991.mingo, 'optionalAccess', _992 => _992.archiveDialog]),
38212
- fetchArchivedDialogs: _optionalChain([effectiveModes, 'access', _993 => _993.mingo, 'optionalAccess', _994 => _994.fetchArchivedDialogs]),
38213
- unarchiveDialog: _optionalChain([effectiveModes, 'access', _995 => _995.mingo, 'optionalAccess', _996 => _996.unarchiveDialog])
38238
+ canRename: !!_optionalChain([effectiveModes, 'access', _991 => _991.mingo, 'optionalAccess', _992 => _992.renameDialog]),
38239
+ canArchive: !!_optionalChain([effectiveModes, 'access', _993 => _993.mingo, 'optionalAccess', _994 => _994.archiveDialog]),
38240
+ fetchArchivedDialogs: _optionalChain([effectiveModes, 'access', _995 => _995.mingo, 'optionalAccess', _996 => _996.fetchArchivedDialogs]),
38241
+ unarchiveDialog: _optionalChain([effectiveModes, 'access', _997 => _997.mingo, 'optionalAccess', _998 => _998.unarchiveDialog])
38214
38242
  };
38215
38243
  }, [mingoState, mingoDialogCapabilities, effectiveModes]);
38216
38244
  const hasMingoMode = !!effectiveModes.mingo || !!mingoState;
@@ -38222,7 +38250,7 @@ function EmbeddableChatInner({
38222
38250
  if (controlledActiveMode === void 0) {
38223
38251
  setUncontrolledActiveMode(next);
38224
38252
  }
38225
- _optionalChain([onActiveModeChange, 'optionalCall', _997 => _997(next)]);
38253
+ _optionalChain([onActiveModeChange, 'optionalCall', _999 => _999(next)]);
38226
38254
  },
38227
38255
  [controlledActiveMode, onActiveModeChange]
38228
38256
  );
@@ -38276,7 +38304,7 @@ function EmbeddableChatInner({
38276
38304
  clear: clearAttachments
38277
38305
  } = useChatAttachments();
38278
38306
  const { panelRef: galleryPanelRef, modal: galleryModal } = useChatAttachmentImageGallery();
38279
- const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _998 => _998.maxItems]), () => ( 10));
38307
+ const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1000 => _1000.maxItems]), () => ( 10));
38280
38308
  const contextPickerForMode = activeMode === "mingo" ? contextPicker : void 0;
38281
38309
  const [contextItems, setContextItems] = _react.useState.call(void 0, []);
38282
38310
  const [contextPickerOpen, setContextPickerOpen] = _react.useState.call(void 0, false);
@@ -38300,7 +38328,7 @@ function EmbeddableChatInner({
38300
38328
  );
38301
38329
  const grows = !alreadySelected && !mentionKeyRef.current;
38302
38330
  if (grows && contextItems.length >= contextMaxItems) return;
38303
- _optionalChain([chatInputRef, 'access', _999 => _999.current, 'optionalAccess', _1000 => _1000.commitMention, 'call', _1001 => _1001(key)]);
38331
+ _optionalChain([chatInputRef, 'access', _1001 => _1001.current, 'optionalAccess', _1002 => _1002.commitMention, 'call', _1003 => _1003(key)]);
38304
38332
  setContextItems((prev) => {
38305
38333
  const withoutPrevMention = mentionKeyRef.current ? prev.filter((p) => `${p.type}:${p.id}` !== mentionKeyRef.current) : prev;
38306
38334
  const deduped = withoutPrevMention.filter(
@@ -38325,9 +38353,9 @@ function EmbeddableChatInner({
38325
38353
  setContextItems((prev) => prev.filter((p) => `${p.type}:${p.id}` !== key));
38326
38354
  if (mentionKeyRef.current === key) {
38327
38355
  mentionKeyRef.current = null;
38328
- const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _1002 => _1002.current, 'optionalAccess', _1003 => _1003.getValue, 'call', _1004 => _1004()]), () => ( ""));
38356
+ const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _1004 => _1004.current, 'optionalAccess', _1005 => _1005.getValue, 'call', _1006 => _1006()]), () => ( ""));
38329
38357
  const next = cur.replace(`@${key}`, "").replace(/\s{2,}/g, " ").trimStart();
38330
- _optionalChain([chatInputRef, 'access', _1005 => _1005.current, 'optionalAccess', _1006 => _1006.setValue, 'call', _1007 => _1007(next)]);
38358
+ _optionalChain([chatInputRef, 'access', _1007 => _1007.current, 'optionalAccess', _1008 => _1008.setValue, 'call', _1009 => _1009(next)]);
38331
38359
  }
38332
38360
  }, []);
38333
38361
  const handleContextValueChange = _react.useCallback.call(void 0, (value) => {
@@ -38344,7 +38372,7 @@ function EmbeddableChatInner({
38344
38372
  }, []);
38345
38373
  const closeContextPicker = _react.useCallback.call(void 0, () => {
38346
38374
  if (mentionActiveRef.current) {
38347
- _optionalChain([chatInputRef, 'access', _1008 => _1008.current, 'optionalAccess', _1009 => _1009.removeMentionTrigger, 'call', _1010 => _1010()]);
38375
+ _optionalChain([chatInputRef, 'access', _1010 => _1010.current, 'optionalAccess', _1011 => _1011.removeMentionTrigger, 'call', _1012 => _1012()]);
38348
38376
  }
38349
38377
  setContextPickerOpen(false);
38350
38378
  setMentionQuery(null);
@@ -38353,7 +38381,7 @@ function EmbeddableChatInner({
38353
38381
  setMentionQuery(query);
38354
38382
  setContextPickerOpen(query !== null);
38355
38383
  }, []);
38356
- const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess', _1011 => _1011.entityTypes]);
38384
+ const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess', _1013 => _1013.entityTypes]);
38357
38385
  const resolveContextIcon = _react.useMemo.call(void 0, () => {
38358
38386
  const byType = /* @__PURE__ */ new Map();
38359
38387
  for (const t of _nullishCoalesce(contextEntityTypes, () => ( []))) byType.set(t.type, t.icon);
@@ -38531,9 +38559,9 @@ function EmbeddableChatInner({
38531
38559
  const lastAssistantMsg = [...rawMessages].reverse().find((m) => m.role === "assistant");
38532
38560
  const lastSources = _react.useMemo.call(void 0, () => {
38533
38561
  if (chatLoading) return void 0;
38534
- const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _1012 => _1012.sources]);
38562
+ const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _1014 => _1014.sources]);
38535
38563
  if (!sources || sources.length === 0) return void 0;
38536
- const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _1013 => _1013.content]) || "";
38564
+ const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _1015 => _1015.content]) || "";
38537
38565
  const citationOrder = [...content.matchAll(/\[(\d+)\]/g)].map(
38538
38566
  (m) => parseInt(m[1], 10)
38539
38567
  );
@@ -38580,7 +38608,7 @@ function EmbeddableChatInner({
38580
38608
  ChatPanelHeader,
38581
38609
  {
38582
38610
  showBack: hasConversation || guideCanReturnToMingo,
38583
- title: hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _1014 => _1014.title]) || "New Chat" : isGuideEmpty ? "Mingo Guide" : "Current Chats",
38611
+ title: hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _1016 => _1016.title]) || "New Chat" : isGuideEmpty ? "Mingo Guide" : "Current Chats",
38584
38612
  backAriaLabel: hasConversation ? isViewingArchived ? "Back to archive" : "Back" : "Back to Mingo",
38585
38613
  isArchivedView: isViewingArchived,
38586
38614
  onBack: hasConversation ? handleBack : () => handleActiveModeChange("mingo"),
@@ -38686,7 +38714,7 @@ function EmbeddableChatInner({
38686
38714
  subtitle: _nullishCoalesce(effectiveGreeting, () => ( void 0)),
38687
38715
  subtitleLoading: emptyStateLoading,
38688
38716
  ...guideWelcome,
38689
- quickActions: _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess', _1015 => _1015.quickActions]), () => ( guideSuggestedActions)),
38717
+ quickActions: _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess', _1017 => _1017.quickActions]), () => ( guideSuggestedActions)),
38690
38718
  onQuickAction: (action) => {
38691
38719
  handleSend(_nullishCoalesce(action.prompt, () => ( action.label)));
38692
38720
  },
@@ -39434,4 +39462,4 @@ function EmbeddableChatInner({
39434
39462
 
39435
39463
 
39436
39464
  exports.Label = Label; exports.AllowedDomainsInput = AllowedDomainsInput; exports.Autocomplete = Autocomplete; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.Select = Select; exports.SelectGroup = SelectGroup; exports.SelectValue = SelectValue; exports.SelectTrigger = SelectTrigger; exports.SelectScrollUpButton = SelectScrollUpButton; exports.SelectScrollDownButton = SelectScrollDownButton; exports.SelectContent = SelectContent; exports.SelectLabel = SelectLabel; exports.SelectItem = SelectItem; exports.SelectSeparator = SelectSeparator; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.HoneypotField = HoneypotField; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.InputTrigger = InputTrigger; exports.InteractiveCard = InteractiveCard; exports.MediaTypeSelector = MediaTypeSelector; exports.noDataIconClasses = noDataIconClasses; exports.noDataActionsVariants = noDataActionsVariants; exports.NoDataMessage = NoDataMessage; exports.NoDataAction = NoDataAction; exports.NoDataActions = NoDataActions; exports.NoData = NoData; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.Switch = Switch; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.ImageGalleryModal = ImageGalleryModal; exports.Modal = Modal2; exports.ModalContent = ModalContent2; exports.ModalHeader = ModalHeader2; exports.ModalTitle = ModalTitle2; exports.ModalFooter = ModalFooter2; exports.Modal2 = Modal; exports.ModalContent2 = ModalContent; exports.ModalHeader2 = ModalHeader; exports.ModalTitle2 = ModalTitle; exports.ModalFooter2 = ModalFooter; exports.Separator = Separator2; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; 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.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.Progress = Progress; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.StatusIndicator = StatusIndicator; exports.HoverDropdown = HoverDropdown; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.ThinkingDisplay = ThinkingDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.ColorSwatch = ColorSwatch; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.kindToCanonicalStatus = kindToCanonicalStatus; exports.usesCanonicalStatusStyle = usesCanonicalStatusStyle; exports.resolveStatusTagProps = resolveStatusTagProps; exports.TicketStatusTag = TicketStatusTag; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.ChatTypingIndicator = ChatTypingIndicator; exports.MingoOnboardingCard = MingoOnboardingCard; exports.ONBOARDING_ICONS = ONBOARDING_ICONS; exports.resolveOnboardingIcon = resolveOnboardingIcon; exports.ONBOARDING_ICON_OPTIONS = ONBOARDING_ICON_OPTIONS; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.BlockCard = BlockCard; 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.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageSkeleton = ChatMessageSkeleton; exports.ChatMessageListSkeleton = ChatMessageListSkeleton; exports.ChatMessageList = ChatMessageList; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.ChatQuickAction = ChatQuickAction; exports.ChatQuickActionRow = ChatQuickActionRow; exports.ChatQuickActionRowSkeleton = ChatQuickActionRowSkeleton; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.MingoChatHistorySkeleton = MingoChatHistorySkeleton; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; exports.GuideModeBanner = GuideModeBanner; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.COMPACT_HEADER_BUTTON = COMPACT_HEADER_BUTTON; exports.ChatPanelHeader = ChatPanelHeader; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.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.executeNavigation = executeNavigation; exports.executeNavigationImperative = executeNavigationImperative; exports.handleChatNavClick = handleChatNavClick; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.FlamingoLogo = FlamingoLogo; exports.OpenmspLogo = OpenmspLogo; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.getProxiedImageUrl = getProxiedImageUrl2; exports.WhatIShippedCard = WhatIShippedCard; exports.WhatIShippedCardSkeleton = WhatIShippedCardSkeleton; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.defaultBuildProductReleaseCardProps = defaultBuildProductReleaseCardProps; exports.buildProductReleaseCardProps = buildProductReleaseCardProps; exports.BlogCardSkeleton = BlogCardSkeleton; exports.BlogCard = BlogCard; exports.CaseStudyCardSkeleton = CaseStudyCardSkeleton; exports.CaseStudyCard = CaseStudyCard; exports.CustomerInterviewCardSkeleton = CustomerInterviewCardSkeleton; exports.CustomerInterviewCard = CustomerInterviewCard; exports.formatInvestorUpdatePeriod = formatInvestorUpdatePeriod; exports.InvestorUpdateCardSkeleton = InvestorUpdateCardSkeleton; exports.InvestorUpdateCard = InvestorUpdateCard; exports.RoadmapVoteButton = RoadmapVoteButton; exports.TaskTypeIcon = TaskTypeIcon; exports.RoadmapCardSkeleton = RoadmapCardSkeleton; exports.RoadmapCard = RoadmapCard; 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.ProgramCardSkeleton = ProgramCardSkeleton; exports.ProgramCard = ProgramCard; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.useChatCardItem = useChatCardItem; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; 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.CONNECTION_STATUS = CONNECTION_STATUS; exports.buildChatRefKey = buildChatRefKey; exports.isStructuredContent = isStructuredContent; exports.normalizeContent = normalizeContent2; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.transformEventToProgram = transformEventToProgram; exports.transformPodcastToProgram = transformPodcastToProgram; exports.transformWebinarToProgram = transformWebinarToProgram; exports.useChunkCatchup = useChunkCatchup; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.parseChunkToAction = parseChunkToAction; exports.isControlChunk = isControlChunk; exports.isErrorChunk = isErrorChunk; exports.isMetadataChunk = isMetadataChunk; exports.extractTextFromChunk = extractTextFromChunk; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.useRealtimeChunkProcessor = useRealtimeChunkProcessor; 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.useSseChatAdapter = useSseChatAdapter; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useUnifiedChat = useUnifiedChat; exports.extractIncompleteMessageState = extractIncompleteMessageState; 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.EmbeddableChat = EmbeddableChat; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.TruncateText = TruncateText; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationPrevious = PaginationPrevious; exports.PaginationNext = PaginationNext; exports.init_pagination = init_pagination; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.PlatformFilterComponent = PlatformFilterComponent; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.VideoSourceSelector = VideoSourceSelector; exports.ConfidenceBadge = ConfidenceBadge; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.NotificationPopups = NotificationPopups; exports.ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE; exports.isApprovalNotification = isApprovalNotification; exports.getApprovalMeta = getApprovalMeta; exports.resolutionToStatus = resolutionToStatus; exports.approvalMetaToBatchData = approvalMetaToBatchData; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.TimeTrackerProvider = TimeTrackerProvider; exports.useTimeTracker = useTimeTracker; exports.useOptionalTimeTracker = useOptionalTimeTracker; exports.useTrackerClock = useTrackerClock; exports.TimeTrackerPanel = TimeTrackerPanel; exports.HeaderButton = HeaderButton; exports.TimeTrackerHeaderButton = TimeTrackerHeaderButton; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.BoardTicketApproval = BoardTicketApproval; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.TicketStatusConfigList = TicketStatusConfigList; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.DataTableHeader = DataTableHeader; exports.DataTableEmpty = DataTableEmpty; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.AssigneeDropdown = AssigneeDropdown; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.Header = Header2; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.MobileNavPanel = MobileNavPanel; exports.SlidingSidebar = SlidingSidebar; exports.NavigationSidebar = NavigationSidebar; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderMingoButton = HeaderMingoButton; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayout = AppLayout; exports.AppLayoutDrawerRoot = AppLayoutDrawerRoot; exports.AppLayoutDrawerTrigger = AppLayoutDrawerTrigger; exports.AppLayoutDrawerClose = AppLayoutDrawerClose; exports.AppLayoutDrawerContent = AppLayoutDrawerContent; exports.AppLayoutDrawerHeader = AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = AppLayoutDrawerTitle; exports.AppLayoutDrawerDescription = AppLayoutDrawerDescription; exports.AppLayoutDrawerBody = AppLayoutDrawerBody; exports.AppLayoutDrawerFooter = AppLayoutDrawerFooter; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.assets = assets;
39437
- //# sourceMappingURL=chunk-OXC72UIP.cjs.map
39465
+ //# sourceMappingURL=chunk-VJ4ZWD5G.cjs.map