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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/dist/{chunk-JVHP7Y4S.js → chunk-2F4DO7DS.js} +2 -2
  2. package/dist/{chunk-4ZZ4TNCY.cjs → chunk-32QAIKXR.cjs} +9 -9
  3. package/dist/{chunk-AI3CLDZO.cjs → chunk-33QHEG7K.cjs} +289 -285
  4. package/dist/{chunk-QV4GO3GW.cjs → chunk-4ICMFNCJ.cjs} +29 -56
  5. package/dist/{chunk-YPEILGVZ.cjs → chunk-5K3QUH7C.cjs} +3 -3
  6. package/dist/{chunk-5FVWDDX6.js → chunk-66XG5RFJ.js} +2 -2
  7. package/dist/{chunk-ZSXZE4FJ.cjs → chunk-7N6M77PI.cjs} +3 -3
  8. package/dist/{chunk-2VOZ37BL.cjs → chunk-7VYBSCCL.cjs} +35 -35
  9. package/dist/{chunk-7V5KFBY2.cjs → chunk-APJCBQ7X.cjs} +16 -16
  10. package/dist/{chunk-RU6BTELI.cjs → chunk-CELBOIKC.cjs} +538 -491
  11. package/dist/{chunk-SEVKFMKR.cjs → chunk-CI7KWY6L.cjs} +3 -3
  12. package/dist/{chunk-OBMWSUBK.js → chunk-EM3WCK2K.js} +5 -5
  13. package/dist/{chunk-ASHRHL4W.js → chunk-GEUUDNCI.js} +5 -5
  14. package/dist/{chunk-ZZRUKEN2.js → chunk-GINCQZMM.js} +3 -3
  15. package/dist/{chunk-AX4F35C2.js → chunk-HP4C2DFL.js} +1 -1
  16. package/dist/{chunk-ASIXPRHV.js → chunk-HTQJSW3Y.js} +3 -3
  17. package/dist/{chunk-SE4O4HCD.cjs → chunk-OKEJY2GC.cjs} +8 -8
  18. package/dist/{chunk-B7234BE2.cjs → chunk-OYU7QNLQ.cjs} +11 -11
  19. package/dist/{chunk-PUADVXJD.js → chunk-QL4RUHKU.js} +1 -1
  20. package/dist/{chunk-LYQYLPPV.cjs → chunk-RMXLHYEG.cjs} +26 -26
  21. package/dist/{chunk-MGTZ2BKY.js → chunk-SKEW5NMJ.js} +22 -49
  22. package/dist/{chunk-772242QR.cjs → chunk-SSXQYS5K.cjs} +65 -65
  23. package/dist/{chunk-F56GNKX2.js → chunk-TYMLEI2I.js} +2 -2
  24. package/dist/{chunk-MLFS5G3V.js → chunk-UF3NFAQK.js} +315 -268
  25. package/dist/{chunk-2SO3OJFY.cjs → chunk-UJZ5Y3RK.cjs} +33 -33
  26. package/dist/{chunk-W2DXHR2R.js → chunk-URYLQ4MC.js} +15 -11
  27. package/dist/{chunk-F77J34W2.js → chunk-VGRQK7YS.js} +1 -1
  28. package/dist/{chunk-IOTAUWWF.js → chunk-XYSKJ7GA.js} +1 -1
  29. package/dist/{chunk-LR6DJY4Z.cjs → chunk-YREYU6DY.cjs} +9 -9
  30. package/dist/{chunk-JAKG6BY7.js → chunk-ZDGK2TNJ.js} +3 -3
  31. package/dist/{cloud-tenants-SMULXU54.cjs → cloud-tenants-XP3L6PWO.cjs} +3 -3
  32. package/dist/{cloud-tenants-US63E2HV.js → cloud-tenants-XVVFCOK2.js} +2 -2
  33. package/dist/components/case-studies/index.cjs +14 -14
  34. package/dist/components/case-studies/index.js +3 -3
  35. package/dist/components/chat/assistant-ask-prompts.d.ts +34 -14
  36. package/dist/components/chat/assistant-ask-prompts.d.ts.map +1 -1
  37. package/dist/components/chat/entity-cards/dispatch.d.ts.map +1 -1
  38. package/dist/components/chat/hooks/index.d.ts +1 -1
  39. package/dist/components/chat/hooks/index.d.ts.map +1 -1
  40. package/dist/components/chat/hooks/use-ask-prompts.d.ts +34 -7
  41. package/dist/components/chat/hooks/use-ask-prompts.d.ts.map +1 -1
  42. package/dist/components/chat/index.cjs +2 -4
  43. package/dist/components/chat/index.js +3 -5
  44. package/dist/components/contact/index.cjs +4 -4
  45. package/dist/components/contact/index.js +3 -3
  46. package/dist/components/docs/index.cjs +7 -7
  47. package/dist/components/docs/index.js +6 -6
  48. package/dist/components/embeds/index.cjs +4 -4
  49. package/dist/components/embeds/index.js +3 -3
  50. package/dist/components/faq/faq-ask-card.d.ts +8 -11
  51. package/dist/components/faq/faq-ask-card.d.ts.map +1 -1
  52. package/dist/components/faq/index.cjs +4 -4
  53. package/dist/components/faq/index.js +3 -3
  54. package/dist/components/features/auth/auth-benefits-panel.d.ts +3 -1
  55. package/dist/components/features/auth/auth-benefits-panel.d.ts.map +1 -1
  56. package/dist/components/features/auth/auth-shell.d.ts +3 -1
  57. package/dist/components/features/auth/auth-shell.d.ts.map +1 -1
  58. package/dist/components/features/index.cjs +3 -3
  59. package/dist/components/features/index.js +2 -2
  60. package/dist/components/help-center-pages/index.cjs +71 -71
  61. package/dist/components/help-center-pages/index.js +13 -13
  62. package/dist/components/index.cjs +35 -37
  63. package/dist/components/index.js +14 -16
  64. package/dist/components/meeting-scheduler/index.cjs +19 -19
  65. package/dist/components/meeting-scheduler/index.js +2 -2
  66. package/dist/components/navigation/index.cjs +6 -6
  67. package/dist/components/navigation/index.js +5 -5
  68. package/dist/components/onboarding-guides/index.cjs +5 -5
  69. package/dist/components/onboarding-guides/index.js +4 -4
  70. package/dist/components/product-demo/index.cjs +6 -6
  71. package/dist/components/product-demo/index.js +6 -6
  72. package/dist/components/tickets/index.cjs +7 -7
  73. package/dist/components/tickets/index.js +6 -6
  74. package/dist/components/ui/index.cjs +3 -5
  75. package/dist/components/ui/index.js +4 -6
  76. package/dist/{devices-6ZURNFRB.cjs → devices-MMHLY67A.cjs} +4 -4
  77. package/dist/{devices-JWHGWKLK.js → devices-S7PJJI66.js} +2 -2
  78. package/dist/index.cjs +7 -7
  79. package/dist/index.js +14 -14
  80. package/dist/{knowledge-CY66JZ54.cjs → knowledge-LJNFAJNE.cjs} +4 -4
  81. package/dist/{knowledge-TEDPLCFX.js → knowledge-WW3LOQKN.js} +2 -2
  82. package/dist/{logs-MO357RE7.cjs → logs-F4ZVNUKQ.cjs} +11 -11
  83. package/dist/{logs-S46THPPD.js → logs-I4DMHQDA.js} +2 -2
  84. package/dist/{policies-GSH4K5YP.cjs → policies-KZXFXGD7.cjs} +7 -7
  85. package/dist/{policies-BUXT7DKF.js → policies-RX55V46V.js} +2 -2
  86. package/dist/{software-update-2ETT35NM.cjs → software-update-4A242VDB.cjs} +6 -6
  87. package/dist/{software-update-YKS6KLX2.js → software-update-VI7FQYR4.js} +2 -2
  88. package/dist/utils/index.cjs +25 -24
  89. package/dist/utils/index.d.ts +1 -1
  90. package/dist/utils/index.d.ts.map +1 -1
  91. package/dist/utils/index.js +23 -23
  92. package/dist/utils/source-grouping.d.ts +15 -5
  93. package/dist/utils/source-grouping.d.ts.map +1 -1
  94. package/dist/utils/trial.d.ts +17 -9
  95. package/dist/utils/trial.d.ts.map +1 -1
  96. package/package.json +1 -1
  97. package/src/components/chat/assistant-ask-prompts.tsx +84 -39
  98. package/src/components/chat/entity-cards/dispatch.tsx +47 -58
  99. package/src/components/chat/hooks/index.ts +3 -2
  100. package/src/components/chat/hooks/use-ask-prompts.ts +140 -56
  101. package/src/components/faq/faq-ask-card.tsx +22 -67
  102. package/src/components/features/auth/auth-benefits-panel.tsx +15 -8
  103. package/src/components/features/auth/auth-shell.tsx +4 -2
  104. package/src/utils/index.ts +1 -1
  105. package/src/utils/source-grouping.ts +24 -14
  106. package/src/utils/source-icons.ts +16 -16
  107. package/src/utils/trial.ts +16 -10
@@ -250,21 +250,6 @@ var _chunkLLSUVPQCcjs = require('./chunk-LLSUVPQC.cjs');
250
250
 
251
251
 
252
252
 
253
-
254
-
255
-
256
-
257
-
258
-
259
-
260
-
261
-
262
-
263
-
264
-
265
-
266
-
267
-
268
253
 
269
254
 
270
255
 
@@ -5973,14 +5958,15 @@ function groupTokenRatesByProvider(rates) {
5973
5958
  }
5974
5959
 
5975
5960
  // src/utils/trial.ts
