@flamingo-stack/openframe-frontend-core 0.0.421 → 0.0.422

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 (96) hide show
  1. package/dist/{chunk-6HCWW4YM.cjs → chunk-2JNFQEVX.cjs} +26 -26
  2. package/dist/{chunk-6HCWW4YM.cjs.map → chunk-2JNFQEVX.cjs.map} +1 -1
  3. package/dist/{chunk-TJ7HD4KI.js → chunk-3BGWK5QI.js} +4 -4
  4. package/dist/{chunk-ZXWSOOEH.js → chunk-4BWQYGIY.js} +2 -2
  5. package/dist/{chunk-FHAG7O27.js → chunk-4TMMYZTY.js} +2 -2
  6. package/dist/{chunk-UKIVJU3A.js → chunk-6F5OKJTW.js} +4 -4
  7. package/dist/{chunk-YLSDXDD7.cjs → chunk-A2IRUIUJ.cjs} +37 -37
  8. package/dist/{chunk-YLSDXDD7.cjs.map → chunk-A2IRUIUJ.cjs.map} +1 -1
  9. package/dist/{chunk-RQXFDMRY.cjs → chunk-B62DI2SC.cjs} +15 -15
  10. package/dist/{chunk-RQXFDMRY.cjs.map → chunk-B62DI2SC.cjs.map} +1 -1
  11. package/dist/{chunk-UZOYTAK7.cjs → chunk-BF5BXKM7.cjs} +62 -62
  12. package/dist/{chunk-UZOYTAK7.cjs.map → chunk-BF5BXKM7.cjs.map} +1 -1
  13. package/dist/{chunk-JMHU37Y6.js → chunk-DUHM44CQ.js} +2 -2
  14. package/dist/{chunk-5TL2VVEN.js → chunk-HFK33T6A.js} +4 -4
  15. package/dist/{chunk-UHSVSDF5.js → chunk-JSL3VXGJ.js} +2 -2
  16. package/dist/{chunk-WDZATJTF.cjs → chunk-KUDLV25M.cjs} +163 -127
  17. package/dist/chunk-KUDLV25M.cjs.map +1 -0
  18. package/dist/{chunk-4XTIANMS.js → chunk-LHM2VUTO.js} +2 -2
  19. package/dist/{chunk-E5HKIBRS.cjs → chunk-LWC2U5OC.cjs} +9 -9
  20. package/dist/{chunk-E5HKIBRS.cjs.map → chunk-LWC2U5OC.cjs.map} +1 -1
  21. package/dist/{chunk-4PS4F4WL.cjs → chunk-O3FSSWV4.cjs} +7 -7
  22. package/dist/{chunk-4PS4F4WL.cjs.map → chunk-O3FSSWV4.cjs.map} +1 -1
  23. package/dist/{chunk-PMFK7ZKC.cjs → chunk-PO4PXWZN.cjs} +5 -5
  24. package/dist/{chunk-PMFK7ZKC.cjs.map → chunk-PO4PXWZN.cjs.map} +1 -1
  25. package/dist/{chunk-RKNF2DHY.cjs → chunk-RGKGRS2T.cjs} +59 -59
  26. package/dist/{chunk-RKNF2DHY.cjs.map → chunk-RGKGRS2T.cjs.map} +1 -1
  27. package/dist/{chunk-5U6C3RXX.cjs → chunk-ULUH2X53.cjs} +11 -11
  28. package/dist/{chunk-5U6C3RXX.cjs.map → chunk-ULUH2X53.cjs.map} +1 -1
  29. package/dist/{chunk-PCM4HJO4.cjs → chunk-WAQH35VG.cjs} +26 -26
  30. package/dist/{chunk-PCM4HJO4.cjs.map → chunk-WAQH35VG.cjs.map} +1 -1
  31. package/dist/{chunk-ISUMLEJ6.js → chunk-WQEEGFDM.js} +2 -2
  32. package/dist/{chunk-XVWDKBBF.js → chunk-XFYQV2K2.js} +2 -2
  33. package/dist/{chunk-5WXUR7LF.js → chunk-YJDVAT7J.js} +39 -3
  34. package/dist/chunk-YJDVAT7J.js.map +1 -0
  35. package/dist/{chunk-LHJHMZYU.js → chunk-YUMFRC3D.js} +4 -4
  36. package/dist/{chunk-5UZULT35.cjs → chunk-YZQNKMFQ.cjs} +31 -31
  37. package/dist/{chunk-5UZULT35.cjs.map → chunk-YZQNKMFQ.cjs.map} +1 -1
  38. package/dist/components/case-studies/index.cjs +8 -8
  39. package/dist/components/case-studies/index.js +2 -2
  40. package/dist/components/chat/chat-input.d.ts.map +1 -1
  41. package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts.map +1 -1
  42. package/dist/components/chat/hooks/use-realtime-chunk-processor.d.ts.map +1 -1
  43. package/dist/components/chat/index.cjs +2 -2
  44. package/dist/components/chat/index.js +1 -1
  45. package/dist/components/chat/types/api.types.d.ts +10 -0
  46. package/dist/components/chat/types/api.types.d.ts.map +1 -1
  47. package/dist/components/contact/index.cjs +3 -3
  48. package/dist/components/contact/index.js +2 -2
  49. package/dist/components/docs/index.cjs +5 -5
  50. package/dist/components/docs/index.js +4 -4
  51. package/dist/components/embeds/index.cjs +3 -3
  52. package/dist/components/embeds/index.js +2 -2
  53. package/dist/components/faq/index.cjs +3 -3
  54. package/dist/components/faq/index.js +2 -2
  55. package/dist/components/features/index.cjs +2 -2
  56. package/dist/components/features/index.js +1 -1
  57. package/dist/components/help-center-pages/index.cjs +20 -20
  58. package/dist/components/help-center-pages/index.js +11 -11
  59. package/dist/components/index.cjs +128 -128
  60. package/dist/components/index.js +9 -9
  61. package/dist/components/navigation/index.cjs +2 -2
  62. package/dist/components/navigation/index.js +1 -1
  63. package/dist/components/onboarding-guides/index.cjs +5 -5
  64. package/dist/components/onboarding-guides/index.js +4 -4
  65. package/dist/components/related-content/index.cjs +3 -3
  66. package/dist/components/related-content/index.js +2 -2
  67. package/dist/components/tickets/index.cjs +5 -5
  68. package/dist/components/tickets/index.js +4 -4
  69. package/dist/components/ui/index.cjs +2 -2
  70. package/dist/components/ui/index.js +1 -1
  71. package/dist/index.cjs +2 -2
  72. package/dist/index.js +1 -1
  73. package/package.json +1 -1
  74. package/src/components/chat/chat-input.tsx +5 -1
  75. package/src/components/chat/hooks/use-nats-chat-adapter.ts +52 -3
  76. package/src/components/chat/hooks/use-realtime-chunk-processor.ts +25 -3
  77. package/src/components/chat/types/api.types.ts +10 -0
  78. package/src/stories/ApprovalRequestMessageClient.stories.tsx +89 -0
  79. package/src/stories/ChatMessageEnhanced.stories.tsx +219 -0
  80. package/src/stories/ChatTypingIndicator.stories.tsx +51 -0
  81. package/src/stories/ContextCompactionDisplay.stories.tsx +44 -0
  82. package/src/stories/ErrorMessageDisplay.stories.tsx +66 -0
  83. package/src/stories/ThinkingDisplay.stories.tsx +63 -0
  84. package/dist/chunk-5WXUR7LF.js.map +0 -1
  85. package/dist/chunk-WDZATJTF.cjs.map +0 -1
  86. /package/dist/{chunk-TJ7HD4KI.js.map → chunk-3BGWK5QI.js.map} +0 -0
  87. /package/dist/{chunk-ZXWSOOEH.js.map → chunk-4BWQYGIY.js.map} +0 -0
  88. /package/dist/{chunk-FHAG7O27.js.map → chunk-4TMMYZTY.js.map} +0 -0
  89. /package/dist/{chunk-UKIVJU3A.js.map → chunk-6F5OKJTW.js.map} +0 -0
  90. /package/dist/{chunk-JMHU37Y6.js.map → chunk-DUHM44CQ.js.map} +0 -0
  91. /package/dist/{chunk-5TL2VVEN.js.map → chunk-HFK33T6A.js.map} +0 -0
  92. /package/dist/{chunk-UHSVSDF5.js.map → chunk-JSL3VXGJ.js.map} +0 -0
  93. /package/dist/{chunk-4XTIANMS.js.map → chunk-LHM2VUTO.js.map} +0 -0
  94. /package/dist/{chunk-ISUMLEJ6.js.map → chunk-WQEEGFDM.js.map} +0 -0
  95. /package/dist/{chunk-XVWDKBBF.js.map → chunk-XFYQV2K2.js.map} +0 -0
  96. /package/dist/{chunk-LHJHMZYU.js.map → chunk-YUMFRC3D.js.map} +0 -0
