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

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