5976
- var TRIAL_DAYS = 14;
5977
- var TRIAL_LABELS = {
5978
- /** "14 day free trial" */
5979
- length: `${TRIAL_DAYS} day free trial`,
5961
+ var TRIAL_TERMS = {
5980
5962
  noCard: "No card required",
5981
5963
  cancel: "Cancel Anytime",
5982
5964
  noContract: "No Contract"
5983
5965
  };
5966
+ var trialLengthLabel = (days) => `${days} day free trial`;
5967
+ function trialLabels(days) {
5968
+ return { ...TRIAL_TERMS, length: days === null || days === void 0 || days === "" ? null : trialLengthLabel(days) };
5969
+ }
5984
5970
 
5985
5971
  // src/utils/seo-title.ts
5986
5972
  var SEO_TITLE_MAX_LENGTH = 60;
@@ -6879,11 +6865,11 @@ var SOURCE_ICON_NAMES = {
6879
6865
  vendors: "package-search",
6880
6866
  // Financials
6881
6867
  "investor-updates": "mail",
6882
- "financial-kpis": "activity",
6883
- "financial-cap-table": "table",
6884
- "financial-pnl": "trending-up",
6885
- "financial-balance-sheet": "dollar-sign",
6886
- "financial-cash-flow": "banknote",
6868
+ "financial-kpis": "chart-bar-01-ver",
6869
+ "financial-cap-table": "chart-pie",
6870
+ "financial-pnl": "money-bill-dollar",
6871
+ "financial-balance-sheet": "bank",
6872
+ "financial-cash-flow": "coins-exchange-currency",
6887
6873
  // ClickUp
6888
6874
  "clickup-roadmap": "clickup",
6889
6875
  "clickup-delivery": "clickup",
@@ -6902,22 +6888,22 @@ var SOURCE_ICON_NAMES = {
6902
6888
  // Communications
6903
6889
  "slack-messages": "slack",
6904
6890
  // People-hub employee content
6905
- "what-i-shipped": "package",
6906
- "how-i-work": "book-open",
6907
- "ai-prompts": "message-square",
6891
+ "what-i-shipped": "rocket-02",
6892
+ "how-i-work": "clipboard-list",
6893
+ "ai-prompts": "chat-quote",
6908
6894
  // Product-hub internal
6909
6895
  "design-docs": "file-text",
6910
6896
  "openframe-tenants": "openframe",
6911
- "prospect-calls": "phone",
6897
+ "prospect-calls": "call",
6912
6898
  // Code intelligence
6913
- "code-rules": "check-square",
6914
- "code-graph-repos": "github",
6899
+ "code-rules": "bracket-curly-check",
6900
+ "code-graph-repos": "coding-branch",
6915
6901
  "code-graph-deployments": "package",
6916
- "code-graph-files": "file-text",
6917
- "code-symbols": "box",
6918
- "code-duplicates": "search",
6919
- "code-impact": "activity",
6920
- "change-sets": "coding-branch"
6902
+ "code-graph-files": "file-code",
6903
+ "code-symbols": "code-square",
6904
+ "code-duplicates": "copy-01",
6905
+ "code-impact": "coding-pull-request",
6906
+ "change-sets": "coding-merge"
6921
6907
  };
6922
6908
  function getSourceIconName(tableId) {
6923
6909
  if (!tableId) return void 0;
@@ -7094,8 +7080,7 @@ function typeOf(source) {
7094
7080
  return source.documentType || defaultDocumentTypeForTableId(source.sourceRepo) || "";
7095
7081
  }
7096
7082
  function joinsTableChip(source) {
7097
- if (!source.sourceRepo) return false;
7098
- return groupsByTable(typeOf({ ...source, sourceRepo: source.sourceRepo }));
7083
+ return !!source.sourceRepo;
7099
7084
  }
7100
7085
  function rowsOf(source) {
7101
7086
  if (isGroupedChip(source)) return _nullishCoalesce(source.items, () => ( []));
@@ -8908,9 +8893,6 @@ function AskCard({
8908
8893
  );
8909
8894
  }
8910
8895
 
8911
- // src/components/chat/assistant-ask-prompts.tsx
8912
-
8913
-
8914
8896
  // src/components/chat/hooks/use-ask-prompts.ts
8915
8897
 
8916
8898
  var ASK_PROMPTS_DEFAULT_COUNT = 3;
@@ -8932,8 +8914,9 @@ function useAskPrompts({
8932
8914
  const assistant = _chunkEWPR7662cjs.useAssistantRuntime.call(void 0, );
8933
8915
  const base = assistantAvailable(assistant) ? assistant.askPromptsUrl : void 0;
8934
8916
  const url = base && enabled ? buildAskPromptsUrl(base, { count, topic, exclude }) : null;
8935
- const { data, isLoading } = _chunkHEQ4GPYEcjs.useSelfFetch.call(void 0, url);
8936
- return { prompts: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _232 => _232.prompts]), () => ( [])), isLoading: !!base && (!enabled || isLoading), supported: !!base };
8917
+ const { data, dataUrl, error } = _chunkHEQ4GPYEcjs.useSelfFetch.call(void 0, url);
8918
+ const landed = url !== null && (dataUrl === url || error);
8919
+ return { prompts: landed ? _nullishCoalesce(_optionalChain([data, 'optionalAccess', _232 => _232.prompts]), () => ( [])) : [], isLoading: !!base && !landed, supported: !!base };
8937
8920
  }
8938
8921
  function useAssistantOpen(topic, onOpen) {
8939
8922
  const assistant = _chunkEWPR7662cjs.useAssistantRuntime.call(void 0, );
@@ -8949,90 +8932,158 @@ function useAssistantOpen(topic, onOpen) {
8949
8932
  [onOpen, runtimeOpen, source, topic]
8950
8933
  );
8951
8934
  }
8952
- var NO_IDS = [];
8953
- function createShownList() {
8954
- const bySurface = /* @__PURE__ */ new Map();
8935
+ function createAskQueue() {
8936
+ const entries = /* @__PURE__ */ new Map();
8955
8937
  const listeners = /* @__PURE__ */ new Set();
8956
- let snapshot = NO_IDS;
8938
+ let next = 0;
8957
8939
  const publish = () => {
8958
- const lists = [...bySurface.values()];
8959
- const next = lists.some((list) => list === null) ? null : lists.flatMap((list) => _nullishCoalesce(list, () => ( [])));
8960
- const same = next === null ? snapshot === null : snapshot !== null && next.join(",") === snapshot.join(",");
8961
- if (same) return;
8962
- snapshot = next === null ? null : next.length > 0 ? next : NO_IDS;
8963
8940
  for (const listener of listeners) listener();
8964
8941
  };
8965
8942
  return {
8966
- set(surface, ids) {
8967
- bySurface.set(surface, ids);
8943
+ enter(surface) {
8944
+ if (entries.has(surface)) return;
8945
+ entries.set(surface, { turn: next++, ids: null });
8968
8946
  publish();
8969
8947
  },
8970
- remove(surface) {
8971
- bySurface.delete(surface);
8948
+ settle(surface, ids) {
8949
+ const entry = entries.get(surface);
8950
+ if (!entry || (_nullishCoalesce(_optionalChain([entry, 'access', _235 => _235.ids, 'optionalAccess', _236 => _236.join, 'call', _237 => _237(",")]), () => ( null))) === (_nullishCoalesce(_optionalChain([ids, 'optionalAccess', _238 => _238.join, 'call', _239 => _239(",")]), () => ( null)))) return;
8951
+ entry.ids = ids;
8972
8952
  publish();
8973
8953
  },
8954
+ leave(surface) {
8955
+ if (entries.delete(surface)) publish();
8956
+ },
8974
8957
  subscribe(listener) {
8975
8958
  listeners.add(listener);
8976
8959
  return () => listeners.delete(listener);
8977
8960
  },
8978
- read: () => snapshot
8961
+ turnOf(surface) {
8962
+ const own = entries.get(surface);
8963
+ if (!own) return null;
8964
+ const shown = [];
8965
+ for (const [other, entry] of entries) {
8966
+ if (other === surface) continue;
8967
+ if (entry.ids === null) {
8968
+ if (entry.turn < own.turn) return null;
8969
+ continue;
8970
+ }
8971
+ shown.push(...entry.ids);
8972
+ }
8973
+ return shown.join(",");
8974
+ }
8979
8975
  };
8980
8976
  }
8981
- var shownLists = /* @__PURE__ */ new Map();
8982
- function useShownList() {
8983
- const scope = _nullishCoalesce(_optionalChain([_chunkEWPR7662cjs.useAssistantRuntime.call(void 0, ), 'optionalAccess', _235 => _235.askPromptsUrl]), () => ( ""));
8984
- let list = shownLists.get(scope);
8985
- if (!list) {
8986
- list = createShownList();
8987
- shownLists.set(scope, list);
8977
+ var askQueues = /* @__PURE__ */ new Map();
8978
+ function useAskQueue() {
8979
+ const scope = _nullishCoalesce(_optionalChain([_chunkEWPR7662cjs.useAssistantRuntime.call(void 0, ), 'optionalAccess', _240 => _240.askPromptsUrl]), () => ( ""));
8980
+ let queue = askQueues.get(scope);
8981
+ if (!queue) {
8982
+ queue = createAskQueue();
8983
+ askQueues.set(scope, queue);
8988
8984
  }
8989
- return list;
8985
+ return queue;
8990
8986
  }
8991
- function useShownAskPrompts(ids) {
8987
+ function useAskSurface({
8988
+ topic,
8989
+ count = ASK_PROMPTS_DEFAULT_COUNT,
8990
+ exclude,
8991
+ enabled = true,
8992
+ onOpen
8993
+ } = {}) {
8994
+ const assistant = _chunkEWPR7662cjs.useAssistantRuntime.call(void 0, );
8992
8995
  const surface = _react.useId.call(void 0, );
8993
- const list = useShownList();
8994
- const key = ids === void 0 ? void 0 : ids === null ? null : ids.join(",");
8996
+ const queue = useAskQueue();
8997
+ const picks = assistantAvailable(assistant) && !!assistant.askPromptsUrl && enabled && exclude !== null;
8995
8998
  _react.useLayoutEffect.call(void 0, () => {
8996
- if (key === void 0) return void 0;
8997
- list.set(surface, key === null ? null : key ? key.split(",") : NO_IDS);
8998
- return () => list.remove(surface);
8999
- }, [list, surface, key]);
9000
- }
9001
- function useShownAskPromptIds() {
9002
- const list = useShownList();
9003
- return _react.useSyncExternalStore.call(void 0, list.subscribe, list.read, () => NO_IDS);
8999
+ if (!picks) return void 0;
9000
+ queue.enter(surface);
9001
+ return () => queue.leave(surface);
9002
+ }, [queue, surface, picks]);
9003
+ const turn = _react.useSyncExternalStore.call(void 0,
9004
+ queue.subscribe,
9005
+ () => queue.turnOf(surface),
9006
+ () => null
9007
+ );
9008
+ const [shownAtTurn, setShownAtTurn] = _react.useState.call(void 0, null);
9009
+ if (picks && turn !== null && shownAtTurn === null) setShownAtTurn(turn);
9010
+ const leftOut = _react.useMemo.call(void 0, () => _nullishCoalesce(exclude, () => ( (shownAtTurn ? shownAtTurn.split(",") : void 0))), [exclude, shownAtTurn]);
9011
+ const { prompts, isLoading, supported } = useAskPrompts({
9012
+ topic,
9013
+ count,
9014
+ exclude: leftOut,
9015
+ // Told exactly what to leave out, a surface needs nobody's pick: it never waits for a turn.
9016
+ enabled: picks && (exclude !== void 0 || shownAtTurn !== null)
9017
+ });
9018
+ const settled = picks && !isLoading ? prompts.map((prompt) => prompt.id).join(",") : null;
9019
+ _react.useLayoutEffect.call(void 0, () => {
9020
+ queue.settle(surface, settled === null ? null : settled ? settled.split(",") : []);
9021
+ }, [queue, surface, settled]);
9022
+ const open = useAssistantOpen(topic, onOpen);
9023
+ const scoped = _react.useMemo.call(void 0, () => assistant ? { ...assistant, open } : null, [assistant, open]);
9024
+ const onAsk = _optionalChain([assistant, 'optionalAccess', _241 => _241.onAsk]);
9025
+ const reportAsk = _react.useCallback.call(void 0, (prompt) => _optionalChain([onAsk, 'optionalCall', _242 => _242({ promptId: prompt.id, topic })]), [onAsk, topic]);
9026
+ return { assistant, scoped, prompts, isLoading: supported && (!picks || isLoading), supported, open, reportAsk };
9004
9027
  }
9005
9028
 
9006
9029
  // src/components/chat/assistant-ask-prompts.tsx
9007
9030
 
9031
+ var DEFAULT_ASK_CARD = {
9032
+ title: "Still deciding?",
9033
+ description: "{assistant} answers from our docs and customer stories."
9034
+ };
9035
+ var fillAssistant = (text2, name) => text2.split("{assistant}").join(name);
9008
9036
  function AssistantAskPrompts({
9037
+ variant = "row",
9009
9038
  topic,
9010
- count = ASK_PROMPTS_DEFAULT_COUNT,
9039
+ count,
9040
+ exclude,
9041
+ enabled,
9011
9042
  label,
9012
9043
  loading = false,
9044
+ title,
9045
+ description,
9013
9046
  onOpen,
9014
9047
  align,
9015
9048
  fadeColor,
9016
9049
  className
9017
9050
  }) {
9051
+ const card = variant === "card";
9018
9052
  const assistant = _chunkEWPR7662cjs.useAssistantRuntime.call(void 0, );
9019
- const { prompts, isLoading, supported } = useAskPrompts({ topic, count });
9020
- const open = useAssistantOpen(topic, onOpen);
9021
- const shown = assistantAvailable(assistant) && supported;
9022
- useShownAskPrompts(shown ? isLoading ? null : prompts.map((prompt) => prompt.id) : void 0);
9023
- const scoped = _react.useMemo.call(void 0, () => assistant ? { ...assistant, open } : null, [assistant, open]);
9024
- if (!assistantAvailable(assistant) || !supported) return null;
9025
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEWPR7662cjs.AssistantRuntimeContext.Provider, { value: scoped, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9053
+ const slots = _nullishCoalesce(_nullishCoalesce(count, () => ( (card ? _optionalChain([assistant, 'optionalAccess', _243 => _243.askCard, 'optionalAccess', _244 => _244.count]) : void 0))), () => ( ASK_PROMPTS_DEFAULT_COUNT));
9054
+ const ask = useAskSurface({ topic, count: slots, exclude, enabled, onOpen });
9055
+ if (!assistantAvailable(assistant)) return null;
9056
+ const shared = {
9057
+ prompts: ask.prompts,
9058
+ loading: ask.isLoading || loading,
9059
+ source: assistant.source,
9060
+ icon: assistant.icon,
9061
+ onOpen: ask.open,
9062
+ onAsk: ask.reportAsk
9063
+ };
9064
+ if (card) {
9065
+ const name = _nullishCoalesce(label, () => ( assistant.name));
9066
+ if (!name) return null;
9067
+ const words2 = _nullishCoalesce(_nullishCoalesce(description, () => ( _optionalChain([assistant, 'access', _245 => _245.askCard, 'optionalAccess', _246 => _246.description]))), () => ( DEFAULT_ASK_CARD.description));
9068
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEWPR7662cjs.AssistantRuntimeContext.Provider, { value: ask.scoped, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9069
+ AskCard,
9070
+ {
9071
+ ...shared,
9072
+ title: fillAssistant(_nullishCoalesce(_nullishCoalesce(title, () => ( _optionalChain([assistant, 'access', _247 => _247.askCard, 'optionalAccess', _248 => _248.title]))), () => ( DEFAULT_ASK_CARD.title)), name),
9073
+ description: words2 ? fillAssistant(words2, name) : void 0,
9074
+ count: ask.supported ? slots : 0,
9075
+ label: name,
9076
+ className
9077
+ }
9078
+ ) });
9079
+ }
9080
+ if (!ask.supported) return null;
9081
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEWPR7662cjs.AssistantRuntimeContext.Provider, { value: ask.scoped, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
9026
9082
  AskPrompts,
9027
9083
  {
9028
- prompts,
9029
- loading: isLoading || loading,
9030
- count,
9031
- source: assistant.source,
9084
+ ...shared,
9085
+ count: slots,
9032
9086
  label: _nullishCoalesce(_nullishCoalesce(label, () => ( assistant.name)), () => ( void 0)),
9033
- icon: assistant.icon,
9034
- onOpen: open,
9035
- onAsk: (prompt) => _optionalChain([assistant, 'access', _236 => _236.onAsk, 'optionalCall', _237 => _237({ promptId: prompt.id, topic })]),
9036
9087
  align,
9037
9088
  fadeColor,
9038
9089
  className
@@ -9201,7 +9252,7 @@ function MarqueeWall({
9201
9252
  if (!container || !copy) return;
9202
9253
  const size = axis === "y" ? copy.offsetHeight : copy.offsetWidth;
9203
9254
  copySizeRef.current = size;
9204
- const clone = _optionalChain([trackRef, 'access', _238 => _238.current, 'optionalAccess', _239 => _239.querySelector, 'call', _240 => _240('[data-marquee-copy="clone"]')]);
9255
+ const clone = _optionalChain([trackRef, 'access', _249 => _249.current, 'optionalAccess', _250 => _250.querySelector, 'call', _251 => _251('[data-marquee-copy="clone"]')]);
9205
9256
  wrapSizeRef.current = clone ? axis === "y" ? clone.offsetTop - copy.offsetTop : clone.offsetLeft - copy.offsetLeft : size + (typeof copyGap === "number" ? copyGap : 0);
9206
9257
  const avail = axis === "y" ? container.clientHeight : container.clientWidth;
9207
9258
  setOverflows(size > avail + 1);
@@ -9332,7 +9383,7 @@ function MarqueeWall({
9332
9383
  if (Math.abs(delta) > 3 && !dragMovedRef.current) {
9333
9384
  dragMovedRef.current = true;
9334
9385
  try {
9335
- _optionalChain([containerRef, 'access', _241 => _241.current, 'optionalAccess', _242 => _242.setPointerCapture, 'call', _243 => _243(e.pointerId)]);
9386
+ _optionalChain([containerRef, 'access', _252 => _252.current, 'optionalAccess', _253 => _253.setPointerCapture, 'call', _254 => _254(e.pointerId)]);
9336
9387
  } catch (e19) {
9337
9388
  }
9338
9389
  }
@@ -9349,7 +9400,7 @@ function MarqueeWall({
9349
9400
  dragSuppressUntilRef.current = performance.now() + DRAG_RESUME_MS;
9350
9401
  if (dragMovedRef.current) {
9351
9402
  try {
9352
- _optionalChain([containerRef, 'access', _244 => _244.current, 'optionalAccess', _245 => _245.releasePointerCapture, 'call', _246 => _246(e.pointerId)]);
9403
+ _optionalChain([containerRef, 'access', _255 => _255.current, 'optionalAccess', _256 => _256.releasePointerCapture, 'call', _257 => _257(e.pointerId)]);
9353
9404
  } catch (e20) {
9354
9405
  }
9355
9406
  }
@@ -9681,7 +9732,7 @@ var ChatTicketItem = _react.forwardRef.call(void 0,
9681
9732
  {
9682
9733
  ref,
9683
9734
  type: "button",
9684
- onClick: () => _optionalChain([onClick, 'optionalCall', _247 => _247(ticket.id)]),
9735
+ onClick: () => _optionalChain([onClick, 'optionalCall', _258 => _258(ticket.id)]),
9685
9736
  className: _chunk3ATAYP36cjs.cn.call(void 0,
9686
9737
  "flex h-20 w-full items-center gap-4 px-4",
9687
9738
  "border-b border-ods-border bg-ods-card",
@@ -9951,7 +10002,7 @@ function MingoChatHistoryRow({
9951
10002
  const unread = _nullishCoalesce(dialog.unreadMessagesCount, () => ( 0));
9952
10003
  const hasMenu = !!onRequestRename || !!onRequestArchive || !!onRequestCopyLink || !!onRequestCompact;
9953
10004
  const owner = dialog.owner;
9954
- const hasAvatar = !!(_optionalChain([owner, 'optionalAccess', _248 => _248.name]) || _optionalChain([owner, 'optionalAccess', _249 => _249.avatarUrl]));
10005
+ const hasAvatar = !!(_optionalChain([owner, 'optionalAccess', _259 => _259.name]) || _optionalChain([owner, 'optionalAccess', _260 => _260.avatarUrl]));
9955
10006
  const [menuOpen, setMenuOpen] = _react.useState.call(void 0, false);
9956
10007
  const menuItems = chatDialogMenuItems({
9957
10008
  onCopyLink: onRequestCopyLink && (() => onRequestCopyLink(dialog)),
@@ -9976,11 +10027,11 @@ function MingoChatHistoryRow({
9976
10027
  {
9977
10028
  role: "button",
9978
10029
  tabIndex: 0,
9979
- onClick: () => _optionalChain([onSelect, 'optionalCall', _250 => _250(dialog.id)]),
10030
+ onClick: () => _optionalChain([onSelect, 'optionalCall', _261 => _261(dialog.id)]),
9980
10031
  onKeyDown: (e) => {
9981
10032
  if (e.key === "Enter" || e.key === " ") {
9982
10033
  e.preventDefault();
9983
- _optionalChain([onSelect, 'optionalCall', _251 => _251(dialog.id)]);
10034
+ _optionalChain([onSelect, 'optionalCall', _262 => _262(dialog.id)]);
9984
10035
  }
9985
10036
  },
9986
10037
  className: "flex min-w-0 flex-1 cursor-pointer items-center gap-[var(--spacing-system-xsf)] p-[var(--spacing-system-s)] focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ods-accent",
@@ -10047,8 +10098,8 @@ function MingoChatHistoryRow({
10047
10098
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
10048
10099
  "span",
10049
10100
  {
10050
- onClick: () => _optionalChain([onSelect, 'optionalCall', _252 => _252(dialog.id)]),
10051
- title: _optionalChain([owner, 'optionalAccess', _253 => _253.name]) || void 0,
10101
+ onClick: () => _optionalChain([onSelect, 'optionalCall', _263 => _263(dialog.id)]),
10102
+ title: _optionalChain([owner, 'optionalAccess', _264 => _264.name]) || void 0,
10052
10103
  className: _chunk3ATAYP36cjs.cn.call(void 0,
10053
10104
  "absolute inset-0 flex cursor-pointer items-center justify-center transition-opacity",
10054
10105
  hasMenu && (menuOpen ? "pointer-events-none opacity-0" : "md:group-hover/row:pointer-events-none md:group-hover/row:opacity-0 md:peer-[:focus-within]/menu:pointer-events-none md:peer-[:focus-within]/menu:opacity-0")
@@ -10058,9 +10109,9 @@ function MingoChatHistoryRow({
10058
10109
  {
10059
10110
  variant: "round",
10060
10111
  sizePx: 24,
10061
- src: _optionalChain([owner, 'optionalAccess', _254 => _254.avatarUrl]) || void 0,
10062
- alt: _optionalChain([owner, 'optionalAccess', _255 => _255.name]) || void 0,
10063
- fallback: _optionalChain([owner, 'optionalAccess', _256 => _256.name]) || void 0,
10112
+ src: _optionalChain([owner, 'optionalAccess', _265 => _265.avatarUrl]) || void 0,
10113
+ alt: _optionalChain([owner, 'optionalAccess', _266 => _266.name]) || void 0,
10114
+ fallback: _optionalChain([owner, 'optionalAccess', _267 => _267.name]) || void 0,
10064
10115
  initialsClassName: "text-[10px] text-ods-text-secondary"
10065
10116
  }
10066
10117
  )
@@ -10112,7 +10163,7 @@ function MingoChatHistory({
10112
10163
  className
10113
10164
  }) {
10114
10165
  const groups = _react.useMemo.call(void 0, () => groupDialogs(dialogs), [dialogs]);
10115
- const noSearchResults = groups.length === 0 && !!_optionalChain([searchQuery, 'optionalAccess', _257 => _257.trim, 'call', _258 => _258()]);
10166
+ const noSearchResults = groups.length === 0 && !!_optionalChain([searchQuery, 'optionalAccess', _268 => _268.trim, 'call', _269 => _269()]);
10116
10167
  const { scrollRef, fadeTop, fadeBottom, update: updateFade } = useScrollFade();
10117
10168
  const sentinelRef = _react.useRef.call(void 0, null);
10118
10169
  const onLoadMoreRef = _react.useRef.call(void 0, onLoadMore);
@@ -10129,7 +10180,7 @@ function MingoChatHistory({
10129
10180
  const io = new IntersectionObserver(
10130
10181
  ([entry]) => {
10131
10182
  if (entry.isIntersecting && !isLoadingMoreRef.current) {
10132
- _optionalChain([onLoadMoreRef, 'access', _259 => _259.current, 'optionalCall', _260 => _260()]);
10183
+ _optionalChain([onLoadMoreRef, 'access', _270 => _270.current, 'optionalCall', _271 => _271()]);
10133
10184
  }
10134
10185
  },
10135
10186
  { root, rootMargin: "120px", threshold: 0.1 }
@@ -10314,8 +10365,8 @@ function MingoWelcome({
10314
10365
  icon: action.icon,
10315
10366
  variant: action.variant,
10316
10367
  onSelect: action.onClick,
10317
- onHoverStart: () => _optionalChain([onQuickActionHover, 'optionalCall', _261 => _261(action)]),
10318
- onHoverEnd: () => _optionalChain([onQuickActionHoverEnd, 'optionalCall', _262 => _262()])
10368
+ onHoverStart: () => _optionalChain([onQuickActionHover, 'optionalCall', _272 => _272(action)]),
10369
+ onHoverEnd: () => _optionalChain([onQuickActionHoverEnd, 'optionalCall', _273 => _273()])
10319
10370
  })),
10320
10371
  agentSlug,
10321
10372
  rows: 4,
@@ -10368,9 +10419,9 @@ function GuideWelcome({
10368
10419
  props: action.iconProps,
10369
10420
  accent: _nullishCoalesce(_nullishCoalesce(action.accent, () => ( accentFromIdentityIcon(icon))), () => ( "cyan"))
10370
10421
  },
10371
- onSelect: () => _optionalChain([onQuickAction, 'optionalCall', _263 => _263(action)]),
10372
- onHoverStart: () => _optionalChain([onQuickActionHover, 'optionalCall', _264 => _264(action)]),
10373
- onHoverEnd: () => _optionalChain([onQuickActionHoverEnd, 'optionalCall', _265 => _265()])
10422
+ onSelect: () => _optionalChain([onQuickAction, 'optionalCall', _274 => _274(action)]),
10423
+ onHoverStart: () => _optionalChain([onQuickActionHover, 'optionalCall', _275 => _275(action)]),
10424
+ onHoverEnd: () => _optionalChain([onQuickActionHoverEnd, 'optionalCall', _276 => _276()])
10374
10425
  })),
10375
10426
  [quickActions, icon, onQuickAction, onQuickActionHover, onQuickActionHoverEnd]
10376
10427
  );
@@ -10579,7 +10630,7 @@ function MingoArchiveList({
10579
10630
  if (!sentinel || !hasMore || typeof IntersectionObserver === "undefined") return void 0;
10580
10631
  const observer = new IntersectionObserver(
10581
10632
  ([entry]) => {
10582
- if (_optionalChain([entry, 'optionalAccess', _266 => _266.isIntersecting]) && !isLoadingMoreRef.current) _optionalChain([onLoadMoreRef, 'access', _267 => _267.current, 'optionalCall', _268 => _268()]);
10633
+ if (_optionalChain([entry, 'optionalAccess', _277 => _277.isIntersecting]) && !isLoadingMoreRef.current) _optionalChain([onLoadMoreRef, 'access', _278 => _278.current, 'optionalCall', _279 => _279()]);
10583
10634
  },
10584
10635
  { rootMargin: "120px", threshold: 0.1 }
10585
10636
  );
@@ -10598,7 +10649,7 @@ function MingoArchiveList({
10598
10649
  ChatListItem,
10599
10650
  {
10600
10651
  title: dialog.title || "Untitled Chat",
10601
- onClick: () => _optionalChain([onSelectDialog, 'optionalCall', _269 => _269(dialog.id)]),
10652
+ onClick: () => _optionalChain([onSelectDialog, 'optionalCall', _280 => _280(dialog.id)]),
10602
10653
  trailing: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: [
10603
10654
  dialog.timestamp && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-nowrap text-ods-text-secondary text-h6", children: _chunkHP4UUBJCcjs.formatRelativeTime.call(void 0, dialog.timestamp) }),
10604
10655
  dialog.owner && (dialog.owner.name || dialog.owner.avatarUrl) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -10737,7 +10788,7 @@ function ChatHeaderSearchField({
10737
10788
  const finishCollapse = _react.useCallback.call(void 0, () => {
10738
10789
  if (collapsedRef.current) return;
10739
10790
  collapsedRef.current = true;
10740
- _optionalChain([onCollapse, 'optionalCall', _270 => _270()]);
10791
+ _optionalChain([onCollapse, 'optionalCall', _281 => _281()]);
10741
10792
  }, [onCollapse]);
10742
10793
  const beginCollapse = _react.useCallback.call(void 0, () => {
10743
10794
  setExiting(true);
@@ -10818,7 +10869,7 @@ var STATUS_GLYPHS = {
10818
10869
  approval: { icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.ShieldCheckIcon, { className: "text-ods-accent" }), label: "Waiting for approval" }
10819
10870
  };
10820
10871
  function statusFor(dialog, statusOf) {
10821
- return _nullishCoalesce(_optionalChain([statusOf, 'optionalCall', _271 => _271(dialog)]), () => ( ((_nullishCoalesce(dialog.unreadMessagesCount, () => ( 0))) > 0 ? "unread" : void 0)));
10872
+ return _nullishCoalesce(_optionalChain([statusOf, 'optionalCall', _282 => _282(dialog)]), () => ( ((_nullishCoalesce(dialog.unreadMessagesCount, () => ( 0))) > 0 ? "unread" : void 0)));
10822
10873
  }
10823
10874
  function MingoChatRail({
10824
10875
  dialogs,
@@ -10847,8 +10898,8 @@ function MingoChatRail({
10847
10898
  onExpand,
10848
10899
  className
10849
10900
  }) {
10850
- const [searchOpen, setSearchOpen] = _react.useState.call(void 0, !!_optionalChain([searchQuery, 'optionalAccess', _272 => _272.trim, 'call', _273 => _273()]));
10851
- const hasSearch = !!_optionalChain([searchQuery, 'optionalAccess', _274 => _274.trim, 'call', _275 => _275()]);
10901
+ const [searchOpen, setSearchOpen] = _react.useState.call(void 0, !!_optionalChain([searchQuery, 'optionalAccess', _283 => _283.trim, 'call', _284 => _284()]));
10902
+ const hasSearch = !!_optionalChain([searchQuery, 'optionalAccess', _285 => _285.trim, 'call', _286 => _286()]);
10852
10903
  const items = [];
10853
10904
  if (onNewChat) items.push({ id: "new", label: "Start New Chat", icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.ChatPlusIcon, {}), onClick: onNewChat });
10854
10905
  if (onOpenArchive) {
@@ -10905,7 +10956,7 @@ function MingoChatRail({
10905
10956
  if (!sentinel || !hasMore || typeof IntersectionObserver === "undefined") return void 0;
10906
10957
  const observer = new IntersectionObserver(
10907
10958
  ([entry]) => {
10908
- if (_optionalChain([entry, 'optionalAccess', _276 => _276.isIntersecting]) && !isLoadingMoreRef.current) _optionalChain([onLoadMoreRef, 'access', _277 => _277.current, 'optionalCall', _278 => _278()]);
10959
+ if (_optionalChain([entry, 'optionalAccess', _287 => _287.isIntersecting]) && !isLoadingMoreRef.current) _optionalChain([onLoadMoreRef, 'access', _288 => _288.current, 'optionalCall', _289 => _289()]);
10909
10960
  },
10910
10961
  { rootMargin: "120px", threshold: 0.1 }
10911
10962
  );
@@ -11028,7 +11079,7 @@ function MingoChatRailRow({ dialog, active, status, onSelect, menuItems }) {
11028
11079
  {
11029
11080
  active,
11030
11081
  title,
11031
- onClick: () => _optionalChain([onSelect, 'optionalCall', _279 => _279(dialog.id)]),
11082
+ onClick: () => _optionalChain([onSelect, 'optionalCall', _290 => _290(dialog.id)]),
11032
11083
  className: _chunk3ATAYP36cjs.cn.call(void 0, hasMenu && "pr-10"),
11033
11084
  trailing: glyph ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
11034
11085
  "span",
@@ -11162,7 +11213,7 @@ function MingoHistoryRail({
11162
11213
  onRetry,
11163
11214
  className
11164
11215
  }) {
11165
- const hasSearch = !!_optionalChain([searchQuery, 'optionalAccess', _280 => _280.trim, 'call', _281 => _281()]);
11216
+ const hasSearch = !!_optionalChain([searchQuery, 'optionalAccess', _291 => _291.trim, 'call', _292 => _292()]);
11166
11217
  const hasList = dialogs.length > 0 || hasSearch;
11167
11218
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
11168
11219
  "div",
@@ -11311,7 +11362,7 @@ function ChatDialogModals({
11311
11362
  RenameChatModal,
11312
11363
  {
11313
11364
  isOpen: renameTarget != null,
11314
- initialName: _nullishCoalesce(_optionalChain([renameTarget, 'optionalAccess', _282 => _282.title]), () => ( "")),
11365
+ initialName: _nullishCoalesce(_optionalChain([renameTarget, 'optionalAccess', _293 => _293.title]), () => ( "")),
11315
11366
  onClose: () => setRenameTarget(null),
11316
11367
  onSave: onConfirmRename
11317
11368
  }
@@ -11528,7 +11579,7 @@ function ChatAttachmentAddButton({
11528
11579
  const canAddMore = slotsAvailable > 0 && !disabled;
11529
11580
  const handlePick = () => {
11530
11581
  if (!canAddMore) return;
11531
- _optionalChain([fileInputRef, 'access', _283 => _283.current, 'optionalAccess', _284 => _284.click, 'call', _285 => _285()]);
11582
+ _optionalChain([fileInputRef, 'access', _294 => _294.current, 'optionalAccess', _295 => _295.click, 'call', _296 => _296()]);
11532
11583
  };
11533
11584
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
11534
11585
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -11691,7 +11742,7 @@ function ChatContextMemoryBar({
11691
11742
  _react.useEffect.call(void 0, () => {
11692
11743
  if (!open) return void 0;
11693
11744
  const onOutside = (e) => {
11694
- if (_optionalChain([rootRef, 'access', _286 => _286.current, 'optionalAccess', _287 => _287.contains, 'call', _288 => _288(e.target)])) return;
11745
+ if (_optionalChain([rootRef, 'access', _297 => _297.current, 'optionalAccess', _298 => _298.contains, 'call', _299 => _299(e.target)])) return;
11695
11746
  setOpen(false);
11696
11747
  };
11697
11748
  document.addEventListener("mousedown", onOutside, true);
@@ -11994,7 +12045,7 @@ function ChatComposer({
11994
12045
  const locked = lock != null;
11995
12046
  const selected = _nullishCoalesce(selectedContextItems, () => ( []));
11996
12047
  const memory = _nullishCoalesce(contextMemoryItems, () => ( []));
11997
- const entityTypes = _optionalChain([contextPicker, 'optionalAccess', _289 => _289.entityTypes]);
12048
+ const entityTypes = _optionalChain([contextPicker, 'optionalAccess', _300 => _300.entityTypes]);
11998
12049
  const iconByType = _react.useMemo.call(void 0, () => {
11999
12050
  const map = /* @__PURE__ */ new Map();
12000
12051
  for (const t of _nullishCoalesce(entityTypes, () => ( []))) map.set(t.type, t.icon);
@@ -12010,7 +12061,7 @@ function ChatComposer({
12010
12061
  sending,
12011
12062
  placeholder,
12012
12063
  disabled: locked,
12013
- disabledPlaceholder: _optionalChain([lock, 'optionalAccess', _290 => _290.placeholder]),
12064
+ disabledPlaceholder: _optionalChain([lock, 'optionalAccess', _301 => _301.placeholder]),
12014
12065
  previewText,
12015
12066
  fullWidth: true,
12016
12067
  className: "px-0",
@@ -12023,7 +12074,7 @@ function ChatComposer({
12023
12074
  startIcon: contextEnabled ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
12024
12075
  ChatComposerPlusMenu,
12025
12076
  {
12026
- onToggle: () => contextPickerOpen ? _optionalChain([onCloseContextPicker, 'optionalCall', _291 => _291()]) : _optionalChain([onOpenContextPicker, 'optionalCall', _292 => _292()]),
12077
+ onToggle: () => contextPickerOpen ? _optionalChain([onCloseContextPicker, 'optionalCall', _302 => _302()]) : _optionalChain([onOpenContextPicker, 'optionalCall', _303 => _303()]),
12027
12078
  open: contextPickerOpen,
12028
12079
  disabled: attachmentsDisabled || locked,
12029
12080
  dropdown: contextPicker ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -12032,8 +12083,8 @@ function ChatComposer({
12032
12083
  open: contextPickerOpen,
12033
12084
  config: contextPicker,
12034
12085
  selectedItems: selected,
12035
- onToggleItem: (item) => _optionalChain([onToggleContextItem, 'optionalCall', _293 => _293(item)]),
12036
- onClose: () => _optionalChain([onCloseContextPicker, 'optionalCall', _294 => _294()]),
12086
+ onToggleItem: (item) => _optionalChain([onToggleContextItem, 'optionalCall', _304 => _304(item)]),
12087
+ onClose: () => _optionalChain([onCloseContextPicker, 'optionalCall', _305 => _305()]),
12037
12088
  mentionQuery
12038
12089
  }
12039
12090
  ) : void 0
@@ -12224,8 +12275,8 @@ ChatSidebarSkeleton.displayName = "ChatSidebarSkeleton";
12224
12275
  var DialogListItem = _react.forwardRef.call(void 0,
12225
12276
  ({ className, dialog, isActive, onDialogSelect, onClick, ...props }, ref) => {
12226
12277
  const handleClick = (e) => {
12227
- _optionalChain([onDialogSelect, 'optionalCall', _295 => _295(dialog.id)]);
12228
- _optionalChain([onClick, 'optionalCall', _296 => _296(e)]);
12278
+ _optionalChain([onDialogSelect, 'optionalCall', _306 => _306(dialog.id)]);
12279
+ _optionalChain([onClick, 'optionalCall', _307 => _307(e)]);
12229
12280
  };
12230
12281
  const formatTimestamp = (timestamp) => {
12231
12282
  return _chunkTKFTWM3Vcjs.formatDateWithTimezone.call(void 0, timestamp, _chunkTKFTWM3Vcjs.VIEWER_TIMEZONE, "numericDateTime24h");
@@ -12298,7 +12349,7 @@ var ChatSidebar = _react.forwardRef.call(void 0,
12298
12349
  (entries) => {
12299
12350
  const [entry] = entries;
12300
12351
  if (entry.isIntersecting && !isFetchingRef.current) {
12301
- _optionalChain([onLoadMoreRef, 'access', _297 => _297.current, 'optionalCall', _298 => _298()]);
12352
+ _optionalChain([onLoadMoreRef, 'access', _308 => _308.current, 'optionalCall', _309 => _309()]);
12302
12353
  }
12303
12354
  },
12304
12355
  { root: scrollContainer, rootMargin: "100px", threshold: 0.1 }
@@ -12513,7 +12564,7 @@ function OnboardingCarousel({
12513
12564
  " of ",
12514
12565
  steps.length,
12515
12566
  ": ",
12516
- _optionalChain([steps, 'access', _299 => _299[index], 'optionalAccess', _300 => _300.title])
12567
+ _optionalChain([steps, 'access', _310 => _310[index], 'optionalAccess', _311 => _311.title])
12517
12568
  ] }),
12518
12569
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", role: "group", "aria-label": "Choose step", children: steps.map((step, i) => {
12519
12570
  const isCurrent = i === index;
@@ -12618,7 +12669,7 @@ function isForeignOriginHref(href) {
12618
12669
  function runNavigation(runtime, href, path, targetPlatform, fallbackNavigate) {
12619
12670
  const isNewTab = runtime ? _chunkHEQ4GPYEcjs.computeIsNewTab.call(void 0, runtime, href, _nullishCoalesce(targetPlatform, () => ( null))) : false;
12620
12671
  if (isNewTab) {
12621
- if (_optionalChain([runtime, 'optionalAccess', _301 => _301.navigation, 'access', _302 => _302.openExternal])) runtime.navigation.openExternal(href);
12672
+ if (_optionalChain([runtime, 'optionalAccess', _312 => _312.navigation, 'access', _313 => _313.openExternal])) runtime.navigation.openExternal(href);
12622
12673
  else window.open(href, "_blank", NEW_TAB_FEATURES);
12623
12674
  return;
12624
12675
  }
@@ -12626,7 +12677,7 @@ function runNavigation(runtime, href, path, targetPlatform, fallbackNavigate) {
12626
12677
  if (target.includes("#") && _chunkK2JUJ37Dcjs.navigateSamePageHash.call(void 0, target, { headerOffset: _chunkK2JUJ37Dcjs.STICKY_HEADER_OFFSET_PX })) {
12627
12678
  return;
12628
12679
  }
12629
- const handled = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _303 => _303.navigation, 'access', _304 => _304.navigate, 'optionalCall', _305 => _305({ href, path, targetPlatform })]), () => ( false));
12680
+ const handled = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _314 => _314.navigation, 'access', _315 => _315.navigate, 'optionalCall', _316 => _316({ href, path, targetPlatform })]), () => ( false));
12630
12681
  if (!handled) {
12631
12682
  if (fallbackNavigate) fallbackNavigate(target);
12632
12683
  else window.location.assign(target);
@@ -12676,7 +12727,7 @@ function useNavLinkViaRuntime({
12676
12727
  const resolvedHref = resolveHrefForRuntime(href, runtime);
12677
12728
  const isNewTab = _chunkHEQ4GPYEcjs.computeIsNewTab.call(void 0, runtime, resolvedHref, _nullishCoalesce(targetPlatform, () => ( null)));
12678
12729
  const onClick = (e) => {
12679
- _optionalChain([onClickProp, 'optionalCall', _306 => _306(e)]);
12730
+ _optionalChain([onClickProp, 'optionalCall', _317 => _317(e)]);
12680
12731
  if (e.defaultPrevented) return;
12681
12732
  const handled = executeNavigation({
12682
12733
  event: e,
@@ -12686,7 +12737,7 @@ function useNavLinkViaRuntime({
12686
12737
  targetPlatform,
12687
12738
  fallbackNavigate: router.push
12688
12739
  });
12689
- if (handled && !isNewTab && _optionalChain([panel, 'optionalAccess', _307 => _307.closeChat])) panel.closeChat();
12740
+ if (handled && !isNewTab && _optionalChain([panel, 'optionalAccess', _318 => _318.closeChat])) panel.closeChat();
12690
12741
  };
12691
12742
  const attrs = _chunkHEQ4GPYEcjs.newTabAnchorAttrs.call(void 0, isNewTab);
12692
12743
  return {
@@ -12770,11 +12821,11 @@ var DEFAULT_CAPTIONS_PATH = "/api/captions";
12770
12821
  function getCaptionsUrl(entityType, entityId, srtContent, options) {
12771
12822
  if (!srtContent) return void 0;
12772
12823
  const hash = `${srtContent.length}-${srtContent.slice(0, 8).replace(/\s/g, "")}`;
12773
- const variant = _optionalChain([options, 'optionalAccess', _308 => _308.variant]) ? `&variant=${options.variant}` : "";
12824
+ const variant = _optionalChain([options, 'optionalAccess', _319 => _319.variant]) ? `&variant=${options.variant}` : "";
12774
12825
  return `${DEFAULT_CAPTIONS_PATH}/${entityType}/${entityId}?v=${hash}${variant}`;
12775
12826
  }
12776
12827
  function resolveCaptionsBase(endpoints) {
12777
- return _optionalChain([endpoints, 'optionalAccess', _309 => _309.captionsUrlPrefix]) || DEFAULT_CAPTIONS_PATH;
12828
+ return _optionalChain([endpoints, 'optionalAccess', _320 => _320.captionsUrlPrefix]) || DEFAULT_CAPTIONS_PATH;
12778
12829
  }
12779
12830
  function rebaseCaptionsUrl(endpoints, url) {
12780
12831
  if (!url || !url.startsWith(`${DEFAULT_CAPTIONS_PATH}/`)) return url;
@@ -12863,7 +12914,7 @@ TabsContent.displayName = TabsPrimitive.Content.displayName;
12863
12914
  // src/components/features/use-captions.ts
12864
12915
 
12865
12916
  function useCaptions() {
12866
- const endpoints = _nullishCoalesce(_optionalChain([_chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, ), 'optionalAccess', _310 => _310.endpoints]), () => ( null));
12917
+ const endpoints = _nullishCoalesce(_optionalChain([_chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, ), 'optionalAccess', _321 => _321.endpoints]), () => ( null));
12867
12918
  return _react.useMemo.call(void 0,
12868
12919
  () => ({
12869
12920
  forEntity: (entityType, entity) => getEntityCaptionUrls(endpoints, entityType, entity),
@@ -13138,9 +13189,9 @@ function CardsStrip(props) {
13138
13189
  const p = hoverPointerRef.current;
13139
13190
  if (!p.inside) return;
13140
13191
  const el = typeof document !== "undefined" ? document.elementFromPoint(p.x, p.y) : null;
13141
- const cardEl = _optionalChain([el, 'optionalAccess', _311 => _311.closest, 'optionalCall', _312 => _312("[data-strip-card-key]")]);
13142
- const scoped = cardEl && _optionalChain([scrollerRef, 'access', _313 => _313.current, 'optionalAccess', _314 => _314.contains, 'call', _315 => _315(cardEl)]) ? cardEl : null;
13143
- const key = _nullishCoalesce(_optionalChain([scoped, 'optionalAccess', _316 => _316.getAttribute, 'call', _317 => _317("data-strip-card-key")]), () => ( null));
13192
+ const cardEl = _optionalChain([el, 'optionalAccess', _322 => _322.closest, 'optionalCall', _323 => _323("[data-strip-card-key]")]);
13193
+ const scoped = cardEl && _optionalChain([scrollerRef, 'access', _324 => _324.current, 'optionalAccess', _325 => _325.contains, 'call', _326 => _326(cardEl)]) ? cardEl : null;
13194
+ const key = _nullishCoalesce(_optionalChain([scoped, 'optionalAccess', _327 => _327.getAttribute, 'call', _328 => _328("data-strip-card-key")]), () => ( null));
13144
13195
  const current = activeKeyRef.current;
13145
13196
  if (key === current) return;
13146
13197
  if (current !== null) deactivate(current);
@@ -13178,7 +13229,7 @@ function CardsStrip(props) {
13178
13229
  }, [syncHoverToPointer]);
13179
13230
  const seamBuffer = _react.useCallback.call(void 0, () => {
13180
13231
  const half = singleCopyWidthRef.current;
13181
- const viewport = _nullishCoalesce(_optionalChain([scrollerRef, 'access', _318 => _318.current, 'optionalAccess', _319 => _319.clientWidth]), () => ( 0));
13232
+ const viewport = _nullishCoalesce(_optionalChain([scrollerRef, 'access', _329 => _329.current, 'optionalAccess', _330 => _330.clientWidth]), () => ( 0));
13182
13233
  return Math.max(0, Math.min(200, half / 4, half - viewport - TRACK_GAP_PX - 1));
13183
13234
  }, []);
13184
13235
  const mirror = _react.useCallback.call(void 0,
@@ -13202,7 +13253,7 @@ function CardsStrip(props) {
13202
13253
  const scroller = scrollerRef.current;
13203
13254
  if (scroller) scroller.scrollLeft = mirror(pos);
13204
13255
  },
13205
- readBack: () => mirror(_nullishCoalesce(_optionalChain([scrollerRef, 'access', _320 => _320.current, 'optionalAccess', _321 => _321.scrollLeft]), () => ( 0))),
13256
+ readBack: () => mirror(_nullishCoalesce(_optionalChain([scrollerRef, 'access', _331 => _331.current, 'optionalAccess', _332 => _332.scrollLeft]), () => ( 0))),
13206
13257
  onAfterFrame: syncHoverIfScrolled
13207
13258
  });
13208
13259
  const [mountedIdx, setMountedIdx] = _react.useState.call(void 0, () => /* @__PURE__ */ new Set());
@@ -13250,11 +13301,11 @@ function CardsStrip(props) {
13250
13301
  fn = (el) => {
13251
13302
  if (!el) return void 0;
13252
13303
  cardElIdxRef.current.set(el, idx);
13253
- _optionalChain([cardObserverRef, 'access', _322 => _322.current, 'optionalAccess', _323 => _323.observe, 'call', _324 => _324(el)]);
13304
+ _optionalChain([cardObserverRef, 'access', _333 => _333.current, 'optionalAccess', _334 => _334.observe, 'call', _335 => _335(el)]);
13254
13305
  return () => {
13255
13306
  cardElIdxRef.current.delete(el);
13256
13307
  cardElNearRef.current.delete(el);
13257
- _optionalChain([cardObserverRef, 'access', _325 => _325.current, 'optionalAccess', _326 => _326.unobserve, 'call', _327 => _327(el)]);
13308
+ _optionalChain([cardObserverRef, 'access', _336 => _336.current, 'optionalAccess', _337 => _337.unobserve, 'call', _338 => _338(el)]);
13258
13309
  };
13259
13310
  };
13260
13311
  cardRefFns.set(idx, fn);
@@ -13273,7 +13324,7 @@ function CardsStrip(props) {
13273
13324
  const track = trackRef.current;
13274
13325
  if (!scroller || !track) return;
13275
13326
  const firstCard = track.firstElementChild;
13276
- const step = (_nullishCoalesce(_optionalChain([firstCard, 'optionalAccess', _328 => _328.offsetWidth]), () => ( 320))) + TRACK_GAP_PX;
13327
+ const step = (_nullishCoalesce(_optionalChain([firstCard, 'optionalAccess', _339 => _339.offsetWidth]), () => ( 320))) + TRACK_GAP_PX;
13277
13328
  chevronSuppressUntilRef.current = performance.now() + CHEVRON_SUPPRESS_MS;
13278
13329
  if (marqueeActiveRef.current) {
13279
13330
  glideBy((reverse ? -dir : dir) * step);
@@ -13334,7 +13385,7 @@ function CardsStrip(props) {
13334
13385
  {
13335
13386
  ref: (node) => {
13336
13387
  wrapperRef.current = node;
13337
- _optionalChain([rootRef, 'optionalCall', _329 => _329(node)]);
13388
+ _optionalChain([rootRef, 'optionalCall', _340 => _340(node)]);
13338
13389
  },
13339
13390
  className: _chunk3ATAYP36cjs.cn.call(void 0, "flex w-full min-w-0 flex-col gap-6", className),
13340
13391
  children: [
@@ -13509,7 +13560,7 @@ function VideoBitesStrip({
13509
13560
  const filtered = filterPublished ? bites.filter((b) => b.published) : [...bites];
13510
13561
  return filtered.sort(sortComparator);
13511
13562
  }, [bites, filterPublished, sortComparator]);
13512
- const warmup = _chunkHEQ4GPYEcjs.useVideoWarmup.call(void 0, { videoUrl: _optionalChain([items, 'access', _330 => _330[0], 'optionalAccess', _331 => _331.url]) || null });
13563
+ const warmup = _chunkHEQ4GPYEcjs.useVideoWarmup.call(void 0, { videoUrl: _optionalChain([items, 'access', _341 => _341[0], 'optionalAccess', _342 => _342.url]) || null });
13513
13564
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13514
13565
  CardsStrip,
13515
13566
  {
@@ -13576,8 +13627,8 @@ function VideoBiteCard({
13576
13627
  const controlled = active !== void 0;
13577
13628
  const [selfActive, setSelfActive] = _react.useState.call(void 0, false);
13578
13629
  const isActive = controlled ? !!active : selfActive;
13579
- const activate = () => controlled ? _optionalChain([onActivate, 'optionalCall', _332 => _332(key)]) : setSelfActive(true);
13580
- const deactivate = () => controlled ? _optionalChain([onDeactivate, 'optionalCall', _333 => _333(key)]) : setSelfActive(false);
13630
+ const activate = () => controlled ? _optionalChain([onActivate, 'optionalCall', _343 => _343(key)]) : setSelfActive(true);
13631
+ const deactivate = () => controlled ? _optionalChain([onDeactivate, 'optionalCall', _344 => _344(key)]) : setSelfActive(false);
13581
13632
  const titleInputRef = _react.useRef.call(void 0, null);
13582
13633
  _chunkULWVKHSIcjs.useIsomorphicLayoutEffect.call(void 0, () => {
13583
13634
  const el = titleInputRef.current;
@@ -13587,7 +13638,7 @@ function VideoBiteCard({
13587
13638
  });
13588
13639
  const navigate = () => {
13589
13640
  if (bite.onNavigate) bite.onNavigate();
13590
- else _optionalChain([onBiteNavigate, 'optionalCall', _334 => _334(bite, index)]);
13641
+ else _optionalChain([onBiteNavigate, 'optionalCall', _345 => _345(bite, index)]);
13591
13642
  };
13592
13643
  const handlePointerEnter = () => {
13593
13644
  if (!isTouch) activate();
@@ -13612,9 +13663,9 @@ function VideoBiteCard({
13612
13663
  placeholder: "Title (optional)",
13613
13664
  "aria-label": "Bite title",
13614
13665
  rows: 1,
13615
- onChange: (e) => _optionalChain([onTitleChange, 'optionalCall', _335 => _335(e.target.value)]),
13666
+ onChange: (e) => _optionalChain([onTitleChange, 'optionalCall', _346 => _346(e.target.value)]),
13616
13667
  ref: titleInputRef,
13617
- onBlur: (e) => _optionalChain([onTitleCommit, 'optionalCall', _336 => _336(e.target.value)]),
13668
+ onBlur: (e) => _optionalChain([onTitleCommit, 'optionalCall', _347 => _347(e.target.value)]),
13618
13669
  onClick: (e) => e.stopPropagation(),
13619
13670
  className: _chunk3ATAYP36cjs.cn.call(void 0,
13620
13671
  titleClass,
@@ -13691,7 +13742,7 @@ function VideoBiteCard({
13691
13742
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
13692
13743
  "div",
13693
13744
  {
13694
- ref: (node) => _optionalChain([rootRef, 'optionalCall', _337 => _337(node)]),
13745
+ ref: (node) => _optionalChain([rootRef, 'optionalCall', _348 => _348(node)]),
13695
13746
  "aria-hidden": isClone || void 0,
13696
13747
  "data-strip-card-key": key,
13697
13748
  className: _chunk3ATAYP36cjs.cn.call(void 0,
@@ -13746,8 +13797,8 @@ function EntityVideoSection({
13746
13797
  const hasHighlight = !!highlightVideoUrl;
13747
13798
  const hasVideo = hasFullVideo || hasHighlight;
13748
13799
  const derivedCaptions = captionsEntity ? captions.forEntityId(captionsEntity.type, captionsEntity.id) : null;
13749
- const captionsUrl = _nullishCoalesce(captionsUrlProp, () => ( _optionalChain([derivedCaptions, 'optionalAccess', _338 => _338.captionsUrl])));
13750
- const highlightCaptionsUrl = _nullishCoalesce(highlightCaptionsUrlProp, () => ( _optionalChain([derivedCaptions, 'optionalAccess', _339 => _339.highlightCaptionsUrl])));
13800
+ const captionsUrl = _nullishCoalesce(captionsUrlProp, () => ( _optionalChain([derivedCaptions, 'optionalAccess', _349 => _349.captionsUrl])));
13801
+ const highlightCaptionsUrl = _nullishCoalesce(highlightCaptionsUrlProp, () => ( _optionalChain([derivedCaptions, 'optionalAccess', _350 => _350.highlightCaptionsUrl])));
13751
13802
  if (!hasVideo && !videoSummary && (!videoBites || videoBites.length === 0)) {
13752
13803
  return null;
13753
13804
  }
@@ -14065,7 +14116,7 @@ var MediaSkeleton = {
14065
14116
 
14066
14117
  function designDocPeople(doc) {
14067
14118
  const people = [];
14068
- if (_optionalChain([doc, 'access', _340 => _340.author, 'optionalAccess', _341 => _341.full_name]))
14119
+ if (_optionalChain([doc, 'access', _351 => _351.author, 'optionalAccess', _352 => _352.full_name]))
14069
14120
  people.push({
14070
14121
  key: `dri-${_nullishCoalesce(doc.author.id, () => ( doc.author.full_name))}`,
14071
14122
  name: doc.author.full_name,
@@ -14078,7 +14129,7 @@ function designDocPeople(doc) {
14078
14129
  return people;
14079
14130
  }
14080
14131
  function designDocMetaLine(doc) {
14081
- return [_optionalChain([doc, 'access', _342 => _342.author, 'optionalAccess', _343 => _343.full_name]) ? `DRI ${doc.author.full_name}` : null, `updated ${_chunkHEQ4GPYEcjs.formatDateShort.call(void 0, doc.updated_at)}`].filter(Boolean).join(" \xB7 ");
14132
+ return [_optionalChain([doc, 'access', _353 => _353.author, 'optionalAccess', _354 => _354.full_name]) ? `DRI ${doc.author.full_name}` : null, `updated ${_chunkHEQ4GPYEcjs.formatDateShort.call(void 0, doc.updated_at)}`].filter(Boolean).join(" \xB7 ");
14082
14133
  }
14083
14134
  function DesignDocCardSkeleton() {
14084
14135
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -14552,7 +14603,7 @@ function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
14552
14603
  ] }) : null,
14553
14604
  item.preview ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-2 whitespace-pre-wrap break-words text-ods-text-secondary text-h6", children: item.preview }) }) : null
14554
14605
  ] }),
14555
- _optionalChain([anchorProps, 'optionalAccess', _344 => _344.href]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-3.5 w-3.5" }) }) : null
14606
+ _optionalChain([anchorProps, 'optionalAccess', _355 => _355.href]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-3.5 w-3.5" }) }) : null
14556
14607
  ] });
14557
14608
  if (!anchorProps) {
14558
14609
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkHEQ4GPYEcjs.COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
@@ -14580,7 +14631,7 @@ function DataRoomDocCardSkeleton({ className }) {
14580
14631
 
14581
14632
 
14582
14633
  function CampaignCardAdmin({ campaign, className, anchorProps }) {
14583
- const goalsCount = _optionalChain([campaign, 'access', _345 => _345.goals, 'optionalAccess', _346 => _346.length]) || 0;
14634
+ const goalsCount = _optionalChain([campaign, 'access', _356 => _356.goals, 'optionalAccess', _357 => _357.length]) || 0;
14584
14635
  const innerChildren = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
14585
14636
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkHEQ4GPYEcjs.COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Megaphone, { className: "h-5 w-5" }) }),
14586
14637
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkHEQ4GPYEcjs.COMPACT_CARD_TEXT_COL, children: [
@@ -14694,8 +14745,8 @@ function getVendorLogo(vendor) {
14694
14745
  if (vendor.logo) {
14695
14746
  return fixSupabaseStorageUrl(vendor.logo);
14696
14747
  }
14697
- const logoMedia = _optionalChain([vendor, 'access', _347 => _347.vendor_media, 'optionalAccess', _348 => _348.find, 'call', _349 => _349((m) => m.media_type === "logo")]);
14698
- if (_optionalChain([logoMedia, 'optionalAccess', _350 => _350.media_url])) {
14748
+ const logoMedia = _optionalChain([vendor, 'access', _358 => _358.vendor_media, 'optionalAccess', _359 => _359.find, 'call', _360 => _360((m) => m.media_type === "logo")]);
14749
+ if (_optionalChain([logoMedia, 'optionalAccess', _361 => _361.media_url])) {
14699
14750
  return fixSupabaseStorageUrl(logoMedia.media_url);
14700
14751
  }
14701
14752
  return null;
@@ -14764,7 +14815,7 @@ function VendorIcon({
14764
14815
  "flex items-center justify-center uppercase text-h6",
14765
14816
  backgroundStyle === "white" ? "text-[#333333]" : "text-ods-text-secondary"
14766
14817
  ),
14767
- children: _optionalChain([vendor, 'access', _351 => _351.title, 'optionalAccess', _352 => _352.substring, 'call', _353 => _353(0, 2)]) || "??"
14818
+ children: _optionalChain([vendor, 'access', _362 => _362.title, 'optionalAccess', _363 => _363.substring, 'call', _364 => _364(0, 2)]) || "??"
14768
14819
  }
14769
14820
  ) });
14770
14821
  }
@@ -14957,7 +15008,7 @@ function pickFetchedCardHref({
14957
15008
  itemHref,
14958
15009
  allowComposed
14959
15010
  }) {
14960
- if (_optionalChain([composed, 'optionalAccess', _354 => _354.hostOverride])) {
15011
+ if (_optionalChain([composed, 'optionalAccess', _365 => _365.hostOverride])) {
14961
15012
  return { source: "hostOverride", href: composed.href, targetPlatform: composed.targetPlatform };
14962
15013
  }
14963
15014
  if (itemHref) return { source: "item", href: itemHref };
@@ -15019,7 +15070,7 @@ function resolveSourceRowCTA(row, ctx = {}) {
15019
15070
  if (row.path && shouldFallbackToPathNav(row) && !row.externalUrl) {
15020
15071
  const safePath = sanitizePath(row.path);
15021
15072
  if (safePath) {
15022
- const docTarget = row.documentType ? _optionalChain([ctx, 'access', _355 => _355.docPlatformTargets, 'optionalAccess', _356 => _356[row.documentType]]) : void 0;
15073
+ const docTarget = row.documentType ? _optionalChain([ctx, 'access', _366 => _366.docPlatformTargets, 'optionalAccess', _367 => _367[row.documentType]]) : void 0;
15023
15074
  if (docTarget) {
15024
15075
  const seg = docTarget.basePath.split("/").filter(Boolean).join("/");
15025
15076
  const base = `${getPlatformUrl(docTarget.platform)}${seg ? `/${seg}` : ""}/`;
@@ -15088,7 +15139,7 @@ function resolveCardDestination({
15088
15139
  composeContentUrl,
15089
15140
  resolveHref = (href) => href
15090
15141
  }) {
15091
- const refPath = typeof _optionalChain([chatRef, 'access', _357 => _357.metadata, 'optionalAccess', _358 => _358.path]) === "string" && chatRef.metadata.path ? chatRef.metadata.path : null;
15142
+ const refPath = typeof _optionalChain([chatRef, 'access', _368 => _368.metadata, 'optionalAccess', _369 => _369.path]) === "string" && chatRef.metadata.path ? chatRef.metadata.path : null;
15092
15143
  const path = _nullishCoalesce(refPath, () => ( (item ? readFetchedCardPath(item) : null)));
15093
15144
  const cta = resolveSourceRowCTA(
15094
15145
  {
@@ -15105,7 +15156,7 @@ function resolveCardDestination({
15105
15156
  const rowUrl = cta.href ? resolveHref(cta.href) : _nullishCoalesce(chatRef.url, () => ( null));
15106
15157
  const rowPlatform = _nullishCoalesce(_nullishCoalesce(cta.targetPlatform, () => ( chatRef.targetPlatform)), () => ( null));
15107
15158
  if (rowUrl) return { url: rowUrl, targetPlatform: rowPlatform, path, source: "row" };
15108
- if (_optionalChain([entry, 'optionalAccess', _359 => _359.contentRefType]) && item) {
15159
+ if (_optionalChain([entry, 'optionalAccess', _370 => _370.contentRefType]) && item) {
15109
15160
  const choice = pickFetchedCardHref({
15110
15161
  composed: resolveFetchedCardHref({
15111
15162
  contentRefType: entry.contentRefType,
@@ -15113,7 +15164,7 @@ function resolveCardDestination({
15113
15164
  item,
15114
15165
  composeContentUrl
15115
15166
  }),
15116
- itemHref: _nullishCoalesce(_optionalChain([entry, 'access', _360 => _360.fallbackHref, 'optionalCall', _361 => _361(item)]), () => ( null)),
15167
+ itemHref: _nullishCoalesce(_optionalChain([entry, 'access', _371 => _371.fallbackHref, 'optionalCall', _372 => _372(item)]), () => ( null)),
15117
15168
  allowComposed: !entry.noComposedHref
15118
15169
  });
15119
15170
  const url = choice ? _nullishCoalesce(_chunkHEQ4GPYEcjs.safeHref.call(void 0, choice.href), () => ( null)) : null;
@@ -15207,8 +15258,8 @@ function cardMenuGroups(href, discuss, openDetails, externalLink) {
15207
15258
  if (href) {
15208
15259
  items.push({
15209
15260
  id: "open-details",
15210
- label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _362 => _362.label]), () => ( "Open Details")),
15211
- icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _363 => _363.icon]), () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.EyeIcon, { size: 20 }))),
15261
+ label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _373 => _373.label]), () => ( "Open Details")),
15262
+ icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _374 => _374.icon]), () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.EyeIcon, { size: 20 }))),
15212
15263
  // Main row → open the entity (same tab, soft Link nav).
15213
15264
  href,
15214
15265
  // Trailing 40px ↗ side-button → open in a new tab.
@@ -15268,18 +15319,18 @@ function itemVideoMetadata(item) {
15268
15319
  for (const v of vals) if (typeof v === "string" && v.length > 0) return v;
15269
15320
  return void 0;
15270
15321
  };
15271
- const m = _nullishCoalesce(_optionalChain([item, 'optionalAccess', _364 => _364.metadata]), () => ( {}));
15322
+ const m = _nullishCoalesce(_optionalChain([item, 'optionalAccess', _375 => _375.metadata]), () => ( {}));
15272
15323
  const out = {};
15273
- const videoUrl = pick2(m.videoUrl, _optionalChain([item, 'optionalAccess', _365 => _365.custom_video_url]), _optionalChain([item, 'optionalAccess', _366 => _366.main_video_url]));
15274
- const youtubeUrl = pick2(m.youtubeUrl, _optionalChain([item, 'optionalAccess', _367 => _367.youtube_url]), _optionalChain([item, 'optionalAccess', _368 => _368.testimonial_video_url]));
15275
- const highlightVideoUrl = pick2(m.highlightVideoUrl, _optionalChain([item, 'optionalAccess', _369 => _369.highlight_video_url]));
15324
+ const videoUrl = pick2(m.videoUrl, _optionalChain([item, 'optionalAccess', _376 => _376.custom_video_url]), _optionalChain([item, 'optionalAccess', _377 => _377.main_video_url]));
15325
+ const youtubeUrl = pick2(m.youtubeUrl, _optionalChain([item, 'optionalAccess', _378 => _378.youtube_url]), _optionalChain([item, 'optionalAccess', _379 => _379.testimonial_video_url]));
15326
+ const highlightVideoUrl = pick2(m.highlightVideoUrl, _optionalChain([item, 'optionalAccess', _380 => _380.highlight_video_url]));
15276
15327
  const videoPoster = pick2(
15277
15328
  m.videoPoster,
15278
- _optionalChain([item, 'optionalAccess', _370 => _370.main_video_thumbnail]),
15279
- _optionalChain([item, 'optionalAccess', _371 => _371.highlight_video_thumbnail]),
15280
- _optionalChain([item, 'optionalAccess', _372 => _372.featured_image])
15329
+ _optionalChain([item, 'optionalAccess', _381 => _381.main_video_thumbnail]),
15330
+ _optionalChain([item, 'optionalAccess', _382 => _382.highlight_video_thumbnail]),
15331
+ _optionalChain([item, 'optionalAccess', _383 => _383.featured_image])
15281
15332
  );
15282
- const highlightVideoPoster = pick2(m.highlightVideoPoster, _optionalChain([item, 'optionalAccess', _373 => _373.highlight_video_thumbnail]));
15333
+ const highlightVideoPoster = pick2(m.highlightVideoPoster, _optionalChain([item, 'optionalAccess', _384 => _384.highlight_video_thumbnail]));
15283
15334
  if (videoUrl) out.videoUrl = videoUrl;
15284
15335
  if (youtubeUrl) out.youtubeUrl = youtubeUrl;
15285
15336
  if (highlightVideoUrl) out.highlightVideoUrl = highlightVideoUrl;
@@ -15309,15 +15360,15 @@ function fetchedItemDisplayRef(item, chatRef) {
15309
15360
  }
15310
15361
  function fetchedFaqDisplayRef(item, chatRef) {
15311
15362
  const it = item;
15312
- const answer = typeof _optionalChain([it, 'optionalAccess', _374 => _374.answer]) === "string" && it.answer.trim().length > 0 ? it.answer.trim() : null;
15363
+ const answer = typeof _optionalChain([it, 'optionalAccess', _385 => _385.answer]) === "string" && it.answer.trim().length > 0 ? it.answer.trim() : null;
15313
15364
  return {
15314
15365
  type: "faq",
15315
15366
  id: chatRef.id,
15316
15367
  sourceRepo: chatRef.sourceRepo,
15317
- title: typeof _optionalChain([it, 'optionalAccess', _375 => _375.question]) === "string" && it.question ? it.question : chatRef.id,
15368
+ title: typeof _optionalChain([it, 'optionalAccess', _386 => _386.question]) === "string" && it.question ? it.question : chatRef.id,
15318
15369
  url: _nullishCoalesce(chatRef.url, () => ( null)),
15319
15370
  ...answer ? { preview: answer.length > 400 ? `${answer.slice(0, 397)}\u2026` : answer } : {},
15320
- metadata: typeof _optionalChain([it, 'optionalAccess', _376 => _376.section]) === "string" && it.section ? { section: it.section } : {}
15371
+ metadata: typeof _optionalChain([it, 'optionalAccess', _387 => _387.section]) === "string" && it.section ? { section: it.section } : {}
15321
15372
  };
15322
15373
  }
15323
15374
  function HubspotTicketChatCard({
@@ -15325,8 +15376,8 @@ function HubspotTicketChatCard({
15325
15376
  isNewTab,
15326
15377
  discuss
15327
15378
  }) {
15328
- const status = typeof _optionalChain([chatRef, 'access', _377 => _377.metadata, 'optionalAccess', _378 => _378.status]) === "string" ? chatRef.metadata.status : void 0;
15329
- const statusLabel = typeof _optionalChain([chatRef, 'access', _379 => _379.metadata, 'optionalAccess', _380 => _380.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
15379
+ const status = typeof _optionalChain([chatRef, 'access', _388 => _388.metadata, 'optionalAccess', _389 => _389.status]) === "string" ? chatRef.metadata.status : void 0;
15380
+ const statusLabel = typeof _optionalChain([chatRef, 'access', _390 => _390.metadata, 'optionalAccess', _391 => _391.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
15330
15381
  const statusText = _nullishCoalesce(statusLabel, () => ( formatStatusToken(status)));
15331
15382
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15332
15383
  MingoInfoCard,
@@ -15349,7 +15400,7 @@ function FaqChatCard({
15349
15400
  isNewTab,
15350
15401
  discuss
15351
15402
  }) {
15352
- const section = typeof _optionalChain([chatRef, 'access', _381 => _381.metadata, 'optionalAccess', _382 => _382.section]) === "string" ? chatRef.metadata.section.trim() : void 0;
15403
+ const section = typeof _optionalChain([chatRef, 'access', _392 => _392.metadata, 'optionalAccess', _393 => _393.section]) === "string" ? chatRef.metadata.section.trim() : void 0;
15353
15404
  const statusLabel = section && section.length > 0 ? section : "FAQ";
15354
15405
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15355
15406
  MingoInfoCard,
@@ -15369,7 +15420,7 @@ function SlackChatCard({
15369
15420
  isNewTab,
15370
15421
  discuss
15371
15422
  }) {
15372
- const channelName = typeof _optionalChain([chatRef, 'access', _383 => _383.metadata, 'optionalAccess', _384 => _384.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
15423
+ const channelName = typeof _optionalChain([chatRef, 'access', _394 => _394.metadata, 'optionalAccess', _395 => _395.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
15373
15424
  const channelPretty = channelName ? channelName.startsWith("#") ? channelName : `#${channelName}` : void 0;
15374
15425
  const title = channelPretty ? `${chatRef.title} \xB7 ${channelPretty}` : chatRef.title;
15375
15426
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -15412,7 +15463,7 @@ function TrustCenterChatCard({
15412
15463
  isNewTab,
15413
15464
  discuss
15414
15465
  }) {
15415
- const raw = _optionalChain([item, 'optionalAccess', _385 => _385.frameworks]);
15466
+ const raw = _optionalChain([item, 'optionalAccess', _396 => _396.frameworks]);
15416
15467
  const frameworks = Array.isArray(raw) ? raw : [];
15417
15468
  const summary = _chunkHEQ4GPYEcjs.trustFrameworksSummary.call(void 0, frameworks);
15418
15469
  const leadFramework = frameworks[0];
@@ -15461,7 +15512,7 @@ function GenericFinancialChatCard({
15461
15512
  isNewTab,
15462
15513
  discuss
15463
15514
  }) {
15464
- const subtitle = typeof _optionalChain([chatRef, 'access', _386 => _386.metadata, 'optionalAccess', _387 => _387.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
15515
+ const subtitle = typeof _optionalChain([chatRef, 'access', _397 => _397.metadata, 'optionalAccess', _398 => _398.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
15465
15516
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15466
15517
  MingoInfoCard,
15467
15518
  {
@@ -15530,12 +15581,12 @@ function ProductReleaseChatCard({
15530
15581
  discuss
15531
15582
  }) {
15532
15583
  const releaseProps = buildProps(item);
15533
- const status = _optionalChain([item, 'optionalAccess', _388 => _388.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
15584
+ const status = _optionalChain([item, 'optionalAccess', _399 => _399.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
15534
15585
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15535
15586
  EntityMingoCard,
15536
15587
  {
15537
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _389 => _389.title]), () => ( "")),
15538
- description: _optionalChain([item, 'optionalAccess', _390 => _390.summary]) || releaseProps.formattedDate || void 0,
15588
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _400 => _400.title]), () => ( "")),
15589
+ description: _optionalChain([item, 'optionalAccess', _401 => _401.summary]) || releaseProps.formattedDate || void 0,
15539
15590
  cover: releaseProps.coverImage || void 0,
15540
15591
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.Rocket02Icon, { size: 24 }),
15541
15592
  status,
@@ -15552,17 +15603,17 @@ function CampaignChatCard({
15552
15603
  isNewTab,
15553
15604
  discuss
15554
15605
  }) {
15555
- const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _391 => _391.goals])) ? item.goals.length : 0;
15606
+ const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _402 => _402.goals])) ? item.goals.length : 0;
15556
15607
  const meta = [
15557
- _optionalChain([item, 'optionalAccess', _392 => _392.start_date]) ? _chunkHEQ4GPYEcjs.formatDateShort.call(void 0, item.start_date) : null,
15608
+ _optionalChain([item, 'optionalAccess', _403 => _403.start_date]) ? _chunkHEQ4GPYEcjs.formatDateShort.call(void 0, item.start_date) : null,
15558
15609
  goalsCount > 0 ? `${goalsCount} goal${goalsCount !== 1 ? "s" : ""}` : null,
15559
15610
  "Marketing campaign"
15560
15611
  ].filter(Boolean).join(" \xB7 ");
15561
15612
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15562
15613
  EntityMingoCard,
15563
15614
  {
15564
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _393 => _393.name]), () => ( "")),
15565
- description: meta || _optionalChain([item, 'optionalAccess', _394 => _394.description]) || void 0,
15615
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _404 => _404.name]), () => ( "")),
15616
+ description: meta || _optionalChain([item, 'optionalAccess', _405 => _405.description]) || void 0,
15566
15617
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.Megaphone01Icon, { size: 24 }),
15567
15618
  chatRef,
15568
15619
  isNewTab,
@@ -15617,14 +15668,14 @@ function BlogChatCard({
15617
15668
  hasEmbeddedVideo,
15618
15669
  discuss
15619
15670
  }) {
15620
- const category = Array.isArray(_optionalChain([item, 'optionalAccess', _395 => _395.categories])) ? _nullishCoalesce(_optionalChain([item, 'access', _396 => _396.categories, 'access', _397 => _397.find, 'call', _398 => _398((c) => _optionalChain([c, 'optionalAccess', _399 => _399.name])), 'optionalAccess', _400 => _400.name]), () => ( void 0)) : void 0;
15671
+ const category = Array.isArray(_optionalChain([item, 'optionalAccess', _406 => _406.categories])) ? _nullishCoalesce(_optionalChain([item, 'access', _407 => _407.categories, 'access', _408 => _408.find, 'call', _409 => _409((c) => _optionalChain([c, 'optionalAccess', _410 => _410.name])), 'optionalAccess', _411 => _411.name]), () => ( void 0)) : void 0;
15621
15672
  const status = hasEmbeddedVideo ? { label: "Video", variant: "primary" } : category ? { label: category, variant: "grey" } : void 0;
15622
15673
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15623
15674
  EntityMingoCard,
15624
15675
  {
15625
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _401 => _401.title]), () => ( "")),
15626
- description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _402 => _402.summary]), () => ( void 0)),
15627
- cover: entityCover(_optionalChain([item, 'optionalAccess', _403 => _403.featured_image]), ogPlaceholder),
15676
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _412 => _412.title]), () => ( "")),
15677
+ description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _413 => _413.summary]), () => ( void 0)),
15678
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _414 => _414.featured_image]), ogPlaceholder),
15628
15679
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.NewspaperIcon, { size: 24 }),
15629
15680
  status,
15630
15681
  chatRef,
@@ -15641,13 +15692,13 @@ function CaseStudyChatCard({
15641
15692
  ogPlaceholder,
15642
15693
  discuss
15643
15694
  }) {
15644
- const meta = [_optionalChain([item, 'optionalAccess', _404 => _404.msp, 'optionalAccess', _405 => _405.name]), _optionalChain([item, 'optionalAccess', _406 => _406.user, 'optionalAccess', _407 => _407.full_name])].filter(Boolean).join(" \xB7 ");
15695
+ const meta = [_optionalChain([item, 'optionalAccess', _415 => _415.msp, 'optionalAccess', _416 => _416.name]), _optionalChain([item, 'optionalAccess', _417 => _417.user, 'optionalAccess', _418 => _418.full_name])].filter(Boolean).join(" \xB7 ");
15645
15696
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15646
15697
  EntityMingoCard,
15647
15698
  {
15648
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _408 => _408.title]), () => ( "")),
15649
- description: _optionalChain([item, 'optionalAccess', _409 => _409.summary]) || meta || void 0,
15650
- cover: entityCover(_optionalChain([item, 'optionalAccess', _410 => _410.featured_image]), ogPlaceholder),
15699
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _419 => _419.title]), () => ( "")),
15700
+ description: _optionalChain([item, 'optionalAccess', _420 => _420.summary]) || meta || void 0,
15701
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _421 => _421.featured_image]), ogPlaceholder),
15651
15702
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.TrophyIcon, { size: 24 }),
15652
15703
  status: { label: "Case study", variant: "grey" },
15653
15704
  chatRef,
@@ -15664,13 +15715,13 @@ function CustomerInterviewChatCard({
15664
15715
  ogPlaceholder,
15665
15716
  discuss
15666
15717
  }) {
15667
- const meta = [_optionalChain([item, 'optionalAccess', _411 => _411.user, 'optionalAccess', _412 => _412.full_name]), _optionalChain([item, 'optionalAccess', _413 => _413.msp, 'optionalAccess', _414 => _414.name])].filter(Boolean).join(" \xB7 ");
15718
+ const meta = [_optionalChain([item, 'optionalAccess', _422 => _422.user, 'optionalAccess', _423 => _423.full_name]), _optionalChain([item, 'optionalAccess', _424 => _424.msp, 'optionalAccess', _425 => _425.name])].filter(Boolean).join(" \xB7 ");
15668
15719
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15669
15720
  EntityMingoCard,
15670
15721
  {
15671
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _415 => _415.title]), () => ( "")),
15672
- description: _optionalChain([item, 'optionalAccess', _416 => _416.video_summary]) || meta || void 0,
15673
- cover: entityCover(_optionalChain([item, 'optionalAccess', _417 => _417.featured_image]), ogPlaceholder),
15722
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _426 => _426.title]), () => ( "")),
15723
+ description: _optionalChain([item, 'optionalAccess', _427 => _427.video_summary]) || meta || void 0,
15724
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _428 => _428.featured_image]), ogPlaceholder),
15674
15725
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.MicrophoneIcon, { size: 24 }),
15675
15726
  status: { label: "Interview", variant: "grey" },
15676
15727
  chatRef,
@@ -15687,12 +15738,12 @@ function DesignDocChatCard({
15687
15738
  discuss
15688
15739
  }) {
15689
15740
  const displayRef = fetchedItemDisplayRef(item, chatRef);
15690
- const doc = _optionalChain([item, 'optionalAccess', _418 => _418.doc]);
15741
+ const doc = _optionalChain([item, 'optionalAccess', _429 => _429.doc]);
15691
15742
  const readiness = doc ? DESIGN_DOC_READINESS_DISPLAY[designDocReadiness(doc.completion)] : null;
15692
15743
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15693
15744
  MingoInfoCard,
15694
15745
  {
15695
- title: _nullishCoalesce(_optionalChain([doc, 'optionalAccess', _419 => _419.title]), () => ( displayRef.title)),
15746
+ title: _nullishCoalesce(_optionalChain([doc, 'optionalAccess', _430 => _430.title]), () => ( displayRef.title)),
15696
15747
  description: doc ? [designDocMetaLine(doc), formatCompletionLabel(doc.completion)].join(" \xB7 ") : _nullishCoalesce(displayRef.preview, () => ( void 0)),
15697
15748
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.FileContentIcon, { size: 24 }),
15698
15749
  status: readiness ? { label: readiness.label, variant: readiness.scheme === "success" ? "success" : "grey" } : { label: "Design doc", variant: "grey" },
@@ -15709,13 +15760,13 @@ function InvestorUpdateChatCard({
15709
15760
  ogPlaceholder,
15710
15761
  discuss
15711
15762
  }) {
15712
- const title = _optionalChain([item, 'optionalAccess', _420 => _420.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _421 => _421.update_number]), () => ( "?"))}`;
15763
+ const title = _optionalChain([item, 'optionalAccess', _431 => _431.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _432 => _432.update_number]), () => ( "?"))}`;
15713
15764
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15714
15765
  EntityMingoCard,
15715
15766
  {
15716
15767
  title,
15717
- description: _optionalChain([item, 'optionalAccess', _422 => _422.strategic_update]) || _optionalChain([item, 'optionalAccess', _423 => _423.content]) || _chunkHEQ4GPYEcjs.formatInvestorUpdatePeriod.call(void 0, _nullishCoalesce(_optionalChain([item, 'optionalAccess', _424 => _424.period_start]), () => ( null)), _nullishCoalesce(_optionalChain([item, 'optionalAccess', _425 => _425.period_end]), () => ( null))) || void 0,
15718
- cover: entityCover(_optionalChain([item, 'optionalAccess', _426 => _426.featured_image]), ogPlaceholder),
15768
+ description: _optionalChain([item, 'optionalAccess', _433 => _433.strategic_update]) || _optionalChain([item, 'optionalAccess', _434 => _434.content]) || _chunkHEQ4GPYEcjs.formatInvestorUpdatePeriod.call(void 0, _nullishCoalesce(_optionalChain([item, 'optionalAccess', _435 => _435.period_start]), () => ( null)), _nullishCoalesce(_optionalChain([item, 'optionalAccess', _436 => _436.period_end]), () => ( null))) || void 0,
15769
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _437 => _437.featured_image]), ogPlaceholder),
15719
15770
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.PresentationLineIcon, { size: 24 }),
15720
15771
  status: { label: "Investor update", variant: "grey" },
15721
15772
  chatRef,
@@ -15732,12 +15783,12 @@ function OnboardingGuideChatCard({
15732
15783
  ogPlaceholder,
15733
15784
  discuss
15734
15785
  }) {
15735
- const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess', _427 => _427.featured_image])), () => ( entityCover(_optionalChain([item, 'optionalAccess', _428 => _428.main_video_thumbnail])))), () => ( entityCover(_optionalChain([item, 'optionalAccess', _429 => _429.og_image_url]), ogPlaceholder)));
15786
+ const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess', _438 => _438.featured_image])), () => ( entityCover(_optionalChain([item, 'optionalAccess', _439 => _439.main_video_thumbnail])))), () => ( entityCover(_optionalChain([item, 'optionalAccess', _440 => _440.og_image_url]), ogPlaceholder)));
15736
15787
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15737
15788
  EntityMingoCard,
15738
15789
  {
15739
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _430 => _430.title]), () => ( "")),
15740
- description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _431 => _431.summary]), () => ( _optionalChain([item, 'optionalAccess', _432 => _432.description]))), () => ( void 0)),
15790
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _441 => _441.title]), () => ( "")),
15791
+ description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _442 => _442.summary]), () => ( _optionalChain([item, 'optionalAccess', _443 => _443.description]))), () => ( void 0)),
15741
15792
  cover,
15742
15793
  fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.CompassIcon, { size: 24 }),
15743
15794
  status: { label: "Guide", variant: "grey" },
@@ -15762,9 +15813,9 @@ function ProgramChatCard({
15762
15813
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15763
15814
  EntityMingoCard,
15764
15815
  {
15765
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _433 => _433.title]), () => ( "")),
15766
- description: meta || _optionalChain([item, 'optionalAccess', _434 => _434.description]) || void 0,
15767
- cover: entityCover(_optionalChain([item, 'optionalAccess', _435 => _435.cover_url]), ogPlaceholder),
15816
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _444 => _444.title]), () => ( "")),
15817
+ description: meta || _optionalChain([item, 'optionalAccess', _445 => _445.description]) || void 0,
15818
+ cover: entityCover(_optionalChain([item, 'optionalAccess', _446 => _446.cover_url]), ogPlaceholder),
15768
15819
  fallbackIcon: icon,
15769
15820
  status: { label, variant: "grey" },
15770
15821
  chatRef,
@@ -15781,10 +15832,10 @@ function RoadmapChatCard({
15781
15832
  cardType,
15782
15833
  discuss
15783
15834
  }) {
15784
- const logoUrl = typeof _optionalChain([item, 'optionalAccess', _436 => _436.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
15785
- const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _437 => _437.customItemId]) != null;
15835
+ const logoUrl = typeof _optionalChain([item, 'optionalAccess', _447 => _447.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
15836
+ const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _448 => _448.customItemId]) != null;
15786
15837
  const defaultIcon = cardType === "delivery_item" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.TruckFastIcon, { size: 24 }) : cardType === "internal_task" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.CheckSquareIcon, { size: 24 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.MapIcon, { size: 24 });
15787
- const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHEQ4GPYEcjs.TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _438 => _438.customItemId]), className: "size-6" }) : logoUrl ? (
15838
+ const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHEQ4GPYEcjs.TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _449 => _449.customItemId]), className: "size-6" }) : logoUrl ? (
15788
15839
  // Contained (not full-bleed) so the integration logo keeps its aspect
15789
15840
  // ratio inside the bordered icon box — matches RoadmapCard.
15790
15841
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMGHIV4L6cjs.next_image_default, { src: logoUrl, alt: "", className: "size-6 object-contain", width: 24, height: 24, unoptimized: true })
@@ -15795,10 +15846,10 @@ function RoadmapChatCard({
15795
15846
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15796
15847
  EntityMingoCard,
15797
15848
  {
15798
- title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _439 => _439.title]), () => ( "")),
15799
- description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _440 => _440.description]), () => ( void 0)),
15849
+ title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _450 => _450.title]), () => ( "")),
15850
+ description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _451 => _451.description]), () => ( void 0)),
15800
15851
  fallbackIcon: icon,
15801
- status: statusPill(_optionalChain([item, 'optionalAccess', _441 => _441.status])),
15852
+ status: statusPill(_optionalChain([item, 'optionalAccess', _452 => _452.status])),
15802
15853
  chatRef,
15803
15854
  isNewTab,
15804
15855
  discuss,
@@ -15814,17 +15865,17 @@ function refHydratedEntry(docType, label, renderRef) {
15814
15865
  bareInline: true,
15815
15866
  contentRefType: docType,
15816
15867
  noComposedHref: true,
15817
- fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess', _442 => _442.url]), () => ( null)),
15868
+ fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess', _453 => _453.url]), () => ( null)),
15818
15869
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoInfoCardSkeleton, {}),
15819
15870
  render: (item, chatRef, opts) => renderRef(fetchedItemDisplayRef(item, chatRef), opts)
15820
15871
  };
15821
15872
  }
15822
15873
  var FINANCIAL_CARD_CONFIGS = {
15823
- financial_kpi: { label: "Financial KPI", icon: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.ChartBar01VerIcon, { size: 24 }) },
15824
- cap_table: { label: "Cap table entry", icon: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.ChartPieIcon, { size: 24 }) },
15825
- profit_loss: { label: "P&L period", icon: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.MoneyBillDollarIcon, { size: 24 }) },
15826
- balance_sheet: { label: "Balance sheet", icon: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.BankIcon, { size: 24 }) },
15827
- cash_flow: { label: "Cash flow", icon: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.CoinsExchangeCurrencyIcon, { size: 24 }) }
15874
+ financial_kpi: { label: "Financial KPI" },
15875
+ cap_table: { label: "Cap table entry" },
15876
+ profit_loss: { label: "P&L period" },
15877
+ balance_sheet: { label: "Balance sheet" },
15878
+ cash_flow: { label: "Cash flow" }
15828
15879
  };
15829
15880
  function registryEntries(configs, build) {
15830
15881
  const out = {};
@@ -15838,7 +15889,7 @@ function financialRegistryEntries() {
15838
15889
  GenericFinancialChatCard,
15839
15890
  {
15840
15891
  chatRef: displayRef,
15841
- icon: cfg.icon(),
15892
+ icon: sourceGlyph(docType),
15842
15893
  isNewTab: opts.isNewTab,
15843
15894
  discuss: opts.discuss
15844
15895
  }
@@ -15846,7 +15897,7 @@ function financialRegistryEntries() {
15846
15897
  );
15847
15898
  }
15848
15899
  function refText(ref, key) {
15849
- const value = _optionalChain([ref, 'optionalAccess', _443 => _443[key]]);
15900
+ const value = _optionalChain([ref, 'optionalAccess', _454 => _454[key]]);
15850
15901
  return typeof value === "string" && value.length > 0 ? value : null;
15851
15902
  }
15852
15903
  function VendorGlyph({ title, logoUrl }) {
@@ -15864,41 +15915,45 @@ var GITHUB_CARD_CONFIGS = {
15864
15915
  github_pr_review: { label: "GitHub review", kind: "pr_review" },
15865
15916
  github_pr_review_public: { label: "GitHub review (public)", kind: "pr_review" }
15866
15917
  };
15867
- var OpenFrameGlyph = _chunkIITB5TJRcjs.resolveIcon.call(void 0, "openframe");
15868
15918
  var REF_GLYPH_CARD_CONFIGS = {
15869
- openframe_tenant: { label: "OpenFrame tenant", icon: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OpenFrameGlyph, { size: 24 }) },
15870
- prospect_call: { label: "Prospect call", icon: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.CallIcon, { size: 24 }), media: true },
15919
+ openframe_tenant: { label: "OpenFrame tenant" },
15920
+ prospect_call: { label: "Prospect call", media: true },
15871
15921
  // Code intelligence (product-hub internal): the review rules a repository is
15872
15922
  // held to, the repositories themselves, and one row per deployment
15873
15923
  // environment. Glyph cards like their siblings — none of the three has a
15874
15924
  // cover image, and a rule is read in the admin screen it links to.
15875
- code_rule: { label: "Code rule", icon: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.BracketCurlyCheckIcon, { size: 24 }) },
15876
- code_repo: { label: "Repository", icon: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.CodingBranchIcon, { size: 24 }) },
15877
- code_deployment: { label: "Deployment", icon: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.PackageIcon, { size: 24 }) },
15925
+ code_rule: { label: "Code rule" },
15926
+ code_repo: { label: "Repository" },
15927
+ code_deployment: { label: "Deployment" },
15878
15928
  // The graph's own objects: one source file's public surface, one public
15879
15929
  // symbol, a near-duplicate cluster, and a pull request's blast radius.
15880
15930
  // Glyph cards for the same reason as their three siblings — none carries a
15881
15931
  // cover image, and each links to the admin screen that renders it in full.
15882
- code_file: { label: "Code file", icon: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.FileCodeIcon, { size: 24 }) },
15883
- code_symbol: { label: "Code symbol", icon: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.CodeSquareIcon, { size: 24 }) },
15884
- code_duplicate: { label: "Duplicate code", icon: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.Copy01Icon, { size: 24 }) },
15885
- code_impact: { label: "Change impact", icon: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.CodingPullRequestIcon, { size: 24 }) },
15932
+ code_file: { label: "Code file" },
15933
+ code_symbol: { label: "Code symbol" },
15934
+ code_duplicate: { label: "Duplicate code" },
15935
+ code_impact: { label: "Change impact" },
15886
15936
  // A change set: pull requests across repositories declared as one change, with the ClickUp tasks and design
15887
15937
  // docs its pull requests are attached to. ONE card for it wherever a set is shown (chat, a design doc's page).
15888
- change_set: { label: "Change set", icon: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.CodingMergeIcon, { size: 24 }) },
15938
+ change_set: { label: "Change set" },
15889
15939
  // A page of the public website (pricing, product, legal, and every page the navigation lists), read live
15890
15940
  // from the data the page shows. A glyph card: a page has no cover of its own, and the card opens the page.
15891
15941
  site_page: { label: "Website page", icon: (ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SitePageGlyph, { iconName: refText(ref, "icon_name") }) },
15892
15942
  // What OpenFrame charges, read live from its billing: the plan in force, or one AI model's token exchange
15893
15943
  // rate. A glyph card; it opens the pricing page.
15894
- openframe_price: { label: "OpenFrame price", icon: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, OpenFrameGlyph, { size: 24 }) },
15944
+ openframe_price: { label: "OpenFrame price" },
15895
15945
  // A vendor (product) of the OpenMSP directory. A glyph card; it opens the vendor's page there.
15896
- vendor: { label: "Vendor", icon: (ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VendorGlyph, { title: _nullishCoalesce(_optionalChain([ref, 'optionalAccess', _444 => _444.title]), () => ( "")), logoUrl: refText(ref, "logo_url") }) }
15946
+ vendor: { label: "Vendor", icon: (ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VendorGlyph, { title: _nullishCoalesce(_optionalChain([ref, 'optionalAccess', _455 => _455.title]), () => ( "")), logoUrl: refText(ref, "logo_url") }) }
15897
15947
  };
15948
+ function sourceGlyph(docType) {
15949
+ const { Icon } = resolveSourceIcon({ sourceRepo: defaultTableIdForDocumentType(docType), documentType: docType });
15950
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon, { className: "size-6" });
15951
+ }
15898
15952
  function refGlyphRegistryEntries() {
15899
- return registryEntries(
15900
- REF_GLYPH_CARD_CONFIGS,
15901
- (cfg, docType) => refHydratedEntry(
15953
+ return registryEntries(REF_GLYPH_CARD_CONFIGS, (config, docType) => {
15954
+ const glyph = _nullishCoalesce(config.icon, () => ( (() => sourceGlyph(docType))));
15955
+ const cfg = config;
15956
+ return refHydratedEntry(
15902
15957
  docType,
15903
15958
  cfg.label,
15904
15959
  (displayRef, opts) => cfg.media ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -15907,40 +15962,32 @@ function refGlyphRegistryEntries() {
15907
15962
  title: displayRef.title,
15908
15963
  description: _nullishCoalesce(displayRef.preview, () => ( void 0)),
15909
15964
  cover: entityCover(
15910
- _optionalChain([displayRef, 'access', _445 => _445.metadata, 'optionalAccess', _446 => _446.videoPoster]),
15911
- _nullishCoalesce(_optionalChain([opts, 'access', _447 => _447.extras, 'optionalAccess', _448 => _448.buildOgPlaceholderUrl, 'optionalCall', _449 => _449(_nullishCoalesce(displayRef.title, () => ( "")))]), () => ( null))
15965
+ _optionalChain([displayRef, 'access', _456 => _456.metadata, 'optionalAccess', _457 => _457.videoPoster]),
15966
+ _nullishCoalesce(_optionalChain([opts, 'access', _458 => _458.extras, 'optionalAccess', _459 => _459.buildOgPlaceholderUrl, 'optionalCall', _460 => _460(_nullishCoalesce(displayRef.title, () => ( "")))]), () => ( null))
15912
15967
  ),
15913
- fallbackIcon: cfg.icon(displayRef),
15968
+ fallbackIcon: glyph(displayRef),
15914
15969
  status: { label: cfg.label, variant: "grey" },
15915
15970
  chatRef: displayRef,
15916
15971
  isNewTab: opts.isNewTab,
15917
15972
  discuss: opts.discuss,
15918
15973
  menuAriaLabel: `${cfg.label} actions`
15919
15974
  }
15920
- ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
15921
- GlyphChatCard,
15922
- {
15923
- chatRef: displayRef,
15924
- icon: cfg.icon(displayRef),
15925
- isNewTab: opts.isNewTab,
15926
- discuss: opts.discuss
15927
- }
15928
- )
15929
- )
15930
- );
15975
+ ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, GlyphChatCard, { chatRef: displayRef, icon: glyph(displayRef), isNewTab: opts.isNewTab, discuss: opts.discuss })
15976
+ );
15977
+ });
15931
15978
  }
15932
15979
  function fetchedEmployeeEntryDisplayRef(item, chatRef) {
15933
15980
  const it = item;
15934
- const title = typeof _optionalChain([it, 'optionalAccess', _450 => _450.title]) === "string" && it.title.trim().length > 0 ? it.title.trim() : chatRef.title;
15935
- const author = typeof _optionalChain([it, 'optionalAccess', _451 => _451.author, 'optionalAccess', _452 => _452.full_name]) === "string" ? it.author.full_name.trim() : "";
15936
- const summary = typeof _optionalChain([it, 'optionalAccess', _453 => _453.summary]) === "string" ? it.summary.trim() : "";
15981
+ const title = typeof _optionalChain([it, 'optionalAccess', _461 => _461.title]) === "string" && it.title.trim().length > 0 ? it.title.trim() : chatRef.title;
15982
+ const author = typeof _optionalChain([it, 'optionalAccess', _462 => _462.author, 'optionalAccess', _463 => _463.full_name]) === "string" ? it.author.full_name.trim() : "";
15983
+ const summary = typeof _optionalChain([it, 'optionalAccess', _464 => _464.summary]) === "string" ? it.summary.trim() : "";
15937
15984
  const preview = [author, summary].filter((x) => x.length > 0).join(" \xB7 ");
15938
15985
  return { ...chatRef, title, preview: preview.length > 0 ? preview : chatRef.preview };
15939
15986
  }
15940
15987
  var EMPLOYEE_ENTRY_CARD_CONFIGS = {
15941
- what_i_shipped: { label: "What I Shipped", icon: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.Rocket02Icon, { size: 24 }) },
15942
- how_i_work: { label: "How I Work", icon: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.ClipboardListIcon, { size: 24 }) },
15943
- ai_prompt: { label: "Squawkbox", icon: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.ChatQuoteIcon, { size: 24 }) }
15988
+ what_i_shipped: { label: "What I Shipped" },
15989
+ how_i_work: { label: "How I Work" },
15990
+ ai_prompt: { label: "Squawkbox" }
15944
15991
  };
15945
15992
  function employeeEntryRegistryEntries() {
15946
15993
  return registryEntries(EMPLOYEE_ENTRY_CARD_CONFIGS, (cfg, docType) => ({
@@ -15952,7 +15999,7 @@ function employeeEntryRegistryEntries() {
15952
15999
  GlyphChatCard,
15953
16000
  {
15954
16001
  chatRef: fetchedEmployeeEntryDisplayRef(item, chatRef),
15955
- icon: cfg.icon(),
16002
+ icon: sourceGlyph(docType),
15956
16003
  isNewTab: opts.isNewTab,
15957
16004
  discuss: opts.discuss
15958
16005
  }
@@ -15985,7 +16032,7 @@ function programRegistryEntries() {
15985
16032
  discuss: opts.discuss,
15986
16033
  configKey: cfg.configKey,
15987
16034
  label: cfg.configKey.charAt(0).toUpperCase() + cfg.configKey.slice(1),
15988
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _454 => _454.extras, 'optionalAccess', _455 => _455.buildOgPlaceholderUrl, 'optionalCall', _456 => _456(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _457 => _457.title]), () => ( "")))]), () => ( null))
16035
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _465 => _465.extras, 'optionalAccess', _466 => _466.buildOgPlaceholderUrl, 'optionalCall', _467 => _467(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _468 => _468.title]), () => ( "")))]), () => ( null))
15989
16036
  }
15990
16037
  )
15991
16038
  }));
@@ -16006,7 +16053,7 @@ var ROADMAP_CARD_CONFIGS = {
16006
16053
  // The card's destination IS the ClickUp deep link, derived from the
16007
16054
  // task id post-fetch (the refs frame used to carry it).
16008
16055
  noComposedHref: true,
16009
- fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _458 => _458.id]) != null ? clickupTaskUrl(String(item.id)) : null
16056
+ fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _469 => _469.id]) != null ? clickupTaskUrl(String(item.id)) : null
16010
16057
  }