@@ -4657,7 +4657,11 @@ var ChatInput = _react.forwardRef.call(void 0, (allProps, ref) => {
4657
4657
  disabled: isStopMode ? isStopping : sendDisabled,
4658
4658
  className: _chunkFIG2RKZFcjs.cn.call(void 0,
4659
4659
  "flex h-6 shrink-0 items-center text-ods-text-secondary transition-colors duration-200",
4660
- focused && "text-ods-accent",
4660
+ // Focus accent applies to the SEND icon only. Stop stays neutral
4661
+ // regardless of where focus sits — otherwise it reads yellow after
4662
+ // an Enter-send (editor keeps focus) but gray after an approve
4663
+ // click (focus moved to the card button).
4664
+ focused && !isStopMode && "text-ods-accent",
4661
4665
  "[&_svg]:size-4 md:[&_svg]:size-6",
4662
4666
  "cursor-pointer hover:text-ods-text-primary",
4663
4667
  "focus-visible:outline-none focus-visible:text-ods-accent",
@@ -48165,6 +48169,7 @@ function useRealtimeChunkProcessor(options) {
48165
48169
  const hasEverStreamedRef = _react.useRef.call(void 0, false);
48166
48170
  const directModeFlagRef = _react.useRef.call(void 0, isDirectMode);
48167
48171
  const sawDirectMessageRef = _react.useRef.call(void 0, false);
48172
+ const directTeardownFiredRef = _react.useRef.call(void 0, false);
48168
48173
  _react.useEffect.call(void 0, () => {
48169
48174
  directModeFlagRef.current = isDirectMode;
48170
48175
  }, [isDirectMode]);
@@ -48178,8 +48183,9 @@ function useRealtimeChunkProcessor(options) {
48178
48183
  const emitSegments = (s, meta) => _optionalChain([callbacks, 'access', _1163 => _1163.onSegmentsUpdate, 'optionalCall', _1164 => _1164(s, streamSeq != null ? { ...meta, streamSeq } : meta)]);
48179
48184
  if (action.action === "direct_message") sawDirectMessageRef.current = true;
48180
48185
  if ((directModeFlagRef.current || sawDirectMessageRef.current) && !DIRECT_MODE_ALLOWED.has(action.action)) {
48181
- if (isInStreamRef.current) {
48186
+ if (isInStreamRef.current || !directTeardownFiredRef.current) {
48182
48187
  isInStreamRef.current = false;
48188
+ directTeardownFiredRef.current = true;
48183
48189
  _optionalChain([callbacks, 'access', _1165 => _1165.onStreamEnd, 'optionalCall', _1166 => _1166()]);
48184
48190
  accumulator.resetSegments();
48185
48191
  }
@@ -48219,6 +48225,9 @@ function useRealtimeChunkProcessor(options) {
48219
48225
  break;
48220
48226
  }
48221
48227
  case "tool_execution": {
48228
+ if (action.segment.data.type === "EXECUTING_TOOL") {
48229
+ _optionalChain([callbacks, 'access', _1173 => _1173.onAgentBusy, 'optionalCall', _1174 => _1174()]);
48230
+ }
48222
48231
  if (!isInStreamRef.current && callbacks.onToolExecuted) {
48223
48232
  callbacks.onToolExecuted(action.segment);
48224
48233
  break;
@@ -48241,7 +48250,7 @@ function useRealtimeChunkProcessor(options) {
48241
48250
  emitSegments(segments);
48242
48251
  } else {
48243
48252
  pendingEscalatedRef.current.set(requestId, { command, explanation, approvalType });
48244
- _optionalChain([callbacks, 'access', _1173 => _1173.onEscalatedApproval, 'optionalCall', _1174 => _1174(requestId, { command, explanation, approvalType })]);
48253
+ _optionalChain([callbacks, 'access', _1175 => _1175.onEscalatedApproval, 'optionalCall', _1176 => _1176(requestId, { command, explanation, approvalType })]);
48245
48254
  }
48246
48255
  break;
48247
48256
  }
@@ -48253,13 +48262,13 @@ function useRealtimeChunkProcessor(options) {
48253
48262
  const summary = required ? getCommandText(required) : `Batch of ${toolCalls.length} tool calls`;
48254
48263
  pendingEscalatedRef.current.set(requestId, {
48255
48264
  command: summary,
48256
- explanation: _optionalChain([required, 'optionalAccess', _1175 => _1175.toolExplanation]),
48265
+ explanation: _optionalChain([required, 'optionalAccess', _1177 => _1177.toolExplanation]),
48257
48266
  approvalType,
48258
48267
  toolCalls
48259
48268
  });
48260
- _optionalChain([callbacks, 'access', _1176 => _1176.onEscalatedApproval, 'optionalCall', _1177 => _1177(requestId, {
48269
+ _optionalChain([callbacks, 'access', _1178 => _1178.onEscalatedApproval, 'optionalCall', _1179 => _1179(requestId, {
48261
48270
  command: summary,
48262
- explanation: _optionalChain([required, 'optionalAccess', _1178 => _1178.toolExplanation]),
48271
+ explanation: _optionalChain([required, 'optionalAccess', _1180 => _1180.toolExplanation]),
48263
48272
  approvalType
48264
48273
  })]);
48265
48274
  break;
@@ -48285,11 +48294,12 @@ function useRealtimeChunkProcessor(options) {
48285
48294
  }
48286
48295
  case "approval_result": {
48287
48296
  const { requestId, approved, approvalType, resolvedByName } = action;
48297
+ if (approved) _optionalChain([callbacks, 'access', _1181 => _1181.onAgentBusy, 'optionalCall', _1182 => _1182()]);
48288
48298
  const escalatedData = pendingEscalatedRef.current.get(requestId);
48289
48299
  const status = approved ? "approved" : "rejected";
48290
48300
  if (escalatedData) {
48291
48301
  pendingEscalatedRef.current.delete(requestId);
48292
- _optionalChain([callbacks, 'access', _1179 => _1179.onEscalatedApprovalResult, 'optionalCall', _1180 => _1180(requestId, approved, {
48302
+ _optionalChain([callbacks, 'access', _1183 => _1183.onEscalatedApprovalResult, 'optionalCall', _1184 => _1184(requestId, approved, {
48293
48303
  command: escalatedData.command,
48294
48304
  explanation: escalatedData.explanation,
48295
48305
  approvalType: escalatedData.approvalType
@@ -48335,29 +48345,29 @@ function useRealtimeChunkProcessor(options) {
48335
48345
  emitSegments(accumulator.getSegments());
48336
48346
  }
48337
48347
  }
48338
- _optionalChain([callbacks, 'access', _1181 => _1181.onApprovalResolved, 'optionalCall', _1182 => _1182(requestId, status, approvalType, resolvedByName)]);
48348
+ _optionalChain([callbacks, 'access', _1185 => _1185.onApprovalResolved, 'optionalCall', _1186 => _1186(requestId, status, approvalType, resolvedByName)]);
48339
48349
  break;
48340
48350
  }
48341
48351
  case "error": {
48342
48352
  let message2;
48343
- if ("details" in action && _optionalChain([action, 'optionalAccess', _1183 => _1183.details])) {
48353
+ if ("details" in action && _optionalChain([action, 'optionalAccess', _1187 => _1187.details])) {
48344
48354
  try {
48345
- message2 = _optionalChain([JSON, 'access', _1184 => _1184.parse, 'call', _1185 => _1185(action.details), 'optionalAccess', _1186 => _1186.error, 'optionalAccess', _1187 => _1187.message]);
48355
+ message2 = _optionalChain([JSON, 'access', _1188 => _1188.parse, 'call', _1189 => _1189(action.details), 'optionalAccess', _1190 => _1190.error, 'optionalAccess', _1191 => _1191.message]);
48346
48356
  } catch (e60) {
48347
48357
  message2 = action.details;
48348
48358
  }
48349
48359
  }
48350
48360
  const segments = accumulator.addError(action.error, message2);
48351
48361
  emitSegments(segments);
48352
- _optionalChain([callbacks, 'access', _1188 => _1188.onError, 'optionalCall', _1189 => _1189(action.error, message2)]);
48362
+ _optionalChain([callbacks, 'access', _1192 => _1192.onError, 'optionalCall', _1193 => _1193(action.error, message2)]);
48353
48363
  break;
48354
48364
  }
48355
48365
  case "system": {
48356
- _optionalChain([callbacks, 'access', _1190 => _1190.onSystemMessage, 'optionalCall', _1191 => _1191(action.text, { streamSeq })]);
48366
+ _optionalChain([callbacks, 'access', _1194 => _1194.onSystemMessage, 'optionalCall', _1195 => _1195(action.text, { streamSeq })]);
48357
48367
  break;
48358
48368
  }
48359
48369
  case "direct_message": {
48360
- _optionalChain([callbacks, 'access', _1192 => _1192.onDirectMessage, 'optionalCall', _1193 => _1193(action.text, {
48370
+ _optionalChain([callbacks, 'access', _1196 => _1196.onDirectMessage, 'optionalCall', _1197 => _1197(action.text, {
48361
48371
  ownerType: action.ownerType,
48362
48372
  displayName: action.displayName,
48363
48373
  userId: action.userId,
@@ -48366,7 +48376,7 @@ function useRealtimeChunkProcessor(options) {
48366
48376
  break;
48367
48377
  }
48368
48378
  case "message_request":
48369
- _optionalChain([callbacks, 'access', _1194 => _1194.onUserMessage, 'optionalCall', _1195 => _1195(action.text, {
48379
+ _optionalChain([callbacks, 'access', _1198 => _1198.onUserMessage, 'optionalCall', _1199 => _1199(action.text, {
48370
48380
  ownerType: action.ownerType,
48371
48381
  displayName: action.displayName,
48372
48382
  userId: action.userId,
@@ -48375,7 +48385,7 @@ function useRealtimeChunkProcessor(options) {
48375
48385
  })]);
48376
48386
  break;
48377
48387
  case "token_usage":
48378
- _optionalChain([callbacks, 'access', _1196 => _1196.onTokenUsage, 'optionalCall', _1197 => _1197(action.data)]);
48388
+ _optionalChain([callbacks, 'access', _1200 => _1200.onTokenUsage, 'optionalCall', _1201 => _1201(action.data)]);
48379
48389
  break;
48380
48390
  case "context_compaction_start": {
48381
48391
  const standalone = !isInStreamRef.current;
@@ -48390,7 +48400,7 @@ function useRealtimeChunkProcessor(options) {
48390
48400
  break;
48391
48401
  }
48392
48402
  case "dialog_closed":
48393
- _optionalChain([callbacks, 'access', _1198 => _1198.onDialogClosed, 'optionalCall', _1199 => _1199()]);
48403
+ _optionalChain([callbacks, 'access', _1202 => _1202.onDialogClosed, 'optionalCall', _1203 => _1203()]);
48394
48404
  break;
48395
48405
  default:
48396
48406
  break;
@@ -48406,6 +48416,7 @@ function useRealtimeChunkProcessor(options) {
48406
48416
  pendingEscalatedRef.current.clear();
48407
48417
  hasInitializedWithData.current = false;
48408
48418
  sawDirectMessageRef.current = false;
48419
+ directTeardownFiredRef.current = false;
48409
48420
  }, []);
48410
48421
  const updateApprovalStatus = _react.useCallback.call(void 0,
48411
48422
  (requestId, status, resolvedByName) => {
@@ -48437,7 +48448,7 @@ async function fetchSlashCommands(prefix, signal, commandsUrl) {
48437
48448
  const data = await res.json();
48438
48449
  return _nullishCoalesce(data.commands, () => ( []));
48439
48450
  } catch (err) {
48440
- if (_optionalChain([err, 'optionalAccess', _1200 => _1200.name]) === "AbortError") throw err;
48451
+ if (_optionalChain([err, 'optionalAccess', _1204 => _1204.name]) === "AbortError") throw err;
48441
48452
  console.warn("[chat] slash-commands fetch failed, showing none:", err);
48442
48453
  return [];
48443
48454
  }
@@ -48458,7 +48469,7 @@ function useSlashCommands(prefix, commandsUrl) {
48458
48469
  const next = await fetchSlashCommands(prefix, ctrl.signal, commandsUrl);
48459
48470
  if (!cancelled) setCommands(next);
48460
48471
  } catch (err) {
48461
- if (!cancelled && _optionalChain([err, 'optionalAccess', _1201 => _1201.name]) !== "AbortError") {
48472
+ if (!cancelled && _optionalChain([err, 'optionalAccess', _1205 => _1205.name]) !== "AbortError") {
48462
48473
  console.warn("[use-slash-commands] fetch failed:", err);
48463
48474
  }
48464
48475
  } finally {
@@ -48477,7 +48488,7 @@ function useSlashCommandRegistry(commandsUrl, options) {
48477
48488
  const query = _reactquery.useQuery.call(void 0, {
48478
48489
  queryKey: ["chat-slash-commands", commandsUrl],
48479
48490
  queryFn: ({ signal }) => fetchSlashCommands("", signal, commandsUrl),
48480
- enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1202 => _1202.enabled]), () => ( true)),
48491
+ enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1206 => _1206.enabled]), () => ( true)),
48481
48492
  staleTime: Infinity,
48482
48493
  gcTime: Infinity,
48483
48494
  // The commands registry is non-critical chrome — a failure degrades to an
@@ -48516,21 +48527,21 @@ async function fetchEmptyStateConfig(signal, emptyStateUrl) {
48516
48527
  }
48517
48528
  const data = await res.json();
48518
48529
  return {
48519
- name: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1203 => _1203.name]), () => ( null)),
48520
- icon: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1204 => _1204.icon]), () => ( null)),
48521
- greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1205 => _1205.greeting]), () => ( null)),
48522
- enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1206 => _1206.enabledRagTableIds]), () => ( [])),
48523
- quickActions: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1207 => _1207.quickActions]), () => ( [])),
48524
- suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1208 => _1208.suggestedQueries]), () => ( []))
48530
+ name: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1207 => _1207.name]), () => ( null)),
48531
+ icon: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1208 => _1208.icon]), () => ( null)),
48532
+ greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1209 => _1209.greeting]), () => ( null)),
48533
+ enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1210 => _1210.enabledRagTableIds]), () => ( [])),
48534
+ quickActions: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1211 => _1211.quickActions]), () => ( [])),
48535
+ suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1212 => _1212.suggestedQueries]), () => ( []))
48525
48536
  };
48526
48537
  } catch (err) {
48527
- if (_optionalChain([err, 'optionalAccess', _1209 => _1209.name]) === "AbortError") throw err;
48538
+ if (_optionalChain([err, 'optionalAccess', _1213 => _1213.name]) === "AbortError") throw err;
48528
48539
  console.warn("[chat] empty-state config fetch failed, using neutral defaults:", err);
48529
48540
  return EMPTY_STATE_FALLBACK;
48530
48541
  }
48531
48542
  }
