@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.
- package/dist/{chunk-6HCWW4YM.cjs → chunk-2JNFQEVX.cjs} +26 -26
- package/dist/{chunk-6HCWW4YM.cjs.map → chunk-2JNFQEVX.cjs.map} +1 -1
- package/dist/{chunk-TJ7HD4KI.js → chunk-3BGWK5QI.js} +4 -4
- package/dist/{chunk-ZXWSOOEH.js → chunk-4BWQYGIY.js} +2 -2
- package/dist/{chunk-FHAG7O27.js → chunk-4TMMYZTY.js} +2 -2
- package/dist/{chunk-UKIVJU3A.js → chunk-6F5OKJTW.js} +4 -4
- package/dist/{chunk-YLSDXDD7.cjs → chunk-A2IRUIUJ.cjs} +37 -37
- package/dist/{chunk-YLSDXDD7.cjs.map → chunk-A2IRUIUJ.cjs.map} +1 -1
- package/dist/{chunk-RQXFDMRY.cjs → chunk-B62DI2SC.cjs} +15 -15
- package/dist/{chunk-RQXFDMRY.cjs.map → chunk-B62DI2SC.cjs.map} +1 -1
- package/dist/{chunk-UZOYTAK7.cjs → chunk-BF5BXKM7.cjs} +62 -62
- package/dist/{chunk-UZOYTAK7.cjs.map → chunk-BF5BXKM7.cjs.map} +1 -1
- package/dist/{chunk-JMHU37Y6.js → chunk-DUHM44CQ.js} +2 -2
- package/dist/{chunk-5TL2VVEN.js → chunk-HFK33T6A.js} +4 -4
- package/dist/{chunk-UHSVSDF5.js → chunk-JSL3VXGJ.js} +2 -2
- package/dist/{chunk-WDZATJTF.cjs → chunk-KUDLV25M.cjs} +163 -127
- package/dist/chunk-KUDLV25M.cjs.map +1 -0
- package/dist/{chunk-4XTIANMS.js → chunk-LHM2VUTO.js} +2 -2
- package/dist/{chunk-E5HKIBRS.cjs → chunk-LWC2U5OC.cjs} +9 -9
- package/dist/{chunk-E5HKIBRS.cjs.map → chunk-LWC2U5OC.cjs.map} +1 -1
- package/dist/{chunk-4PS4F4WL.cjs → chunk-O3FSSWV4.cjs} +7 -7
- package/dist/{chunk-4PS4F4WL.cjs.map → chunk-O3FSSWV4.cjs.map} +1 -1
- package/dist/{chunk-PMFK7ZKC.cjs → chunk-PO4PXWZN.cjs} +5 -5
- package/dist/{chunk-PMFK7ZKC.cjs.map → chunk-PO4PXWZN.cjs.map} +1 -1
- package/dist/{chunk-RKNF2DHY.cjs → chunk-RGKGRS2T.cjs} +59 -59
- package/dist/{chunk-RKNF2DHY.cjs.map → chunk-RGKGRS2T.cjs.map} +1 -1
- package/dist/{chunk-5U6C3RXX.cjs → chunk-ULUH2X53.cjs} +11 -11
- package/dist/{chunk-5U6C3RXX.cjs.map → chunk-ULUH2X53.cjs.map} +1 -1
- package/dist/{chunk-PCM4HJO4.cjs → chunk-WAQH35VG.cjs} +26 -26
- package/dist/{chunk-PCM4HJO4.cjs.map → chunk-WAQH35VG.cjs.map} +1 -1
- package/dist/{chunk-ISUMLEJ6.js → chunk-WQEEGFDM.js} +2 -2
- package/dist/{chunk-XVWDKBBF.js → chunk-XFYQV2K2.js} +2 -2
- package/dist/{chunk-5WXUR7LF.js → chunk-YJDVAT7J.js} +39 -3
- package/dist/chunk-YJDVAT7J.js.map +1 -0
- package/dist/{chunk-LHJHMZYU.js → chunk-YUMFRC3D.js} +4 -4
- package/dist/{chunk-5UZULT35.cjs → chunk-YZQNKMFQ.cjs} +31 -31
- package/dist/{chunk-5UZULT35.cjs.map → chunk-YZQNKMFQ.cjs.map} +1 -1
- package/dist/components/case-studies/index.cjs +8 -8
- package/dist/components/case-studies/index.js +2 -2
- package/dist/components/chat/chat-input.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-realtime-chunk-processor.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +2 -2
- package/dist/components/chat/index.js +1 -1
- package/dist/components/chat/types/api.types.d.ts +10 -0
- package/dist/components/chat/types/api.types.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +3 -3
- package/dist/components/contact/index.js +2 -2
- package/dist/components/docs/index.cjs +5 -5
- package/dist/components/docs/index.js +4 -4
- package/dist/components/embeds/index.cjs +3 -3
- package/dist/components/embeds/index.js +2 -2
- package/dist/components/faq/index.cjs +3 -3
- package/dist/components/faq/index.js +2 -2
- package/dist/components/features/index.cjs +2 -2
- package/dist/components/features/index.js +1 -1
- package/dist/components/help-center-pages/index.cjs +20 -20
- package/dist/components/help-center-pages/index.js +11 -11
- package/dist/components/index.cjs +128 -128
- package/dist/components/index.js +9 -9
- package/dist/components/navigation/index.cjs +2 -2
- package/dist/components/navigation/index.js +1 -1
- package/dist/components/onboarding-guides/index.cjs +5 -5
- package/dist/components/onboarding-guides/index.js +4 -4
- package/dist/components/related-content/index.cjs +3 -3
- package/dist/components/related-content/index.js +2 -2
- package/dist/components/tickets/index.cjs +5 -5
- package/dist/components/tickets/index.js +4 -4
- package/dist/components/ui/index.cjs +2 -2
- package/dist/components/ui/index.js +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/src/components/chat/chat-input.tsx +5 -1
- package/src/components/chat/hooks/use-nats-chat-adapter.ts +52 -3
- package/src/components/chat/hooks/use-realtime-chunk-processor.ts +25 -3
- package/src/components/chat/types/api.types.ts +10 -0
- package/src/stories/ApprovalRequestMessageClient.stories.tsx +89 -0
- package/src/stories/ChatMessageEnhanced.stories.tsx +219 -0
- package/src/stories/ChatTypingIndicator.stories.tsx +51 -0
- package/src/stories/ContextCompactionDisplay.stories.tsx +44 -0
- package/src/stories/ErrorMessageDisplay.stories.tsx +66 -0
- package/src/stories/ThinkingDisplay.stories.tsx +63 -0
- package/dist/chunk-5WXUR7LF.js.map +0 -1
- package/dist/chunk-WDZATJTF.cjs.map +0 -1
- /package/dist/{chunk-TJ7HD4KI.js.map → chunk-3BGWK5QI.js.map} +0 -0
- /package/dist/{chunk-ZXWSOOEH.js.map → chunk-4BWQYGIY.js.map} +0 -0
- /package/dist/{chunk-FHAG7O27.js.map → chunk-4TMMYZTY.js.map} +0 -0
- /package/dist/{chunk-UKIVJU3A.js.map → chunk-6F5OKJTW.js.map} +0 -0
- /package/dist/{chunk-JMHU37Y6.js.map → chunk-DUHM44CQ.js.map} +0 -0
- /package/dist/{chunk-5TL2VVEN.js.map → chunk-HFK33T6A.js.map} +0 -0
- /package/dist/{chunk-UHSVSDF5.js.map → chunk-JSL3VXGJ.js.map} +0 -0
- /package/dist/{chunk-4XTIANMS.js.map → chunk-LHM2VUTO.js.map} +0 -0
- /package/dist/{chunk-ISUMLEJ6.js.map → chunk-WQEEGFDM.js.map} +0 -0
- /package/dist/{chunk-XVWDKBBF.js.map → chunk-XFYQV2K2.js.map} +0 -0
- /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
|
-
|
|
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',
|
|
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',
|
|
48265
|
+
explanation: _optionalChain([required, 'optionalAccess', _1177 => _1177.toolExplanation]),
|
|
48257
48266
|
approvalType,
|
|
48258
48267
|
toolCalls
|
|
48259
48268
|
});
|
|
48260
|
-
_optionalChain([callbacks, 'access',
|
|
48269
|
+
_optionalChain([callbacks, 'access', _1178 => _1178.onEscalatedApproval, 'optionalCall', _1179 => _1179(requestId, {
|
|
48261
48270
|
command: summary,
|
|
48262
|
-
explanation: _optionalChain([required, 'optionalAccess',
|
|
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',
|
|
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',
|
|
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',
|
|
48353
|
+
if ("details" in action && _optionalChain([action, 'optionalAccess', _1187 => _1187.details])) {
|
|
48344
48354
|
try {
|
|
48345
|
-
message2 = _optionalChain([JSON, 'access',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
48520
|
-
icon: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
48521
|
-
greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
48522
|
-
enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
48523
|
-
quickActions: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
48524
|
-
suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
48712
|
+
_optionalChain([ctrl, 'optionalAccess', _1225 => _1225.signal])
|
|
48702
48713
|
);
|
|
48703
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
49321
|
-
const requestBody = _optionalChain([extra, 'optionalAccess',
|
|
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',
|
|
49331
|
-
..._optionalChain([extra, 'optionalAccess',
|
|
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',
|
|
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',
|
|
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',
|
|
49438
|
-
..._optionalChain([card, 'optionalAccess',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
49838
|
-
currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
49839
|
-
currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
50133
|
-
if (_optionalChain([escalatedData, 'optionalAccess',
|
|
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',
|
|
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',
|
|
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',
|
|
50191
|
+
if ("details" in data && _optionalChain([data, 'optionalAccess', _1296 => _1296.details])) {
|
|
50181
50192
|
try {
|
|
50182
|
-
message2 = _optionalChain([JSON, 'access',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
50797
|
-
currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess',
|
|
50798
|
-
currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess',
|
|
50799
|
-
currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess',
|
|
50800
|
-
currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess',
|
|
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',
|
|
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',
|
|
51117
|
-
const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
51802
|
-
canArchive: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess',
|
|
51803
|
-
fetchArchivedDialogs: _optionalChain([mingoDialogCapabilities, 'optionalAccess',
|
|
51804
|
-
unarchiveDialog: _optionalChain([mingoDialogCapabilities, 'optionalAccess',
|
|
51805
|
-
searchQuery: _optionalChain([mingoDialogCapabilities, 'optionalAccess',
|
|
51806
|
-
onSearchChange: _optionalChain([mingoDialogCapabilities, 'optionalAccess',
|
|
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',
|
|
51811
|
-
canArchive: !!_optionalChain([effectiveModes, 'access',
|
|
51812
|
-
fetchArchivedDialogs: _optionalChain([effectiveModes, 'access',
|
|
51813
|
-
unarchiveDialog: _optionalChain([effectiveModes, 'access',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
51920
|
-
const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
52008
|
-
const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess',
|
|
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',
|
|
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',
|
|
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',
|
|
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',
|
|
52357
|
-
icon: _nullishCoalesce(effectiveAssistantIcon, () => ( _optionalChain([guideWelcome, 'optionalAccess',
|
|
52358
|
-
quickActions: agentConfigUrl && guideSuggestedActions.length > 0 ? guideSuggestedActions : _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess',
|
|
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-
|
|
53536
|
+
//# sourceMappingURL=chunk-KUDLV25M.cjs.map
|