16011
16058
  };
16012
16059
  function roadmapRegistryEntries() {
@@ -16048,8 +16095,8 @@ var CHAT_CARD_REGISTRY = {
16048
16095
  DeletedDataCard,
16049
16096
  {
16050
16097
  title: chatRef.title && chatRef.title !== chatRef.id ? chatRef.title : null,
16051
- entityLabel: _nullishCoalesce(_optionalChain([chatRef, 'access', _459 => _459.metadata, 'optionalAccess', _460 => _460.entity_label]), () => ( null)),
16052
- recoveryNote: _nullishCoalesce(_optionalChain([chatRef, 'access', _461 => _461.metadata, 'optionalAccess', _462 => _462.recovery_note]), () => ( null))
16098
+ entityLabel: _nullishCoalesce(_optionalChain([chatRef, 'access', _470 => _470.metadata, 'optionalAccess', _471 => _471.entity_label]), () => ( null)),
16099
+ recoveryNote: _nullishCoalesce(_optionalChain([chatRef, 'access', _472 => _472.metadata, 'optionalAccess', _473 => _473.recovery_note]), () => ( null))
16053
16100
  }
16054
16101
  )
16055
16102
  },
@@ -16066,7 +16113,7 @@ var CHAT_CARD_REGISTRY = {
16066
16113
  bareInline: true,
16067
16114
  contentRefType: "faq",
16068
16115
  noComposedHref: true,
16069
- fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _463 => _463.id]) != null ? `/faqs#${faqItemAnchor(item.id)}` : null,
16116
+ fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _474 => _474.id]) != null ? `/faqs#${faqItemAnchor(item.id)}` : null,
16070
16117
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoInfoCardSkeleton, {}),
16071
16118
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, FaqChatCard, { chatRef: fetchedFaqDisplayRef(item, chatRef), isNewTab: opts.isNewTab, discuss: opts.discuss })
16072
16119
  },