48532
48543
  function useEmptyStateConfig(emptyStateUrl, options) {
48533
- const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1210 => _1210.enabled]), () => ( true))) && !!emptyStateUrl;
48544
+ const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1214 => _1214.enabled]), () => ( true))) && !!emptyStateUrl;
48534
48545
  const query = _reactquery.useQuery.call(void 0, {
48535
48546
  queryKey: ["chat-empty-state", emptyStateUrl],
48536
48547
  queryFn: ({ signal }) => fetchEmptyStateConfig(signal, emptyStateUrl),
@@ -48559,7 +48570,7 @@ var CHAT_ATTACHMENT_MAX_SIZE_BYTES = 25 * 1024 * 1024;
48559
48570
  var STORAGE_CACHE_CONTROL_IMMUTABLE = "public, max-age=31536000, immutable";
48560
48571
  function uploadWithProgress(url, file, token, onProgress, signal) {
48561
48572
  return new Promise((resolve, reject) => {
48562
- if (_optionalChain([signal, 'optionalAccess', _1211 => _1211.aborted])) {
48573
+ if (_optionalChain([signal, 'optionalAccess', _1215 => _1215.aborted])) {
48563
48574
  reject(new Error("Upload cancelled"));
48564
48575
  return;
48565
48576
  }
@@ -48573,7 +48584,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
48573
48584
  xhr.removeEventListener("error", handleError);
48574
48585
  xhr.removeEventListener("abort", handleAbort);
48575
48586
  xhr.removeEventListener("timeout", handleTimeout);
48576
- _optionalChain([signal, 'optionalAccess', _1212 => _1212.removeEventListener, 'call', _1213 => _1213("abort", handleSignalAbort)]);
48587
+ _optionalChain([signal, 'optionalAccess', _1216 => _1216.removeEventListener, 'call', _1217 => _1217("abort", handleSignalAbort)]);
48577
48588
  if (xhr.readyState !== XMLHttpRequest.DONE) xhr.abort();
48578
48589
  };
48579
48590
  const handleProgress = (event) => {
@@ -48609,7 +48620,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
48609
48620
  const handleSignalAbort = () => {
48610
48621
  xhr.abort();
48611
48622
  };
48612
- _optionalChain([signal, 'optionalAccess', _1214 => _1214.addEventListener, 'call', _1215 => _1215("abort", handleSignalAbort, { once: true })]);
48623
+ _optionalChain([signal, 'optionalAccess', _1218 => _1218.addEventListener, 'call', _1219 => _1219("abort", handleSignalAbort, { once: true })]);
48613
48624
  xhr.upload.addEventListener("progress", handleProgress);
48614
48625
  xhr.addEventListener("load", handleLoad);
48615
48626
  xhr.addEventListener("error", handleError);
@@ -48653,12 +48664,12 @@ function useChatAttachments() {
48653
48664
  try {
48654
48665
  sniffed = await _filetype.fileTypeFromBlob.call(void 0, att.file);
48655
48666
  } catch (err) {
48656
- if (_optionalChain([ctrl, 'optionalAccess', _1216 => _1216.signal, 'access', _1217 => _1217.aborted])) return;
48667
+ if (_optionalChain([ctrl, 'optionalAccess', _1220 => _1220.signal, 'access', _1221 => _1221.aborted])) return;
48657
48668
  throw new Error(
48658
48669
  `Could not read file content: ${err instanceof Error ? err.message : String(err)}`
48659
48670
  );
48660
48671
  }
48661
- if (_optionalChain([ctrl, 'optionalAccess', _1218 => _1218.signal, 'access', _1219 => _1219.aborted])) return;
48672
+ if (_optionalChain([ctrl, 'optionalAccess', _1222 => _1222.signal, 'access', _1223 => _1223.aborted])) return;
48662
48673
  if (!sniffed) {
48663
48674
  throw new Error("Unrecognized file format");
48664
48675
  }
@@ -48672,7 +48683,7 @@ function useChatAttachments() {
48672
48683
  const urlResp = await _chunkSR6LEWCFcjs.embedAuthedFetch.call(void 0, uploadUrlEndpoint, {
48673
48684
  method: "POST",
48674
48685
  headers: { "Content-Type": "application/json" },
48675
- signal: _optionalChain([ctrl, 'optionalAccess', _1220 => _1220.signal]),
48686
+ signal: _optionalChain([ctrl, 'optionalAccess', _1224 => _1224.signal]),
48676
48687
  body: JSON.stringify({
48677
48688
  fileName: att.file.name,
48678
48689
  // Pass the SNIFFED MIME (not `file.type`, which can be a
@@ -48698,9 +48709,9 @@ function useChatAttachments() {
48698
48709
  (pct) => {
48699
48710
  updateOne(att.id, { progress: pct });
48700
48711
  },
48701
- _optionalChain([ctrl, 'optionalAccess', _1221 => _1221.signal])
48712
+ _optionalChain([ctrl, 'optionalAccess', _1225 => _1225.signal])
48702
48713
  );
48703
- if (_optionalChain([ctrl, 'optionalAccess', _1222 => _1222.signal, 'access', _1223 => _1223.aborted])) return;
48714
+ if (_optionalChain([ctrl, 'optionalAccess', _1226 => _1226.signal, 'access', _1227 => _1227.aborted])) return;
48704
48715
  updateOne(att.id, {
48705
48716
  status: "ready",
48706
48717
  progress: 100,
@@ -48708,7 +48719,7 @@ function useChatAttachments() {
48708
48719
  viewToken: mintData.viewToken
48709
48720
  });
48710
48721
  } catch (err) {
48711
- if (_optionalChain([ctrl, 'optionalAccess', _1224 => _1224.signal, 'access', _1225 => _1225.aborted])) return;
48722
+ if (_optionalChain([ctrl, 'optionalAccess', _1228 => _1228.signal, 'access', _1229 => _1229.aborted])) return;
48712
48723
  const message2 = err instanceof Error ? err.message : String(err);
48713
48724
  updateOne(att.id, { status: "error", progress: 0, errorMessage: message2 });
48714
48725
  } finally {
@@ -48859,7 +48870,7 @@ var ANON_DEFAULTS = {
48859
48870
  function useResolveChatIdentity(enabled) {
48860
48871
  const runtime = _chunk2B6773QMcjs.useRequiredChatRuntime.call(void 0, );
48861
48872
  const url = runtime.endpoints.identityUrl;
48862
- const proxyEmail = _nullishCoalesce(_optionalChain([_chunkSR6LEWCFcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _1226 => _1226.email]), () => ( null));
48873
+ const proxyEmail = _nullishCoalesce(_optionalChain([_chunkSR6LEWCFcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _1230 => _1230.email]), () => ( null));
48863
48874
  const [data, setData] = _react.useState.call(void 0, ANON_DEFAULTS);
48864
48875
  const [isLoading, setIsLoading] = _react.useState.call(void 0, enabled);
48865
48876
  _react.useEffect.call(void 0, () => {
@@ -48950,7 +48961,7 @@ function useSSE({ useMock = true, debugMode = false, streamFn } = {}) {
48950
48961
  yield chunk;
48951
48962
  }
48952
48963
  } catch (err) {
48953
- if (_optionalChain([err, 'optionalAccess', _1227 => _1227.name]) === "AbortError" || ctrl.signal.aborted) {
48964
+ if (_optionalChain([err, 'optionalAccess', _1231 => _1231.name]) === "AbortError" || ctrl.signal.aborted) {
48954
48965
  return;
48955
48966
  }
48956
48967
  const errorMessage = err instanceof Error ? err.message : "An error occurred";
@@ -49001,7 +49012,7 @@ function useChat({
49001
49012
  const onMessagesChangeRef = _react.useRef.call(void 0, onMessagesChange);
49002
49013
  onMessagesChangeRef.current = onMessagesChange;
49003
49014
  _react.useEffect.call(void 0, () => {
49004
- _optionalChain([onMessagesChangeRef, 'access', _1228 => _1228.current, 'optionalCall', _1229 => _1229(messages)]);
49015
+ _optionalChain([onMessagesChangeRef, 'access', _1232 => _1232.current, 'optionalCall', _1233 => _1233(messages)]);
49005
49016
  }, [messages]);
49006
49017
  const {
49007
49018
  streamMessage,
@@ -49038,7 +49049,7 @@ function useChat({
49038
49049
  name: "You",
49039
49050
  content: text,
49040
49051
  timestamp: /* @__PURE__ */ new Date(),
49041
- ..._optionalChain([options, 'optionalAccess', _1230 => _1230.hidden]) ? { hidden: true } : {}
49052
+ ..._optionalChain([options, 'optionalAccess', _1234 => _1234.hidden]) ? { hidden: true } : {}
49042
49053
  };
49043
49054
  addMessage(userMessage);
49044
49055
  setIsTyping(true);
@@ -49100,7 +49111,7 @@ function useChat({
49100
49111
  currentTextSegment = "";
49101
49112
  }
49102
49113
  const seg = segment;
49103
- const proposalId = _optionalChain([seg, 'access', _1231 => _1231.data, 'optionalAccess', _1232 => _1232.requestId]);
49114
+ const proposalId = _optionalChain([seg, 'access', _1235 => _1235.data, 'optionalAccess', _1236 => _1236.requestId]);
49104
49115
  const updateApprovalMessage = (transform) => {
49105
49116
  setMessages((prev) => {
49106
49117
  for (let i = prev.length - 1; i >= 0; i--) {
@@ -49109,7 +49120,7 @@ function useChat({
49109
49120
  if (!Array.isArray(m.content)) continue;
49110
49121
  const segments = m.content;
49111
49122
  const hasMatch = segments.some(
49112
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1233 => _1233.data, 'optionalAccess', _1234 => _1234.requestId]) === proposalId
49123
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1237 => _1237.data, 'optionalAccess', _1238 => _1238.requestId]) === proposalId
49113
49124
  );
49114
49125
  if (!hasMatch) continue;
49115
49126
  const next = [...prev];
@@ -49151,11 +49162,11 @@ function useChat({
49151
49162
  if (!Array.isArray(m.content)) continue;
49152
49163
  const segments = m.content;
49153
49164
  const hasMatch = segments.some(
49154
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1235 => _1235.data, 'optionalAccess', _1236 => _1236.requestId]) === decision.proposalId
49165
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1239 => _1239.data, 'optionalAccess', _1240 => _1240.requestId]) === decision.proposalId
49155
49166
  );
49156
49167
  if (!hasMatch) continue;
49157
49168
  const flipped = segments.map(
49158
- (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1237 => _1237.data, 'optionalAccess', _1238 => _1238.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
49169
+ (s) => s.type === "approval_request" && _optionalChain([s, 'access', _1241 => _1241.data, 'optionalAccess', _1242 => _1242.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
49159
49170
  );
49160
49171
  const next = [...prev];
49161
49172
  next[i] = { ...m, content: flipped };
@@ -49317,8 +49328,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
49317
49328
  })),
49318
49329
  { role: "user", content: message2 }
49319
49330
  ];
49320
- const targetPath = _optionalChain([extra, 'optionalAccess', _1239 => _1239.approvalAction]) ? endpoints.approvalToolUrl : endpoints.chatStreamUrl;
49321
- const requestBody = _optionalChain([extra, 'optionalAccess', _1240 => _1240.approvalAction]) ? {
49331
+ const targetPath = _optionalChain([extra, 'optionalAccess', _1243 => _1243.approvalAction]) ? endpoints.approvalToolUrl : endpoints.chatStreamUrl;
49332
+ const requestBody = _optionalChain([extra, 'optionalAccess', _1244 => _1244.approvalAction]) ? {
49322
49333
  proposal_id: extra.approvalAction.proposalId,
49323
49334
  action: extra.approvalAction.action,
49324
49335
  messages: currentMessages.filter((m) => (m.role === "user" || m.role === "assistant") && !m.hidden).map((m) => ({
@@ -49327,8 +49338,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
49327
49338
  }))
49328
49339
  } : {
49329
49340
  messages: apiMessages,
49330
- ..._optionalChain([extra, 'optionalAccess', _1241 => _1241.commandOverride]) ? { commandOverride: extra.commandOverride } : {},
49331
- ..._optionalChain([extra, 'optionalAccess', _1242 => _1242.pendingAttachments]) && extra.pendingAttachments.length > 0 ? { pendingAttachments: extra.pendingAttachments } : {}
49341
+ ..._optionalChain([extra, 'optionalAccess', _1245 => _1245.commandOverride]) ? { commandOverride: extra.commandOverride } : {},
49342
+ ..._optionalChain([extra, 'optionalAccess', _1246 => _1246.pendingAttachments]) && extra.pendingAttachments.length > 0 ? { pendingAttachments: extra.pendingAttachments } : {}
49332
49343
  };
49333
49344
  const response = await _chunkSR6LEWCFcjs.embedAuthedFetch.call(void 0, targetPath, {
49334
49345
  method: "POST",
@@ -49338,7 +49349,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
49338
49349
  if (!response.ok) {
49339
49350
  throw new Error(`Chat request failed: ${response.status}`);
49340
49351
  }
49341
- const reader = _optionalChain([response, 'access', _1243 => _1243.body, 'optionalAccess', _1244 => _1244.getReader, 'call', _1245 => _1245()]);
49352
+ const reader = _optionalChain([response, 'access', _1247 => _1247.body, 'optionalAccess', _1248 => _1248.getReader, 'call', _1249 => _1249()]);
49342
49353
  if (!reader) throw new Error("No response body");
49343
49354
  const decoder = new TextDecoder();
49344
49355
  let buffer = "";
@@ -49421,7 +49432,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
49421
49432
  const toolName = typeof meta.tool_name === "string" ? meta.tool_name : void 0;
49422
49433
  const result = _nullishCoalesce(meta.result, () => ( null));
49423
49434
  const card = _nullishCoalesce(meta.card, () => ( null));
49424
- if (_optionalChain([card, 'optionalAccess', _1246 => _1246.ref, 'optionalAccess', _1247 => _1247.id]) && _optionalChain([card, 'optionalAccess', _1248 => _1248.type])) {
49435
+ if (_optionalChain([card, 'optionalAccess', _1250 => _1250.ref, 'optionalAccess', _1251 => _1251.id]) && _optionalChain([card, 'optionalAccess', _1252 => _1252.type])) {
49425
49436
  const existing = _nullishCoalesce(refsMapRef.current.get(sendIdx), () => ( {}));
49426
49437
  const key = buildChatRefKey(card.type, card.ref.id);
49427
49438
  refsMapRef.current.set(sendIdx, { ...existing, [key]: card.ref });
@@ -49434,8 +49445,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
49434
49445
  willAutoContinue: meta.willAutoContinue === true,
49435
49446
  ...toolName ? { toolName } : {},
49436
49447
  ...result ? { result } : {},
49437
- ..._optionalChain([card, 'optionalAccess', _1249 => _1249.marker]) ? { marker: card.marker } : {},
49438
- ..._optionalChain([card, 'optionalAccess', _1250 => _1250.ref]) ? { cardRef: card.ref } : {},
49448
+ ..._optionalChain([card, 'optionalAccess', _1253 => _1253.marker]) ? { marker: card.marker } : {},
49449
+ ..._optionalChain([card, 'optionalAccess', _1254 => _1254.ref]) ? { cardRef: card.ref } : {},
49439
49450
  ...typeof meta.receiptText === "string" ? { receiptText: meta.receiptText } : {},
49440
49451
  proposalId: typeof meta.proposalId === "string" ? meta.proposalId : void 0
49441
49452
  };
@@ -49554,7 +49565,7 @@ var DEFAULT_CHAT_SOURCE = "embed";
49554
49565
  var chatStorageKey = (source) => {
49555
49566
  const base = `mingo-chat-${source}-v${CHAT_STORAGE_VERSION}`;
49556
49567
  const auth = _chunkSR6LEWCFcjs.getEmbedProxyAuth.call(void 0, );
49557
- if (_optionalChain([auth, 'optionalAccess', _1251 => _1251.email])) {
49568
+ if (_optionalChain([auth, 'optionalAccess', _1255 => _1255.email])) {
49558
49569
  return `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}`;
49559
49570
  }
49560
49571
  return base;
@@ -49609,7 +49620,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
49609
49620
  const { active = true } = runtimeOptions;
49610
49621
  const runtime = _chunk2B6773QMcjs.useRequiredChatRuntime.call(void 0, );
49611
49622
  const source = runtime.source || DEFAULT_CHAT_SOURCE;
49612
- const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1252 => _1252.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
49623
+ const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1256 => _1256.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
49613
49624
  const persistedRef = _react.useRef.call(void 0, null);
49614
49625
  if (persistedRef.current === null) {
49615
49626
  pruneStaleChatStorage(source);
@@ -49714,7 +49725,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
49714
49725
  const lookupIdx = sendIdx >= 0 ? sendIdx : 0;
49715
49726
  sources = sourcesMapRef.current.get(lookupIdx);
49716
49727
  chatRefs = _nullishCoalesce(m.chatRefs, () => ( refsMapRef.current.get(lookupIdx)));
49717
- scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access', _1253 => _1253.current, 'access', _1254 => _1254.get, 'call', _1255 => _1255(lookupIdx), 'optionalAccess', _1256 => _1256.scrollAnchor]), () => ( void 0));
49728
+ scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access', _1257 => _1257.current, 'access', _1258 => _1258.get, 'call', _1259 => _1259(lookupIdx), 'optionalAccess', _1260 => _1260.scrollAnchor]), () => ( void 0));
49718
49729
  }
49719
49730
  return {
49720
49731
  id: m.id,
@@ -49762,7 +49773,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
49762
49773
  );
49763
49774
  return;
49764
49775
  }
49765
- const refSlug = typeof _optionalChain([reference, 'access', _1257 => _1257.metadata, 'optionalAccess', _1258 => _1258.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
49776
+ const refSlug = typeof _optionalChain([reference, 'access', _1261 => _1261.metadata, 'optionalAccess', _1262 => _1262.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
49766
49777
  const queryValue = refSlug || sanitizeTitleForChat(reference.title) || reference.id;
49767
49778
  const escaped = queryValue.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
49768
49779
  const text = `/${cmdId} display "${escaped}"`;
@@ -49834,18 +49845,18 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
49834
49845
  clearMessages,
49835
49846
  streamingPhase,
49836
49847
  /** Provider key for the lib's `<ModelDisplay>` icon. */
49837
- currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1259 => _1259.provider]), () => ( null)),
49838
- currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1260 => _1260.modelLabel]), () => ( null)),
49839
- currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1261 => _1261.contextWindowMaxTokens]), () => ( null)),
49848
+ currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1263 => _1263.provider]), () => ( null)),
49849
+ currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1264 => _1264.modelLabel]), () => ( null)),
49850
+ currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1265 => _1265.contextWindowMaxTokens]), () => ( null)),
49840
49851
  /** Input tokens (known after server's message_start frame; null until). */
49841
- currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1262 => _1262.inputTokens]), () => ( null)),
49852
+ currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1266 => _1266.inputTokens]), () => ( null)),
49842
49853
  /** Output tokens (known only after server's trailing usage frame). */
49843
- currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1263 => _1263.outputTokens]), () => ( null)),
49854
+ currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1267 => _1267.outputTokens]), () => ( null)),
49844
49855
  /** Cache hit % (read / total-input × 100). null during streaming. */
49845
- currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1264 => _1264.cacheHitRatePct]), () => ( null)),
49856
+ currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1268 => _1268.cacheHitRatePct]), () => ( null)),
49846
49857
  /** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
49847
49858
  * token counts). null until the trailing usage frame lands. */
49848
- currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1265 => _1265.breakdown]), () => ( null)),
49859
+ currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1269 => _1269.breakdown]), () => ( null)),
49849
49860
  // ─── Dialog management — stubs for v1 ────────────────────────────────
49850
49861
  // Guide mode currently keeps its history in `localStorage` opaquely
49851
49862
  // under the hood (`runtime.source` namespaced key). Surfacing that
@@ -49903,15 +49914,15 @@ var noopRejectRequest = async (_id, _reason) => {
49903
49914
 
49904
49915
  // src/components/chat/utils/process-historical-messages.ts
49905
49916
  function getOwnerDisplayName(owner) {
49906
- if (_optionalChain([owner, 'optionalAccess', _1266 => _1266.type]) === OWNER_TYPE.ADMIN && owner.user) {
49917
+ if (_optionalChain([owner, 'optionalAccess', _1270 => _1270.type]) === OWNER_TYPE.ADMIN && owner.user) {
49907
49918
  const { firstName, lastName } = owner.user;
49908
49919
  const name = [firstName, lastName].filter(Boolean).join(" ");
49909
49920
  if (name) return name;
49910
49921
  }
49911
- return _optionalChain([owner, 'optionalAccess', _1267 => _1267.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
49922
+ return _optionalChain([owner, 'optionalAccess', _1271 => _1271.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
49912
49923
  }
49913
49924
  function getOwnerAvatar(owner) {
49914
- return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _1268 => _1268.user, 'optionalAccess', _1269 => _1269.image, 'optionalAccess', _1270 => _1270.imageUrl]), () => ( void 0));
49925
+ return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _1272 => _1272.user, 'optionalAccess', _1273 => _1273.image, 'optionalAccess', _1274 => _1274.imageUrl]), () => ( void 0));
49915
49926
  }
49916
49927
  function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
