@flamingo-stack/openframe-frontend-core 0.0.420 → 0.0.421-snapshot.20260713170448
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-WBLTGO7G.cjs → chunk-2JNFQEVX.cjs} +26 -26
- package/dist/{chunk-WBLTGO7G.cjs.map → chunk-2JNFQEVX.cjs.map} +1 -1
- package/dist/{chunk-T55A3BQD.js → chunk-3BGWK5QI.js} +4 -4
- package/dist/{chunk-ZZFLE5LG.js → chunk-4BWQYGIY.js} +2 -2
- package/dist/{chunk-KEWTMPHB.js → chunk-4TMMYZTY.js} +2 -2
- package/dist/{chunk-U7EUN5FZ.js → chunk-6F5OKJTW.js} +4 -4
- package/dist/{chunk-KLMLQ35Y.cjs → chunk-A2IRUIUJ.cjs} +37 -37
- package/dist/{chunk-KLMLQ35Y.cjs.map → chunk-A2IRUIUJ.cjs.map} +1 -1
- package/dist/{chunk-KPLRIPEH.cjs → chunk-B62DI2SC.cjs} +15 -15
- package/dist/{chunk-KPLRIPEH.cjs.map → chunk-B62DI2SC.cjs.map} +1 -1
- package/dist/{chunk-PUXTMLKC.cjs → chunk-BF5BXKM7.cjs} +62 -62
- package/dist/{chunk-PUXTMLKC.cjs.map → chunk-BF5BXKM7.cjs.map} +1 -1
- package/dist/{chunk-PAF4EFRR.js → chunk-DUHM44CQ.js} +2 -2
- package/dist/{chunk-YYF2AYM3.js → chunk-HFK33T6A.js} +4 -4
- package/dist/{chunk-J7WFE7WL.js → chunk-JSL3VXGJ.js} +2 -2
- package/dist/{chunk-BXXXBZYY.cjs → chunk-KUDLV25M.cjs} +190 -154
- package/dist/chunk-KUDLV25M.cjs.map +1 -0
- package/dist/{chunk-OBMYKFBO.js → chunk-LHM2VUTO.js} +2 -2
- package/dist/{chunk-AMUTZJZX.cjs → chunk-LWC2U5OC.cjs} +9 -9
- package/dist/{chunk-AMUTZJZX.cjs.map → chunk-LWC2U5OC.cjs.map} +1 -1
- package/dist/{chunk-2AN4EHN6.cjs → chunk-O3FSSWV4.cjs} +7 -7
- package/dist/{chunk-2AN4EHN6.cjs.map → chunk-O3FSSWV4.cjs.map} +1 -1
- package/dist/{chunk-PHJ6335O.cjs → chunk-PO4PXWZN.cjs} +5 -5
- package/dist/{chunk-PHJ6335O.cjs.map → chunk-PO4PXWZN.cjs.map} +1 -1
- package/dist/{chunk-ORDDVXDS.cjs → chunk-RGKGRS2T.cjs} +59 -59
- package/dist/{chunk-ORDDVXDS.cjs.map → chunk-RGKGRS2T.cjs.map} +1 -1
- package/dist/{chunk-5DTE27A4.cjs → chunk-ULUH2X53.cjs} +11 -11
- package/dist/{chunk-5DTE27A4.cjs.map → chunk-ULUH2X53.cjs.map} +1 -1
- package/dist/{chunk-NIS5VXZJ.cjs → chunk-WAQH35VG.cjs} +26 -26
- package/dist/{chunk-NIS5VXZJ.cjs.map → chunk-WAQH35VG.cjs.map} +1 -1
- package/dist/{chunk-G4W5D7L4.js → chunk-WQEEGFDM.js} +2 -2
- package/dist/{chunk-GC4355MW.js → chunk-XFYQV2K2.js} +2 -2
- package/dist/{chunk-3AJOKFJ4.js → chunk-YJDVAT7J.js} +66 -30
- package/dist/chunk-YJDVAT7J.js.map +1 -0
- package/dist/{chunk-4OZLRBOH.js → chunk-YUMFRC3D.js} +4 -4
- package/dist/{chunk-NDYJ37LY.cjs → chunk-YZQNKMFQ.cjs} +31 -31
- package/dist/{chunk-NDYJ37LY.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/embeddable-chat.d.ts +9 -0
- package/dist/components/chat/embeddable-chat.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/tabs.d.ts +10 -0
- package/dist/components/tabs.d.ts.map +1 -1
- package/dist/components/tickets/index.cjs +5 -5
- package/dist/components/tickets/index.js +4 -4
- package/dist/components/ui/dashboard-info-card.d.ts +26 -12
- package/dist/components/ui/dashboard-info-card.d.ts.map +1 -1
- package/dist/components/ui/index.cjs +2 -2
- package/dist/components/ui/index.js +1 -1
- package/dist/components/ui/tab-navigation.d.ts.map +1 -1
- package/dist/components/ui/tabs.d.ts +11 -0
- package/dist/components/ui/tabs.d.ts.map +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/embeddable-chat.tsx +17 -3
- 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/components/tabs.tsx +10 -0
- package/src/components/ui/dashboard-info-card.tsx +70 -45
- package/src/components/ui/tab-navigation.tsx +5 -2
- package/src/components/ui/tabs.tsx +11 -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/DashboardInfoCard.stories.tsx +94 -9
- package/src/stories/EmbeddableChat.stories.tsx +159 -0
- package/src/stories/ErrorMessageDisplay.stories.tsx +66 -0
- package/src/stories/ThinkingDisplay.stories.tsx +63 -0
- package/src/stories/TicketCard.stories.tsx +245 -0
- package/dist/chunk-3AJOKFJ4.js.map +0 -1
- package/dist/chunk-BXXXBZYY.cjs.map +0 -1
- /package/dist/{chunk-T55A3BQD.js.map → chunk-3BGWK5QI.js.map} +0 -0
- /package/dist/{chunk-ZZFLE5LG.js.map → chunk-4BWQYGIY.js.map} +0 -0
- /package/dist/{chunk-KEWTMPHB.js.map → chunk-4TMMYZTY.js.map} +0 -0
- /package/dist/{chunk-U7EUN5FZ.js.map → chunk-6F5OKJTW.js.map} +0 -0
- /package/dist/{chunk-PAF4EFRR.js.map → chunk-DUHM44CQ.js.map} +0 -0
- /package/dist/{chunk-YYF2AYM3.js.map → chunk-HFK33T6A.js.map} +0 -0
- /package/dist/{chunk-J7WFE7WL.js.map → chunk-JSL3VXGJ.js.map} +0 -0
- /package/dist/{chunk-OBMYKFBO.js.map → chunk-LHM2VUTO.js.map} +0 -0
- /package/dist/{chunk-G4W5D7L4.js.map → chunk-WQEEGFDM.js.map} +0 -0
- /package/dist/{chunk-GC4355MW.js.map → chunk-XFYQV2K2.js.map} +0 -0
- /package/dist/{chunk-4OZLRBOH.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",
|
|
@@ -18259,7 +18263,10 @@ function TabNavigation({
|
|
|
18259
18263
|
"flex gap-[var(--spacing-system-xxs)] items-center justify-center p-[var(--spacing-system-m)] relative shrink-0 cursor-pointer",
|
|
18260
18264
|
"transition-all duration-200 bg-transparent border-none outline-none",
|
|
18261
18265
|
stretchTabs && "flex-1",
|
|
18262
|
-
|
|
18266
|
+
// Known limitation: ODS color vars hold hex values, so Tailwind
|
|
18267
|
+
// alpha modifiers (to-ods-accent/10) silently produce no CSS.
|
|
18268
|
+
// color-mix() accepts hex, so we derive the 10%-alpha stop from the token.
|
|
18269
|
+
isActive ? "bg-gradient-to-b from-transparent to-[color-mix(in_srgb,var(--color-accent-primary)_10%,transparent)]" : "hover:bg-gradient-to-b hover:from-transparent hover:to-[color-mix(in_srgb,var(--color-accent-primary)_10%,transparent)]"
|
|
18263
18270
|
),
|
|
18264
18271
|
children: [
|
|
18265
18272
|
tab.icon ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative flex items-center justify-center", children: [
|
|
@@ -24638,6 +24645,8 @@ function FloatingTooltip({
|
|
|
24638
24645
|
function DashboardInfoCard({
|
|
24639
24646
|
title,
|
|
24640
24647
|
titleSlot,
|
|
24648
|
+
titleTag,
|
|
24649
|
+
icon,
|
|
24641
24650
|
value,
|
|
24642
24651
|
percentage,
|
|
24643
24652
|
showProgress = false,
|
|
@@ -24667,33 +24676,23 @@ function DashboardInfoCard({
|
|
|
24667
24676
|
};
|
|
24668
24677
|
const renderProgress = () => {
|
|
24669
24678
|
if (!showProgress || percentage === void 0) return null;
|
|
24670
|
-
const strokeFor = (
|
|
24679
|
+
const strokeFor = (size3) => Math.max(2, Math.round(size3 * 10 / 56));
|
|
24671
24680
|
const common = {
|
|
24672
24681
|
percentage,
|
|
24673
24682
|
variant: progressVariant,
|
|
24674
24683
|
overflow: progressOverflow,
|
|
24675
24684
|
showLabel: false
|
|
24676
24685
|
};
|
|
24677
|
-
|
|
24678
|
-
|
|
24679
|
-
|
|
24680
|
-
|
|
24681
|
-
|
|
24686
|
+
const size2 = typeof progressSize === "number" ? { base: 24, md: progressSize } : _nullishCoalesce(progressSize, () => ( { base: 24, md: 56 }));
|
|
24687
|
+
const { base, md, lg } = size2;
|
|
24688
|
+
const rings = [
|
|
24689
|
+
{ key: "base", size: base, className: md !== void 0 ? "md:hidden" : lg !== void 0 ? "lg:hidden" : "" }
|
|
24690
|
+
];
|
|
24691
|
+
if (md !== void 0) {
|
|
24692
|
+
rings.push({ key: "md", size: md, className: lg !== void 0 ? "hidden md:block lg:hidden" : "hidden md:block" });
|
|
24682
24693
|
}
|
|
24683
|
-
|
|
24684
|
-
const rings = [];
|
|
24685
|
-
if (md !== void 0 && lg !== void 0) {
|
|
24686
|
-
rings.push({ key: "base", size: base, className: "md:hidden" });
|
|
24687
|
-
rings.push({ key: "md", size: md, className: "hidden md:block lg:hidden" });
|
|
24694
|
+
if (lg !== void 0) {
|
|
24688
24695
|
rings.push({ key: "lg", size: lg, className: "hidden lg:block" });
|
|
24689
|
-
} else if (md !== void 0) {
|
|
24690
|
-
rings.push({ key: "base", size: base, className: "md:hidden" });
|
|
24691
|
-
rings.push({ key: "md", size: md, className: "hidden md:block" });
|
|
24692
|
-
} else if (lg !== void 0) {
|
|
24693
|
-
rings.push({ key: "base", size: base, className: "lg:hidden" });
|
|
24694
|
-
rings.push({ key: "lg", size: lg, className: "hidden lg:block" });
|
|
24695
|
-
} else {
|
|
24696
|
-
rings.push({ key: "base", size: base, className: "" });
|
|
24697
24696
|
}
|
|
24698
24697
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: rings.map((ring) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24699
24698
|
CircularProgress,
|
|
@@ -24707,10 +24706,14 @@ function DashboardInfoCard({
|
|
|
24707
24706
|
)) });
|
|
24708
24707
|
};
|
|
24709
24708
|
const cardContent = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
24710
|
-
/* @__PURE__ */ _jsxruntime.
|
|
24711
|
-
|
|
24709
|
+
icon && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "shrink-0 size-8 md:size-14 p-[var(--spacing-system-xxs)] bg-ods-bg border border-ods-border rounded-sm flex items-center justify-center text-ods-text-primary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "size-4 md:size-6 flex items-center justify-center [&>*]:size-full", children: icon }) }),
|
|
24710
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 min-w-0 flex flex-col", children: [
|
|
24711
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xxs)]", children: [
|
|
24712
|
+
_nullishCoalesce(titleSlot, () => ( (title !== void 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h5 text-ods-text-secondary truncate", children: title })))),
|
|
24713
|
+
titleTag
|
|
24714
|
+
] }),
|
|
24712
24715
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: [
|
|
24713
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "text-h2 text-ods-text-primary", valueClassName), children: formattedValue }),
|
|
24716
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "text-h3 md:text-h2 text-ods-text-primary truncate", valueClassName), children: formattedValue }),
|
|
24714
24717
|
subValue && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6 text-ods-text-secondary", children: subValue }),
|
|
24715
24718
|
renderPercentage(),
|
|
24716
24719
|
tooltip && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, FloatingTooltip, { content: tooltip, side: "top", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "cursor-help text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBGD345ZVcjs.QuestionCircleIcon, { size: 20 }) }) })
|
|
@@ -24718,7 +24721,7 @@ function DashboardInfoCard({
|
|
|
24718
24721
|
] }),
|
|
24719
24722
|
renderProgress()
|
|
24720
24723
|
] });
|
|
24721
|
-
const baseClassName = "bg-ods-card border border-ods-border rounded-
|
|
24724
|
+
const baseClassName = "bg-ods-card border border-ods-border rounded-md p-[var(--spacing-system-xsf)] md:p-[var(--spacing-system-m)] h-16 md:h-[104px] flex gap-[var(--spacing-system-s)] md:gap-[var(--spacing-system-m)] items-center transition-all";
|
|
24722
24725
|
if (href) {
|
|
24723
24726
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24724
24727
|
_chunkWBR7H6E3cjs.next_link_default,
|
|
@@ -48166,6 +48169,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48166
48169
|
const hasEverStreamedRef = _react.useRef.call(void 0, false);
|
|
48167
48170
|
const directModeFlagRef = _react.useRef.call(void 0, isDirectMode);
|
|
48168
48171
|
const sawDirectMessageRef = _react.useRef.call(void 0, false);
|
|
48172
|
+
const directTeardownFiredRef = _react.useRef.call(void 0, false);
|
|
48169
48173
|
_react.useEffect.call(void 0, () => {
|
|
48170
48174
|
directModeFlagRef.current = isDirectMode;
|
|
48171
48175
|
}, [isDirectMode]);
|
|
@@ -48179,8 +48183,9 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48179
48183
|
const emitSegments = (s, meta) => _optionalChain([callbacks, 'access', _1163 => _1163.onSegmentsUpdate, 'optionalCall', _1164 => _1164(s, streamSeq != null ? { ...meta, streamSeq } : meta)]);
|
|
48180
48184
|
if (action.action === "direct_message") sawDirectMessageRef.current = true;
|
|
48181
48185
|
if ((directModeFlagRef.current || sawDirectMessageRef.current) && !DIRECT_MODE_ALLOWED.has(action.action)) {
|
|
48182
|
-
if (isInStreamRef.current) {
|
|
48186
|
+
if (isInStreamRef.current || !directTeardownFiredRef.current) {
|
|
48183
48187
|
isInStreamRef.current = false;
|
|
48188
|
+
directTeardownFiredRef.current = true;
|
|
48184
48189
|
_optionalChain([callbacks, 'access', _1165 => _1165.onStreamEnd, 'optionalCall', _1166 => _1166()]);
|
|
48185
48190
|
accumulator.resetSegments();
|
|
48186
48191
|
}
|
|
@@ -48220,6 +48225,9 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48220
48225
|
break;
|
|
48221
48226
|
}
|
|
48222
48227
|
case "tool_execution": {
|
|
48228
|
+
if (action.segment.data.type === "EXECUTING_TOOL") {
|
|
48229
|
+
_optionalChain([callbacks, 'access', _1173 => _1173.onAgentBusy, 'optionalCall', _1174 => _1174()]);
|
|
48230
|
+
}
|
|
48223
48231
|
if (!isInStreamRef.current && callbacks.onToolExecuted) {
|
|
48224
48232
|
callbacks.onToolExecuted(action.segment);
|
|
48225
48233
|
break;
|
|
@@ -48242,7 +48250,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48242
48250
|
emitSegments(segments);
|
|
48243
48251
|
} else {
|
|
48244
48252
|
pendingEscalatedRef.current.set(requestId, { command, explanation, approvalType });
|
|
48245
|
-
_optionalChain([callbacks, 'access',
|
|
48253
|
+
_optionalChain([callbacks, 'access', _1175 => _1175.onEscalatedApproval, 'optionalCall', _1176 => _1176(requestId, { command, explanation, approvalType })]);
|
|
48246
48254
|
}
|
|
48247
48255
|
break;
|
|
48248
48256
|
}
|
|
@@ -48254,13 +48262,13 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48254
48262
|
const summary = required ? getCommandText(required) : `Batch of ${toolCalls.length} tool calls`;
|
|
48255
48263
|
pendingEscalatedRef.current.set(requestId, {
|
|
48256
48264
|
command: summary,
|
|
48257
|
-
explanation: _optionalChain([required, 'optionalAccess',
|
|
48265
|
+
explanation: _optionalChain([required, 'optionalAccess', _1177 => _1177.toolExplanation]),
|
|
48258
48266
|
approvalType,
|
|
48259
48267
|
toolCalls
|
|
48260
48268
|
});
|
|
48261
|
-
_optionalChain([callbacks, 'access',
|
|
48269
|
+
_optionalChain([callbacks, 'access', _1178 => _1178.onEscalatedApproval, 'optionalCall', _1179 => _1179(requestId, {
|
|
48262
48270
|
command: summary,
|
|
48263
|
-
explanation: _optionalChain([required, 'optionalAccess',
|
|
48271
|
+
explanation: _optionalChain([required, 'optionalAccess', _1180 => _1180.toolExplanation]),
|
|
48264
48272
|
approvalType
|
|
48265
48273
|
})]);
|
|
48266
48274
|
break;
|
|
@@ -48286,11 +48294,12 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48286
48294
|
}
|
|
48287
48295
|
case "approval_result": {
|
|
48288
48296
|
const { requestId, approved, approvalType, resolvedByName } = action;
|
|
48297
|
+
if (approved) _optionalChain([callbacks, 'access', _1181 => _1181.onAgentBusy, 'optionalCall', _1182 => _1182()]);
|
|
48289
48298
|
const escalatedData = pendingEscalatedRef.current.get(requestId);
|
|
48290
48299
|
const status = approved ? "approved" : "rejected";
|
|
48291
48300
|
if (escalatedData) {
|
|
48292
48301
|
pendingEscalatedRef.current.delete(requestId);
|
|
48293
|
-
_optionalChain([callbacks, 'access',
|
|
48302
|
+
_optionalChain([callbacks, 'access', _1183 => _1183.onEscalatedApprovalResult, 'optionalCall', _1184 => _1184(requestId, approved, {
|
|
48294
48303
|
command: escalatedData.command,
|
|
48295
48304
|
explanation: escalatedData.explanation,
|
|
48296
48305
|
approvalType: escalatedData.approvalType
|
|
@@ -48336,29 +48345,29 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48336
48345
|
emitSegments(accumulator.getSegments());
|
|
48337
48346
|
}
|
|
48338
48347
|
}
|
|
48339
|
-
_optionalChain([callbacks, 'access',
|
|
48348
|
+
_optionalChain([callbacks, 'access', _1185 => _1185.onApprovalResolved, 'optionalCall', _1186 => _1186(requestId, status, approvalType, resolvedByName)]);
|
|
48340
48349
|
break;
|
|
48341
48350
|
}
|
|
48342
48351
|
case "error": {
|
|
48343
48352
|
let message2;
|
|
48344
|
-
if ("details" in action && _optionalChain([action, 'optionalAccess',
|
|
48353
|
+
if ("details" in action && _optionalChain([action, 'optionalAccess', _1187 => _1187.details])) {
|
|
48345
48354
|
try {
|
|
48346
|
-
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]);
|
|
48347
48356
|
} catch (e60) {
|
|
48348
48357
|
message2 = action.details;
|
|
48349
48358
|
}
|
|
48350
48359
|
}
|
|
48351
48360
|
const segments = accumulator.addError(action.error, message2);
|
|
48352
48361
|
emitSegments(segments);
|
|
48353
|
-
_optionalChain([callbacks, 'access',
|
|
48362
|
+
_optionalChain([callbacks, 'access', _1192 => _1192.onError, 'optionalCall', _1193 => _1193(action.error, message2)]);
|
|
48354
48363
|
break;
|
|
48355
48364
|
}
|
|
48356
48365
|
case "system": {
|
|
48357
|
-
_optionalChain([callbacks, 'access',
|
|
48366
|
+
_optionalChain([callbacks, 'access', _1194 => _1194.onSystemMessage, 'optionalCall', _1195 => _1195(action.text, { streamSeq })]);
|
|
48358
48367
|
break;
|
|
48359
48368
|
}
|
|
48360
48369
|
case "direct_message": {
|
|
48361
|
-
_optionalChain([callbacks, 'access',
|
|
48370
|
+
_optionalChain([callbacks, 'access', _1196 => _1196.onDirectMessage, 'optionalCall', _1197 => _1197(action.text, {
|
|
48362
48371
|
ownerType: action.ownerType,
|
|
48363
48372
|
displayName: action.displayName,
|
|
48364
48373
|
userId: action.userId,
|
|
@@ -48367,7 +48376,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48367
48376
|
break;
|
|
48368
48377
|
}
|
|
48369
48378
|
case "message_request":
|
|
48370
|
-
_optionalChain([callbacks, 'access',
|
|
48379
|
+
_optionalChain([callbacks, 'access', _1198 => _1198.onUserMessage, 'optionalCall', _1199 => _1199(action.text, {
|
|
48371
48380
|
ownerType: action.ownerType,
|
|
48372
48381
|
displayName: action.displayName,
|
|
48373
48382
|
userId: action.userId,
|
|
@@ -48376,7 +48385,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48376
48385
|
})]);
|
|
48377
48386
|
break;
|
|
48378
48387
|
case "token_usage":
|
|
48379
|
-
_optionalChain([callbacks, 'access',
|
|
48388
|
+
_optionalChain([callbacks, 'access', _1200 => _1200.onTokenUsage, 'optionalCall', _1201 => _1201(action.data)]);
|
|
48380
48389
|
break;
|
|
48381
48390
|
case "context_compaction_start": {
|
|
48382
48391
|
const standalone = !isInStreamRef.current;
|
|
@@ -48391,7 +48400,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48391
48400
|
break;
|
|
48392
48401
|
}
|
|
48393
48402
|
case "dialog_closed":
|
|
48394
|
-
_optionalChain([callbacks, 'access',
|
|
48403
|
+
_optionalChain([callbacks, 'access', _1202 => _1202.onDialogClosed, 'optionalCall', _1203 => _1203()]);
|
|
48395
48404
|
break;
|
|
48396
48405
|
default:
|
|
48397
48406
|
break;
|
|
@@ -48407,6 +48416,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48407
48416
|
pendingEscalatedRef.current.clear();
|
|
48408
48417
|
hasInitializedWithData.current = false;
|
|
48409
48418
|
sawDirectMessageRef.current = false;
|
|
48419
|
+
directTeardownFiredRef.current = false;
|
|
48410
48420
|
}, []);
|
|
48411
48421
|
const updateApprovalStatus = _react.useCallback.call(void 0,
|
|
48412
48422
|
(requestId, status, resolvedByName) => {
|
|
@@ -48438,7 +48448,7 @@ async function fetchSlashCommands(prefix, signal, commandsUrl) {
|
|
|
48438
48448
|
const data = await res.json();
|
|
48439
48449
|
return _nullishCoalesce(data.commands, () => ( []));
|
|
48440
48450
|
} catch (err) {
|
|
48441
|
-
if (_optionalChain([err, 'optionalAccess',
|
|
48451
|
+
if (_optionalChain([err, 'optionalAccess', _1204 => _1204.name]) === "AbortError") throw err;
|
|
48442
48452
|
console.warn("[chat] slash-commands fetch failed, showing none:", err);
|
|
48443
48453
|
return [];
|
|
48444
48454
|
}
|
|
@@ -48459,7 +48469,7 @@ function useSlashCommands(prefix, commandsUrl) {
|
|
|
48459
48469
|
const next = await fetchSlashCommands(prefix, ctrl.signal, commandsUrl);
|
|
48460
48470
|
if (!cancelled) setCommands(next);
|
|
48461
48471
|
} catch (err) {
|
|
48462
|
-
if (!cancelled && _optionalChain([err, 'optionalAccess',
|
|
48472
|
+
if (!cancelled && _optionalChain([err, 'optionalAccess', _1205 => _1205.name]) !== "AbortError") {
|
|
48463
48473
|
console.warn("[use-slash-commands] fetch failed:", err);
|
|
48464
48474
|
}
|
|
48465
48475
|
} finally {
|
|
@@ -48478,7 +48488,7 @@ function useSlashCommandRegistry(commandsUrl, options) {
|
|
|
48478
48488
|
const query = _reactquery.useQuery.call(void 0, {
|
|
48479
48489
|
queryKey: ["chat-slash-commands", commandsUrl],
|
|
48480
48490
|
queryFn: ({ signal }) => fetchSlashCommands("", signal, commandsUrl),
|
|
48481
|
-
enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
48491
|
+
enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1206 => _1206.enabled]), () => ( true)),
|
|
48482
48492
|
staleTime: Infinity,
|
|
48483
48493
|
gcTime: Infinity,
|
|
48484
48494
|
// The commands registry is non-critical chrome — a failure degrades to an
|
|
@@ -48517,21 +48527,21 @@ async function fetchEmptyStateConfig(signal, emptyStateUrl) {
|
|
|
48517
48527
|
}
|
|
48518
48528
|
const data = await res.json();
|
|
48519
48529
|
return {
|
|
48520
|
-
name: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
48521
|
-
icon: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
48522
|
-
greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
48523
|
-
enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
48524
|
-
quickActions: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
48525
|
-
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]), () => ( []))
|
|
48526
48536
|
};
|
|
48527
48537
|
} catch (err) {
|
|
48528
|
-
if (_optionalChain([err, 'optionalAccess',
|
|
48538
|
+
if (_optionalChain([err, 'optionalAccess', _1213 => _1213.name]) === "AbortError") throw err;
|
|
48529
48539
|
console.warn("[chat] empty-state config fetch failed, using neutral defaults:", err);
|
|
48530
48540
|
return EMPTY_STATE_FALLBACK;
|
|
48531
48541
|
}
|
|
48532
48542
|
}
|
|
48533
48543
|
function useEmptyStateConfig(emptyStateUrl, options) {
|
|
48534
|
-
const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
48544
|
+
const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1214 => _1214.enabled]), () => ( true))) && !!emptyStateUrl;
|
|
48535
48545
|
const query = _reactquery.useQuery.call(void 0, {
|
|
48536
48546
|
queryKey: ["chat-empty-state", emptyStateUrl],
|
|
48537
48547
|
queryFn: ({ signal }) => fetchEmptyStateConfig(signal, emptyStateUrl),
|
|
@@ -48560,7 +48570,7 @@ var CHAT_ATTACHMENT_MAX_SIZE_BYTES = 25 * 1024 * 1024;
|
|
|
48560
48570
|
var STORAGE_CACHE_CONTROL_IMMUTABLE = "public, max-age=31536000, immutable";
|
|
48561
48571
|
function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
48562
48572
|
return new Promise((resolve, reject) => {
|
|
48563
|
-
if (_optionalChain([signal, 'optionalAccess',
|
|
48573
|
+
if (_optionalChain([signal, 'optionalAccess', _1215 => _1215.aborted])) {
|
|
48564
48574
|
reject(new Error("Upload cancelled"));
|
|
48565
48575
|
return;
|
|
48566
48576
|
}
|
|
@@ -48574,7 +48584,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
|
48574
48584
|
xhr.removeEventListener("error", handleError);
|
|
48575
48585
|
xhr.removeEventListener("abort", handleAbort);
|
|
48576
48586
|
xhr.removeEventListener("timeout", handleTimeout);
|
|
48577
|
-
_optionalChain([signal, 'optionalAccess',
|
|
48587
|
+
_optionalChain([signal, 'optionalAccess', _1216 => _1216.removeEventListener, 'call', _1217 => _1217("abort", handleSignalAbort)]);
|
|
48578
48588
|
if (xhr.readyState !== XMLHttpRequest.DONE) xhr.abort();
|
|
48579
48589
|
};
|
|
48580
48590
|
const handleProgress = (event) => {
|
|
@@ -48610,7 +48620,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
|
48610
48620
|
const handleSignalAbort = () => {
|
|
48611
48621
|
xhr.abort();
|
|
48612
48622
|
};
|
|
48613
|
-
_optionalChain([signal, 'optionalAccess',
|
|
48623
|
+
_optionalChain([signal, 'optionalAccess', _1218 => _1218.addEventListener, 'call', _1219 => _1219("abort", handleSignalAbort, { once: true })]);
|
|
48614
48624
|
xhr.upload.addEventListener("progress", handleProgress);
|
|
48615
48625
|
xhr.addEventListener("load", handleLoad);
|
|
48616
48626
|
xhr.addEventListener("error", handleError);
|
|
@@ -48654,12 +48664,12 @@ function useChatAttachments() {
|
|
|
48654
48664
|
try {
|
|
48655
48665
|
sniffed = await _filetype.fileTypeFromBlob.call(void 0, att.file);
|
|
48656
48666
|
} catch (err) {
|
|
48657
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
48667
|
+
if (_optionalChain([ctrl, 'optionalAccess', _1220 => _1220.signal, 'access', _1221 => _1221.aborted])) return;
|
|
48658
48668
|
throw new Error(
|
|
48659
48669
|
`Could not read file content: ${err instanceof Error ? err.message : String(err)}`
|
|
48660
48670
|
);
|
|
48661
48671
|
}
|
|
48662
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
48672
|
+
if (_optionalChain([ctrl, 'optionalAccess', _1222 => _1222.signal, 'access', _1223 => _1223.aborted])) return;
|
|
48663
48673
|
if (!sniffed) {
|
|
48664
48674
|
throw new Error("Unrecognized file format");
|
|
48665
48675
|
}
|
|
@@ -48673,7 +48683,7 @@ function useChatAttachments() {
|
|
|
48673
48683
|
const urlResp = await _chunkSR6LEWCFcjs.embedAuthedFetch.call(void 0, uploadUrlEndpoint, {
|
|
48674
48684
|
method: "POST",
|
|
48675
48685
|
headers: { "Content-Type": "application/json" },
|
|
48676
|
-
signal: _optionalChain([ctrl, 'optionalAccess',
|
|
48686
|
+
signal: _optionalChain([ctrl, 'optionalAccess', _1224 => _1224.signal]),
|
|
48677
48687
|
body: JSON.stringify({
|
|
48678
48688
|
fileName: att.file.name,
|
|
48679
48689
|
// Pass the SNIFFED MIME (not `file.type`, which can be a
|
|
@@ -48699,9 +48709,9 @@ function useChatAttachments() {
|
|
|
48699
48709
|
(pct) => {
|
|
48700
48710
|
updateOne(att.id, { progress: pct });
|
|
48701
48711
|
},
|
|
48702
|
-
_optionalChain([ctrl, 'optionalAccess',
|
|
48712
|
+
_optionalChain([ctrl, 'optionalAccess', _1225 => _1225.signal])
|
|
48703
48713
|
);
|
|
48704
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
48714
|
+
if (_optionalChain([ctrl, 'optionalAccess', _1226 => _1226.signal, 'access', _1227 => _1227.aborted])) return;
|
|
48705
48715
|
updateOne(att.id, {
|
|
48706
48716
|
status: "ready",
|
|
48707
48717
|
progress: 100,
|
|
@@ -48709,7 +48719,7 @@ function useChatAttachments() {
|
|
|
48709
48719
|
viewToken: mintData.viewToken
|
|
48710
48720
|
});
|
|
48711
48721
|
} catch (err) {
|
|
48712
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
48722
|
+
if (_optionalChain([ctrl, 'optionalAccess', _1228 => _1228.signal, 'access', _1229 => _1229.aborted])) return;
|
|
48713
48723
|
const message2 = err instanceof Error ? err.message : String(err);
|
|
48714
48724
|
updateOne(att.id, { status: "error", progress: 0, errorMessage: message2 });
|
|
48715
48725
|
} finally {
|
|
@@ -48860,7 +48870,7 @@ var ANON_DEFAULTS = {
|
|
|
48860
48870
|
function useResolveChatIdentity(enabled) {
|
|
48861
48871
|
const runtime = _chunk2B6773QMcjs.useRequiredChatRuntime.call(void 0, );
|
|
48862
48872
|
const url = runtime.endpoints.identityUrl;
|
|
48863
|
-
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));
|
|
48864
48874
|
const [data, setData] = _react.useState.call(void 0, ANON_DEFAULTS);
|
|
48865
48875
|
const [isLoading, setIsLoading] = _react.useState.call(void 0, enabled);
|
|
48866
48876
|
_react.useEffect.call(void 0, () => {
|
|
@@ -48951,7 +48961,7 @@ function useSSE({ useMock = true, debugMode = false, streamFn } = {}) {
|
|
|
48951
48961
|
yield chunk;
|
|
48952
48962
|
}
|
|
48953
48963
|
} catch (err) {
|
|
48954
|
-
if (_optionalChain([err, 'optionalAccess',
|
|
48964
|
+
if (_optionalChain([err, 'optionalAccess', _1231 => _1231.name]) === "AbortError" || ctrl.signal.aborted) {
|
|
48955
48965
|
return;
|
|
48956
48966
|
}
|
|
48957
48967
|
const errorMessage = err instanceof Error ? err.message : "An error occurred";
|
|
@@ -49002,7 +49012,7 @@ function useChat({
|
|
|
49002
49012
|
const onMessagesChangeRef = _react.useRef.call(void 0, onMessagesChange);
|
|
49003
49013
|
onMessagesChangeRef.current = onMessagesChange;
|
|
49004
49014
|
_react.useEffect.call(void 0, () => {
|
|
49005
|
-
_optionalChain([onMessagesChangeRef, 'access',
|
|
49015
|
+
_optionalChain([onMessagesChangeRef, 'access', _1232 => _1232.current, 'optionalCall', _1233 => _1233(messages)]);
|
|
49006
49016
|
}, [messages]);
|
|
49007
49017
|
const {
|
|
49008
49018
|
streamMessage,
|
|
@@ -49039,7 +49049,7 @@ function useChat({
|
|
|
49039
49049
|
name: "You",
|
|
49040
49050
|
content: text,
|
|
49041
49051
|
timestamp: /* @__PURE__ */ new Date(),
|
|
49042
|
-
..._optionalChain([options, 'optionalAccess',
|
|
49052
|
+
..._optionalChain([options, 'optionalAccess', _1234 => _1234.hidden]) ? { hidden: true } : {}
|
|
49043
49053
|
};
|
|
49044
49054
|
addMessage(userMessage);
|
|
49045
49055
|
setIsTyping(true);
|
|
@@ -49101,7 +49111,7 @@ function useChat({
|
|
|
49101
49111
|
currentTextSegment = "";
|
|
49102
49112
|
}
|
|
49103
49113
|
const seg = segment;
|
|
49104
|
-
const proposalId = _optionalChain([seg, 'access',
|
|
49114
|
+
const proposalId = _optionalChain([seg, 'access', _1235 => _1235.data, 'optionalAccess', _1236 => _1236.requestId]);
|
|
49105
49115
|
const updateApprovalMessage = (transform) => {
|
|
49106
49116
|
setMessages((prev) => {
|
|
49107
49117
|
for (let i = prev.length - 1; i >= 0; i--) {
|
|
@@ -49110,7 +49120,7 @@ function useChat({
|
|
|
49110
49120
|
if (!Array.isArray(m.content)) continue;
|
|
49111
49121
|
const segments = m.content;
|
|
49112
49122
|
const hasMatch = segments.some(
|
|
49113
|
-
(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
|
|
49114
49124
|
);
|
|
49115
49125
|
if (!hasMatch) continue;
|
|
49116
49126
|
const next = [...prev];
|
|
@@ -49152,11 +49162,11 @@ function useChat({
|
|
|
49152
49162
|
if (!Array.isArray(m.content)) continue;
|
|
49153
49163
|
const segments = m.content;
|
|
49154
49164
|
const hasMatch = segments.some(
|
|
49155
|
-
(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
|
|
49156
49166
|
);
|
|
49157
49167
|
if (!hasMatch) continue;
|
|
49158
49168
|
const flipped = segments.map(
|
|
49159
|
-
(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
|
|
49160
49170
|
);
|
|
49161
49171
|
const next = [...prev];
|
|
49162
49172
|
next[i] = { ...m, content: flipped };
|
|
@@ -49318,8 +49328,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
49318
49328
|
})),
|
|
49319
49329
|
{ role: "user", content: message2 }
|
|
49320
49330
|
];
|
|
49321
|
-
const targetPath = _optionalChain([extra, 'optionalAccess',
|
|
49322
|
-
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]) ? {
|
|
49323
49333
|
proposal_id: extra.approvalAction.proposalId,
|
|
49324
49334
|
action: extra.approvalAction.action,
|
|
49325
49335
|
messages: currentMessages.filter((m) => (m.role === "user" || m.role === "assistant") && !m.hidden).map((m) => ({
|
|
@@ -49328,8 +49338,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
49328
49338
|
}))
|
|
49329
49339
|
} : {
|
|
49330
49340
|
messages: apiMessages,
|
|
49331
|
-
..._optionalChain([extra, 'optionalAccess',
|
|
49332
|
-
..._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 } : {}
|
|
49333
49343
|
};
|
|
49334
49344
|
const response = await _chunkSR6LEWCFcjs.embedAuthedFetch.call(void 0, targetPath, {
|
|
49335
49345
|
method: "POST",
|
|
@@ -49339,7 +49349,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
49339
49349
|
if (!response.ok) {
|
|
49340
49350
|
throw new Error(`Chat request failed: ${response.status}`);
|
|
49341
49351
|
}
|
|
49342
|
-
const reader = _optionalChain([response, 'access',
|
|
49352
|
+
const reader = _optionalChain([response, 'access', _1247 => _1247.body, 'optionalAccess', _1248 => _1248.getReader, 'call', _1249 => _1249()]);
|
|
49343
49353
|
if (!reader) throw new Error("No response body");
|
|
49344
49354
|
const decoder = new TextDecoder();
|
|
49345
49355
|
let buffer = "";
|
|
@@ -49422,7 +49432,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
49422
49432
|
const toolName = typeof meta.tool_name === "string" ? meta.tool_name : void 0;
|
|
49423
49433
|
const result = _nullishCoalesce(meta.result, () => ( null));
|
|
49424
49434
|
const card = _nullishCoalesce(meta.card, () => ( null));
|
|
49425
|
-
if (_optionalChain([card, 'optionalAccess',
|
|
49435
|
+
if (_optionalChain([card, 'optionalAccess', _1250 => _1250.ref, 'optionalAccess', _1251 => _1251.id]) && _optionalChain([card, 'optionalAccess', _1252 => _1252.type])) {
|
|
49426
49436
|
const existing = _nullishCoalesce(refsMapRef.current.get(sendIdx), () => ( {}));
|
|
49427
49437
|
const key = buildChatRefKey(card.type, card.ref.id);
|
|
49428
49438
|
refsMapRef.current.set(sendIdx, { ...existing, [key]: card.ref });
|
|
@@ -49435,8 +49445,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
49435
49445
|
willAutoContinue: meta.willAutoContinue === true,
|
|
49436
49446
|
...toolName ? { toolName } : {},
|
|
49437
49447
|
...result ? { result } : {},
|
|
49438
|
-
..._optionalChain([card, 'optionalAccess',
|
|
49439
|
-
..._optionalChain([card, 'optionalAccess',
|
|
49448
|
+
..._optionalChain([card, 'optionalAccess', _1253 => _1253.marker]) ? { marker: card.marker } : {},
|
|
49449
|
+
..._optionalChain([card, 'optionalAccess', _1254 => _1254.ref]) ? { cardRef: card.ref } : {},
|
|
49440
49450
|
...typeof meta.receiptText === "string" ? { receiptText: meta.receiptText } : {},
|
|
49441
49451
|
proposalId: typeof meta.proposalId === "string" ? meta.proposalId : void 0
|
|
49442
49452
|
};
|
|
@@ -49555,7 +49565,7 @@ var DEFAULT_CHAT_SOURCE = "embed";
|
|
|
49555
49565
|
var chatStorageKey = (source) => {
|
|
49556
49566
|
const base = `mingo-chat-${source}-v${CHAT_STORAGE_VERSION}`;
|
|
49557
49567
|
const auth = _chunkSR6LEWCFcjs.getEmbedProxyAuth.call(void 0, );
|
|
49558
|
-
if (_optionalChain([auth, 'optionalAccess',
|
|
49568
|
+
if (_optionalChain([auth, 'optionalAccess', _1255 => _1255.email])) {
|
|
49559
49569
|
return `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}`;
|
|
49560
49570
|
}
|
|
49561
49571
|
return base;
|
|
@@ -49610,7 +49620,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
49610
49620
|
const { active = true } = runtimeOptions;
|
|
49611
49621
|
const runtime = _chunk2B6773QMcjs.useRequiredChatRuntime.call(void 0, );
|
|
49612
49622
|
const source = runtime.source || DEFAULT_CHAT_SOURCE;
|
|
49613
|
-
const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
49623
|
+
const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1256 => _1256.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
|
|
49614
49624
|
const persistedRef = _react.useRef.call(void 0, null);
|
|
49615
49625
|
if (persistedRef.current === null) {
|
|
49616
49626
|
pruneStaleChatStorage(source);
|
|
@@ -49715,7 +49725,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
49715
49725
|
const lookupIdx = sendIdx >= 0 ? sendIdx : 0;
|
|
49716
49726
|
sources = sourcesMapRef.current.get(lookupIdx);
|
|
49717
49727
|
chatRefs = _nullishCoalesce(m.chatRefs, () => ( refsMapRef.current.get(lookupIdx)));
|
|
49718
|
-
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));
|
|
49719
49729
|
}
|
|
49720
49730
|
return {
|
|
49721
49731
|
id: m.id,
|
|
@@ -49763,7 +49773,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
49763
49773
|
);
|
|
49764
49774
|
return;
|
|
49765
49775
|
}
|
|
49766
|
-
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 : "";
|
|
49767
49777
|
const queryValue = refSlug || sanitizeTitleForChat(reference.title) || reference.id;
|
|
49768
49778
|
const escaped = queryValue.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
49769
49779
|
const text = `/${cmdId} display "${escaped}"`;
|
|
@@ -49835,18 +49845,18 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
49835
49845
|
clearMessages,
|
|
49836
49846
|
streamingPhase,
|
|
49837
49847
|
/** Provider key for the lib's `<ModelDisplay>` icon. */
|
|
49838
|
-
currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
49839
|
-
currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
49840
|
-
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)),
|
|
49841
49851
|
/** Input tokens (known after server's message_start frame; null until). */
|
|
49842
|
-
currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
49852
|
+
currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1266 => _1266.inputTokens]), () => ( null)),
|
|
49843
49853
|
/** Output tokens (known only after server's trailing usage frame). */
|
|
49844
|
-
currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
49854
|
+
currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1267 => _1267.outputTokens]), () => ( null)),
|
|
49845
49855
|
/** Cache hit % (read / total-input × 100). null during streaming. */
|
|
49846
|
-
currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
49856
|
+
currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1268 => _1268.cacheHitRatePct]), () => ( null)),
|
|
49847
49857
|
/** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
|
|
49848
49858
|
* token counts). null until the trailing usage frame lands. */
|
|
49849
|
-
currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
49859
|
+
currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1269 => _1269.breakdown]), () => ( null)),
|
|
49850
49860
|
// ─── Dialog management — stubs for v1 ────────────────────────────────
|
|
49851
49861
|
// Guide mode currently keeps its history in `localStorage` opaquely
|
|
49852
49862
|
// under the hood (`runtime.source` namespaced key). Surfacing that
|
|
@@ -49904,15 +49914,15 @@ var noopRejectRequest = async (_id, _reason) => {
|
|
|
49904
49914
|
|
|
49905
49915
|
// src/components/chat/utils/process-historical-messages.ts
|
|
49906
49916
|
function getOwnerDisplayName(owner) {
|
|
49907
|
-
if (_optionalChain([owner, 'optionalAccess',
|
|
49917
|
+
if (_optionalChain([owner, 'optionalAccess', _1270 => _1270.type]) === OWNER_TYPE.ADMIN && owner.user) {
|
|
49908
49918
|
const { firstName, lastName } = owner.user;
|
|
49909
49919
|
const name = [firstName, lastName].filter(Boolean).join(" ");
|
|
49910
49920
|
if (name) return name;
|
|
49911
49921
|
}
|
|
49912
|
-
return _optionalChain([owner, 'optionalAccess',
|
|
49922
|
+
return _optionalChain([owner, 'optionalAccess', _1271 => _1271.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
|
|
49913
49923
|
}
|
|
49914
49924
|
function getOwnerAvatar(owner) {
|
|
49915
|
-
return _nullishCoalesce(_optionalChain([owner, 'optionalAccess',
|
|
49925
|
+
return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _1272 => _1272.user, 'optionalAccess', _1273 => _1273.image, 'optionalAccess', _1274 => _1274.imageUrl]), () => ( void 0));
|
|
49916
49926
|
}
|
|
49917
49927
|
function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
|
|
49918
49928
|
messageDataArray.forEach((data) => {
|
|
@@ -49975,14 +49985,14 @@ function processHistoricalMessages(messages, options = {}) {
|
|
|
49975
49985
|
pushStandaloneMessages(processedMessages, msg, messageDataArray);
|
|
49976
49986
|
return;
|
|
49977
49987
|
}
|
|
49978
|
-
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;
|
|
49979
49989
|
if (isUserMessage) {
|
|
49980
49990
|
flushAssistantMessage();
|
|
49981
|
-
const userAuthorType = _optionalChain([msg, 'access',
|
|
49991
|
+
const userAuthorType = _optionalChain([msg, 'access', _1279 => _1279.owner, 'optionalAccess', _1280 => _1280.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
|
|
49982
49992
|
messageDataArray.forEach((data) => {
|
|
49983
49993
|
if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
|
|
49984
49994
|
const rawContext = data.contextItems;
|
|
49985
|
-
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;
|
|
49986
49996
|
processedMessages.push({
|
|
49987
49997
|
id: msg.id,
|
|
49988
49998
|
role: "user",
|
|
@@ -50006,7 +50016,7 @@ function processHistoricalMessages(messages, options = {}) {
|
|
|
50006
50016
|
});
|
|
50007
50017
|
const nextMsg = messages[index + 1];
|
|
50008
50018
|
const isLastMessage = index === messages.length - 1;
|
|
50009
|
-
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);
|
|
50010
50020
|
if (isLastMessage || nextIsFromUser) {
|
|
50011
50021
|
flushAssistantMessage();
|
|
50012
50022
|
}
|
|
@@ -50116,7 +50126,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
50116
50126
|
}
|
|
50117
50127
|
}
|
|
50118
50128
|
} else {
|
|
50119
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
50129
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _1287 => _1287.set, 'call', _1288 => _1288(data.approvalRequestId, {
|
|
50120
50130
|
command: data.command || "",
|
|
50121
50131
|
explanation: data.explanation,
|
|
50122
50132
|
approvalType,
|
|
@@ -50130,8 +50140,8 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
50130
50140
|
const existingStatus = approvalStatuses[data.approvalRequestId];
|
|
50131
50141
|
const status = existingStatus || (data.approved ? "approved" : "rejected");
|
|
50132
50142
|
const resolvedByName = "resolvedByName" in data ? data.resolvedByName : void 0;
|
|
50133
|
-
const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess',
|
|
50134
|
-
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) {
|
|
50135
50145
|
if (batchApprovalsEnabled) {
|
|
50136
50146
|
accumulator.addApprovalBatch(
|
|
50137
50147
|
data.approvalRequestId,
|
|
@@ -50153,7 +50163,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
50153
50163
|
);
|
|
50154
50164
|
}
|
|
50155
50165
|
}
|
|
50156
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
50166
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _1292 => _1292.delete, 'call', _1293 => _1293(data.approvalRequestId)]);
|
|
50157
50167
|
break;
|
|
50158
50168
|
}
|
|
50159
50169
|
if (escalatedData) {
|
|
@@ -50162,7 +50172,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
50162
50172
|
explanation: escalatedData.explanation,
|
|
50163
50173
|
approvalType: escalatedData.approvalType
|
|
50164
50174
|
});
|
|
50165
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
50175
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _1294 => _1294.delete, 'call', _1295 => _1295(data.approvalRequestId)]);
|
|
50166
50176
|
}
|
|
50167
50177
|
const before = accumulator.getSegments();
|
|
50168
50178
|
const after = accumulator.updateApprovalStatus(data.approvalRequestId, status, resolvedByName);
|
|
@@ -50178,9 +50188,9 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
50178
50188
|
case MESSAGE_TYPE.ERROR:
|
|
50179
50189
|
if ("error" in data) {
|
|
50180
50190
|
let message2;
|
|
50181
|
-
if ("details" in data && _optionalChain([data, 'optionalAccess',
|
|
50191
|
+
if ("details" in data && _optionalChain([data, 'optionalAccess', _1296 => _1296.details])) {
|
|
50182
50192
|
try {
|
|
50183
|
-
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]);
|
|
50184
50194
|
} catch (e67) {
|
|
50185
50195
|
message2 = data.details;
|
|
50186
50196
|
}
|
|
@@ -50263,14 +50273,14 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
|
|
|
50263
50273
|
pushStandaloneMessages(processedMessages, msg, messageDataArray);
|
|
50264
50274
|
return;
|
|
50265
50275
|
}
|
|
50266
|
-
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;
|
|
50267
50277
|
if (isUserMessage) {
|
|
50268
50278
|
flushAssistantMessage();
|
|
50269
|
-
const userAuthorType = _optionalChain([msg, 'access',
|
|
50279
|
+
const userAuthorType = _optionalChain([msg, 'access', _1305 => _1305.owner, 'optionalAccess', _1306 => _1306.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
|
|
50270
50280
|
messageDataArray.forEach((data) => {
|
|
50271
50281
|
if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
|
|
50272
50282
|
const rawContext = data.contextItems;
|
|
50273
|
-
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;
|
|
50274
50284
|
processedMessages.push({
|
|
50275
50285
|
id: msg.id,
|
|
50276
50286
|
role: "user",
|
|
@@ -50294,7 +50304,7 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
|
|
|
50294
50304
|
});
|
|
50295
50305
|
const nextMsg = messages[index + 1];
|
|
50296
50306
|
const isLastMessage = index === messages.length - 1;
|
|
50297
|
-
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);
|
|
50298
50308
|
if (isLastMessage || nextIsFromUser) {
|
|
50299
50309
|
flushAssistantMessage();
|
|
50300
50310
|
}
|
|
@@ -50393,6 +50403,9 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
50393
50403
|
const dialogId = isManagedMode ? internalDialogId : controlledDialogId !== void 0 ? controlledDialogId : null;
|
|
50394
50404
|
const [messages, setMessages] = _react.useState.call(void 0, []);
|
|
50395
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);
|
|
50396
50409
|
const [approvalStatuses, setApprovalStatuses] = _react.useState.call(void 0, {});
|
|
50397
50410
|
const [dialogs, setDialogs] = _react.useState.call(void 0, []);
|
|
50398
50411
|
const [dialogsNextCursor, setDialogsNextCursor] = _react.useState.call(void 0, null);
|
|
@@ -50410,6 +50423,8 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
50410
50423
|
async (requestId) => {
|
|
50411
50424
|
if (!approveRequestCallback) return;
|
|
50412
50425
|
setApprovalStatuses((prev) => ({ ...prev, [requestId]: "approved" }));
|
|
50426
|
+
const tookLock = streamingPhaseRef.current === "idle";
|
|
50427
|
+
setStreamingPhase((p) => p === "idle" ? "thinking" : p);
|
|
50413
50428
|
try {
|
|
50414
50429
|
await approveRequestCallback(requestId);
|
|
50415
50430
|
} catch (err) {
|
|
@@ -50418,6 +50433,9 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
50418
50433
|
delete next[requestId];
|
|
50419
50434
|
return next;
|
|
50420
50435
|
});
|
|
50436
|
+
if (tookLock) {
|
|
50437
|
+
setStreamingPhase((p) => p === "thinking" ? "idle" : p);
|
|
50438
|
+
}
|
|
50421
50439
|
console.error("[useNatsChatAdapter] approveRequest failed:", err);
|
|
50422
50440
|
}
|
|
50423
50441
|
},
|
|
@@ -50458,6 +50476,18 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
50458
50476
|
},
|
|
50459
50477
|
onStreamStart: () => setStreamingPhase("streaming"),
|
|
50460
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"),
|
|
50461
50491
|
// Live cumulative token counter for the active dialog — drives the
|
|
50462
50492
|
// composer's "X / Y tokens used" tail as the assistant streams.
|
|
50463
50493
|
onTokenUsage: (data) => setDialogTokenUsage(data),
|
|
@@ -50473,6 +50503,8 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
50473
50503
|
onSegmentsUpdate: (segments) => callbacksRef.current.onSegmentsUpdate(segments),
|
|
50474
50504
|
onStreamStart: () => callbacksRef.current.onStreamStart(),
|
|
50475
50505
|
onStreamEnd: () => callbacksRef.current.onStreamEnd(),
|
|
50506
|
+
onAgentBusy: () => callbacksRef.current.onAgentBusy(),
|
|
50507
|
+
onError: () => callbacksRef.current.onError(),
|
|
50476
50508
|
onTokenUsage: (data) => callbacksRef.current.onTokenUsage(data),
|
|
50477
50509
|
onMetadata: (meta) => callbacksRef.current.onMetadata(meta),
|
|
50478
50510
|
onApprove: accumApprove,
|
|
@@ -50562,10 +50594,13 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
50562
50594
|
}, [active, dialogId, loadDialogHistory, resetAccumulator]);
|
|
50563
50595
|
_react.useEffect.call(void 0, () => {
|
|
50564
50596
|
if (!active || !dialogId) return;
|
|
50597
|
+
suppressAgentBusyRef.current = true;
|
|
50565
50598
|
resetChunkTracking();
|
|
50566
50599
|
startInitialBuffering();
|
|
50567
50600
|
catchUpChunks().catch((err) => {
|
|
50568
50601
|
console.error("[useNatsChatAdapter] initial catchup failed:", err);
|
|
50602
|
+
}).finally(() => {
|
|
50603
|
+
suppressAgentBusyRef.current = false;
|
|
50569
50604
|
});
|
|
50570
50605
|
}, [active, dialogId, resetChunkTracking, startInitialBuffering, catchUpChunks]);
|
|
50571
50606
|
useNatsDialogSubscription({
|
|
@@ -50630,7 +50665,7 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
50630
50665
|
}, [active, fetchDialogs, loadDialogsPage]);
|
|
50631
50666
|
const sendMessage = _react.useCallback.call(void 0,
|
|
50632
50667
|
async (text, sendOptions) => {
|
|
50633
|
-
const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess',
|
|
50668
|
+
const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _1313 => _1313.hidden]), () => ( false));
|
|
50634
50669
|
setMessages((prev) => [
|
|
50635
50670
|
...prev,
|
|
50636
50671
|
{
|
|
@@ -50794,11 +50829,11 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
50794
50829
|
// Tokens: live `token_usage` frame / dialog snapshot (`dialogTokenUsage`).
|
|
50795
50830
|
// contextWindow uses the dialog's `contextSize` (the "X / Y" denominator,
|
|
50796
50831
|
// matching the /mingo page). cacheHitRate/breakdown are SSE-only → null.
|
|
50797
|
-
currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess',
|
|
50798
|
-
currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess',
|
|
50799
|
-
currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess',
|
|
50800
|
-
currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess',
|
|
50801
|
-
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)),
|
|
50802
50837
|
currentCacheHitRatePct: null,
|
|
50803
50838
|
currentUsageBreakdown: null,
|
|
50804
50839
|
// Dialog management
|
|
@@ -51046,7 +51081,7 @@ function extractIncompleteMessageState(lastMessage) {
|
|
|
51046
51081
|
break;
|
|
51047
51082
|
case "approval_batch": {
|
|
51048
51083
|
const allDone = !!segment.data.executions && segment.data.toolCalls.every(
|
|
51049
|
-
(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"
|
|
51050
51085
|
);
|
|
51051
51086
|
if (segment.status !== "rejected" && !allDone) {
|
|
51052
51087
|
hasIncompleteState = true;
|
|
@@ -51114,20 +51149,20 @@ function mergeHistoryWithRealtime(input) {
|
|
|
51114
51149
|
const seqCoverageKnown = realtimeSeenStreamSeq > 0 && historyMaxStreamSeq > 0;
|
|
51115
51150
|
const historyCoversRealtime = seqCoverageKnown ? historyMaxStreamSeq >= realtimeSeenStreamSeq : null;
|
|
51116
51151
|
const trailing = processedHistory[processedHistory.length - 1];
|
|
51117
|
-
const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess',
|
|
51118
|
-
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;
|
|
51119
51154
|
let processedToUse = processedHistory;
|
|
51120
51155
|
const pinnedSyntheticIds = /* @__PURE__ */ new Set();
|
|
51121
51156
|
const droppedSyntheticIds = /* @__PURE__ */ new Set();
|
|
51122
51157
|
if (historyBatchId) {
|
|
51123
51158
|
const batchTwins = existingMessages.filter(
|
|
51124
51159
|
(m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some(
|
|
51125
|
-
(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
|
|
51126
51161
|
)
|
|
51127
51162
|
);
|
|
51128
51163
|
const existingWithSameBatch = _nullishCoalesce(batchTwins.find((m) => m.id === streamingMessageId), () => ( batchTwins[batchTwins.length - 1]));
|
|
51129
51164
|
if (existingWithSameBatch && Array.isArray(existingWithSameBatch.content)) {
|
|
51130
|
-
const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess',
|
|
51165
|
+
const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _1332 => _1332.content])) ? historyTrailingAssistant.content.length : 0;
|
|
51131
51166
|
const realtimeSize = existingWithSameBatch.content.length;
|
|
51132
51167
|
if (existingWithSameBatch.id === streamingMessageId || realtimeSize > histSize) {
|
|
51133
51168
|
processedToUse = processedHistory.slice(0, -1);
|
|
@@ -51143,16 +51178,16 @@ function mergeHistoryWithRealtime(input) {
|
|
|
51143
51178
|
if (pinnedSyntheticIds.has(m.id)) return true;
|
|
51144
51179
|
if (droppedSyntheticIds.has(m.id)) return false;
|
|
51145
51180
|
if (processedIds.has(m.id)) return false;
|
|
51146
|
-
if (_optionalChain([rawHistoryIds, 'optionalAccess',
|
|
51181
|
+
if (_optionalChain([rawHistoryIds, 'optionalAccess', _1333 => _1333.has, 'call', _1334 => _1334(m.id)])) return false;
|
|
51147
51182
|
if (m.role === "user" && m.id.startsWith("optimistic-") && typeof m.content === "string") {
|
|
51148
|
-
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;
|
|
51149
51184
|
return !(canBeInSnapshot && processedToUse.some((pm) => pm.role === "user" && pm.content === m.content));
|
|
51150
51185
|
}
|
|
51151
51186
|
if (isSyntheticRealtimeId(m.id) && m.id !== streamingMessageId) {
|
|
51152
51187
|
if (m.role === "assistant" && trailingAssistantText && assistantAnswerText(m.content) === trailingAssistantText) {
|
|
51153
51188
|
return false;
|
|
51154
51189
|
}
|
|
51155
|
-
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;
|
|
51156
51191
|
if (covered) return false;
|
|
51157
51192
|
}
|
|
51158
51193
|
return true;
|
|
@@ -51372,7 +51407,7 @@ function useChatDialogManager({
|
|
|
51372
51407
|
const handleConfirmRestore = _react.useCallback.call(void 0, async () => {
|
|
51373
51408
|
if (restoreTarget) {
|
|
51374
51409
|
try {
|
|
51375
|
-
await _optionalChain([unarchiveDialog, 'optionalCall',
|
|
51410
|
+
await _optionalChain([unarchiveDialog, 'optionalCall', _1341 => _1341(restoreTarget.id)]);
|
|
51376
51411
|
} catch (err) {
|
|
51377
51412
|
console.error("[useChatDialogManager] unarchive failed:", err);
|
|
51378
51413
|
return;
|
|
@@ -51698,6 +51733,7 @@ function EmbeddableChatInner({
|
|
|
51698
51733
|
onOpenChange,
|
|
51699
51734
|
defaultOpen,
|
|
51700
51735
|
showInternalTrigger = true,
|
|
51736
|
+
previewMode = false,
|
|
51701
51737
|
extras,
|
|
51702
51738
|
tableIdForDocumentType,
|
|
51703
51739
|
modes,
|
|
@@ -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
|
);
|
|
@@ -52202,7 +52238,7 @@ function EmbeddableChatInner({
|
|
|
52202
52238
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
52203
52239
|
"div",
|
|
52204
52240
|
{
|
|
52205
|
-
className: `flex h-full flex-col overflow-hidden transition-colors duration-200 ${archiveOpen || !hasConversation && activeMode === "mingo" ? "bg-ods-card" : "bg-ods-bg"}`,
|
|
52241
|
+
className: `flex h-full flex-col overflow-hidden transition-colors duration-200 ${archiveOpen || !hasConversation && activeMode === "mingo" ? "bg-ods-card" : "bg-ods-bg"} ${previewMode ? "pointer-events-none select-none" : ""}`,
|
|
52206
52242
|
children: archiveOpen ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
52207
52243
|
"div",
|
|
52208
52244
|
{
|
|
@@ -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"),
|
|
@@ -52281,7 +52317,7 @@ function EmbeddableChatInner({
|
|
|
52281
52317
|
renderContextItem,
|
|
52282
52318
|
renderMention,
|
|
52283
52319
|
NavLinkAnchor: NavLinkAnchorViaRuntime,
|
|
52284
|
-
className: "flex-1",
|
|
52320
|
+
className: "flex-1 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",
|
|
52285
52321
|
contentClassName: "max-w-none pb-0",
|
|
52286
52322
|
fullWidth: true,
|
|
52287
52323
|
hasNextPage: hasMoreMessages,
|
|
@@ -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)));
|
|
@@ -52423,7 +52459,7 @@ function EmbeddableChatInner({
|
|
|
52423
52459
|
onStop: stopMessage,
|
|
52424
52460
|
sending: chatLoading || hasInflightUploads,
|
|
52425
52461
|
placeholder: hasInflightUploads ? "Waiting for uploads to finish\u2026" : "Ask a question...",
|
|
52426
|
-
autoFocus: autoFocusInput,
|
|
52462
|
+
autoFocus: previewMode ? false : autoFocusInput,
|
|
52427
52463
|
slashCommands: slashCommandsProp,
|
|
52428
52464
|
previewText: _nullishCoalesce(quickActionPreview, () => ( void 0)),
|
|
52429
52465
|
showAttachmentButton: attachmentsEnabled && activeMode === "guide",
|
|
@@ -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
|