@@ -16113,8 +16160,8 @@ var CHAT_CARD_REGISTRY = {
16113
16160
  chatRef,
16114
16161
  isNewTab: opts.isNewTab,
16115
16162
  discuss: opts.discuss,
16116
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _464 => _464.extras, 'optionalAccess', _465 => _465.buildOgPlaceholderUrl, 'optionalCall', _466 => _466(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _467 => _467.title]), () => ( "")))]), () => ( null)),
16117
- hasEmbeddedVideo: _optionalChain([chatRef, 'access', _468 => _468.metadata, 'optionalAccess', _469 => _469.hasEmbeddedVideo]) === true
16163
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _475 => _475.extras, 'optionalAccess', _476 => _476.buildOgPlaceholderUrl, 'optionalCall', _477 => _477(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _478 => _478.title]), () => ( "")))]), () => ( null)),
16164
+ hasEmbeddedVideo: _optionalChain([chatRef, 'access', _479 => _479.metadata, 'optionalAccess', _480 => _480.hasEmbeddedVideo]) === true
16118
16165
  }
16119
16166
  )
16120
16167
  },
@@ -16130,7 +16177,7 @@ var CHAT_CARD_REGISTRY = {
16130
16177
  chatRef,
16131
16178
  isNewTab: opts.isNewTab,
16132
16179
  discuss: opts.discuss,
16133
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _470 => _470.extras, 'optionalAccess', _471 => _471.buildOgPlaceholderUrl, 'optionalCall', _472 => _472(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _473 => _473.title]), () => ( "")))]), () => ( null))
16180
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _481 => _481.extras, 'optionalAccess', _482 => _482.buildOgPlaceholderUrl, 'optionalCall', _483 => _483(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _484 => _484.title]), () => ( "")))]), () => ( null))
16134
16181
  }
16135
16182
  )
16136
16183
  },
@@ -16139,7 +16186,7 @@ var CHAT_CARD_REGISTRY = {
16139
16186
  contentRefType: "design_doc",
16140
16187
  bareInline: true,
16141
16188
  noComposedHref: true,
16142
- fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess', _474 => _474.url]), () => ( null)),
16189
+ fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess', _485 => _485.url]), () => ( null)),
16143
16190
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoInfoCardSkeleton, {}),
16144
16191
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DesignDocChatCard, { item, chatRef, isNewTab: opts.isNewTab, discuss: opts.discuss })
16145
16192
  },
@@ -16155,7 +16202,7 @@ var CHAT_CARD_REGISTRY = {
16155
16202
  chatRef,
16156
16203
  isNewTab: opts.isNewTab,
16157
16204
  discuss: opts.discuss,
16158
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _475 => _475.extras, 'optionalAccess', _476 => _476.buildOgPlaceholderUrl, 'optionalCall', _477 => _477(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _478 => _478.title]), () => ( "")))]), () => ( null))
16205
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _486 => _486.extras, 'optionalAccess', _487 => _487.buildOgPlaceholderUrl, 'optionalCall', _488 => _488(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _489 => _489.title]), () => ( "")))]), () => ( null))
16159
16206
  }
16160
16207
  )
16161
16208
  },
@@ -16165,7 +16212,7 @@ var CHAT_CARD_REGISTRY = {
16165
16212
  bareInline: true,
16166
16213
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHEQ4GPYEcjs.ProductReleaseCardSkeleton, { size: "sm" }),
16167
16214
  render: (item, chatRef, opts) => {
16168
- const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _479 => _479.extras, 'optionalAccess', _480 => _480.buildProductReleaseCardProps]), () => ( _chunkHEQ4GPYEcjs.defaultBuildProductReleaseCardProps));
16215
+ const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _490 => _490.extras, 'optionalAccess', _491 => _491.buildProductReleaseCardProps]), () => ( _chunkHEQ4GPYEcjs.defaultBuildProductReleaseCardProps));
16169
16216
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16170
16217
  ProductReleaseChatCard,
16171
16218
  {
@@ -16191,7 +16238,7 @@ var CHAT_CARD_REGISTRY = {
16191
16238
  chatRef,
16192
16239
  isNewTab: opts.isNewTab,
16193
16240
  discuss: opts.discuss,
16194
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _481 => _481.extras, 'optionalAccess', _482 => _482.buildOgPlaceholderUrl, 'optionalCall', _483 => _483(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _484 => _484.title]), () => ( "")))]), () => ( null))
16241
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _492 => _492.extras, 'optionalAccess', _493 => _493.buildOgPlaceholderUrl, 'optionalCall', _494 => _494(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _495 => _495.title]), () => ( "")))]), () => ( null))
16195
16242
  }
16196
16243
  )
16197
16244
  },
@@ -16209,7 +16256,7 @@ var CHAT_CARD_REGISTRY = {
16209
16256
  chatRef,
16210
16257
  isNewTab: opts.isNewTab,
16211
16258
  discuss: opts.discuss,
16212
- ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _485 => _485.extras, 'optionalAccess', _486 => _486.buildOgPlaceholderUrl, 'optionalCall', _487 => _487(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _488 => _488.title]), () => ( "")))]), () => ( null))
16259
+ ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _496 => _496.extras, 'optionalAccess', _497 => _497.buildOgPlaceholderUrl, 'optionalCall', _498 => _498(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _499 => _499.title]), () => ( "")))]), () => ( null))
16213
16260
  }
16214
16261
  )
16215
16262
  },
@@ -16220,13 +16267,13 @@ var CHAT_CARD_REGISTRY = {
16220
16267
  skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignCardAdminSkeleton, {}),
16221
16268
  // No public viewer — synthesize the hub-internal admin URL post-fetch
16222
16269
  // so the wrapper + isNewTab computation see the actual destination.
16223
- fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _489 => _489.id]) ? `/admin/campaigns/${encodeURIComponent(String(item.id))}` : null,
16270
+ fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _500 => _500.id]) ? `/admin/campaigns/${encodeURIComponent(String(item.id))}` : null,
16224
16271
  render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignChatCard, { item, chatRef, isNewTab: opts.isNewTab, discuss: opts.discuss })
16225
16272
  },
16226
16273
  ...roadmapRegistryEntries()
16227
16274
  };
16228
16275
  function chatCardLabel(docType) {
16229
- return _optionalChain([CHAT_CARD_REGISTRY, 'access', _490 => _490[docType], 'optionalAccess', _491 => _491.label]);
16276
+ return _optionalChain([CHAT_CARD_REGISTRY, 'access', _501 => _501[docType], 'optionalAccess', _502 => _502.label]);
16230
16277
  }
16231
16278
  function ChatCardNavWrap({
16232
16279
  href,
@@ -16242,13 +16289,13 @@ function ChatCardNavWrap({
16242
16289
  if (!href) return;
16243
16290
  const targetEl = e.target;
16244
16291
  const host = e.currentTarget;
16245
- if (!_optionalChain([host, 'optionalAccess', _492 => _492.contains, 'call', _493 => _493(targetEl)])) return;
16246
- if (_optionalChain([targetEl, 'optionalAccess', _494 => _494.closest, 'optionalCall', _495 => _495("button")])) return;
16247
- if (!_optionalChain([targetEl, 'optionalAccess', _496 => _496.closest, 'optionalCall', _497 => _497("a")])) return;
16292
+ if (!_optionalChain([host, 'optionalAccess', _503 => _503.contains, 'call', _504 => _504(targetEl)])) return;
16293
+ if (_optionalChain([targetEl, 'optionalAccess', _505 => _505.closest, 'optionalCall', _506 => _506("button")])) return;
16294
+ if (!_optionalChain([targetEl, 'optionalAccess', _507 => _507.closest, 'optionalCall', _508 => _508("a")])) return;
16248
16295
  const handled = executeNavigation({ event: e, runtime, href, path, targetPlatform, fallbackNavigate: router.push });
16249
16296
  if (!handled) return;
16250
16297
  e.stopPropagation();
16251
- if (!isNewTab && _optionalChain([panel, 'optionalAccess', _498 => _498.closeChat])) panel.closeChat();
16298
+ if (!isNewTab && _optionalChain([panel, 'optionalAccess', _509 => _509.closeChat])) panel.closeChat();
16252
16299
  };
16253
16300
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "contents", onClickCapture, children });
16254
16301
  }
@@ -16264,7 +16311,7 @@ function ChatCardLoader({
16264
16311
  const entry = CHAT_CARD_REGISTRY[chatRef.type];
16265
16312
  const fetchEntry = entry && entry.contentRefType ? entry : null;
16266
16313
  const { item, isLoading, isError, isFetched } = useChatCardItem(
16267
- _nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _499 => _499.contentRefType]), () => ( "")),
16314
+ _nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _510 => _510.contentRefType]), () => ( "")),
16268
16315
  fetchEntry ? chatRef.id : ""
16269
16316
  );
16270
16317
  if (!entry) return null;
@@ -16308,7 +16355,7 @@ function ChatCardLoader({
16308
16355
  isNewTab,
16309
16356
  discuss
16310
16357
  };
16311
- const path = typeof _optionalChain([finalChatRef, 'access', _500 => _500.metadata, 'optionalAccess', _501 => _501.path]) === "string" ? finalChatRef.metadata.path : null;
16358
+ const path = typeof _optionalChain([finalChatRef, 'access', _511 => _511.metadata, 'optionalAccess', _512 => _512.path]) === "string" ? finalChatRef.metadata.path : null;
16312
16359
  const navWrap = (children) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
16313
16360
  ChatCardNavWrap,
16314
16361
  {
@@ -16332,7 +16379,7 @@ function ChatCardLoader({
16332
16379
  if (!fetchEntry) {
16333
16380
  return finish(entry.render(void 0, finalChatRef, renderOpts));
16334
16381
  }
16335
- if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: _nullishCoalesce(_optionalChain([fetchEntry, 'access', _502 => _502.skeleton, 'optionalCall', _503 => _503()]), () => ( null)) });
16382
+ if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: _nullishCoalesce(_optionalChain([fetchEntry, 'access', _513 => _513.skeleton, 'optionalCall', _514 => _514()]), () => ( null)) });
16336
16383
  if (!item) {
16337
16384
  if (isError) {
16338
16385
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CardLoadFailure, { label: entry.label, id: finalChatRef.id, detail: "Failed to load" });
@@ -16640,7 +16687,7 @@ function useChunkCatchup({
16640
16687
  if (catchupRun.current === run) {
16641
16688
  if (currentDialogId !== dialogIdRef.current) {
16642
16689
  catchupRun.current = null;
16643
- if (_optionalChain([pendingCatchupRef, 'access', _504 => _504.current, 'optionalAccess', _505 => _505.dialogId]) === currentDialogId) {
16690
+ if (_optionalChain([pendingCatchupRef, 'access', _515 => _515.current, 'optionalAccess', _516 => _516.dialogId]) === currentDialogId) {
16644
16691
  pendingCatchupRef.current = null;
16645
16692
  }
16646
16693
  } else {
@@ -16651,7 +16698,7 @@ function useChunkCatchup({
16651
16698
  if (pending.dialogId === currentDialogId) {
16652
16699
  rearmForQueuedCatchup();
16653
16700
  try {
16654
- await _optionalChain([catchUpChunksRef, 'access', _506 => _506.current, 'optionalCall', _507 => _507(pending.fromSequenceId)]);
16701
+ await _optionalChain([catchUpChunksRef, 'access', _517 => _517.current, 'optionalCall', _518 => _518(pending.fromSequenceId)]);
16655
16702
  } catch (rerunError) {
16656
16703
  console.error("Queued catch-up re-run failed:", rerunError);
16657
16704
  }
@@ -16718,7 +16765,7 @@ function useChunkCatchup({
16718
16765
 
16719
16766
  var EMPTY_FRAME = { messages: [], phase: "idle", typing: false, delayMs: 0 };
16720
16767
  function prefersReducedMotion() {
16721
- return typeof window !== "undefined" && _optionalChain([window, 'access', _508 => _508.matchMedia, 'optionalCall', _509 => _509("(prefers-reduced-motion: reduce)"), 'access', _510 => _510.matches]) === true;
16768
+ return typeof window !== "undefined" && _optionalChain([window, 'access', _519 => _519.matchMedia, 'optionalCall', _520 => _520("(prefers-reduced-motion: reduce)"), 'access', _521 => _521.matches]) === true;
16722
16769
  }
16723
16770
  function useScriptedStream(frames, resetKey, enabled = true) {
16724
16771
  const [index, setIndex] = _react.useState.call(void 0, 0);
@@ -16729,7 +16776,7 @@ function useScriptedStream(frames, resetKey, enabled = true) {
16729
16776
  setIndex(0);
16730
16777
  }
16731
16778
  _react.useEffect.call(void 0, () => {
16732
- const mq = _optionalChain([window, 'access', _511 => _511.matchMedia, 'optionalCall', _512 => _512("(prefers-reduced-motion: reduce)")]);
16779
+ const mq = _optionalChain([window, 'access', _522 => _522.matchMedia, 'optionalCall', _523 => _523("(prefers-reduced-motion: reduce)")]);
16733
16780
  const sync = () => setReducedMotion(mq ? mq.matches : prefersReducedMotion());
16734
16781
  sync();
16735
16782
  if (!mq) return void 0;
@@ -16872,7 +16919,7 @@ function useJetStreamDialogSubscription({
16872
16919
  const lifecycle = _chunkG7SBHMRRcjs.startConnectionLifecycle.call(void 0, {
16873
16920
  conn: sharedConn,
16874
16921
  wsUrl,
16875
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _513 => _513.current, 'optionalCall', _514 => _514()]),
16922
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _524 => _524.current, 'optionalCall', _525 => _525()]),
16876
16923
  backoff: reconnectionBackoffRef.current,
16877
16924
  getFreshUrl: () => getNatsWsUrlRef.current(),
16878
16925
  // JetStream emits 'error' for protocol-level failures (e.g. -ERR Permissions
@@ -16887,7 +16934,7 @@ function useJetStreamDialogSubscription({
16887
16934
  setReconnectionCount((c) => c + 1);
16888
16935
  }
16889
16936
  hadConnectionBeforeRef.current = true;
16890
- _optionalChain([onConnectRef, 'access', _515 => _515.current, 'optionalCall', _516 => _516()]);
16937
+ _optionalChain([onConnectRef, 'access', _526 => _526.current, 'optionalCall', _527 => _527()]);
16891
16938
  }
16892
16939
  if (status === "error") {
16893
16940
  console.warn("[JetStream] NATS protocol error:", evt.data);
@@ -16897,7 +16944,7 @@ function useJetStreamDialogSubscription({
16897
16944
  setIsConnected(false);
16898
16945
  setIsSubscribed(false);
16899
16946
  tearDownSubscription();
16900
- _optionalChain([onDisconnectRef, 'access', _517 => _517.current, 'optionalCall', _518 => _518()]);
16947
+ _optionalChain([onDisconnectRef, 'access', _528 => _528.current, 'optionalCall', _529 => _529()]);
16901
16948
  }
16902
16949
  }
16903
16950
  });
@@ -17023,7 +17070,7 @@ function useJetStreamDialogSubscription({
17023
17070
  }
17024
17071
  subscriptionRef.current = handle;
17025
17072
  setIsSubscribed(true);
17026
- _optionalChain([onSubscribedRef, 'access', _519 => _519.current, 'optionalCall', _520 => _520()]);
17073
+ _optionalChain([onSubscribedRef, 'access', _530 => _530.current, 'optionalCall', _531 => _531()]);
17027
17074
  } catch (e31) {
17028
17075
  if (!cancelled) {
17029
17076
  setIsSubscribed(false);
@@ -17139,20 +17186,20 @@ function useNatsDialogSubscription({
17139
17186
  const tearDownSubscriptions = () => {
17140
17187
  subscriptionRefs.current.forEach((sub) => {
17141
17188
  try {
17142
- _optionalChain([sub, 'optionalAccess', _521 => _521.unsubscribe, 'call', _522 => _522()]);
17189
+ _optionalChain([sub, 'optionalAccess', _532 => _532.unsubscribe, 'call', _533 => _533()]);
17143
17190
  } catch (e33) {
17144
17191
  }
17145
17192
  });
17146
17193
  subscriptionRefs.current.clear();
17147
17194
  lastSubscribedDialogIdRef.current = null;
17148
- _optionalChain([abortControllerRef, 'access', _523 => _523.current, 'optionalAccess', _524 => _524.abort, 'call', _525 => _525()]);
17195
+ _optionalChain([abortControllerRef, 'access', _534 => _534.current, 'optionalAccess', _535 => _535.abort, 'call', _536 => _536()]);
17149
17196
  abortControllerRef.current = null;
17150
17197
  };
17151
17198
  const isDisconnectStatus = (status) => status === "closed" || status === "disconnected";
17152
17199
  const lifecycle = _chunkG7SBHMRRcjs.startConnectionLifecycle.call(void 0, {
17153
17200
  conn: sharedConn,
17154
17201
  wsUrl,
17155
- onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _526 => _526.current, 'optionalCall', _527 => _527()]),
17202
+ onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _537 => _537.current, 'optionalCall', _538 => _538()]),
17156
17203
  backoff: reconnectionBackoffRef.current,
17157
17204
  getFreshUrl: () => getNatsWsUrlRef.current(),
17158
17205
  shouldRetryOn: isDisconnectStatus,
@@ -17163,7 +17210,7 @@ function useNatsDialogSubscription({
17163
17210
  setReconnectionCount((c) => c + 1);
17164
17211
  }
17165
17212
  hadConnectionBeforeRef.current = true;
17166
- _optionalChain([onConnectRef, 'access', _528 => _528.current, 'optionalCall', _529 => _529()]);
17213
+ _optionalChain([onConnectRef, 'access', _539 => _539.current, 'optionalCall', _540 => _540()]);
17167
17214
  }
17168
17215
  if (status === "error") {
17169
17216
  console.warn("[NATS] protocol error:", evt.data);
@@ -17173,7 +17220,7 @@ function useNatsDialogSubscription({
17173
17220
  setIsConnected(false);
17174
17221
  setIsSubscribed(false);
17175
17222
  tearDownSubscriptions();
17176
- _optionalChain([onDisconnectRef, 'access', _530 => _530.current, 'optionalCall', _531 => _531()]);
17223
+ _optionalChain([onDisconnectRef, 'access', _541 => _541.current, 'optionalCall', _542 => _542()]);
17177
17224
  }
17178
17225
  }
17179
17226
  });
@@ -17204,13 +17251,13 @@ function useNatsDialogSubscription({
17204
17251
  setIsSubscribed(false);
17205
17252
  subscriptionRefs.current.forEach((sub) => {
17206
17253
  try {
17207
- _optionalChain([sub, 'optionalAccess', _532 => _532.unsubscribe, 'call', _533 => _533()]);
17254
+ _optionalChain([sub, 'optionalAccess', _543 => _543.unsubscribe, 'call', _544 => _544()]);
17208
17255
  } catch (e34) {
17209
17256
  }
17210
17257
  });
17211
17258
  subscriptionRefs.current.clear();
17212
17259
  lastSubscribedDialogIdRef.current = null;
17213
- _optionalChain([abortControllerRef, 'access', _534 => _534.current, 'optionalAccess', _535 => _535.abort, 'call', _536 => _536()]);
17260
+ _optionalChain([abortControllerRef, 'access', _545 => _545.current, 'optionalAccess', _546 => _546.abort, 'call', _547 => _547()]);
17214
17261
  abortControllerRef.current = null;
17215
17262
  }
17216
17263
  return void 0;
@@ -17222,12 +17269,12 @@ function useNatsDialogSubscription({
17222
17269
  if (subscriptionRefs.current.size > 0) {
17223
17270
  subscriptionRefs.current.forEach((sub) => {
17224
17271
  try {
17225
- _optionalChain([sub, 'optionalAccess', _537 => _537.unsubscribe, 'call', _538 => _538()]);
17272
+ _optionalChain([sub, 'optionalAccess', _548 => _548.unsubscribe, 'call', _549 => _549()]);
17226
17273
  } catch (e35) {
17227
17274
  }
17228
17275
  });
17229
17276
  subscriptionRefs.current.clear();
17230
- _optionalChain([abortControllerRef, 'access', _539 => _539.current, 'optionalAccess', _540 => _540.abort, 'call', _541 => _541()]);
17277
+ _optionalChain([abortControllerRef, 'access', _550 => _550.current, 'optionalAccess', _551 => _551.abort, 'call', _552 => _552()]);
17231
17278
  }
17232
17279
  abortControllerRef.current = new AbortController();
17233
17280
  const abort = abortControllerRef.current;
@@ -17257,7 +17304,7 @@ function useNatsDialogSubscription({
17257
17304
  });
17258
17305
  lastSubscribedDialogIdRef.current = dialogId;
17259
17306
  setIsSubscribed(true);
17260
- _optionalChain([onSubscribedRef, 'access', _542 => _542.current, 'optionalCall', _543 => _543()]);
17307
+ _optionalChain([onSubscribedRef, 'access', _553 => _553.current, 'optionalCall', _554 => _554()]);
17261
17308
  };
17262
17309
  if (isConnectedRef.current) {
17263
17310
  createSubscriptions();
@@ -17268,7 +17315,7 @@ function useNatsDialogSubscription({
17268
17315
  abort.abort();
17269
17316
  subscriptions.forEach((sub) => {
17270
17317
  try {
17271
- _optionalChain([sub, 'optionalAccess', _544 => _544.unsubscribe, 'call', _545 => _545()]);
17318
+ _optionalChain([sub, 'optionalAccess', _555 => _555.unsubscribe, 'call', _556 => _556()]);
17272
17319
  } catch (e37) {
17273
17320
  }
17274
17321
  });
@@ -17307,7 +17354,7 @@ function useNatsDialogSubscription({
17307
17354
  });
17308
17355
  lastSubscribedDialogIdRef.current = currentDialogId;
17309
17356
  setIsSubscribed(true);
17310
- _optionalChain([onSubscribedRef, 'access', _546 => _546.current, 'optionalCall', _547 => _547()]);
17357
+ _optionalChain([onSubscribedRef, 'access', _557 => _557.current, 'optionalCall', _558 => _558()]);
17311
17358
  } else if (subscriptionRefs.current.size > 0) {
17312
17359
  setIsSubscribed(true);
17313
17360
  }
@@ -17315,10 +17362,10 @@ function useNatsDialogSubscription({
17315
17362
  return { isConnected, isSubscribed, reconnectionCount };
17316
17363
  }
17317
17364
  function buildNatsWsUrl(apiBaseUrl, options) {
17318
- const path = _optionalChain([options, 'optionalAccess', _548 => _548.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
17365
+ const path = _optionalChain([options, 'optionalAccess', _559 => _559.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
17319
17366
  const u = new URL(path, apiBaseUrl);
17320
17367
  u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
17321
- if (_optionalChain([options, 'optionalAccess', _549 => _549.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _550 => _550.token])) {
17368
+ if (_optionalChain([options, 'optionalAccess', _560 => _560.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _561 => _561.token])) {
17322
17369
  u.searchParams.set("authorization", options.token);
17323
17370
  }
17324
17371
  return u.toString();
@@ -17336,7 +17383,7 @@ async function fetchSlashCommands(prefix, signal, commandsUrl) {
17336
17383
  const data = await res.json();
17337
17384
  return _nullishCoalesce(data.commands, () => ( []));
17338
17385
  } catch (err) {
17339
- if (_optionalChain([err, 'optionalAccess', _551 => _551.name]) === "AbortError") throw err;
17386
+ if (_optionalChain([err, 'optionalAccess', _562 => _562.name]) === "AbortError") throw err;
17340
17387
  console.warn("[chat] slash-commands fetch failed, showing none:", err);
17341
17388
  return [];
17342
17389
  }
@@ -17344,8 +17391,8 @@ async function fetchSlashCommands(prefix, signal, commandsUrl) {
17344
17391
  var NO_COMMANDS = [];
17345
17392
  function useSlashCommands(prefix, commandsUrl) {
17346
17393
  const [answered, setAnswered] = _react.useState.call(void 0, null);
17347
- const commands = prefix != null && _optionalChain([answered, 'optionalAccess', _552 => _552.prefix]) === prefix ? answered.commands : NO_COMMANDS;
17348
- const loading = prefix != null && _optionalChain([answered, 'optionalAccess', _553 => _553.prefix]) !== prefix;
17394
+ const commands = prefix != null && _optionalChain([answered, 'optionalAccess', _563 => _563.prefix]) === prefix ? answered.commands : NO_COMMANDS;
17395
+ const loading = prefix != null && _optionalChain([answered, 'optionalAccess', _564 => _564.prefix]) !== prefix;
17349
17396
  _react.useEffect.call(void 0, () => {
17350
17397
  if (prefix == null) return void 0;
17351
17398
  let cancelled = false;
@@ -17355,7 +17402,7 @@ function useSlashCommands(prefix, commandsUrl) {
17355
17402
  const next = await fetchSlashCommands(prefix, ctrl.signal, commandsUrl);
17356
17403
  if (!cancelled) setAnswered({ prefix, commands: next });
17357
17404
  } catch (err) {
17358
- if (!cancelled && _optionalChain([err, 'optionalAccess', _554 => _554.name]) !== "AbortError") {
17405
+ if (!cancelled && _optionalChain([err, 'optionalAccess', _565 => _565.name]) !== "AbortError") {
17359
17406
  console.warn("[use-slash-commands] fetch failed:", err);
17360
17407
  setAnswered({ prefix, commands: NO_COMMANDS });
17361
17408
  }
@@ -17378,7 +17425,7 @@ function useSlashCommandRegistry(commandsUrl, options) {
17378
17425
  const query = _reactquery.useQuery.call(void 0, {
17379
17426
  queryKey: ["chat-slash-commands", commandsUrl],
17380
17427
  queryFn: ({ signal }) => fetchSlashCommands("", signal, commandsUrl),
17381
- enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _555 => _555.enabled]), () => ( true)),
17428
+ enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _566 => _566.enabled]), () => ( true)),
17382
17429
  staleTime: Infinity,
17383
17430
  gcTime: Infinity,
17384
17431
  // The commands registry is non-critical chrome — a failure degrades to an
@@ -17417,21 +17464,21 @@ async function fetchEmptyStateConfig(signal, emptyStateUrl) {
17417
17464
  }
17418
17465
  const data = await res.json();
17419
17466
  return {
17420
- name: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _556 => _556.name]), () => ( null)),
17421
- icon: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _557 => _557.icon]), () => ( null)),
17422
- greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _558 => _558.greeting]), () => ( null)),
17423
- enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _559 => _559.enabledRagTableIds]), () => ( [])),
17424
- quickActions: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _560 => _560.quickActions]), () => ( [])),
17425
- suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _561 => _561.suggestedQueries]), () => ( []))
17467
+ name: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _567 => _567.name]), () => ( null)),
17468
+ icon: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _568 => _568.icon]), () => ( null)),
17469
+ greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _569 => _569.greeting]), () => ( null)),
17470
+ enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _570 => _570.enabledRagTableIds]), () => ( [])),
17471
+ quickActions: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _571 => _571.quickActions]), () => ( [])),
17472
+ suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _572 => _572.suggestedQueries]), () => ( []))
17426
17473
  };