49917
49928
  messageDataArray.forEach((data) => {
@@ -49974,14 +49985,14 @@ function processHistoricalMessages(messages, options = {}) {
49974
49985
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
49975
49986
  return;
49976
49987
  }
49977
- const isUserMessage = _optionalChain([msg, 'access', _1271 => _1271.owner, 'optionalAccess', _1272 => _1272.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1273 => _1273.owner, 'optionalAccess', _1274 => _1274.type]) === OWNER_TYPE.ADMIN;
49988
+ const isUserMessage = _optionalChain([msg, 'access', _1275 => _1275.owner, 'optionalAccess', _1276 => _1276.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1277 => _1277.owner, 'optionalAccess', _1278 => _1278.type]) === OWNER_TYPE.ADMIN;
49978
49989
  if (isUserMessage) {
49979
49990
  flushAssistantMessage();
49980
- const userAuthorType = _optionalChain([msg, 'access', _1275 => _1275.owner, 'optionalAccess', _1276 => _1276.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
49991
+ const userAuthorType = _optionalChain([msg, 'access', _1279 => _1279.owner, 'optionalAccess', _1280 => _1280.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
49981
49992
  messageDataArray.forEach((data) => {
49982
49993
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
49983
49994
  const rawContext = data.contextItems;
49984
- const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _1277 => _1277.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _1278 => _1278.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
49995
+ const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _1281 => _1281.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _1282 => _1282.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
49985
49996
  processedMessages.push({
49986
49997
  id: msg.id,
49987
49998
  role: "user",
@@ -50005,7 +50016,7 @@ function processHistoricalMessages(messages, options = {}) {
50005
50016
  });
50006
50017
  const nextMsg = messages[index + 1];
50007
50018
  const isLastMessage = index === messages.length - 1;
50008
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1279 => _1279.owner, 'optionalAccess', _1280 => _1280.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1281 => _1281.owner, 'optionalAccess', _1282 => _1282.type]) === OWNER_TYPE.ADMIN);
50019
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1283 => _1283.owner, 'optionalAccess', _1284 => _1284.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1285 => _1285.owner, 'optionalAccess', _1286 => _1286.type]) === OWNER_TYPE.ADMIN);
50009
50020
  if (isLastMessage || nextIsFromUser) {
50010
50021
  flushAssistantMessage();
50011
50022
  }
@@ -50115,7 +50126,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
50115
50126
  }
50116
50127
  }
50117
50128
  } else {
50118
- _optionalChain([escalatedApprovals, 'optionalAccess', _1283 => _1283.set, 'call', _1284 => _1284(data.approvalRequestId, {
50129
+ _optionalChain([escalatedApprovals, 'optionalAccess', _1287 => _1287.set, 'call', _1288 => _1288(data.approvalRequestId, {
50119
50130
  command: data.command || "",
50120
50131
  explanation: data.explanation,
50121
50132
  approvalType,
@@ -50129,8 +50140,8 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
50129
50140
  const existingStatus = approvalStatuses[data.approvalRequestId];
50130
50141
  const status = existingStatus || (data.approved ? "approved" : "rejected");
50131
50142
  const resolvedByName = "resolvedByName" in data ? data.resolvedByName : void 0;
50132
- const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _1285 => _1285.get, 'call', _1286 => _1286(data.approvalRequestId)]);
50133
- if (_optionalChain([escalatedData, 'optionalAccess', _1287 => _1287.toolCalls]) && escalatedData.toolCalls.length > 0) {
50143
+ const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _1289 => _1289.get, 'call', _1290 => _1290(data.approvalRequestId)]);
50144
+ if (_optionalChain([escalatedData, 'optionalAccess', _1291 => _1291.toolCalls]) && escalatedData.toolCalls.length > 0) {
50134
50145
  if (batchApprovalsEnabled) {
50135
50146
  accumulator.addApprovalBatch(
50136
50147
  data.approvalRequestId,
@@ -50152,7 +50163,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
50152
50163
  );
50153
50164
  }
50154
50165
  }
50155
- _optionalChain([escalatedApprovals, 'optionalAccess', _1288 => _1288.delete, 'call', _1289 => _1289(data.approvalRequestId)]);
50166
+ _optionalChain([escalatedApprovals, 'optionalAccess', _1292 => _1292.delete, 'call', _1293 => _1293(data.approvalRequestId)]);
50156
50167
  break;
50157
50168
  }
50158
50169
  if (escalatedData) {
@@ -50161,7 +50172,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
50161
50172
  explanation: escalatedData.explanation,
50162
50173
  approvalType: escalatedData.approvalType
50163
50174
  });
50164
- _optionalChain([escalatedApprovals, 'optionalAccess', _1290 => _1290.delete, 'call', _1291 => _1291(data.approvalRequestId)]);
50175
+ _optionalChain([escalatedApprovals, 'optionalAccess', _1294 => _1294.delete, 'call', _1295 => _1295(data.approvalRequestId)]);
50165
50176
  }
50166
50177
  const before = accumulator.getSegments();
50167
50178
  const after = accumulator.updateApprovalStatus(data.approvalRequestId, status, resolvedByName);
@@ -50177,9 +50188,9 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
50177
50188
  case MESSAGE_TYPE.ERROR:
50178
50189
  if ("error" in data) {
50179
50190
  let message2;
50180
- if ("details" in data && _optionalChain([data, 'optionalAccess', _1292 => _1292.details])) {
50191
+ if ("details" in data && _optionalChain([data, 'optionalAccess', _1296 => _1296.details])) {
50181
50192
  try {
50182
- message2 = _optionalChain([JSON, 'access', _1293 => _1293.parse, 'call', _1294 => _1294(data.details), 'optionalAccess', _1295 => _1295.error, 'optionalAccess', _1296 => _1296.message]);
50193
+ message2 = _optionalChain([JSON, 'access', _1297 => _1297.parse, 'call', _1298 => _1298(data.details), 'optionalAccess', _1299 => _1299.error, 'optionalAccess', _1300 => _1300.message]);
50183
50194
  } catch (e67) {
50184
50195
  message2 = data.details;
50185
50196
  }
@@ -50262,14 +50273,14 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
50262
50273
  pushStandaloneMessages(processedMessages, msg, messageDataArray);
50263
50274
  return;
50264
50275
  }
50265
- const isUserMessage = _optionalChain([msg, 'access', _1297 => _1297.owner, 'optionalAccess', _1298 => _1298.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1299 => _1299.owner, 'optionalAccess', _1300 => _1300.type]) === OWNER_TYPE.ADMIN;
50276
+ const isUserMessage = _optionalChain([msg, 'access', _1301 => _1301.owner, 'optionalAccess', _1302 => _1302.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1303 => _1303.owner, 'optionalAccess', _1304 => _1304.type]) === OWNER_TYPE.ADMIN;
50266
50277
  if (isUserMessage) {
50267
50278
  flushAssistantMessage();
50268
- const userAuthorType = _optionalChain([msg, 'access', _1301 => _1301.owner, 'optionalAccess', _1302 => _1302.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
50279
+ const userAuthorType = _optionalChain([msg, 'access', _1305 => _1305.owner, 'optionalAccess', _1306 => _1306.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
50269
50280
  messageDataArray.forEach((data) => {
50270
50281
  if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
50271
50282
  const rawContext = data.contextItems;
50272
- const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _1303 => _1303.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _1304 => _1304.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
50283
+ const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _1307 => _1307.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _1308 => _1308.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
50273
50284
  processedMessages.push({
50274
50285
  id: msg.id,
50275
50286
  role: "user",
@@ -50293,7 +50304,7 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
50293
50304
  });
50294
50305
  const nextMsg = messages[index + 1];
50295
50306
  const isLastMessage = index === messages.length - 1;
50296
- const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1305 => _1305.owner, 'optionalAccess', _1306 => _1306.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1307 => _1307.owner, 'optionalAccess', _1308 => _1308.type]) === OWNER_TYPE.ADMIN);
50307
+ const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1309 => _1309.owner, 'optionalAccess', _1310 => _1310.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1311 => _1311.owner, 'optionalAccess', _1312 => _1312.type]) === OWNER_TYPE.ADMIN);
50297
50308
  if (isLastMessage || nextIsFromUser) {
50298
50309
  flushAssistantMessage();
50299
50310
  }
@@ -50392,6 +50403,9 @@ function useNatsChatAdapter(config, options = {}) {
50392
50403
  const dialogId = isManagedMode ? internalDialogId : controlledDialogId !== void 0 ? controlledDialogId : null;
50393
50404
  const [messages, setMessages] = _react.useState.call(void 0, []);
50394
50405
  const [streamingPhase, setStreamingPhase] = _react.useState.call(void 0, "idle");
50406
+ const streamingPhaseRef = _react.useRef.call(void 0, streamingPhase);
50407
+ streamingPhaseRef.current = streamingPhase;
50408
+ const suppressAgentBusyRef = _react.useRef.call(void 0, false);
50395
50409
  const [approvalStatuses, setApprovalStatuses] = _react.useState.call(void 0, {});
50396
50410
  const [dialogs, setDialogs] = _react.useState.call(void 0, []);
50397
50411
  const [dialogsNextCursor, setDialogsNextCursor] = _react.useState.call(void 0, null);
@@ -50409,6 +50423,8 @@ function useNatsChatAdapter(config, options = {}) {
50409
50423
  async (requestId) => {
50410
50424
  if (!approveRequestCallback) return;
50411
50425
  setApprovalStatuses((prev) => ({ ...prev, [requestId]: "approved" }));
50426
+ const tookLock = streamingPhaseRef.current === "idle";
50427
+ setStreamingPhase((p) => p === "idle" ? "thinking" : p);
50412
50428
  try {
50413
50429
  await approveRequestCallback(requestId);
50414
50430
  } catch (err) {
@@ -50417,6 +50433,9 @@ function useNatsChatAdapter(config, options = {}) {
50417
50433
  delete next[requestId];
50418
50434
  return next;
50419
50435
  });
50436
+ if (tookLock) {
50437
+ setStreamingPhase((p) => p === "thinking" ? "idle" : p);
50438
+ }
50420
50439
  console.error("[useNatsChatAdapter] approveRequest failed:", err);
50421
50440
  }
50422
50441
  },
@@ -50457,6 +50476,18 @@ function useNatsChatAdapter(config, options = {}) {
50457
50476
  },
50458
50477
  onStreamStart: () => setStreamingPhase("streaming"),
50459
50478
  onStreamEnd: () => setStreamingPhase("idle"),
50479
+ // Agent is executing (approved) commands outside an open stream — keep
50480
+ // the composer locked exactly like the in-stream phases. An open stream
50481
+ // keeps ownership: only 'idle' upgrades to 'thinking'. Suppressed during
50482
+ // initial catchup so a replayed dead tail can't lock a finished dialog.
50483
+ onAgentBusy: () => {
50484
+ if (suppressAgentBusyRef.current) return;
50485
+ setStreamingPhase((p) => p === "idle" ? "thinking" : p);
50486
+ },
50487
+ // Terminal turn failures can arrive without a MESSAGE_END; unlock the
50488
+ // composer unless an open stream still owns the phase (in-stream errors
50489
+ // are followed by the stream's own MESSAGE_END).
50490
+ onError: () => setStreamingPhase((p) => p === "streaming" ? p : "idle"),
50460
50491
  // Live cumulative token counter for the active dialog — drives the
50461
50492
  // composer's "X / Y tokens used" tail as the assistant streams.
50462
50493
  onTokenUsage: (data) => setDialogTokenUsage(data),
@@ -50472,6 +50503,8 @@ function useNatsChatAdapter(config, options = {}) {
50472
50503
  onSegmentsUpdate: (segments) => callbacksRef.current.onSegmentsUpdate(segments),
50473
50504
  onStreamStart: () => callbacksRef.current.onStreamStart(),
50474
50505
  onStreamEnd: () => callbacksRef.current.onStreamEnd(),
50506
+ onAgentBusy: () => callbacksRef.current.onAgentBusy(),
50507
+ onError: () => callbacksRef.current.onError(),
50475
50508
  onTokenUsage: (data) => callbacksRef.current.onTokenUsage(data),
50476
50509
  onMetadata: (meta) => callbacksRef.current.onMetadata(meta),
50477
50510
  onApprove: accumApprove,
@@ -50561,10 +50594,13 @@ function useNatsChatAdapter(config, options = {}) {
50561
50594
  }, [active, dialogId, loadDialogHistory, resetAccumulator]);
50562
50595
  _react.useEffect.call(void 0, () => {
50563
50596
  if (!active || !dialogId) return;
50597
+ suppressAgentBusyRef.current = true;
50564
50598
  resetChunkTracking();
50565
50599
  startInitialBuffering();
50566
50600
  catchUpChunks().catch((err) => {
50567
50601
  console.error("[useNatsChatAdapter] initial catchup failed:", err);
50602
+ }).finally(() => {
50603
+ suppressAgentBusyRef.current = false;
50568
50604
  });
50569
50605
  }, [active, dialogId, resetChunkTracking, startInitialBuffering, catchUpChunks]);
50570
50606
  useNatsDialogSubscription({
@@ -50629,7 +50665,7 @@ function useNatsChatAdapter(config, options = {}) {
50629
50665
  }, [active, fetchDialogs, loadDialogsPage]);
50630
50666
  const sendMessage = _react.useCallback.call(void 0,
50631
50667
  async (text, sendOptions) => {
50632
- const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _1309 => _1309.hidden]), () => ( false));
50668
+ const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _1313 => _1313.hidden]), () => ( false));
50633
50669
  setMessages((prev) => [
50634
50670
  ...prev,
50635
50671
  {
@@ -50793,11 +50829,11 @@ function useNatsChatAdapter(config, options = {}) {
50793
50829
  // Tokens: live `token_usage` frame / dialog snapshot (`dialogTokenUsage`).
50794
50830
  // contextWindow uses the dialog's `contextSize` (the "X / Y" denominator,
50795
50831
  // matching the /mingo page). cacheHitRate/breakdown are SSE-only → null.
50796
- currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1310 => _1310.provider]), () => ( modelProvider)), () => ( null)),
50797
- currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1311 => _1311.modelLabel]), () => ( modelLabel)), () => ( null)),
50798
- currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1312 => _1312.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _1313 => _1313.contextWindowMaxTokens]))), () => ( null)),
50799
- currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1314 => _1314.inputTokensSize]), () => ( null)),
50800
- currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1315 => _1315.outputTokensSize]), () => ( null)),
50832
+ currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1314 => _1314.provider]), () => ( modelProvider)), () => ( null)),
50833
+ currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1315 => _1315.modelLabel]), () => ( modelLabel)), () => ( null)),
50834
+ currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1316 => _1316.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _1317 => _1317.contextWindowMaxTokens]))), () => ( null)),
50835
+ currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1318 => _1318.inputTokensSize]), () => ( null)),
50836
+ currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1319 => _1319.outputTokensSize]), () => ( null)),
50801
50837
  currentCacheHitRatePct: null,
50802
50838
  currentUsageBreakdown: null,
50803
50839
  // Dialog management
@@ -51045,7 +51081,7 @@ function extractIncompleteMessageState(lastMessage) {
51045
51081
  break;
51046
51082
  case "approval_batch": {
51047
51083
  const allDone = !!segment.data.executions && segment.data.toolCalls.every(
51048
- (c) => _optionalChain([segment, 'access', _1316 => _1316.data, 'access', _1317 => _1317.executions, 'optionalAccess', _1318 => _1318[c.toolExecutionRequestId], 'optionalAccess', _1319 => _1319.status]) === "done"
51084
+ (c) => _optionalChain([segment, 'access', _1320 => _1320.data, 'access', _1321 => _1321.executions, 'optionalAccess', _1322 => _1322[c.toolExecutionRequestId], 'optionalAccess', _1323 => _1323.status]) === "done"
51049
51085
  );
51050
51086
  if (segment.status !== "rejected" && !allDone) {
51051
51087
  hasIncompleteState = true;
@@ -51113,20 +51149,20 @@ function mergeHistoryWithRealtime(input) {
51113
51149
  const seqCoverageKnown = realtimeSeenStreamSeq > 0 && historyMaxStreamSeq > 0;
51114
51150
  const historyCoversRealtime = seqCoverageKnown ? historyMaxStreamSeq >= realtimeSeenStreamSeq : null;
51115
51151
  const trailing = processedHistory[processedHistory.length - 1];
51116
- const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _1320 => _1320.role]) === "assistant" ? trailing : null;
51117
- const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _1321 => _1321.content, 'access', _1322 => _1322.find, 'call', _1323 => _1323((s) => s.type === "approval_batch"), 'optionalAccess', _1324 => _1324.data, 'optionalAccess', _1325 => _1325.approvalRequestId]), () => ( null)) : null;
51152
+ const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _1324 => _1324.role]) === "assistant" ? trailing : null;
51153
+ const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _1325 => _1325.content, 'access', _1326 => _1326.find, 'call', _1327 => _1327((s) => s.type === "approval_batch"), 'optionalAccess', _1328 => _1328.data, 'optionalAccess', _1329 => _1329.approvalRequestId]), () => ( null)) : null;
51118
51154
  let processedToUse = processedHistory;
