@flamingo-stack/openframe-frontend-core 0.0.753 → 0.0.754

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 (60) hide show
  1. package/dist/build/export-map.json +1 -1
  2. package/dist/{chunk-UVTJT5BK.cjs → chunk-BLZIUELR.cjs} +5 -5
  3. package/dist/{chunk-ITQZK3UT.cjs → chunk-BQQ3JGEO.cjs} +3 -3
  4. package/dist/{chunk-ZJ77IOMY.cjs → chunk-DW5OKTUP.cjs} +34 -34
  5. package/dist/{chunk-Y7AZCDLZ.cjs → chunk-EDSFLB7J.cjs} +14 -12
  6. package/dist/{chunk-C6JHDRK3.cjs → chunk-FAFFWYEH.cjs} +4 -4
  7. package/dist/{chunk-RGYLC3US.cjs → chunk-GQYCVZJI.cjs} +2 -2
  8. package/dist/{chunk-W77VPNBJ.cjs → chunk-IVAAQSOU.cjs} +2 -2
  9. package/dist/{chunk-QXQHCX2R.cjs → chunk-JXACH52M.cjs} +2 -2
  10. package/dist/{chunk-J3E5UN2O.cjs → chunk-MOEILCEX.cjs} +3 -3
  11. package/dist/{chunk-R45NJ5ZA.cjs → chunk-OGKV5NOP.cjs} +33 -33
  12. package/dist/{chunk-WIT36ZTN.cjs → chunk-RTQN35EP.cjs} +88 -81
  13. package/dist/{chunk-Z6TUOE6L.cjs → chunk-TBDVF4SN.cjs} +22 -22
  14. package/dist/{chunk-ZGADZHLD.cjs → chunk-TPJTFN7O.cjs} +55 -55
  15. package/dist/{chunk-XSOGT6DF.cjs → chunk-U4I3QR2A.cjs} +9 -9
  16. package/dist/{chunk-XW6WSW36.cjs → chunk-YSFOYBYC.cjs} +76 -76
  17. package/dist/{chunk-JLAYELWS.cjs → chunk-ZNV5FE4T.cjs} +13 -13
  18. package/dist/{cloud-tenants-7LTS4DAP.cjs → cloud-tenants-5OTPO7FL.cjs} +3 -3
  19. package/dist/components/announcement-bar.d.ts +1 -1
  20. package/dist/components/announcement-bar.d.ts.map +1 -1
  21. package/dist/components/announcement-bar.js +3 -1
  22. package/dist/components/case-studies/index.cjs +11 -11
  23. package/dist/components/chat/index.cjs +2 -2
  24. package/dist/components/contact/index.cjs +4 -4
  25. package/dist/components/docs/index.cjs +7 -7
  26. package/dist/components/embeds/index.cjs +4 -4
  27. package/dist/components/faq/index.cjs +5 -5
  28. package/dist/components/features/index.cjs +3 -3
  29. package/dist/components/help-center-pages/index.cjs +53 -53
  30. package/dist/components/index.cjs +34 -32
  31. package/dist/components/meeting-scheduler/index.cjs +19 -19
  32. package/dist/components/navigation/index.cjs +6 -6
  33. package/dist/components/onboarding-guides/index.cjs +5 -5
  34. package/dist/components/product-demo/index.cjs +7 -7
  35. package/dist/components/tickets/index.cjs +8 -8
  36. package/dist/components/ui/index.cjs +3 -3
  37. package/dist/{devices-CGDJAYRB.cjs → devices-MBGMD7BO.cjs} +4 -4
  38. package/dist/index.cjs +11 -7
  39. package/dist/{knowledge-X5I4QJKV.cjs → knowledge-LO5RK6PM.cjs} +3 -3
  40. package/dist/{logs-GDGIRJFI.cjs → logs-QRGJSZ4G.cjs} +11 -11
  41. package/dist/{policies-2UOCENDX.cjs → policies-OIQDO6F5.cjs} +7 -7
  42. package/dist/{scripts-AS4GEG6L.cjs → scripts-XULUNPDV.cjs} +8 -8
  43. package/dist/{software-update-ADPUFMFY.cjs → software-update-SRF55434.cjs} +6 -6
  44. package/dist/types/announcement.cjs +2 -0
  45. package/dist/types/announcement.d.ts +21 -0
  46. package/dist/types/announcement.d.ts.map +1 -1
  47. package/dist/types/announcement.js +2 -0
  48. package/dist/types/index.cjs +2 -0
  49. package/dist/utils/announcement-surface.d.ts +8 -0
  50. package/dist/utils/announcement-surface.d.ts.map +1 -0
  51. package/dist/utils/announcement-surface.js +7 -0
  52. package/dist/utils/index.cjs +7 -0
  53. package/dist/utils/index.d.ts +1 -0
  54. package/dist/utils/index.d.ts.map +1 -1
  55. package/dist/utils/index.js +1 -0
  56. package/package.json +1 -1
  57. package/src/components/announcement-bar.tsx +9 -1
  58. package/src/types/announcement.ts +22 -0
  59. package/src/utils/announcement-surface.ts +14 -0
  60. package/src/utils/index.ts +2 -0
@@ -1186,6 +1186,12 @@ function clearLegacyAnnouncementCache(platform) {
1186
1186
  }
1187
1187
  }
1188
1188
 
1189
+ // src/utils/announcement-surface.ts
1190
+ function isAnnouncementOnSurface(announcement, surface) {
1191
+ const surfaces = announcement.surfaces;
1192
+ return !_optionalChain([surfaces, 'optionalAccess', _26 => _26.length]) || surfaces.includes(surface);
1193
+ }
1194
+
1189
1195
  // src/utils/dismissal-storage.ts
1190
1196
  var WALKTHROUGH_VIDEO_DISMISS_KEY = "walkthrough-video-dismissed";