17427
17474
  } catch (err) {
17428
- if (_optionalChain([err, 'optionalAccess', _562 => _562.name]) === "AbortError") throw err;
17475
+ if (_optionalChain([err, 'optionalAccess', _573 => _573.name]) === "AbortError") throw err;
17429
17476
  console.warn("[chat] empty-state config fetch failed, using neutral defaults:", err);
17430
17477
  return EMPTY_STATE_FALLBACK;
17431
17478
  }
17432
17479
  }
17433
17480
  function useEmptyStateConfig(emptyStateUrl, options) {
17434
- const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _563 => _563.enabled]), () => ( true))) && !!emptyStateUrl;
17481
+ const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _574 => _574.enabled]), () => ( true))) && !!emptyStateUrl;
17435
17482
  const query = _reactquery.useQuery.call(void 0, {
17436
17483
  queryKey: ["chat-empty-state", emptyStateUrl],
17437
17484
  queryFn: ({ signal }) => fetchEmptyStateConfig(signal, emptyStateUrl),
@@ -17460,7 +17507,7 @@ var CHAT_ATTACHMENT_MAX_SIZE_BYTES = 25 * 1024 * 1024;
17460
17507
  var STORAGE_CACHE_CONTROL_IMMUTABLE = "public, max-age=31536000, immutable";
17461
17508
  function uploadWithProgress(url, file, token, onProgress, signal) {
17462
17509
  return new Promise((resolve, reject) => {
17463
- if (_optionalChain([signal, 'optionalAccess', _564 => _564.aborted])) {
17510
+ if (_optionalChain([signal, 'optionalAccess', _575 => _575.aborted])) {
17464
17511
  reject(new Error("Upload cancelled"));
17465
17512
  return;
17466
17513
  }
@@ -17502,7 +17549,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
17502
17549
  const handleSignalAbort = () => {
17503
17550
  xhr.abort();
17504
17551
  };
17505
- _optionalChain([signal, 'optionalAccess', _565 => _565.addEventListener, 'call', _566 => _566("abort", handleSignalAbort, { once: true, signal: listeners.signal })]);
17552
+ _optionalChain([signal, 'optionalAccess', _576 => _576.addEventListener, 'call', _577 => _577("abort", handleSignalAbort, { once: true, signal: listeners.signal })]);
17506
17553
  xhr.upload.addEventListener("progress", handleProgress, { signal: listeners.signal });
17507
17554
  xhr.addEventListener("load", handleLoad, { signal: listeners.signal });
17508
17555
  xhr.addEventListener("error", handleError, { signal: listeners.signal });
@@ -17546,10 +17593,10 @@ function useChatAttachments() {
17546
17593
  try {
17547
17594
  sniffed = await _filetype.fileTypeFromBlob.call(void 0, att.file);
17548
17595
  } catch (err) {
17549
- if (_optionalChain([ctrl, 'optionalAccess', _567 => _567.signal, 'access', _568 => _568.aborted])) return;
17596
+ if (_optionalChain([ctrl, 'optionalAccess', _578 => _578.signal, 'access', _579 => _579.aborted])) return;
17550
17597
  throw new Error(`Could not read file content: ${err instanceof Error ? err.message : String(err)}`);
17551
17598
  }
17552
- if (_optionalChain([ctrl, 'optionalAccess', _569 => _569.signal, 'access', _570 => _570.aborted])) return;
17599
+ if (_optionalChain([ctrl, 'optionalAccess', _580 => _580.signal, 'access', _581 => _581.aborted])) return;
17553
17600
  if (!sniffed) {
17554
17601
  throw new Error("Unrecognized file format");
17555
17602
  }
@@ -17563,7 +17610,7 @@ function useChatAttachments() {
17563
17610
  const urlResp = await _chunkULWVKHSIcjs.embedAuthedFetch.call(void 0, uploadUrlEndpoint, {
17564
17611
  method: "POST",
17565
17612
  headers: { "Content-Type": "application/json" },
17566
- signal: _optionalChain([ctrl, 'optionalAccess', _571 => _571.signal]),
17613
+ signal: _optionalChain([ctrl, 'optionalAccess', _582 => _582.signal]),
17567
17614
  body: JSON.stringify({
17568
17615
  fileName: att.file.name,
17569
17616
  // Pass the SNIFFED MIME (not `file.type`, which can be a
@@ -17592,9 +17639,9 @@ function useChatAttachments() {
17592
17639
  (pct) => {
17593
17640
  updateOne(att.id, { progress: pct });
17594
17641
  },
17595
- _optionalChain([ctrl, 'optionalAccess', _572 => _572.signal])
17642
+ _optionalChain([ctrl, 'optionalAccess', _583 => _583.signal])
17596
17643
  );
17597
- if (_optionalChain([ctrl, 'optionalAccess', _573 => _573.signal, 'access', _574 => _574.aborted])) return;
17644
+ if (_optionalChain([ctrl, 'optionalAccess', _584 => _584.signal, 'access', _585 => _585.aborted])) return;
17598
17645
  updateOne(att.id, {
17599
17646
  status: "ready",
17600
17647
  progress: 100,
@@ -17602,7 +17649,7 @@ function useChatAttachments() {
17602
17649
  viewToken: mintData.viewToken
17603
17650
  });
17604
17651
  } catch (err) {
17605
- if (_optionalChain([ctrl, 'optionalAccess', _575 => _575.signal, 'access', _576 => _576.aborted])) return;
17652
+ if (_optionalChain([ctrl, 'optionalAccess', _586 => _586.signal, 'access', _587 => _587.aborted])) return;
17606
17653
  const message = err instanceof Error ? err.message : String(err);
17607
17654
  updateOne(att.id, { status: "error", progress: 0, errorMessage: message });
17608
17655
  } finally {
@@ -17751,11 +17798,11 @@ var ANON_DEFAULTS = {
17751
17798
  function useResolveChatIdentity(enabled) {
17752
17799
  const runtime = _chunkUJ7AXHRZcjs.useRequiredChatRuntime.call(void 0, );
17753
17800
  const url = runtime.endpoints.identityUrl;
17754
- const proxyEmail = _nullishCoalesce(_optionalChain([_chunkULWVKHSIcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _577 => _577.email]), () => ( null));
17801
+ const proxyEmail = _nullishCoalesce(_optionalChain([_chunkULWVKHSIcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _588 => _588.email]), () => ( null));
17755
17802
  const requestKey = enabled ? `${url}\0${_nullishCoalesce(proxyEmail, () => ( ""))}` : null;
17756
17803
  const [resolved, setResolved] = _react.useState.call(void 0, null);
17757
- const data = _optionalChain([resolved, 'optionalAccess', _578 => _578.key]) === requestKey ? resolved.data : ANON_DEFAULTS;
17758
- const isLoading = requestKey !== null && _optionalChain([resolved, 'optionalAccess', _579 => _579.key]) !== requestKey;
17804
+ const data = _optionalChain([resolved, 'optionalAccess', _589 => _589.key]) === requestKey ? resolved.data : ANON_DEFAULTS;
17805
+ const isLoading = requestKey !== null && _optionalChain([resolved, 'optionalAccess', _590 => _590.key]) !== requestKey;
17759
17806
  _react.useEffect.call(void 0, () => {
17760
17807
  if (requestKey === null) return void 0;
17761
17808
  let cancelled = false;
@@ -17902,7 +17949,7 @@ function useChat({
17902
17949
  onMessagesChangeRef.current = onMessagesChange;
17903
17950
  });
17904
17951
  _react.useEffect.call(void 0, () => {
17905
- _optionalChain([onMessagesChangeRef, 'access', _580 => _580.current, 'optionalCall', _581 => _581(messages)]);
17952
+ _optionalChain([onMessagesChangeRef, 'access', _591 => _591.current, 'optionalCall', _592 => _592(messages)]);
17906
17953
  }, [messages]);
17907
17954
  const {
17908
17955
  streamMessage,
@@ -17939,7 +17986,7 @@ function useChat({
17939
17986
  name: "You",
17940
17987
  content: text2,
17941
17988
  timestamp: /* @__PURE__ */ new Date(),
17942
- ..._optionalChain([options, 'optionalAccess', _582 => _582.hidden]) ? { hidden: true } : {}
17989
+ ..._optionalChain([options, 'optionalAccess', _593 => _593.hidden]) ? { hidden: true } : {}
17943
17990
  };
17944
17991
  addMessage(userMessage);
17945
17992
  setIsTyping(true);
@@ -18153,7 +18200,7 @@ function buildConfirmToolBody(request) {
18153
18200
  async function readServerErrorMessage(response) {
18154
18201
  try {
18155
18202
  const body = await response.json();
18156
- if (typeof _optionalChain([body, 'optionalAccess', _583 => _583.error]) === "string" && body.error.length > 0) return body.error;
18203
+ if (typeof _optionalChain([body, 'optionalAccess', _594 => _594.error]) === "string" && body.error.length > 0) return body.error;
18157
18204
  } catch (e39) {
18158
18205
  }
18159
18206
  return null;
@@ -18481,7 +18528,7 @@ function youtubeVideoId(value) {
18481
18528
  const hostname = parsed.hostname.toLowerCase();
18482
18529
  const isYoutubeHost = hostname === "youtu.be" || hostname === "youtube.com" || hostname.endsWith(".youtube.com");
18483
18530
  if (!isYoutubeHost) return void 0;
18484
- const fromPath = hostname === "youtu.be" ? parsed.pathname.split("/").filter(Boolean)[0] : _optionalChain([/^\/(?:embed|v|shorts)\/([A-Za-z0-9_-]{11})(?:\/|$)/, 'access', _584 => _584.exec, 'call', _585 => _585(parsed.pathname), 'optionalAccess', _586 => _586[1]]);
18531
+ const fromPath = hostname === "youtu.be" ? parsed.pathname.split("/").filter(Boolean)[0] : _optionalChain([/^\/(?:embed|v|shorts)\/([A-Za-z0-9_-]{11})(?:\/|$)/, 'access', _595 => _595.exec, 'call', _596 => _596(parsed.pathname), 'optionalAccess', _597 => _597[1]]);
18485
18532
  const id = _nullishCoalesce(_nullishCoalesce(fromPath, () => ( parsed.searchParams.get("v"))), () => ( void 0));
18486
18533
  return id && YOUTUBE_ID.test(id) ? id : void 0;
18487
18534
  }
@@ -18600,11 +18647,11 @@ function cards(value, decodedSources) {
18600
18647
  {
18601
18648
  type,
18602
18649
  id,
18603
- title: _nullishCoalesce(_optionalChain([source, 'optionalAccess', _587 => _587.name]), () => ( id)),
18604
- url: _nullishCoalesce(_optionalChain([source, 'optionalAccess', _588 => _588.externalUrl]), () => ( null)),
18605
- ..._optionalChain([source, 'optionalAccess', _589 => _589.sourceRepo]) ? { sourceRepo: source.sourceRepo } : {},
18606
- ..._optionalChain([source, 'optionalAccess', _590 => _590.targetPlatform]) !== void 0 ? { targetPlatform: source.targetPlatform } : {},
18607
- ..._optionalChain([source, 'optionalAccess', _591 => _591.path]) ? { metadata: { path: source.path } } : {}
18650
+ title: _nullishCoalesce(_optionalChain([source, 'optionalAccess', _598 => _598.name]), () => ( id)),
18651
+ url: _nullishCoalesce(_optionalChain([source, 'optionalAccess', _599 => _599.externalUrl]), () => ( null)),
18652
+ ..._optionalChain([source, 'optionalAccess', _600 => _600.sourceRepo]) ? { sourceRepo: source.sourceRepo } : {},
18653
+ ..._optionalChain([source, 'optionalAccess', _601 => _601.targetPlatform]) !== void 0 ? { targetPlatform: source.targetPlatform } : {},
18654
+ ..._optionalChain([source, 'optionalAccess', _602 => _602.path]) ? { metadata: { path: source.path } } : {}
18608
18655
  }
18609
18656
  ];
18610
18657
  });
@@ -18640,11 +18687,11 @@ function attachmentsEvent(record) {
18640
18687
  }
18641
18688
  function mergeSourceMetadata(previous, event) {
18642
18689
  const byIndex = /* @__PURE__ */ new Map();
18643
- for (const source of [..._nullishCoalesce(_optionalChain([previous, 'optionalAccess', _592 => _592.sources]), () => ( [])), ..._nullishCoalesce(event.sources, () => ( []))]) {
18690
+ for (const source of [..._nullishCoalesce(_optionalChain([previous, 'optionalAccess', _603 => _603.sources]), () => ( [])), ..._nullishCoalesce(event.sources, () => ( []))]) {
18644
18691
  if (!byIndex.has(source.index)) byIndex.set(source.index, source);
18645
18692
  }
18646
18693
  const byIdentity = /* @__PURE__ */ new Map();
18647
- for (const ref of [..._nullishCoalesce(_optionalChain([previous, 'optionalAccess', _593 => _593.refs]), () => ( [])), ..._nullishCoalesce(event.refs, () => ( []))]) {
18694
+ for (const ref of [..._nullishCoalesce(_optionalChain([previous, 'optionalAccess', _604 => _604.refs]), () => ( [])), ..._nullishCoalesce(event.refs, () => ( []))]) {
18648
18695
  const identity = `${ref.type}:${ref.id}`;
18649
18696
  if (!byIdentity.has(identity)) byIdentity.set(identity, ref);
18650
18697
  }
@@ -18730,9 +18777,9 @@ function appendToTrailingAssistant(prev, segments) {
18730
18777
  for (const seg of segments) {
18731
18778
  const tail = merged[merged.length - 1];
18732
18779
  const key = upsertKey(seg);
18733
- if (seg.type === "text" && _optionalChain([tail, 'optionalAccess', _594 => _594.type]) === "text") {
18780
+ if (seg.type === "text" && _optionalChain([tail, 'optionalAccess', _605 => _605.type]) === "text") {
18734
18781
  merged[merged.length - 1] = { type: "text", text: tail.text + seg.text };
18735
- } else if (seg.type === "thinking" && _optionalChain([tail, 'optionalAccess', _595 => _595.type]) === "thinking") {
18782
+ } else if (seg.type === "thinking" && _optionalChain([tail, 'optionalAccess', _606 => _606.type]) === "thinking") {
18736
18783
  merged[merged.length - 1] = { type: "thinking", text: tail.text + seg.text };
18737
18784
  } else if (key) {
18738
18785
  let idx = merged.findIndex((m) => upsertKey(m) === key);
@@ -18773,7 +18820,7 @@ function applyApprovalStatusToSegment(s, requestId, status, resolvedByName) {
18773
18820
  }
18774
18821
  if (s.type !== "approval_batch") return s;
18775
18822
  const isAnchor = s.data.approvalRequestId === requestId;
18776
- const hasRow = _optionalChain([s, 'access', _596 => _596.data, 'access', _597 => _597.toolCalls, 'optionalAccess', _598 => _598.some, 'call', _599 => _599((c) => c.toolExecutionRequestId === requestId)]);
18823
+ const hasRow = _optionalChain([s, 'access', _607 => _607.data, 'access', _608 => _608.toolCalls, 'optionalAccess', _609 => _609.some, 'call', _610 => _610((c) => c.toolExecutionRequestId === requestId)]);
18777
18824
  if (!isAnchor && !hasRow) return s;
18778
18825
  const nextResolvedBy = _nullishCoalesce(resolvedByName, () => ( s.resolvedByName));
18779
18826
  const nextExecutions = hasRow ? {
@@ -18795,8 +18842,8 @@ function applyApprovalStatusToSegment(s, requestId, status, resolvedByName) {
18795
18842
  };
18796
18843
  }
18797
18844
  function nextBatchExecution(prevExec, toolData) {
18798
- if (toolData.type === "EXECUTING_TOOL" && _optionalChain([prevExec, 'optionalAccess', _600 => _600.status]) === "done") return null;
18799
- return toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prevExec, 'optionalAccess', _601 => _601.result]), success: _optionalChain([prevExec, 'optionalAccess', _602 => _602.success]) };
18845
+ if (toolData.type === "EXECUTING_TOOL" && _optionalChain([prevExec, 'optionalAccess', _611 => _611.status]) === "done") return null;
18846
+ return toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prevExec, 'optionalAccess', _612 => _612.result]), success: _optionalChain([prevExec, 'optionalAccess', _613 => _613.success]) };
18800
18847
  }
18801
18848
  function withBatchExecution(seg, execId, state) {
18802
18849
  return {
@@ -18813,11 +18860,11 @@ function projectBatchStatusToMessages(prev, anchorId, status) {
18813
18860
  }
18814
18861
  function projectBatchRowFailureToMessages(prev, rowRequestId) {
18815
18862
  return mapSegments(prev, (s) => {
18816
- if (s.type !== "approval_batch" || !_optionalChain([s, 'access', _603 => _603.data, 'access', _604 => _604.toolCalls, 'optionalAccess', _605 => _605.some, 'call', _606 => _606((c) => c.toolExecutionRequestId === rowRequestId)])) {
18863
+ if (s.type !== "approval_batch" || !_optionalChain([s, 'access', _614 => _614.data, 'access', _615 => _615.toolCalls, 'optionalAccess', _616 => _616.some, 'call', _617 => _617((c) => c.toolExecutionRequestId === rowRequestId)])) {
18817
18864
  return s;
18818
18865
  }
18819
- const existing = _optionalChain([s, 'access', _607 => _607.data, 'access', _608 => _608.executions, 'optionalAccess', _609 => _609[rowRequestId]]);
18820
- if (_optionalChain([existing, 'optionalAccess', _610 => _610.status]) === "done") return s;
18866
+ const existing = _optionalChain([s, 'access', _618 => _618.data, 'access', _619 => _619.executions, 'optionalAccess', _620 => _620[rowRequestId]]);
18867
+ if (_optionalChain([existing, 'optionalAccess', _621 => _621.status]) === "done") return s;
18821
18868
  return withBatchExecution(s, rowRequestId, { status: "done", success: false });
18822
18869
  });
18823
18870
  }
@@ -18853,7 +18900,7 @@ function mergeToolExecutionIfPresent(prev, segment) {
18853
18900
  for (let j = message.segments.length - 1; j >= 0; j--) {
18854
18901
  const seg = message.segments[j];
18855
18902
  if (execId && seg.type === "approval_batch" && seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId)) {
18856
- const prevExec = _optionalChain([seg, 'access', _611 => _611.data, 'access', _612 => _612.executions, 'optionalAccess', _613 => _613[execId]]);
18903
+ const prevExec = _optionalChain([seg, 'access', _622 => _622.data, 'access', _623 => _623.executions, 'optionalAccess', _624 => _624[execId]]);
18857
18904
  const nextExec = nextBatchExecution(prevExec, toolData);
18858
18905
  if (nextExec === null) return prev;
18859
18906
  if (sameExecutionState(prevExec, nextExec)) return prev;
@@ -19026,9 +19073,9 @@ var MessageSegmentAccumulator = class {
19026
19073
  type: "tool_execution",
19027
19074
  data: {
19028
19075
  ...toolData,
19029
- toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _614 => _614.data, 'access', _615 => _615.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _616 => _616.toolTitle]))),
19030
- toolExplanation: _nullishCoalesce(_nullishCoalesce(toolData.toolExplanation, () => ( _optionalChain([existingExecuting, 'optionalAccess', _617 => _617.data, 'access', _618 => _618.toolExplanation]))), () => ( _optionalChain([executingTool, 'optionalAccess', _619 => _619.toolExplanation]))),
19031
- parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _620 => _620.parameters])
19076
+ toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _625 => _625.data, 'access', _626 => _626.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _627 => _627.toolTitle]))),
19077
+ toolExplanation: _nullishCoalesce(_nullishCoalesce(toolData.toolExplanation, () => ( _optionalChain([existingExecuting, 'optionalAccess', _628 => _628.data, 'access', _629 => _629.toolExplanation]))), () => ( _optionalChain([executingTool, 'optionalAccess', _630 => _630.toolExplanation]))),
19078
+ parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _631 => _631.parameters])
19032
19079
  }
19033
19080
  };
19034
19081
  if (existingIndex !== -1) {
@@ -19052,7 +19099,7 @@ var MessageSegmentAccumulator = class {
19052
19099
  if (seg.type !== "approval_batch") return seg;
19053
19100
  const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
19054
19101
  if (!hasCall) return seg;
19055
- const prev = _optionalChain([seg, 'access', _621 => _621.data, 'access', _622 => _622.executions, 'optionalAccess', _623 => _623[execId]]);
19102
+ const prev = _optionalChain([seg, 'access', _632 => _632.data, 'access', _633 => _633.executions, 'optionalAccess', _634 => _634[execId]]);
19056
19103
  const next = nextBatchExecution(prev, toolData);
19057
19104
  matched = true;
19058
19105
  if (next === null) return seg;
@@ -19186,8 +19233,8 @@ var MessageSegmentAccumulator = class {
19186
19233
  requestId,
19187
19234
  {
19188
19235
  ...pendingApproval,
19189
- command: _optionalChain([pendingApproval, 'optionalAccess', _624 => _624.command]) || "",
19190
- approvalType: _optionalChain([pendingApproval, 'optionalAccess', _625 => _625.approvalType]) || approvalType
19236
+ command: _optionalChain([pendingApproval, 'optionalAccess', _635 => _635.command]) || "",
19237
+ approvalType: _optionalChain([pendingApproval, 'optionalAccess', _636 => _636.approvalType]) || approvalType
19191
19238
  },
19192
19239
  status
19193
19240
  );
@@ -19212,9 +19259,9 @@ var MessageSegmentAccumulator = class {
19212
19259
  type: "escalation_offer",
19213
19260
  // The resolved chunk carries no text/origin — a redelivered offer must
19214
19261
  // not blank the card the PENDING chunk already painted.
19215
- data: { offerId, text: text2 || _optionalChain([existing, 'optionalAccess', _626 => _626.data, 'access', _627 => _627.text]) || "", origin: _nullishCoalesce(origin, () => ( _optionalChain([existing, 'optionalAccess', _628 => _628.data, 'access', _629 => _629.origin]))) },
19262
+ data: { offerId, text: text2 || _optionalChain([existing, 'optionalAccess', _637 => _637.data, 'access', _638 => _638.text]) || "", origin: _nullishCoalesce(origin, () => ( _optionalChain([existing, 'optionalAccess', _639 => _639.data, 'access', _640 => _640.origin]))) },
19216
19263
  status,
19217
- resolvedByName: _nullishCoalesce(resolvedByName, () => ( _optionalChain([existing, 'optionalAccess', _630 => _630.resolvedByName]))),
19264
+ resolvedByName: _nullishCoalesce(resolvedByName, () => ( _optionalChain([existing, 'optionalAccess', _641 => _641.resolvedByName]))),
19218
19265
  onApprove: this.callbacks.onEscalationApprove,
19219
19266
  onReject: this.callbacks.onEscalationReject
19220
19267
  };
@@ -19534,7 +19581,7 @@ function createChatStreamReducer(options = {}) {
19534
19581
  let stateCache = null;
19535
19582
  function invalidate() {
19536
19583
  stateCache = null;
19537
- _optionalChain([onChange, 'optionalCall', _631 => _631()]);
19584
+ _optionalChain([onChange, 'optionalCall', _642 => _642()]);
19538
19585
  }
19539
19586
  function getState() {
19540
19587
  if (!stateCache) {
@@ -19552,7 +19599,7 @@ function createChatStreamReducer(options = {}) {
19552
19599
  return stateCache;
19553
19600
  }
19554
19601
  function emit(name, ...args) {
19555
- _optionalChain([onEffect, 'optionalCall', _632 => _632({ name, args })]);
19602
+ _optionalChain([onEffect, 'optionalCall', _643 => _643({ name, args })]);
19556
19603
  }
19557
19604
  function setMessagesInternal(next) {
19558
19605
  if (next !== messages) {
@@ -19595,12 +19642,12 @@ function createChatStreamReducer(options = {}) {
19595
19642
  return stampTrailingAssistantSourceMetadata(stampTrailingAssistantSeq(next, seq));
19596
19643
  }
19597
19644
  function applySegmentsToState(segments, meta) {
19598
- const seq = _optionalChain([meta, 'optionalAccess', _633 => _633.streamSeq]);
19599
- if (_optionalChain([meta, 'optionalAccess', _634 => _634.append]) && meta.isCompacting) {
19645
+ const seq = _optionalChain([meta, 'optionalAccess', _644 => _644.streamSeq]);
19646
+ if (_optionalChain([meta, 'optionalAccess', _645 => _645.append]) && meta.isCompacting) {
19600
19647
  setMessagesInternal(commitTrailingAssistant(upsertTrailingCompaction(messages, segments), seq));
19601
19648
  return;
19602
19649
  }
19603
- if (_optionalChain([meta, 'optionalAccess', _635 => _635.append])) {
19650
+ if (_optionalChain([meta, 'optionalAccess', _646 => _646.append])) {
19604
19651
  setMessagesInternal(commitTrailingAssistant(appendToTrailingAssistant(messages, segments), seq));
19605
19652
  return;
19606
19653
  }
@@ -19612,7 +19659,7 @@ function createChatStreamReducer(options = {}) {
19612
19659
  adoptTrailingAssistant = false;
19613
19660
  const last = messages[messages.length - 1];
19614
19661
  if (!last || last.role !== "assistant" || adoptTail) return;
19615
- const hasContent = (_nullishCoalesce(_optionalChain([last, 'access', _636 => _636.segments, 'optionalAccess', _637 => _637.length]), () => ( 0))) > 0 || last.content !== "";
19662
+ const hasContent = (_nullishCoalesce(_optionalChain([last, 'access', _647 => _647.segments, 'optionalAccess', _648 => _648.length]), () => ( 0))) > 0 || last.content !== "";
19616
19663
  if (!hasContent) return;
19617
19664
  setMessagesInternal([...messages, { id: nextId("assistant"), role: "assistant", content: "", segments: [] }]);
19618
19665
  }
@@ -19831,13 +19878,13 @@ function createChatStreamReducer(options = {}) {
19831
19878
  const summary = required ? _chunkHP4UUBJCcjs.getCommandText.call(void 0, required) : `Batch of ${toolCalls.length} tool calls`;
19832
19879
  pendingEscalated.set(requestId, {
19833
19880
  command: summary,
19834
- explanation: _optionalChain([required, 'optionalAccess', _638 => _638.toolExplanation]),
19881
+ explanation: _optionalChain([required, 'optionalAccess', _649 => _649.toolExplanation]),
19835
19882
  approvalType,
19836
19883
  toolCalls
19837
19884
  });
19838
19885
  emit("onEscalatedApproval", requestId, {
19839
19886
  command: summary,
19840
- explanation: _optionalChain([required, 'optionalAccess', _639 => _639.toolExplanation]),
19887
+ explanation: _optionalChain([required, 'optionalAccess', _650 => _650.toolExplanation]),
19841
19888
  approvalType
19842
19889
  });
19843
19890
  break;
@@ -20225,7 +20272,7 @@ function createChatStreamReducer(options = {}) {
20225
20272
  const resolveBatch = (status, confirm) => async () => {
20226
20273
  setMessagesInternal(projectBatchStatusToMessages(messages, anchorId, status));
20227
20274
  for (const id of ids) {
20228
- const ok = await _optionalChain([confirm, 'optionalCall', _640 => _640(id)]);
20275
+ const ok = await _optionalChain([confirm, 'optionalCall', _651 => _651(id)]);
20229
20276
  if (ok === false) {
20230
20277
  setMessagesInternal(projectBatchRowFailureToMessages(messages, id));
20231
20278
  }
@@ -20361,8 +20408,8 @@ function createChatStreamReducer(options = {}) {
20361
20408
  }
20362
20409
  }
20363
20410
  }
20364
- hasEverStreamed = hasEverStreamed || (_nullishCoalesce(_optionalChain([extras, 'optionalAccess', _641 => _641.resumed]), () => ( messages.length > 0)));
20365
- if (_optionalChain([extras, 'optionalAccess', _642 => _642.agentBusy])) agentBusyState();
20411
+ hasEverStreamed = hasEverStreamed || (_nullishCoalesce(_optionalChain([extras, 'optionalAccess', _652 => _652.resumed]), () => ( messages.length > 0)));
20412
+ if (_optionalChain([extras, 'optionalAccess', _653 => _653.agentBusy])) agentBusyState();
20366
20413
  invalidate();
20367
20414
  }
20368
20415
  return {
@@ -20449,7 +20496,7 @@ function createChatStreamReducer(options = {}) {
20449
20496
  },
20450
20497
  endSseTurn() {
20451
20498
  const last = messages[messages.length - 1];
20452
- if (last && last.role === "assistant" && (_nullishCoalesce(_optionalChain([last, 'access', _643 => _643.segments, 'optionalAccess', _644 => _644.length]), () => ( 0))) === 0 && last.content === "") {
20499
+ if (last && last.role === "assistant" && (_nullishCoalesce(_optionalChain([last, 'access', _654 => _654.segments, 'optionalAccess', _655 => _655.length]), () => ( 0))) === 0 && last.content === "") {
20453
20500
  messages = messages.slice(0, -1);
20454
20501
  }
20455
20502
  sseCurrentText = "";
@@ -20603,10 +20650,10 @@ function createChatDialogStore(options = {}) {
20603
20650
  if (onEvict) {
20604
20651
  const sep = key.indexOf(KEY_SEP);
20605
20652
  onEvict(key.slice(0, sep), key.slice(sep + 1), {
20606
- messages: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _645 => _645.state, 'access', _646 => _646.messages]), () => ( EMPTY_STATE.messages)),
20607
- approvalStatuses: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _647 => _647.state, 'access', _648 => _648.approvalStatuses]), () => ( EMPTY_STATE.approvalStatuses)),
20608
- lastAppliedSeq: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _649 => _649.getLastAppliedSeq, 'call', _650 => _650()]), () => ( Number.NEGATIVE_INFINITY)),
20609
- pendingEchoes: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _651 => _651.getPendingEchoes, 'call', _652 => _652()]), () => ( EMPTY_PENDING_ECHOES))
20653
+ messages: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _656 => _656.state, 'access', _657 => _657.messages]), () => ( EMPTY_STATE.messages)),
20654
+ approvalStatuses: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _658 => _658.state, 'access', _659 => _659.approvalStatuses]), () => ( EMPTY_STATE.approvalStatuses)),
20655
+ lastAppliedSeq: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _660 => _660.getLastAppliedSeq, 'call', _661 => _661()]), () => ( Number.NEGATIVE_INFINITY)),
20656
+ pendingEchoes: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _662 => _662.getPendingEchoes, 'call', _663 => _663()]), () => ( EMPTY_PENDING_ECHOES))
20610
20657
  });
20611
20658
  }
20612
20659
  }
@@ -20616,12 +20663,12 @@ function createChatDialogStore(options = {}) {
20616
20663
  const key = keyOf(dialogId, side);
20617
20664
  let reducer = reducers.get(key);
20618
20665
  if (!reducer) {
20619
- const base = _nullishCoalesce(_optionalChain([(_nullishCoalesce(createOptions, () => ( defaultCreateOptions))), 'optionalCall', _653 => _653(dialogId, side)]), () => ( {}));
20666
+ const base = _nullishCoalesce(_optionalChain([(_nullishCoalesce(createOptions, () => ( defaultCreateOptions))), 'optionalCall', _664 => _664(dialogId, side)]), () => ( {}));
20620
20667
  const userOnChange = base.onChange;
20621
20668
  reducer = createChatStreamReducer({
20622
20669
  ...base,
20623
20670
  onChange: () => {
20624
- _optionalChain([userOnChange, 'optionalCall', _654 => _654()]);
20671
+ _optionalChain([userOnChange, 'optionalCall', _665 => _665()]);
20625
20672
  notify();
20626
20673
  }
20627
20674
  });
@@ -20666,7 +20713,7 @@ function createChatDialogStore(options = {}) {
20666
20713
  };
20667
20714
  }
20668
20715
  function getSnapshot2(dialogId, side = DEFAULT_DIALOG_SIDE) {
20669
- return _nullishCoalesce(_optionalChain([reducers, 'access', _655 => _655.get, 'call', _656 => _656(keyOf(dialogId, side)), 'optionalAccess', _657 => _657.state]), () => ( EMPTY_STATE));
20716
+ return _nullishCoalesce(_optionalChain([reducers, 'access', _666 => _666.get, 'call', _667 => _667(keyOf(dialogId, side)), 'optionalAccess', _668 => _668.state]), () => ( EMPTY_STATE));
20670
20717
  }
20671
20718
  function getServerSnapshot2() {
20672
20719
  return EMPTY_STATE;
@@ -20758,7 +20805,7 @@ function createDeltaBatcher({
20758
20805
  pending = [];
20759
20806
  const key = pendingKey;
20760
20807
  for (const delta of batch) applyOne(delta, key);
20761
- _optionalChain([onFlushed, 'optionalCall', _658 => _658(batch.length)]);
20808
+ _optionalChain([onFlushed, 'optionalCall', _669 => _669(batch.length)]);
20762
20809
  }
20763
20810
  function schedule() {
20764
20811
  if (raf !== null || timer !== null) return;
@@ -20782,7 +20829,7 @@ function createDeltaBatcher({
20782
20829
  }
20783
20830
  if (!isDeltaEvent(event)) return false;
20784
20831
  const tail = pending[pending.length - 1];
20785
- const seqAdvances = _optionalChain([tail, 'optionalAccess', _659 => _659.seq]) == null ? event.seq == null : event.seq != null && event.seq > tail.seq;
20832
+ const seqAdvances = _optionalChain([tail, 'optionalAccess', _670 => _670.seq]) == null ? event.seq == null : event.seq != null && event.seq > tail.seq;
20786
20833
  if (tail && seqAdvances && tail.type === event.type && (tail.type !== "text-delta" || tail.leading === event.leading)) {
20787
20834
  pending[pending.length - 1] = {
20788
20835
  ...tail,
@@ -20813,7 +20860,7 @@ function useChatStreamReducer({
20813
20860
  side = DEFAULT_DIALOG_SIDE,
20814
20861
  createReducerOptions
20815
20862
  }) {
20816
- const reducer = store.getReducer(dialogId, side, () => _nullishCoalesce(_optionalChain([createReducerOptions, 'optionalCall', _660 => _660()]), () => ( {})));
20863
+ const reducer = store.getReducer(dialogId, side, () => _nullishCoalesce(_optionalChain([createReducerOptions, 'optionalCall', _671 => _671()]), () => ( {})));
20817
20864
  const getSnapshot2 = _react.useCallback.call(void 0, () => store.getSnapshot(dialogId, side), [store, dialogId, side]);
20818
20865
  const getServerSnapshot2 = _react.useCallback.call(void 0, () => store.getServerSnapshot(), [store]);
20819
20866
  const subscribe2 = _react.useCallback.call(void 0, (listener) => store.subscribe(listener), [store]);
@@ -20852,7 +20899,7 @@ var STORAGE_KEY = "conversation";
20852
20899
  var namespaceFor = (source) => {
20853
20900
  const base = `mingo-chat-${source}`;
20854
20901
  const auth = _chunkULWVKHSIcjs.getEmbedProxyAuth.call(void 0, );
20855
- return _optionalChain([auth, 'optionalAccess', _661 => _661.email]) ? `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}` : base;
20902
+ return _optionalChain([auth, 'optionalAccess', _672 => _672.email]) ? `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}` : base;
20856
20903
  };
20857
20904
  function createChatConversationStorage(source) {
20858
20905
  return _chunkULWVKHSIcjs.createLocalStorageAdapter.call(void 0, {
@@ -20983,7 +21030,7 @@ function useChatHistoryHydration({
20983
21030
  if (cancelled) return;
20984
21031
  if (rows.length === 0) {
20985
21032
  const found = isRecord(body) ? body.found : void 0;
20986
- if (found === false) _optionalChain([onOrphanedConversation, 'optionalCall', _662 => _662(conversationId)]);
21033
+ if (found === false) _optionalChain([onOrphanedConversation, 'optionalCall', _673 => _673(conversationId)]);
20987
21034
  return;
20988
21035
  }
20989
21036
  const hydrated = [];
@@ -21127,7 +21174,7 @@ function useManagedDialogList({
21127
21174
  try {
21128
21175
  await deleteDialogCallback(id);
21129
21176
  removeLocal(id);
21130
- _optionalChain([onDialogRemovedRef, 'access', _663 => _663.current, 'optionalCall', _664 => _664(id, "deleted")]);
21177
+ _optionalChain([onDialogRemovedRef, 'access', _674 => _674.current, 'optionalCall', _675 => _675(id, "deleted")]);
21131
21178
  } catch (err) {
21132
21179
  console.error(`${logTag} deleteDialog failed:`, err);
21133
21180
  throw err;
@@ -21138,7 +21185,7 @@ function useManagedDialogList({
21138
21185
  const renameDialog = _react.useCallback.call(void 0,
21139
21186
  async (id, title) => {
21140
21187
  if (!renameDialogCallback) return;
21141
- const previous = _optionalChain([dialogsRef, 'access', _665 => _665.current, 'access', _666 => _666.find, 'call', _667 => _667((d) => d.id === id), 'optionalAccess', _668 => _668.title]);
21188
+ const previous = _optionalChain([dialogsRef, 'access', _676 => _676.current, 'access', _677 => _677.find, 'call', _678 => _678((d) => d.id === id), 'optionalAccess', _679 => _679.title]);
21142
21189
  setDialogs((prev) => prev.map((d) => d.id === id ? { ...d, title } : d));
21143
21190
  try {
21144
21191
  await renameDialogCallback(id, title);
@@ -21157,7 +21204,7 @@ function useManagedDialogList({
21157
21204
  try {
21158
21205
  await archiveDialogCallback(id);
21159
21206
  removeLocal(id);
21160
- _optionalChain([onDialogRemovedRef, 'access', _669 => _669.current, 'optionalCall', _670 => _670(id, "archived")]);
21207
+ _optionalChain([onDialogRemovedRef, 'access', _680 => _680.current, 'optionalCall', _681 => _681(id, "archived")]);
21161
21208
  } catch (err) {
21162
21209
  console.error(`${logTag} archiveDialog failed:`, err);
21163
21210
  throw err;
@@ -21249,7 +21296,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21249
21296
  const { active = true } = runtimeOptions;
21250
21297
  const runtime = _chunkUJ7AXHRZcjs.useRequiredChatRuntime.call(void 0, );
21251
21298
  const source = runtime.source || DEFAULT_CHAT_SOURCE;
21252
- const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _671 => _671.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
21299
+ const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _682 => _682.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
21253
21300
  const sendMessageRef = _react.useRef.call(void 0,
21254
21301
  () => Promise.resolve(true)
21255
21302
  );
@@ -21285,7 +21332,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21285
21332
  if (!restoredConversationRef.current) {
21286
21333
  restoredConversationRef.current = true;
21287
21334
  pruneStaleChatConversationStorage(source);
21288
- conversationIdRef.current = _nullishCoalesce(_optionalChain([conversationStorage, 'access', _672 => _672.load, 'call', _673 => _673(), 'optionalAccess', _674 => _674.conversationId]), () => ( null));
21335
+ conversationIdRef.current = _nullishCoalesce(_optionalChain([conversationStorage, 'access', _683 => _683.load, 'call', _684 => _684(), 'optionalAccess', _685 => _685.conversationId]), () => ( null));
21289
21336
  }
21290
21337
  const [conversationId, setConversationId] = _react.useState.call(void 0, () => conversationIdRef.current);
21291
21338
  const commitConversationId = _react.useCallback.call(void 0,
@@ -21376,7 +21423,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21376
21423
  const abortControllerRef = _react.useRef.call(void 0, null);
21377
21424
  const switchConversation = _react.useCallback.call(void 0,
21378
21425
  (id) => {
21379
- _optionalChain([abortControllerRef, 'access', _675 => _675.current, 'optionalAccess', _676 => _676.abort, 'call', _677 => _677()]);
21426
+ _optionalChain([abortControllerRef, 'access', _686 => _686.current, 'optionalAccess', _687 => _687.abort, 'call', _688 => _688()]);
21380
21427
  flushDeltas();
21381
21428
  mutate((r) => r.reset());
21382
21429
  hydrationSendCountRef.current = 0;
@@ -21413,8 +21460,8 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21413
21460
  } = useManagedDialogList({
21414
21461
  autoLoad: active,
21415
21462
  fetchDialogs: fetchActiveDialogs,
21416
- renameDialog: _optionalChain([conversationsApi, 'optionalAccess', _678 => _678.renameDialog]),
21417
- archiveDialog: _optionalChain([conversationsApi, 'optionalAccess', _679 => _679.archiveDialog]),
21463
+ renameDialog: _optionalChain([conversationsApi, 'optionalAccess', _689 => _689.renameDialog]),
21464
+ archiveDialog: _optionalChain([conversationsApi, 'optionalAccess', _690 => _690.archiveDialog]),
21418
21465
  pageSize: 20,
21419
21466
  search: conversationsApi ? dialogSearch : void 0,
21420
21467
  logTag: "[useSseChatAdapter]",
@@ -21478,7 +21525,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21478
21525
  const serverMessage = await readServerErrorMessage(response);
21479
21526
  throw new Error(_nullishCoalesce(serverMessage, () => ( `Chat request failed: ${response.status}`)));
21480
21527
  }
21481
- const reader = _optionalChain([response, 'access', _680 => _680.body, 'optionalAccess', _681 => _681.getReader, 'call', _682 => _682()]);
21528
+ const reader = _optionalChain([response, 'access', _691 => _691.body, 'optionalAccess', _692 => _692.getReader, 'call', _693 => _693()]);
21482
21529
  if (!reader) throw new Error("No response body");
21483
21530
  const frameDecoder = createSseFrameDecoder();
21484
21531
  let finished = false;
@@ -21507,7 +21554,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21507
21554
  }
21508
21555
  return true;
21509
21556
  } catch (err) {
21510
- if (_optionalChain([err, 'optionalAccess', _683 => _683.name]) === "AbortError" || ctrl.signal.aborted) {
21557
+ if (_optionalChain([err, 'optionalAccess', _694 => _694.name]) === "AbortError" || ctrl.signal.aborted) {
21511
21558
  return true;
21512
21559
  }
21513
21560
  flushDeltas();
@@ -21543,7 +21590,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21543
21590
  );
21544
21591
  sendMessageRef.current = sendMessage;
21545
21592
  const stopMessage = _react.useCallback.call(void 0, () => {
21546
- _optionalChain([abortControllerRef, 'access', _684 => _684.current, 'optionalAccess', _685 => _685.abort, 'call', _686 => _686()]);
21593
+ _optionalChain([abortControllerRef, 'access', _695 => _695.current, 'optionalAccess', _696 => _696.abort, 'call', _697 => _697()]);
21547
21594
  flushDeltas();
21548
21595
  mutate((r) => r.setPhase("idle"));
21549
21596
  }, [mutate, flushDeltas]);
@@ -21579,7 +21626,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21579
21626
  let sendIdx = -1;
21580
21627
  return state.messages.map((m) => {
21581
21628
  const segments = m.segments;
21582
- const content = typeof m.content === "string" && !segments ? m.content : _nullishCoalesce(_optionalChain([segments, 'optionalAccess', _687 => _687.filter, 'call', _688 => _688((s) => s.type === "text"), 'access', _689 => _689.map, 'call', _690 => _690((s) => s.text), 'access', _691 => _691.join, 'call', _692 => _692("")]), () => ( ""));
21629
+ const content = typeof m.content === "string" && !segments ? m.content : _nullishCoalesce(_optionalChain([segments, 'optionalAccess', _698 => _698.filter, 'call', _699 => _699((s) => s.type === "text"), 'access', _700 => _700.map, 'call', _701 => _701((s) => s.text), 'access', _702 => _702.join, 'call', _703 => _703("")]), () => ( ""));
21583
21630
  let sources2;
21584
21631
  let scrollAnchor;
21585
21632
  if (m.role === "user" && !m.hidden) {
@@ -21588,7 +21635,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21588
21635
  if (m.role === "assistant") {
21589
21636
  const lookupIdx = sendIdx >= 0 ? sendIdx : 0;
21590
21637
  sources2 = sourcesMap.get(lookupIdx);
21591
- scrollAnchor = _nullishCoalesce(_optionalChain([meta, 'access', _693 => _693.get, 'call', _694 => _694(lookupIdx), 'optionalAccess', _695 => _695.scrollAnchor]), () => ( void 0));
21638
+ scrollAnchor = _nullishCoalesce(_optionalChain([meta, 'access', _704 => _704.get, 'call', _705 => _705(lookupIdx), 'optionalAccess', _706 => _706.scrollAnchor]), () => ( void 0));
21592
21639
  }
21593
21640
  return {
21594
21641
  id: m.id,
@@ -21615,7 +21662,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21615
21662
  );
21616
21663
  return;
21617
21664
  }
21618
- const refSlug = typeof _optionalChain([reference, 'access', _696 => _696.metadata, 'optionalAccess', _697 => _697.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
21665
+ const refSlug = typeof _optionalChain([reference, 'access', _707 => _707.metadata, 'optionalAccess', _708 => _708.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
21619
21666
  const queryValue = refSlug || sanitizeTitleForChat(reference.title) || reference.id;
21620
21667
  const escaped = queryValue.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
21621
21668
  const text2 = `/${cmdId} display "${escaped}"`;
@@ -21663,18 +21710,18 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
21663
21710
  /** True while the mount-time rebuild from the server transcript runs. */
21664
21711
  isHydratingHistory,
21665
21712
  /** Provider key for the lib's `<ModelDisplay>` icon. */
21666
- currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _698 => _698.provider]), () => ( null)),
21667
- currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _699 => _699.modelLabel]), () => ( null)),
21668
- currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _700 => _700.contextWindowMaxTokens]), () => ( null)),
21713
+ currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _709 => _709.provider]), () => ( null)),
21714
+ currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _710 => _710.modelLabel]), () => ( null)),
21715
+ currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _711 => _711.contextWindowMaxTokens]), () => ( null)),
21669
21716
  /** Input tokens (known after server's message_start frame; null until). */
21670
- currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _701 => _701.inputTokens]), () => ( null)),
21717
+ currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _712 => _712.inputTokens]), () => ( null)),
21671
21718
  /** Output tokens (known only after server's trailing usage frame). */
21672
- currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _702 => _702.outputTokens]), () => ( null)),
21719
+ currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _713 => _713.outputTokens]), () => ( null)),
21673
21720
  /** Cache hit % (read / total-input × 100). null during streaming. */
21674
- currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _703 => _703.cacheHitRatePct]), () => ( null)),
21721
+ currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _714 => _714.cacheHitRatePct]), () => ( null)),
21675
21722
  /** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
21676
21723
  * token counts). null until the trailing usage frame lands. */