51119
51155
  const pinnedSyntheticIds = /* @__PURE__ */ new Set();
51120
51156
  const droppedSyntheticIds = /* @__PURE__ */ new Set();
51121
51157
  if (historyBatchId) {
51122
51158
  const batchTwins = existingMessages.filter(
51123
51159
  (m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some(
51124
- (s) => s.type === "approval_batch" && _optionalChain([s, 'access', _1326 => _1326.data, 'optionalAccess', _1327 => _1327.approvalRequestId]) === historyBatchId
51160
+ (s) => s.type === "approval_batch" && _optionalChain([s, 'access', _1330 => _1330.data, 'optionalAccess', _1331 => _1331.approvalRequestId]) === historyBatchId
51125
51161
  )
51126
51162
  );
51127
51163
  const existingWithSameBatch = _nullishCoalesce(batchTwins.find((m) => m.id === streamingMessageId), () => ( batchTwins[batchTwins.length - 1]));
51128
51164
  if (existingWithSameBatch && Array.isArray(existingWithSameBatch.content)) {
51129
- const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _1328 => _1328.content])) ? historyTrailingAssistant.content.length : 0;
51165
+ const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _1332 => _1332.content])) ? historyTrailingAssistant.content.length : 0;
51130
51166
  const realtimeSize = existingWithSameBatch.content.length;
51131
51167
  if (existingWithSameBatch.id === streamingMessageId || realtimeSize > histSize) {
51132
51168
  processedToUse = processedHistory.slice(0, -1);
@@ -51142,16 +51178,16 @@ function mergeHistoryWithRealtime(input) {
51142
51178
  if (pinnedSyntheticIds.has(m.id)) return true;
51143
51179
  if (droppedSyntheticIds.has(m.id)) return false;
51144
51180
  if (processedIds.has(m.id)) return false;
51145
- if (_optionalChain([rawHistoryIds, 'optionalAccess', _1329 => _1329.has, 'call', _1330 => _1330(m.id)])) return false;
51181
+ if (_optionalChain([rawHistoryIds, 'optionalAccess', _1333 => _1333.has, 'call', _1334 => _1334(m.id)])) return false;
51146
51182
  if (m.role === "user" && m.id.startsWith("optimistic-") && typeof m.content === "string") {
51147
- const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _1331 => _1331.timestamp, 'optionalAccess', _1332 => _1332.getTime, 'call', _1333 => _1333()]), () => ( 0))) <= historyFetchedAt;
51183
+ const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _1335 => _1335.timestamp, 'optionalAccess', _1336 => _1336.getTime, 'call', _1337 => _1337()]), () => ( 0))) <= historyFetchedAt;
51148
51184
  return !(canBeInSnapshot && processedToUse.some((pm) => pm.role === "user" && pm.content === m.content));
51149
51185
  }
51150
51186
  if (isSyntheticRealtimeId(m.id) && m.id !== streamingMessageId) {
51151
51187
  if (m.role === "assistant" && trailingAssistantText && assistantAnswerText(m.content) === trailingAssistantText) {
51152
51188
  return false;
51153
51189
  }
51154
- const covered = typeof m.streamSeq === "number" && historyMaxStreamSeq > 0 ? historyMaxStreamSeq >= m.streamSeq : historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _1334 => _1334.timestamp, 'optionalAccess', _1335 => _1335.getTime, 'call', _1336 => _1336()]), () => ( 0))) <= historyFetchedAt;
51190
+ const covered = typeof m.streamSeq === "number" && historyMaxStreamSeq > 0 ? historyMaxStreamSeq >= m.streamSeq : historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _1338 => _1338.timestamp, 'optionalAccess', _1339 => _1339.getTime, 'call', _1340 => _1340()]), () => ( 0))) <= historyFetchedAt;
51155
51191
  if (covered) return false;
51156
51192
  }
51157
51193
  return true;
@@ -51371,7 +51407,7 @@ function useChatDialogManager({
51371
51407
  const handleConfirmRestore = _react.useCallback.call(void 0, async () => {
51372
51408
  if (restoreTarget) {
51373
51409
  try {
51374
- await _optionalChain([unarchiveDialog, 'optionalCall', _1337 => _1337(restoreTarget.id)]);
51410
+ await _optionalChain([unarchiveDialog, 'optionalCall', _1341 => _1341(restoreTarget.id)]);
51375
51411
  } catch (err) {
51376
51412
  console.error("[useChatDialogManager] unarchive failed:", err);
51377
51413
  return;
@@ -51789,7 +51825,7 @@ function EmbeddableChatInner({
51789
51825
  }),
51790
51826
  [commandsUrl]
51791
51827
  );
51792
- const userName = _optionalChain([identityUser, 'optionalAccess', _1338 => _1338.firstName, 'optionalAccess', _1339 => _1339.trim, 'call', _1340 => _1340()]) || _optionalChain([identityUser, 'optionalAccess', _1341 => _1341.name, 'optionalAccess', _1342 => _1342.split, 'call', _1343 => _1343(" "), 'access', _1344 => _1344[0], 'optionalAccess', _1345 => _1345.trim, 'call', _1346 => _1346()]) || void 0;
51828
+ const userName = _optionalChain([identityUser, 'optionalAccess', _1342 => _1342.firstName, 'optionalAccess', _1343 => _1343.trim, 'call', _1344 => _1344()]) || _optionalChain([identityUser, 'optionalAccess', _1345 => _1345.name, 'optionalAccess', _1346 => _1346.split, 'call', _1347 => _1347(" "), 'access', _1348 => _1348[0], 'optionalAccess', _1349 => _1349.trim, 'call', _1350 => _1350()]) || void 0;
51793
51829
  const effectiveModes = _react.useMemo.call(void 0, () => {
51794
51830
  if (modes) return modes;
51795
51831
  const guideOptions = tableIdForDocumentType ? { tableIdForDocumentType } : {};
@@ -51798,19 +51834,19 @@ function EmbeddableChatInner({
51798
51834
  const mingoCaps = _react.useMemo.call(void 0, () => {
51799
51835
  if (mingoState) {
51800
51836
  return {
51801
- canRename: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1347 => _1347.canRename]), () => ( false)),
51802
- canArchive: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1348 => _1348.canArchive]), () => ( false)),
51803
- fetchArchivedDialogs: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1349 => _1349.fetchArchivedDialogs]),
51804
- unarchiveDialog: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1350 => _1350.unarchiveDialog]),
51805
- searchQuery: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1351 => _1351.searchQuery]),
51806
- onSearchChange: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1352 => _1352.onSearchChange])
51837
+ canRename: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1351 => _1351.canRename]), () => ( false)),
51838
+ canArchive: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1352 => _1352.canArchive]), () => ( false)),
51839
+ fetchArchivedDialogs: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1353 => _1353.fetchArchivedDialogs]),
51840
+ unarchiveDialog: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1354 => _1354.unarchiveDialog]),
51841
+ searchQuery: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1355 => _1355.searchQuery]),
51842
+ onSearchChange: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1356 => _1356.onSearchChange])
51807
51843
  };
51808
51844
  }
51809
51845
  return {
51810
- canRename: !!_optionalChain([effectiveModes, 'access', _1353 => _1353.mingo, 'optionalAccess', _1354 => _1354.renameDialog]),
51811
- canArchive: !!_optionalChain([effectiveModes, 'access', _1355 => _1355.mingo, 'optionalAccess', _1356 => _1356.archiveDialog]),
51812
- fetchArchivedDialogs: _optionalChain([effectiveModes, 'access', _1357 => _1357.mingo, 'optionalAccess', _1358 => _1358.fetchArchivedDialogs]),
51813
- unarchiveDialog: _optionalChain([effectiveModes, 'access', _1359 => _1359.mingo, 'optionalAccess', _1360 => _1360.unarchiveDialog]),
51846
+ canRename: !!_optionalChain([effectiveModes, 'access', _1357 => _1357.mingo, 'optionalAccess', _1358 => _1358.renameDialog]),
51847
+ canArchive: !!_optionalChain([effectiveModes, 'access', _1359 => _1359.mingo, 'optionalAccess', _1360 => _1360.archiveDialog]),
51848
+ fetchArchivedDialogs: _optionalChain([effectiveModes, 'access', _1361 => _1361.mingo, 'optionalAccess', _1362 => _1362.fetchArchivedDialogs]),
51849
+ unarchiveDialog: _optionalChain([effectiveModes, 'access', _1363 => _1363.mingo, 'optionalAccess', _1364 => _1364.unarchiveDialog]),
51814
51850
  searchQuery: void 0,
51815
51851
  onSearchChange: void 0
51816
51852
  };
@@ -51824,7 +51860,7 @@ function EmbeddableChatInner({
51824
51860
  if (controlledActiveMode === void 0) {
51825
51861
  setUncontrolledActiveMode(next);
51826
51862
  }
51827
- _optionalChain([onActiveModeChange, 'optionalCall', _1361 => _1361(next)]);
51863
+ _optionalChain([onActiveModeChange, 'optionalCall', _1365 => _1365(next)]);
51828
51864
  },
51829
51865
  [controlledActiveMode, onActiveModeChange]
51830
51866
  );
@@ -51846,7 +51882,7 @@ function EmbeddableChatInner({
51846
51882
  const effectiveQuickActions = emptyStateUrl ? emptyStateConfig.quickActions : [];
51847
51883
  const effectiveAssistantName = emptyStateConfig.name;
51848
51884
  const effectiveAssistantIcon = emptyStateConfig.icon;
51849
- const headerAssistantName = _nullishCoalesce(effectiveAssistantName, () => ( (typeof _optionalChain([guideWelcome, 'optionalAccess', _1362 => _1362.title]) === "string" ? guideWelcome.title : null)));
51885
+ const headerAssistantName = _nullishCoalesce(effectiveAssistantName, () => ( (typeof _optionalChain([guideWelcome, 'optionalAccess', _1366 => _1366.title]) === "string" ? guideWelcome.title : null)));
51850
51886
  const {
51851
51887
  messages: rawMessages,
51852
51888
  isLoading: chatLoading,
@@ -51886,7 +51922,7 @@ function EmbeddableChatInner({
51886
51922
  if (activeMode !== "guide" || guidePromptSentRef.current) return;
51887
51923
  guidePromptSentRef.current = true;
51888
51924
  void sendMessage(guidePendingPrompt);
51889
- _optionalChain([onGuidePromptConsumed, 'optionalCall', _1363 => _1363()]);
51925
+ _optionalChain([onGuidePromptConsumed, 'optionalCall', _1367 => _1367()]);
51890
51926
  }, [guidePendingPrompt, activeMode, sendMessage, onGuidePromptConsumed]);
51891
51927
  const {
51892
51928
  attachments: stagedAttachments,
@@ -51897,7 +51933,7 @@ function EmbeddableChatInner({
51897
51933
  clear: clearAttachments
51898
51934
  } = useChatAttachments();
51899
51935
  const { panelRef: galleryPanelRef, modal: galleryModal } = useChatAttachmentImageGallery();
51900
- const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1364 => _1364.maxItems]), () => ( 10));
51936
+ const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1368 => _1368.maxItems]), () => ( 10));
51901
51937
  const contextPickerForMode = activeMode === "mingo" ? contextPicker : void 0;
51902
51938
  const [contextItems, setContextItems] = _react.useState.call(void 0, []);
51903
51939
  const [contextPickerOpen, setContextPickerOpen] = _react.useState.call(void 0, false);
@@ -51914,10 +51950,10 @@ function EmbeddableChatInner({
51914
51950
  }, [activeDialogId, activeMode]);
51915
51951
  const mentionMarkerByType = _react.useMemo.call(void 0, () => {
51916
51952
  const m = /* @__PURE__ */ new Map();
51917
- for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1365 => _1365.entityTypes]), () => ( []))) if (t.marker) m.set(t.type, t.marker);
51953
+ for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1369 => _1369.entityTypes]), () => ( []))) if (t.marker) m.set(t.type, t.marker);
51918
51954
  return m;