1191
1197
  function walkthroughDismissCookieName(platform) {
@@ -1250,7 +1256,7 @@ function createSseSubscription(options) {
1250
1256
  if (connected === next) return;
1251
1257
  connected = next;
1252
1258
  try {
1253
- _optionalChain([onConnectedChange, 'optionalCall', _26 => _26(next)]);
1259
+ _optionalChain([onConnectedChange, 'optionalCall', _27 => _27(next)]);
1254
1260
  } catch (err) {
1255
1261
  console.error("[sse-subscription] onConnectedChange threw:", err);
1256
1262
  }
@@ -1266,7 +1272,7 @@ function createSseSubscription(options) {
1266
1272
  if (status !== "open") {
1267
1273
  confirmTimerId = clearLifecycleTimer(confirmTimerId);
1268
1274
  }
1269
- _optionalChain([onStatusChange, 'optionalCall', _27 => _27(status)]);
1275
+ _optionalChain([onStatusChange, 'optionalCall', _28 => _28(status)]);
1270
1276
  };
1271
1277
  const internalReconnect = (delayMs) => {
1272
1278
  failedDelayTimerId = clearLifecycleTimer(failedDelayTimerId);
@@ -1280,7 +1286,7 @@ function createSseSubscription(options) {
1280
1286
  }, delayMs);
1281
1287
  };
1282
1288
  const handleServerStatus = (data) => {
1283
- const status = _optionalChain([data, 'optionalAccess', _28 => _28.status]);
1289
+ const status = _optionalChain([data, 'optionalAccess', _29 => _29.status]);
1284
1290
  if (status === "subscribed") {
1285
1291
  confirmTimerId = clearLifecycleTimer(confirmTimerId);
1286
1292
  serverGraceTimerId = clearLifecycleTimer(serverGraceTimerId);
@@ -1321,7 +1327,7 @@ function createSseSubscription(options) {
1321
1327
  const armSilenceTimer = () => {
1322
1328
  if (silenceTimerId) clearTimeout(silenceTimerId);
1323
1329
  silenceTimerId = setTimeout(() => {
1324
- _optionalChain([abortController, 'optionalAccess', _29 => _29.abort, 'call', _30 => _30()]);
1330
+ _optionalChain([abortController, 'optionalAccess', _30 => _30.abort, 'call', _31 => _31()]);
1325
1331
  }, silenceTimeoutMs);
1326
1332
  };
1327
1333
  const scheduleReconnect = (delayMs) => {
@@ -1474,7 +1480,7 @@ function createSseSubscription(options) {
1474
1480
  generation += 1;
1475
1481
  clearTimers();
1476
1482
  attempt = 0;
1477
- _optionalChain([abortController, 'optionalAccess', _31 => _31.abort, 'call', _32 => _32()]);
1483
+ _optionalChain([abortController, 'optionalAccess', _32 => _32.abort, 'call', _33 => _33()]);
1478
1484
  void connect();
1479
1485
  }
1480
1486
  const suspend = () => {
@@ -1482,7 +1488,7 @@ function createSseSubscription(options) {
1482
1488
  suspended = true;
1483
1489
  generation += 1;
1484
1490
  clearTimers();
1485
- _optionalChain([abortController, 'optionalAccess', _33 => _33.abort, 'call', _34 => _34()]);
1491
+ _optionalChain([abortController, 'optionalAccess', _34 => _34.abort, 'call', _35 => _35()]);
1486
1492
  setStatus("suspended");
1487
1493
  };
1488
1494
  const retryIfStalled = () => {
@@ -1527,15 +1533,15 @@ function createSseSubscription(options) {
1527
1533
  generation += 1;
1528
1534
  clearTimers();
1529
1535
  hiddenGraceTimerId = clearLifecycleTimer(hiddenGraceTimerId);
1530
- _optionalChain([abortController, 'optionalAccess', _35 => _35.abort, 'call', _36 => _36()]);
1536
+ _optionalChain([abortController, 'optionalAccess', _36 => _36.abort, 'call', _37 => _37()]);
1531
1537
  if (listenersActive) {
1532
1538
  document.removeEventListener("visibilitychange", onVisibilityChange);
1533
1539
  window.removeEventListener("online", onOnline);
1534
1540
  window.removeEventListener("focus", retryIfStalled);
1535
1541
  }
1536
- _optionalChain([unsubscribeCredentials, 'optionalCall', _37 => _37()]);
1542
+ _optionalChain([unsubscribeCredentials, 'optionalCall', _38 => _38()]);
1537
1543
  setConnected(false);
1538
- _optionalChain([onStatusChange, 'optionalCall', _38 => _38("closed")]);
1544
+ _optionalChain([onStatusChange, 'optionalCall', _39 => _39("closed")]);
1539
1545
  },
1540
1546
  reconnectNow: () => {
1541
1547
  if (closed) return;
@@ -1547,7 +1553,7 @@ function createSseSubscription(options) {
1547
1553
 
1548
1554
  // src/utils/sse-decision-frame.ts
1549
1555
  async function readLeadingDecisionFrame(response) {
1550
- const reader = _optionalChain([response, 'access', _39 => _39.body, 'optionalAccess', _40 => _40.getReader, 'call', _41 => _41()]);
1556
+ const reader = _optionalChain([response, 'access', _40 => _40.body, 'optionalAccess', _41 => _41.getReader, 'call', _42 => _42()]);
1551
1557
  if (!reader) throw new Error("readLeadingDecisionFrame: response has no body");
1552
1558
  const decoder = new TextDecoder();
1553
1559
  let buffer = "";
@@ -1572,8 +1578,8 @@ async function readLeadingDecisionFrame(response) {
1572
1578
  throw new Error(`readLeadingDecisionFrame: leading JSON parse failed: ${err.message}`);
1573
1579
  }
1574
1580
  const obj = parsed;
1575
- if (_optionalChain([obj, 'optionalAccess', _42 => _42.kind]) !== "decision_resolved") {
1576
- throw new Error(`readLeadingDecisionFrame: expected decision_resolved, got kind=${String(_optionalChain([obj, 'optionalAccess', _43 => _43.kind]))}`);
1581
+ if (_optionalChain([obj, 'optionalAccess', _43 => _43.kind]) !== "decision_resolved") {
1582
+ throw new Error(`readLeadingDecisionFrame: expected decision_resolved, got kind=${String(_optionalChain([obj, 'optionalAccess', _44 => _44.kind]))}`);
1577
1583
  }
1578
1584
  frame = normalizeDecisionFrame(obj);
1579
1585
  buffer = buffer.slice(nullIdx + 1);
@@ -1779,12 +1785,12 @@ var FullscreenSwitchController = class {
1779
1785
  if (fullscreenElementOf(doc)) {
1780
1786
  if (doc.exitFullscreen) doc.exitFullscreen().catch(() => {
1781
1787
  });
1782
- else _optionalChain([doc, 'access', _44 => _44.webkitExitFullscreen, 'optionalCall', _45 => _45()]);
1788
+ else _optionalChain([doc, 'access', _45 => _45.webkitExitFullscreen, 'optionalCall', _46 => _46()]);
1783
1789
  } else {
1784
- const el = _nullishCoalesce(_optionalChain([this, 'access', _46 => _46.opts, 'access', _47 => _47.target, 'optionalCall', _48 => _48()]), () => ( document.documentElement));
1790
+ const el = _nullishCoalesce(_optionalChain([this, 'access', _47 => _47.opts, 'access', _48 => _48.target, 'optionalCall', _49 => _49()]), () => ( document.documentElement));
1785
1791
  if (el.requestFullscreen) el.requestFullscreen({ navigationUI: "hide" }).catch(() => {
1786
1792
  });
1787
- else _optionalChain([el, 'access', _49 => _49.webkitRequestFullscreen, 'optionalCall', _50 => _50()]);
1793
+ else _optionalChain([el, 'access', _50 => _50.webkitRequestFullscreen, 'optionalCall', _51 => _51()]);
1788
1794
  }
1789
1795
  };
1790
1796
  /** Raise the mask + start tracking. Idempotent — safe from the pre-emptive
@@ -1799,7 +1805,7 @@ var FullscreenSwitchController = class {
1799
1805
  window.clearTimeout(this.quietTimer);
1800
1806
  window.clearTimeout(this.capTimer);
1801
1807
  window.removeEventListener("resize", this.onResize);
1802
- _optionalChain([this, 'access', _51 => _51.opts, 'access', _52 => _52.onGeometryPulse, 'optionalCall', _53 => _53()]);
1808
+ _optionalChain([this, 'access', _52 => _52.opts, 'access', _53 => _53.onGeometryPulse, 'optionalCall', _54 => _54()]);
1803
1809
  if (this.opts.switchingClass) document.documentElement.classList.remove(this.opts.switchingClass);
1804
1810
  };
1805
1811
  this.armQuiet = () => {
@@ -1807,7 +1813,7 @@ var FullscreenSwitchController = class {
1807
1813
  this.quietTimer = window.setTimeout(this.endSwitch, _nullishCoalesce(this.opts.quietMs, () => ( DEFAULT_QUIET_MS)));
1808
1814
  };
1809
1815
  this.onResize = () => {
1810
- _optionalChain([this, 'access', _54 => _54.opts, 'access', _55 => _55.onGeometryPulse, 'optionalCall', _56 => _56()]);
1816
+ _optionalChain([this, 'access', _55 => _55.opts, 'access', _56 => _56.onGeometryPulse, 'optionalCall', _57 => _57()]);
1811
1817
  this.armQuiet();
1812
1818
  };
1813
1819
  /** Escape is the one exit path that skips toggle() — pre-mask on the
@@ -1819,7 +1825,7 @@ var FullscreenSwitchController = class {
1819
1825
  const fs = this.isFullscreen;
1820
1826
  if (this.opts.activeClass) document.documentElement.classList.toggle(this.opts.activeClass, fs);
1821
1827
  this.beginSwitch();
1822
- requestAnimationFrame(() => _optionalChain([this, 'access', _57 => _57.opts, 'access', _58 => _58.onGeometryPulse, 'optionalCall', _59 => _59()]));
1828
+ requestAnimationFrame(() => _optionalChain([this, 'access', _58 => _58.opts, 'access', _59 => _59.onGeometryPulse, 'optionalCall', _60 => _60()]));
1823
1829
  this.armQuiet();
1824
1830
  this.opts.onFullscreenChange(fs);
1825
1831
  };
@@ -1833,7 +1839,7 @@ var FullscreenSwitchController = class {
1833
1839
  }
1834
1840
  get isFullscreen() {
1835
1841
  const fs = fullscreenElementOf(document);
1836
- const target = _optionalChain([this, 'access', _60 => _60.opts, 'access', _61 => _61.target, 'optionalCall', _62 => _62()]);
1842
+ const target = _optionalChain([this, 'access', _61 => _61.opts, 'access', _62 => _62.target, 'optionalCall', _63 => _63()]);
1837
1843
  return target ? fs === target : Boolean(fs);
1838
1844
  }
1839
1845
  attach() {
@@ -1880,7 +1886,7 @@ function primaryPlatformOf(platforms) {
1880
1886
  if (!Array.isArray(platforms)) return null;
1881
1887
  for (const entry of platforms) {
1882
1888
  const row = entry;
1883
- const name = _nullishCoalesce(_nullishCoalesce(_optionalChain([row, 'optionalAccess', _63 => _63.platforms, 'optionalAccess', _64 => _64.name]), () => ( _optionalChain([row, 'optionalAccess', _65 => _65.platform_name]))), () => ( _optionalChain([row, 'optionalAccess', _66 => _66.name])));
1889
+ const name = _nullishCoalesce(_nullishCoalesce(_optionalChain([row, 'optionalAccess', _64 => _64.platforms, 'optionalAccess', _65 => _65.name]), () => ( _optionalChain([row, 'optionalAccess', _66 => _66.platform_name]))), () => ( _optionalChain([row, 'optionalAccess', _67 => _67.name])));
1884
1890
  if (typeof name === "string" && name.trim()) return name.trim();
1885
1891
  }
1886
1892
  return null;
@@ -1903,7 +1909,7 @@ function makeComposeContentUrl(opts) {
1903
1909
  const seg = _nullishCoalesce((Object.prototype.hasOwnProperty.call(suffixes, type) ? suffixes[type] : void 0), () => ( type));
1904
1910
  if (opts.hostedTypes.has(type)) {
1905
1911
  const recovered = externalUrl ? lastPathSegment(externalUrl) : null;
1906
- const slug = recovered && recovered !== seg ? recovered : _optionalChain([slugHint, 'optionalAccess', _67 => _67.trim, 'call', _68 => _68()]) || identifier;
1912
+ const slug = recovered && recovered !== seg ? recovered : _optionalChain([slugHint, 'optionalAccess', _68 => _68.trim, 'call', _69 => _69()]) || identifier;
1907
1913
  return { href: `/${seg}/${slug}`, targetPlatform: null };
1908
1914
  }
1909
1915
  if (externalUrl) return { href: externalUrl, targetPlatform: _nullishCoalesce(targetPlatform, () => ( null)) };
@@ -1911,7 +1917,7 @@ function makeComposeContentUrl(opts) {
1911
1917
  const owner = claimedOwner && _chunkSDF5UUTEcjs.byKey.call(void 0, claimedOwner) ? claimedOwner : null;
1912
1918
  const origin = owner ? _chunkSDF5UUTEcjs.getPlatformProductionUrl.call(void 0, owner) : opts.contentOrigin;
1913
1919
  return {
1914
- href: `${origin.replace(/\/+$/, "")}/${seg}/${_optionalChain([slugHint, 'optionalAccess', _69 => _69.trim, 'call', _70 => _70()]) || identifier}`,
1920
+ href: `${origin.replace(/\/+$/, "")}/${seg}/${_optionalChain([slugHint, 'optionalAccess', _70 => _70.trim, 'call', _71 => _71()]) || identifier}`,
1915
1921
  // Report the owner so `decideNewTab` can compare it against the current
1916
1922
  // app instead of falling back to an origin guess (which is unreliable in
1917
1923
  // dev, where every platform shares localhost). `null` whenever the href
@@ -1987,7 +1993,7 @@ function getDocSourceDefaultPath(structure, folderIndexFile = DEFAULT_FOLDER_IND
1987
1993
  const hasRootIndex = structure.some((node) => node.type === "file" && node.path === folderIndexFile);
1988
1994
  if (hasRootIndex) return null;
1989
1995
  const firstFolderWithReadme = structure.find((node) => node.type === "folder" && node.hasReadme && !!node.path);
1990
- return _nullishCoalesce(_optionalChain([firstFolderWithReadme, 'optionalAccess', _71 => _71.path]), () => ( null));
1996
+ return _nullishCoalesce(_optionalChain([firstFolderWithReadme, 'optionalAccess', _72 => _72.path]), () => ( null));
1991
1997
  }
1992
1998
 
1993
1999
  // src/utils/doc-path-utils.ts
@@ -1998,7 +2004,7 @@ function pathToNodeId(path) {
1998
2004
  return path.replace(/[/\s]/g, "-").toLowerCase();
1999
2005
  }
2000
2006
  function normalizeDocPath(segments, folderIndexFile = DEFAULT_FOLDER_INDEX_FILE) {
2001
- const lowerPath = (_optionalChain([segments, 'optionalAccess', _72 => _72.join, 'call', _73 => _73("/")]) || "").toLowerCase();
2007
+ const lowerPath = (_optionalChain([segments, 'optionalAccess', _73 => _73.join, 'call', _74 => _74("/")]) || "").toLowerCase();
2002
2008
  const lowerIndex = folderIndexFile.toLowerCase();
2003
2009
  const suffix = `/${lowerIndex}`;
2004
2010
  if (lowerPath.endsWith(suffix)) return lowerPath.slice(0, -suffix.length);
@@ -2356,7 +2362,7 @@ function isValidPathPattern(pattern) {
2356
2362
  return pattern.trim().length > 0 && compile(pattern.trim()) !== null;
2357
2363
  }
2358
2364
  function matchesPathPattern(pathname, pattern) {
2359
- return _nullishCoalesce(_optionalChain([compile, 'call', _74 => _74(pattern.trim()), 'optionalAccess', _75 => _75.test, 'call', _76 => _76(pathname)]), () => ( false));
2365
+ return _nullishCoalesce(_optionalChain([compile, 'call', _75 => _75(pattern.trim()), 'optionalAccess', _76 => _76.test, 'call', _77 => _77(pathname)]), () => ( false));
2360
2366
  }
2361
2367
  function pathMatchesAny(pathname, patterns) {
2362
2368
  return (_nullishCoalesce(patterns, () => ( []))).some((pattern) => matchesPathPattern(pathname, pattern));
@@ -2403,7 +2409,7 @@ function demoClockTimes(seed, options = {}) {
2403
2409
  // src/components/navigation/mingo-ai-button.tsx
2404
2410
 
2405
2411
  function openAskAi(source, options) {
2406
- const prompt = _optionalChain([options, 'optionalAccess', _77 => _77.prompt, 'optionalAccess', _78 => _78.trim, 'call', _79 => _79()]);
2412
+ const prompt = _optionalChain([options, 'optionalAccess', _78 => _78.prompt, 'optionalAccess', _79 => _79.trim, 'call', _80 => _80()]);
2407
2413
  const detail = prompt ? { source: _nullishCoalesce(source, () => ( "")), prompt } : { source: _nullishCoalesce(source, () => ( "")) };
2408
2414
  window.dispatchEvent(new CustomEvent(_chunkSDF5UUTEcjs.ASK_AI_OPEN_EVENT, { detail }));
2409
2415
  }
@@ -2422,10 +2428,10 @@ function MingoAiButton({
2422
2428
  const inPage = variant === "button";
2423
2429
  const commandKey = visitor.known && _chunkW2RM764Dcjs.usesCommandKey.call(void 0, visitor.os);
2424
2430
  const assistant = _chunkEWPR7662cjs.useAssistantRuntime.call(void 0, );
2425
- const label = _nullishCoalesce(labelProp, () => ( _optionalChain([assistant, 'optionalAccess', _80 => _80.name])));
2426
- const icon = _nullishCoalesce(iconProp, () => ( _optionalChain([assistant, 'optionalAccess', _81 => _81.icon])));
2427
- const runtimeOpen = _optionalChain([assistant, 'optionalAccess', _82 => _82.open]);
2428
- const eventSource = _nullishCoalesce(source, () => ( _optionalChain([assistant, 'optionalAccess', _83 => _83.source])));
2431
+ const label = _nullishCoalesce(labelProp, () => ( _optionalChain([assistant, 'optionalAccess', _81 => _81.name])));
2432
+ const icon = _nullishCoalesce(iconProp, () => ( _optionalChain([assistant, 'optionalAccess', _82 => _82.icon])));
2433
+ const runtimeOpen = _optionalChain([assistant, 'optionalAccess', _83 => _83.open]);
2434
+ const eventSource = _nullishCoalesce(source, () => ( _optionalChain([assistant, 'optionalAccess', _84 => _84.source])));
2429
2435
  const openRef = _react.useRef.call(void 0, () => void 0);
2430
2436
  _react.useEffect.call(void 0, () => {
2431
2437
  openRef.current = () => runtimeOpen ? runtimeOpen({}) : openAskAi(eventSource);
@@ -2455,7 +2461,7 @@ function MingoAiButton({
2455
2461
  onClick: (e) => {
2456
2462
  if (runtimeOpen) runtimeOpen({});
2457
2463
  else openAskAi(eventSource);
2458
- _optionalChain([onClick, 'optionalCall', _84 => _84(e)]);
2464
+ _optionalChain([onClick, 'optionalCall', _85 => _85(e)]);
2459
2465
  },
2460
2466
  className: _chunk3ATAYP36cjs.cn.call(void 0,
2461
2467
  "group/mingo flex shrink-0 justify-start focus-visible:ring-ods-accent",
@@ -2566,10 +2572,10 @@ function QuestionChips({
2566
2572
  const request = { prompt: _nullishCoalesce(prompt.prompt, () => ( prompt.label)) };
2567
2573
  if (onOpen) onOpen(request);
2568
2574
  else openAskAi(source, request);
2569
- _optionalChain([onAsk, 'optionalCall', _85 => _85(prompt)]);
2575
+ _optionalChain([onAsk, 'optionalCall', _86 => _86(prompt)]);
2570
2576
  }
2571
2577
  }
2572
- ) : null }, _nullishCoalesce(_optionalChain([prompt, 'optionalAccess', _86 => _86.id]), () => ( `slot-${slot}`)));
2578
+ ) : null }, _nullishCoalesce(_optionalChain([prompt, 'optionalAccess', _87 => _87.id]), () => ( `slot-${slot}`)));
2573
2579
  }) });
2574
2580
  }
2575
2581
  function AskPrompts({
@@ -2680,7 +2686,7 @@ function buildAskPromptsUrl(base, { count, topic, exclude = [] }) {
2680
2686
  return `${base}${base.includes("?") ? "&" : "?"}${params.toString()}`;
2681
2687
  }
2682
2688
  function assistantAvailable(assistant) {
2683
- return !!_optionalChain([assistant, 'optionalAccess', _87 => _87.available]);
2689
+ return !!_optionalChain([assistant, 'optionalAccess', _88 => _88.available]);
2684
2690
  }
2685
2691
  function useAskPrompts({
2686
2692
  topic,
@@ -2693,12 +2699,12 @@ function useAskPrompts({
2693
2699
  const url = base && enabled ? buildAskPromptsUrl(base, { count, topic, exclude }) : null;
2694
2700
  const { data, dataUrl, error } = _chunkB27XV2TCcjs.useSelfFetch.call(void 0, url);
2695
2701
  const landed = url !== null && (dataUrl === url || error);
2696
- return { prompts: landed ? _nullishCoalesce(_optionalChain([data, 'optionalAccess', _88 => _88.prompts]), () => ( [])) : [], isLoading: !!base && !landed, supported: !!base };
2702
+ return { prompts: landed ? _nullishCoalesce(_optionalChain([data, 'optionalAccess', _89 => _89.prompts]), () => ( [])) : [], isLoading: !!base && !landed, supported: !!base };
2697
2703
  }
2698
2704
  function useAssistantOpen(topic, onOpen) {
2699
2705
  const assistant = _chunkEWPR7662cjs.useAssistantRuntime.call(void 0, );
2700
- const runtimeOpen = _optionalChain([assistant, 'optionalAccess', _89 => _89.open]);
2701
- const source = _optionalChain([assistant, 'optionalAccess', _90 => _90.source]);
2706
+ const runtimeOpen = _optionalChain([assistant, 'optionalAccess', _90 => _90.open]);
2707
+ const source = _optionalChain([assistant, 'optionalAccess', _91 => _91.source]);
2702
2708
  return _react.useCallback.call(void 0,
2703
2709
  (request) => {
2704
2710
  const full = { ...request, topic };
@@ -2724,7 +2730,7 @@ function createAskQueue() {
2724
2730
  },
2725
2731
  settle(surface, ids) {
2726
2732
  const entry = entries.get(surface);
2727
- if (!entry || (_nullishCoalesce(_optionalChain([entry, 'access', _91 => _91.ids, 'optionalAccess', _92 => _92.join, 'call', _93 => _93(",")]), () => ( null))) === (_nullishCoalesce(_optionalChain([ids, 'optionalAccess', _94 => _94.join, 'call', _95 => _95(",")]), () => ( null)))) return;
2733
+ if (!entry || (_nullishCoalesce(_optionalChain([entry, 'access', _92 => _92.ids, 'optionalAccess', _93 => _93.join, 'call', _94 => _94(",")]), () => ( null))) === (_nullishCoalesce(_optionalChain([ids, 'optionalAccess', _95 => _95.join, 'call', _96 => _96(",")]), () => ( null)))) return;
2728
2734
  entry.ids = ids;
2729
2735
  publish();
2730
2736
  },
@@ -2753,7 +2759,7 @@ function createAskQueue() {
2753
2759
  }
2754
2760
  var askQueues = /* @__PURE__ */ new Map();
2755
2761
  function useAskQueue() {
2756
- const scope = _nullishCoalesce(_optionalChain([_chunkEWPR7662cjs.useAssistantRuntime.call(void 0, ), 'optionalAccess', _96 => _96.askPromptsUrl]), () => ( ""));
2762
+ const scope = _nullishCoalesce(_optionalChain([_chunkEWPR7662cjs.useAssistantRuntime.call(void 0, ), 'optionalAccess', _97 => _97.askPromptsUrl]), () => ( ""));
2757
2763
  let queue = askQueues.get(scope);
2758
2764
  if (!queue) {
2759
2765
  queue = createAskQueue();
@@ -2798,8 +2804,8 @@ function useAskSurface({
2798
2804
  }, [queue, surface, settled]);
2799
2805
  const open = useAssistantOpen(topic, onOpen);
2800
2806
  const scoped = _react.useMemo.call(void 0, () => assistant ? { ...assistant, open } : null, [assistant, open]);
2801
- const onAsk = _optionalChain([assistant, 'optionalAccess', _97 => _97.onAsk]);
2802
- const reportAsk = _react.useCallback.call(void 0, (prompt) => _optionalChain([onAsk, 'optionalCall', _98 => _98({ promptId: prompt.id, topic })]), [onAsk, topic]);
2807
+ const onAsk = _optionalChain([assistant, 'optionalAccess', _98 => _98.onAsk]);
2808
+ const reportAsk = _react.useCallback.call(void 0, (prompt) => _optionalChain([onAsk, 'optionalCall', _99 => _99({ promptId: prompt.id, topic })]), [onAsk, topic]);
2803
2809
  return { assistant, scoped, prompts, isLoading: supported && (!picks || isLoading), supported, open, reportAsk };
2804
2810
  }
2805
2811
 
@@ -2827,7 +2833,7 @@ function AssistantAskPrompts({
2827
2833
  }) {
2828
2834
  const card = variant === "card";
2829
2835
  const assistant = _chunkEWPR7662cjs.useAssistantRuntime.call(void 0, );
2830
- const slots = _nullishCoalesce(_nullishCoalesce(count, () => ( (card ? _optionalChain([assistant, 'optionalAccess', _99 => _99.askCard, 'optionalAccess', _100 => _100.count]) : void 0))), () => ( ASK_PROMPTS_DEFAULT_COUNT));
2836
+ const slots = _nullishCoalesce(_nullishCoalesce(count, () => ( (card ? _optionalChain([assistant, 'optionalAccess', _100 => _100.askCard, 'optionalAccess', _101 => _101.count]) : void 0))), () => ( ASK_PROMPTS_DEFAULT_COUNT));
2831
2837
  const ask = useAskSurface({ topic, count: slots, exclude, enabled, onOpen });
2832
2838
  if (!assistantAvailable(assistant)) return null;
2833
2839
  const shared = {
@@ -2841,12 +2847,12 @@ function AssistantAskPrompts({
2841
2847
  if (card) {
2842
2848
  const name = _nullishCoalesce(label, () => ( assistant.name));
2843
2849
  if (!name) return null;
2844
- const words2 = _nullishCoalesce(_nullishCoalesce(description, () => ( _optionalChain([assistant, 'access', _101 => _101.askCard, 'optionalAccess', _102 => _102.description]))), () => ( DEFAULT_ASK_CARD.description));
2850
+ const words2 = _nullishCoalesce(_nullishCoalesce(description, () => ( _optionalChain([assistant, 'access', _102 => _102.askCard, 'optionalAccess', _103 => _103.description]))), () => ( DEFAULT_ASK_CARD.description));
2845
2851
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEWPR7662cjs.AssistantRuntimeContext.Provider, { value: ask.scoped, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2846
2852
  AskCard,
2847
2853
  {
2848
2854
  ...shared,
2849
- title: fillAssistant(_nullishCoalesce(_nullishCoalesce(title, () => ( _optionalChain([assistant, 'access', _103 => _103.askCard, 'optionalAccess', _104 => _104.title]))), () => ( DEFAULT_ASK_CARD.title)), name),
2855
+ title: fillAssistant(_nullishCoalesce(_nullishCoalesce(title, () => ( _optionalChain([assistant, 'access', _104 => _104.askCard, 'optionalAccess', _105 => _105.title]))), () => ( DEFAULT_ASK_CARD.title)), name),
2850
2856
  description: words2 ? fillAssistant(words2, name) : void 0,
2851
2857
  count: ask.supported ? slots : 0,
2852
2858
  label: name,
@@ -2956,7 +2962,7 @@ var ChatTicketItem = _react.forwardRef.call(void 0,
2956
2962
  {
2957
2963
  ref,
2958
2964
  type: "button",
2959
- onClick: () => _optionalChain([onClick, 'optionalCall', _105 => _105(ticket.id)]),
2965
+ onClick: () => _optionalChain([onClick, 'optionalCall', _106 => _106(ticket.id)]),
2960
2966
  className: _chunk3ATAYP36cjs.cn.call(void 0,
2961
2967
  "flex h-20 w-full items-center gap-4 px-4",
2962
2968
  "border-b border-ods-border bg-ods-card",
@@ -3121,8 +3127,8 @@ ChatSidebarSkeleton.displayName = "ChatSidebarSkeleton";
3121
3127
  var DialogListItem = _react.forwardRef.call(void 0,
3122
3128
  ({ className, dialog, isActive, onDialogSelect, onClick, ...props }, ref) => {
3123
3129
  const handleClick = (e) => {
3124
- _optionalChain([onDialogSelect, 'optionalCall', _106 => _106(dialog.id)]);
3125
- _optionalChain([onClick, 'optionalCall', _107 => _107(e)]);
3130
+ _optionalChain([onDialogSelect, 'optionalCall', _107 => _107(dialog.id)]);
3131
+ _optionalChain([onClick, 'optionalCall', _108 => _108(e)]);
3126
3132
  };
3127
3133
  const formatTimestamp = (timestamp) => {
3128
3134
  return _chunkJHQNUWFMcjs.formatDateWithTimezone.call(void 0, timestamp, _chunkJHQNUWFMcjs.VIEWER_TIMEZONE, "numericDateTime24h");
@@ -3195,7 +3201,7 @@ var ChatSidebar = _react.forwardRef.call(void 0,
3195
3201
  (entries) => {
3196
3202
  const [entry] = entries;
3197
3203
  if (entry.isIntersecting && !isFetchingRef.current) {
3198
- _optionalChain([onLoadMoreRef, 'access', _108 => _108.current, 'optionalCall', _109 => _109()]);
3204
+ _optionalChain([onLoadMoreRef, 'access', _109 => _109.current, 'optionalCall', _110 => _110()]);
3199
3205
  }
3200
3206
  },
3201
3207
  { root: scrollContainer, rootMargin: "100px", threshold: 0.1 }
@@ -3410,7 +3416,7 @@ function OnboardingCarousel({
3410
3416
  " of ",
3411
3417
  steps.length,
3412
3418
  ": ",
3413
- _optionalChain([steps, 'access', _110 => _110[index], 'optionalAccess', _111 => _111.title])
3419
+ _optionalChain([steps, 'access', _111 => _111[index], 'optionalAccess', _112 => _112.title])
3414
3420
  ] }),
3415
3421
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", role: "group", "aria-label": "Choose step", children: steps.map((step, i) => {
3416
3422
  const isCurrent = i === index;
@@ -3673,7 +3679,7 @@ function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
3673
3679
  ] }) : null,
3674
3680
  item.preview ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-2 whitespace-pre-wrap break-words text-ods-text-secondary text-h6", children: item.preview }) }) : null
3675
3681
  ] }),
3676
- _optionalChain([anchorProps, 'optionalAccess', _112 => _112.href]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-3.5 w-3.5" }) }) : null
3682
+ _optionalChain([anchorProps, 'optionalAccess', _113 => _113.href]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-3.5 w-3.5" }) }) : null
3677
3683
  ] });
3678
3684
  if (!anchorProps) {
3679
3685
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunk7Z4EQOIXcjs.COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
@@ -3771,7 +3777,7 @@ var NETWORK_CONFIG = {
3771
3777
 
3772
3778
  var EMPTY_FRAME = { messages: [], phase: "idle", typing: false, delayMs: 0 };
3773
3779
  function prefersReducedMotion() {
3774
- return typeof window !== "undefined" && _optionalChain([window, 'access', _113 => _113.matchMedia, 'optionalCall', _114 => _114("(prefers-reduced-motion: reduce)"), 'access', _115 => _115.matches]) === true;
3780
+ return typeof window !== "undefined" && _optionalChain([window, 'access', _114 => _114.matchMedia, 'optionalCall', _115 => _115("(prefers-reduced-motion: reduce)"), 'access', _116 => _116.matches]) === true;
3775
3781
  }
3776
3782
  function useScriptedStream(frames, resetKey, enabled = true) {
3777
3783
  const [index, setIndex] = _react.useState.call(void 0, 0);
@@ -3782,7 +3788,7 @@ function useScriptedStream(frames, resetKey, enabled = true) {
3782
3788
  setIndex(0);
3783
3789
  }
3784
3790
  _react.useEffect.call(void 0, () => {
3785
- const mq = _optionalChain([window, 'access', _116 => _116.matchMedia, 'optionalCall', _117 => _117("(prefers-reduced-motion: reduce)")]);
3791
+ const mq = _optionalChain([window, 'access', _117 => _117.matchMedia, 'optionalCall', _118 => _118("(prefers-reduced-motion: reduce)")]);
3786
3792
  const sync = () => setReducedMotion(mq ? mq.matches : prefersReducedMotion());
3787
3793
  sync();
3788
3794
  if (!mq) return void 0;
@@ -3927,7 +3933,7 @@ function useJetStreamDialogSubscription({
3927
3933
  const lifecycle = _chunkKHKPLOU4cjs.startConnectionLifecycle.call(void 0, {
3928
3934
  conn: sharedConn,
3929
3935
  wsUrl,
3930
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _118 => _118.current, 'optionalCall', _119 => _119()]),
3936
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _119 => _119.current, 'optionalCall', _120 => _120()]),
3931
3937
  backoff: reconnectionBackoffRef.current,
3932
3938
  getFreshUrl: () => getNatsWsUrlRef.current(),
3933
3939
  // JetStream emits 'error' for protocol-level failures (e.g. -ERR Permissions
@@ -3942,7 +3948,7 @@ function useJetStreamDialogSubscription({
3942
3948
  setReconnectionCount((c) => c + 1);
3943
3949
  }
3944
3950
  hadConnectionBeforeRef.current = true;
3945
- _optionalChain([onConnectRef, 'access', _120 => _120.current, 'optionalCall', _121 => _121()]);
3951
+ _optionalChain([onConnectRef, 'access', _121 => _121.current, 'optionalCall', _122 => _122()]);
3946
3952
  }
3947
3953
  if (status === "error") {
3948
3954
  console.warn("[JetStream] NATS protocol error:", evt.data);
@@ -3952,7 +3958,7 @@ function useJetStreamDialogSubscription({
3952
3958
  setIsConnected(false);
3953
3959
  setIsSubscribed(false);
3954
3960
  tearDownSubscription();
3955
- _optionalChain([onDisconnectRef, 'access', _122 => _122.current, 'optionalCall', _123 => _123()]);
3961
+ _optionalChain([onDisconnectRef, 'access', _123 => _123.current, 'optionalCall', _124 => _124()]);
3956
3962
  }
3957
3963
  }
3958
3964
  });
@@ -4096,7 +4102,7 @@ function useJetStreamDialogSubscription({
4096
4102
  subscriptionRef.current = handle;
4097
4103
  setIsSubscribed(true);
4098
4104
  try {
4099
- _optionalChain([onSubscribedRef, 'access', _124 => _124.current, 'optionalCall', _125 => _125()]);
4105
+ _optionalChain([onSubscribedRef, 'access', _125 => _125.current, 'optionalCall', _126 => _126()]);
4100
4106
  } catch (e) {
4101
4107
  console.warn("[JetStream] onSubscribed threw:", e);
4102
4108
  }
@@ -4208,7 +4214,7 @@ function useChat({
4208
4214
  onMessagesChangeRef.current = onMessagesChange;
4209
4215
  });
4210
4216
  _react.useEffect.call(void 0, () => {
4211
- _optionalChain([onMessagesChangeRef, 'access', _126 => _126.current, 'optionalCall', _127 => _127(messages)]);
4217
+ _optionalChain([onMessagesChangeRef, 'access', _127 => _127.current, 'optionalCall', _128 => _128(messages)]);
4212
4218
  }, [messages]);
4213
4219
  const {
4214
4220
  streamMessage,
@@ -4245,7 +4251,7 @@ function useChat({
4245
4251
  name: "You",
4246
4252
  content: text,
4247
4253
  timestamp: /* @__PURE__ */ new Date(),
4248
- ..._optionalChain([options, 'optionalAccess', _128 => _128.hidden]) ? { hidden: true } : {}
4254
+ ..._optionalChain([options, 'optionalAccess', _129 => _129.hidden]) ? { hidden: true } : {}
4249
4255
  };
4250
4256
  addMessage(userMessage);
4251
4257
  setIsTyping(true);
@@ -4476,19 +4482,19 @@ function turnRequestKeys(content) {
4476
4482
  if (!Array.isArray(content)) return keys;
4477
4483
  for (const seg of content) {
4478
4484
  if (seg.type === "tool_execution") {
4479
- const id = _optionalChain([seg, 'access', _129 => _129.data, 'optionalAccess', _130 => _130.toolExecutionRequestId]);
4485
+ const id = _optionalChain([seg, 'access', _130 => _130.data, 'optionalAccess', _131 => _131.toolExecutionRequestId]);
4480
4486
  if (id) keys.add(id);
4481
4487
  } else if (seg.type === "approval_request") {
4482
- const id = _optionalChain([seg, 'access', _131 => _131.data, 'optionalAccess', _132 => _132.requestId]);
4488
+ const id = _optionalChain([seg, 'access', _132 => _132.data, 'optionalAccess', _133 => _133.requestId]);
4483
4489
  if (id) keys.add(id);
4484
4490
  } else if (seg.type === "escalation_offer") {
4485
- const id = _optionalChain([seg, 'access', _133 => _133.data, 'optionalAccess', _134 => _134.offerId]);
4491
+ const id = _optionalChain([seg, 'access', _134 => _134.data, 'optionalAccess', _135 => _135.offerId]);
4486
4492
  if (id) keys.add(id);
4487
4493
  } else if (seg.type === "approval_batch") {
4488
4494
  const data = seg.data;
4489
- if (_optionalChain([data, 'optionalAccess', _135 => _135.approvalRequestId])) keys.add(data.approvalRequestId);
4490
- for (const call of _nullishCoalesce(_optionalChain([data, 'optionalAccess', _136 => _136.toolCalls]), () => ( []))) {
4491
- if (_optionalChain([call, 'optionalAccess', _137 => _137.toolExecutionRequestId])) keys.add(call.toolExecutionRequestId);
4495
+ if (_optionalChain([data, 'optionalAccess', _136 => _136.approvalRequestId])) keys.add(data.approvalRequestId);
4496
+ for (const call of _nullishCoalesce(_optionalChain([data, 'optionalAccess', _137 => _137.toolCalls]), () => ( []))) {
4497
+ if (_optionalChain([call, 'optionalAccess', _138 => _138.toolExecutionRequestId])) keys.add(call.toolExecutionRequestId);
4492
4498
  }
4493
4499
  }
4494
4500
  }
@@ -4592,18 +4598,18 @@ function mergeHistoryWithRealtime(input) {
4592
4598
  }
4593
4599
  }
4594
4600
  const trailing = processedHistory[processedHistory.length - 1];
4595
- const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _138 => _138.role]) === "assistant" ? trailing : null;
4596
- const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _139 => _139.content, 'access', _140 => _140.find, 'call', _141 => _141((s) => s.type === "approval_batch"), 'optionalAccess', _142 => _142.data, 'optionalAccess', _143 => _143.approvalRequestId]), () => ( null)) : null;
4601
+ const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _139 => _139.role]) === "assistant" ? trailing : null;
4602
+ const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _140 => _140.content, 'access', _141 => _141.find, 'call', _142 => _142((s) => s.type === "approval_batch"), 'optionalAccess', _143 => _143.data, 'optionalAccess', _144 => _144.approvalRequestId]), () => ( null)) : null;
4597
4603
  let processedToUse = processedHistory;
4598
4604
  const pinnedSyntheticIds = /* @__PURE__ */ new Set();
4599
4605
  const droppedSyntheticIds = /* @__PURE__ */ new Set();
4600
4606
  if (historyBatchId) {
4601
4607
  const batchTwins = existingMessages.filter(
4602
- (m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some((s) => s.type === "approval_batch" && _optionalChain([s, 'access', _144 => _144.data, 'optionalAccess', _145 => _145.approvalRequestId]) === historyBatchId)
4608
+ (m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some((s) => s.type === "approval_batch" && _optionalChain([s, 'access', _145 => _145.data, 'optionalAccess', _146 => _146.approvalRequestId]) === historyBatchId)
4603
4609
  );
4604
4610
  const existingWithSameBatch = _nullishCoalesce(batchTwins.find((m) => m.id === streamingMessageId), () => ( batchTwins[batchTwins.length - 1]));
4605
4611
  if (existingWithSameBatch && Array.isArray(existingWithSameBatch.content)) {
4606
- const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _146 => _146.content])) ? historyTrailingAssistant.content.length : 0;
4612
+ const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _147 => _147.content])) ? historyTrailingAssistant.content.length : 0;
4607
4613
  const realtimeSize = existingWithSameBatch.content.length;
4608
4614
  if (existingWithSameBatch.id === streamingMessageId || realtimeSize > histSize) {
4609
4615
  processedToUse = processedHistory.slice(0, -1);
@@ -4636,9 +4642,9 @@ function mergeHistoryWithRealtime(input) {
4636
4642
  const trailingAssistantText = lastProcessed && lastProcessed.role === "assistant" ? assistantAnswerText(lastProcessed.content) : "";
4637
4643
  const windowSignals = collectTwinSignals(processedToUse);
4638
4644
  const seenUserSyntheticByContent = /* @__PURE__ */ new Map();
4639
- const isInWindow = (m) => processedIds.has(m.id) || (_nullishCoalesce(_optionalChain([rawHistoryIds, 'optionalAccess', _147 => _147.has, 'call', _148 => _148(m.id)]), () => ( false)));
4645
+ const isInWindow = (m) => processedIds.has(m.id) || (_nullishCoalesce(_optionalChain([rawHistoryIds, 'optionalAccess', _148 => _148.has, 'call', _149 => _149(m.id)]), () => ( false)));
4640
4646
  const firstWindowIndex = existingMessages.findIndex(isInWindow);
4641
- const isPersistedOlder = (m) => !isClientMintedId(m.id) && (_nullishCoalesce(_optionalChain([m, 'access', _149 => _149.timestamp, 'optionalAccess', _150 => _150.getTime, 'call', _151 => _151()]), () => ( 0))) <= historyFetchedAt;
4647
+ const isPersistedOlder = (m) => !isClientMintedId(m.id) && (_nullishCoalesce(_optionalChain([m, 'access', _150 => _150.timestamp, 'optionalAccess', _151 => _151.getTime, 'call', _152 => _152()]), () => ( 0))) <= historyFetchedAt;
4642
4648
  let lastOlderPersistedIndex = -1;
4643
4649
  if (firstWindowIndex < 0) {
4644
4650
  for (const [index, m] of existingMessages.entries()) {
@@ -4656,7 +4662,7 @@ function mergeHistoryWithRealtime(input) {
4656
4662
  } else if (pm.role === "assistant") {
4657
4663
  windowHasUnstampedAssistant = true;
4658
4664
  }
4659
- const time = _optionalChain([pm, 'access', _152 => _152.timestamp, 'optionalAccess', _153 => _153.getTime, 'call', _154 => _154()]);
4665
+ const time = _optionalChain([pm, 'access', _153 => _153.timestamp, 'optionalAccess', _154 => _154.getTime, 'call', _155 => _155()]);
4660
4666
  if (typeof time === "number" && time < windowMinTime) windowMinTime = time;
4661
4667
  }
4662
4668
  const threadHasClientMintedRow = existingMessages.some((m) => isClientMintedId(m.id));
@@ -4674,14 +4680,14 @@ function mergeHistoryWithRealtime(input) {
4674
4680
  const verdict = twinVerdict(windowSignals, m);
4675
4681
  return verdict === "unknown" ? !seqCanMislead(m) : verdict === "distinct";
4676
4682
  }
4677
- const time = _optionalChain([m, 'access', _155 => _155.timestamp, 'optionalAccess', _156 => _156.getTime, 'call', _157 => _157()]);
4683
+ const time = _optionalChain([m, 'access', _156 => _156.timestamp, 'optionalAccess', _157 => _157.getTime, 'call', _158 => _158()]);
4678
4684
  if (typeof time !== "number" || time > historyFetchedAt) return false;
4679
4685
  if (!Number.isFinite(windowMinTime) || time >= windowMinTime) return false;
4680
4686
  return twinVerdict(windowSignals, m) === "distinct";
4681
4687
  };
4682
4688
  const keepRealtime = (m) => {
4683
4689
  if (m.role === "user" && isOptimisticId(m.id) && typeof m.content === "string") {
4684
- const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _158 => _158.timestamp, 'optionalAccess', _159 => _159.getTime, 'call', _160 => _160()]), () => ( 0))) <= historyFetchedAt;
4690
+ const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _159 => _159.timestamp, 'optionalAccess', _160 => _160.getTime, 'call', _161 => _161()]), () => ( 0))) <= historyFetchedAt;
4685
4691
  return !(canBeInSnapshot && windowSignals.userContents.has(userTwinKey(m)));
4686
4692
  }
4687
4693
  if (isSyntheticRealtimeId(m.id) && m.id !== streamingMessageId) {
@@ -4706,7 +4712,7 @@ function mergeHistoryWithRealtime(input) {
4706
4712
  } else if (typeof m.streamSeq === "number") {
4707
4713
  covered = historyMaxStreamSeq > 0 && historyMaxStreamSeq >= m.streamSeq;
4708
4714
  } else {
4709
- covered = historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _161 => _161.timestamp, 'optionalAccess', _162 => _162.getTime, 'call', _163 => _163()]), () => ( 0))) <= historyFetchedAt;
4715
+ covered = historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _162 => _162.timestamp, 'optionalAccess', _163 => _163.getTime, 'call', _164 => _164()]), () => ( 0))) <= historyFetchedAt;
4710
4716
  }
4711
4717
  if (covered) return false;
4712
4718
  }
@@ -4797,7 +4803,7 @@ function normalizeHistoricalMessageData(md) {
4797
4803
  function isHistoricalUserTurn(m) {
4798
4804
  return !!m.owner;
4799
4805
  }
4800
- var isTextSegment = (d) => _optionalChain([d, 'optionalAccess', _164 => _164.type]) === "TEXT" && typeof d.text === "string";
4806
+ var isTextSegment = (d) => _optionalChain([d, 'optionalAccess', _165 => _165.type]) === "TEXT" && typeof d.text === "string";
4801
4807
  var THINK_MS = 550;
4802
4808
  var TOKEN_MS = 55;
4803
4809
  var USER_MS = 480;
@@ -4964,7 +4970,7 @@ var GROUPS = [
4964
4970
  }
4965
4971
  ];
4966
4972
  function maskKey(key) {
4967
- const prefix = _nullishCoalesce(_optionalChain([/^fpk_[a-z0-9-]+_/i, 'access', _165 => _165.exec, 'call', _166 => _166(key), 'optionalAccess', _167 => _167[0]]), () => ( ""));
4973
+ const prefix = _nullishCoalesce(_optionalChain([/^fpk_[a-z0-9-]+_/i, 'access', _166 => _166.exec, 'call', _167 => _167(key), 'optionalAccess', _168 => _168[0]]), () => ( ""));
4968
4974
  return key.length - prefix.length <= 8 ? `${prefix}\u2022\u2022\u2022\u2022` : `${prefix}\u2026${key.slice(-4)}`;
4969
4975
  }
4970
4976
  function HeaderName({ children }) {
@@ -5001,8 +5007,8 @@ function ProxyCredentialsForm({ description, saved }) {
5001
5007
  const errors = _react.useMemo.call(void 0, () => {
5002
5008
  const out = {};
5003
5009
  for (const { field } of _chunkDGFDBPO7cjs.EMBED_PROXY_OPTIONAL_HEADERS) {
5004
- const value = _optionalChain([optional, 'access', _168 => _168[field], 'optionalAccess', _169 => _169.trim, 'call', _170 => _170()]);
5005
- const message = value ? _optionalChain([OPTIONAL_FIELD_COPY, 'access', _171 => _171[field], 'access', _172 => _172.validate, 'optionalCall', _173 => _173(value)]) : null;
5010
+ const value = _optionalChain([optional, 'access', _169 => _169[field], 'optionalAccess', _170 => _170.trim, 'call', _171 => _171()]);
5011
+ const message = value ? _optionalChain([OPTIONAL_FIELD_COPY, 'access', _172 => _172[field], 'access', _173 => _173.validate, 'optionalCall', _174 => _174(value)]) : null;
5006
5012
  if (message) out[field] = message;
5007
5013
  }
5008
5014
  return out;
@@ -5014,12 +5020,12 @@ function ProxyCredentialsForm({ description, saved }) {
5014
5020
  ...keyForPreview ? [["Authorization", `Bearer ${keyForPreview}`]] : [],
5015
5021
  ...email.trim() ? [["X-Chat-Act-As", email.trim().toLowerCase()]] : [],
5016
5022
  ..._chunkDGFDBPO7cjs.EMBED_PROXY_OPTIONAL_HEADERS.flatMap(({ field, header }) => {
5017
- const value = _optionalChain([optional, 'access', _174 => _174[field], 'optionalAccess', _175 => _175.trim, 'call', _176 => _176()]);
5023
+ const value = _optionalChain([optional, 'access', _175 => _175[field], 'optionalAccess', _176 => _176.trim, 'call', _177 => _177()]);
5018
5024
  return value ? [[header, value]] : [];
5019
5025
  })
5020
5026
  ];
5021
5027
  const save = () => {
5022
- const key = secret.trim() || _optionalChain([_chunkDGFDBPO7cjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _177 => _177.secret]);
5028
+ const key = secret.trim() || _optionalChain([_chunkDGFDBPO7cjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _178 => _178.secret]);
5023
5029
  const actAs = email.trim().toLowerCase();
5024
5030
  if (!key || !actAs || hasErrors) {
5025
5031
  setStatus(hasErrors ? "Fix the highlighted fields first." : "API key and act-as email are required.");
@@ -5360,4 +5366,5 @@ EmbeddableChat.displayName = "EmbeddableChat";
5360
5366
 
5361
5367
 
5362
5368
 
5363
- exports.InfoHint = InfoHint; exports.Field = Field; exports.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS = HUBSPOT_DO_NOT_COLLECT_FORM_PROPS; exports.FullscreenSwitchController = FullscreenSwitchController; exports.SOCIAL_PLATFORM_ALIASES = SOCIAL_PLATFORM_ALIASES; exports.normalizeSocialPlatform = normalizeSocialPlatform; exports.hostMatches = hostMatches; exports.SOCIAL_PLATFORM_ALT_HOSTS = SOCIAL_PLATFORM_ALT_HOSTS; exports.socialPlatformHosts = socialPlatformHosts; exports.classifySocialHost = classifySocialHost; exports.pickSocialLink = pickSocialLink; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.ChatTurn = ChatTurn; exports.AI_PROVIDERS = AI_PROVIDERS; exports.aiProvider = aiProvider; exports.TOKEN_RATE_EMPTY = TOKEN_RATE_EMPTY; exports.formatTokenRate = formatTokenRate; exports.tokenCost = tokenCost; exports.formatTokenAmount = formatTokenAmount; exports.tokensForBalance = tokensForBalance; exports.tokenRateProviderLabel = tokenRateProviderLabel; exports.groupTokenRatesByProvider = groupTokenRatesByProvider; exports.TRIAL_TERMS = TRIAL_TERMS; exports.trialLengthLabel = trialLengthLabel; exports.trialLabels = trialLabels; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.SEO_DESCRIPTION_MAX_LENGTH = SEO_DESCRIPTION_MAX_LENGTH; exports.BRAND_MARK_SVGS = BRAND_MARK_SVGS; exports.brandMarkDataUri = brandMarkDataUri; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; exports.TICKET_OPEN_PARAM = TICKET_OPEN_PARAM; exports.buildTicketOpenHref = buildTicketOpenHref; exports.ToolTypeValues = ToolTypeValues; exports.toolLabels = toolLabels; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.BITE_ID_RE = BITE_ID_RE; exports.generateBiteId = generateBiteId; exports.ensureBiteIds = ensureBiteIds; exports.matchBiteElement = matchBiteElement; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.DOWNLOAD_PAGE_PATH = DOWNLOAD_PAGE_PATH; exports.resolveMobileStoreUrl = resolveMobileStoreUrl; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.getCountryByName = getCountryByName; exports.getFlagFromCountryName = getFlagFromCountryName; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.COMPLIANCE_STANDARDS = COMPLIANCE_STANDARDS; exports.complianceStandardForName = complianceStandardForName; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.isDismissedCookieValue = isDismissedCookieValue; exports.readDismissCookie = readDismissCookie; exports.writeDismissCookie = writeDismissCookie; exports.clearDismissCookie = clearDismissCookie; exports.announcementDismissCookieName = announcementDismissCookieName; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.WALKTHROUGH_VIDEO_DISMISS_KEY = WALKTHROUGH_VIDEO_DISMISS_KEY; exports.walkthroughDismissCookieName = walkthroughDismissCookieName; exports.isWalkthroughDismissed = isWalkthroughDismissed; exports.dismissWalkthrough = dismissWalkthrough; exports.clearWalkthroughDismissal = clearWalkthroughDismissal; exports.WALKTHROUGH_OPEN_QUERY_PARAM = WALKTHROUGH_OPEN_QUERY_PARAM; exports.withWalkthroughOpenParam = withWalkthroughOpenParam; exports.createSseSubscription = createSseSubscription; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.openInNewTab = openInNewTab; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.LEGAL_DOCUMENT_TYPES = LEGAL_DOCUMENT_TYPES; exports.isLegalDocumentType = isLegalDocumentType; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.extractSections = extractSections; exports.SCHEDULING_SLUG_SHAPE = SCHEDULING_SLUG_SHAPE; exports.MAX_MONTH_OFFSET = MAX_MONTH_OFFSET; exports.normalizeSchedulingSlug = normalizeSchedulingSlug; exports.isValidSchedulingSlug = isValidSchedulingSlug; exports.parseSchedulingLinkName = parseSchedulingLinkName; exports.isListedSchedulingName = isListedSchedulingName; exports.schedulingAudienceKey = schedulingAudienceKey; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.FIRST_TOUCH_ATTRIBUTION_KEY = FIRST_TOUCH_ATTRIBUTION_KEY; exports.sanitizeLandingUrl = sanitizeLandingUrl; exports.parseAttributionFromUrl = parseAttributionFromUrl; exports.captureFirstTouchAttribution = captureFirstTouchAttribution; exports.getFirstTouchAttribution = getFirstTouchAttribution; exports.withFirstTouchAttribution = withFirstTouchAttribution; exports.clearFirstTouchAttribution = clearFirstTouchAttribution; exports.ODS_SPACING_TOKENS = ODS_SPACING_TOKENS; exports.ODS_SPACING_TOKEN_PATTERN = ODS_SPACING_TOKEN_PATTERN; exports.ODS_SPACING_PROPS = ODS_SPACING_PROPS; exports.TAILWIND_STEP_TO_ODS_TOKEN = TAILWIND_STEP_TO_ODS_TOKEN; exports.CSV_CONTENT_TYPE = CSV_CONTENT_TYPE; exports.csvEscape = csvEscape; exports.toCsv = toCsv; exports.copyrightLine = copyrightLine; exports.isValidPathPattern = isValidPathPattern; exports.matchesPathPattern = matchesPathPattern; exports.pathMatchesAny = pathMatchesAny; exports.formatDemoClock = formatDemoClock; exports.demoClockTimes = demoClockTimes; exports.openAskAi = openAskAi; exports.MingoAiButton = MingoAiButton; exports.AskPrompts = AskPrompts; exports.AskCard = AskCard; exports.ASK_PROMPTS_DEFAULT_COUNT = ASK_PROMPTS_DEFAULT_COUNT; exports.buildAskPromptsUrl = buildAskPromptsUrl; exports.assistantAvailable = assistantAvailable; exports.useAskPrompts = useAskPrompts; exports.useAssistantOpen = useAssistantOpen; exports.useAskSurface = useAskSurface; exports.AssistantAskPrompts = AssistantAskPrompts; exports.QuickActionMarquee = QuickActionMarquee; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.ChatTopNavigation = ChatTopNavigation; exports.OnboardingCarousel = OnboardingCarousel; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.useScriptedStream = useScriptedStream; exports.RESYNC_AFTER_HIDDEN_MS = RESYNC_AFTER_HIDDEN_MS; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useSSE = useSSE; exports.useChat = useChat; 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.normalizeHistoricalMessageData = normalizeHistoricalMessageData; exports.isHistoricalUserTurn = isHistoricalUserTurn; exports.buildStreamFrames = buildStreamFrames; exports.ProxyCredentialsPanel = ProxyCredentialsPanel; exports.EmbeddableChat = EmbeddableChat;
5369
+
5370
+ exports.InfoHint = InfoHint; exports.Field = Field; exports.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS = HUBSPOT_DO_NOT_COLLECT_FORM_PROPS; exports.FullscreenSwitchController = FullscreenSwitchController; exports.SOCIAL_PLATFORM_ALIASES = SOCIAL_PLATFORM_ALIASES; exports.normalizeSocialPlatform = normalizeSocialPlatform; exports.hostMatches = hostMatches; exports.SOCIAL_PLATFORM_ALT_HOSTS = SOCIAL_PLATFORM_ALT_HOSTS; exports.socialPlatformHosts = socialPlatformHosts; exports.classifySocialHost = classifySocialHost; exports.pickSocialLink = pickSocialLink; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.ChatTurn = ChatTurn; exports.AI_PROVIDERS = AI_PROVIDERS; exports.aiProvider = aiProvider; exports.TOKEN_RATE_EMPTY = TOKEN_RATE_EMPTY; exports.formatTokenRate = formatTokenRate; exports.tokenCost = tokenCost; exports.formatTokenAmount = formatTokenAmount; exports.tokensForBalance = tokensForBalance; exports.tokenRateProviderLabel = tokenRateProviderLabel; exports.groupTokenRatesByProvider = groupTokenRatesByProvider; exports.TRIAL_TERMS = TRIAL_TERMS; exports.trialLengthLabel = trialLengthLabel; exports.trialLabels = trialLabels; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.SEO_DESCRIPTION_MAX_LENGTH = SEO_DESCRIPTION_MAX_LENGTH; exports.BRAND_MARK_SVGS = BRAND_MARK_SVGS; exports.brandMarkDataUri = brandMarkDataUri; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; exports.TICKET_OPEN_PARAM = TICKET_OPEN_PARAM; exports.buildTicketOpenHref = buildTicketOpenHref; exports.ToolTypeValues = ToolTypeValues; exports.toolLabels = toolLabels; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.BITE_ID_RE = BITE_ID_RE; exports.generateBiteId = generateBiteId; exports.ensureBiteIds = ensureBiteIds; exports.matchBiteElement = matchBiteElement; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.DOWNLOAD_PAGE_PATH = DOWNLOAD_PAGE_PATH; exports.resolveMobileStoreUrl = resolveMobileStoreUrl; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.getCountryByName = getCountryByName; exports.getFlagFromCountryName = getFlagFromCountryName; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.COMPLIANCE_STANDARDS = COMPLIANCE_STANDARDS; exports.complianceStandardForName = complianceStandardForName; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.isDismissedCookieValue = isDismissedCookieValue; exports.readDismissCookie = readDismissCookie; exports.writeDismissCookie = writeDismissCookie; exports.clearDismissCookie = clearDismissCookie; exports.announcementDismissCookieName = announcementDismissCookieName; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.isAnnouncementOnSurface = isAnnouncementOnSurface; exports.WALKTHROUGH_VIDEO_DISMISS_KEY = WALKTHROUGH_VIDEO_DISMISS_KEY; exports.walkthroughDismissCookieName = walkthroughDismissCookieName; exports.isWalkthroughDismissed = isWalkthroughDismissed; exports.dismissWalkthrough = dismissWalkthrough; exports.clearWalkthroughDismissal = clearWalkthroughDismissal; exports.WALKTHROUGH_OPEN_QUERY_PARAM = WALKTHROUGH_OPEN_QUERY_PARAM; exports.withWalkthroughOpenParam = withWalkthroughOpenParam; exports.createSseSubscription = createSseSubscription; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.openInNewTab = openInNewTab; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.LEGAL_DOCUMENT_TYPES = LEGAL_DOCUMENT_TYPES; exports.isLegalDocumentType = isLegalDocumentType; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.extractSections = extractSections; exports.SCHEDULING_SLUG_SHAPE = SCHEDULING_SLUG_SHAPE; exports.MAX_MONTH_OFFSET = MAX_MONTH_OFFSET; exports.normalizeSchedulingSlug = normalizeSchedulingSlug; exports.isValidSchedulingSlug = isValidSchedulingSlug; exports.parseSchedulingLinkName = parseSchedulingLinkName; exports.isListedSchedulingName = isListedSchedulingName; exports.schedulingAudienceKey = schedulingAudienceKey; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.FIRST_TOUCH_ATTRIBUTION_KEY = FIRST_TOUCH_ATTRIBUTION_KEY; exports.sanitizeLandingUrl = sanitizeLandingUrl; exports.parseAttributionFromUrl = parseAttributionFromUrl; exports.captureFirstTouchAttribution = captureFirstTouchAttribution; exports.getFirstTouchAttribution = getFirstTouchAttribution; exports.withFirstTouchAttribution = withFirstTouchAttribution; exports.clearFirstTouchAttribution = clearFirstTouchAttribution; exports.ODS_SPACING_TOKENS = ODS_SPACING_TOKENS; exports.ODS_SPACING_TOKEN_PATTERN = ODS_SPACING_TOKEN_PATTERN; exports.ODS_SPACING_PROPS = ODS_SPACING_PROPS; exports.TAILWIND_STEP_TO_ODS_TOKEN = TAILWIND_STEP_TO_ODS_TOKEN; exports.CSV_CONTENT_TYPE = CSV_CONTENT_TYPE; exports.csvEscape = csvEscape; exports.toCsv = toCsv; exports.copyrightLine = copyrightLine; exports.isValidPathPattern = isValidPathPattern; exports.matchesPathPattern = matchesPathPattern; exports.pathMatchesAny = pathMatchesAny; exports.formatDemoClock = formatDemoClock; exports.demoClockTimes = demoClockTimes; exports.openAskAi = openAskAi; exports.MingoAiButton = MingoAiButton; exports.AskPrompts = AskPrompts; exports.AskCard = AskCard; exports.ASK_PROMPTS_DEFAULT_COUNT = ASK_PROMPTS_DEFAULT_COUNT; exports.buildAskPromptsUrl = buildAskPromptsUrl; exports.assistantAvailable = assistantAvailable; exports.useAskPrompts = useAskPrompts; exports.useAssistantOpen = useAssistantOpen; exports.useAskSurface = useAskSurface; exports.AssistantAskPrompts = AssistantAskPrompts; exports.QuickActionMarquee = QuickActionMarquee; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.ChatTopNavigation = ChatTopNavigation; exports.OnboardingCarousel = OnboardingCarousel; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.useScriptedStream = useScriptedStream; exports.RESYNC_AFTER_HIDDEN_MS = RESYNC_AFTER_HIDDEN_MS; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useSSE = useSSE; exports.useChat = useChat; 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.normalizeHistoricalMessageData = normalizeHistoricalMessageData; exports.isHistoricalUserTurn = isHistoricalUserTurn; exports.buildStreamFrames = buildStreamFrames; exports.ProxyCredentialsPanel = ProxyCredentialsPanel; exports.EmbeddableChat = EmbeddableChat;