21677
- currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _704 => _704.breakdown]), () => ( null)),
21724
+ currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _715 => _715.breakdown]), () => ( null)),
21678
21725
  // ─── Dialog management ───────────────────────────────────────────────
21679
21726
  // With `chatConversationsUrl` the server transcript store IS the dialog
21680
21727
  // list (shared `useManagedDialogList`); selecting a row re-hydrates through
@@ -21930,7 +21977,7 @@ function decodeNatsChunk(chunk) {
21930
21977
  userId: typeof data.userId === "string" ? data.userId : void 0,
21931
21978
  // Wire shape carries no label; fall back to the id (parity with
21932
21979
  // the history path in `process-historical-messages.ts`).
21933
- contextItems: Array.isArray(data.contextItems) ? data.contextItems.filter((it) => typeof _optionalChain([it, 'optionalAccess', _705 => _705.type]) === "string" && typeof _optionalChain([it, 'optionalAccess', _706 => _706.id]) === "string").map((it) => ({
21980
+ contextItems: Array.isArray(data.contextItems) ? data.contextItems.filter((it) => typeof _optionalChain([it, 'optionalAccess', _716 => _716.type]) === "string" && typeof _optionalChain([it, 'optionalAccess', _717 => _717.id]) === "string").map((it) => ({
21934
21981
  type: it.type,
21935
21982
  id: it.id,
21936
21983
  label: it.id
@@ -22021,7 +22068,7 @@ function extractIncompleteMessageState(lastMessage) {
22021
22068
  }
22022
22069
  break;
22023
22070
  case "approval_batch": {
22024
- const allDone = !!segment.data.executions && segment.data.toolCalls.every((c) => _optionalChain([segment, 'access', _707 => _707.data, 'access', _708 => _708.executions, 'optionalAccess', _709 => _709[c.toolExecutionRequestId], 'optionalAccess', _710 => _710.status]) === "done");
22071
+ const allDone = !!segment.data.executions && segment.data.toolCalls.every((c) => _optionalChain([segment, 'access', _718 => _718.data, 'access', _719 => _719.executions, 'optionalAccess', _720 => _720[c.toolExecutionRequestId], 'optionalAccess', _721 => _721.status]) === "done");
22025
22072
  if (segment.status !== "rejected" && !allDone) {
22026
22073
  hasIncompleteState = true;
22027
22074
  }
@@ -22083,11 +22130,11 @@ function extractIncompleteMessageState(lastMessage) {
22083
22130
  function extractIncompleteTailState(messages) {
22084
22131
  if (!messages || messages.length === 0) return void 0;
22085
22132
  let start = messages.length;
22086
- while (start > 0 && _optionalChain([messages, 'access', _711 => _711[start - 1], 'optionalAccess', _712 => _712.role]) === "assistant") start -= 1;
22133
+ while (start > 0 && _optionalChain([messages, 'access', _722 => _722[start - 1], 'optionalAccess', _723 => _723.role]) === "assistant") start -= 1;
22087
22134
  if (start === messages.length) return void 0;
22088
22135
  const segments = [];
22089
22136
  for (let i = start; i < messages.length; i += 1) {
22090
- const content = _optionalChain([messages, 'access', _713 => _713[i], 'optionalAccess', _714 => _714.content]);
22137
+ const content = _optionalChain([messages, 'access', _724 => _724[i], 'optionalAccess', _725 => _725.content]);
22091
22138
  if (Array.isArray(content)) segments.push(...content);
22092
22139
  }
22093
22140
  if (segments.length === 0) return void 0;
@@ -22100,15 +22147,15 @@ function extractIncompleteTailState(messages) {
22100
22147
 
22101
22148
  // src/components/chat/utils/process-historical-messages.ts
22102
22149
  function getOwnerDisplayName(owner) {
22103
- if (_optionalChain([owner, 'optionalAccess', _715 => _715.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.ADMIN && owner.user) {
22150
+ if (_optionalChain([owner, 'optionalAccess', _726 => _726.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.ADMIN && owner.user) {
22104
22151
  const { firstName, lastName } = owner.user;
22105
22152
  const name = [firstName, lastName].filter(Boolean).join(" ");
22106
22153
  if (name) return name;
22107
22154
  }
22108
- return _optionalChain([owner, 'optionalAccess', _716 => _716.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.ADMIN ? "Admin" : "You";
22155
+ return _optionalChain([owner, 'optionalAccess', _727 => _727.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.ADMIN ? "Admin" : "You";
22109
22156
  }
22110
22157
  function getOwnerAvatar(owner) {
22111
- return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _717 => _717.user, 'optionalAccess', _718 => _718.image, 'optionalAccess', _719 => _719.imageUrl]), () => ( void 0));
22158
+ return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _728 => _728.user, 'optionalAccess', _729 => _729.image, 'optionalAccess', _730 => _730.imageUrl]), () => ( void 0));
22112
22159
  }
22113
22160
  function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
22114
22161
  messageDataArray.forEach((data) => {
@@ -22300,7 +22347,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
22300
22347
  event.offerId,
22301
22348
  event.text,
22302
22349
  event.origin,
22303
- _nullishCoalesce(_optionalChain([escalationOfferStates, 'optionalAccess', _720 => _720[event.offerId]]), () => ( "pending"))
22350
+ _nullishCoalesce(_optionalChain([escalationOfferStates, 'optionalAccess', _731 => _731[event.offerId]]), () => ( "pending"))
22304
22351
  );
22305
22352
  break;
22306
22353
  case "ticket-escalated":
@@ -22334,7 +22381,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
22334
22381
  );
22335
22382
  break;
22336
22383
  case "escalation-offer-resolved":
22337
- _optionalChain([offerResolutions, 'optionalAccess', _721 => _721.set, 'call', _722 => _722(event.offerId, {
22384
+ _optionalChain([offerResolutions, 'optionalAccess', _732 => _732.set, 'call', _733 => _733(event.offerId, {
22338
22385
  status: event.status,
22339
22386
  resolvedByName: event.resolvedByName
22340
22387
  })]);
@@ -22398,7 +22445,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
22398
22445
  }
22399
22446
  }
22400
22447
  } else {
22401
- _optionalChain([escalatedApprovals, 'optionalAccess', _723 => _723.set, 'call', _724 => _724(event.requestId, {
22448
+ _optionalChain([escalatedApprovals, 'optionalAccess', _734 => _734.set, 'call', _735 => _735(event.requestId, {
22402
22449
  command: event.command || "",
22403
22450
  explanation: event.explanation,
22404
22451
  approvalType,
@@ -22413,8 +22460,8 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
22413
22460
  const existingStatus = approvalStatuses[requestId];
22414
22461
  const status = existingStatus || event.status;
22415
22462
  const resolvedByName = event.resolvedByName;
22416
- const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _725 => _725.get, 'call', _726 => _726(requestId)]);
22417
- if (_optionalChain([escalatedData, 'optionalAccess', _727 => _727.toolCalls]) && escalatedData.toolCalls.length > 0) {
22463
+ const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _736 => _736.get, 'call', _737 => _737(requestId)]);
22464
+ if (_optionalChain([escalatedData, 'optionalAccess', _738 => _738.toolCalls]) && escalatedData.toolCalls.length > 0) {
22418
22465
  if (batchApprovalsEnabled) {
22419
22466
  accumulator.addApprovalBatch(
22420
22467
  requestId,
@@ -22436,7 +22483,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
22436
22483
  );
22437
22484
  }
22438
22485
  }
22439
- _optionalChain([escalatedApprovals, 'optionalAccess', _728 => _728.delete, 'call', _729 => _729(requestId)]);
22486
+ _optionalChain([escalatedApprovals, 'optionalAccess', _739 => _739.delete, 'call', _740 => _740(requestId)]);
22440
22487
  break;
22441
22488
  }
22442
22489
  if (escalatedData) {
@@ -22445,7 +22492,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
22445
22492
  explanation: escalatedData.explanation,
22446
22493
  approvalType: escalatedData.approvalType
22447
22494
  });
22448
- _optionalChain([escalatedApprovals, 'optionalAccess', _730 => _730.delete, 'call', _731 => _731(requestId)]);
22495
+ _optionalChain([escalatedApprovals, 'optionalAccess', _741 => _741.delete, 'call', _742 => _742(requestId)]);
22449
22496
  }
22450
22497
  const before = accumulator.getSegments();
22451
22498
  const after = accumulator.updateApprovalStatus(requestId, status, resolvedByName);
@@ -22537,14 +22584,14 @@ function processHistoricalMessages(messages, options = {}) {
22537
22584
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
22538
22585
  return;
22539
22586
  }
22540
- const isUserMessage = _optionalChain([msg, 'access', _732 => _732.owner, 'optionalAccess', _733 => _733.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _734 => _734.owner, 'optionalAccess', _735 => _735.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.ADMIN;
22587
+ const isUserMessage = _optionalChain([msg, 'access', _743 => _743.owner, 'optionalAccess', _744 => _744.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _745 => _745.owner, 'optionalAccess', _746 => _746.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.ADMIN;
22541
22588
  if (isUserMessage) {
22542
22589
  flushAssistantMessage();
22543
- const userAuthorType = _optionalChain([msg, 'access', _736 => _736.owner, 'optionalAccess', _737 => _737.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.ADMIN ? "admin" : "user";
22590
+ const userAuthorType = _optionalChain([msg, 'access', _747 => _747.owner, 'optionalAccess', _748 => _748.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.ADMIN ? "admin" : "user";
22544
22591
  messageDataArray.forEach((data) => {
22545
22592
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
22546
22593
  const rawContext = data.contextItems;
22547
- const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _738 => _738.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _739 => _739.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
22594
+ const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _749 => _749.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _750 => _750.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
22548
22595
  processedMessages.push({
22549
22596
  id: msg.id,
22550
22597
  role: "user",
@@ -22591,7 +22638,7 @@ function processHistoricalMessages(messages, options = {}) {
22591
22638
  });
22592
22639
  const nextMsg = messages[index + 1];
22593
22640
  const isLastMessage = index === messages.length - 1;
22594
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _740 => _740.owner, 'optionalAccess', _741 => _741.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _742 => _742.owner, 'optionalAccess', _743 => _743.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.ADMIN);
22641
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _751 => _751.owner, 'optionalAccess', _752 => _752.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _753 => _753.owner, 'optionalAccess', _754 => _754.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.ADMIN);
22595
22642
  if (isLastMessage || nextIsFromUser) {
22596
22643
  flushAssistantMessage();
22597
22644
  }
@@ -22974,7 +23021,7 @@ function useNatsChatAdapter(config, options = {}) {
22974
23021
  const connectionState = !active || !dialogId ? "connected" : connectedForDialog === dialogId ? "connected" : "connecting";
22975
23022
  const sendMessage = _react.useCallback.call(void 0,
22976
23023
  async (text2, sendOptions) => {
22977
- const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _744 => _744.hidden]), () => ( false));
23024
+ const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _755 => _755.hidden]), () => ( false));
22978
23025
  mutate((r) => r.pushOptimisticSend(text2, hidden));
22979
23026
  await publishUserMessage(text2, { hidden, dialogId });
22980
23027
  },
@@ -23067,11 +23114,11 @@ function useNatsChatAdapter(config, options = {}) {
23067
23114
  // Tokens: live `token_usage` frame / dialog snapshot (`dialogTokenUsage`).
23068
23115
  // contextWindow uses the dialog's `contextSize` (the "X / Y" denominator,
23069
23116
  // matching the /mingo page). cacheHitRate/breakdown are SSE-only → null.
23070
- currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _745 => _745.provider]), () => ( modelProvider)), () => ( null)),
23071
- currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _746 => _746.modelLabel]), () => ( modelLabel)), () => ( null)),
23072
- currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _747 => _747.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _748 => _748.contextWindowMaxTokens]))), () => ( null)),
23073
- currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _749 => _749.inputTokensSize]), () => ( null)),
23074
- currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _750 => _750.outputTokensSize]), () => ( null)),
23117
+ currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _756 => _756.provider]), () => ( modelProvider)), () => ( null)),
23118
+ currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _757 => _757.modelLabel]), () => ( modelLabel)), () => ( null)),
23119
+ currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _758 => _758.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _759 => _759.contextWindowMaxTokens]))), () => ( null)),
23120
+ currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _760 => _760.inputTokensSize]), () => ( null)),
23121
+ currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _761 => _761.outputTokensSize]), () => ( null)),
23075
23122
  currentCacheHitRatePct: null,
23076
23123
  currentUsageBreakdown: null,
23077
23124
  // Dialog management
@@ -23193,7 +23240,7 @@ function useUnifiedChat(options) {
23193
23240
  []
23194
23241
  );
23195
23242
  const displayRefForward = _react.useCallback.call(void 0,
23196
- (ref) => _optionalChain([activeStateRef, 'access', _751 => _751.current, 'access', _752 => _752.displayRef, 'optionalCall', _753 => _753(ref)]),
23243
+ (ref) => _optionalChain([activeStateRef, 'access', _762 => _762.current, 'access', _763 => _763.displayRef, 'optionalCall', _764 => _764(ref)]),
23197
23244
  []
23198
23245
  );
23199
23246
  const displayRef = activeState.displayRef ? displayRefForward : void 0;
@@ -23203,7 +23250,7 @@ function useUnifiedChat(options) {
23203
23250
  const renameDialog = _react.useCallback.call(void 0, (id, title) => activeStateRef.current.renameDialog(id, title), []);
23204
23251
  const archiveDialog = _react.useCallback.call(void 0, (id) => activeStateRef.current.archiveDialog(id), []);
23205
23252
  const loadMoreDialogs = _react.useCallback.call(void 0, () => activeStateRef.current.loadMoreDialogs(), []);
23206
- const setDialogScope = _react.useCallback.call(void 0, (scope) => _optionalChain([activeStateRef, 'access', _754 => _754.current, 'access', _755 => _755.setDialogScope, 'optionalCall', _756 => _756(scope)]), []);
23253
+ const setDialogScope = _react.useCallback.call(void 0, (scope) => _optionalChain([activeStateRef, 'access', _765 => _765.current, 'access', _766 => _766.setDialogScope, 'optionalCall', _767 => _767(scope)]), []);
23207
23254
  const reloadDialogs = _react.useCallback.call(void 0, () => activeStateRef.current.reloadDialogs(), []);
23208
23255
  const loadMoreMessages = _react.useCallback.call(void 0, () => activeStateRef.current.loadMoreMessages(), []);
23209
23256
  const approveRequest = _react.useCallback.call(void 0, (requestId) => activeStateRef.current.approveRequest(requestId), []);
@@ -23313,19 +23360,19 @@ function turnRequestKeys(content) {
23313
23360
  if (!Array.isArray(content)) return keys;
23314
23361
  for (const seg of content) {
23315
23362
  if (seg.type === "tool_execution") {
23316
- const id = _optionalChain([seg, 'access', _757 => _757.data, 'optionalAccess', _758 => _758.toolExecutionRequestId]);
23363
+ const id = _optionalChain([seg, 'access', _768 => _768.data, 'optionalAccess', _769 => _769.toolExecutionRequestId]);
23317
23364
  if (id) keys.add(id);
23318
23365
  } else if (seg.type === "approval_request") {
23319
- const id = _optionalChain([seg, 'access', _759 => _759.data, 'optionalAccess', _760 => _760.requestId]);
23366
+ const id = _optionalChain([seg, 'access', _770 => _770.data, 'optionalAccess', _771 => _771.requestId]);
23320
23367
  if (id) keys.add(id);
23321
23368
  } else if (seg.type === "escalation_offer") {
23322
- const id = _optionalChain([seg, 'access', _761 => _761.data, 'optionalAccess', _762 => _762.offerId]);
23369
+ const id = _optionalChain([seg, 'access', _772 => _772.data, 'optionalAccess', _773 => _773.offerId]);
23323
23370
  if (id) keys.add(id);
23324
23371
  } else if (seg.type === "approval_batch") {
23325
23372
  const data = seg.data;
23326
- if (_optionalChain([data, 'optionalAccess', _763 => _763.approvalRequestId])) keys.add(data.approvalRequestId);
23327
- for (const call of _nullishCoalesce(_optionalChain([data, 'optionalAccess', _764 => _764.toolCalls]), () => ( []))) {
23328
- if (_optionalChain([call, 'optionalAccess', _765 => _765.toolExecutionRequestId])) keys.add(call.toolExecutionRequestId);
23373
+ if (_optionalChain([data, 'optionalAccess', _774 => _774.approvalRequestId])) keys.add(data.approvalRequestId);
23374
+ for (const call of _nullishCoalesce(_optionalChain([data, 'optionalAccess', _775 => _775.toolCalls]), () => ( []))) {
23375
+ if (_optionalChain([call, 'optionalAccess', _776 => _776.toolExecutionRequestId])) keys.add(call.toolExecutionRequestId);
23329
23376
  }
23330
23377
  }
23331
23378
  }
@@ -23410,18 +23457,18 @@ function mergeHistoryWithRealtime(input) {
23410
23457
  }
23411
23458
  }
23412
23459
  const trailing = processedHistory[processedHistory.length - 1];
23413
- const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _766 => _766.role]) === "assistant" ? trailing : null;
23414
- const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _767 => _767.content, 'access', _768 => _768.find, 'call', _769 => _769((s) => s.type === "approval_batch"), 'optionalAccess', _770 => _770.data, 'optionalAccess', _771 => _771.approvalRequestId]), () => ( null)) : null;
23460
+ const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _777 => _777.role]) === "assistant" ? trailing : null;
23461
+ const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _778 => _778.content, 'access', _779 => _779.find, 'call', _780 => _780((s) => s.type === "approval_batch"), 'optionalAccess', _781 => _781.data, 'optionalAccess', _782 => _782.approvalRequestId]), () => ( null)) : null;
23415
23462
  let processedToUse = processedHistory;
23416
23463
  const pinnedSyntheticIds = /* @__PURE__ */ new Set();
23417
23464
  const droppedSyntheticIds = /* @__PURE__ */ new Set();