51919
- }, [_optionalChain([contextPicker, 'optionalAccess', _1366 => _1366.entityTypes])]);
51920
- const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess', _1367 => _1367.entityTypes]);
51955
+ }, [_optionalChain([contextPicker, 'optionalAccess', _1370 => _1370.entityTypes])]);
51956
+ const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess', _1371 => _1371.entityTypes]);
51921
51957
  const resolveContextIcon = _react.useMemo.call(void 0, () => {
51922
51958
  const byType = /* @__PURE__ */ new Map();
51923
51959
  for (const t of _nullishCoalesce(contextEntityTypes, () => ( []))) byType.set(t.type, t.icon);
@@ -51929,7 +51965,7 @@ function EmbeddableChatInner({
51929
51965
  if (mentionActiveRef.current) {
51930
51966
  if (contextItems.some((p) => `${p.type}:${p.id}` === key)) return;
51931
51967
  if (contextItems.length >= contextMaxItems) return;
51932
- _optionalChain([chatInputRef, 'access', _1368 => _1368.current, 'optionalAccess', _1369 => _1369.commitMention, 'call', _1370 => _1370(mentionTokenOf(key, mentionMarkerByType), {
51968
+ _optionalChain([chatInputRef, 'access', _1372 => _1372.current, 'optionalAccess', _1373 => _1373.commitMention, 'call', _1374 => _1374(mentionTokenOf(key, mentionMarkerByType), {
51933
51969
  label: item.label,
51934
51970
  icon: resolveContextIcon(item)
51935
51971
  })]);
@@ -51951,9 +51987,9 @@ function EmbeddableChatInner({
51951
51987
  setContextItems((prev) => prev.filter((p) => `${p.type}:${p.id}` !== key));
51952
51988
  if (mentionKeysRef.current.has(key)) {
51953
51989
  mentionKeysRef.current.delete(key);
51954
- const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _1371 => _1371.current, 'optionalAccess', _1372 => _1372.getValue, 'call', _1373 => _1373()]), () => ( ""));
51990
+ const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _1375 => _1375.current, 'optionalAccess', _1376 => _1376.getValue, 'call', _1377 => _1377()]), () => ( ""));
51955
51991
  const next = cur.replace(`@${mentionTokenOf(key, mentionMarkerByType)}`, "").replace(/\s{2,}/g, " ").trimStart();
51956
- _optionalChain([chatInputRef, 'access', _1374 => _1374.current, 'optionalAccess', _1375 => _1375.setValue, 'call', _1376 => _1376(next)]);
51992
+ _optionalChain([chatInputRef, 'access', _1378 => _1378.current, 'optionalAccess', _1379 => _1379.setValue, 'call', _1380 => _1380(next)]);
51957
51993
  }
51958
51994
  }, [mentionMarkerByType]);
51959
51995
  const handleContextValueChange = _react.useCallback.call(void 0, (value) => {
@@ -51970,7 +52006,7 @@ function EmbeddableChatInner({
51970
52006
  }, []);
51971
52007
  const closeContextPicker = _react.useCallback.call(void 0, () => {
51972
52008
  if (mentionActiveRef.current) {
51973
- _optionalChain([chatInputRef, 'access', _1377 => _1377.current, 'optionalAccess', _1378 => _1378.removeMentionTrigger, 'call', _1379 => _1379()]);
52009
+ _optionalChain([chatInputRef, 'access', _1381 => _1381.current, 'optionalAccess', _1382 => _1382.removeMentionTrigger, 'call', _1383 => _1383()]);
51974
52010
  }
51975
52011
  setContextPickerOpen(false);
51976
52012
  setMentionQuery(null);
@@ -52004,8 +52040,8 @@ function EmbeddableChatInner({
52004
52040
  []
52005
52041
  );
52006
52042
  const timestampCacheRef = _react.useRef.call(void 0, /* @__PURE__ */ new Map());
52007
- const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess', _1380 => _1380.firstName]), _optionalChain([identityUser, 'optionalAccess', _1381 => _1381.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([identityUser, 'optionalAccess', _1382 => _1382.name, 'optionalAccess', _1383 => _1383.trim, 'call', _1384 => _1384()]) || void 0 : void 0;
52008
- const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess', _1385 => _1385.avatarUrl, 'optionalAccess', _1386 => _1386.trim, 'call', _1387 => _1387()]) || void 0 : void 0;
52043
+ const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess', _1384 => _1384.firstName]), _optionalChain([identityUser, 'optionalAccess', _1385 => _1385.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([identityUser, 'optionalAccess', _1386 => _1386.name, 'optionalAccess', _1387 => _1387.trim, 'call', _1388 => _1388()]) || void 0 : void 0;
52044
+ const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess', _1389 => _1389.avatarUrl, 'optionalAccess', _1390 => _1390.trim, 'call', _1391 => _1391()]) || void 0 : void 0;
52009
52045
  const messages = _react.useMemo.call(void 0, () => {
52010
52046
  const cache = timestampCacheRef.current;
52011
52047
  const seenIds = /* @__PURE__ */ new Set();
@@ -52183,9 +52219,9 @@ function EmbeddableChatInner({
52183
52219
  const lastAssistantMsg = [...rawMessages].reverse().find((m) => m.role === "assistant");
52184
52220
  const lastSources = _react.useMemo.call(void 0, () => {
52185
52221
  if (chatLoading) return void 0;
52186
- const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _1388 => _1388.sources]);
52222
+ const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _1392 => _1392.sources]);
52187
52223
  if (!sources || sources.length === 0) return void 0;
52188
- const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _1389 => _1389.content]) || "";
52224
+ const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _1393 => _1393.content]) || "";
52189
52225
  const citationOrder = [...content.matchAll(/\[(\d+)\]/g)].map(
52190
52226
  (m) => parseInt(m[1], 10)
52191
52227
  );
@@ -52232,7 +52268,7 @@ function EmbeddableChatInner({
52232
52268
  ChatPanelHeader,
52233
52269
  {
52234
52270
  showBack: hasConversation || guideCanReturnToMingo,
52235
- title: hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _1390 => _1390.title]) || "New Chat" : isGuideEmpty ? _nullishCoalesce(headerAssistantName, () => ( "Mingo Guide")) : "Current Chats",
52271
+ title: hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _1394 => _1394.title]) || "New Chat" : isGuideEmpty ? _nullishCoalesce(headerAssistantName, () => ( "Mingo Guide")) : "Current Chats",
52236
52272
  backAriaLabel: hasConversation ? isViewingArchived ? "Back to archive" : "Back" : "Back to Mingo",
52237
52273
  isArchivedView: isViewingArchived,
52238
52274
  onBack: hasConversation ? handleBack : () => handleActiveModeChange("mingo"),
@@ -52353,9 +52389,9 @@ function EmbeddableChatInner({
52353
52389
  subtitle: _nullishCoalesce(effectiveGreeting, () => ( void 0)),
52354
52390
  subtitleLoading: emptyStateLoading,
52355
52391
  ...guideWelcome,
52356
- title: _nullishCoalesce(effectiveAssistantName, () => ( _optionalChain([guideWelcome, 'optionalAccess', _1391 => _1391.title]))),
52357
- icon: _nullishCoalesce(effectiveAssistantIcon, () => ( _optionalChain([guideWelcome, 'optionalAccess', _1392 => _1392.icon]))),
52358
- quickActions: agentConfigUrl && guideSuggestedActions.length > 0 ? guideSuggestedActions : _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess', _1393 => _1393.quickActions]), () => ( guideSuggestedActions)),
52392
+ title: _nullishCoalesce(effectiveAssistantName, () => ( _optionalChain([guideWelcome, 'optionalAccess', _1395 => _1395.title]))),
52393
+ icon: _nullishCoalesce(effectiveAssistantIcon, () => ( _optionalChain([guideWelcome, 'optionalAccess', _1396 => _1396.icon]))),
52394
+ quickActions: agentConfigUrl && guideSuggestedActions.length > 0 ? guideSuggestedActions : _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess', _1397 => _1397.quickActions]), () => ( guideSuggestedActions)),
52359
52395
  onQuickAction: (action) => {
52360
52396
  setQuickActionPreview(null);
52361
52397
  handleSend(_nullishCoalesce(action.prompt, () => ( action.label)));
@@ -53497,4 +53533,4 @@ function EmbeddableChatInner({
53497
53533
 
53498
53534
 
53499
53535
  exports.Label = Label; exports.AllowedDomainsInput = AllowedDomainsInput; exports.HiddenTagsPopup = HiddenTagsPopup; exports.tagVariants = tagVariants; exports.Tag = Tag; exports.Autocomplete = Autocomplete; exports.Card = Card; exports.CardHeader = CardHeader; exports.CardTitle = CardTitle; exports.CardDescription = CardDescription; exports.CardContent = CardContent; exports.CardFooter = CardFooter; exports.CardHorizontal = CardHorizontal; exports.CheckboxBlock = CheckboxBlock; exports.CheckboxWithDescription = CheckboxWithDescription; exports.Select = Select; exports.SelectGroup = SelectGroup; exports.SelectValue = SelectValue; exports.SelectTrigger = SelectTrigger; exports.SelectScrollUpButton = SelectScrollUpButton; exports.SelectScrollDownButton = SelectScrollDownButton; exports.SelectContent = SelectContent; exports.SelectLabel = SelectLabel; exports.SelectItem = SelectItem; exports.SelectSeparator = SelectSeparator; exports.DatePicker = DatePicker; exports.DatePickerInput = DatePickerInput; exports.DatePickerInputSimple = DatePickerInputSimple; exports.DateFilterPanel = DateFilterPanel; exports.DateFilterMenu = DateFilterMenu; exports.DurationInput = DurationInput; exports.HoneypotField = HoneypotField; exports.ProgressBar = ProgressBar; exports.InfoCard = InfoCard; exports.InfoRow = InfoRow; exports.formatDate = formatDate; exports.formatNumber = formatNumber; exports.formatPrice = formatPrice; exports.formatBytes = formatBytes; exports.formatBytesShort = formatBytesShort; exports.formatFileSize = formatFileSize; exports.formatLargeNumber = formatLargeNumber; exports.formatAbbreviatedNumber = formatAbbreviatedNumber; exports.getFirstLastInitials = getFirstLastInitials; exports.nameInitials = nameInitials; exports.formatDurationMMSS = formatDurationMMSS; exports.formatDurationCompact = formatDurationCompact; exports.formatTimeWithTimezone = formatTimeWithTimezone; exports.formatDurationFromRange = formatDurationFromRange; exports.formatDateUTC = formatDateUTC; exports.formatEntryMonthUTC = formatEntryMonthUTC; exports.formatLegalDate = formatLegalDate; exports.formatCurrency = formatCurrency; exports.formatPercent = formatPercent; exports.formatWholeDollars = formatWholeDollars; exports.formatCompactMetric = formatCompactMetric; exports.getTrendColors = getTrendColors; exports.formatDateRange = formatDateRange; exports.formatDateTimeAt = formatDateTimeAt; exports.formatDurationFromMs = formatDurationFromMs; exports.formatDuration = formatDuration; exports.formatUnderscoreText = formatUnderscoreText; exports.stripHtml = stripHtml; exports.formatClassification = formatClassification; exports.formatPricingModel = formatPricingModel; exports.formatBioText = formatBioText; exports.SquareAvatar = SquareAvatar; exports.AssigneeDropdown = AssigneeDropdown; exports.ActionsMenu = ActionsMenu; exports.ActionsMenuDropdown = ActionsMenuDropdown; exports.ColorSwatch = ColorSwatch; exports.DESIGN_PALETTE = DESIGN_PALETTE; exports.getContrastRatio = getContrastRatio; exports.pickReadableTextColor = pickReadableTextColor; exports.extractDominantColor = extractDominantColor; exports.getBestContrastColor = getBestContrastColor; exports.analyzeImageColor = analyzeImageColor; exports.extractImageEdgeColorAsync = extractImageEdgeColorAsync; exports.getPlatformAccentColor = getPlatformAccentColor; exports.getCurrentPlatform = getCurrentPlatform; exports.getReadableTextColor = getReadableTextColor; exports.HEX_PATTERN = HEX_PATTERN; exports.hexToRgb = hexToRgb2; exports.rgbToHex = rgbToHex; exports.deriveHoverColor = deriveHoverColor; exports.deriveActiveColor = deriveActiveColor; exports.resolveTicketStatus = resolveTicketStatus; exports.getTicketStatusConfig = getTicketStatusConfig; exports.getTicketStatusTag = getTicketStatusTag; exports.kindToCanonicalStatus = kindToCanonicalStatus; exports.usesCanonicalStatusStyle = usesCanonicalStatusStyle; exports.resolveStatusTagProps = resolveStatusTagProps; exports.TicketStatusTag = TicketStatusTag; exports.InfoSection = InfoSection; exports.InputTrigger = InputTrigger; exports.InteractiveCard = InteractiveCard; exports.MediaTypeSelector = MediaTypeSelector; exports.noDataIconClasses = noDataIconClasses; exports.noDataActionsVariants = noDataActionsVariants; exports.NoDataMessage = NoDataMessage; exports.NoDataAction = NoDataAction; exports.NoDataActions = NoDataActions; exports.NoData = NoData; exports.PageLoader = PageLoader; exports.CompactPageLoader = CompactPageLoader; exports.RadioGroup = RadioGroup; exports.RadioGroupItem = RadioGroupItem; exports.RadioGroupBlock = RadioGroupBlock; exports.useScrollFade = useScrollFade; exports.ScrollFadeOverlay = ScrollFadeOverlay; exports.Switch = Switch; exports.TagSelectDropdown = TagSelectDropdown; exports.badgeVariants = badgeVariants; exports.Badge = Badge; exports.TagsInput = TagsInput; exports.TagsManager = TagsManager; exports.Textarea = Textarea; exports.AlertDialog = AlertDialog; exports.AlertDialogTrigger = AlertDialogTrigger; exports.AlertDialogPortal = AlertDialogPortal; exports.AlertDialogOverlay = AlertDialogOverlay; exports.AlertDialogContent = AlertDialogContent; exports.AlertDialogHeader = AlertDialogHeader; exports.AlertDialogFooter = AlertDialogFooter; exports.AlertDialogTitle = AlertDialogTitle; exports.AlertDialogDescription = AlertDialogDescription; exports.AlertDialogAction = AlertDialogAction; exports.AlertDialogCancel = AlertDialogCancel; exports.AspectRatio = AspectRatio; exports.Dialog = Dialog; exports.DialogTrigger = DialogTrigger; exports.DialogPortal = DialogPortal; exports.DialogClose = DialogClose; exports.DialogOverlay = DialogOverlay; exports.DialogContent = DialogContent; exports.DialogHeader = DialogHeader; exports.DialogFooter = DialogFooter; exports.DialogTitle = DialogTitle; exports.DialogDescription = DialogDescription; exports.ImageGalleryModal = ImageGalleryModal; exports.Modal = Modal2; exports.ModalContent = ModalContent2; exports.ModalHeader = ModalHeader2; exports.ModalTitle = ModalTitle2; exports.ModalFooter = ModalFooter2; exports.Modal2 = Modal; exports.ModalContent2 = ModalContent; exports.ModalHeader2 = ModalHeader; exports.ModalTitle2 = ModalTitle; exports.ModalFooter2 = ModalFooter; exports.Separator = Separator2; exports.Sheet = Sheet; exports.SheetTrigger = SheetTrigger; exports.SheetClose = SheetClose; exports.SheetPortal = SheetPortal; exports.SheetOverlay = SheetOverlay; exports.SheetContent = SheetContent; exports.SheetHeader = SheetHeader; exports.SheetFooter = SheetFooter; exports.SheetTitle = SheetTitle; exports.SheetDescription = SheetDescription; exports.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.Accordion = Accordion; exports.AccordionItem = AccordionItem; exports.AccordionTrigger = AccordionTrigger; exports.AccordionContent = AccordionContent; exports.Breadcrumb = Breadcrumb; exports.BreadcrumbList = BreadcrumbList; exports.BreadcrumbItem = BreadcrumbItem; exports.BreadcrumbLink = BreadcrumbLink; exports.BreadcrumbPage = BreadcrumbPage; exports.BreadcrumbSeparator = BreadcrumbSeparator; exports.BreadcrumbEllipsis = BreadcrumbEllipsis; exports.MenubarMenu = MenubarMenu; exports.MenubarGroup = MenubarGroup; exports.MenubarPortal = MenubarPortal; exports.MenubarSub = MenubarSub; exports.MenubarRadioGroup = MenubarRadioGroup; exports.Menubar = Menubar; exports.MenubarTrigger = MenubarTrigger; exports.MenubarSubTrigger = MenubarSubTrigger; exports.MenubarSubContent = MenubarSubContent; exports.MenubarContent = MenubarContent; exports.MenubarItem = MenubarItem; exports.MenubarCheckboxItem = MenubarCheckboxItem; exports.MenubarRadioItem = MenubarRadioItem; exports.MenubarLabel = MenubarLabel; exports.MenubarSeparator = MenubarSeparator; exports.MenubarShortcut = MenubarShortcut; exports.NavigationMenu = NavigationMenu; exports.NavigationMenuList = NavigationMenuList; exports.NavigationMenuItem = NavigationMenuItem; exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle; exports.NavigationMenuTrigger = NavigationMenuTrigger; exports.NavigationMenuContent = NavigationMenuContent; exports.NavigationMenuLink = NavigationMenuLink; exports.NavigationMenuViewport = NavigationMenuViewport; exports.NavigationMenuIndicator = NavigationMenuIndicator; exports.CrossfadePanels = CrossfadePanels; exports.TabContent = TabContent; exports.TabNavigation = TabNavigation; exports.getTabById = getTabById; exports.getTabComponent = getTabComponent; exports.Alert = Alert; exports.AlertTitle = AlertTitle; exports.AlertDescription = AlertDescription; exports.AIGeneratedBadge = AIGeneratedBadge; exports.FadePreview = FadePreview; exports.Progress = Progress; exports.VideoPlayBadge = VideoPlayBadge; exports.VideoUnmuteGlyph = VideoUnmuteGlyph; exports.fetchPriorityProp = fetchPriorityProp; exports.extractYouTubeId = extractYouTubeId; exports.Video = Video2; exports.MediaCarousel = MediaCarousel; exports.EMBED_SIZES = EMBED_SIZES; exports.EmbedContainer = EmbedContainer; exports.YouTubeContainer = YouTubeContainer; exports.TwitterContainer = TwitterContainer; exports.RedditContainer = RedditContainer; exports.LinkPreviewContainer = LinkPreviewContainer; exports.LinkedInContainer = LinkedInContainer; exports.RichMarkdownRuntimeProvider = RichMarkdownRuntimeProvider; exports.useRichMarkdownRuntime = useRichMarkdownRuntime; exports.RedditEmbedClient = RedditEmbedClient; exports.TwitterEmbedClient = TwitterEmbedClient; exports.LinkedInEmbedClient = LinkedInEmbedClient; exports.OGLinkErrorBoundary = OGLinkErrorBoundary; exports.OGLinkPreview = OGLinkPreview; exports.toGoogleSheetsEmbedUrl = toGoogleSheetsEmbedUrl; exports.toGoogleSheetsOriginalUrl = toGoogleSheetsOriginalUrl; exports.toFigmaEmbedUrl = toFigmaEmbedUrl; exports.isFigmaSlidesUrl = isFigmaSlidesUrl; exports.toFigmaOriginalUrl = toFigmaOriginalUrl; exports.EmbedIframe = EmbedIframe; exports.FigmaEmbed = FigmaEmbed; exports.MarkdownImage = MarkdownImage; exports.RichMarkdownRenderer = RichMarkdownRenderer; exports.ReleaseChangelogSection = ReleaseChangelogSection; exports.StackedRowsPanel = StackedRowsPanel; exports.SlackChannelChip = SlackChannelChip; exports.statusBadgeVariants = statusBadgeVariants; exports.genBadgeBgOpacity = genBadgeBgOpacity; exports.generationTierFromLabel = generationTierFromLabel; exports.StatusBadge = StatusBadge; exports.StatusIndicator = StatusIndicator; exports.HoverDropdown = HoverDropdown; exports.ExpandChevron = ExpandChevron; exports.useCollapsible = useCollapsible; exports.getCommandText = getCommandText; exports.ArgRow = ArgRow; exports.ResultBlock = ResultBlock; exports.CommandBlock = CommandBlock; exports.ApprovalStatusTag = ApprovalStatusTag; exports.ApprovalBatchMessage = ApprovalBatchMessage; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.ThinkingDisplay = ThinkingDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.MspOrganizationCard = MspOrganizationCard; exports.MspOrganizationCardSkeleton = MspOrganizationCardSkeleton; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.ChatTypingIndicator = ChatTypingIndicator; exports.MingoOnboardingCard = MingoOnboardingCard; exports.ICON_REGISTRY = ICON_REGISTRY; exports.normalizeIconKey = normalizeIconKey; exports.getIconComponent = getIconComponent; exports.getDynamicIcon = getDynamicIcon; exports.ICON_ALIASES = ICON_ALIASES; exports.resolveIcon = resolveIcon; exports.ICON_OPTIONS = ICON_OPTIONS; exports.SlashCommandSuggestions = SlashCommandSuggestions; exports.ChatInput = ChatInput; exports.formatTicketRelativeTime = formatTicketRelativeTime; exports.formatTicketFullTimestamp = formatTicketFullTimestamp; exports.formatRelativeTime = formatRelativeTime; exports.formatAbsoluteDate = formatAbsoluteDate; exports.formatDateTime = formatDateTime; exports.getDetailedTimeDifference = getDetailedTimeDifference; exports.isToday = isToday; exports.isWithinMinutes = isWithinMinutes; exports.createUTCTimestamp = createUTCTimestamp; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.remarkCardLinks = remarkCardLinks; exports.remarkMentionChips = remarkMentionChips; exports.BlockCard = BlockCard; exports.CONTEXT_ROW_CLASS = CONTEXT_ROW_CLASS; exports.CONTEXT_ICON_CLASS = CONTEXT_ICON_CLASS; exports.CONTEXT_LABEL_CLASS = CONTEXT_LABEL_CLASS; exports.CONTEXT_BACK_CLASS = CONTEXT_BACK_CLASS; exports.CONTEXT_STATE_CLASS = CONTEXT_STATE_CLASS; exports.ContextMenuRow = ContextMenuRow; exports.ContextItemsSkeleton = ContextItemsSkeleton; exports.ContextItemsList = ContextItemsList; exports.ContextErrorBoundary = ContextErrorBoundary; exports.CHAT_CONTEXT_ITEMS_DEFAULT_MAX = CHAT_CONTEXT_ITEMS_DEFAULT_MAX; exports.ChatComposerPlusMenu = ChatComposerPlusMenu; exports.ChatContextPicker = ChatContextPicker; exports.ChatContextChipStrip = ChatContextChipStrip; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageSkeleton = ChatMessageSkeleton; exports.ChatMessageListSkeleton = ChatMessageListSkeleton; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.ChatMessageList = ChatMessageList; exports.getProxiedImageUrl = getProxiedImageUrl; exports.urlPathLooksLikeSvg = urlPathLooksLikeSvg; exports.shouldProxyImage = shouldProxyImage; exports.generateImageSizes = generateImageSizes; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.ChatQuickAction = ChatQuickAction; exports.FAE_AVATAR_DATA_URI = FAE_AVATAR_DATA_URI; exports.AgentMark = AgentMark; exports.EntityIcon = EntityIcon; exports.getAgentAccent = getAgentAccent; exports.accentFromIdentityIcon = accentFromIdentityIcon; exports.renderQuickActionIcon = renderQuickActionIcon; exports.QuickActionChipSkeleton = QuickActionChipSkeleton; exports.QuickActionChipButton = QuickActionChipButton; exports.ChatQuickActionRow = ChatQuickActionRow; exports.ChatQuickActionRowSkeleton = ChatQuickActionRowSkeleton; exports.QuickActionMarquee = QuickActionMarquee; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.MingoChatHistorySkeleton = MingoChatHistorySkeleton; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; exports.TooltipProvider = TooltipProvider; exports.Tooltip = Tooltip; exports.TooltipTrigger = TooltipTrigger; exports.TooltipContent = TooltipContent; exports.GuideModeBanner = GuideModeBanner; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.COMPACT_HEADER_BUTTON = COMPACT_HEADER_BUTTON; exports.ChatPanelHeader = ChatPanelHeader; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.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.isCrossOriginUrl = isCrossOriginUrl; exports.decideNewTab = decideNewTab; exports.computeIsNewTab = computeIsNewTab; exports.newTabAnchorAttrs = newTabAnchorAttrs; exports.buildAnchorProps = buildAnchorProps; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveExternalNavigation = resolveExternalNavigation; exports.executeNavigation = executeNavigation; exports.executeNavigationImperative = executeNavigationImperative; exports.handleChatNavClick = handleChatNavClick; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.EMPTY_AUTHOR_PLACEHOLDER = EMPTY_AUTHOR_PLACEHOLDER; exports.EntityMetadataValueCell = EntityMetadataValueCell; exports.EntityMetadataAuthorCell = EntityMetadataAuthorCell; exports.EntityAuthorCard = EntityAuthorCard; exports.BlogImagePlaceholder = BlogImagePlaceholder; exports.useCoverImageFallback = useCoverImageFallback; exports.hideOnError = hideOnError; exports.EntityPortraitCard = EntityPortraitCard; exports.FlamingoLogo = FlamingoLogo2; exports.PlatformBadge = PlatformBadge; exports.AdminContentCard = AdminContentCard; exports.getProxiedImageUrl2 = getProxiedImageUrl2; exports.WhatIShippedCard = WhatIShippedCard; exports.WhatIShippedCardSkeleton = WhatIShippedCardSkeleton; exports.MUX_STREAM_ORIGIN = MUX_STREAM_ORIGIN; exports.MUX_IMAGE_ORIGIN = MUX_IMAGE_ORIGIN; exports.useVideoOriginPreconnect = useVideoOriginPreconnect; exports.useVideoWarmup = useVideoWarmup; 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.DEFAULT_VIDEO_BITES_TITLE = DEFAULT_VIDEO_BITES_TITLE; exports.toStripProfile = toStripProfile; exports.sortBitesByCreatedAtDesc = sortBitesByCreatedAtDesc; exports.PAGE_HEADING_CLASS = PAGE_HEADING_CLASS; exports.SECTION_HEADING_CLASS = SECTION_HEADING_CLASS; exports.PageHeading = PageHeading; exports.STRIP_CELL_MAX_WIDTH = STRIP_CELL_MAX_WIDTH; exports.CardsStrip = CardsStrip; exports.SquareAvatar2 = SquareAvatar2; exports.UserDisplay = UserDisplay; exports.VideoBitesStrip = VideoBitesStrip; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.ProductReleaseCard = ProductReleaseCard; exports.ProductReleaseCardSkeleton = ProductReleaseCardSkeleton; exports.formatReleaseDate = formatReleaseDate; exports.formatDateShort = formatDateShort; exports.formatDateSlashUTC = formatDateSlashUTC; exports.resolveReleaseCover = resolveReleaseCover; exports.releaseTypeToBadgeColor = releaseTypeToBadgeColor; exports.defaultBuildProductReleaseCardProps = defaultBuildProductReleaseCardProps; exports.buildProductReleaseCardProps = buildProductReleaseCardProps; exports.useEntityCardLink = useEntityCardLink; exports.COMPACT_CARD_OUTER = COMPACT_CARD_OUTER; exports.COMPACT_CARD_OUTER_STATIC = COMPACT_CARD_OUTER_STATIC; exports.COMPACT_CARD_SKELETON_OUTER = COMPACT_CARD_SKELETON_OUTER; exports.COMPACT_CARD_IMAGE_SLOT = COMPACT_CARD_IMAGE_SLOT; exports.COMPACT_CARD_SKELETON_IMAGE_SLOT = COMPACT_CARD_SKELETON_IMAGE_SLOT; exports.COMPACT_CARD_ICON_SLOT = COMPACT_CARD_ICON_SLOT; exports.COMPACT_CARD_TEXT_COL = COMPACT_CARD_TEXT_COL; exports.COMPACT_CARD_TITLE_ROW = COMPACT_CARD_TITLE_ROW; exports.COMPACT_CARD_META_ROW_BOX = COMPACT_CARD_META_ROW_BOX; exports.COMPACT_CARD_TITLE = COMPACT_CARD_TITLE; exports.COMPACT_CARD_SUBTITLE = COMPACT_CARD_SUBTITLE; exports.COMPACT_CARD_SUMMARY = COMPACT_CARD_SUMMARY; exports.COMPACT_CARD_META_ROW = COMPACT_CARD_META_ROW; exports.COMPACT_CARD_ROW_FILLER = COMPACT_CARD_ROW_FILLER; exports.safeHref = safeHref; exports.BlogCardSkeleton = BlogCardSkeleton; exports.BlogCard = BlogCard; exports.CaseStudyCardSkeleton = CaseStudyCardSkeleton; exports.CaseStudyCard = CaseStudyCard; exports.CustomerInterviewCardSkeleton = CustomerInterviewCardSkeleton; exports.CustomerInterviewCard = CustomerInterviewCard; exports.formatInvestorUpdatePeriod = formatInvestorUpdatePeriod; exports.InvestorUpdateCardSkeleton = InvestorUpdateCardSkeleton; exports.InvestorUpdateCard = InvestorUpdateCard; exports.OnboardingGuideCardSkeleton = OnboardingGuideCardSkeleton; exports.OnboardingGuideCard = OnboardingGuideCard; exports.RoadmapVoteButton = RoadmapVoteButton; exports.getStatusColorScheme = getStatusColorScheme; exports.CUSTOM_ITEM_ID = CUSTOM_ITEM_ID; exports.getTaskTypeLabel = getTaskTypeLabel; exports.TaskTypeIcon = TaskTypeIcon; exports.RoadmapCardSkeleton = RoadmapCardSkeleton; exports.RoadmapCard = RoadmapCard; exports.GitHubActivityCard = GitHubActivityCard; exports.GitHubActivityCardSkeleton = GitHubActivityCardSkeleton; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.programItemToStripProfile = programItemToStripProfile; exports.transformEventToProgram = transformEventToProgram; exports.transformPodcastToProgram = transformPodcastToProgram; exports.transformWebinarToProgram = transformWebinarToProgram; exports.ProgramCardSkeleton = ProgramCardSkeleton; exports.ProgramCard = ProgramCard; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.extractItems = extractItems; exports.extractItemId = extractItemId; exports.useChatCardItem = useChatCardItem; 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.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.CHAT_TYPE = CHAT_TYPE; exports.OWNER_TYPE = OWNER_TYPE; exports.MESSAGE_ROLE = MESSAGE_ROLE; exports.ASSISTANT_TYPE = ASSISTANT_TYPE; exports.AUTHOR_TYPE = AUTHOR_TYPE; exports.APPROVAL_STATUS = APPROVAL_STATUS; exports.APPROVAL_BLOCK_VARIANT = APPROVAL_BLOCK_VARIANT; exports.CONNECTION_STATUS = CONNECTION_STATUS; exports.buildChatRefKey = buildChatRefKey; exports.isStructuredContent = isStructuredContent; exports.normalizeContent = normalizeContent2; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.useChunkCatchup = useChunkCatchup; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.parseChunkToAction = parseChunkToAction; exports.isControlChunk = isControlChunk; exports.isErrorChunk = isErrorChunk; exports.isMetadataChunk = isMetadataChunk; exports.extractTextFromChunk = extractTextFromChunk; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.useRealtimeChunkProcessor = useRealtimeChunkProcessor; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.useSlashCommandRegistry = useSlashCommandRegistry; exports.fetchEmptyStateConfig = fetchEmptyStateConfig; exports.useEmptyStateConfig = useEmptyStateConfig; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.ChatIdentityProvider = ChatIdentityProvider; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.useSseChatAdapter = useSseChatAdapter; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useUnifiedChat = useUnifiedChat; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.SYNTHETIC_REALTIME_ID_PREFIXES = SYNTHETIC_REALTIME_ID_PREFIXES; exports.flattenMessagePagesChronological = flattenMessagePagesChronological; exports.maxPersistedStreamSeq = maxPersistedStreamSeq; exports.mergeHistoryWithRealtime = mergeHistoryWithRealtime; exports.computeHistoryPrepend = computeHistoryPrepend; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.clickupTaskUrl = clickupTaskUrl; exports.EmbeddableChat = EmbeddableChat; exports.FilterCheckboxItem = FilterCheckboxItem; exports.TagKeyValueFilter = TagKeyValueFilter; exports.FilterModal = FilterModal; exports.PageActions = PageActions; exports.usePageActionsBottomPadding = usePageActionsBottomPadding; exports.PageContainer = PageContainer; exports.ListPageContainer = ListPageContainer; exports.DetailPageContainer = DetailPageContainer; exports.FormPageContainer = FormPageContainer; exports.ContentPageContainer = ContentPageContainer; exports.ListPageLayout = ListPageLayout; exports.EntityImage = EntityImage; exports.TITLE_BLOCK_MIN_HEIGHT = TITLE_BLOCK_MIN_HEIGHT; exports.TitleBlock = TitleBlock; exports.PageLayout = PageLayout; exports.PageShell = PageShell; exports.ArticleDetailLayout = ArticleDetailLayout; exports.toggleVariants = toggleVariants; exports.Toggle = Toggle; exports.ToggleGroup = ToggleGroup; exports.ToggleGroupItem = ToggleGroupItem; exports.delay = delay; exports.generateRandomString = generateRandomString; exports.truncateString = truncateString; exports.serializeJsonLd = serializeJsonLd; exports.deepClone = deepClone; exports.getSlackCommunityJoinUrl = getSlackCommunityJoinUrl; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.BRAND_MARK_SVGS = BRAND_MARK_SVGS; exports.brandMarkDataUri = brandMarkDataUri; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; exports.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.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.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.announcementDismissCookieName = announcementDismissCookieName; exports.isDismissedCookieValue = isDismissedCookieValue; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; 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.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.TMCG_SOCIAL_PLATFORMS = TMCG_SOCIAL_PLATFORMS; 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.canonicalContentRefType = canonicalContentRefType; exports.buildListUrl = buildListUrl; exports.faqSectionSlug = faqSectionSlug; exports.faqItemAnchor = faqItemAnchor; exports.parseFaqHash = parseFaqHash; exports.CONTENT_REF_GROUPS = CONTENT_REF_GROUPS; exports.getContentRefLabel = getContentRefLabel; exports.getContentRefLabelOrTitleCase = getContentRefLabelOrTitleCase; exports.orderContentRefTypes = orderContentRefTypes; exports.buildSuggestionUrl = buildSuggestionUrl; 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.stripInlineMarkdown = stripInlineMarkdown; exports.markdownToPlainText = markdownToPlainText; exports.extractSections = extractSections; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.BenefitCard = BenefitCard; exports.BenefitCardGrid = BenefitCardGrid; exports.BrandAssociationCard = BrandAssociationCard; exports.BrandAssociationGrid = BrandAssociationGrid; exports.BulletList = BulletList; exports.ChevronButton = ChevronButton; exports.CircularProgress = CircularProgress; exports.CheckIcon = CheckIcon2; exports.XIcon = XIcon2; exports.MinusIcon = MinusIcon; exports.CheckCircleIcon = CheckCircleIcon2; exports.XCircleIcon = XCircleIcon; exports.FloatingTooltip = FloatingTooltip; exports.DashboardInfoCard = DashboardInfoCard; exports.OSTypeBadge = OSTypeBadge; exports.OSTypeIcon = OSTypeIcon; exports.OSTypeLabel = OSTypeLabel; exports.DeviceCard = DeviceCard; exports.DeviceCardCompact = DeviceCardCompact; exports.FeatureCardGrid = FeatureCardGrid; exports.FeatureList = FeatureList; exports.TruncateText = TruncateText; exports.HighlightCard = HighlightCard; exports.HighlightCardGrid = HighlightCardGrid; exports.IconsBlock = IconsBlock; exports.DropdownButton = DropdownButton; exports.MoreActionsMenu = MoreActionsMenu; exports.OrganizationCard = OrganizationCard; exports.ServiceCard = ServiceCard; exports.Slider = Slider; exports.TabSelector = TabSelector; exports.TitleContentBlock = TitleContentBlock; exports.ErrorState = ErrorState; exports.PageError = PageError; exports.LoadError = LoadError; exports.NotFoundError = NotFoundError; exports.ContentLoader = ContentLoader; exports.CardLoader = CardLoader; exports.FormLoader = FormLoader; exports.DetailLoader = DetailLoader; exports.ListLoader = ListLoader; exports.Pagination = Pagination; exports.PaginationContent = PaginationContent; exports.PaginationItem = PaginationItem; exports.PaginationLink = PaginationLink; exports.PaginationEllipsis = PaginationEllipsis; exports.PaginationPrevious = PaginationPrevious; exports.PaginationNext = PaginationNext; exports.init_pagination = init_pagination; exports.CursorPagination = CursorPagination; exports.CursorPaginationSimple = CursorPaginationSimple; exports.TableEmptyState = TableEmptyState; exports.DynamicThemeProvider = DynamicThemeProvider; exports.useDynamicTheme = useDynamicTheme; exports.THEME_STORAGE_KEY = THEME_STORAGE_KEY; exports.THEME_ATTRIBUTE = THEME_ATTRIBUTE; exports.DEFAULT_THEME = DEFAULT_THEME; exports.ThemeProvider = ThemeProvider; exports.useTheme = useTheme; exports.useThemeToggle = useThemeToggle; exports.ArrayEntryManager = ArrayEntryManager; exports.AuthBenefitsPanel = AuthBenefitsPanel; exports.OpenFrameWordmark = OpenFrameWordmark; exports.PoweredByFlamingo = PoweredByFlamingo; exports.AuthShell = AuthShell; exports.BackToLoginLink = BackToLoginLink; exports.PasswordInput = PasswordInput; exports.PROVIDER_META = PROVIDER_META; exports.SsoProviderButtons = SsoProviderButtons; exports.CompleteAccountForm = CompleteAccountForm; exports.TermsAgreementLabel = TermsAgreementLabel; exports.CreateOrganizationForm = CreateOrganizationForm; exports.InviteLinkInvalidModal = InviteLinkInvalidModal; exports.LoginForm = LoginForm; exports.OpenFrameSsoLoginForm = OpenFrameSsoLoginForm; exports.OpenFrameSsoSignUpForm = OpenFrameSsoSignUpForm; exports.PasswordResetForm = PasswordResetForm; exports.SsoAuthShell = SsoAuthShell; exports.ProviderButton = ProviderButton; exports.AuthProvidersList = AuthProvidersList; exports.ChangelogManager = ChangelogManager; exports.ChangelogSectionsManager = ChangelogSectionsManager; exports.ClickUpTasksManager = ClickUpTasksManager; exports.CommandBox = CommandBox; exports.TAG_BADGE_CLASS = TAG_BADGE_CLASS; exports.EntityTagBadges = EntityTagBadges; exports.ErrorBoundary = ErrorBoundary; exports.SectionSelector = SectionSelector; exports.FigmaPrototypeViewer = FigmaPrototypeViewer; exports.FiltersDropdown = FiltersDropdown; exports.useFiltersDropdown = useFiltersDropdown; exports.GitHubReleasesManager = GitHubReleasesManager; exports.KnowledgeBaseLinksManager = KnowledgeBaseLinksManager; exports.LoadingProvider = LoadingProvider; exports.useLoading = useLoading; exports.MediaGalleryManager = MediaGalleryManager; exports.MoreAboutButton = MoreAboutButton; exports.OSTypeBadgeGroup = OSTypeBadgeGroup; exports.ParallaxImageShowcase = ParallaxImageShowcase; exports.PathsDisplay = PathsDisplay; exports.OPENFRAME_PATHS = OPENFRAME_PATHS; exports.getOpenFramePaths = getOpenFramePaths; exports.OPENFRAME_DOCTOR_COMMANDS = OPENFRAME_DOCTOR_COMMANDS; exports.getOpenFrameDoctorCommand = getOpenFrameDoctorCommand; exports.PlatformFilterComponent = PlatformFilterComponent; exports.PushButtonSelector = PushButtonSelector; exports.ReleaseMediaManager = ReleaseMediaManager; exports.SelectButton = SelectButton; exports.SEOEditorPreview = SEOEditorPreview; exports.SocialLinksManager = SocialLinksManager; exports.StartWithOpenFrameButton = StartWithOpenFrameButton; exports.StatusFilterComponent = StatusFilterComponent; exports.TagsSelector = TagsSelector; exports.WarningBlock = WarningBlock; exports.VideoBitesDisplay = VideoBitesDisplay; exports.getCaptionsUrl = getCaptionsUrl; exports.VideoSourceSelector = VideoSourceSelector; exports.ConfidenceBadge = ConfidenceBadge; exports.TranscriptSummaryEditor = TranscriptSummaryEditor; exports.AIEnrichButton = AIEnrichButton; exports.AIWarningsSection = AIWarningsSection; exports.AIEnrichSection = AIEnrichSection; exports.HighlightVideoSection = HighlightVideoSection; exports.HighlightConfigSection = HighlightConfigSection; exports.EntitySummaryEditor = EntitySummaryEditor; exports.AIStatusIndicator = AIStatusIndicator; exports.AIRequiredBadge = AIRequiredBadge; exports.TranscribeSummarizeSection = TranscribeSummarizeSection; exports.VideoClipsSection = VideoClipsSection; exports.HighlightGenerationSection = HighlightGenerationSection; exports.HighlightVideoPreview = HighlightVideoPreview; exports.TranscribeAndSummarizeCombinedSection = TranscribeAndSummarizeCombinedSection; exports.HighlightVideoCombinedSection = HighlightVideoCombinedSection; exports.ViewToggle = ViewToggle; exports.PolicyConfigurationPanel = PolicyConfigurationPanel; exports.PhoneInput = PhoneInput; exports.WaitlistForm = WaitlistForm; exports.NotificationsProvider = NotificationsProvider; exports.useNotifications = useNotifications; exports.useOptionalNotifications = useOptionalNotifications; exports.useAppLayoutDrawerContainer = useAppLayoutDrawerContainer; exports.AppLayoutDrawerRoot = AppLayoutDrawerRoot; exports.AppLayoutDrawerTrigger = AppLayoutDrawerTrigger; exports.AppLayoutDrawerClose = AppLayoutDrawerClose; exports.AppLayoutDrawerContent = AppLayoutDrawerContent; exports.AppLayoutDrawerHeader = AppLayoutDrawerHeader; exports.AppLayoutDrawerTitle = AppLayoutDrawerTitle; exports.AppLayoutDrawerDescription = AppLayoutDrawerDescription; exports.AppLayoutDrawerBody = AppLayoutDrawerBody; exports.AppLayoutDrawerFooter = AppLayoutDrawerFooter; exports.NotificationTile = NotificationTile; exports.NotificationDrawer = NotificationDrawer; exports.NotificationPopups = NotificationPopups; exports.ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE = ADMIN_APPROVAL_REQUEST_CONTEXT_TYPE; exports.isApprovalNotification = isApprovalNotification; exports.getApprovalMeta = getApprovalMeta; exports.resolutionToStatus = resolutionToStatus; exports.approvalMetaToBatchData = approvalMetaToBatchData; exports.ApprovalRequestNotificationTile = ApprovalRequestNotificationTile; exports.TimeTrackerProvider = TimeTrackerProvider; exports.useTimeTracker = useTimeTracker; exports.useOptionalTimeTracker = useOptionalTimeTracker; exports.useTrackerClock = useTrackerClock; exports.TimeTrackerPanel = TimeTrackerPanel; exports.HeaderButton = HeaderButton; exports.TimeTrackerHeaderButton = TimeTrackerHeaderButton; exports.BoardColumnHeader = BoardColumnHeader; exports.tintOnDark = tintOnDark; exports.BoardTicketApproval = BoardTicketApproval; exports.TicketCard = TicketCard; exports.TicketCardSkeleton = TicketCardSkeleton; exports.BoardColumn = BoardColumn; exports.useBoardCollapse = useBoardCollapse; exports.Board = Board; exports.columnFromTicketStatus = columnFromTicketStatus; exports.groupTicketsByStatus = groupTicketsByStatus; exports.TicketStatusConfigList = TicketStatusConfigList; exports.TableHeader = TableHeader; exports.TableCell = TableCell; exports.TableCardSkeleton = TableCardSkeleton; exports.TableRow = TableRow; exports.Table = Table; exports.TableDescriptionCell = TableDescriptionCell; exports.TableTimestampCell = TableTimestampCell; exports.QueryReportTableHeader = QueryReportTableHeader; exports.QueryReportTableRow = QueryReportTableRow; exports.QueryReportTableSkeleton = QueryReportTableSkeleton; exports.deriveColumns = deriveColumns; exports.exportToCSV = exportToCSV; exports.QueryReportTable = QueryReportTable; exports.useDataTableContext = useDataTableContext; exports.DataTableRoot = DataTableRoot; exports.getHideClasses = getHideClasses2; exports.alignJustify = alignJustify; exports.multiSelectFilterFn = multiSelectFilterFn; exports.DataTableHeader = DataTableHeader; exports.DataTableEmpty = DataTableEmpty; exports.ROW_HEIGHT_DESKTOP = ROW_HEIGHT_DESKTOP2; exports.ROW_HEIGHT_MOBILE = ROW_HEIGHT_MOBILE2; exports.DataTableSkeleton = DataTableSkeleton; exports.DataTableRow = DataTableRow; exports.DataTableBody = DataTableBody; exports.DataTableInfiniteFooter = DataTableInfiniteFooter; exports.DataTableCursorFooter = DataTableCursorFooter; exports.DataTableRowCount = DataTableRowCount; exports.useDataTable = useDataTable; exports.DataTable = DataTable; exports.flexRender = _reacttable.flexRender; exports.createColumnHelper = _reacttable.createColumnHelper; exports.getCoreRowModel = _reacttable.getCoreRowModel; exports.getExpandedRowModel = _reacttable.getExpandedRowModel; exports.getFacetedRowModel = _reacttable.getFacetedRowModel; exports.getFacetedUniqueValues = _reacttable.getFacetedUniqueValues; exports.getFilteredRowModel = _reacttable.getFilteredRowModel; exports.getGroupedRowModel = _reacttable.getGroupedRowModel; exports.getPaginationRowModel = _reacttable.getPaginationRowModel; exports.getSortedRowModel = _reacttable.getSortedRowModel; exports.SearchInput = SearchInput; exports.FilterListItem = FilterListItem; exports.FilterList = FilterList; exports.TagSearchInput = TagSearchInput; exports.MarkdownEditor = MarkdownEditor; exports.FileUpload = FileUpload; exports.ImageUploader = ImageUploader; exports.TICKET_STATUS_COLOR_PRESETS = TICKET_STATUS_COLOR_PRESETS; exports.CUSTOM_PRESET_KEY = CUSTOM_PRESET_KEY; exports.DEFAULT_CUSTOM_STATUS_COLOR = DEFAULT_CUSTOM_STATUS_COLOR; exports.ColorPresetSelect = ColorPresetSelect; exports.ColorPickerInput = ColorPickerInput; exports.TicketStatusConfigRow = TicketStatusConfigRow; exports.TicketDetailSection = TicketDetailSection; exports.TicketAttachmentsList = TicketAttachmentsList; exports.TicketNoteCard = TicketNoteCard; exports.TicketNotesSection = TicketNotesSection; exports.TicketInfoSection = TicketInfoSection; exports.FilterPillRow = FilterPillRow; exports.MOBILE_NAV_PANEL_ID = MOBILE_NAV_PANEL_ID; exports.MobileNavPanel = MobileNavPanel; exports.MingoAiButton = MingoAiButton; exports.Header = Header2; exports.HeaderSkeleton = HeaderSkeleton; exports.ClientOnlyHeader = ClientOnlyHeader; exports.SlidingSidebar = SlidingSidebar; exports.StickySectionNav = StickySectionNav; exports.useSectionNavigation = useSectionNavigation; exports.NavigationSidebar = NavigationSidebar; exports.HeaderGlobalSearch = HeaderGlobalSearch; exports.HeaderMingoButton = HeaderMingoButton; exports.HeaderOrganizationFilter = HeaderOrganizationFilter; exports.AppHeader = AppHeader; exports.MobileBurgerMenu = MobileBurgerMenu; exports.AppLayout = AppLayout; exports.MultiLevelNavigation = MultiLevelNavigation; exports.MobileNavigationDropdown = MobileNavigationDropdown; exports.SoftwareInfo = SoftwareInfo; exports.SoftwareSourceBadge = SoftwareSourceBadge; exports.CveLink = CveLink; exports.ToolBadge = ToolBadge; exports.ShellTypeBadge = ShellTypeBadge; exports.ScriptInfoSection = ScriptInfoSection; exports.ScriptArguments = ScriptArguments; exports.OnboardingStepCard = OnboardingStepCard; exports.OnboardingWalkthrough = OnboardingWalkthrough; exports.LOG_SEVERITY_COLORS = LOG_SEVERITY_COLORS; exports.LOG_SEVERITY_LABELS = LOG_SEVERITY_LABELS; exports.LogSeverityDot = LogSeverityDot; exports.LogsList = LogsList; exports.assets = assets;
53500
- //# sourceMappingURL=chunk-WDZATJTF.cjs.map
53536
+ //# sourceMappingURL=chunk-KUDLV25M.cjs.map