23418
23465
  if (historyBatchId) {
23419
23466
  const batchTwins = existingMessages.filter(
23420
- (m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some((s) => s.type === "approval_batch" && _optionalChain([s, 'access', _772 => _772.data, 'optionalAccess', _773 => _773.approvalRequestId]) === historyBatchId)
23467
+ (m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some((s) => s.type === "approval_batch" && _optionalChain([s, 'access', _783 => _783.data, 'optionalAccess', _784 => _784.approvalRequestId]) === historyBatchId)
23421
23468
  );
23422
23469
  const existingWithSameBatch = _nullishCoalesce(batchTwins.find((m) => m.id === streamingMessageId), () => ( batchTwins[batchTwins.length - 1]));
23423
23470
  if (existingWithSameBatch && Array.isArray(existingWithSameBatch.content)) {
23424
- const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _774 => _774.content])) ? historyTrailingAssistant.content.length : 0;
23471
+ const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _785 => _785.content])) ? historyTrailingAssistant.content.length : 0;
23425
23472
  const realtimeSize = existingWithSameBatch.content.length;
23426
23473
  if (existingWithSameBatch.id === streamingMessageId || realtimeSize > histSize) {
23427
23474
  processedToUse = processedHistory.slice(0, -1);
@@ -23454,9 +23501,9 @@ function mergeHistoryWithRealtime(input) {
23454
23501
  const trailingAssistantText = lastProcessed && lastProcessed.role === "assistant" ? assistantAnswerText(lastProcessed.content) : "";
23455
23502
  const windowSignals = collectTwinSignals(processedToUse);
23456
23503
  const seenUserSyntheticByContent = /* @__PURE__ */ new Map();
23457
- const isInWindow = (m) => processedIds.has(m.id) || (_nullishCoalesce(_optionalChain([rawHistoryIds, 'optionalAccess', _775 => _775.has, 'call', _776 => _776(m.id)]), () => ( false)));
23504
+ const isInWindow = (m) => processedIds.has(m.id) || (_nullishCoalesce(_optionalChain([rawHistoryIds, 'optionalAccess', _786 => _786.has, 'call', _787 => _787(m.id)]), () => ( false)));
23458
23505
  const firstWindowIndex = existingMessages.findIndex(isInWindow);
23459
- const isPersistedOlder = (m) => !isClientMintedId(m.id) && (_nullishCoalesce(_optionalChain([m, 'access', _777 => _777.timestamp, 'optionalAccess', _778 => _778.getTime, 'call', _779 => _779()]), () => ( 0))) <= historyFetchedAt;
23506
+ const isPersistedOlder = (m) => !isClientMintedId(m.id) && (_nullishCoalesce(_optionalChain([m, 'access', _788 => _788.timestamp, 'optionalAccess', _789 => _789.getTime, 'call', _790 => _790()]), () => ( 0))) <= historyFetchedAt;
23460
23507
  let lastOlderPersistedIndex = -1;
23461
23508
  if (firstWindowIndex < 0) {
23462
23509
  for (const [index, m] of existingMessages.entries()) {
@@ -23474,7 +23521,7 @@ function mergeHistoryWithRealtime(input) {
23474
23521
  } else if (pm.role === "assistant") {
23475
23522
  windowHasUnstampedAssistant = true;
23476
23523
  }
23477
- const time = _optionalChain([pm, 'access', _780 => _780.timestamp, 'optionalAccess', _781 => _781.getTime, 'call', _782 => _782()]);
23524
+ const time = _optionalChain([pm, 'access', _791 => _791.timestamp, 'optionalAccess', _792 => _792.getTime, 'call', _793 => _793()]);
23478
23525
  if (typeof time === "number" && time < windowMinTime) windowMinTime = time;
23479
23526
  }
23480
23527
  const threadHasClientMintedRow = existingMessages.some((m) => isClientMintedId(m.id));
@@ -23492,14 +23539,14 @@ function mergeHistoryWithRealtime(input) {
23492
23539
  const verdict = twinVerdict(windowSignals, m);
23493
23540
  return verdict === "unknown" ? !seqCanMislead(m) : verdict === "distinct";
23494
23541
  }
23495
- const time = _optionalChain([m, 'access', _783 => _783.timestamp, 'optionalAccess', _784 => _784.getTime, 'call', _785 => _785()]);
23542
+ const time = _optionalChain([m, 'access', _794 => _794.timestamp, 'optionalAccess', _795 => _795.getTime, 'call', _796 => _796()]);
23496
23543
  if (typeof time !== "number" || time > historyFetchedAt) return false;
23497
23544
  if (!Number.isFinite(windowMinTime) || time >= windowMinTime) return false;
23498
23545
  return twinVerdict(windowSignals, m) === "distinct";
23499
23546
  };
23500
23547
  const keepRealtime = (m) => {
23501
23548
  if (m.role === "user" && isOptimisticId(m.id) && typeof m.content === "string") {
23502
- const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _786 => _786.timestamp, 'optionalAccess', _787 => _787.getTime, 'call', _788 => _788()]), () => ( 0))) <= historyFetchedAt;
23549
+ const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _797 => _797.timestamp, 'optionalAccess', _798 => _798.getTime, 'call', _799 => _799()]), () => ( 0))) <= historyFetchedAt;
23503
23550
  return !(canBeInSnapshot && windowSignals.userContents.has(userTwinKey(m)));
23504
23551
  }
23505
23552
  if (isSyntheticRealtimeId(m.id) && m.id !== streamingMessageId) {
@@ -23524,7 +23571,7 @@ function mergeHistoryWithRealtime(input) {
23524
23571
  } else if (typeof m.streamSeq === "number") {
23525
23572
  covered = historyMaxStreamSeq > 0 && historyMaxStreamSeq >= m.streamSeq;
23526
23573
  } else {
23527
- covered = historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _789 => _789.timestamp, 'optionalAccess', _790 => _790.getTime, 'call', _791 => _791()]), () => ( 0))) <= historyFetchedAt;
23574
+ covered = historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _800 => _800.timestamp, 'optionalAccess', _801 => _801.getTime, 'call', _802 => _802()]), () => ( 0))) <= historyFetchedAt;
23528
23575
  }
23529
23576
  if (covered) return false;
23530
23577
  }
@@ -23619,7 +23666,7 @@ function normalizeHistoricalMessageData(md) {
23619
23666
  function isHistoricalUserTurn(m) {
23620
23667
  return !!m.owner;
23621
23668
  }
23622
- var isTextSegment = (d) => _optionalChain([d, 'optionalAccess', _792 => _792.type]) === "TEXT" && typeof d.text === "string";
23669
+ var isTextSegment = (d) => _optionalChain([d, 'optionalAccess', _803 => _803.type]) === "TEXT" && typeof d.text === "string";
23623
23670
  var THINK_MS = 550;
23624
23671
  var TOKEN_MS = 55;
23625
23672
  var USER_MS = 480;
@@ -23716,8 +23763,8 @@ function useResizablePanelSize({
23716
23763
  }) : null,
23717
23764
  [enabled, storageKey]
23718
23765
  );
23719
- const [held, setChosen] = _react.useState.call(void 0, () => ({ storage, size: _nullishCoalesce(_optionalChain([storage, 'optionalAccess', _793 => _793.load, 'call', _794 => _794(), 'optionalAccess', _795 => _795.size]), () => ( null)) }));
23720
- const chosen = held.storage === storage ? held : { storage, size: _nullishCoalesce(_optionalChain([storage, 'optionalAccess', _796 => _796.load, 'call', _797 => _797(), 'optionalAccess', _798 => _798.size]), () => ( null)) };
23766
+ const [held, setChosen] = _react.useState.call(void 0, () => ({ storage, size: _nullishCoalesce(_optionalChain([storage, 'optionalAccess', _804 => _804.load, 'call', _805 => _805(), 'optionalAccess', _806 => _806.size]), () => ( null)) }));
23767
+ const chosen = held.storage === storage ? held : { storage, size: _nullishCoalesce(_optionalChain([storage, 'optionalAccess', _807 => _807.load, 'call', _808 => _808(), 'optionalAccess', _809 => _809.size]), () => ( null)) };
23721
23768
  if (chosen !== held) setChosen(chosen);
23722
23769
  const chosenSize = chosen.size;
23723
23770
  const clampSize = _react.useCallback.call(void 0,
@@ -23733,7 +23780,7 @@ function useResizablePanelSize({
23733
23780
  (next) => {
23734
23781
  const nextSize = Math.round(clampSize(next));
23735
23782
  setChosen({ storage, size: nextSize });
23736
- _optionalChain([storage, 'optionalAccess', _799 => _799.save, 'call', _800 => _800({ size: nextSize })]);
23783
+ _optionalChain([storage, 'optionalAccess', _810 => _810.save, 'call', _811 => _811({ size: nextSize })]);
23737
23784
  },
23738
23785
  [clampSize, storage]
23739
23786
  );
@@ -24323,7 +24370,7 @@ function useChatDialogManager({
24323
24370
  const handleConfirmRestore = _react.useCallback.call(void 0, async () => {
24324
24371
  if (restoreTarget) {
24325
24372
  try {
24326
- await _optionalChain([unarchiveDialog, 'optionalCall', _801 => _801(restoreTarget.id)]);
24373
+ await _optionalChain([unarchiveDialog, 'optionalCall', _812 => _812(restoreTarget.id)]);
24327
24374
  } catch (err) {
24328
24375
  console.error("[useChatDialogManager] unarchive failed:", err);
24329
24376
  return;
@@ -24334,7 +24381,7 @@ function useChatDialogManager({
24334
24381
  setRestoreTarget(null);
24335
24382
  }, [restoreTarget, unarchiveDialog]);
24336
24383
  const hostDialog = hostActiveDialog != null && hostActiveDialog.id === activeDialogId ? hostActiveDialog : void 0;
24337
- const isViewingArchived = viewingArchivedId != null && viewingArchivedId === activeDialogId || _optionalChain([hostDialog, 'optionalAccess', _802 => _802.archived]) === true;
24384
+ const isViewingArchived = viewingArchivedId != null && viewingArchivedId === activeDialogId || _optionalChain([hostDialog, 'optionalAccess', _813 => _813.archived]) === true;
24338
24385
  const handleBack = _react.useCallback.call(void 0, () => {
24339
24386
  const wasArchived = isViewingArchived;
24340
24387
  setViewingArchivedId(null);
@@ -24890,7 +24937,7 @@ function EmbeddableChatInner({
24890
24937
  }),
24891
24938
  [commandsUrl]
24892
24939
  );
24893
- const headerUserName = _optionalChain([identityUser, 'optionalAccess', _803 => _803.name, 'optionalAccess', _804 => _804.trim, 'call', _805 => _805()]) || [_optionalChain([identityUser, 'optionalAccess', _806 => _806.firstName]), _optionalChain([identityUser, 'optionalAccess', _807 => _807.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([userDisplayName, 'optionalAccess', _808 => _808.trim, 'call', _809 => _809()]) || void 0;
24940
+ const headerUserName = _optionalChain([identityUser, 'optionalAccess', _814 => _814.name, 'optionalAccess', _815 => _815.trim, 'call', _816 => _816()]) || [_optionalChain([identityUser, 'optionalAccess', _817 => _817.firstName]), _optionalChain([identityUser, 'optionalAccess', _818 => _818.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([userDisplayName, 'optionalAccess', _819 => _819.trim, 'call', _820 => _820()]) || void 0;
24894
24941
  const effectiveModes = _react.useMemo.call(void 0, () => {
24895
24942
  if (modes) return modes;
24896
24943
  const guideOptions = tableIdForDocumentType ? { tableIdForDocumentType } : {};
@@ -24905,7 +24952,7 @@ function EmbeddableChatInner({
24905
24952
  if (controlledActiveMode === void 0) {
24906
24953
  setUncontrolledActiveMode(next);
24907
24954
  }
24908
- _optionalChain([onActiveModeChange, 'optionalCall', _810 => _810(next)]);
24955
+ _optionalChain([onActiveModeChange, 'optionalCall', _821 => _821(next)]);
24909
24956
  },
24910
24957
  [controlledActiveMode, onActiveModeChange]
24911
24958
  );
@@ -24932,7 +24979,7 @@ function EmbeddableChatInner({
24932
24979
  );
24933
24980
  const effectiveAssistantName = emptyStateConfig.name;
24934
24981
  const effectiveAssistantIcon = emptyStateConfig.icon;
24935
- const headerAssistantName = _nullishCoalesce(effectiveAssistantName, () => ( (typeof _optionalChain([guideWelcome, 'optionalAccess', _811 => _811.title]) === "string" ? guideWelcome.title : null)));
24982
+ const headerAssistantName = _nullishCoalesce(effectiveAssistantName, () => ( (typeof _optionalChain([guideWelcome, 'optionalAccess', _822 => _822.title]) === "string" ? guideWelcome.title : null)));
24936
24983
  const {
24937
24984
  messages: rawMessages,
24938
24985
  isLoading: chatLoading,
@@ -24989,8 +25036,8 @@ function EmbeddableChatInner({
24989
25036
  const mingoCaps = _react.useMemo.call(void 0,
24990
25037
  () => ({
24991
25038
  ...dialogCapabilities,
24992
- canRename: _nullishCoalesce(_optionalChain([dialogCapabilities, 'optionalAccess', _812 => _812.canRename]), () => ( false)),
24993
- canArchive: _nullishCoalesce(_optionalChain([dialogCapabilities, 'optionalAccess', _813 => _813.canArchive]), () => ( false))
25039
+ canRename: _nullishCoalesce(_optionalChain([dialogCapabilities, 'optionalAccess', _823 => _823.canRename]), () => ( false)),
25040
+ canArchive: _nullishCoalesce(_optionalChain([dialogCapabilities, 'optionalAccess', _824 => _824.canArchive]), () => ( false))
24994
25041
  }),
24995
25042
  [dialogCapabilities]
24996
25043
  );
@@ -25005,7 +25052,7 @@ function EmbeddableChatInner({
25005
25052
  void sendMessage(guidePendingPrompt).catch((err) => {
25006
25053
  console.error("[EmbeddableChat] guide launcher prompt failed:", err);
25007
25054
  });
25008
- _optionalChain([onGuidePromptConsumed, 'optionalCall', _814 => _814()]);
25055
+ _optionalChain([onGuidePromptConsumed, 'optionalCall', _825 => _825()]);
25009
25056
  }, [guidePendingPrompt, activeMode, sendMessage, onGuidePromptConsumed]);
25010
25057
  const {
25011
25058
  attachments: stagedAttachments,
@@ -25016,7 +25063,7 @@ function EmbeddableChatInner({
25016
25063
  clear: clearAttachments
25017
25064
  } = useChatAttachments();
25018
25065
  const { panelRef: galleryPanelRef, modal: galleryModal } = useChatAttachmentImageGallery();
25019
- const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _815 => _815.maxItems]), () => ( 10));
25066
+ const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _826 => _826.maxItems]), () => ( 10));
25020
25067
  const contextPickerForMode = activeMode === "mingo" ? contextPicker : void 0;
25021
25068
  const [contextItems, setContextItems] = _react.useState.call(void 0, NO_CONTEXT_ITEMS);
25022
25069
  const [contextPickerOpen, setContextPickerOpen] = _react.useState.call(void 0, false);
@@ -25045,10 +25092,10 @@ function EmbeddableChatInner({
25045
25092
  }, [composerKey, clearAttachments]);
25046
25093
  const mentionMarkerByType = _react.useMemo.call(void 0, () => {
25047
25094
  const m = /* @__PURE__ */ new Map();
25048
- for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _816 => _816.entityTypes]), () => ( []))) if (t.marker) m.set(t.type, t.marker);
25095
+ for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _827 => _827.entityTypes]), () => ( []))) if (t.marker) m.set(t.type, t.marker);
25049
25096
  return m;
25050
- }, [_optionalChain([contextPicker, 'optionalAccess', _817 => _817.entityTypes])]);
25051
- const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess', _818 => _818.entityTypes]);
25097
+ }, [_optionalChain([contextPicker, 'optionalAccess', _828 => _828.entityTypes])]);
25098
+ const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess', _829 => _829.entityTypes]);
25052
25099
  const resolveContextIcon = _react.useMemo.call(void 0, () => {
25053
25100
  const byType = /* @__PURE__ */ new Map();
25054
25101
  for (const t of _nullishCoalesce(contextEntityTypes, () => ( []))) byType.set(t.type, t.icon);
@@ -25060,7 +25107,7 @@ function EmbeddableChatInner({
25060
25107
  if (mentionActiveRef.current) {
25061
25108
  if (contextItems.some((p) => `${p.type}:${p.id}` === key)) return;
25062
25109
  if (contextItems.length >= contextMaxItems) return;
25063
- _optionalChain([chatInputRef, 'access', _819 => _819.current, 'optionalAccess', _820 => _820.commitMention, 'call', _821 => _821(mentionTokenOf(key, mentionMarkerByType), {
25110
+ _optionalChain([chatInputRef, 'access', _830 => _830.current, 'optionalAccess', _831 => _831.commitMention, 'call', _832 => _832(mentionTokenOf(key, mentionMarkerByType), {
25064
25111
  label: item.label,
25065
25112
  icon: resolveContextIcon(item)
25066
25113
  })]);
@@ -25083,9 +25130,9 @@ function EmbeddableChatInner({
25083
25130
  setContextItems((prev) => prev.filter((p) => `${p.type}:${p.id}` !== key));
25084
25131
  if (mentionKeysRef.current.has(key)) {
25085
25132
  mentionKeysRef.current.delete(key);
25086
- const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _822 => _822.current, 'optionalAccess', _823 => _823.getValue, 'call', _824 => _824()]), () => ( ""));
25133
+ const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _833 => _833.current, 'optionalAccess', _834 => _834.getValue, 'call', _835 => _835()]), () => ( ""));
25087
25134
  const next = cur.replace(`@${mentionTokenOf(key, mentionMarkerByType)}`, "").replace(/\s{2,}/g, " ").trimStart();
25088
- _optionalChain([chatInputRef, 'access', _825 => _825.current, 'optionalAccess', _826 => _826.setValue, 'call', _827 => _827(next)]);
25135
+ _optionalChain([chatInputRef, 'access', _836 => _836.current, 'optionalAccess', _837 => _837.setValue, 'call', _838 => _838(next)]);
25089
25136
  }
25090
25137
  },
25091
25138
  [mentionMarkerByType]
@@ -25107,7 +25154,7 @@ function EmbeddableChatInner({
25107
25154
  }, []);
25108
25155
  const closeContextPicker = _react.useCallback.call(void 0, () => {
25109
25156
  if (mentionActiveRef.current) {
25110
- _optionalChain([chatInputRef, 'access', _828 => _828.current, 'optionalAccess', _829 => _829.removeMentionTrigger, 'call', _830 => _830()]);
25157
+ _optionalChain([chatInputRef, 'access', _839 => _839.current, 'optionalAccess', _840 => _840.removeMentionTrigger, 'call', _841 => _841()]);
25111
25158
  }
25112
25159
  setContextPickerOpen(false);
25113
25160
  setMentionQuery(null);
@@ -25144,8 +25191,8 @@ function EmbeddableChatInner({
25144
25191
  [effectiveAssistantIcon]
25145
25192
  );
25146
25193
  const [timestampCache] = _react.useState.call(void 0, () => /* @__PURE__ */ new Map());
25147
- const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess', _831 => _831.firstName]), _optionalChain([identityUser, 'optionalAccess', _832 => _832.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([identityUser, 'optionalAccess', _833 => _833.name, 'optionalAccess', _834 => _834.trim, 'call', _835 => _835()]) || void 0 : void 0;
25148
- const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess', _836 => _836.avatarUrl, 'optionalAccess', _837 => _837.trim, 'call', _838 => _838()]) || void 0 : void 0;
25194
+ const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess', _842 => _842.firstName]), _optionalChain([identityUser, 'optionalAccess', _843 => _843.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([identityUser, 'optionalAccess', _844 => _844.name, 'optionalAccess', _845 => _845.trim, 'call', _846 => _846()]) || void 0 : void 0;
25195
+ const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess', _847 => _847.avatarUrl, 'optionalAccess', _848 => _848.trim, 'call', _849 => _849()]) || void 0 : void 0;
25149
25196
  const messages = _react.useMemo.call(void 0, () => {
25150
25197
  const options = { userName: guideUserName, userAvatar: guideUserAvatar, timestampCache };
25151
25198
  const mapped = rawMessages.map((m) => mapHostMessage(m, options));
@@ -25348,7 +25395,7 @@ function EmbeddableChatInner({
25348
25395
  _react.useEffect.call(void 0, () => {
25349
25396
  if (!panelBoundary || typeof ResizeObserver === "undefined") return void 0;
25350
25397
  const ro = new ResizeObserver((entries) => {
25351
- const w = _optionalChain([entries, 'access', _839 => _839[0], 'optionalAccess', _840 => _840.contentRect, 'optionalAccess', _841 => _841.width]);
25398
+ const w = _optionalChain([entries, 'access', _850 => _850[0], 'optionalAccess', _851 => _851.contentRect, 'optionalAccess', _852 => _852.width]);
25352
25399
  if (typeof w === "number") setCanSplit(w >= splitMinWidth);
25353
25400
  });
25354
25401
  ro.observe(panelBoundary);
@@ -25394,18 +25441,18 @@ function EmbeddableChatInner({
25394
25441
  const stackedListView = isMingoMode && !hasConversation && !archiveOpen && !wideMingo && !composeOpen && !emptyListSkipped;
25395
25442
  const headerShowBack = hasConversation || guideCanReturnToMingo;
25396
25443
  const freshConversationTitle = isGuideEmpty ? _nullishCoalesce(headerAssistantName, () => ( "Mingo Guide")) : "New Chat";
25397
- const headerTitle = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _842 => _842.title]) || freshConversationTitle : isGuideEmpty ? freshConversationTitle : "Current Chats";
25444
+ const headerTitle = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _853 => _853.title]) || freshConversationTitle : isGuideEmpty ? freshConversationTitle : "Current Chats";
25398
25445
  const headerBackAriaLabel = hasConversation ? isViewingArchived ? "Back to archive" : "Back" : "Back to Mingo";
25399
25446
  const headerOnBack = hasConversation ? handleBack : () => handleActiveModeChange("mingo");
25400
25447
  const headerOnRestore = isViewingArchived && unarchiveDialog && activeDialog ? () => setRestoreTarget(activeDialog) : void 0;
25401
25448
  const headerOnRename = activeDialogId && activeDialog && mingoCaps.canRename ? () => setRenameTarget(activeDialog) : void 0;
25402
25449
  const headerOnArchive = activeDialogId && activeDialog && mingoCaps.canArchive ? () => setArchiveTarget(activeDialog) : void 0;
25403
- const headerOnCopyLink = activeDialogId && activeDialog && mingoCaps.onCopyLink ? () => _optionalChain([mingoCaps, 'access', _843 => _843.onCopyLink, 'optionalCall', _844 => _844(activeDialog)]) : void 0;
25404
- const headerOnCompact = activeDialogId && activeDialog && mingoCaps.compactDialog ? () => _optionalChain([mingoCaps, 'access', _845 => _845.compactDialog, 'optionalCall', _846 => _846(activeDialog)]) : void 0;
25450
+ const headerOnCopyLink = activeDialogId && activeDialog && mingoCaps.onCopyLink ? () => _optionalChain([mingoCaps, 'access', _854 => _854.onCopyLink, 'optionalCall', _855 => _855(activeDialog)]) : void 0;
25451
+ const headerOnCompact = activeDialogId && activeDialog && mingoCaps.compactDialog ? () => _optionalChain([mingoCaps, 'access', _856 => _856.compactDialog, 'optionalCall', _857 => _857(activeDialog)]) : void 0;
25405
25452
  const headerOnOpenArchive = fetchArchivedDialogs ? openArchive : void 0;
25406
- const headerOwner = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _847 => _847.owner]) : void 0;
25407
- const headerPersonName = _optionalChain([headerOwner, 'optionalAccess', _848 => _848.name, 'optionalAccess', _849 => _849.trim, 'call', _850 => _850()]) || headerUserName;
25408
- const headerPersonAvatarUrl = headerOwner ? _optionalChain([headerOwner, 'access', _851 => _851.avatarUrl, 'optionalAccess', _852 => _852.trim, 'call', _853 => _853()]) || void 0 : _optionalChain([identityUser, 'optionalAccess', _854 => _854.avatarUrl, 'optionalAccess', _855 => _855.trim, 'call', _856 => _856()]) || _optionalChain([userAvatarUrl, 'optionalAccess', _857 => _857.trim, 'call', _858 => _858()]) || void 0;
25453
+ const headerOwner = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _858 => _858.owner]) : void 0;
25454
+ const headerPersonName = _optionalChain([headerOwner, 'optionalAccess', _859 => _859.name, 'optionalAccess', _860 => _860.trim, 'call', _861 => _861()]) || headerUserName;
25455
+ const headerPersonAvatarUrl = headerOwner ? _optionalChain([headerOwner, 'access', _862 => _862.avatarUrl, 'optionalAccess', _863 => _863.trim, 'call', _864 => _864()]) || void 0 : _optionalChain([identityUser, 'optionalAccess', _865 => _865.avatarUrl, 'optionalAccess', _866 => _866.trim, 'call', _867 => _867()]) || _optionalChain([userAvatarUrl, 'optionalAccess', _868 => _868.trim, 'call', _869 => _869()]) || void 0;
25409
25456
  const headerAvatar = headerPersonName || headerPersonAvatarUrl ? { name: headerPersonName, avatarUrl: headerPersonAvatarUrl } : void 0;
25410
25457
  const handleNewChat = _react.useCallback.call(void 0, () => {
25411
25458
  resetToNewChat();
@@ -25784,7 +25831,7 @@ function EmbeddableChatInner({
25784
25831
  onNewChat: () => setComposeOpen(true),
25785
25832
  onExpand: onExpand && (() => {
25786
25833
  const last = lastDialogIdRef.current;
25787
- const target = last && dialogs.some((d) => d.id === last) ? last : _optionalChain([dialogs, 'access', _859 => _859[0], 'optionalAccess', _860 => _860.id]);
25834
+ const target = last && dialogs.some((d) => d.id === last) ? last : _optionalChain([dialogs, 'access', _870 => _870[0], 'optionalAccess', _871 => _871.id]);
25788
25835
  if (archiveOpen) closeArchive();
25789
25836
  if (target) handleSelectDialog(target);
25790
25837
  else handleNewChat();
@@ -25891,9 +25938,9 @@ function EmbeddableChatInner({
25891
25938
  subtitle: _nullishCoalesce(effectiveGreeting, () => ( void 0)),
25892
25939
  subtitleLoading: emptyStateLoading,
25893
25940
  ...guideWelcome,
25894
- title: _nullishCoalesce(effectiveAssistantName, () => ( _optionalChain([guideWelcome, 'optionalAccess', _861 => _861.title]))),
25895
- icon: _nullishCoalesce(effectiveAssistantIcon, () => ( _optionalChain([guideWelcome, 'optionalAccess', _862 => _862.icon]))),
25896
- quickActions: agentConfigUrl && guideSuggestedActions.length > 0 ? guideSuggestedActions : _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess', _863 => _863.quickActions]), () => ( guideSuggestedActions)),
25941
+ title: _nullishCoalesce(effectiveAssistantName, () => ( _optionalChain([guideWelcome, 'optionalAccess', _872 => _872.title]))),
25942
+ icon: _nullishCoalesce(effectiveAssistantIcon, () => ( _optionalChain([guideWelcome, 'optionalAccess', _873 => _873.icon]))),
25943
+ quickActions: agentConfigUrl && guideSuggestedActions.length > 0 ? guideSuggestedActions : _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess', _874 => _874.quickActions]), () => ( guideSuggestedActions)),
25897
25944
  onQuickAction: (action) => {
25898
25945
  setQuickActionPreview(null);
25899
25946
  handleSend(_nullishCoalesce(action.prompt, () => ( action.label)));
@@ -25968,8 +26015,8 @@ function EmbeddableChatInner({
25968
26015
  selectedContextItems: contextItems,
25969
26016
  onToggleContextItem: toggleContextItem,
25970
26017
  onRemoveContextItem: removeContextItem,
25971
- contextMemoryItems: _optionalChain([contextMemory, 'optionalAccess', _864 => _864.items]),
25972
- onRemoveContextMemoryItem: _optionalChain([contextMemory, 'optionalAccess', _865 => _865.onRemove]),
26018
+ contextMemoryItems: _optionalChain([contextMemory, 'optionalAccess', _875 => _875.items]),
26019
+ onRemoveContextMemoryItem: _optionalChain([contextMemory, 'optionalAccess', _876 => _876.onRemove]),
25973
26020
  contextPickerOpen,
25974
26021
  onOpenContextPicker: openContextPicker,
25975
26022
  onCloseContextPicker: closeContextPicker,
@@ -26182,7 +26229,7 @@ var GROUPS = [
26182
26229
  }
26183
26230
  ];
26184
26231
  function maskKey(key) {
26185
- const prefix = _nullishCoalesce(_optionalChain([/^fpk_[a-z0-9-]+_/i, 'access', _866 => _866.exec, 'call', _867 => _867(key), 'optionalAccess', _868 => _868[0]]), () => ( ""));
26232
+ const prefix = _nullishCoalesce(_optionalChain([/^fpk_[a-z0-9-]+_/i, 'access', _877 => _877.exec, 'call', _878 => _878(key), 'optionalAccess', _879 => _879[0]]), () => ( ""));
26186
26233
  return key.length - prefix.length <= 8 ? `${prefix}\u2022\u2022\u2022\u2022` : `${prefix}\u2026${key.slice(-4)}`;
26187
26234
  }
26188
26235
  function HeaderName({ children }) {
@@ -26219,8 +26266,8 @@ function ProxyCredentialsForm({ description, saved }) {
26219
26266
  const errors = _react.useMemo.call(void 0, () => {
26220
26267
  const out = {};
26221
26268
  for (const { field } of _chunkULWVKHSIcjs.EMBED_PROXY_OPTIONAL_HEADERS) {
26222
- const value = _optionalChain([optional, 'access', _869 => _869[field], 'optionalAccess', _870 => _870.trim, 'call', _871 => _871()]);
26223
- const message = value ? _optionalChain([OPTIONAL_FIELD_COPY, 'access', _872 => _872[field], 'access', _873 => _873.validate, 'optionalCall', _874 => _874(value)]) : null;
26269
+ const value = _optionalChain([optional, 'access', _880 => _880[field], 'optionalAccess', _881 => _881.trim, 'call', _882 => _882()]);
26270
+ const message = value ? _optionalChain([OPTIONAL_FIELD_COPY, 'access', _883 => _883[field], 'access', _884 => _884.validate, 'optionalCall', _885 => _885(value)]) : null;
26224
26271
  if (message) out[field] = message;
26225
26272
  }
26226
26273
  return out;
@@ -26232,12 +26279,12 @@ function ProxyCredentialsForm({ description, saved }) {
26232
26279
  ...keyForPreview ? [["Authorization", `Bearer ${keyForPreview}`]] : [],
26233
26280
  ...email.trim() ? [["X-Chat-Act-As", email.trim().toLowerCase()]] : [],
26234
26281
  ..._chunkULWVKHSIcjs.EMBED_PROXY_OPTIONAL_HEADERS.flatMap(({ field, header }) => {
26235
- const value = _optionalChain([optional, 'access', _875 => _875[field], 'optionalAccess', _876 => _876.trim, 'call', _877 => _877()]);
26282
+ const value = _optionalChain([optional, 'access', _886 => _886[field], 'optionalAccess', _887 => _887.trim, 'call', _888 => _888()]);
26236
26283
  return value ? [[header, value]] : [];
26237
26284
  })
26238
26285
  ];
26239
26286
  const save = () => {
26240
- const key = secret.trim() || _optionalChain([_chunkULWVKHSIcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _878 => _878.secret]);
26287
+ const key = secret.trim() || _optionalChain([_chunkULWVKHSIcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _889 => _889.secret]);
26241
26288
  const actAs = email.trim().toLowerCase();
26242
26289
  if (!key || !actAs || hasErrors) {
26243
26290
  setStatus(hasErrors ? "Fix the highlighted fields first." : "API key and act-as email are required.");
@@ -26854,4 +26901,4 @@ function ProxyCredentialsForm({ description, saved }) {
26854
26901
 
26855
26902
 
26856
26903
 
26857
- exports.InfoHint = InfoHint; exports.Field = Field; exports.useScrollFade = useScrollFade; exports.ScrollFadeOverlay = ScrollFadeOverlay; exports.ScrollShadow = ScrollShadow; exports.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS = HUBSPOT_DO_NOT_COLLECT_FORM_PROPS; exports.useResizablePanelSize = useResizablePanelSize; exports.PanelResizeHandle = PanelResizeHandle; exports.OVERLAY_BACKDROP_CLASS = OVERLAY_BACKDROP_CLASS; exports.Drawer = Drawer; exports.DrawerTrigger = DrawerTrigger; exports.DrawerClose = DrawerClose; exports.DrawerPortal = DrawerPortal; exports.DrawerOverlay = DrawerOverlay; exports.DrawerContent = DrawerContent; exports.DrawerHeader = DrawerHeader; exports.DrawerTitle = DrawerTitle; exports.DrawerDescription = DrawerDescription; exports.DrawerBody = DrawerBody; exports.DrawerFooter = DrawerFooter; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.stripInlineMarkdown = stripInlineMarkdown; exports.markdownToPlainText = markdownToPlainText; exports.buildHeadingIdMap = buildHeadingIdMap; exports.useHeadingIdMap = useHeadingIdMap; exports.extractText = extractText; exports.useIsHydrated = useIsHydrated; exports.MermaidDiagram = MermaidDiagram; exports.hasRenderableSrc = hasRenderableSrc; exports.buildStandardLeafRenderers = buildStandardLeafRenderers; exports.SAFE_HTML_TAGS = SAFE_HTML_TAGS; exports.SVG_TAGS = SVG_TAGS; exports.buildEffectiveTagSet = buildEffectiveTagSet; exports.buildSanitizeSchema = buildSanitizeSchema; exports.rehypeStripUnsafe = rehypeStripUnsafe; exports.escapeUnknownHtmlTags = escapeUnknownHtmlTags; exports.cardAwareUrlTransform = cardAwareUrlTransform; exports.splitStreamingBlocks = splitStreamingBlocks; exports.completeStreamingTail = completeStreamingTail; exports.TEXT_SIZE_PRESETS = TEXT_SIZE_PRESETS; exports.resolveTextSizeConfig = resolveTextSizeConfig; exports.NO_BROKEN_LINKS = NO_BROKEN_LINKS; exports.MarkdownEngine = MarkdownEngine; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.FullscreenSwitchController = FullscreenSwitchController; exports.SOCIAL_PLATFORM_ALIASES = SOCIAL_PLATFORM_ALIASES; exports.normalizeSocialPlatform = normalizeSocialPlatform; exports.hostMatches = hostMatches; exports.SOCIAL_PLATFORM_ALT_HOSTS = SOCIAL_PLATFORM_ALT_HOSTS; exports.socialPlatformHosts = socialPlatformHosts; exports.classifySocialHost = classifySocialHost; exports.pickSocialLink = pickSocialLink; exports.HoverDropdown = HoverDropdown; exports.ChatAppearanceContext = ChatAppearanceContext; exports.useChatAppearance = useChatAppearance; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.EscalationOfferMessage = EscalationOfferMessage; exports.AiAssistantInfo = AiAssistantInfo; exports.TicketEscalatedMessage = TicketEscalatedMessage; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.TICKET_EVENT_KIND = TICKET_EVENT_KIND; exports.TicketEventMessage = TicketEventMessage; exports.SystemEventMessage = SystemEventMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.ThinkingDisplay = ThinkingDisplay; exports.AskDisplay = AskDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.MspOrganizationCard = MspOrganizationCard; exports.MspOrganizationCardSkeleton = MspOrganizationCardSkeleton; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.CONTEXT_ROW_CLASS = CONTEXT_ROW_CLASS; exports.CONTEXT_ICON_CLASS = CONTEXT_ICON_CLASS; exports.CONTEXT_LABEL_CLASS = CONTEXT_LABEL_CLASS; exports.CONTEXT_BACK_CLASS = CONTEXT_BACK_CLASS; exports.CONTEXT_STATE_CLASS = CONTEXT_STATE_CLASS; exports.ContextMenuRow = ContextMenuRow; exports.ContextItemsSkeleton = ContextItemsSkeleton; exports.ContextItemsList = ContextItemsList; exports.ContextErrorBoundary = ContextErrorBoundary; exports.CHAT_CONTEXT_ITEMS_DEFAULT_MAX = CHAT_CONTEXT_ITEMS_DEFAULT_MAX; exports.ChatComposerPlusMenu = ChatComposerPlusMenu; exports.ChatContextPicker = ChatContextPicker; exports.ChatContextChipStrip = ChatContextChipStrip; exports.BlockCard = BlockCard; exports.remarkCardLinks = remarkCardLinks; exports.remarkMentionChips = remarkMentionChips; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageSkeleton = ChatMessageSkeleton; exports.ChatMessageListSkeleton = ChatMessageListSkeleton; exports.ChatMessageList = ChatMessageList; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.getAgentAccent = getAgentAccent; exports.accentFromIdentityIcon = accentFromIdentityIcon; exports.isQuickActionIconSpec = isQuickActionIconSpec; exports.renderQuickActionIcon = renderQuickActionIcon; exports.QuickActionChipSkeleton = QuickActionChipSkeleton; exports.QuickActionChipButton = QuickActionChipButton; exports.QuickActionChipFromData = QuickActionChipFromData; exports.getPlatformProductionUrl = getPlatformProductionUrl; exports.getPlatformUrl = getPlatformUrl; exports.getDeploymentUrl = getDeploymentUrl; exports.isLocalUrl = isLocalUrl; exports.getRequestOrigin = getRequestOrigin; exports.resolveRedirectTarget = resolveRedirectTarget; exports.getAllPlatformBaseDomains = getAllPlatformBaseDomains; exports.AI_PROVIDERS = AI_PROVIDERS; exports.aiProvider = aiProvider; exports.TOKEN_RATE_EMPTY = TOKEN_RATE_EMPTY; exports.formatTokenRate = formatTokenRate; exports.tokenCost = tokenCost; exports.formatTokenAmount = formatTokenAmount; exports.tokensForBalance = tokensForBalance; exports.tokenRateProviderLabel = tokenRateProviderLabel; exports.groupTokenRatesByProvider = groupTokenRatesByProvider; exports.TRIAL_DAYS = TRIAL_DAYS; exports.TRIAL_LABELS = TRIAL_LABELS; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.SEO_DESCRIPTION_MAX_LENGTH = SEO_DESCRIPTION_MAX_LENGTH; exports.BRAND_MARK_SVGS = BRAND_MARK_SVGS; exports.brandMarkDataUri = brandMarkDataUri; exports.DESIGN_DOC_READINESS = DESIGN_DOC_READINESS; exports.DESIGN_DOC_READINESS_DISPLAY = DESIGN_DOC_READINESS_DISPLAY; exports.designDocReadiness = designDocReadiness; exports.formatCompletionLabel = formatCompletionLabel; exports.formatCompletionLabelWithBlockers = formatCompletionLabelWithBlockers; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; exports.TICKET_OPEN_PARAM = TICKET_OPEN_PARAM; exports.buildTicketOpenHref = buildTicketOpenHref; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.BITE_ID_RE = BITE_ID_RE; exports.generateBiteId = generateBiteId; exports.ensureBiteIds = ensureBiteIds; exports.matchBiteElement = matchBiteElement; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.DOWNLOAD_PAGE_PATH = DOWNLOAD_PAGE_PATH; exports.resolveMobileStoreUrl = resolveMobileStoreUrl; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.getCountryByName = getCountryByName; exports.getFlagFromCountryName = getFlagFromCountryName; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.COMPLIANCE_STANDARDS = COMPLIANCE_STANDARDS; exports.complianceStandardForName = complianceStandardForName; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.isDismissedCookieValue = isDismissedCookieValue; exports.readDismissCookie = readDismissCookie; exports.writeDismissCookie = writeDismissCookie; exports.clearDismissCookie = clearDismissCookie; exports.announcementDismissCookieName = announcementDismissCookieName; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.WALKTHROUGH_VIDEO_DISMISS_KEY = WALKTHROUGH_VIDEO_DISMISS_KEY; exports.walkthroughDismissCookieName = walkthroughDismissCookieName; exports.isWalkthroughDismissed = isWalkthroughDismissed; exports.dismissWalkthrough = dismissWalkthrough; exports.clearWalkthroughDismissal = clearWalkthroughDismissal; exports.WALKTHROUGH_OPEN_QUERY_PARAM = WALKTHROUGH_OPEN_QUERY_PARAM; exports.withWalkthroughOpenParam = withWalkthroughOpenParam; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.DOC_TABLE_TYPES = DOC_TABLE_TYPES; exports.groupsByTable = groupsByTable; exports.recordCountLabel = recordCountLabel; exports.buildGroupedSource = buildGroupedSource; exports.groupSourcesByTable = groupSourcesByTable; exports.formatCitationIndices = formatCitationIndices; exports.createSseSubscription = createSseSubscription; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.clickupTaskUrl = clickupTaskUrl; exports.ANNOUNCEMENT_CTA_DEFAULTS = ANNOUNCEMENT_CTA_DEFAULTS; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.ENTITY_QUOTES_TITLE = ENTITY_QUOTES_TITLE; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.openInNewTab = openInNewTab; exports.faqSectionSlug = faqSectionSlug; exports.faqItemAnchor = faqItemAnchor; exports.parseFaqHash = parseFaqHash; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.extractSections = extractSections; exports.SCHEDULING_SLUG_SHAPE = SCHEDULING_SLUG_SHAPE; exports.MAX_MONTH_OFFSET = MAX_MONTH_OFFSET; exports.normalizeSchedulingSlug = normalizeSchedulingSlug; exports.isValidSchedulingSlug = isValidSchedulingSlug; exports.parseSchedulingLinkName = parseSchedulingLinkName; exports.isListedSchedulingName = isListedSchedulingName; exports.schedulingAudienceKey = schedulingAudienceKey; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.FIRST_TOUCH_ATTRIBUTION_KEY = FIRST_TOUCH_ATTRIBUTION_KEY; exports.sanitizeLandingUrl = sanitizeLandingUrl; exports.parseAttributionFromUrl = parseAttributionFromUrl; exports.captureFirstTouchAttribution = captureFirstTouchAttribution; exports.getFirstTouchAttribution = getFirstTouchAttribution; exports.withFirstTouchAttribution = withFirstTouchAttribution; exports.clearFirstTouchAttribution = clearFirstTouchAttribution; exports.ODS_SPACING_TOKENS = ODS_SPACING_TOKENS; exports.ODS_SPACING_TOKEN_PATTERN = ODS_SPACING_TOKEN_PATTERN; exports.ODS_SPACING_PROPS = ODS_SPACING_PROPS; exports.TAILWIND_STEP_TO_ODS_TOKEN = TAILWIND_STEP_TO_ODS_TOKEN; exports.CSV_CONTENT_TYPE = CSV_CONTENT_TYPE; exports.csvEscape = csvEscape; exports.toCsv = toCsv; exports.copyrightLine = copyrightLine; exports.isValidPathPattern = isValidPathPattern; exports.matchesPathPattern = matchesPathPattern; exports.pathMatchesAny = pathMatchesAny; exports.ASK_AI_OPEN_EVENT = ASK_AI_OPEN_EVENT; exports.openAskAi = openAskAi; exports.MingoAiButton = MingoAiButton; exports.AskPrompts = AskPrompts; exports.AskCard = AskCard; exports.ASK_PROMPTS_DEFAULT_COUNT = ASK_PROMPTS_DEFAULT_COUNT; exports.buildAskPromptsUrl = buildAskPromptsUrl; exports.assistantAvailable = assistantAvailable; exports.useAskPrompts = useAskPrompts; exports.useAssistantOpen = useAssistantOpen; exports.useShownAskPrompts = useShownAskPrompts; exports.useShownAskPromptIds = useShownAskPromptIds; exports.AssistantAskPrompts = AssistantAskPrompts; exports.useMarqueeSync = useMarqueeSync; exports.getMarqueeTrackOffset = getMarqueeTrackOffset; exports.getMarqueeAppliedOffset = getMarqueeAppliedOffset; exports.getMarqueeCloneTwin = getMarqueeCloneTwin; exports.MarqueeWallFades = MarqueeWallFades; exports.MarqueeWall = MarqueeWall; exports.WALL_SKELETON_LABEL_CH = WALL_SKELETON_LABEL_CH; exports.interleave = interleave; exports.QuickActionWall = QuickActionWall; exports.QuickActionMarquee = QuickActionMarquee; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.ChatListEmptyState = ChatListEmptyState; exports.MingoChatHistorySkeleton = MingoChatHistorySkeleton; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; exports.GuideModeBanner = GuideModeBanner; exports.ChatNavSidebar = ChatNavSidebar; exports.ChatListItem = ChatListItem; exports.MingoArchiveList = MingoArchiveList; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.MingoChatHeader = MingoChatHeader; exports.ChatHeaderSearchField = ChatHeaderSearchField; exports.MingoChatRail = MingoChatRail; exports.TabSelector = TabSelector; exports.MingoHistoryRail = MingoHistoryRail; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatPanelHeader = ChatPanelHeader; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.ChatContextMemoryBar = ChatContextMemoryBar; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.ModelDisplaySkeleton = ModelDisplaySkeleton; exports.ChatComposer = ChatComposer; exports.ChatArchivePage = ChatArchivePage; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.ChatTopNavigation = ChatTopNavigation; exports.OnboardingCarousel = OnboardingCarousel; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveExternalNavigation = resolveExternalNavigation; exports.executeNavigation = executeNavigation; exports.executeNavigationImperative = executeNavigationImperative; exports.handleChatNavClick = handleChatNavClick; exports.useNavLinkViaRuntime = useNavLinkViaRuntime; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.getCaptionsUrl = getCaptionsUrl; exports.rebaseCaptionsUrl = rebaseCaptionsUrl; exports.buildCaptionsUrl = buildCaptionsUrl; exports.getEntityCaptionUrls = getEntityCaptionUrls; exports.getEntityCaptionUrlsById = getEntityCaptionUrlsById; exports.captionsEntityTypeForDocType = captionsEntityTypeForDocType; exports.useCaptions = useCaptions; exports.UserDisplay = UserDisplay; exports.CardHitLayer = CardHitLayer; exports.STRIP_CELL_MAX_WIDTH = STRIP_CELL_MAX_WIDTH; exports.CardsStrip = CardsStrip; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_TO_CSS_ASPECT = RATIO_TO_CSS_ASPECT; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesStrip = VideoBitesStrip; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.UnifiedSkeleton = UnifiedSkeleton; exports.TextSkeleton = TextSkeleton; exports.InteractiveSkeleton = InteractiveSkeleton; exports.MediaSkeleton = MediaSkeleton; exports.designDocPeople = designDocPeople; exports.designDocMetaLine = designDocMetaLine; exports.DesignDocCardSkeleton = DesignDocCardSkeleton; exports.DesignDocCard = DesignDocCard; exports.GitHubActivityCard = GitHubActivityCard; exports.GitHubActivityCardSkeleton = GitHubActivityCardSkeleton; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.getVendorLogo = getVendorLogo; exports.VendorIcon = VendorIcon; exports.useChatCardItem = useChatCardItem; exports.readFetchedCardTitle = readFetchedCardTitle; exports.readFetchedCardPath = readFetchedCardPath; exports.resolveFetchedCardHref = resolveFetchedCardHref; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.resolveCardDestination = resolveCardDestination; exports.chatCardLabel = chatCardLabel; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.EMPTY_DIALOG_CAPABILITIES = EMPTY_DIALOG_CAPABILITIES; exports.useChunkCatchup = useChunkCatchup; exports.useScriptedStream = useScriptedStream; exports.RESYNC_AFTER_HIDDEN_MS = RESYNC_AFTER_HIDDEN_MS; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.useSlashCommandRegistry = useSlashCommandRegistry; exports.fetchEmptyStateConfig = fetchEmptyStateConfig; exports.useEmptyStateConfig = useEmptyStateConfig; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.ChatIdentityProvider = ChatIdentityProvider; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.approvalDisplaysInline = approvalDisplaysInline; exports.appendToTrailingAssistant = appendToTrailingAssistant; exports.upsertTrailingCompaction = upsertTrailingCompaction; exports.applyToolExecutionToMessages = applyToolExecutionToMessages; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.createEmptyTurnMeta = createEmptyTurnMeta; exports.createChatStreamReducer = createChatStreamReducer; exports.DEFAULT_DIALOG_SIDE = DEFAULT_DIALOG_SIDE; exports.DEFAULT_MAX_REDUCERS = DEFAULT_MAX_REDUCERS; exports.MAX_PENDING_RETAIN_KEYS = MAX_PENDING_RETAIN_KEYS; exports.createChatDialogStore = createChatDialogStore; exports.createDeltaBatcher = createDeltaBatcher; exports.useChatStreamReducer = useChatStreamReducer; exports.createChatConversationsApi = createChatConversationsApi; exports.buildDiscussPrompt = buildDiscussPrompt; exports.useManagedDialogList = useManagedDialogList; exports.useSseChatAdapter = useSseChatAdapter; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.extractIncompleteTailState = extractIncompleteTailState; exports.decodeHistoricalMessageData = decodeHistoricalMessageData; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.mapProcessedToUnified = mapProcessedToUnified; exports.historicalToUnified = historicalToUnified; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useStableShallow = useStableShallow; exports.useUnifiedChat = useUnifiedChat; exports.SYNTHETIC_REALTIME_ID_PREFIXES = SYNTHETIC_REALTIME_ID_PREFIXES; exports.flattenMessagePagesChronological = flattenMessagePagesChronological; exports.maxPersistedStreamSeq = maxPersistedStreamSeq; exports.mergeHistoryWithRealtime = mergeHistoryWithRealtime; exports.computeHistoryPrepend = computeHistoryPrepend; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.normalizeHistoricalMessageData = normalizeHistoricalMessageData; exports.isHistoricalUserTurn = isHistoricalUserTurn; exports.buildStreamFrames = buildStreamFrames; exports.MINGO_V2_RAIL_WIDTH = MINGO_V2_RAIL_WIDTH; exports.MINGO_V2_SPLIT_WIDTH = MINGO_V2_SPLIT_WIDTH; exports.EmbeddableChat = EmbeddableChat; exports.ProxyCredentialsPanel = ProxyCredentialsPanel;
26904
+ exports.InfoHint = InfoHint; exports.Field = Field; exports.useScrollFade = useScrollFade; exports.ScrollFadeOverlay = ScrollFadeOverlay; exports.ScrollShadow = ScrollShadow; exports.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS = HUBSPOT_DO_NOT_COLLECT_FORM_PROPS; exports.useResizablePanelSize = useResizablePanelSize; exports.PanelResizeHandle = PanelResizeHandle; exports.OVERLAY_BACKDROP_CLASS = OVERLAY_BACKDROP_CLASS; exports.Drawer = Drawer; exports.DrawerTrigger = DrawerTrigger; exports.DrawerClose = DrawerClose; exports.DrawerPortal = DrawerPortal; exports.DrawerOverlay = DrawerOverlay; exports.DrawerContent = DrawerContent; exports.DrawerHeader = DrawerHeader; exports.DrawerTitle = DrawerTitle; exports.DrawerDescription = DrawerDescription; exports.DrawerBody = DrawerBody; exports.DrawerFooter = DrawerFooter; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.stripInlineMarkdown = stripInlineMarkdown; exports.markdownToPlainText = markdownToPlainText; exports.buildHeadingIdMap = buildHeadingIdMap; exports.useHeadingIdMap = useHeadingIdMap; exports.extractText = extractText; exports.useIsHydrated = useIsHydrated; exports.MermaidDiagram = MermaidDiagram; exports.hasRenderableSrc = hasRenderableSrc; exports.buildStandardLeafRenderers = buildStandardLeafRenderers; exports.SAFE_HTML_TAGS = SAFE_HTML_TAGS; exports.SVG_TAGS = SVG_TAGS; exports.buildEffectiveTagSet = buildEffectiveTagSet; exports.buildSanitizeSchema = buildSanitizeSchema; exports.rehypeStripUnsafe = rehypeStripUnsafe; exports.escapeUnknownHtmlTags = escapeUnknownHtmlTags; exports.cardAwareUrlTransform = cardAwareUrlTransform; exports.splitStreamingBlocks = splitStreamingBlocks; exports.completeStreamingTail = completeStreamingTail; exports.TEXT_SIZE_PRESETS = TEXT_SIZE_PRESETS; exports.resolveTextSizeConfig = resolveTextSizeConfig; exports.NO_BROKEN_LINKS = NO_BROKEN_LINKS; exports.MarkdownEngine = MarkdownEngine; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.FullscreenSwitchController = FullscreenSwitchController; exports.SOCIAL_PLATFORM_ALIASES = SOCIAL_PLATFORM_ALIASES; exports.normalizeSocialPlatform = normalizeSocialPlatform; exports.hostMatches = hostMatches; exports.SOCIAL_PLATFORM_ALT_HOSTS = SOCIAL_PLATFORM_ALT_HOSTS; exports.socialPlatformHosts = socialPlatformHosts; exports.classifySocialHost = classifySocialHost; exports.pickSocialLink = pickSocialLink; exports.HoverDropdown = HoverDropdown; exports.ChatAppearanceContext = ChatAppearanceContext; exports.useChatAppearance = useChatAppearance; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.EscalationOfferMessage = EscalationOfferMessage; exports.AiAssistantInfo = AiAssistantInfo; exports.TicketEscalatedMessage = TicketEscalatedMessage; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.TICKET_EVENT_KIND = TICKET_EVENT_KIND; exports.TicketEventMessage = TicketEventMessage; exports.SystemEventMessage = SystemEventMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.ThinkingDisplay = ThinkingDisplay; exports.AskDisplay = AskDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.MspOrganizationCard = MspOrganizationCard; exports.MspOrganizationCardSkeleton = MspOrganizationCardSkeleton; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.CONTEXT_ROW_CLASS = CONTEXT_ROW_CLASS; exports.CONTEXT_ICON_CLASS = CONTEXT_ICON_CLASS; exports.CONTEXT_LABEL_CLASS = CONTEXT_LABEL_CLASS; exports.CONTEXT_BACK_CLASS = CONTEXT_BACK_CLASS; exports.CONTEXT_STATE_CLASS = CONTEXT_STATE_CLASS; exports.ContextMenuRow = ContextMenuRow; exports.ContextItemsSkeleton = ContextItemsSkeleton; exports.ContextItemsList = ContextItemsList; exports.ContextErrorBoundary = ContextErrorBoundary; exports.CHAT_CONTEXT_ITEMS_DEFAULT_MAX = CHAT_CONTEXT_ITEMS_DEFAULT_MAX; exports.ChatComposerPlusMenu = ChatComposerPlusMenu; exports.ChatContextPicker = ChatContextPicker; exports.ChatContextChipStrip = ChatContextChipStrip; exports.BlockCard = BlockCard; exports.remarkCardLinks = remarkCardLinks; exports.remarkMentionChips = remarkMentionChips; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageSkeleton = ChatMessageSkeleton; exports.ChatMessageListSkeleton = ChatMessageListSkeleton; exports.ChatMessageList = ChatMessageList; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.getAgentAccent = getAgentAccent; exports.accentFromIdentityIcon = accentFromIdentityIcon; exports.isQuickActionIconSpec = isQuickActionIconSpec; exports.renderQuickActionIcon = renderQuickActionIcon; exports.QuickActionChipSkeleton = QuickActionChipSkeleton; exports.QuickActionChipButton = QuickActionChipButton; exports.QuickActionChipFromData = QuickActionChipFromData; exports.getPlatformProductionUrl = getPlatformProductionUrl; exports.getPlatformUrl = getPlatformUrl; exports.getDeploymentUrl = getDeploymentUrl; exports.isLocalUrl = isLocalUrl; exports.getRequestOrigin = getRequestOrigin; exports.resolveRedirectTarget = resolveRedirectTarget; exports.getAllPlatformBaseDomains = getAllPlatformBaseDomains; exports.AI_PROVIDERS = AI_PROVIDERS; exports.aiProvider = aiProvider; exports.TOKEN_RATE_EMPTY = TOKEN_RATE_EMPTY; exports.formatTokenRate = formatTokenRate; exports.tokenCost = tokenCost; exports.formatTokenAmount = formatTokenAmount; exports.tokensForBalance = tokensForBalance; exports.tokenRateProviderLabel = tokenRateProviderLabel; exports.groupTokenRatesByProvider = groupTokenRatesByProvider; exports.TRIAL_TERMS = TRIAL_TERMS; exports.trialLengthLabel = trialLengthLabel; exports.trialLabels = trialLabels; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.SEO_DESCRIPTION_MAX_LENGTH = SEO_DESCRIPTION_MAX_LENGTH; exports.BRAND_MARK_SVGS = BRAND_MARK_SVGS; exports.brandMarkDataUri = brandMarkDataUri; exports.DESIGN_DOC_READINESS = DESIGN_DOC_READINESS; exports.DESIGN_DOC_READINESS_DISPLAY = DESIGN_DOC_READINESS_DISPLAY; exports.designDocReadiness = designDocReadiness; exports.formatCompletionLabel = formatCompletionLabel; exports.formatCompletionLabelWithBlockers = formatCompletionLabelWithBlockers; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; exports.TICKET_OPEN_PARAM = TICKET_OPEN_PARAM; exports.buildTicketOpenHref = buildTicketOpenHref; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.BITE_ID_RE = BITE_ID_RE; exports.generateBiteId = generateBiteId; exports.ensureBiteIds = ensureBiteIds; exports.matchBiteElement = matchBiteElement; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.DOWNLOAD_PAGE_PATH = DOWNLOAD_PAGE_PATH; exports.resolveMobileStoreUrl = resolveMobileStoreUrl; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.getCountryByName = getCountryByName; exports.getFlagFromCountryName = getFlagFromCountryName; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.COMPLIANCE_STANDARDS = COMPLIANCE_STANDARDS; exports.complianceStandardForName = complianceStandardForName; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.isDismissedCookieValue = isDismissedCookieValue; exports.readDismissCookie = readDismissCookie; exports.writeDismissCookie = writeDismissCookie; exports.clearDismissCookie = clearDismissCookie; exports.announcementDismissCookieName = announcementDismissCookieName; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.WALKTHROUGH_VIDEO_DISMISS_KEY = WALKTHROUGH_VIDEO_DISMISS_KEY; exports.walkthroughDismissCookieName = walkthroughDismissCookieName; exports.isWalkthroughDismissed = isWalkthroughDismissed; exports.dismissWalkthrough = dismissWalkthrough; exports.clearWalkthroughDismissal = clearWalkthroughDismissal; exports.WALKTHROUGH_OPEN_QUERY_PARAM = WALKTHROUGH_OPEN_QUERY_PARAM; exports.withWalkthroughOpenParam = withWalkthroughOpenParam; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.DOC_TABLE_TYPES = DOC_TABLE_TYPES; exports.groupsByTable = groupsByTable; exports.recordCountLabel = recordCountLabel; exports.buildGroupedSource = buildGroupedSource; exports.groupSourcesByTable = groupSourcesByTable; exports.formatCitationIndices = formatCitationIndices; exports.createSseSubscription = createSseSubscription; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.clickupTaskUrl = clickupTaskUrl; exports.ANNOUNCEMENT_CTA_DEFAULTS = ANNOUNCEMENT_CTA_DEFAULTS; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.ENTITY_QUOTES_TITLE = ENTITY_QUOTES_TITLE; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.openInNewTab = openInNewTab; exports.faqSectionSlug = faqSectionSlug; exports.faqItemAnchor = faqItemAnchor; exports.parseFaqHash = parseFaqHash; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.extractSections = extractSections; exports.SCHEDULING_SLUG_SHAPE = SCHEDULING_SLUG_SHAPE; exports.MAX_MONTH_OFFSET = MAX_MONTH_OFFSET; exports.normalizeSchedulingSlug = normalizeSchedulingSlug; exports.isValidSchedulingSlug = isValidSchedulingSlug; exports.parseSchedulingLinkName = parseSchedulingLinkName; exports.isListedSchedulingName = isListedSchedulingName; exports.schedulingAudienceKey = schedulingAudienceKey; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.FIRST_TOUCH_ATTRIBUTION_KEY = FIRST_TOUCH_ATTRIBUTION_KEY; exports.sanitizeLandingUrl = sanitizeLandingUrl; exports.parseAttributionFromUrl = parseAttributionFromUrl; exports.captureFirstTouchAttribution = captureFirstTouchAttribution; exports.getFirstTouchAttribution = getFirstTouchAttribution; exports.withFirstTouchAttribution = withFirstTouchAttribution; exports.clearFirstTouchAttribution = clearFirstTouchAttribution; exports.ODS_SPACING_TOKENS = ODS_SPACING_TOKENS; exports.ODS_SPACING_TOKEN_PATTERN = ODS_SPACING_TOKEN_PATTERN; exports.ODS_SPACING_PROPS = ODS_SPACING_PROPS; exports.TAILWIND_STEP_TO_ODS_TOKEN = TAILWIND_STEP_TO_ODS_TOKEN; exports.CSV_CONTENT_TYPE = CSV_CONTENT_TYPE; exports.csvEscape = csvEscape; exports.toCsv = toCsv; exports.copyrightLine = copyrightLine; exports.isValidPathPattern = isValidPathPattern; exports.matchesPathPattern = matchesPathPattern; exports.pathMatchesAny = pathMatchesAny; exports.ASK_AI_OPEN_EVENT = ASK_AI_OPEN_EVENT; exports.openAskAi = openAskAi; exports.MingoAiButton = MingoAiButton; exports.AskPrompts = AskPrompts; exports.AskCard = AskCard; exports.ASK_PROMPTS_DEFAULT_COUNT = ASK_PROMPTS_DEFAULT_COUNT; exports.buildAskPromptsUrl = buildAskPromptsUrl; exports.assistantAvailable = assistantAvailable; exports.useAskPrompts = useAskPrompts; exports.useAssistantOpen = useAssistantOpen; exports.useAskSurface = useAskSurface; exports.AssistantAskPrompts = AssistantAskPrompts; exports.useMarqueeSync = useMarqueeSync; exports.getMarqueeTrackOffset = getMarqueeTrackOffset; exports.getMarqueeAppliedOffset = getMarqueeAppliedOffset; exports.getMarqueeCloneTwin = getMarqueeCloneTwin; exports.MarqueeWallFades = MarqueeWallFades; exports.MarqueeWall = MarqueeWall; exports.WALL_SKELETON_LABEL_CH = WALL_SKELETON_LABEL_CH; exports.interleave = interleave; exports.QuickActionWall = QuickActionWall; exports.QuickActionMarquee = QuickActionMarquee; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.ChatListEmptyState = ChatListEmptyState; exports.MingoChatHistorySkeleton = MingoChatHistorySkeleton; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; exports.GuideModeBanner = GuideModeBanner; exports.ChatNavSidebar = ChatNavSidebar; exports.ChatListItem = ChatListItem; exports.MingoArchiveList = MingoArchiveList; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.MingoChatHeader = MingoChatHeader; exports.ChatHeaderSearchField = ChatHeaderSearchField; exports.MingoChatRail = MingoChatRail; exports.TabSelector = TabSelector; exports.MingoHistoryRail = MingoHistoryRail; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatPanelHeader = ChatPanelHeader; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.ChatContextMemoryBar = ChatContextMemoryBar; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.ModelDisplaySkeleton = ModelDisplaySkeleton; exports.ChatComposer = ChatComposer; exports.ChatArchivePage = ChatArchivePage; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.ChatTopNavigation = ChatTopNavigation; exports.OnboardingCarousel = OnboardingCarousel; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveExternalNavigation = resolveExternalNavigation; exports.executeNavigation = executeNavigation; exports.executeNavigationImperative = executeNavigationImperative; exports.handleChatNavClick = handleChatNavClick; exports.useNavLinkViaRuntime = useNavLinkViaRuntime; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.getCaptionsUrl = getCaptionsUrl; exports.rebaseCaptionsUrl = rebaseCaptionsUrl; exports.buildCaptionsUrl = buildCaptionsUrl; exports.getEntityCaptionUrls = getEntityCaptionUrls; exports.getEntityCaptionUrlsById = getEntityCaptionUrlsById; exports.captionsEntityTypeForDocType = captionsEntityTypeForDocType; exports.useCaptions = useCaptions; exports.UserDisplay = UserDisplay; exports.CardHitLayer = CardHitLayer; exports.STRIP_CELL_MAX_WIDTH = STRIP_CELL_MAX_WIDTH; exports.CardsStrip = CardsStrip; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_TO_CSS_ASPECT = RATIO_TO_CSS_ASPECT; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesStrip = VideoBitesStrip; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.UnifiedSkeleton = UnifiedSkeleton; exports.TextSkeleton = TextSkeleton; exports.InteractiveSkeleton = InteractiveSkeleton; exports.MediaSkeleton = MediaSkeleton; exports.designDocPeople = designDocPeople; exports.designDocMetaLine = designDocMetaLine; exports.DesignDocCardSkeleton = DesignDocCardSkeleton; exports.DesignDocCard = DesignDocCard; exports.GitHubActivityCard = GitHubActivityCard; exports.GitHubActivityCardSkeleton = GitHubActivityCardSkeleton; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.getVendorLogo = getVendorLogo; exports.VendorIcon = VendorIcon; exports.useChatCardItem = useChatCardItem; exports.readFetchedCardTitle = readFetchedCardTitle; exports.readFetchedCardPath = readFetchedCardPath; exports.resolveFetchedCardHref = resolveFetchedCardHref; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.resolveCardDestination = resolveCardDestination; exports.chatCardLabel = chatCardLabel; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.EMPTY_DIALOG_CAPABILITIES = EMPTY_DIALOG_CAPABILITIES; exports.useChunkCatchup = useChunkCatchup; exports.useScriptedStream = useScriptedStream; exports.RESYNC_AFTER_HIDDEN_MS = RESYNC_AFTER_HIDDEN_MS; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.useSlashCommandRegistry = useSlashCommandRegistry; exports.fetchEmptyStateConfig = fetchEmptyStateConfig; exports.useEmptyStateConfig = useEmptyStateConfig; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.ChatIdentityProvider = ChatIdentityProvider; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.approvalDisplaysInline = approvalDisplaysInline; exports.appendToTrailingAssistant = appendToTrailingAssistant; exports.upsertTrailingCompaction = upsertTrailingCompaction; exports.applyToolExecutionToMessages = applyToolExecutionToMessages; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.createEmptyTurnMeta = createEmptyTurnMeta; exports.createChatStreamReducer = createChatStreamReducer; exports.DEFAULT_DIALOG_SIDE = DEFAULT_DIALOG_SIDE; exports.DEFAULT_MAX_REDUCERS = DEFAULT_MAX_REDUCERS; exports.MAX_PENDING_RETAIN_KEYS = MAX_PENDING_RETAIN_KEYS; exports.createChatDialogStore = createChatDialogStore; exports.createDeltaBatcher = createDeltaBatcher; exports.useChatStreamReducer = useChatStreamReducer; exports.createChatConversationsApi = createChatConversationsApi; exports.buildDiscussPrompt = buildDiscussPrompt; exports.useManagedDialogList = useManagedDialogList; exports.useSseChatAdapter = useSseChatAdapter; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.extractIncompleteTailState = extractIncompleteTailState; exports.decodeHistoricalMessageData = decodeHistoricalMessageData; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.mapProcessedToUnified = mapProcessedToUnified; exports.historicalToUnified = historicalToUnified; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useStableShallow = useStableShallow; exports.useUnifiedChat = useUnifiedChat; exports.SYNTHETIC_REALTIME_ID_PREFIXES = SYNTHETIC_REALTIME_ID_PREFIXES; exports.flattenMessagePagesChronological = flattenMessagePagesChronological; exports.maxPersistedStreamSeq = maxPersistedStreamSeq; exports.mergeHistoryWithRealtime = mergeHistoryWithRealtime; exports.computeHistoryPrepend = computeHistoryPrepend; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.normalizeHistoricalMessageData = normalizeHistoricalMessageData; exports.isHistoricalUserTurn = isHistoricalUserTurn; exports.buildStreamFrames = buildStreamFrames; exports.MINGO_V2_RAIL_WIDTH = MINGO_V2_RAIL_WIDTH; exports.MINGO_V2_SPLIT_WIDTH = MINGO_V2_SPLIT_WIDTH; exports.EmbeddableChat = EmbeddableChat; exports.ProxyCredentialsPanel = ProxyCredentialsPanel;