@flamingo-stack/openframe-frontend-core 0.0.444-snapshot.20260717182533 → 0.0.444
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-PTT4J5GF.cjs → chunk-2CJ734N2.cjs} +3 -3
- package/dist/{chunk-PTT4J5GF.cjs.map → chunk-2CJ734N2.cjs.map} +1 -1
- package/dist/{chunk-DTLNCOSG.cjs → chunk-2PLNDTRG.cjs} +32 -32
- package/dist/{chunk-DTLNCOSG.cjs.map → chunk-2PLNDTRG.cjs.map} +1 -1
- package/dist/{chunk-XPZLIONZ.js → chunk-37ZZQXHK.js} +4 -4
- package/dist/{chunk-FIAXFNAA.js → chunk-3SCNEGL2.js} +5 -5
- package/dist/{chunk-QL2EI56X.cjs → chunk-4R3SVOKH.cjs} +377 -797
- package/dist/chunk-4R3SVOKH.cjs.map +1 -0
- package/dist/{chunk-VIJARDBM.cjs → chunk-7CZ4MJSI.cjs} +3 -3
- package/dist/{chunk-VIJARDBM.cjs.map → chunk-7CZ4MJSI.cjs.map} +1 -1
- package/dist/{chunk-MQUS6BFR.js → chunk-ABIRMYG5.js} +6 -6
- package/dist/{chunk-MPSA6YAM.cjs → chunk-BYTJNRJW.cjs} +40 -40
- package/dist/{chunk-MPSA6YAM.cjs.map → chunk-BYTJNRJW.cjs.map} +1 -1
- package/dist/{chunk-H352AZJN.js → chunk-CE3AITV2.js} +6 -6
- package/dist/{chunk-K4RASNQM.js → chunk-DCDB3SM4.js} +3 -3
- package/dist/{chunk-N64VTHZ5.cjs → chunk-DSW6FIEF.cjs} +7 -7
- package/dist/{chunk-N64VTHZ5.cjs.map → chunk-DSW6FIEF.cjs.map} +1 -1
- package/dist/{chunk-22NSWMI6.js → chunk-DTMJWBDQ.js} +3 -3
- package/dist/{chunk-TCEBFMLQ.js → chunk-F2XHBAHT.js} +2 -2
- package/dist/{chunk-P3FN4NAE.cjs → chunk-F6NMMPDL.cjs} +29 -29
- package/dist/{chunk-P3FN4NAE.cjs.map → chunk-F6NMMPDL.cjs.map} +1 -1
- package/dist/{chunk-YCLSV2H6.cjs → chunk-FO4CI4R5.cjs} +5 -5
- package/dist/{chunk-YCLSV2H6.cjs.map → chunk-FO4CI4R5.cjs.map} +1 -1
- package/dist/{chunk-G2KXNMFQ.js → chunk-FQASXKBK.js} +2 -2
- package/dist/{chunk-H2DYCT6M.js → chunk-H7H3AFLF.js} +2 -2
- package/dist/{chunk-7R256DKK.js → chunk-LCJGOV6P.js} +2 -2
- package/dist/{chunk-5NYXGWBN.js → chunk-MG4AMIFX.js} +2 -2
- package/dist/{chunk-3BHV2QAH.js → chunk-NDWIFCLS.js} +135 -555
- package/dist/{chunk-3BHV2QAH.js.map → chunk-NDWIFCLS.js.map} +1 -1
- package/dist/{chunk-5FUQTSTT.cjs → chunk-OXZLBIR7.cjs} +18 -18
- package/dist/{chunk-5FUQTSTT.cjs.map → chunk-OXZLBIR7.cjs.map} +1 -1
- package/dist/{chunk-P47NN7RY.js → chunk-PHWQLKVE.js} +31 -29
- package/dist/chunk-PHWQLKVE.js.map +1 -0
- package/dist/{chunk-3DQ5BFPM.js → chunk-PMTR5W5G.js} +5 -5
- package/dist/{chunk-W24U7ZUV.cjs → chunk-PXXS27EE.cjs} +42 -40
- package/dist/chunk-PXXS27EE.cjs.map +1 -0
- package/dist/{chunk-RXLMN6B5.cjs → chunk-Q6XOEVPH.cjs} +12 -12
- package/dist/{chunk-RXLMN6B5.cjs.map → chunk-Q6XOEVPH.cjs.map} +1 -1
- package/dist/{chunk-3HYSD7NR.cjs → chunk-RALJEQWM.cjs} +15 -15
- package/dist/{chunk-3HYSD7NR.cjs.map → chunk-RALJEQWM.cjs.map} +1 -1
- package/dist/{chunk-Z4N7XLFG.js → chunk-U7U2CZBZ.js} +3 -3
- package/dist/{chunk-R6WGCJBB.cjs → chunk-VI2QQIGR.cjs} +73 -73
- package/dist/{chunk-R6WGCJBB.cjs.map → chunk-VI2QQIGR.cjs.map} +1 -1
- package/dist/{chunk-KISQUH33.cjs → chunk-WXU6A6CA.cjs} +73 -73
- package/dist/{chunk-KISQUH33.cjs.map → chunk-WXU6A6CA.cjs.map} +1 -1
- package/dist/{chunk-5DWPXK37.cjs → chunk-YP7VJPCJ.cjs} +40 -40
- package/dist/{chunk-5DWPXK37.cjs.map → chunk-YP7VJPCJ.cjs.map} +1 -1
- package/dist/components/case-studies/index.cjs +10 -10
- package/dist/components/case-studies/index.js +4 -4
- package/dist/components/chat/hooks/use-chunk-catchup.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-jetstream-dialog-subscription.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts +1 -44
- package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-nats-dialog-subscription.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 +4 -10
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.js +3 -9
- package/dist/components/chat/utils/message-segment-accumulator.d.ts.map +1 -1
- package/dist/components/chat/utils/process-historical-messages.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +5 -5
- package/dist/components/contact/index.js +4 -4
- package/dist/components/docs/index.cjs +7 -7
- package/dist/components/docs/index.js +6 -6
- package/dist/components/embeds/index.cjs +5 -5
- package/dist/components/embeds/index.js +4 -4
- package/dist/components/faq/index.cjs +6 -6
- package/dist/components/faq/index.js +5 -5
- package/dist/components/features/index.cjs +4 -4
- package/dist/components/features/index.js +3 -3
- package/dist/components/help-center-pages/index.cjs +23 -23
- package/dist/components/help-center-pages/index.js +14 -14
- package/dist/components/index.cjs +136 -142
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +12 -18
- package/dist/components/index.js.map +1 -1
- package/dist/components/navigation/index.cjs +4 -4
- package/dist/components/navigation/index.js +3 -3
- package/dist/components/onboarding-guides/index.cjs +8 -8
- package/dist/components/onboarding-guides/index.js +7 -7
- package/dist/components/related-content/index.cjs +6 -6
- package/dist/components/related-content/index.js +5 -5
- package/dist/components/tickets/index.cjs +7 -7
- package/dist/components/tickets/index.js +6 -6
- package/dist/components/ui/index.cjs +4 -10
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +3 -9
- package/dist/hooks/index.cjs +3 -3
- package/dist/hooks/index.js +2 -2
- package/dist/index.cjs +4 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +3 -9
- package/dist/nats/index.cjs +2 -2
- package/dist/nats/index.js +1 -1
- package/dist/nats/shared-connection.d.ts +0 -6
- package/dist/nats/shared-connection.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/chat/hooks/use-chunk-catchup.ts +57 -212
- package/src/components/chat/hooks/use-jetstream-dialog-subscription.ts +8 -12
- package/src/components/chat/hooks/use-nats-chat-adapter.ts +9 -574
- package/src/components/chat/hooks/use-nats-dialog-subscription.ts +6 -12
- package/src/components/chat/hooks/use-realtime-chunk-processor.ts +3 -40
- package/src/components/chat/utils/message-segment-accumulator.ts +0 -6
- package/src/components/chat/utils/process-historical-messages.ts +3 -25
- package/src/nats/shared-connection.ts +29 -42
- package/dist/chunk-P47NN7RY.js.map +0 -1
- package/dist/chunk-QL2EI56X.cjs.map +0 -1
- package/dist/chunk-W24U7ZUV.cjs.map +0 -1
- package/src/components/chat/hooks/__tests__/nats-adapter-message-updaters.test.ts +0 -270
- package/src/components/chat/utils/__tests__/process-historical-messages-approvals.test.ts +0 -62
- /package/dist/{chunk-XPZLIONZ.js.map → chunk-37ZZQXHK.js.map} +0 -0
- /package/dist/{chunk-FIAXFNAA.js.map → chunk-3SCNEGL2.js.map} +0 -0
- /package/dist/{chunk-MQUS6BFR.js.map → chunk-ABIRMYG5.js.map} +0 -0
- /package/dist/{chunk-H352AZJN.js.map → chunk-CE3AITV2.js.map} +0 -0
- /package/dist/{chunk-K4RASNQM.js.map → chunk-DCDB3SM4.js.map} +0 -0
- /package/dist/{chunk-22NSWMI6.js.map → chunk-DTMJWBDQ.js.map} +0 -0
- /package/dist/{chunk-TCEBFMLQ.js.map → chunk-F2XHBAHT.js.map} +0 -0
- /package/dist/{chunk-G2KXNMFQ.js.map → chunk-FQASXKBK.js.map} +0 -0
- /package/dist/{chunk-H2DYCT6M.js.map → chunk-H7H3AFLF.js.map} +0 -0
- /package/dist/{chunk-7R256DKK.js.map → chunk-LCJGOV6P.js.map} +0 -0
- /package/dist/{chunk-5NYXGWBN.js.map → chunk-MG4AMIFX.js.map} +0 -0
- /package/dist/{chunk-3DQ5BFPM.js.map → chunk-PMTR5W5G.js.map} +0 -0
- /package/dist/{chunk-Z4N7XLFG.js.map → chunk-U7U2CZBZ.js.map} +0 -0
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
var
|
|
30
|
+
var _chunk7CZ4MJSIcjs = require('./chunk-7CZ4MJSI.cjs');
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
|
|
@@ -249,7 +249,7 @@ var _chunkFIG2RKZFcjs = require('./chunk-FIG2RKZF.cjs');
|
|
|
249
249
|
|
|
250
250
|
|
|
251
251
|
|
|
252
|
-
var
|
|
252
|
+
var _chunkPXXS27EEcjs = require('./chunk-PXXS27EE.cjs');
|
|
253
253
|
|
|
254
254
|
|
|
255
255
|
var _chunkVRHGVLSLcjs = require('./chunk-VRHGVLSL.cjs');
|
|
@@ -799,7 +799,7 @@ function ToolCallRow({ call, expanded, onToggle, batchStatus, execution, showExe
|
|
|
799
799
|
onClick: onToggle,
|
|
800
800
|
className: "flex gap-[var(--spacing-system-xsf)] items-start w-full p-[var(--spacing-system-sf)] cursor-pointer text-left",
|
|
801
801
|
children: [
|
|
802
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
802
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7CZ4MJSIcjs.ToolIcon, { toolType, size: 16 }) }),
|
|
803
803
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
804
804
|
"div",
|
|
805
805
|
{
|
|
@@ -4886,7 +4886,7 @@ var ToolExecutionDisplay = _react.forwardRef.call(void 0,
|
|
|
4886
4886
|
className: "flex gap-[var(--spacing-system-xs)] items-start p-[var(--spacing-system-s)] cursor-pointer text-left w-full",
|
|
4887
4887
|
onClick: () => setExpanded((prev) => !prev),
|
|
4888
4888
|
children: [
|
|
4889
|
-
!isClient && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4889
|
+
!isClient && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center justify-center shrink-0 w-5 h-5", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7CZ4MJSIcjs.ToolIcon, { toolType: integratedToolType, size: 16 }) }),
|
|
4890
4890
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
4891
4891
|
"div",
|
|
4892
4892
|
{
|
|
@@ -6624,7 +6624,7 @@ function ChatQuickActionRow({
|
|
|
6624
6624
|
skeletonCount = 8,
|
|
6625
6625
|
className
|
|
6626
6626
|
}) {
|
|
6627
|
-
const auto =
|
|
6627
|
+
const auto = _chunk7CZ4MJSIcjs.useAutoLimitTags.call(void 0, {
|
|
6628
6628
|
count: chips.length,
|
|
6629
6629
|
reserveInputWidth: false
|
|
6630
6630
|
});
|
|
@@ -8027,7 +8027,7 @@ function ChatHeaderSearchField({
|
|
|
8027
8027
|
className
|
|
8028
8028
|
}) {
|
|
8029
8029
|
const [value, setValue] = React24.useState(_nullishCoalesce(initialValue, () => ( "")));
|
|
8030
|
-
const debounced =
|
|
8030
|
+
const debounced = _chunk7CZ4MJSIcjs.useDebounce.call(void 0, value, 300);
|
|
8031
8031
|
const lastEmitted = React24.useRef(_nullishCoalesce(initialValue, () => ( "")));
|
|
8032
8032
|
const [exiting, setExiting] = React24.useState(false);
|
|
8033
8033
|
const collapsedRef = React24.useRef(false);
|
|
@@ -9231,7 +9231,7 @@ function runNavigation(runtime, href, path, targetPlatform, fallbackNavigate) {
|
|
|
9231
9231
|
return;
|
|
9232
9232
|
}
|
|
9233
9233
|
const target = stripSameOriginToPath(href);
|
|
9234
|
-
if (target.includes("#") &&
|
|
9234
|
+
if (target.includes("#") && _chunk7CZ4MJSIcjs.navigateSamePageHash.call(void 0, target, { headerOffset: _chunk7CZ4MJSIcjs.STICKY_HEADER_OFFSET_PX })) {
|
|
9235
9235
|
return;
|
|
9236
9236
|
}
|
|
9237
9237
|
const handled = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _144 => _144.navigation, 'access', _145 => _145.navigate, 'optionalCall', _146 => _146({ href, path, targetPlatform })]), () => ( false));
|
|
@@ -9691,7 +9691,7 @@ function EntityPortraitCard({
|
|
|
9691
9691
|
setIsWide(img.naturalWidth / img.naturalHeight >= MIN_WIDE_RATIO);
|
|
9692
9692
|
}
|
|
9693
9693
|
};
|
|
9694
|
-
const edgeColor =
|
|
9694
|
+
const edgeColor = _chunk7CZ4MJSIcjs.useImageEdgeColor.call(void 0, isWide === false ? src : null, "var(--color-bg-surface)");
|
|
9695
9695
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "a", { href, target, rel, className: _chunkFIG2RKZFcjs.cn.call(void 0, "block h-full", className), "aria-label": `Open ${title}`, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, Card, { className: "bg-ods-card border border-ods-border hover:border-ods-accent hover:shadow-lg hover:shadow-ods-accent/[0.08] transition-all duration-200 p-6 flex flex-col gap-6 overflow-hidden h-full", children: [
|
|
9696
9696
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9697
9697
|
"div",
|
|
@@ -9998,7 +9998,7 @@ function AdminContentCard({
|
|
|
9998
9998
|
const [imageError, setImageError] = _react.useState.call(void 0, false);
|
|
9999
9999
|
const [imageLoaded, setImageLoaded] = _react.useState.call(void 0, false);
|
|
10000
10000
|
const displayUrl = imageUrl && !imageError ? imageUrl : placeholderUrl;
|
|
10001
|
-
const imageBgColor =
|
|
10001
|
+
const imageBgColor = _chunk7CZ4MJSIcjs.useImageEdgeColor.call(void 0, displayUrl || null, "transparent");
|
|
10002
10002
|
_react.useEffect.call(void 0, () => {
|
|
10003
10003
|
setImageLoaded(false);
|
|
10004
10004
|
}, [displayUrl]);
|
|
@@ -10718,7 +10718,7 @@ function useVideoWarmup({
|
|
|
10718
10718
|
const runtime = _chunk2B6773QMcjs.useChatRuntime.call(void 0, );
|
|
10719
10719
|
const resolvedOrigin = _nullishCoalesce(supabaseStorageOrigin, () => ( _optionalChain([runtime, 'optionalAccess', _188 => _188.endpoints, 'access', _189 => _189.supabaseStorageOrigin])));
|
|
10720
10720
|
useVideoOriginPreconnect({ supabaseStorageOrigin: resolvedOrigin });
|
|
10721
|
-
const { ref, isNear } =
|
|
10721
|
+
const { ref, isNear } = _chunk7CZ4MJSIcjs.useNearViewport.call(void 0, nearMargin);
|
|
10722
10722
|
_react.useEffect.call(void 0, () => {
|
|
10723
10723
|
if (!isNear || !videoUrl || !resolvedOrigin) return;
|
|
10724
10724
|
const conn = navigator.connection;
|
|
@@ -12292,7 +12292,7 @@ function useEntityCardPlaceholder({
|
|
|
12292
12292
|
siteName = "",
|
|
12293
12293
|
aspect = "wide"
|
|
12294
12294
|
}) {
|
|
12295
|
-
const derived =
|
|
12295
|
+
const derived = _chunk7CZ4MJSIcjs.useOgPlaceholderUrl.call(void 0, { title, siteName, aspect });
|
|
12296
12296
|
return placeholderUrl !== void 0 ? placeholderUrl : derived;
|
|
12297
12297
|
}
|
|
12298
12298
|
|
|
@@ -13560,7 +13560,7 @@ function AutocompleteInner(props, ref) {
|
|
|
13560
13560
|
}, [valueArray, options]);
|
|
13561
13561
|
const selectedOption = !multiple && selectedOptions.length > 0 ? selectedOptions[0] : null;
|
|
13562
13562
|
const inputPlaceholder = multiple ? valueArray.length === 0 ? placeholder : "Add More..." : placeholder;
|
|
13563
|
-
const autoLimitTags =
|
|
13563
|
+
const autoLimitTags = _chunk7CZ4MJSIcjs.useAutoLimitTags.call(void 0, {
|
|
13564
13564
|
count: multiple ? selectedOptions.length : 0,
|
|
13565
13565
|
limitTags: multiple ? limitTagsProp : 0,
|
|
13566
13566
|
placeholder: inputPlaceholder
|
|
@@ -14304,7 +14304,7 @@ function DatePickerCalendar({
|
|
|
14304
14304
|
fluid = false
|
|
14305
14305
|
}) {
|
|
14306
14306
|
const today = /* @__PURE__ */ new Date();
|
|
14307
|
-
const isMdUp = _nullishCoalesce(
|
|
14307
|
+
const isMdUp = _nullishCoalesce(_chunk7CZ4MJSIcjs.useMdUp.call(void 0, ), () => ( true));
|
|
14308
14308
|
const monthsToShow = isMdUp ? numberOfMonths : 1;
|
|
14309
14309
|
const [draftRange, setDraftRange] = React43.useState(
|
|
14310
14310
|
mode === "range" ? selected : void 0
|
|
@@ -15328,7 +15328,7 @@ var ProgressBar = ({
|
|
|
15328
15328
|
mobileHeight = 8,
|
|
15329
15329
|
inverted = false
|
|
15330
15330
|
}) => {
|
|
15331
|
-
const isMdUp = _nullishCoalesce(
|
|
15331
|
+
const isMdUp = _nullishCoalesce(_chunk7CZ4MJSIcjs.useMdUp.call(void 0, ), () => ( true));
|
|
15332
15332
|
const effectiveSegmentWidth = isMdUp ? segmentWidth : mobileSegmentWidth;
|
|
15333
15333
|
const effectiveHeight = isMdUp ? height : mobileHeight;
|
|
15334
15334
|
const containerRef = _react.useRef.call(void 0, null);
|
|
@@ -15455,7 +15455,7 @@ function InfoCardFooter({ footer }) {
|
|
|
15455
15455
|
] });
|
|
15456
15456
|
}
|
|
15457
15457
|
function InfoCardValueRow({ label, value, showLabel, copyable, icon, copyAriaLabel }) {
|
|
15458
|
-
const { copy, copied } =
|
|
15458
|
+
const { copy, copied } = _chunk7CZ4MJSIcjs.useCopyToClipboard.call(void 0, );
|
|
15459
15459
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex h-6 items-center gap-[var(--spacing-system-xs)] self-stretch w-full", children: [
|
|
15460
15460
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-h4 text-ods-text-primary whitespace-nowrap", children: showLabel ? label : "" }),
|
|
15461
15461
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex-1 h-px bg-ods-divider" }),
|
|
@@ -17745,7 +17745,7 @@ var DrawerContent = React63.forwardRef(
|
|
|
17745
17745
|
const resolvedSide = _nullishCoalesce(side, () => ( "right"));
|
|
17746
17746
|
const isHorizontal = HORIZONTAL_SIDES.has(resolvedSide);
|
|
17747
17747
|
const initialSize = _nullishCoalesce(defaultSize, () => ( (isHorizontal ? 560 : 480)));
|
|
17748
|
-
const headerHeight =
|
|
17748
|
+
const headerHeight = _chunk7CZ4MJSIcjs.useHeaderHeight.call(void 0, );
|
|
17749
17749
|
const [isMobile, setIsMobile] = React63.useState(false);
|
|
17750
17750
|
React63.useEffect(() => {
|
|
17751
17751
|
if (typeof window === "undefined") return;
|
|
@@ -19967,7 +19967,7 @@ var OGLinkPreview = ({
|
|
|
19967
19967
|
const hasImage = !!resolvedImageUrl;
|
|
19968
19968
|
const isFallbackImage = resolvedImageUrl === fallbackImage;
|
|
19969
19969
|
const isPlaceholder = resolvedImageUrl === placeholderImageUrl && !isFallbackImage;
|
|
19970
|
-
const bgColor =
|
|
19970
|
+
const bgColor = _chunk7CZ4MJSIcjs.useImageEdgeColor.call(void 0, _nullishCoalesce(resolvedImageUrl, () => ( null)), "var(--color-bg-surface)");
|
|
19971
19971
|
const renderSkeleton = () => isCompact ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "my-4", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-row border border-ods-border rounded-lg overflow-hidden bg-ods-card h-[120px]", children: [
|
|
19972
19972
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-[200px] h-full flex-shrink-0 bg-ods-border animate-pulse" }),
|
|
19973
19973
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 p-3 flex flex-col justify-center", children: [
|
|
@@ -22418,7 +22418,7 @@ function ListPageLayout({
|
|
|
22418
22418
|
}) {
|
|
22419
22419
|
const [mobileFilterOpen, setMobileFilterOpen] = _react.useState.call(void 0, false);
|
|
22420
22420
|
const [localSearchValue, setLocalSearchValue] = _react.useState.call(void 0, searchValue);
|
|
22421
|
-
const debouncedSearchValue =
|
|
22421
|
+
const debouncedSearchValue = _chunk7CZ4MJSIcjs.useDebounce.call(void 0, localSearchValue, 500);
|
|
22422
22422
|
_react.useEffect.call(void 0, () => {
|
|
22423
22423
|
setLocalSearchValue(searchValue);
|
|
22424
22424
|
}, [searchValue]);
|
|
@@ -23084,7 +23084,7 @@ function toToolLabel(input) {
|
|
|
23084
23084
|
if (!input) return "";
|
|
23085
23085
|
const toolType = normalizeToolType(input);
|
|
23086
23086
|
if (toolType) {
|
|
23087
|
-
return
|
|
23087
|
+
return _chunk7CZ4MJSIcjs.toolLabels[toolType];
|
|
23088
23088
|
}
|
|
23089
23089
|
return input;
|
|
23090
23090
|
}
|
|
@@ -23095,7 +23095,7 @@ function getToolTypeAliases(toolType) {
|
|
|
23095
23095
|
return Object.entries(toolAliasMap).filter(([_, value]) => value === toolType).map(([key]) => key);
|
|
23096
23096
|
}
|
|
23097
23097
|
function getToolLabel(toolType) {
|
|
23098
|
-
return
|
|
23098
|
+
return _chunk7CZ4MJSIcjs.toolLabels[toolType] || toolType;
|
|
23099
23099
|
}
|
|
23100
23100
|
|
|
23101
23101
|
// src/types/shell.types.ts
|
|
@@ -26248,10 +26248,10 @@ function CompleteAccountForm({
|
|
|
26248
26248
|
children
|
|
26249
26249
|
}) {
|
|
26250
26250
|
const fieldsDisabled = disabled || loading;
|
|
26251
|
-
const firstNameErr =
|
|
26252
|
-
const lastNameErr =
|
|
26253
|
-
const passwordErr =
|
|
26254
|
-
const confirmErr =
|
|
26251
|
+
const firstNameErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _521 => _521.firstName]), firstName);
|
|
26252
|
+
const lastNameErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _522 => _522.lastName]), lastName);
|
|
26253
|
+
const passwordErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _523 => _523.password]), password);
|
|
26254
|
+
const confirmErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _524 => _524.confirmPassword]), confirmPassword);
|
|
26255
26255
|
const handleKeyDown = (event) => {
|
|
26256
26256
|
if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
|
|
26257
26257
|
onSubmit();
|
|
@@ -26442,9 +26442,9 @@ function CreateOrganizationForm({
|
|
|
26442
26442
|
}) {
|
|
26443
26443
|
const hasSso = !!ssoProviders && ssoProviders.length > 0;
|
|
26444
26444
|
const fieldsDisabled = disabled || loading;
|
|
26445
|
-
const emailErr =
|
|
26446
|
-
const orgNameErr =
|
|
26447
|
-
const domainErr =
|
|
26445
|
+
const emailErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _525 => _525.email]), email);
|
|
26446
|
+
const orgNameErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _526 => _526.organizationName]), organizationName);
|
|
26447
|
+
const domainErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _527 => _527.domain]), domain);
|
|
26448
26448
|
const handleKeyDown = (event) => {
|
|
26449
26449
|
if (event.key === "Enter" && !fieldsDisabled) {
|
|
26450
26450
|
onSubmit();
|
|
@@ -26598,7 +26598,7 @@ function LoginForm({
|
|
|
26598
26598
|
className
|
|
26599
26599
|
}) {
|
|
26600
26600
|
const fieldDisabled = disabled || loading;
|
|
26601
|
-
const emailErr =
|
|
26601
|
+
const emailErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _533 => _533.email]), email);
|
|
26602
26602
|
const handleKeyDown = (event) => {
|
|
26603
26603
|
if (event.key === "Enter" && !fieldDisabled) {
|
|
26604
26604
|
_optionalChain([onSubmit, 'optionalCall', _534 => _534()]);
|
|
@@ -26672,8 +26672,8 @@ function OpenFrameSsoLoginForm({
|
|
|
26672
26672
|
className
|
|
26673
26673
|
}) {
|
|
26674
26674
|
const fieldsDisabled = disabled || loading;
|
|
26675
|
-
const emailErr =
|
|
26676
|
-
const passwordErr =
|
|
26675
|
+
const emailErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _537 => _537.email]), email);
|
|
26676
|
+
const passwordErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _538 => _538.password]), password);
|
|
26677
26677
|
const handleKeyDown = (event) => {
|
|
26678
26678
|
if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
|
|
26679
26679
|
onSubmit();
|
|
@@ -26780,11 +26780,11 @@ function OpenFrameSsoSignUpForm({
|
|
|
26780
26780
|
className
|
|
26781
26781
|
}) {
|
|
26782
26782
|
const fieldsDisabled = disabled || loading;
|
|
26783
|
-
const emailErr =
|
|
26784
|
-
const firstNameErr =
|
|
26785
|
-
const lastNameErr =
|
|
26786
|
-
const passwordErr =
|
|
26787
|
-
const confirmErr =
|
|
26783
|
+
const emailErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _539 => _539.email]), email);
|
|
26784
|
+
const firstNameErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _540 => _540.firstName]), firstName);
|
|
26785
|
+
const lastNameErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _541 => _541.lastName]), lastName);
|
|
26786
|
+
const passwordErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _542 => _542.password]), password);
|
|
26787
|
+
const confirmErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _543 => _543.confirmPassword]), confirmPassword);
|
|
26788
26788
|
const handleKeyDown = (event) => {
|
|
26789
26789
|
if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
|
|
26790
26790
|
onSubmit();
|
|
@@ -26927,8 +26927,8 @@ function PasswordResetForm({
|
|
|
26927
26927
|
className
|
|
26928
26928
|
}) {
|
|
26929
26929
|
const fieldsDisabled = disabled || loading;
|
|
26930
|
-
const passwordErr =
|
|
26931
|
-
const confirmErr =
|
|
26930
|
+
const passwordErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _544 => _544.password]), password);
|
|
26931
|
+
const confirmErr = _chunk7CZ4MJSIcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _545 => _545.confirmPassword]), confirmPassword);
|
|
26932
26932
|
const handleKeyDown = (event) => {
|
|
26933
26933
|
if (event.key === "Enter" && !fieldsDisabled && !submitDisabled) {
|
|
26934
26934
|
onSubmit();
|
|
@@ -29217,7 +29217,7 @@ function PlatformFilterComponent({
|
|
|
29217
29217
|
variant: selectedPlatform === platform.value ? "accent" : "outline",
|
|
29218
29218
|
size: size2,
|
|
29219
29219
|
onClick: () => onPlatformChange(platform.value),
|
|
29220
|
-
leftIcon: showIcons ?
|
|
29220
|
+
leftIcon: showIcons ? _chunk7CZ4MJSIcjs.getSmallPlatformIcon.call(void 0, platform.value) : void 0,
|
|
29221
29221
|
className: "text-h3",
|
|
29222
29222
|
children: platform.label
|
|
29223
29223
|
},
|
|
@@ -31988,7 +31988,7 @@ var PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
|
|
|
31988
31988
|
if (level) onPermissionChange(categoryId, policy.id, level);
|
|
31989
31989
|
};
|
|
31990
31990
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "bg-ods-bg border-b last:border-b-0 border-ods-border flex gap-[var(--spacing-system-m)] items-start md:items-center px-[var(--spacing-system-m)] py-[var(--spacing-system-sf)]", children: [
|
|
31991
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-bg border border-ods-border rounded-md flex items-center justify-center w-8 h-8 shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
31991
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "bg-ods-bg border border-ods-border rounded-md flex items-center justify-center w-8 h-8 shrink-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7CZ4MJSIcjs.ToolIcon, { toolType: policy.toolName, size: 16 }) }),
|
|
31992
31992
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1 flex flex-col min-w-0", children: [
|
|
31993
31993
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h4 text-ods-text-primary truncate", title: policy.name, children: policy.name }),
|
|
31994
31994
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6 text-ods-text-secondary break-all", children: policy.commandPattern }),
|
|
@@ -32300,8 +32300,8 @@ function WaitlistForm({
|
|
|
32300
32300
|
const [email, setEmail] = _react.useState.call(void 0, defaultEmail);
|
|
32301
32301
|
const [phone, setPhone] = _react.useState.call(void 0, defaultPhone);
|
|
32302
32302
|
const [countryCode, setCountryCode] = _react.useState.call(void 0, "US");
|
|
32303
|
-
const { toast } =
|
|
32304
|
-
const { honeypotInputProps, getSignals, resetSignals } =
|
|
32303
|
+
const { toast } = _chunk7CZ4MJSIcjs.useToast.call(void 0, );
|
|
32304
|
+
const { honeypotInputProps, getSignals, resetSignals } = _chunk7CZ4MJSIcjs.useHumanitySignals.call(void 0, );
|
|
32305
32305
|
const [smsConsent, setSmsConsent] = _react.useState.call(void 0, false);
|
|
32306
32306
|
const [isClient, setIsClient] = _react.useState.call(void 0, false);
|
|
32307
32307
|
const [isPhoneInvalid, setIsPhoneInvalid] = _react.useState.call(void 0, false);
|
|
@@ -33283,7 +33283,7 @@ function NotificationTile({
|
|
|
33283
33283
|
onError: () => setFailedImageUrl(image),
|
|
33284
33284
|
className: "size-4 rounded-[2px] object-cover"
|
|
33285
33285
|
}
|
|
33286
|
-
) : _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "size-1.5 rounded-full",
|
|
33286
|
+
) : _nullishCoalesce(icon, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "size-1.5 rounded-full", _chunk7CZ4MJSIcjs.dotColorByVariant[accentVariant]) })))
|
|
33287
33287
|
}
|
|
33288
33288
|
),
|
|
33289
33289
|
type ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -33331,7 +33331,7 @@ function NotificationTile({
|
|
|
33331
33331
|
"aria-hidden": true,
|
|
33332
33332
|
className: _chunkFIG2RKZFcjs.cn.call(void 0,
|
|
33333
33333
|
"absolute inset-x-0 -bottom-px h-1 origin-left",
|
|
33334
|
-
|
|
33334
|
+
_chunk7CZ4MJSIcjs.progressColorByVariant[accentVariant]
|
|
33335
33335
|
),
|
|
33336
33336
|
style: {
|
|
33337
33337
|
animation: `toast-progress ${liveDurationMs}ms linear forwards`,
|
|
@@ -33554,7 +33554,7 @@ function ShowNotificationsToggleRow({ checked, onChange }) {
|
|
|
33554
33554
|
] });
|
|
33555
33555
|
}
|
|
33556
33556
|
function DesktopNotificationsToggleRow({ checked, onChange }) {
|
|
33557
|
-
const { supported, permission, request } =
|
|
33557
|
+
const { supported, permission, request } = _chunk7CZ4MJSIcjs.useNotificationPermission.call(void 0, );
|
|
33558
33558
|
if (!supported) return null;
|
|
33559
33559
|
const blocked = permission === "denied";
|
|
33560
33560
|
const handleChange = async (value) => {
|
|
@@ -35012,7 +35012,7 @@ function EmptyState2() {
|
|
|
35012
35012
|
// src/components/features/board/use-board-collapse.ts
|
|
35013
35013
|
|
|
35014
35014
|
function useBoardCollapse(storageKey) {
|
|
35015
|
-
const [persisted, setPersisted] =
|
|
35015
|
+
const [persisted, setPersisted] = _chunk7CZ4MJSIcjs.useLocalStorage.call(void 0,
|
|
35016
35016
|
_nullishCoalesce(storageKey, () => ( "__board_collapse_unused__")),
|
|
35017
35017
|
{}
|
|
35018
35018
|
);
|
|
@@ -35062,7 +35062,7 @@ function Board({
|
|
|
35062
35062
|
onThumbPointerDown,
|
|
35063
35063
|
onThumbPointerMove,
|
|
35064
35064
|
onThumbPointerUp
|
|
35065
|
-
} =
|
|
35065
|
+
} = _chunk7CZ4MJSIcjs.useHorizontalScrollbar.call(void 0, );
|
|
35066
35066
|
const [items, setItems] = React105.useState(columns);
|
|
35067
35067
|
const isDraggingRef = React105.useRef(false);
|
|
35068
35068
|
React105.useEffect(() => {
|
|
@@ -35420,8 +35420,8 @@ var MOBILE_NAV_PANEL_ID = "mobile-nav-panel";
|
|
|
35420
35420
|
function MobileNavPanel({ isOpen, config }) {
|
|
35421
35421
|
const panelRef = _react.useRef.call(void 0, null);
|
|
35422
35422
|
_overlays.usePreventScroll.call(void 0, { isDisabled: !isOpen });
|
|
35423
|
-
|
|
35424
|
-
const headerHeight =
|
|
35423
|
+
_chunk7CZ4MJSIcjs.useFocusTrap.call(void 0, panelRef, isOpen, { onEscape: config.onClose });
|
|
35424
|
+
const headerHeight = _chunk7CZ4MJSIcjs.useHeaderHeight.call(void 0, 64, { enabled: isOpen });
|
|
35425
35425
|
if (!isOpen) return null;
|
|
35426
35426
|
const renderNavigationItem = (item) => {
|
|
35427
35427
|
if (item.element) {
|
|
@@ -35914,11 +35914,11 @@ _chunkPYR4LVAFcjs.init_button2.call(void 0, );
|
|
|
35914
35914
|
function SlidingSidebar({ config }) {
|
|
35915
35915
|
const [expandedItems, setExpandedItems] = _react.useState.call(void 0, /* @__PURE__ */ new Set());
|
|
35916
35916
|
const [mounted, setMounted] = _react.useState.call(void 0, false);
|
|
35917
|
-
const headerHeight =
|
|
35917
|
+
const headerHeight = _chunk7CZ4MJSIcjs.useHeaderHeight.call(void 0, );
|
|
35918
35918
|
const asideRef = _react.useRef.call(void 0, null);
|
|
35919
35919
|
const prefersReducedMotion2 = _framermotion.useReducedMotion.call(void 0, );
|
|
35920
35920
|
_overlays.usePreventScroll.call(void 0, { isDisabled: !config.isOpen });
|
|
35921
|
-
|
|
35921
|
+
_chunk7CZ4MJSIcjs.useFocusTrap.call(void 0, asideRef, config.isOpen, { onEscape: config.onClose, contain: false });
|
|
35922
35922
|
_react.useEffect.call(void 0, () => {
|
|
35923
35923
|
setMounted(true);
|
|
35924
35924
|
}, []);
|
|
@@ -36156,7 +36156,7 @@ function useSectionNavigation(sections, options) {
|
|
|
36156
36156
|
if (!targetElement) return;
|
|
36157
36157
|
isScrollingFromClick.current = true;
|
|
36158
36158
|
setActiveSection(sectionId);
|
|
36159
|
-
|
|
36159
|
+
_chunk7CZ4MJSIcjs.scrollElementIntoView.call(void 0, targetElement, { headerOffset: offset2 });
|
|
36160
36160
|
setTimeout(() => {
|
|
36161
36161
|
isScrollingFromClick.current = false;
|
|
36162
36162
|
}, 500);
|
|
@@ -36342,10 +36342,10 @@ var MINIMIZED_WIDTH = 56;
|
|
|
36342
36342
|
var EXPANDED_WIDTH = 224;
|
|
36343
36343
|
var STORAGE_KEY = "of.navigationSidebar.minimized";
|
|
36344
36344
|
function NavigationSidebar({ config, disabled = false }) {
|
|
36345
|
-
const isMdUp = _nullishCoalesce(
|
|
36346
|
-
const isLgUp = _nullishCoalesce(
|
|
36345
|
+
const isMdUp = _nullishCoalesce(_chunk7CZ4MJSIcjs.useMdUp.call(void 0, ), () => ( false));
|
|
36346
|
+
const isLgUp = _nullishCoalesce(_chunk7CZ4MJSIcjs.useLgUp.call(void 0, ), () => ( false));
|
|
36347
36347
|
const isTablet = isMdUp && !isLgUp;
|
|
36348
|
-
const [desktopMinimized, setDesktopMinimized] =
|
|
36348
|
+
const [desktopMinimized, setDesktopMinimized] = _chunk7CZ4MJSIcjs.useLocalStorage.call(void 0,
|
|
36349
36349
|
STORAGE_KEY,
|
|
36350
36350
|
_nullishCoalesce(config.minimized, () => ( false))
|
|
36351
36351
|
);
|
|
@@ -36669,7 +36669,7 @@ var AppHeader = React120.default.memo(function AppHeader2({
|
|
|
36669
36669
|
onToggleMobileMenu,
|
|
36670
36670
|
disabled = false
|
|
36671
36671
|
}) {
|
|
36672
|
-
const isMdUp = _nullishCoalesce(
|
|
36672
|
+
const isMdUp = _nullishCoalesce(_chunk7CZ4MJSIcjs.useMdUp.call(void 0, ), () => ( false));
|
|
36673
36673
|
const dimmedClass = disabled ? "pointer-events-none opacity-50" : "";
|
|
36674
36674
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
36675
36675
|
"header",
|
|
@@ -36868,7 +36868,7 @@ var MobileBurgerMenu = React120.default.memo(function MobileBurgerMenu2({
|
|
|
36868
36868
|
}) {
|
|
36869
36869
|
const panelRef = _react.useRef.call(void 0, null);
|
|
36870
36870
|
_overlays.usePreventScroll.call(void 0, { isDisabled: !isOpen });
|
|
36871
|
-
|
|
36871
|
+
_chunk7CZ4MJSIcjs.useFocusTrap.call(void 0, panelRef, isOpen, { onEscape: onClose });
|
|
36872
36872
|
const handleItemClick = _react.useCallback.call(void 0, (item) => {
|
|
36873
36873
|
if (item.onClick) {
|
|
36874
36874
|
item.onClick();
|
|
@@ -37431,7 +37431,7 @@ var ToolBadge = ({
|
|
|
37431
37431
|
}) => {
|
|
37432
37432
|
const label = getToolLabel(toolType);
|
|
37433
37433
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex items-center gap-1 text-ods-text-secondary", className), children: [
|
|
37434
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
37434
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7CZ4MJSIcjs.ToolIcon, { toolType, className: iconClassName, size: 16 }),
|
|
37435
37435
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-text-primary text-h4", children: label })
|
|
37436
37436
|
] });
|
|
37437
37437
|
};
|
|
@@ -37803,7 +37803,7 @@ function OnboardingWalkthrough({
|
|
|
37803
37803
|
isStepSkipped,
|
|
37804
37804
|
allStepsComplete,
|
|
37805
37805
|
markMultipleComplete
|
|
37806
|
-
} =
|
|
37806
|
+
} = _chunk7CZ4MJSIcjs.useOnboardingState.call(void 0, storageKey);
|
|
37807
37807
|
const hasAutoMarkedRef = _react.useRef.call(void 0, false);
|
|
37808
37808
|
const autoMarkingInProgressRef = _react.useRef.call(void 0, false);
|
|
37809
37809
|
const lastCompletionStatusRef = _react.useRef.call(void 0, null);
|
|
@@ -38010,7 +38010,7 @@ var LogCard = ({ log, isLast, showConnector, onClick }) => {
|
|
|
38010
38010
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h6 text-ods-text-primary", children: log.title }),
|
|
38011
38011
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
|
|
38012
38012
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-h5 text-ods-text-secondary", children: formatTimestamp(log.timestamp) }),
|
|
38013
|
-
log.toolType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
38013
|
+
log.toolType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7CZ4MJSIcjs.ToolIcon, { toolType: log.toolType, size: 16 })
|
|
38014
38014
|
] })
|
|
38015
38015
|
] })
|
|
38016
38016
|
]
|
|
@@ -38147,7 +38147,7 @@ function ServiceCard({ title, subtitle, icon, tag, rows, className }) {
|
|
|
38147
38147
|
}
|
|
38148
38148
|
function ServiceCardRowItem({ row }) {
|
|
38149
38149
|
const [revealed, setRevealed] = _react.useState.call(void 0, false);
|
|
38150
|
-
const { copy, copied } =
|
|
38150
|
+
const { copy, copied } = _chunk7CZ4MJSIcjs.useCopyToClipboard.call(void 0, );
|
|
38151
38151
|
const actions = _react.useMemo.call(void 0, () => ({ copy: true, open: !!row.href, reveal: !!row.isSecret, ...row.actions }), [row]);
|
|
38152
38152
|
const displayValue = row.isSecret ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MaskedValue, { value: row.value, isRevealed: revealed }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: row.value });
|
|
38153
38153
|
const handleCopy = () => copy(_nullishCoalesce(row.copyValue, () => ( row.value)));
|
|
@@ -38809,7 +38809,7 @@ function TableHeader({
|
|
|
38809
38809
|
}
|
|
38810
38810
|
return sortDirection === "asc" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBGD345ZVcjs.Arrow01UpIcon, { className: "w-4 h-4 text-ods-accent" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkBGD345ZVcjs.Arrow01DownIcon, { className: "w-4 h-4 text-ods-accent" });
|
|
38811
38811
|
};
|
|
38812
|
-
const isLgUp = _nullishCoalesce(
|
|
38812
|
+
const isLgUp = _nullishCoalesce(_chunk7CZ4MJSIcjs.useLgUp.call(void 0, ), () => ( false));
|
|
38813
38813
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
38814
38814
|
"div",
|
|
38815
38815
|
{
|
|
@@ -39732,7 +39732,7 @@ function QueryReportTable({
|
|
|
39732
39732
|
onThumbPointerDown,
|
|
39733
39733
|
onThumbPointerMove,
|
|
39734
39734
|
onThumbPointerUp
|
|
39735
|
-
} =
|
|
39735
|
+
} = _chunk7CZ4MJSIcjs.useHorizontalScrollbar.call(void 0, );
|
|
39736
39736
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkFIG2RKZFcjs.cn.call(void 0, "flex flex-col w-full", isCompact ? "gap-0" : "gap-6", className), children: [
|
|
39737
39737
|
!isCompact && (title || headerActions || showExport && data.length > 0) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-end justify-between pt-6", children: [
|
|
39738
39738
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "text-h2 text-ods-text-primary", children: title }),
|
|
@@ -39963,7 +39963,7 @@ function DataTableHeader({
|
|
|
39963
39963
|
onSortChange
|
|
39964
39964
|
}) {
|
|
39965
39965
|
const table = useDataTableContext();
|
|
39966
|
-
const isLgUp = _nullishCoalesce(
|
|
39966
|
+
const isLgUp = _nullishCoalesce(_chunk7CZ4MJSIcjs.useLgUp.call(void 0, ), () => ( false));
|
|
39967
39967
|
const headerGroup = table.getHeaderGroups()[0];
|
|
39968
39968
|
if (!headerGroup) return null;
|
|
39969
39969
|
const hasVisibleHeaderCell = headerGroup.headers.some((header) => {
|
|
@@ -40534,7 +40534,7 @@ function SearchInput({
|
|
|
40534
40534
|
}) {
|
|
40535
40535
|
const [internalValue, setInternalValue] = React122.useState(defaultValue);
|
|
40536
40536
|
const currentValue = onChange ? _nullishCoalesce(value, () => ( "")) : internalValue;
|
|
40537
|
-
const debouncedValue =
|
|
40537
|
+
const debouncedValue = _chunk7CZ4MJSIcjs.useDebounce.call(void 0, currentValue, debounceMs);
|
|
40538
40538
|
const [isOpen, setIsOpen] = React122.useState(false);
|
|
40539
40539
|
const [highlightedIndex, setHighlightedIndex] = React122.useState(-1);
|
|
40540
40540
|
const containerRef = React122.useRef(null);
|
|
@@ -40546,7 +40546,7 @@ function SearchInput({
|
|
|
40546
40546
|
textMeasureRef,
|
|
40547
40547
|
badgeRef,
|
|
40548
40548
|
inputRef
|
|
40549
|
-
} =
|
|
40549
|
+
} = _chunk7CZ4MJSIcjs.useAutoLimitTags.call(void 0, {
|
|
40550
40550
|
count: filterChips.length,
|
|
40551
40551
|
limitTags,
|
|
40552
40552
|
// When chips exist, pass empty placeholder so the hook only reserves input minWidth,
|
|
@@ -41013,7 +41013,7 @@ function TagSearchInput({
|
|
|
41013
41013
|
textMeasureRef,
|
|
41014
41014
|
badgeRef,
|
|
41015
41015
|
inputRef
|
|
41016
|
-
} =
|
|
41016
|
+
} = _chunk7CZ4MJSIcjs.useAutoLimitTags.call(void 0, {
|
|
41017
41017
|
count: tags.length,
|
|
41018
41018
|
limitTags,
|
|
41019
41019
|
placeholder: currentPlaceholder
|
|
@@ -45711,7 +45711,7 @@ function useChatCardItem(type, id) {
|
|
|
45711
45711
|
queryKey: ["chat-card-item", type, id],
|
|
45712
45712
|
queryFn: async () => {
|
|
45713
45713
|
if (!url) return null;
|
|
45714
|
-
const res = await
|
|
45714
|
+
const res = await _chunk7CZ4MJSIcjs.embedAuthedFetch.call(void 0, url);
|
|
45715
45715
|
if (!res.ok) return null;
|
|
45716
45716
|
const data = await res.json();
|
|
45717
45717
|
const items = extractItems(data);
|
|
@@ -46956,10 +46956,8 @@ function useChunkCatchup({
|
|
|
46956
46956
|
}) {
|
|
46957
46957
|
const processedSequenceKeys = _react.useRef.call(void 0, /* @__PURE__ */ new Set());
|
|
46958
46958
|
const lastSequenceId = _react.useRef.call(void 0, null);
|
|
46959
|
-
const lastSequenceIdByType = _react.useRef.call(void 0, /* @__PURE__ */ new Map());
|
|
46960
46959
|
const fetchingInProgress = _react.useRef.call(void 0, false);
|
|
46961
46960
|
const lastFetchParams = _react.useRef.call(void 0, null);
|
|
46962
|
-
const pendingCatchupRef = _react.useRef.call(void 0, null);
|
|
46963
46961
|
const chunkBuffer = _react.useRef.call(void 0, []);
|
|
46964
46962
|
const bufferUntilInitialCatchupComplete = _react.useRef.call(void 0, false);
|
|
46965
46963
|
const hasCompletedInitialCatchup = _react.useRef.call(void 0, false);
|
|
@@ -46978,14 +46976,8 @@ function useChunkCatchup({
|
|
|
46978
46976
|
}
|
|
46979
46977
|
if (chunk.sequenceId !== void 0 && chunk.sequenceId !== null) {
|
|
46980
46978
|
const chunkType = typeof chunk.type === "string" ? chunk.type : "";
|
|
46981
|
-
|
|
46982
|
-
if (processedSequenceKeys.current.has(key)) return true;
|
|
46983
|
-
processedSequenceKeys.current.add(key);
|
|
46979
|
+
processedSequenceKeys.current.add(makeSeqKey(messageType, chunkType, chunk.sequenceId));
|
|
46984
46980
|
lastSequenceId.current = chunk.sequenceId;
|
|
46985
|
-
const prevTypeSeq = lastSequenceIdByType.current.get(messageType);
|
|
46986
|
-
if (prevTypeSeq === void 0 || chunk.sequenceId > prevTypeSeq) {
|
|
46987
|
-
lastSequenceIdByType.current.set(messageType, chunk.sequenceId);
|
|
46988
|
-
}
|
|
46989
46981
|
}
|
|
46990
46982
|
onChunkReceivedRef.current(chunk, messageType);
|
|
46991
46983
|
return true;
|
|
@@ -46995,8 +46987,8 @@ function useChunkCatchup({
|
|
|
46995
46987
|
const buffered = [...chunkBuffer.current];
|
|
46996
46988
|
chunkBuffer.current = [];
|
|
46997
46989
|
buffered.sort((a, b) => {
|
|
46998
|
-
const seqA = _nullishCoalesce(a.chunk.sequenceId, () => (
|
|
46999
|
-
const seqB = _nullishCoalesce(b.chunk.sequenceId, () => (
|
|
46990
|
+
const seqA = _nullishCoalesce(a.chunk.sequenceId, () => ( 0));
|
|
46991
|
+
const seqB = _nullishCoalesce(b.chunk.sequenceId, () => ( 0));
|
|
47000
46992
|
return seqA - seqB;
|
|
47001
46993
|
});
|
|
47002
46994
|
buffered.forEach(({ chunk, messageType }) => {
|
|
@@ -47011,14 +47003,9 @@ function useChunkCatchup({
|
|
|
47011
47003
|
return;
|
|
47012
47004
|
}
|
|
47013
47005
|
if (hasCompletedInitialCatchup.current) {
|
|
47014
|
-
if (bufferUntilInitialCatchupComplete.current) {
|
|
47015
|
-
bufferUntilInitialCatchupComplete.current = false;
|
|
47016
|
-
flushBufferedRealtimeChunks();
|
|
47017
|
-
}
|
|
47018
47006
|
return;
|
|
47019
47007
|
}
|
|
47020
47008
|
if (fetchingInProgress.current) {
|
|
47021
|
-
pendingCatchupRef.current = { dialogId: dialogId2, fromSequenceId: _nullishCoalesce(fromSequenceId, () => ( lastSequenceId.current)) };
|
|
47022
47009
|
return;
|
|
47023
47010
|
}
|
|
47024
47011
|
if (lastFetchParams.current && lastFetchParams.current.dialogId === dialogId2 && lastFetchParams.current.fromSequenceId === fromSequenceId) {
|
|
@@ -47035,8 +47022,7 @@ function useChunkCatchup({
|
|
|
47035
47022
|
try {
|
|
47036
47023
|
const chunkPromises = chatTypes2.map(async (chatType) => {
|
|
47037
47024
|
try {
|
|
47038
|
-
const
|
|
47039
|
-
const chunks = await fetchChunks2(dialogId2, chatType, typeFromSequenceId);
|
|
47025
|
+
const chunks = await fetchChunks2(dialogId2, chatType, fromSequenceId);
|
|
47040
47026
|
const messageType = getChatTypeMessageType(chatType);
|
|
47041
47027
|
return chunks.map((chunk) => ({ chunk, messageType }));
|
|
47042
47028
|
} catch (error) {
|
|
@@ -47056,66 +47042,49 @@ function useChunkCatchup({
|
|
|
47056
47042
|
chunkBuffer.current = [];
|
|
47057
47043
|
const allChunks = [...allCatchupChunks, ...bufferedNatsChunks];
|
|
47058
47044
|
allChunks.sort((a, b) => {
|
|
47059
|
-
const seqA = _nullishCoalesce(a.chunk.sequenceId, () => (
|
|
47060
|
-
const seqB = _nullishCoalesce(b.chunk.sequenceId, () => (
|
|
47045
|
+
const seqA = _nullishCoalesce(a.chunk.sequenceId, () => ( 0));
|
|
47046
|
+
const seqB = _nullishCoalesce(b.chunk.sequenceId, () => ( 0));
|
|
47061
47047
|
return seqA - seqB;
|
|
47062
47048
|
});
|
|
47063
47049
|
const uniqueAllChunks = [];
|
|
47064
47050
|
const seenInBatch = /* @__PURE__ */ new Set();
|
|
47065
47051
|
for (const item of allChunks) {
|
|
47066
|
-
const
|
|
47067
|
-
if (
|
|
47068
|
-
|
|
47069
|
-
if (seenInBatch.has(k)) continue;
|
|
47070
|
-
seenInBatch.add(k);
|
|
47071
|
-
}
|
|
47052
|
+
const k = makeBatchDedupKey(item);
|
|
47053
|
+
if (seenInBatch.has(k)) continue;
|
|
47054
|
+
seenInBatch.add(k);
|
|
47072
47055
|
uniqueAllChunks.push(item);
|
|
47073
47056
|
}
|
|
47074
|
-
|
|
47075
|
-
|
|
47076
|
-
for (
|
|
47077
|
-
const
|
|
47078
|
-
if (
|
|
47079
|
-
|
|
47080
|
-
|
|
47081
|
-
const chunksToProcess = [];
|
|
47082
|
-
for (const items of byType.values()) {
|
|
47083
|
-
let lastMessageStartSeqId = null;
|
|
47084
|
-
let lastMessageEndSeqId = null;
|
|
47085
|
-
for (let i = items.length - 1; i >= 0; i--) {
|
|
47086
|
-
const seq = items[i].chunk.sequenceId;
|
|
47087
|
-
if (items[i].chunk.type === MESSAGE_TYPE.MESSAGE_END && seq !== void 0 && seq !== null) {
|
|
47088
|
-
lastMessageEndSeqId = seq;
|
|
47089
|
-
break;
|
|
47090
|
-
}
|
|
47057
|
+
let lastMessageStartSeqId = null;
|
|
47058
|
+
let lastMessageEndSeqId = null;
|
|
47059
|
+
for (let i = uniqueAllChunks.length - 1; i >= 0; i--) {
|
|
47060
|
+
const seq = uniqueAllChunks[i].chunk.sequenceId;
|
|
47061
|
+
if (uniqueAllChunks[i].chunk.type === MESSAGE_TYPE.MESSAGE_END && seq !== void 0 && seq !== null) {
|
|
47062
|
+
lastMessageEndSeqId = seq;
|
|
47063
|
+
break;
|
|
47091
47064
|
}
|
|
47092
|
-
|
|
47093
|
-
|
|
47094
|
-
|
|
47095
|
-
|
|
47096
|
-
|
|
47097
|
-
|
|
47098
|
-
|
|
47099
|
-
|
|
47065
|
+
}
|
|
47066
|
+
for (let i = uniqueAllChunks.length - 1; i >= 0; i--) {
|
|
47067
|
+
const chunk = uniqueAllChunks[i].chunk;
|
|
47068
|
+
const seq = chunk.sequenceId;
|
|
47069
|
+
if (chunk.type === MESSAGE_TYPE.MESSAGE_START && seq !== void 0 && seq !== null) {
|
|
47070
|
+
if (lastMessageEndSeqId === null || seq > lastMessageEndSeqId) {
|
|
47071
|
+
lastMessageStartSeqId = seq;
|
|
47072
|
+
break;
|
|
47100
47073
|
}
|
|
47101
47074
|
}
|
|
47102
|
-
if (lastMessageStartSeqId !== null) {
|
|
47103
|
-
chunksToProcess.push(
|
|
47104
|
-
...items.filter((item) => hasNoSeq(item) || item.chunk.sequenceId >= lastMessageStartSeqId)
|
|
47105
|
-
);
|
|
47106
|
-
} else if (lastMessageEndSeqId !== null) {
|
|
47107
|
-
chunksToProcess.push(
|
|
47108
|
-
...items.filter((item) => hasNoSeq(item) || item.chunk.sequenceId > lastMessageEndSeqId)
|
|
47109
|
-
);
|
|
47110
|
-
} else {
|
|
47111
|
-
chunksToProcess.push(...items);
|
|
47112
|
-
}
|
|
47113
47075
|
}
|
|
47114
|
-
chunksToProcess
|
|
47115
|
-
|
|
47116
|
-
|
|
47117
|
-
|
|
47118
|
-
|
|
47076
|
+
let chunksToProcess;
|
|
47077
|
+
if (lastMessageStartSeqId !== null) {
|
|
47078
|
+
chunksToProcess = uniqueAllChunks.filter(
|
|
47079
|
+
(item) => item.chunk.sequenceId !== void 0 && item.chunk.sequenceId >= lastMessageStartSeqId
|
|
47080
|
+
);
|
|
47081
|
+
} else if (lastMessageEndSeqId !== null) {
|
|
47082
|
+
chunksToProcess = uniqueAllChunks.filter(
|
|
47083
|
+
(item) => item.chunk.sequenceId !== void 0 && item.chunk.sequenceId > lastMessageEndSeqId
|
|
47084
|
+
);
|
|
47085
|
+
} else {
|
|
47086
|
+
chunksToProcess = uniqueAllChunks;
|
|
47087
|
+
}
|
|
47119
47088
|
chunksToProcess.forEach(({ chunk, messageType }) => {
|
|
47120
47089
|
if (chunk.sequenceId !== void 0 && chunk.sequenceId !== null) {
|
|
47121
47090
|
const chunkType = typeof chunk.type === "string" ? chunk.type : "";
|
|
@@ -47123,10 +47092,6 @@ function useChunkCatchup({
|
|
|
47123
47092
|
if (processedSequenceKeys.current.has(key)) return;
|
|
47124
47093
|
processedSequenceKeys.current.add(key);
|
|
47125
47094
|
lastSequenceId.current = chunk.sequenceId;
|
|
47126
|
-
const prevTypeSeq = lastSequenceIdByType.current.get(messageType);
|
|
47127
|
-
if (prevTypeSeq === void 0 || chunk.sequenceId > prevTypeSeq) {
|
|
47128
|
-
lastSequenceIdByType.current.set(messageType, chunk.sequenceId);
|
|
47129
|
-
}
|
|
47130
47095
|
}
|
|
47131
47096
|
onChunkReceivedRef.current(chunk, messageType);
|
|
47132
47097
|
});
|
|
@@ -47135,55 +47100,26 @@ function useChunkCatchup({
|
|
|
47135
47100
|
} catch (error) {
|
|
47136
47101
|
console.error("Error during chunk catchup:", error);
|
|
47137
47102
|
} finally {
|
|
47138
|
-
|
|
47139
|
-
|
|
47140
|
-
|
|
47141
|
-
|
|
47142
|
-
|
|
47143
|
-
fetchingInProgress.current = false;
|
|
47144
|
-
const pending = pendingCatchupRef.current;
|
|
47145
|
-
if (pending) {
|
|
47146
|
-
pendingCatchupRef.current = null;
|
|
47147
|
-
if (pending.dialogId === dialogId2) {
|
|
47148
|
-
hasCompletedInitialCatchup.current = false;
|
|
47149
|
-
lastFetchParams.current = null;
|
|
47150
|
-
bufferUntilInitialCatchupComplete.current = true;
|
|
47151
|
-
try {
|
|
47152
|
-
await _optionalChain([catchUpChunksRef, 'access', _1117 => _1117.current, 'optionalCall', _1118 => _1118(pending.fromSequenceId)]);
|
|
47153
|
-
} catch (rerunError) {
|
|
47154
|
-
console.error("Queued catch-up re-run failed:", rerunError);
|
|
47155
|
-
}
|
|
47156
|
-
} else if (bufferUntilInitialCatchupComplete.current) {
|
|
47157
|
-
bufferUntilInitialCatchupComplete.current = false;
|
|
47158
|
-
hasCompletedInitialCatchup.current = true;
|
|
47159
|
-
flushBufferedRealtimeChunks();
|
|
47160
|
-
}
|
|
47161
|
-
} else if (bufferUntilInitialCatchupComplete.current) {
|
|
47162
|
-
bufferUntilInitialCatchupComplete.current = false;
|
|
47163
|
-
hasCompletedInitialCatchup.current = true;
|
|
47164
|
-
flushBufferedRealtimeChunks();
|
|
47165
|
-
}
|
|
47103
|
+
fetchingInProgress.current = false;
|
|
47104
|
+
if (bufferUntilInitialCatchupComplete.current) {
|
|
47105
|
+
bufferUntilInitialCatchupComplete.current = false;
|
|
47106
|
+
hasCompletedInitialCatchup.current = true;
|
|
47107
|
+
flushBufferedRealtimeChunks();
|
|
47166
47108
|
}
|
|
47167
47109
|
}
|
|
47168
47110
|
}, [flushBufferedRealtimeChunks]);
|
|
47169
|
-
const catchUpChunksRef = _react.useRef.call(void 0, null);
|
|
47170
|
-
catchUpChunksRef.current = catchUpChunks;
|
|
47171
47111
|
const resetChunkTracking = _react.useCallback.call(void 0, () => {
|
|
47172
47112
|
processedSequenceKeys.current.clear();
|
|
47173
47113
|
lastSequenceId.current = null;
|
|
47174
|
-
lastSequenceIdByType.current.clear();
|
|
47175
47114
|
fetchingInProgress.current = false;
|
|
47176
47115
|
lastFetchParams.current = null;
|
|
47177
|
-
pendingCatchupRef.current = null;
|
|
47178
47116
|
chunkBuffer.current = [];
|
|
47179
47117
|
bufferUntilInitialCatchupComplete.current = false;
|
|
47180
47118
|
hasCompletedInitialCatchup.current = false;
|
|
47181
47119
|
}, []);
|
|
47182
47120
|
const startInitialBuffering = _react.useCallback.call(void 0, () => {
|
|
47183
|
-
|
|
47184
|
-
|
|
47185
|
-
bufferUntilInitialCatchupComplete.current = true;
|
|
47186
|
-
}
|
|
47121
|
+
chunkBuffer.current = [];
|
|
47122
|
+
bufferUntilInitialCatchupComplete.current = true;
|
|
47187
47123
|
hasCompletedInitialCatchup.current = false;
|
|
47188
47124
|
}, []);
|
|
47189
47125
|
const isBufferingActive = _react.useCallback.call(void 0, () => bufferUntilInitialCatchupComplete.current, []);
|
|
@@ -47192,10 +47128,8 @@ function useChunkCatchup({
|
|
|
47192
47128
|
const fromSeq = lastSequenceId.current;
|
|
47193
47129
|
hasCompletedInitialCatchup.current = false;
|
|
47194
47130
|
lastFetchParams.current = null;
|
|
47195
|
-
|
|
47196
|
-
|
|
47197
|
-
bufferUntilInitialCatchupComplete.current = true;
|
|
47198
|
-
}
|
|
47131
|
+
bufferUntilInitialCatchupComplete.current = true;
|
|
47132
|
+
chunkBuffer.current = [];
|
|
47199
47133
|
await catchUpChunks(fromSeq);
|
|
47200
47134
|
}, [catchUpChunks]);
|
|
47201
47135
|
return {
|
|
@@ -47213,7 +47147,7 @@ function useChunkCatchup({
|
|
|
47213
47147
|
|
|
47214
47148
|
var EMPTY_FRAME = { messages: [], phase: "idle", typing: false, delayMs: 0 };
|
|
47215
47149
|
function prefersReducedMotion() {
|
|
47216
|
-
return typeof window !== "undefined" && _optionalChain([window, 'access',
|
|
47150
|
+
return typeof window !== "undefined" && _optionalChain([window, 'access', _1115 => _1115.matchMedia, 'optionalCall', _1116 => _1116("(prefers-reduced-motion: reduce)"), 'access', _1117 => _1117.matches]) === true;
|
|
47217
47151
|
}
|
|
47218
47152
|
function useScriptedStream(frames, resetKey, enabled = true) {
|
|
47219
47153
|
const [index, setIndex] = _react.useState.call(void 0, 0);
|
|
@@ -47225,7 +47159,7 @@ function useScriptedStream(frames, resetKey, enabled = true) {
|
|
|
47225
47159
|
}
|
|
47226
47160
|
_react.useEffect.call(void 0, () => {
|
|
47227
47161
|
setReducedMotion(prefersReducedMotion());
|
|
47228
|
-
const mq = _optionalChain([window, 'access',
|
|
47162
|
+
const mq = _optionalChain([window, 'access', _1118 => _1118.matchMedia, 'optionalCall', _1119 => _1119("(prefers-reduced-motion: reduce)")]);
|
|
47229
47163
|
if (!mq) return;
|
|
47230
47164
|
const onChange = () => setReducedMotion(mq.matches);
|
|
47231
47165
|
mq.addEventListener("change", onChange);
|
|
@@ -47317,7 +47251,7 @@ function useJetStreamDialogSubscription({
|
|
|
47317
47251
|
_react.useEffect.call(void 0, () => {
|
|
47318
47252
|
if (!enabled || !wsUrl) {
|
|
47319
47253
|
if (currentWsUrlRef.current && clientRef.current) {
|
|
47320
|
-
|
|
47254
|
+
_chunkPXXS27EEcjs.releaseClient.call(void 0, currentWsUrlRef.current);
|
|
47321
47255
|
clientRef.current = null;
|
|
47322
47256
|
currentWsUrlRef.current = "";
|
|
47323
47257
|
setIsConnected(false);
|
|
@@ -47328,13 +47262,13 @@ function useJetStreamDialogSubscription({
|
|
|
47328
47262
|
return;
|
|
47329
47263
|
}
|
|
47330
47264
|
if (currentWsUrlRef.current && currentWsUrlRef.current !== wsUrl && clientRef.current) {
|
|
47331
|
-
|
|
47265
|
+
_chunkPXXS27EEcjs.releaseClient.call(void 0, currentWsUrlRef.current);
|
|
47332
47266
|
clientRef.current = null;
|
|
47333
47267
|
setIsConnected(false);
|
|
47334
47268
|
}
|
|
47335
47269
|
currentWsUrlRef.current = wsUrl;
|
|
47336
47270
|
const cfg = clientConfigRef.current;
|
|
47337
|
-
const sharedConn =
|
|
47271
|
+
const sharedConn = _chunkPXXS27EEcjs.acquireClient.call(void 0, wsUrl, {
|
|
47338
47272
|
name: _nullishCoalesce(cfg.name, () => ( "openframe-frontend-jetstream")),
|
|
47339
47273
|
user: _nullishCoalesce(cfg.user, () => ( "machine")),
|
|
47340
47274
|
pass: _nullishCoalesce(cfg.pass, () => ( ""))
|
|
@@ -47351,10 +47285,10 @@ function useJetStreamDialogSubscription({
|
|
|
47351
47285
|
subscriptionRef.current = null;
|
|
47352
47286
|
}
|
|
47353
47287
|
};
|
|
47354
|
-
const lifecycle =
|
|
47288
|
+
const lifecycle = _chunkPXXS27EEcjs.startConnectionLifecycle.call(void 0, {
|
|
47355
47289
|
conn: sharedConn,
|
|
47356
47290
|
wsUrl,
|
|
47357
|
-
onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access',
|
|
47291
|
+
onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _1120 => _1120.current, 'optionalCall', _1121 => _1121()]),
|
|
47358
47292
|
backoff: reconnectionBackoffRef.current,
|
|
47359
47293
|
getFreshUrl: () => getNatsWsUrlRef.current(),
|
|
47360
47294
|
// JetStream emits 'error' for protocol-level failures (e.g. -ERR Permissions
|
|
@@ -47369,7 +47303,7 @@ function useJetStreamDialogSubscription({
|
|
|
47369
47303
|
setReconnectionCount((c) => c + 1);
|
|
47370
47304
|
}
|
|
47371
47305
|
hadConnectionBeforeRef.current = true;
|
|
47372
|
-
_optionalChain([onConnectRef, 'access',
|
|
47306
|
+
_optionalChain([onConnectRef, 'access', _1122 => _1122.current, 'optionalCall', _1123 => _1123()]);
|
|
47373
47307
|
}
|
|
47374
47308
|
if (status === "error") {
|
|
47375
47309
|
console.warn("[JetStream] NATS protocol error:", evt.data);
|
|
@@ -47379,7 +47313,7 @@ function useJetStreamDialogSubscription({
|
|
|
47379
47313
|
setIsConnected(false);
|
|
47380
47314
|
setIsSubscribed(false);
|
|
47381
47315
|
tearDownSubscription();
|
|
47382
|
-
_optionalChain([onDisconnectRef, 'access',
|
|
47316
|
+
_optionalChain([onDisconnectRef, 'access', _1124 => _1124.current, 'optionalCall', _1125 => _1125()]);
|
|
47383
47317
|
}
|
|
47384
47318
|
}
|
|
47385
47319
|
});
|
|
@@ -47389,16 +47323,12 @@ function useJetStreamDialogSubscription({
|
|
|
47389
47323
|
setIsSubscribed(false);
|
|
47390
47324
|
tearDownSubscription();
|
|
47391
47325
|
if (clientRef.current && currentWsUrlRef.current) {
|
|
47392
|
-
|
|
47326
|
+
_chunkPXXS27EEcjs.releaseClient.call(void 0, currentWsUrlRef.current);
|
|
47393
47327
|
clientRef.current = null;
|
|
47394
47328
|
currentWsUrlRef.current = "";
|
|
47395
47329
|
}
|
|
47396
47330
|
};
|
|
47397
47331
|
}, [enabled, wsUrl]);
|
|
47398
|
-
_react.useEffect.call(void 0, () => {
|
|
47399
|
-
highestStreamSeqRef.current = null;
|
|
47400
|
-
setCurrentStreamSeq(null);
|
|
47401
|
-
}, [dialogId]);
|
|
47402
47332
|
_react.useEffect.call(void 0, () => {
|
|
47403
47333
|
if (!enabled || !dialogId || !isConnected) {
|
|
47404
47334
|
if (subscriptionRef.current) {
|
|
@@ -47462,7 +47392,7 @@ function useJetStreamDialogSubscription({
|
|
|
47462
47392
|
}
|
|
47463
47393
|
subscriptionRef.current = handle;
|
|
47464
47394
|
setIsSubscribed(true);
|
|
47465
|
-
_optionalChain([onSubscribedRef, 'access',
|
|
47395
|
+
_optionalChain([onSubscribedRef, 'access', _1126 => _1126.current, 'optionalCall', _1127 => _1127()]);
|
|
47466
47396
|
} catch (e52) {
|
|
47467
47397
|
if (!cancelled) {
|
|
47468
47398
|
setIsSubscribed(false);
|
|
@@ -47482,6 +47412,10 @@ function useJetStreamDialogSubscription({
|
|
|
47482
47412
|
setIsSubscribed(false);
|
|
47483
47413
|
};
|
|
47484
47414
|
}, [enabled, dialogId, isConnected, streamName, topic, reconnectionCount]);
|
|
47415
|
+
_react.useEffect.call(void 0, () => {
|
|
47416
|
+
highestStreamSeqRef.current = null;
|
|
47417
|
+
setCurrentStreamSeq(null);
|
|
47418
|
+
}, [dialogId]);
|
|
47485
47419
|
return { isConnected, isSubscribed, reconnectionCount, currentStreamSeq };
|
|
47486
47420
|
}
|
|
47487
47421
|
|
|
@@ -47543,7 +47477,7 @@ function useNatsDialogSubscription({
|
|
|
47543
47477
|
_react.useEffect.call(void 0, () => {
|
|
47544
47478
|
if (!enabled || !wsUrl) {
|
|
47545
47479
|
if (currentWsUrlRef.current && clientRef.current) {
|
|
47546
|
-
|
|
47480
|
+
_chunkPXXS27EEcjs.releaseClient.call(void 0, currentWsUrlRef.current);
|
|
47547
47481
|
clientRef.current = null;
|
|
47548
47482
|
currentWsUrlRef.current = "";
|
|
47549
47483
|
setIsConnected(false);
|
|
@@ -47554,13 +47488,13 @@ function useNatsDialogSubscription({
|
|
|
47554
47488
|
return;
|
|
47555
47489
|
}
|
|
47556
47490
|
if (currentWsUrlRef.current && currentWsUrlRef.current !== wsUrl && clientRef.current) {
|
|
47557
|
-
|
|
47491
|
+
_chunkPXXS27EEcjs.releaseClient.call(void 0, currentWsUrlRef.current);
|
|
47558
47492
|
clientRef.current = null;
|
|
47559
47493
|
setIsConnected(false);
|
|
47560
47494
|
}
|
|
47561
47495
|
currentWsUrlRef.current = wsUrl;
|
|
47562
47496
|
const cfg = clientConfigRef.current;
|
|
47563
|
-
const sharedConn =
|
|
47497
|
+
const sharedConn = _chunkPXXS27EEcjs.acquireClient.call(void 0, wsUrl, {
|
|
47564
47498
|
name: _nullishCoalesce(cfg.name, () => ( "openframe-frontend")),
|
|
47565
47499
|
user: _nullishCoalesce(cfg.user, () => ( "machine")),
|
|
47566
47500
|
pass: _nullishCoalesce(cfg.pass, () => ( ""))
|
|
@@ -47571,20 +47505,20 @@ function useNatsDialogSubscription({
|
|
|
47571
47505
|
const tearDownSubscriptions = () => {
|
|
47572
47506
|
subscriptionRefs.current.forEach((sub) => {
|
|
47573
47507
|
try {
|
|
47574
|
-
_optionalChain([sub, 'optionalAccess',
|
|
47508
|
+
_optionalChain([sub, 'optionalAccess', _1128 => _1128.unsubscribe, 'call', _1129 => _1129()]);
|
|
47575
47509
|
} catch (e54) {
|
|
47576
47510
|
}
|
|
47577
47511
|
});
|
|
47578
47512
|
subscriptionRefs.current.clear();
|
|
47579
47513
|
lastSubscribedDialogIdRef.current = null;
|
|
47580
|
-
_optionalChain([abortControllerRef, 'access',
|
|
47514
|
+
_optionalChain([abortControllerRef, 'access', _1130 => _1130.current, 'optionalAccess', _1131 => _1131.abort, 'call', _1132 => _1132()]);
|
|
47581
47515
|
abortControllerRef.current = null;
|
|
47582
47516
|
};
|
|
47583
47517
|
const isDisconnectStatus = (status) => status === "closed" || status === "disconnected";
|
|
47584
|
-
const lifecycle =
|
|
47518
|
+
const lifecycle = _chunkPXXS27EEcjs.startConnectionLifecycle.call(void 0, {
|
|
47585
47519
|
conn: sharedConn,
|
|
47586
47520
|
wsUrl,
|
|
47587
|
-
onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access',
|
|
47521
|
+
onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _1133 => _1133.current, 'optionalCall', _1134 => _1134()]),
|
|
47588
47522
|
backoff: reconnectionBackoffRef.current,
|
|
47589
47523
|
getFreshUrl: () => getNatsWsUrlRef.current(),
|
|
47590
47524
|
shouldRetryOn: isDisconnectStatus,
|
|
@@ -47595,7 +47529,7 @@ function useNatsDialogSubscription({
|
|
|
47595
47529
|
setReconnectionCount((c) => c + 1);
|
|
47596
47530
|
}
|
|
47597
47531
|
hadConnectionBeforeRef.current = true;
|
|
47598
|
-
_optionalChain([onConnectRef, 'access',
|
|
47532
|
+
_optionalChain([onConnectRef, 'access', _1135 => _1135.current, 'optionalCall', _1136 => _1136()]);
|
|
47599
47533
|
}
|
|
47600
47534
|
if (status === "error") {
|
|
47601
47535
|
console.warn("[NATS] protocol error:", evt.data);
|
|
@@ -47605,7 +47539,7 @@ function useNatsDialogSubscription({
|
|
|
47605
47539
|
setIsConnected(false);
|
|
47606
47540
|
setIsSubscribed(false);
|
|
47607
47541
|
tearDownSubscriptions();
|
|
47608
|
-
_optionalChain([onDisconnectRef, 'access',
|
|
47542
|
+
_optionalChain([onDisconnectRef, 'access', _1137 => _1137.current, 'optionalCall', _1138 => _1138()]);
|
|
47609
47543
|
}
|
|
47610
47544
|
}
|
|
47611
47545
|
});
|
|
@@ -47615,15 +47549,13 @@ function useNatsDialogSubscription({
|
|
|
47615
47549
|
setIsSubscribed(false);
|
|
47616
47550
|
tearDownSubscriptions();
|
|
47617
47551
|
if (clientRef.current && currentWsUrlRef.current) {
|
|
47618
|
-
|
|
47552
|
+
_chunkPXXS27EEcjs.releaseClient.call(void 0, currentWsUrlRef.current);
|
|
47619
47553
|
clientRef.current = null;
|
|
47620
47554
|
currentWsUrlRef.current = "";
|
|
47621
47555
|
}
|
|
47622
47556
|
};
|
|
47623
47557
|
}, [enabled, wsUrl]);
|
|
47624
47558
|
const topicsKey = topics.join(",");
|
|
47625
|
-
const topicsRef = _react.useRef.call(void 0, topics);
|
|
47626
|
-
topicsRef.current = topics;
|
|
47627
47559
|
const lastSubscribedDialogIdRef = _react.useRef.call(void 0, null);
|
|
47628
47560
|
const isConnectedRef = _react.useRef.call(void 0, isConnected);
|
|
47629
47561
|
_react.useEffect.call(void 0, () => {
|
|
@@ -47638,13 +47570,13 @@ function useNatsDialogSubscription({
|
|
|
47638
47570
|
setIsSubscribed(false);
|
|
47639
47571
|
subscriptionRefs.current.forEach((sub) => {
|
|
47640
47572
|
try {
|
|
47641
|
-
_optionalChain([sub, 'optionalAccess',
|
|
47573
|
+
_optionalChain([sub, 'optionalAccess', _1139 => _1139.unsubscribe, 'call', _1140 => _1140()]);
|
|
47642
47574
|
} catch (e55) {
|
|
47643
47575
|
}
|
|
47644
47576
|
});
|
|
47645
47577
|
subscriptionRefs.current.clear();
|
|
47646
47578
|
lastSubscribedDialogIdRef.current = null;
|
|
47647
|
-
_optionalChain([abortControllerRef, 'access',
|
|
47579
|
+
_optionalChain([abortControllerRef, 'access', _1141 => _1141.current, 'optionalAccess', _1142 => _1142.abort, 'call', _1143 => _1143()]);
|
|
47648
47580
|
abortControllerRef.current = null;
|
|
47649
47581
|
}
|
|
47650
47582
|
return;
|
|
@@ -47656,12 +47588,12 @@ function useNatsDialogSubscription({
|
|
|
47656
47588
|
if (subscriptionRefs.current.size > 0) {
|
|
47657
47589
|
subscriptionRefs.current.forEach((sub) => {
|
|
47658
47590
|
try {
|
|
47659
|
-
_optionalChain([sub, 'optionalAccess',
|
|
47591
|
+
_optionalChain([sub, 'optionalAccess', _1144 => _1144.unsubscribe, 'call', _1145 => _1145()]);
|
|
47660
47592
|
} catch (e56) {
|
|
47661
47593
|
}
|
|
47662
47594
|
});
|
|
47663
47595
|
subscriptionRefs.current.clear();
|
|
47664
|
-
_optionalChain([abortControllerRef, 'access',
|
|
47596
|
+
_optionalChain([abortControllerRef, 'access', _1146 => _1146.current, 'optionalAccess', _1147 => _1147.abort, 'call', _1148 => _1148()]);
|
|
47665
47597
|
}
|
|
47666
47598
|
abortControllerRef.current = new AbortController();
|
|
47667
47599
|
const abort = abortControllerRef.current;
|
|
@@ -47683,7 +47615,7 @@ function useNatsDialogSubscription({
|
|
|
47683
47615
|
} catch (e57) {
|
|
47684
47616
|
}
|
|
47685
47617
|
};
|
|
47686
|
-
|
|
47618
|
+
topics.forEach((topic) => {
|
|
47687
47619
|
const subscription = client.subscribeBytes(
|
|
47688
47620
|
`chat.${dialogId}.${topic}`,
|
|
47689
47621
|
handleMessage(topic),
|
|
@@ -47693,7 +47625,7 @@ function useNatsDialogSubscription({
|
|
|
47693
47625
|
});
|
|
47694
47626
|
lastSubscribedDialogIdRef.current = dialogId;
|
|
47695
47627
|
setIsSubscribed(true);
|
|
47696
|
-
_optionalChain([onSubscribedRef, 'access',
|
|
47628
|
+
_optionalChain([onSubscribedRef, 'access', _1149 => _1149.current, 'optionalCall', _1150 => _1150()]);
|
|
47697
47629
|
};
|
|
47698
47630
|
if (isConnectedRef.current) {
|
|
47699
47631
|
createSubscriptions();
|
|
@@ -47703,7 +47635,7 @@ function useNatsDialogSubscription({
|
|
|
47703
47635
|
abort.abort();
|
|
47704
47636
|
subscriptionRefs.current.forEach((sub) => {
|
|
47705
47637
|
try {
|
|
47706
|
-
_optionalChain([sub, 'optionalAccess',
|
|
47638
|
+
_optionalChain([sub, 'optionalAccess', _1151 => _1151.unsubscribe, 'call', _1152 => _1152()]);
|
|
47707
47639
|
} catch (e58) {
|
|
47708
47640
|
}
|
|
47709
47641
|
});
|
|
@@ -47711,7 +47643,7 @@ function useNatsDialogSubscription({
|
|
|
47711
47643
|
lastSubscribedDialogIdRef.current = null;
|
|
47712
47644
|
abortControllerRef.current = null;
|
|
47713
47645
|
};
|
|
47714
|
-
}, [enabled, dialogId, topicsKey]);
|
|
47646
|
+
}, [enabled, dialogId, topicsKey, topics]);
|
|
47715
47647
|
_react.useEffect.call(void 0, () => {
|
|
47716
47648
|
if (!enabled || !currentDialogIdRef.current || !isConnected) {
|
|
47717
47649
|
return;
|
|
@@ -47734,7 +47666,7 @@ function useNatsDialogSubscription({
|
|
|
47734
47666
|
} catch (e59) {
|
|
47735
47667
|
}
|
|
47736
47668
|
};
|
|
47737
|
-
|
|
47669
|
+
topics.forEach((topic) => {
|
|
47738
47670
|
const subscription = client.subscribeBytes(
|
|
47739
47671
|
`chat.${dialogId2}.${topic}`,
|
|
47740
47672
|
handleMessage(topic),
|
|
@@ -47744,18 +47676,18 @@ function useNatsDialogSubscription({
|
|
|
47744
47676
|
});
|
|
47745
47677
|
lastSubscribedDialogIdRef.current = dialogId2;
|
|
47746
47678
|
setIsSubscribed(true);
|
|
47747
|
-
_optionalChain([onSubscribedRef, 'access',
|
|
47679
|
+
_optionalChain([onSubscribedRef, 'access', _1153 => _1153.current, 'optionalCall', _1154 => _1154()]);
|
|
47748
47680
|
} else if (subscriptionRefs.current.size > 0) {
|
|
47749
47681
|
setIsSubscribed(true);
|
|
47750
47682
|
}
|
|
47751
|
-
}, [isConnected, enabled, topicsKey]);
|
|
47683
|
+
}, [isConnected, enabled, topics, topicsKey]);
|
|
47752
47684
|
return { isConnected, isSubscribed, reconnectionCount };
|
|
47753
47685
|
}
|
|
47754
47686
|
function buildNatsWsUrl(apiBaseUrl, options) {
|
|
47755
|
-
const path = _optionalChain([options, 'optionalAccess',
|
|
47687
|
+
const path = _optionalChain([options, 'optionalAccess', _1155 => _1155.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
|
|
47756
47688
|
const u = new URL(path, apiBaseUrl);
|
|
47757
47689
|
u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
|
|
47758
|
-
if (_optionalChain([options, 'optionalAccess',
|
|
47690
|
+
if (_optionalChain([options, 'optionalAccess', _1156 => _1156.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _1157 => _1157.token])) {
|
|
47759
47691
|
u.searchParams.set("authorization", options.token);
|
|
47760
47692
|
}
|
|
47761
47693
|
return u.toString();
|
|
@@ -47891,7 +47823,7 @@ function parseChunkToAction(chunk) {
|
|
|
47891
47823
|
// is REQUIRED on `ChatContextItem`, so fall back to the id (same as the
|
|
47892
47824
|
// historical path in `process-historical-messages.ts`) — keeps both
|
|
47893
47825
|
// message sources producing an identical shape.
|
|
47894
|
-
contextItems: Array.isArray(data.contextItems) ? data.contextItems.filter((it) => typeof _optionalChain([it, 'optionalAccess',
|
|
47826
|
+
contextItems: Array.isArray(data.contextItems) ? data.contextItems.filter((it) => typeof _optionalChain([it, 'optionalAccess', _1158 => _1158.type]) === "string" && typeof _optionalChain([it, 'optionalAccess', _1159 => _1159.id]) === "string").map((it) => ({ type: it.type, id: it.id, label: it.id })) : void 0
|
|
47895
47827
|
};
|
|
47896
47828
|
case MESSAGE_TYPE.TOKEN_USAGE:
|
|
47897
47829
|
return {
|
|
@@ -48083,8 +48015,8 @@ var MessageSegmentAccumulator = class {
|
|
|
48083
48015
|
type: "tool_execution",
|
|
48084
48016
|
data: {
|
|
48085
48017
|
...toolData,
|
|
48086
|
-
toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess',
|
|
48087
|
-
parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess',
|
|
48018
|
+
toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _1160 => _1160.data, 'access', _1161 => _1161.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _1162 => _1162.toolTitle]))),
|
|
48019
|
+
parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _1163 => _1163.parameters])
|
|
48088
48020
|
}
|
|
48089
48021
|
};
|
|
48090
48022
|
if (existingIndex !== -1) {
|
|
@@ -48108,12 +48040,8 @@ var MessageSegmentAccumulator = class {
|
|
|
48108
48040
|
if (seg.type !== "approval_batch") return seg;
|
|
48109
48041
|
const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
|
|
48110
48042
|
if (!hasCall) return seg;
|
|
48111
|
-
const prev = _optionalChain([seg, 'access',
|
|
48112
|
-
|
|
48113
|
-
matched = true;
|
|
48114
|
-
return seg;
|
|
48115
|
-
}
|
|
48116
|
-
const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _1172 => _1172.result]), success: _optionalChain([prev, 'optionalAccess', _1173 => _1173.success]) };
|
|
48043
|
+
const prev = _optionalChain([seg, 'access', _1164 => _1164.data, 'access', _1165 => _1165.executions, 'optionalAccess', _1166 => _1166[execId]]);
|
|
48044
|
+
const next = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prev, 'optionalAccess', _1167 => _1167.result]), success: _optionalChain([prev, 'optionalAccess', _1168 => _1168.success]) };
|
|
48117
48045
|
matched = true;
|
|
48118
48046
|
return {
|
|
48119
48047
|
...seg,
|
|
@@ -48235,10 +48163,10 @@ var MessageSegmentAccumulator = class {
|
|
|
48235
48163
|
const segment = {
|
|
48236
48164
|
type: "approval_request",
|
|
48237
48165
|
data: {
|
|
48238
|
-
command: _optionalChain([pendingApproval, 'optionalAccess',
|
|
48239
|
-
explanation: _optionalChain([pendingApproval, 'optionalAccess',
|
|
48166
|
+
command: _optionalChain([pendingApproval, 'optionalAccess', _1169 => _1169.command]) || "",
|
|
48167
|
+
explanation: _optionalChain([pendingApproval, 'optionalAccess', _1170 => _1170.explanation]),
|
|
48240
48168
|
requestId,
|
|
48241
|
-
approvalType: _optionalChain([pendingApproval, 'optionalAccess',
|
|
48169
|
+
approvalType: _optionalChain([pendingApproval, 'optionalAccess', _1171 => _1171.approvalType]) || approvalType
|
|
48242
48170
|
},
|
|
48243
48171
|
status,
|
|
48244
48172
|
onApprove: this.callbacks.onApprove,
|
|
@@ -48430,7 +48358,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48430
48358
|
if (initialState.escalatedApprovals) {
|
|
48431
48359
|
pendingEscalatedRef.current = new Map(initialState.escalatedApprovals);
|
|
48432
48360
|
initialState.escalatedApprovals.forEach((data, requestId) => {
|
|
48433
|
-
_optionalChain([callbacks, 'access',
|
|
48361
|
+
_optionalChain([callbacks, 'access', _1172 => _1172.onEscalatedApproval, 'optionalCall', _1173 => _1173(requestId, data)]);
|
|
48434
48362
|
});
|
|
48435
48363
|
}
|
|
48436
48364
|
hasEverStreamedRef.current = true;
|
|
@@ -48452,13 +48380,13 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48452
48380
|
if (!action) return;
|
|
48453
48381
|
const accumulator = accumulatorRef.current;
|
|
48454
48382
|
const streamSeq = chunk && typeof chunk === "object" && typeof chunk.streamSeq === "number" ? chunk.streamSeq : void 0;
|
|
48455
|
-
const emitSegments = (s, meta) => _optionalChain([callbacks, 'access',
|
|
48383
|
+
const emitSegments = (s, meta) => _optionalChain([callbacks, 'access', _1174 => _1174.onSegmentsUpdate, 'optionalCall', _1175 => _1175(s, streamSeq != null ? { ...meta, streamSeq } : meta)]);
|
|
48456
48384
|
if (action.action === "direct_message") sawDirectMessageRef.current = true;
|
|
48457
48385
|
if ((directModeFlagRef.current || sawDirectMessageRef.current) && !DIRECT_MODE_ALLOWED.has(action.action)) {
|
|
48458
48386
|
if (isInStreamRef.current || !directTeardownFiredRef.current) {
|
|
48459
48387
|
isInStreamRef.current = false;
|
|
48460
48388
|
directTeardownFiredRef.current = true;
|
|
48461
|
-
_optionalChain([callbacks, 'access',
|
|
48389
|
+
_optionalChain([callbacks, 'access', _1176 => _1176.onStreamEnd, 'optionalCall', _1177 => _1177()]);
|
|
48462
48390
|
accumulator.resetSegments();
|
|
48463
48391
|
}
|
|
48464
48392
|
return;
|
|
@@ -48467,16 +48395,16 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48467
48395
|
case "message_start":
|
|
48468
48396
|
isInStreamRef.current = true;
|
|
48469
48397
|
hasEverStreamedRef.current = true;
|
|
48470
|
-
_optionalChain([callbacks, 'access',
|
|
48398
|
+
_optionalChain([callbacks, 'access', _1178 => _1178.onStreamStart, 'optionalCall', _1179 => _1179()]);
|
|
48471
48399
|
accumulator.resetSegments();
|
|
48472
48400
|
break;
|
|
48473
48401
|
case "message_end":
|
|
48474
48402
|
isInStreamRef.current = false;
|
|
48475
|
-
_optionalChain([callbacks, 'access',
|
|
48403
|
+
_optionalChain([callbacks, 'access', _1180 => _1180.onStreamEnd, 'optionalCall', _1181 => _1181()]);
|
|
48476
48404
|
accumulator.resetSegments();
|
|
48477
48405
|
break;
|
|
48478
48406
|
case "metadata":
|
|
48479
|
-
_optionalChain([callbacks, 'access',
|
|
48407
|
+
_optionalChain([callbacks, 'access', _1182 => _1182.onMetadata, 'optionalCall', _1183 => _1183(action)]);
|
|
48480
48408
|
break;
|
|
48481
48409
|
case "text": {
|
|
48482
48410
|
const segments = accumulator.appendText(action.text);
|
|
@@ -48498,7 +48426,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48498
48426
|
}
|
|
48499
48427
|
case "tool_execution": {
|
|
48500
48428
|
if (action.segment.data.type === "EXECUTING_TOOL") {
|
|
48501
|
-
_optionalChain([callbacks, 'access',
|
|
48429
|
+
_optionalChain([callbacks, 'access', _1184 => _1184.onAgentBusy, 'optionalCall', _1185 => _1185()]);
|
|
48502
48430
|
}
|
|
48503
48431
|
if (!isInStreamRef.current && callbacks.onToolExecuted) {
|
|
48504
48432
|
callbacks.onToolExecuted(action.segment);
|
|
@@ -48522,7 +48450,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48522
48450
|
emitSegments(segments);
|
|
48523
48451
|
} else {
|
|
48524
48452
|
pendingEscalatedRef.current.set(requestId, { command, explanation, approvalType });
|
|
48525
|
-
_optionalChain([callbacks, 'access',
|
|
48453
|
+
_optionalChain([callbacks, 'access', _1186 => _1186.onEscalatedApproval, 'optionalCall', _1187 => _1187(requestId, { command, explanation, approvalType })]);
|
|
48526
48454
|
}
|
|
48527
48455
|
break;
|
|
48528
48456
|
}
|
|
@@ -48534,13 +48462,13 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48534
48462
|
const summary = required ? getCommandText(required) : `Batch of ${toolCalls.length} tool calls`;
|
|
48535
48463
|
pendingEscalatedRef.current.set(requestId, {
|
|
48536
48464
|
command: summary,
|
|
48537
|
-
explanation: _optionalChain([required, 'optionalAccess',
|
|
48465
|
+
explanation: _optionalChain([required, 'optionalAccess', _1188 => _1188.toolExplanation]),
|
|
48538
48466
|
approvalType,
|
|
48539
48467
|
toolCalls
|
|
48540
48468
|
});
|
|
48541
|
-
_optionalChain([callbacks, 'access',
|
|
48469
|
+
_optionalChain([callbacks, 'access', _1189 => _1189.onEscalatedApproval, 'optionalCall', _1190 => _1190(requestId, {
|
|
48542
48470
|
command: summary,
|
|
48543
|
-
explanation: _optionalChain([required, 'optionalAccess',
|
|
48471
|
+
explanation: _optionalChain([required, 'optionalAccess', _1191 => _1191.toolExplanation]),
|
|
48544
48472
|
approvalType
|
|
48545
48473
|
})]);
|
|
48546
48474
|
break;
|
|
@@ -48566,26 +48494,16 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48566
48494
|
}
|
|
48567
48495
|
case "approval_result": {
|
|
48568
48496
|
const { requestId, approved, approvalType, resolvedByName } = action;
|
|
48569
|
-
if (approved) _optionalChain([callbacks, 'access',
|
|
48497
|
+
if (approved) _optionalChain([callbacks, 'access', _1192 => _1192.onAgentBusy, 'optionalCall', _1193 => _1193()]);
|
|
48570
48498
|
const escalatedData = pendingEscalatedRef.current.get(requestId);
|
|
48571
48499
|
const status = approved ? "approved" : "rejected";
|
|
48572
48500
|
if (escalatedData) {
|
|
48573
48501
|
pendingEscalatedRef.current.delete(requestId);
|
|
48574
|
-
_optionalChain([callbacks, 'access',
|
|
48502
|
+
_optionalChain([callbacks, 'access', _1194 => _1194.onEscalatedApprovalResult, 'optionalCall', _1195 => _1195(requestId, approved, {
|
|
48575
48503
|
command: escalatedData.command,
|
|
48576
48504
|
explanation: escalatedData.explanation,
|
|
48577
48505
|
approvalType: escalatedData.approvalType
|
|
48578
48506
|
})]);
|
|
48579
|
-
const emitResolved = (segments) => {
|
|
48580
|
-
if (isInStreamRef.current) {
|
|
48581
|
-
emitSegments(segments);
|
|
48582
|
-
return;
|
|
48583
|
-
}
|
|
48584
|
-
const delta = segments.filter(
|
|
48585
|
-
(s) => s.type === "approval_request" && s.data.requestId === requestId || s.type === "approval_batch" && s.data.approvalRequestId === requestId
|
|
48586
|
-
);
|
|
48587
|
-
emitSegments(delta, { append: true });
|
|
48588
|
-
};
|
|
48589
48507
|
if (escalatedData.toolCalls && escalatedData.toolCalls.length > 0) {
|
|
48590
48508
|
if (batchApprovalsEnabled) {
|
|
48591
48509
|
const segments = accumulator.addApprovalBatch(
|
|
@@ -48596,7 +48514,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48596
48514
|
void 0,
|
|
48597
48515
|
resolvedByName
|
|
48598
48516
|
);
|
|
48599
|
-
|
|
48517
|
+
emitSegments(segments);
|
|
48600
48518
|
} else {
|
|
48601
48519
|
let segments = accumulator.getSegments();
|
|
48602
48520
|
for (const call of escalatedData.toolCalls) {
|
|
@@ -48609,7 +48527,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48609
48527
|
status
|
|
48610
48528
|
);
|
|
48611
48529
|
}
|
|
48612
|
-
|
|
48530
|
+
emitSegments(segments);
|
|
48613
48531
|
}
|
|
48614
48532
|
} else {
|
|
48615
48533
|
const segments = accumulator.addApprovalRequest(
|
|
@@ -48619,7 +48537,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48619
48537
|
escalatedData.approvalType,
|
|
48620
48538
|
status
|
|
48621
48539
|
);
|
|
48622
|
-
|
|
48540
|
+
emitSegments(segments);
|
|
48623
48541
|
}
|
|
48624
48542
|
} else {
|
|
48625
48543
|
accumulator.updateApprovalStatus(requestId, status, resolvedByName);
|
|
@@ -48627,29 +48545,29 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48627
48545
|
emitSegments(accumulator.getSegments());
|
|
48628
48546
|
}
|
|
48629
48547
|
}
|
|
48630
|
-
_optionalChain([callbacks, 'access',
|
|
48548
|
+
_optionalChain([callbacks, 'access', _1196 => _1196.onApprovalResolved, 'optionalCall', _1197 => _1197(requestId, status, approvalType, resolvedByName)]);
|
|
48631
48549
|
break;
|
|
48632
48550
|
}
|
|
48633
48551
|
case "error": {
|
|
48634
48552
|
let message2;
|
|
48635
|
-
if ("details" in action && _optionalChain([action, 'optionalAccess',
|
|
48553
|
+
if ("details" in action && _optionalChain([action, 'optionalAccess', _1198 => _1198.details])) {
|
|
48636
48554
|
try {
|
|
48637
|
-
message2 = _optionalChain([JSON, 'access',
|
|
48555
|
+
message2 = _optionalChain([JSON, 'access', _1199 => _1199.parse, 'call', _1200 => _1200(action.details), 'optionalAccess', _1201 => _1201.error, 'optionalAccess', _1202 => _1202.message]);
|
|
48638
48556
|
} catch (e60) {
|
|
48639
48557
|
message2 = action.details;
|
|
48640
48558
|
}
|
|
48641
48559
|
}
|
|
48642
48560
|
const segments = accumulator.addError(action.error, message2);
|
|
48643
48561
|
emitSegments(segments);
|
|
48644
|
-
_optionalChain([callbacks, 'access',
|
|
48562
|
+
_optionalChain([callbacks, 'access', _1203 => _1203.onError, 'optionalCall', _1204 => _1204(action.error, message2)]);
|
|
48645
48563
|
break;
|
|
48646
48564
|
}
|
|
48647
48565
|
case "system": {
|
|
48648
|
-
_optionalChain([callbacks, 'access',
|
|
48566
|
+
_optionalChain([callbacks, 'access', _1205 => _1205.onSystemMessage, 'optionalCall', _1206 => _1206(action.text, { streamSeq })]);
|
|
48649
48567
|
break;
|
|
48650
48568
|
}
|
|
48651
48569
|
case "direct_message": {
|
|
48652
|
-
_optionalChain([callbacks, 'access',
|
|
48570
|
+
_optionalChain([callbacks, 'access', _1207 => _1207.onDirectMessage, 'optionalCall', _1208 => _1208(action.text, {
|
|
48653
48571
|
ownerType: action.ownerType,
|
|
48654
48572
|
displayName: action.displayName,
|
|
48655
48573
|
userId: action.userId,
|
|
@@ -48658,7 +48576,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48658
48576
|
break;
|
|
48659
48577
|
}
|
|
48660
48578
|
case "message_request":
|
|
48661
|
-
_optionalChain([callbacks, 'access',
|
|
48579
|
+
_optionalChain([callbacks, 'access', _1209 => _1209.onUserMessage, 'optionalCall', _1210 => _1210(action.text, {
|
|
48662
48580
|
ownerType: action.ownerType,
|
|
48663
48581
|
displayName: action.displayName,
|
|
48664
48582
|
userId: action.userId,
|
|
@@ -48667,7 +48585,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48667
48585
|
})]);
|
|
48668
48586
|
break;
|
|
48669
48587
|
case "token_usage":
|
|
48670
|
-
_optionalChain([callbacks, 'access',
|
|
48588
|
+
_optionalChain([callbacks, 'access', _1211 => _1211.onTokenUsage, 'optionalCall', _1212 => _1212(action.data)]);
|
|
48671
48589
|
break;
|
|
48672
48590
|
case "context_compaction_start": {
|
|
48673
48591
|
const standalone = !isInStreamRef.current;
|
|
@@ -48682,7 +48600,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48682
48600
|
break;
|
|
48683
48601
|
}
|
|
48684
48602
|
case "dialog_closed":
|
|
48685
|
-
_optionalChain([callbacks, 'access',
|
|
48603
|
+
_optionalChain([callbacks, 'access', _1213 => _1213.onDialogClosed, 'optionalCall', _1214 => _1214()]);
|
|
48686
48604
|
break;
|
|
48687
48605
|
default:
|
|
48688
48606
|
break;
|
|
@@ -48699,8 +48617,6 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48699
48617
|
hasInitializedWithData.current = false;
|
|
48700
48618
|
sawDirectMessageRef.current = false;
|
|
48701
48619
|
directTeardownFiredRef.current = false;
|
|
48702
|
-
isInStreamRef.current = false;
|
|
48703
|
-
hasEverStreamedRef.current = false;
|
|
48704
48620
|
}, []);
|
|
48705
48621
|
const updateApprovalStatus = _react.useCallback.call(void 0,
|
|
48706
48622
|
(requestId, status, resolvedByName) => {
|
|
@@ -48727,12 +48643,12 @@ async function fetchSlashCommands(prefix, signal, commandsUrl) {
|
|
|
48727
48643
|
try {
|
|
48728
48644
|
const url = new URL(commandsUrl, window.location.origin);
|
|
48729
48645
|
if (prefix) url.searchParams.set("q", prefix);
|
|
48730
|
-
const res = await
|
|
48646
|
+
const res = await _chunk7CZ4MJSIcjs.embedAuthedFetch.call(void 0, url.toString(), { signal, headers: {} });
|
|
48731
48647
|
if (!res.ok) return [];
|
|
48732
48648
|
const data = await res.json();
|
|
48733
48649
|
return _nullishCoalesce(data.commands, () => ( []));
|
|
48734
48650
|
} catch (err) {
|
|
48735
|
-
if (_optionalChain([err, 'optionalAccess',
|
|
48651
|
+
if (_optionalChain([err, 'optionalAccess', _1215 => _1215.name]) === "AbortError") throw err;
|
|
48736
48652
|
console.warn("[chat] slash-commands fetch failed, showing none:", err);
|
|
48737
48653
|
return [];
|
|
48738
48654
|
}
|
|
@@ -48753,7 +48669,7 @@ function useSlashCommands(prefix, commandsUrl) {
|
|
|
48753
48669
|
const next = await fetchSlashCommands(prefix, ctrl.signal, commandsUrl);
|
|
48754
48670
|
if (!cancelled) setCommands(next);
|
|
48755
48671
|
} catch (err) {
|
|
48756
|
-
if (!cancelled && _optionalChain([err, 'optionalAccess',
|
|
48672
|
+
if (!cancelled && _optionalChain([err, 'optionalAccess', _1216 => _1216.name]) !== "AbortError") {
|
|
48757
48673
|
console.warn("[use-slash-commands] fetch failed:", err);
|
|
48758
48674
|
}
|
|
48759
48675
|
} finally {
|
|
@@ -48772,7 +48688,7 @@ function useSlashCommandRegistry(commandsUrl, options) {
|
|
|
48772
48688
|
const query = _reactquery.useQuery.call(void 0, {
|
|
48773
48689
|
queryKey: ["chat-slash-commands", commandsUrl],
|
|
48774
48690
|
queryFn: ({ signal }) => fetchSlashCommands("", signal, commandsUrl),
|
|
48775
|
-
enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
48691
|
+
enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1217 => _1217.enabled]), () => ( true)),
|
|
48776
48692
|
staleTime: Infinity,
|
|
48777
48693
|
gcTime: Infinity,
|
|
48778
48694
|
// The commands registry is non-critical chrome — a failure degrades to an
|
|
@@ -48802,7 +48718,7 @@ var EMPTY_STATE_FALLBACK = {
|
|
|
48802
48718
|
async function fetchEmptyStateConfig(signal, emptyStateUrl) {
|
|
48803
48719
|
try {
|
|
48804
48720
|
const url = new URL(emptyStateUrl, window.location.origin);
|
|
48805
|
-
const res = await
|
|
48721
|
+
const res = await _chunk7CZ4MJSIcjs.embedAuthedFetch.call(void 0, url.toString(), { signal, headers: {} });
|
|
48806
48722
|
if (!res.ok) {
|
|
48807
48723
|
if (res.status >= 500) {
|
|
48808
48724
|
console.error(`[chat] empty-state config fetch failed (${res.status}): ${url.pathname}`);
|
|
@@ -48811,21 +48727,21 @@ async function fetchEmptyStateConfig(signal, emptyStateUrl) {
|
|
|
48811
48727
|
}
|
|
48812
48728
|
const data = await res.json();
|
|
48813
48729
|
return {
|
|
48814
|
-
name: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
48815
|
-
icon: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
48816
|
-
greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
48817
|
-
enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
48818
|
-
quickActions: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
48819
|
-
suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
48730
|
+
name: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1218 => _1218.name]), () => ( null)),
|
|
48731
|
+
icon: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1219 => _1219.icon]), () => ( null)),
|
|
48732
|
+
greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1220 => _1220.greeting]), () => ( null)),
|
|
48733
|
+
enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1221 => _1221.enabledRagTableIds]), () => ( [])),
|
|
48734
|
+
quickActions: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1222 => _1222.quickActions]), () => ( [])),
|
|
48735
|
+
suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1223 => _1223.suggestedQueries]), () => ( []))
|
|
48820
48736
|
};
|
|
48821
48737
|
} catch (err) {
|
|
48822
|
-
if (_optionalChain([err, 'optionalAccess',
|
|
48738
|
+
if (_optionalChain([err, 'optionalAccess', _1224 => _1224.name]) === "AbortError") throw err;
|
|
48823
48739
|
console.warn("[chat] empty-state config fetch failed, using neutral defaults:", err);
|
|
48824
48740
|
return EMPTY_STATE_FALLBACK;
|
|
48825
48741
|
}
|
|
48826
48742
|
}
|
|
48827
48743
|
function useEmptyStateConfig(emptyStateUrl, options) {
|
|
48828
|
-
const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
48744
|
+
const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1225 => _1225.enabled]), () => ( true))) && !!emptyStateUrl;
|
|
48829
48745
|
const query = _reactquery.useQuery.call(void 0, {
|
|
48830
48746
|
queryKey: ["chat-empty-state", emptyStateUrl],
|
|
48831
48747
|
queryFn: ({ signal }) => fetchEmptyStateConfig(signal, emptyStateUrl),
|
|
@@ -48854,7 +48770,7 @@ var CHAT_ATTACHMENT_MAX_SIZE_BYTES = 25 * 1024 * 1024;
|
|
|
48854
48770
|
var STORAGE_CACHE_CONTROL_IMMUTABLE = "public, max-age=31536000, immutable";
|
|
48855
48771
|
function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
48856
48772
|
return new Promise((resolve, reject) => {
|
|
48857
|
-
if (_optionalChain([signal, 'optionalAccess',
|
|
48773
|
+
if (_optionalChain([signal, 'optionalAccess', _1226 => _1226.aborted])) {
|
|
48858
48774
|
reject(new Error("Upload cancelled"));
|
|
48859
48775
|
return;
|
|
48860
48776
|
}
|
|
@@ -48868,7 +48784,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
|
48868
48784
|
xhr.removeEventListener("error", handleError);
|
|
48869
48785
|
xhr.removeEventListener("abort", handleAbort);
|
|
48870
48786
|
xhr.removeEventListener("timeout", handleTimeout);
|
|
48871
|
-
_optionalChain([signal, 'optionalAccess',
|
|
48787
|
+
_optionalChain([signal, 'optionalAccess', _1227 => _1227.removeEventListener, 'call', _1228 => _1228("abort", handleSignalAbort)]);
|
|
48872
48788
|
if (xhr.readyState !== XMLHttpRequest.DONE) xhr.abort();
|
|
48873
48789
|
};
|
|
48874
48790
|
const handleProgress = (event) => {
|
|
@@ -48904,7 +48820,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
|
48904
48820
|
const handleSignalAbort = () => {
|
|
48905
48821
|
xhr.abort();
|
|
48906
48822
|
};
|
|
48907
|
-
_optionalChain([signal, 'optionalAccess',
|
|
48823
|
+
_optionalChain([signal, 'optionalAccess', _1229 => _1229.addEventListener, 'call', _1230 => _1230("abort", handleSignalAbort, { once: true })]);
|
|
48908
48824
|
xhr.upload.addEventListener("progress", handleProgress);
|
|
48909
48825
|
xhr.addEventListener("load", handleLoad);
|
|
48910
48826
|
xhr.addEventListener("error", handleError);
|
|
@@ -48948,12 +48864,12 @@ function useChatAttachments() {
|
|
|
48948
48864
|
try {
|
|
48949
48865
|
sniffed = await _filetype.fileTypeFromBlob.call(void 0, att.file);
|
|
48950
48866
|
} catch (err) {
|
|
48951
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
48867
|
+
if (_optionalChain([ctrl, 'optionalAccess', _1231 => _1231.signal, 'access', _1232 => _1232.aborted])) return;
|
|
48952
48868
|
throw new Error(
|
|
48953
48869
|
`Could not read file content: ${err instanceof Error ? err.message : String(err)}`
|
|
48954
48870
|
);
|
|
48955
48871
|
}
|
|
48956
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
48872
|
+
if (_optionalChain([ctrl, 'optionalAccess', _1233 => _1233.signal, 'access', _1234 => _1234.aborted])) return;
|
|
48957
48873
|
if (!sniffed) {
|
|
48958
48874
|
throw new Error("Unrecognized file format");
|
|
48959
48875
|
}
|
|
@@ -48964,10 +48880,10 @@ function useChatAttachments() {
|
|
|
48964
48880
|
);
|
|
48965
48881
|
}
|
|
48966
48882
|
updateOne(att.id, { status: "uploading", progress: 5 });
|
|
48967
|
-
const urlResp = await
|
|
48883
|
+
const urlResp = await _chunk7CZ4MJSIcjs.embedAuthedFetch.call(void 0, uploadUrlEndpoint, {
|
|
48968
48884
|
method: "POST",
|
|
48969
48885
|
headers: { "Content-Type": "application/json" },
|
|
48970
|
-
signal: _optionalChain([ctrl, 'optionalAccess',
|
|
48886
|
+
signal: _optionalChain([ctrl, 'optionalAccess', _1235 => _1235.signal]),
|
|
48971
48887
|
body: JSON.stringify({
|
|
48972
48888
|
fileName: att.file.name,
|
|
48973
48889
|
// Pass the SNIFFED MIME (not `file.type`, which can be a
|
|
@@ -48993,9 +48909,9 @@ function useChatAttachments() {
|
|
|
48993
48909
|
(pct) => {
|
|
48994
48910
|
updateOne(att.id, { progress: pct });
|
|
48995
48911
|
},
|
|
48996
|
-
_optionalChain([ctrl, 'optionalAccess',
|
|
48912
|
+
_optionalChain([ctrl, 'optionalAccess', _1236 => _1236.signal])
|
|
48997
48913
|
);
|
|
48998
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
48914
|
+
if (_optionalChain([ctrl, 'optionalAccess', _1237 => _1237.signal, 'access', _1238 => _1238.aborted])) return;
|
|
48999
48915
|
updateOne(att.id, {
|
|
49000
48916
|
status: "ready",
|
|
49001
48917
|
progress: 100,
|
|
@@ -49003,7 +48919,7 @@ function useChatAttachments() {
|
|
|
49003
48919
|
viewToken: mintData.viewToken
|
|
49004
48920
|
});
|
|
49005
48921
|
} catch (err) {
|
|
49006
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
48922
|
+
if (_optionalChain([ctrl, 'optionalAccess', _1239 => _1239.signal, 'access', _1240 => _1240.aborted])) return;
|
|
49007
48923
|
const message2 = err instanceof Error ? err.message : String(err);
|
|
49008
48924
|
updateOne(att.id, { status: "error", progress: 0, errorMessage: message2 });
|
|
49009
48925
|
} finally {
|
|
@@ -49154,7 +49070,7 @@ var ANON_DEFAULTS = {
|
|
|
49154
49070
|
function useResolveChatIdentity(enabled) {
|
|
49155
49071
|
const runtime = _chunk2B6773QMcjs.useRequiredChatRuntime.call(void 0, );
|
|
49156
49072
|
const url = runtime.endpoints.identityUrl;
|
|
49157
|
-
const proxyEmail = _nullishCoalesce(_optionalChain([
|
|
49073
|
+
const proxyEmail = _nullishCoalesce(_optionalChain([_chunk7CZ4MJSIcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _1241 => _1241.email]), () => ( null));
|
|
49158
49074
|
const [data, setData] = _react.useState.call(void 0, ANON_DEFAULTS);
|
|
49159
49075
|
const [isLoading, setIsLoading] = _react.useState.call(void 0, enabled);
|
|
49160
49076
|
_react.useEffect.call(void 0, () => {
|
|
@@ -49162,7 +49078,7 @@ function useResolveChatIdentity(enabled) {
|
|
|
49162
49078
|
let cancelled = false;
|
|
49163
49079
|
const ctrl = new AbortController();
|
|
49164
49080
|
setIsLoading(true);
|
|
49165
|
-
|
|
49081
|
+
_chunk7CZ4MJSIcjs.embedAuthedFetch.call(void 0, url, { signal: ctrl.signal }).then(async (resp) => {
|
|
49166
49082
|
if (!resp.ok) return ANON_DEFAULTS;
|
|
49167
49083
|
return await resp.json();
|
|
49168
49084
|
}).then((next) => {
|
|
@@ -49245,7 +49161,7 @@ function useSSE({ useMock = true, debugMode = false, streamFn } = {}) {
|
|
|
49245
49161
|
yield chunk;
|
|
49246
49162
|
}
|
|
49247
49163
|
} catch (err) {
|
|
49248
|
-
if (_optionalChain([err, 'optionalAccess',
|
|
49164
|
+
if (_optionalChain([err, 'optionalAccess', _1242 => _1242.name]) === "AbortError" || ctrl.signal.aborted) {
|
|
49249
49165
|
return;
|
|
49250
49166
|
}
|
|
49251
49167
|
const errorMessage = err instanceof Error ? err.message : "An error occurred";
|
|
@@ -49296,7 +49212,7 @@ function useChat({
|
|
|
49296
49212
|
const onMessagesChangeRef = _react.useRef.call(void 0, onMessagesChange);
|
|
49297
49213
|
onMessagesChangeRef.current = onMessagesChange;
|
|
49298
49214
|
_react.useEffect.call(void 0, () => {
|
|
49299
|
-
_optionalChain([onMessagesChangeRef, 'access',
|
|
49215
|
+
_optionalChain([onMessagesChangeRef, 'access', _1243 => _1243.current, 'optionalCall', _1244 => _1244(messages)]);
|
|
49300
49216
|
}, [messages]);
|
|
49301
49217
|
const {
|
|
49302
49218
|
streamMessage,
|
|
@@ -49333,7 +49249,7 @@ function useChat({
|
|
|
49333
49249
|
name: "You",
|
|
49334
49250
|
content: text,
|
|
49335
49251
|
timestamp: /* @__PURE__ */ new Date(),
|
|
49336
|
-
..._optionalChain([options, 'optionalAccess',
|
|
49252
|
+
..._optionalChain([options, 'optionalAccess', _1245 => _1245.hidden]) ? { hidden: true } : {}
|
|
49337
49253
|
};
|
|
49338
49254
|
addMessage(userMessage);
|
|
49339
49255
|
setIsTyping(true);
|
|
@@ -49395,7 +49311,7 @@ function useChat({
|
|
|
49395
49311
|
currentTextSegment = "";
|
|
49396
49312
|
}
|
|
49397
49313
|
const seg = segment;
|
|
49398
|
-
const proposalId = _optionalChain([seg, 'access',
|
|
49314
|
+
const proposalId = _optionalChain([seg, 'access', _1246 => _1246.data, 'optionalAccess', _1247 => _1247.requestId]);
|
|
49399
49315
|
const updateApprovalMessage = (transform) => {
|
|
49400
49316
|
setMessages((prev) => {
|
|
49401
49317
|
for (let i = prev.length - 1; i >= 0; i--) {
|
|
@@ -49404,7 +49320,7 @@ function useChat({
|
|
|
49404
49320
|
if (!Array.isArray(m.content)) continue;
|
|
49405
49321
|
const segments = m.content;
|
|
49406
49322
|
const hasMatch = segments.some(
|
|
49407
|
-
(s) => s.type === "approval_request" && _optionalChain([s, 'access',
|
|
49323
|
+
(s) => s.type === "approval_request" && _optionalChain([s, 'access', _1248 => _1248.data, 'optionalAccess', _1249 => _1249.requestId]) === proposalId
|
|
49408
49324
|
);
|
|
49409
49325
|
if (!hasMatch) continue;
|
|
49410
49326
|
const next = [...prev];
|
|
@@ -49446,11 +49362,11 @@ function useChat({
|
|
|
49446
49362
|
if (!Array.isArray(m.content)) continue;
|
|
49447
49363
|
const segments = m.content;
|
|
49448
49364
|
const hasMatch = segments.some(
|
|
49449
|
-
(s) => s.type === "approval_request" && _optionalChain([s, 'access',
|
|
49365
|
+
(s) => s.type === "approval_request" && _optionalChain([s, 'access', _1250 => _1250.data, 'optionalAccess', _1251 => _1251.requestId]) === decision.proposalId
|
|
49450
49366
|
);
|
|
49451
49367
|
if (!hasMatch) continue;
|
|
49452
49368
|
const flipped = segments.map(
|
|
49453
|
-
(s) => s.type === "approval_request" && _optionalChain([s, 'access',
|
|
49369
|
+
(s) => s.type === "approval_request" && _optionalChain([s, 'access', _1252 => _1252.data, 'optionalAccess', _1253 => _1253.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
|
|
49454
49370
|
);
|
|
49455
49371
|
const next = [...prev];
|
|
49456
49372
|
next[i] = { ...m, content: flipped };
|
|
@@ -49612,8 +49528,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
49612
49528
|
})),
|
|
49613
49529
|
{ role: "user", content: message2 }
|
|
49614
49530
|
];
|
|
49615
|
-
const targetPath = _optionalChain([extra, 'optionalAccess',
|
|
49616
|
-
const requestBody = _optionalChain([extra, 'optionalAccess',
|
|
49531
|
+
const targetPath = _optionalChain([extra, 'optionalAccess', _1254 => _1254.approvalAction]) ? endpoints.approvalToolUrl : endpoints.chatStreamUrl;
|
|
49532
|
+
const requestBody = _optionalChain([extra, 'optionalAccess', _1255 => _1255.approvalAction]) ? {
|
|
49617
49533
|
proposal_id: extra.approvalAction.proposalId,
|
|
49618
49534
|
action: extra.approvalAction.action,
|
|
49619
49535
|
messages: currentMessages.filter((m) => (m.role === "user" || m.role === "assistant") && !m.hidden).map((m) => ({
|
|
@@ -49622,10 +49538,10 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
49622
49538
|
}))
|
|
49623
49539
|
} : {
|
|
49624
49540
|
messages: apiMessages,
|
|
49625
|
-
..._optionalChain([extra, 'optionalAccess',
|
|
49626
|
-
..._optionalChain([extra, 'optionalAccess',
|
|
49541
|
+
..._optionalChain([extra, 'optionalAccess', _1256 => _1256.commandOverride]) ? { commandOverride: extra.commandOverride } : {},
|
|
49542
|
+
..._optionalChain([extra, 'optionalAccess', _1257 => _1257.pendingAttachments]) && extra.pendingAttachments.length > 0 ? { pendingAttachments: extra.pendingAttachments } : {}
|
|
49627
49543
|
};
|
|
49628
|
-
const response = await
|
|
49544
|
+
const response = await _chunk7CZ4MJSIcjs.embedAuthedFetch.call(void 0, targetPath, {
|
|
49629
49545
|
method: "POST",
|
|
49630
49546
|
body: JSON.stringify(requestBody),
|
|
49631
49547
|
signal
|
|
@@ -49633,7 +49549,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
49633
49549
|
if (!response.ok) {
|
|
49634
49550
|
throw new Error(`Chat request failed: ${response.status}`);
|
|
49635
49551
|
}
|
|
49636
|
-
const reader = _optionalChain([response, 'access',
|
|
49552
|
+
const reader = _optionalChain([response, 'access', _1258 => _1258.body, 'optionalAccess', _1259 => _1259.getReader, 'call', _1260 => _1260()]);
|
|
49637
49553
|
if (!reader) throw new Error("No response body");
|
|
49638
49554
|
const decoder = new TextDecoder();
|
|
49639
49555
|
let buffer = "";
|
|
@@ -49716,7 +49632,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
49716
49632
|
const toolName = typeof meta.tool_name === "string" ? meta.tool_name : void 0;
|
|
49717
49633
|
const result = _nullishCoalesce(meta.result, () => ( null));
|
|
49718
49634
|
const card = _nullishCoalesce(meta.card, () => ( null));
|
|
49719
|
-
if (_optionalChain([card, 'optionalAccess',
|
|
49635
|
+
if (_optionalChain([card, 'optionalAccess', _1261 => _1261.ref, 'optionalAccess', _1262 => _1262.id]) && _optionalChain([card, 'optionalAccess', _1263 => _1263.type])) {
|
|
49720
49636
|
const existing = _nullishCoalesce(refsMapRef.current.get(sendIdx), () => ( {}));
|
|
49721
49637
|
const key = buildChatRefKey(card.type, card.ref.id);
|
|
49722
49638
|
refsMapRef.current.set(sendIdx, { ...existing, [key]: card.ref });
|
|
@@ -49729,8 +49645,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
49729
49645
|
willAutoContinue: meta.willAutoContinue === true,
|
|
49730
49646
|
...toolName ? { toolName } : {},
|
|
49731
49647
|
...result ? { result } : {},
|
|
49732
|
-
..._optionalChain([card, 'optionalAccess',
|
|
49733
|
-
..._optionalChain([card, 'optionalAccess',
|
|
49648
|
+
..._optionalChain([card, 'optionalAccess', _1264 => _1264.marker]) ? { marker: card.marker } : {},
|
|
49649
|
+
..._optionalChain([card, 'optionalAccess', _1265 => _1265.ref]) ? { cardRef: card.ref } : {},
|
|
49734
49650
|
...typeof meta.receiptText === "string" ? { receiptText: meta.receiptText } : {},
|
|
49735
49651
|
proposalId: typeof meta.proposalId === "string" ? meta.proposalId : void 0
|
|
49736
49652
|
};
|
|
@@ -49848,8 +49764,8 @@ var CHAT_STORAGE_VERSION = 1;
|
|
|
49848
49764
|
var DEFAULT_CHAT_SOURCE = "embed";
|
|
49849
49765
|
var chatStorageKey = (source) => {
|
|
49850
49766
|
const base = `mingo-chat-${source}-v${CHAT_STORAGE_VERSION}`;
|
|
49851
|
-
const auth =
|
|
49852
|
-
if (_optionalChain([auth, 'optionalAccess',
|
|
49767
|
+
const auth = _chunk7CZ4MJSIcjs.getEmbedProxyAuth.call(void 0, );
|
|
49768
|
+
if (_optionalChain([auth, 'optionalAccess', _1266 => _1266.email])) {
|
|
49853
49769
|
return `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}`;
|
|
49854
49770
|
}
|
|
49855
49771
|
return base;
|
|
@@ -49904,7 +49820,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
49904
49820
|
const { active = true } = runtimeOptions;
|
|
49905
49821
|
const runtime = _chunk2B6773QMcjs.useRequiredChatRuntime.call(void 0, );
|
|
49906
49822
|
const source = runtime.source || DEFAULT_CHAT_SOURCE;
|
|
49907
|
-
const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
49823
|
+
const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1267 => _1267.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
|
|
49908
49824
|
const persistedRef = _react.useRef.call(void 0, null);
|
|
49909
49825
|
if (persistedRef.current === null) {
|
|
49910
49826
|
pruneStaleChatStorage(source);
|
|
@@ -50009,7 +49925,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
50009
49925
|
const lookupIdx = sendIdx >= 0 ? sendIdx : 0;
|
|
50010
49926
|
sources = sourcesMapRef.current.get(lookupIdx);
|
|
50011
49927
|
chatRefs = _nullishCoalesce(m.chatRefs, () => ( refsMapRef.current.get(lookupIdx)));
|
|
50012
|
-
scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access',
|
|
49928
|
+
scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access', _1268 => _1268.current, 'access', _1269 => _1269.get, 'call', _1270 => _1270(lookupIdx), 'optionalAccess', _1271 => _1271.scrollAnchor]), () => ( void 0));
|
|
50013
49929
|
}
|
|
50014
49930
|
return {
|
|
50015
49931
|
id: m.id,
|
|
@@ -50057,7 +49973,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
50057
49973
|
);
|
|
50058
49974
|
return;
|
|
50059
49975
|
}
|
|
50060
|
-
const refSlug = typeof _optionalChain([reference, 'access',
|
|
49976
|
+
const refSlug = typeof _optionalChain([reference, 'access', _1272 => _1272.metadata, 'optionalAccess', _1273 => _1273.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
|
|
50061
49977
|
const queryValue = refSlug || sanitizeTitleForChat(reference.title) || reference.id;
|
|
50062
49978
|
const escaped = queryValue.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
50063
49979
|
const text = `/${cmdId} display "${escaped}"`;
|
|
@@ -50129,18 +50045,18 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
50129
50045
|
clearMessages,
|
|
50130
50046
|
streamingPhase,
|
|
50131
50047
|
/** Provider key for the lib's `<ModelDisplay>` icon. */
|
|
50132
|
-
currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
50133
|
-
currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
50134
|
-
currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
50048
|
+
currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1274 => _1274.provider]), () => ( null)),
|
|
50049
|
+
currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1275 => _1275.modelLabel]), () => ( null)),
|
|
50050
|
+
currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1276 => _1276.contextWindowMaxTokens]), () => ( null)),
|
|
50135
50051
|
/** Input tokens (known after server's message_start frame; null until). */
|
|
50136
|
-
currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
50052
|
+
currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1277 => _1277.inputTokens]), () => ( null)),
|
|
50137
50053
|
/** Output tokens (known only after server's trailing usage frame). */
|
|
50138
|
-
currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
50054
|
+
currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1278 => _1278.outputTokens]), () => ( null)),
|
|
50139
50055
|
/** Cache hit % (read / total-input × 100). null during streaming. */
|
|
50140
|
-
currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
50056
|
+
currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1279 => _1279.cacheHitRatePct]), () => ( null)),
|
|
50141
50057
|
/** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
|
|
50142
50058
|
* token counts). null until the trailing usage frame lands. */
|
|
50143
|
-
currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
50059
|
+
currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1280 => _1280.breakdown]), () => ( null)),
|
|
50144
50060
|
// ─── Dialog management — stubs for v1 ────────────────────────────────
|
|
50145
50061
|
// Guide mode currently keeps its history in `localStorage` opaquely
|
|
50146
50062
|
// under the hood (`runtime.source` namespaced key). Surfacing that
|
|
@@ -50198,15 +50114,15 @@ var noopRejectRequest = async (_id, _reason) => {
|
|
|
50198
50114
|
|
|
50199
50115
|
// src/components/chat/utils/process-historical-messages.ts
|
|
50200
50116
|
function getOwnerDisplayName(owner) {
|
|
50201
|
-
if (_optionalChain([owner, 'optionalAccess',
|
|
50117
|
+
if (_optionalChain([owner, 'optionalAccess', _1281 => _1281.type]) === OWNER_TYPE.ADMIN && owner.user) {
|
|
50202
50118
|
const { firstName, lastName } = owner.user;
|
|
50203
50119
|
const name = [firstName, lastName].filter(Boolean).join(" ");
|
|
50204
50120
|
if (name) return name;
|
|
50205
50121
|
}
|
|
50206
|
-
return _optionalChain([owner, 'optionalAccess',
|
|
50122
|
+
return _optionalChain([owner, 'optionalAccess', _1282 => _1282.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
|
|
50207
50123
|
}
|
|
50208
50124
|
function getOwnerAvatar(owner) {
|
|
50209
|
-
return _nullishCoalesce(_optionalChain([owner, 'optionalAccess',
|
|
50125
|
+
return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _1283 => _1283.user, 'optionalAccess', _1284 => _1284.image, 'optionalAccess', _1285 => _1285.imageUrl]), () => ( void 0));
|
|
50210
50126
|
}
|
|
50211
50127
|
function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
|
|
50212
50128
|
messageDataArray.forEach((data) => {
|
|
@@ -50231,15 +50147,7 @@ function processHistoricalMessages(messages, options = {}) {
|
|
|
50231
50147
|
onReject,
|
|
50232
50148
|
chatTypeFilter,
|
|
50233
50149
|
approvalStatuses = {},
|
|
50234
|
-
|
|
50235
|
-
// history semantics. Deliberately NOT defaulted to the realtime
|
|
50236
|
-
// processor's ['CLIENT']: consumers that pass a wider list to their
|
|
50237
|
-
// realtime processor but omit it on the history path would silently lose
|
|
50238
|
-
// pending non-CLIENT approval cards on every reload/reconnect refetch
|
|
50239
|
-
// (they also ignore `escalatedApprovals`). Realtime/history parity is
|
|
50240
|
-
// opt-in: pass the same explicit list to both.
|
|
50241
|
-
displayApprovalTypes,
|
|
50242
|
-
batchApprovalsEnabled
|
|
50150
|
+
displayApprovalTypes
|
|
50243
50151
|
} = options;
|
|
50244
50152
|
const processedMessages = [];
|
|
50245
50153
|
const accumulator = createMessageSegmentAccumulator({ onApprove, onReject });
|
|
@@ -50277,14 +50185,14 @@ function processHistoricalMessages(messages, options = {}) {
|
|
|
50277
50185
|
pushStandaloneMessages(processedMessages, msg, messageDataArray);
|
|
50278
50186
|
return;
|
|
50279
50187
|
}
|
|
50280
|
-
const isUserMessage = _optionalChain([msg, 'access',
|
|
50188
|
+
const isUserMessage = _optionalChain([msg, 'access', _1286 => _1286.owner, 'optionalAccess', _1287 => _1287.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1288 => _1288.owner, 'optionalAccess', _1289 => _1289.type]) === OWNER_TYPE.ADMIN;
|
|
50281
50189
|
if (isUserMessage) {
|
|
50282
50190
|
flushAssistantMessage();
|
|
50283
|
-
const userAuthorType = _optionalChain([msg, 'access',
|
|
50191
|
+
const userAuthorType = _optionalChain([msg, 'access', _1290 => _1290.owner, 'optionalAccess', _1291 => _1291.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
|
|
50284
50192
|
messageDataArray.forEach((data) => {
|
|
50285
50193
|
if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
|
|
50286
50194
|
const rawContext = data.contextItems;
|
|
50287
|
-
const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess',
|
|
50195
|
+
const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _1292 => _1292.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _1293 => _1293.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
|
|
50288
50196
|
processedMessages.push({
|
|
50289
50197
|
id: msg.id,
|
|
50290
50198
|
role: "user",
|
|
@@ -50304,17 +50212,11 @@ function processHistoricalMessages(messages, options = {}) {
|
|
|
50304
50212
|
}
|
|
50305
50213
|
lastAssistantId = msg.id;
|
|
50306
50214
|
messageDataArray.forEach((data) => {
|
|
50307
|
-
processMessageData(
|
|
50308
|
-
data,
|
|
50309
|
-
accumulator,
|
|
50310
|
-
approvalStatuses,
|
|
50311
|
-
{ displayApprovalTypes, batchApprovalsEnabled },
|
|
50312
|
-
escalatedApprovals
|
|
50313
|
-
);
|
|
50215
|
+
processMessageData(data, accumulator, approvalStatuses, { displayApprovalTypes }, escalatedApprovals);
|
|
50314
50216
|
});
|
|
50315
50217
|
const nextMsg = messages[index + 1];
|
|
50316
50218
|
const isLastMessage = index === messages.length - 1;
|
|
50317
|
-
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access',
|
|
50219
|
+
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1294 => _1294.owner, 'optionalAccess', _1295 => _1295.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1296 => _1296.owner, 'optionalAccess', _1297 => _1297.type]) === OWNER_TYPE.ADMIN);
|
|
50318
50220
|
if (isLastMessage || nextIsFromUser) {
|
|
50319
50221
|
flushAssistantMessage();
|
|
50320
50222
|
}
|
|
@@ -50424,7 +50326,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
50424
50326
|
}
|
|
50425
50327
|
}
|
|
50426
50328
|
} else {
|
|
50427
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
50329
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _1298 => _1298.set, 'call', _1299 => _1299(data.approvalRequestId, {
|
|
50428
50330
|
command: data.command || "",
|
|
50429
50331
|
explanation: data.explanation,
|
|
50430
50332
|
approvalType,
|
|
@@ -50438,8 +50340,8 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
50438
50340
|
const existingStatus = approvalStatuses[data.approvalRequestId];
|
|
50439
50341
|
const status = existingStatus || (data.approved ? "approved" : "rejected");
|
|
50440
50342
|
const resolvedByName = "resolvedByName" in data ? data.resolvedByName : void 0;
|
|
50441
|
-
const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess',
|
|
50442
|
-
if (_optionalChain([escalatedData, 'optionalAccess',
|
|
50343
|
+
const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _1300 => _1300.get, 'call', _1301 => _1301(data.approvalRequestId)]);
|
|
50344
|
+
if (_optionalChain([escalatedData, 'optionalAccess', _1302 => _1302.toolCalls]) && escalatedData.toolCalls.length > 0) {
|
|
50443
50345
|
if (batchApprovalsEnabled) {
|
|
50444
50346
|
accumulator.addApprovalBatch(
|
|
50445
50347
|
data.approvalRequestId,
|
|
@@ -50461,7 +50363,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
50461
50363
|
);
|
|
50462
50364
|
}
|
|
50463
50365
|
}
|
|
50464
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
50366
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _1303 => _1303.delete, 'call', _1304 => _1304(data.approvalRequestId)]);
|
|
50465
50367
|
break;
|
|
50466
50368
|
}
|
|
50467
50369
|
if (escalatedData) {
|
|
@@ -50470,7 +50372,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
50470
50372
|
explanation: escalatedData.explanation,
|
|
50471
50373
|
approvalType: escalatedData.approvalType
|
|
50472
50374
|
});
|
|
50473
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
50375
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _1305 => _1305.delete, 'call', _1306 => _1306(data.approvalRequestId)]);
|
|
50474
50376
|
}
|
|
50475
50377
|
const before = accumulator.getSegments();
|
|
50476
50378
|
const after = accumulator.updateApprovalStatus(data.approvalRequestId, status, resolvedByName);
|
|
@@ -50486,9 +50388,9 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
50486
50388
|
case MESSAGE_TYPE.ERROR:
|
|
50487
50389
|
if ("error" in data) {
|
|
50488
50390
|
let message2;
|
|
50489
|
-
if ("details" in data && _optionalChain([data, 'optionalAccess',
|
|
50391
|
+
if ("details" in data && _optionalChain([data, 'optionalAccess', _1307 => _1307.details])) {
|
|
50490
50392
|
try {
|
|
50491
|
-
message2 = _optionalChain([JSON, 'access',
|
|
50393
|
+
message2 = _optionalChain([JSON, 'access', _1308 => _1308.parse, 'call', _1309 => _1309(data.details), 'optionalAccess', _1310 => _1310.error, 'optionalAccess', _1311 => _1311.message]);
|
|
50492
50394
|
} catch (e67) {
|
|
50493
50395
|
message2 = data.details;
|
|
50494
50396
|
}
|
|
@@ -50534,7 +50436,7 @@ function extractErrorMessages(messages, options = {}) {
|
|
|
50534
50436
|
return errorMessages;
|
|
50535
50437
|
}
|
|
50536
50438
|
function processHistoricalMessagesWithErrors(messages, options = {}) {
|
|
50537
|
-
const { chatTypeFilter, assistantName = "Fae", assistantType = "fae", assistantAvatar, onApprove, onReject, approvalStatuses = {}, displayApprovalTypes
|
|
50439
|
+
const { chatTypeFilter, assistantName = "Fae", assistantType = "fae", assistantAvatar, onApprove, onReject, approvalStatuses = {}, displayApprovalTypes } = options;
|
|
50538
50440
|
const processedMessages = [];
|
|
50539
50441
|
const accumulator = createMessageSegmentAccumulator({ onApprove, onReject });
|
|
50540
50442
|
const escalatedApprovals = /* @__PURE__ */ new Map();
|
|
@@ -50571,14 +50473,14 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
|
|
|
50571
50473
|
pushStandaloneMessages(processedMessages, msg, messageDataArray);
|
|
50572
50474
|
return;
|
|
50573
50475
|
}
|
|
50574
|
-
const isUserMessage = _optionalChain([msg, 'access',
|
|
50476
|
+
const isUserMessage = _optionalChain([msg, 'access', _1312 => _1312.owner, 'optionalAccess', _1313 => _1313.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1314 => _1314.owner, 'optionalAccess', _1315 => _1315.type]) === OWNER_TYPE.ADMIN;
|
|
50575
50477
|
if (isUserMessage) {
|
|
50576
50478
|
flushAssistantMessage();
|
|
50577
|
-
const userAuthorType = _optionalChain([msg, 'access',
|
|
50479
|
+
const userAuthorType = _optionalChain([msg, 'access', _1316 => _1316.owner, 'optionalAccess', _1317 => _1317.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
|
|
50578
50480
|
messageDataArray.forEach((data) => {
|
|
50579
50481
|
if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
|
|
50580
50482
|
const rawContext = data.contextItems;
|
|
50581
|
-
const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess',
|
|
50483
|
+
const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _1318 => _1318.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _1319 => _1319.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
|
|
50582
50484
|
processedMessages.push({
|
|
50583
50485
|
id: msg.id,
|
|
50584
50486
|
role: "user",
|
|
@@ -50598,17 +50500,11 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
|
|
|
50598
50500
|
}
|
|
50599
50501
|
lastAssistantId = msg.id;
|
|
50600
50502
|
messageDataArray.forEach((data) => {
|
|
50601
|
-
processMessageData(
|
|
50602
|
-
data,
|
|
50603
|
-
accumulator,
|
|
50604
|
-
approvalStatuses,
|
|
50605
|
-
{ displayApprovalTypes, batchApprovalsEnabled },
|
|
50606
|
-
escalatedApprovals
|
|
50607
|
-
);
|
|
50503
|
+
processMessageData(data, accumulator, approvalStatuses, { displayApprovalTypes }, escalatedApprovals);
|
|
50608
50504
|
});
|
|
50609
50505
|
const nextMsg = messages[index + 1];
|
|
50610
50506
|
const isLastMessage = index === messages.length - 1;
|
|
50611
|
-
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access',
|
|
50507
|
+
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1320 => _1320.owner, 'optionalAccess', _1321 => _1321.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1322 => _1322.owner, 'optionalAccess', _1323 => _1323.type]) === OWNER_TYPE.ADMIN);
|
|
50612
50508
|
if (isLastMessage || nextIsFromUser) {
|
|
50613
50509
|
flushAssistantMessage();
|
|
50614
50510
|
}
|
|
@@ -50633,65 +50529,6 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
|
|
|
50633
50529
|
};
|
|
50634
50530
|
}
|
|
50635
50531
|
|
|
50636
|
-
// src/components/chat/utils/extract-incomplete-message-state.ts
|
|
50637
|
-
function extractIncompleteMessageState(lastMessage) {
|
|
50638
|
-
if (!lastMessage || lastMessage.role !== "assistant" || typeof lastMessage.content === "string") {
|
|
50639
|
-
return void 0;
|
|
50640
|
-
}
|
|
50641
|
-
const segments = lastMessage.content;
|
|
50642
|
-
const pendingApprovals = /* @__PURE__ */ new Map();
|
|
50643
|
-
const executingTools = /* @__PURE__ */ new Map();
|
|
50644
|
-
let hasIncompleteState = false;
|
|
50645
|
-
segments.forEach((segment) => {
|
|
50646
|
-
switch (segment.type) {
|
|
50647
|
-
case "tool_execution":
|
|
50648
|
-
if (segment.data.type === "EXECUTING_TOOL") {
|
|
50649
|
-
const toolKey = segment.data.toolExecutionRequestId || `${segment.data.integratedToolType}-${segment.data.toolFunction}`;
|
|
50650
|
-
executingTools.set(toolKey, {
|
|
50651
|
-
integratedToolType: segment.data.integratedToolType,
|
|
50652
|
-
toolFunction: segment.data.toolFunction,
|
|
50653
|
-
toolTitle: segment.data.toolTitle,
|
|
50654
|
-
parameters: segment.data.parameters
|
|
50655
|
-
});
|
|
50656
|
-
hasIncompleteState = true;
|
|
50657
|
-
}
|
|
50658
|
-
break;
|
|
50659
|
-
case "approval_request":
|
|
50660
|
-
if (segment.status === "pending" && segment.data.requestId) {
|
|
50661
|
-
pendingApprovals.set(segment.data.requestId, {
|
|
50662
|
-
command: segment.data.command,
|
|
50663
|
-
explanation: segment.data.explanation,
|
|
50664
|
-
approvalType: segment.data.approvalType || "CLIENT"
|
|
50665
|
-
});
|
|
50666
|
-
hasIncompleteState = true;
|
|
50667
|
-
}
|
|
50668
|
-
break;
|
|
50669
|
-
case "approval_batch": {
|
|
50670
|
-
const allDone = !!segment.data.executions && segment.data.toolCalls.every(
|
|
50671
|
-
(c) => _optionalChain([segment, 'access', _1329 => _1329.data, 'access', _1330 => _1330.executions, 'optionalAccess', _1331 => _1331[c.toolExecutionRequestId], 'optionalAccess', _1332 => _1332.status]) === "done"
|
|
50672
|
-
);
|
|
50673
|
-
if (segment.status !== "rejected" && !allDone) {
|
|
50674
|
-
hasIncompleteState = true;
|
|
50675
|
-
}
|
|
50676
|
-
break;
|
|
50677
|
-
}
|
|
50678
|
-
case "context_compaction":
|
|
50679
|
-
if (segment.status === "started") {
|
|
50680
|
-
hasIncompleteState = true;
|
|
50681
|
-
}
|
|
50682
|
-
break;
|
|
50683
|
-
}
|
|
50684
|
-
});
|
|
50685
|
-
if (!hasIncompleteState) {
|
|
50686
|
-
return void 0;
|
|
50687
|
-
}
|
|
50688
|
-
return {
|
|
50689
|
-
existingSegments: segments,
|
|
50690
|
-
pendingApprovals: pendingApprovals.size > 0 ? pendingApprovals : void 0,
|
|
50691
|
-
executingTools: executingTools.size > 0 ? executingTools : void 0
|
|
50692
|
-
};
|
|
50693
|
-
}
|
|
50694
|
-
|
|
50695
50532
|
// src/components/chat/hooks/use-nats-chat-adapter.ts
|
|
50696
50533
|
function nextId(role) {
|
|
50697
50534
|
return `${role}-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`;
|
|
@@ -50714,110 +50551,6 @@ function updateTrailingAssistant(prev, segments) {
|
|
|
50714
50551
|
{ ...last, segments }
|
|
50715
50552
|
];
|
|
50716
50553
|
}
|
|
50717
|
-
var CONTENT_DEDUP_WINDOW = 4;
|
|
50718
|
-
var SYSTEM_DEDUP_WINDOW = 10;
|
|
50719
|
-
function hasRecentMessage(prev, predicate, window2) {
|
|
50720
|
-
const start = Math.max(0, prev.length - window2);
|
|
50721
|
-
for (let i = prev.length - 1; i >= start; i--) {
|
|
50722
|
-
if (predicate(prev[i])) return true;
|
|
50723
|
-
}
|
|
50724
|
-
return false;
|
|
50725
|
-
}
|
|
50726
|
-
function appendToTrailingAssistant(prev, segments) {
|
|
50727
|
-
if (segments.length === 0) return prev;
|
|
50728
|
-
const last = prev[prev.length - 1];
|
|
50729
|
-
if (!last || last.role !== "assistant") {
|
|
50730
|
-
return [
|
|
50731
|
-
...prev,
|
|
50732
|
-
{ id: nextId("assistant"), role: "assistant", content: "", segments }
|
|
50733
|
-
];
|
|
50734
|
-
}
|
|
50735
|
-
const merged = [..._nullishCoalesce(last.segments, () => ( []))];
|
|
50736
|
-
for (const seg of segments) {
|
|
50737
|
-
const tail = merged[merged.length - 1];
|
|
50738
|
-
if (seg.type === "text" && _optionalChain([tail, 'optionalAccess', _1333 => _1333.type]) === "text") {
|
|
50739
|
-
merged[merged.length - 1] = { type: "text", text: tail.text + seg.text };
|
|
50740
|
-
} else if (seg.type === "thinking" && _optionalChain([tail, 'optionalAccess', _1334 => _1334.type]) === "thinking") {
|
|
50741
|
-
merged[merged.length - 1] = { type: "thinking", text: tail.text + seg.text };
|
|
50742
|
-
} else if (seg.type === "approval_batch") {
|
|
50743
|
-
const idx = merged.findIndex(
|
|
50744
|
-
(m) => m.type === "approval_batch" && m.data.approvalRequestId === seg.data.approvalRequestId
|
|
50745
|
-
);
|
|
50746
|
-
if (idx !== -1) merged[idx] = seg;
|
|
50747
|
-
else merged.push(seg);
|
|
50748
|
-
} else if (seg.type === "approval_request") {
|
|
50749
|
-
const idx = merged.findIndex(
|
|
50750
|
-
(m) => m.type === "approval_request" && m.data.requestId === seg.data.requestId && m.data.command === seg.data.command
|
|
50751
|
-
);
|
|
50752
|
-
if (idx !== -1) merged[idx] = seg;
|
|
50753
|
-
else merged.push(seg);
|
|
50754
|
-
} else {
|
|
50755
|
-
merged.push(seg);
|
|
50756
|
-
}
|
|
50757
|
-
}
|
|
50758
|
-
return [...prev.slice(0, -1), { ...last, segments: merged }];
|
|
50759
|
-
}
|
|
50760
|
-
function upsertTrailingCompaction(prev, segments) {
|
|
50761
|
-
const compaction = [...segments].reverse().find((s) => s.type === "context_compaction");
|
|
50762
|
-
if (!compaction) return prev;
|
|
50763
|
-
const last = prev[prev.length - 1];
|
|
50764
|
-
if (!last || last.role !== "assistant") {
|
|
50765
|
-
return [
|
|
50766
|
-
...prev,
|
|
50767
|
-
{ id: nextId("assistant"), role: "assistant", content: "", segments: [compaction] }
|
|
50768
|
-
];
|
|
50769
|
-
}
|
|
50770
|
-
const existing = _nullishCoalesce(last.segments, () => ( []));
|
|
50771
|
-
const startedIdx = existing.map((s) => s.type === "context_compaction" && s.status === "started").lastIndexOf(true);
|
|
50772
|
-
const merged = startedIdx !== -1 ? existing.map((s, i) => i === startedIdx ? compaction : s) : [...existing, compaction];
|
|
50773
|
-
return [...prev.slice(0, -1), { ...last, segments: merged }];
|
|
50774
|
-
}
|
|
50775
|
-
function applyToolExecutionToMessages(prev, segment) {
|
|
50776
|
-
const toolData = segment.data;
|
|
50777
|
-
const execId = toolData.toolExecutionRequestId;
|
|
50778
|
-
for (let i = prev.length - 1; i >= 0; i--) {
|
|
50779
|
-
const message2 = prev[i];
|
|
50780
|
-
if (message2.role !== "assistant" || !message2.segments) continue;
|
|
50781
|
-
for (let j = message2.segments.length - 1; j >= 0; j--) {
|
|
50782
|
-
const seg = message2.segments[j];
|
|
50783
|
-
if (execId && seg.type === "approval_batch" && seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId)) {
|
|
50784
|
-
const prevExec = _optionalChain([seg, 'access', _1335 => _1335.data, 'access', _1336 => _1336.executions, 'optionalAccess', _1337 => _1337[execId]]);
|
|
50785
|
-
if (toolData.type === "EXECUTING_TOOL" && _optionalChain([prevExec, 'optionalAccess', _1338 => _1338.status]) === "done") {
|
|
50786
|
-
return prev;
|
|
50787
|
-
}
|
|
50788
|
-
const nextExec = toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prevExec, 'optionalAccess', _1339 => _1339.result]), success: _optionalChain([prevExec, 'optionalAccess', _1340 => _1340.success]) };
|
|
50789
|
-
const nextSegments = [...message2.segments];
|
|
50790
|
-
nextSegments[j] = {
|
|
50791
|
-
...seg,
|
|
50792
|
-
data: { ...seg.data, executions: { ..._nullishCoalesce(seg.data.executions, () => ( {})), [execId]: nextExec } }
|
|
50793
|
-
};
|
|
50794
|
-
const next = [...prev];
|
|
50795
|
-
next[i] = { ...message2, segments: nextSegments };
|
|
50796
|
-
return next;
|
|
50797
|
-
}
|
|
50798
|
-
if (seg.type === "tool_execution") {
|
|
50799
|
-
const matches = execId ? seg.data.toolExecutionRequestId === execId : seg.data.type === "EXECUTING_TOOL" && seg.data.integratedToolType === toolData.integratedToolType && seg.data.toolFunction === toolData.toolFunction;
|
|
50800
|
-
if (!matches) continue;
|
|
50801
|
-
if (toolData.type === "EXECUTING_TOOL" && seg.data.type === "EXECUTED_TOOL") {
|
|
50802
|
-
return prev;
|
|
50803
|
-
}
|
|
50804
|
-
const nextSegments = [...message2.segments];
|
|
50805
|
-
nextSegments[j] = {
|
|
50806
|
-
type: "tool_execution",
|
|
50807
|
-
data: {
|
|
50808
|
-
...toolData,
|
|
50809
|
-
toolTitle: _nullishCoalesce(toolData.toolTitle, () => ( seg.data.toolTitle)),
|
|
50810
|
-
parameters: toolData.parameters || seg.data.parameters
|
|
50811
|
-
}
|
|
50812
|
-
};
|
|
50813
|
-
const next = [...prev];
|
|
50814
|
-
next[i] = { ...message2, segments: nextSegments };
|
|
50815
|
-
return next;
|
|
50816
|
-
}
|
|
50817
|
-
}
|
|
50818
|
-
}
|
|
50819
|
-
return appendToTrailingAssistant(prev, [segment]);
|
|
50820
|
-
}
|
|
50821
50554
|
function mapProcessedToUnified(processed) {
|
|
50822
50555
|
const out = [];
|
|
50823
50556
|
for (const m of processed) {
|
|
@@ -50857,7 +50590,6 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
50857
50590
|
fetchChunks,
|
|
50858
50591
|
topics,
|
|
50859
50592
|
batchApprovalsEnabled,
|
|
50860
|
-
displayApprovalTypes,
|
|
50861
50593
|
fetchDialogs,
|
|
50862
50594
|
fetchDialogMessages,
|
|
50863
50595
|
createDialog: createDialogCallback,
|
|
@@ -50877,17 +50609,11 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
50877
50609
|
const isManagedMode = fetchDialogs !== void 0;
|
|
50878
50610
|
const [internalDialogId, setInternalDialogId] = _react.useState.call(void 0, null);
|
|
50879
50611
|
const dialogId = isManagedMode ? internalDialogId : controlledDialogId !== void 0 ? controlledDialogId : null;
|
|
50880
|
-
const currentDialogIdRef = _react.useRef.call(void 0, dialogId);
|
|
50881
|
-
currentDialogIdRef.current = dialogId;
|
|
50882
50612
|
const [messages, setMessages] = _react.useState.call(void 0, []);
|
|
50883
50613
|
const [streamingPhase, setStreamingPhase] = _react.useState.call(void 0, "idle");
|
|
50884
50614
|
const streamingPhaseRef = _react.useRef.call(void 0, streamingPhase);
|
|
50885
50615
|
streamingPhaseRef.current = streamingPhase;
|
|
50886
|
-
const suppressAgentBusyRef = _react.useRef.call(void 0,
|
|
50887
|
-
const adoptTrailingAssistantRef = _react.useRef.call(void 0, false);
|
|
50888
|
-
const hasConnectedOnceRef = _react.useRef.call(void 0, false);
|
|
50889
|
-
const seenParticipantSeqsRef = _react.useRef.call(void 0, /* @__PURE__ */ new Set());
|
|
50890
|
-
const pendingEchoTextsRef = _react.useRef.call(void 0, []);
|
|
50616
|
+
const suppressAgentBusyRef = _react.useRef.call(void 0, false);
|
|
50891
50617
|
const [approvalStatuses, setApprovalStatuses] = _react.useState.call(void 0, {});
|
|
50892
50618
|
const [dialogs, setDialogs] = _react.useState.call(void 0, []);
|
|
50893
50619
|
const [dialogsNextCursor, setDialogsNextCursor] = _react.useState.call(void 0, null);
|
|
@@ -50953,39 +50679,17 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
50953
50679
|
return handleRejectRef.current(requestId);
|
|
50954
50680
|
}, []);
|
|
50955
50681
|
const callbacksRef = _react.useRef.call(void 0, {
|
|
50956
|
-
onSegmentsUpdate: (segments
|
|
50957
|
-
if (_optionalChain([meta, 'optionalAccess', _1341 => _1341.append]) && meta.isCompacting) {
|
|
50958
|
-
setMessages((prev) => upsertTrailingCompaction(prev, segments));
|
|
50959
|
-
return;
|
|
50960
|
-
}
|
|
50961
|
-
if (_optionalChain([meta, 'optionalAccess', _1342 => _1342.append])) {
|
|
50962
|
-
setMessages((prev) => appendToTrailingAssistant(prev, segments));
|
|
50963
|
-
return;
|
|
50964
|
-
}
|
|
50682
|
+
onSegmentsUpdate: (segments) => {
|
|
50965
50683
|
setMessages((prev) => updateTrailingAssistant(prev, segments));
|
|
50966
50684
|
},
|
|
50967
|
-
onStreamStart: () =>
|
|
50968
|
-
setStreamingPhase("streaming");
|
|
50969
|
-
const adoptTail = adoptTrailingAssistantRef.current;
|
|
50970
|
-
adoptTrailingAssistantRef.current = false;
|
|
50971
|
-
setMessages((prev) => {
|
|
50972
|
-
const last = prev[prev.length - 1];
|
|
50973
|
-
if (!last || last.role !== "assistant" || adoptTail) return prev;
|
|
50974
|
-
const hasContent = (_nullishCoalesce(_optionalChain([last, 'access', _1343 => _1343.segments, 'optionalAccess', _1344 => _1344.length]), () => ( 0))) > 0 || last.content !== "";
|
|
50975
|
-
if (!hasContent) return prev;
|
|
50976
|
-
return [
|
|
50977
|
-
...prev,
|
|
50978
|
-
{ id: nextId("assistant"), role: "assistant", content: "", segments: [] }
|
|
50979
|
-
];
|
|
50980
|
-
});
|
|
50981
|
-
},
|
|
50685
|
+
onStreamStart: () => setStreamingPhase("streaming"),
|
|
50982
50686
|
onStreamEnd: () => setStreamingPhase("idle"),
|
|
50983
50687
|
// Agent is executing (approved) commands outside an open stream — keep
|
|
50984
50688
|
// the composer locked exactly like the in-stream phases. An open stream
|
|
50985
50689
|
// keeps ownership: only 'idle' upgrades to 'thinking'. Suppressed during
|
|
50986
50690
|
// initial catchup so a replayed dead tail can't lock a finished dialog.
|
|
50987
50691
|
onAgentBusy: () => {
|
|
50988
|
-
if (suppressAgentBusyRef.current
|
|
50692
|
+
if (suppressAgentBusyRef.current) return;
|
|
50989
50693
|
setStreamingPhase((p) => p === "idle" ? "thinking" : p);
|
|
50990
50694
|
},
|
|
50991
50695
|
// Terminal turn failures can arrive without a MESSAGE_END; unlock the
|
|
@@ -51000,171 +50704,27 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
51000
50704
|
provider: meta.providerName || null,
|
|
51001
50705
|
modelLabel: meta.modelDisplayName || meta.modelName || null,
|
|
51002
50706
|
contextWindowMaxTokens: meta.contextWindow || null
|
|
51003
|
-
})
|
|
51004
|
-
// Post-MESSAGE_END tool chunks (approved commands executing after the
|
|
51005
|
-
// approval bubble, async batch results). Routed through the cross-message
|
|
51006
|
-
// updater — the accumulator was reset at MESSAGE_END, so the old
|
|
51007
|
-
// fallthrough replaced the whole trailing bubble with one tool segment.
|
|
51008
|
-
onToolExecuted: (segment) => {
|
|
51009
|
-
setMessages((prev) => applyToolExecutionToMessages(prev, segment));
|
|
51010
|
-
},
|
|
51011
|
-
// Cross-message approval status flip. Wiring this also makes the
|
|
51012
|
-
// processor skip its cumulative re-emit for resolved approvals — which,
|
|
51013
|
-
// post-MESSAGE_END, was an empty array that blanked the trailing bubble.
|
|
51014
|
-
onApprovalResolved: (requestId, status, _approvalType, resolvedByName) => {
|
|
51015
|
-
setMessages((prev) => {
|
|
51016
|
-
let changed = false;
|
|
51017
|
-
const next = prev.map((m) => {
|
|
51018
|
-
if (m.role !== "assistant" || !m.segments) return m;
|
|
51019
|
-
let msgChanged = false;
|
|
51020
|
-
const segs = m.segments.map((s) => {
|
|
51021
|
-
if (s.type === "approval_request" && s.data.requestId === requestId && s.status !== status) {
|
|
51022
|
-
msgChanged = true;
|
|
51023
|
-
return { ...s, status };
|
|
51024
|
-
}
|
|
51025
|
-
if (s.type === "approval_batch" && s.data.approvalRequestId === requestId) {
|
|
51026
|
-
const nextResolvedBy = _nullishCoalesce(resolvedByName, () => ( s.resolvedByName));
|
|
51027
|
-
if (s.status === status && nextResolvedBy === s.resolvedByName) return s;
|
|
51028
|
-
msgChanged = true;
|
|
51029
|
-
return { ...s, status, resolvedByName: nextResolvedBy };
|
|
51030
|
-
}
|
|
51031
|
-
return s;
|
|
51032
|
-
});
|
|
51033
|
-
if (!msgChanged) return m;
|
|
51034
|
-
changed = true;
|
|
51035
|
-
return { ...m, segments: segs };
|
|
51036
|
-
});
|
|
51037
|
-
return changed ? next : prev;
|
|
51038
|
-
});
|
|
51039
|
-
setApprovalStatuses(
|
|
51040
|
-
(prev) => prev[requestId] === status ? prev : { ...prev, [requestId]: status }
|
|
51041
|
-
);
|
|
51042
|
-
},
|
|
51043
|
-
// MESSAGE_REQUEST echo — a user message from THIS or another session.
|
|
51044
|
-
onUserMessage: (text, meta) => {
|
|
51045
|
-
if (!text) return;
|
|
51046
|
-
const seq = _optionalChain([meta, 'optionalAccess', _1345 => _1345.streamSeq]);
|
|
51047
|
-
if (typeof seq === "number") {
|
|
51048
|
-
if (seenParticipantSeqsRef.current.has(seq)) return;
|
|
51049
|
-
seenParticipantSeqsRef.current.add(seq);
|
|
51050
|
-
}
|
|
51051
|
-
if (_optionalChain([meta, 'optionalAccess', _1346 => _1346.ownerType]) !== "ADMIN") {
|
|
51052
|
-
const echoIdx = pendingEchoTextsRef.current.indexOf(text);
|
|
51053
|
-
if (echoIdx !== -1) {
|
|
51054
|
-
pendingEchoTextsRef.current.splice(echoIdx, 1);
|
|
51055
|
-
return;
|
|
51056
|
-
}
|
|
51057
|
-
}
|
|
51058
|
-
const authorType = _optionalChain([meta, 'optionalAccess', _1347 => _1347.ownerType]) === "ADMIN" ? "admin" : "user";
|
|
51059
|
-
setMessages((prev) => {
|
|
51060
|
-
if (typeof seq !== "number" && hasRecentMessage(
|
|
51061
|
-
prev,
|
|
51062
|
-
(m) => m.role === "user" && (_nullishCoalesce(m.authorType, () => ( "user"))) === authorType && m.content === text,
|
|
51063
|
-
CONTENT_DEDUP_WINDOW
|
|
51064
|
-
)) {
|
|
51065
|
-
return prev;
|
|
51066
|
-
}
|
|
51067
|
-
return [
|
|
51068
|
-
...prev,
|
|
51069
|
-
{
|
|
51070
|
-
id: nextId("user"),
|
|
51071
|
-
role: "user",
|
|
51072
|
-
content: text,
|
|
51073
|
-
..._optionalChain([meta, 'optionalAccess', _1348 => _1348.displayName]) ? { name: meta.displayName } : {},
|
|
51074
|
-
authorType,
|
|
51075
|
-
..._optionalChain([meta, 'optionalAccess', _1349 => _1349.contextItems]) && meta.contextItems.length > 0 ? {
|
|
51076
|
-
contextItems: meta.contextItems.map((ci) => ({
|
|
51077
|
-
type: ci.type,
|
|
51078
|
-
id: ci.id,
|
|
51079
|
-
label: _nullishCoalesce(ci.label, () => ( ci.id))
|
|
51080
|
-
}))
|
|
51081
|
-
} : {}
|
|
51082
|
-
}
|
|
51083
|
-
];
|
|
51084
|
-
});
|
|
51085
|
-
},
|
|
51086
|
-
// Technician / admin direct message into the dialog.
|
|
51087
|
-
onDirectMessage: (text, meta) => {
|
|
51088
|
-
if (!text) return;
|
|
51089
|
-
const seq = _optionalChain([meta, 'optionalAccess', _1350 => _1350.streamSeq]);
|
|
51090
|
-
if (typeof seq === "number") {
|
|
51091
|
-
if (seenParticipantSeqsRef.current.has(seq)) return;
|
|
51092
|
-
seenParticipantSeqsRef.current.add(seq);
|
|
51093
|
-
}
|
|
51094
|
-
setMessages((prev) => {
|
|
51095
|
-
if (typeof seq !== "number" && hasRecentMessage(
|
|
51096
|
-
prev,
|
|
51097
|
-
(m) => m.role === "user" && m.authorType === "admin" && m.content === text,
|
|
51098
|
-
CONTENT_DEDUP_WINDOW
|
|
51099
|
-
)) {
|
|
51100
|
-
return prev;
|
|
51101
|
-
}
|
|
51102
|
-
return [
|
|
51103
|
-
...prev,
|
|
51104
|
-
{
|
|
51105
|
-
id: `direct-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`,
|
|
51106
|
-
role: "user",
|
|
51107
|
-
content: text,
|
|
51108
|
-
name: _nullishCoalesce(_optionalChain([meta, 'optionalAccess', _1351 => _1351.displayName]), () => ( "Admin")),
|
|
51109
|
-
authorType: "admin"
|
|
51110
|
-
}
|
|
51111
|
-
];
|
|
51112
|
-
});
|
|
51113
|
-
},
|
|
51114
|
-
// System notice — rendered as a name-only row (same shape the history
|
|
51115
|
-
// processor produces via `pushStandaloneMessages`).
|
|
51116
|
-
onSystemMessage: (text, meta) => {
|
|
51117
|
-
if (!text) return;
|
|
51118
|
-
const seq = _optionalChain([meta, 'optionalAccess', _1352 => _1352.streamSeq]);
|
|
51119
|
-
if (typeof seq === "number") {
|
|
51120
|
-
if (seenParticipantSeqsRef.current.has(seq)) return;
|
|
51121
|
-
seenParticipantSeqsRef.current.add(seq);
|
|
51122
|
-
}
|
|
51123
|
-
setMessages((prev) => {
|
|
51124
|
-
if (typeof seq !== "number" && hasRecentMessage(prev, (m) => m.authorType === "system" && m.name === text, SYSTEM_DEDUP_WINDOW)) {
|
|
51125
|
-
return prev;
|
|
51126
|
-
}
|
|
51127
|
-
return [
|
|
51128
|
-
...prev,
|
|
51129
|
-
{
|
|
51130
|
-
id: `system-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`,
|
|
51131
|
-
role: "user",
|
|
51132
|
-
content: "",
|
|
51133
|
-
name: text,
|
|
51134
|
-
authorType: "system"
|
|
51135
|
-
}
|
|
51136
|
-
];
|
|
51137
|
-
});
|
|
51138
|
-
}
|
|
50707
|
+
})
|
|
51139
50708
|
});
|
|
51140
50709
|
const { processChunk, reset: resetAccumulator } = useRealtimeChunkProcessor({
|
|
51141
50710
|
callbacks: {
|
|
51142
|
-
onSegmentsUpdate: (segments
|
|
50711
|
+
onSegmentsUpdate: (segments) => callbacksRef.current.onSegmentsUpdate(segments),
|
|
51143
50712
|
onStreamStart: () => callbacksRef.current.onStreamStart(),
|
|
51144
50713
|
onStreamEnd: () => callbacksRef.current.onStreamEnd(),
|
|
51145
50714
|
onAgentBusy: () => callbacksRef.current.onAgentBusy(),
|
|
51146
50715
|
onError: () => callbacksRef.current.onError(),
|
|
51147
50716
|
onTokenUsage: (data) => callbacksRef.current.onTokenUsage(data),
|
|
51148
50717
|
onMetadata: (meta) => callbacksRef.current.onMetadata(meta),
|
|
51149
|
-
onToolExecuted: (segment) => callbacksRef.current.onToolExecuted(segment),
|
|
51150
|
-
onApprovalResolved: (requestId, status, approvalType, resolvedByName) => callbacksRef.current.onApprovalResolved(requestId, status, approvalType, resolvedByName),
|
|
51151
|
-
onUserMessage: (text, meta) => callbacksRef.current.onUserMessage(text, meta),
|
|
51152
|
-
onDirectMessage: (text, meta) => callbacksRef.current.onDirectMessage(text, meta),
|
|
51153
|
-
onSystemMessage: (text, meta) => callbacksRef.current.onSystemMessage(text, meta),
|
|
51154
50718
|
onApprove: accumApprove,
|
|
51155
50719
|
onReject: accumReject
|
|
51156
50720
|
},
|
|
51157
|
-
batchApprovalsEnabled
|
|
51158
|
-
approvalStatuses,
|
|
51159
|
-
...displayApprovalTypes ? { displayApprovalTypes } : {}
|
|
50721
|
+
batchApprovalsEnabled
|
|
51160
50722
|
});
|
|
51161
50723
|
const {
|
|
51162
50724
|
processChunk: catchupProcessChunk,
|
|
51163
50725
|
catchUpChunks,
|
|
51164
50726
|
startInitialBuffering,
|
|
51165
|
-
resetChunkTracking
|
|
51166
|
-
resetAndCatchUp,
|
|
51167
|
-
isBufferingActive
|
|
50727
|
+
resetChunkTracking
|
|
51168
50728
|
} = useChunkCatchup({
|
|
51169
50729
|
dialogId: active ? dialogId : null,
|
|
51170
50730
|
onChunkReceived: (chunk) => processChunk(chunk),
|
|
@@ -51193,13 +50753,11 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
51193
50753
|
onApprove: accumApprove,
|
|
51194
50754
|
onReject: accumReject,
|
|
51195
50755
|
approvalStatuses,
|
|
51196
|
-
batchApprovalsEnabled
|
|
51197
|
-
...displayApprovalTypes ? { displayApprovalTypes } : {}
|
|
50756
|
+
batchApprovalsEnabled
|
|
51198
50757
|
}
|
|
51199
50758
|
);
|
|
51200
50759
|
const unified = mapProcessedToUnified(rawProcessed);
|
|
51201
50760
|
if (cursor === void 0) {
|
|
51202
|
-
adoptTrailingAssistantRef.current = isBufferingActive() && extractIncompleteMessageState(rawProcessed[rawProcessed.length - 1]) !== void 0;
|
|
51203
50761
|
setMessages(unified);
|
|
51204
50762
|
} else {
|
|
51205
50763
|
setMessages((prev) => [...unified, ...prev]);
|
|
@@ -51223,10 +50781,8 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
51223
50781
|
chatTypeFilter,
|
|
51224
50782
|
approvalStatuses,
|
|
51225
50783
|
batchApprovalsEnabled,
|
|
51226
|
-
displayApprovalTypes,
|
|
51227
50784
|
accumApprove,
|
|
51228
|
-
accumReject
|
|
51229
|
-
isBufferingActive
|
|
50785
|
+
accumReject
|
|
51230
50786
|
]
|
|
51231
50787
|
);
|
|
51232
50788
|
const prevDialogIdRef = _react.useRef.call(void 0, void 0);
|
|
@@ -51235,9 +50791,6 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
51235
50791
|
prevDialogIdRef.current = dialogId;
|
|
51236
50792
|
historyLoadSeqRef.current += 1;
|
|
51237
50793
|
resetAccumulator();
|
|
51238
|
-
adoptTrailingAssistantRef.current = false;
|
|
51239
|
-
seenParticipantSeqsRef.current.clear();
|
|
51240
|
-
pendingEchoTextsRef.current = [];
|
|
51241
50794
|
setMessages([]);
|
|
51242
50795
|
setMessagesNextCursor(null);
|
|
51243
50796
|
setDialogTokenUsage(null);
|
|
@@ -51249,16 +50802,13 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
51249
50802
|
}, [active, dialogId, loadDialogHistory, resetAccumulator]);
|
|
51250
50803
|
_react.useEffect.call(void 0, () => {
|
|
51251
50804
|
if (!active || !dialogId) return;
|
|
51252
|
-
suppressAgentBusyRef.current
|
|
50805
|
+
suppressAgentBusyRef.current = true;
|
|
51253
50806
|
resetChunkTracking();
|
|
51254
50807
|
startInitialBuffering();
|
|
51255
50808
|
catchUpChunks().catch((err) => {
|
|
51256
50809
|
console.error("[useNatsChatAdapter] initial catchup failed:", err);
|
|
51257
50810
|
}).finally(() => {
|
|
51258
|
-
suppressAgentBusyRef.current =
|
|
51259
|
-
if (dialogId === currentDialogIdRef.current) {
|
|
51260
|
-
adoptTrailingAssistantRef.current = false;
|
|
51261
|
-
}
|
|
50811
|
+
suppressAgentBusyRef.current = false;
|
|
51262
50812
|
});
|
|
51263
50813
|
}, [active, dialogId, resetChunkTracking, startInitialBuffering, catchUpChunks]);
|
|
51264
50814
|
useNatsDialogSubscription({
|
|
@@ -51273,30 +50823,6 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
51273
50823
|
onEvent: (payload, messageType) => {
|
|
51274
50824
|
catchupProcessChunk(payload, messageType);
|
|
51275
50825
|
setConnectionState("connected");
|
|
51276
|
-
},
|
|
51277
|
-
onConnect: () => {
|
|
51278
|
-
if (!hasConnectedOnceRef.current) {
|
|
51279
|
-
hasConnectedOnceRef.current = true;
|
|
51280
|
-
return;
|
|
51281
|
-
}
|
|
51282
|
-
suppressAgentBusyRef.current += 1;
|
|
51283
|
-
startInitialBuffering();
|
|
51284
|
-
void (async () => {
|
|
51285
|
-
try {
|
|
51286
|
-
if (dialogId && fetchDialogMessages) {
|
|
51287
|
-
await loadDialogHistory(dialogId);
|
|
51288
|
-
}
|
|
51289
|
-
if (dialogId !== currentDialogIdRef.current) return;
|
|
51290
|
-
await resetAndCatchUp();
|
|
51291
|
-
} catch (err) {
|
|
51292
|
-
console.error("[useNatsChatAdapter] reconnect catchup failed:", err);
|
|
51293
|
-
} finally {
|
|
51294
|
-
suppressAgentBusyRef.current = Math.max(0, suppressAgentBusyRef.current - 1);
|
|
51295
|
-
if (dialogId === currentDialogIdRef.current) {
|
|
51296
|
-
adoptTrailingAssistantRef.current = false;
|
|
51297
|
-
}
|
|
51298
|
-
}
|
|
51299
|
-
})();
|
|
51300
50826
|
}
|
|
51301
50827
|
});
|
|
51302
50828
|
_react.useEffect.call(void 0, () => {
|
|
@@ -51347,9 +50873,7 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
51347
50873
|
}, [active, fetchDialogs, loadDialogsPage]);
|
|
51348
50874
|
const sendMessage = _react.useCallback.call(void 0,
|
|
51349
50875
|
async (text, sendOptions) => {
|
|
51350
|
-
const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess',
|
|
51351
|
-
pendingEchoTextsRef.current.push(text);
|
|
51352
|
-
if (pendingEchoTextsRef.current.length > 5) pendingEchoTextsRef.current.shift();
|
|
50876
|
+
const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _1324 => _1324.hidden]), () => ( false));
|
|
51353
50877
|
setMessages((prev) => [
|
|
51354
50878
|
...prev,
|
|
51355
50879
|
{
|
|
@@ -51513,11 +51037,11 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
51513
51037
|
// Tokens: live `token_usage` frame / dialog snapshot (`dialogTokenUsage`).
|
|
51514
51038
|
// contextWindow uses the dialog's `contextSize` (the "X / Y" denominator,
|
|
51515
51039
|
// matching the /mingo page). cacheHitRate/breakdown are SSE-only → null.
|
|
51516
|
-
currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess',
|
|
51517
|
-
currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess',
|
|
51518
|
-
currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess',
|
|
51519
|
-
currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess',
|
|
51520
|
-
currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess',
|
|
51040
|
+
currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1325 => _1325.provider]), () => ( modelProvider)), () => ( null)),
|
|
51041
|
+
currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1326 => _1326.modelLabel]), () => ( modelLabel)), () => ( null)),
|
|
51042
|
+
currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1327 => _1327.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _1328 => _1328.contextWindowMaxTokens]))), () => ( null)),
|
|
51043
|
+
currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1329 => _1329.inputTokensSize]), () => ( null)),
|
|
51044
|
+
currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1330 => _1330.outputTokensSize]), () => ( null)),
|
|
51521
51045
|
currentCacheHitRatePct: null,
|
|
51522
51046
|
currentUsageBreakdown: null,
|
|
51523
51047
|
// Dialog management
|
|
@@ -51730,6 +51254,65 @@ function useUnifiedChat(options) {
|
|
|
51730
51254
|
);
|
|
51731
51255
|
}
|
|
51732
51256
|
|
|
51257
|
+
// src/components/chat/utils/extract-incomplete-message-state.ts
|
|
51258
|
+
function extractIncompleteMessageState(lastMessage) {
|
|
51259
|
+
if (!lastMessage || lastMessage.role !== "assistant" || typeof lastMessage.content === "string") {
|
|
51260
|
+
return void 0;
|
|
51261
|
+
}
|
|
51262
|
+
const segments = lastMessage.content;
|
|
51263
|
+
const pendingApprovals = /* @__PURE__ */ new Map();
|
|
51264
|
+
const executingTools = /* @__PURE__ */ new Map();
|
|
51265
|
+
let hasIncompleteState = false;
|
|
51266
|
+
segments.forEach((segment) => {
|
|
51267
|
+
switch (segment.type) {
|
|
51268
|
+
case "tool_execution":
|
|
51269
|
+
if (segment.data.type === "EXECUTING_TOOL") {
|
|
51270
|
+
const toolKey = segment.data.toolExecutionRequestId || `${segment.data.integratedToolType}-${segment.data.toolFunction}`;
|
|
51271
|
+
executingTools.set(toolKey, {
|
|
51272
|
+
integratedToolType: segment.data.integratedToolType,
|
|
51273
|
+
toolFunction: segment.data.toolFunction,
|
|
51274
|
+
toolTitle: segment.data.toolTitle,
|
|
51275
|
+
parameters: segment.data.parameters
|
|
51276
|
+
});
|
|
51277
|
+
hasIncompleteState = true;
|
|
51278
|
+
}
|
|
51279
|
+
break;
|
|
51280
|
+
case "approval_request":
|
|
51281
|
+
if (segment.status === "pending" && segment.data.requestId) {
|
|
51282
|
+
pendingApprovals.set(segment.data.requestId, {
|
|
51283
|
+
command: segment.data.command,
|
|
51284
|
+
explanation: segment.data.explanation,
|
|
51285
|
+
approvalType: segment.data.approvalType || "CLIENT"
|
|
51286
|
+
});
|
|
51287
|
+
hasIncompleteState = true;
|
|
51288
|
+
}
|
|
51289
|
+
break;
|
|
51290
|
+
case "approval_batch": {
|
|
51291
|
+
const allDone = !!segment.data.executions && segment.data.toolCalls.every(
|
|
51292
|
+
(c) => _optionalChain([segment, 'access', _1331 => _1331.data, 'access', _1332 => _1332.executions, 'optionalAccess', _1333 => _1333[c.toolExecutionRequestId], 'optionalAccess', _1334 => _1334.status]) === "done"
|
|
51293
|
+
);
|
|
51294
|
+
if (segment.status !== "rejected" && !allDone) {
|
|
51295
|
+
hasIncompleteState = true;
|
|
51296
|
+
}
|
|
51297
|
+
break;
|
|
51298
|
+
}
|
|
51299
|
+
case "context_compaction":
|
|
51300
|
+
if (segment.status === "started") {
|
|
51301
|
+
hasIncompleteState = true;
|
|
51302
|
+
}
|
|
51303
|
+
break;
|
|
51304
|
+
}
|
|
51305
|
+
});
|
|
51306
|
+
if (!hasIncompleteState) {
|
|
51307
|
+
return void 0;
|
|
51308
|
+
}
|
|
51309
|
+
return {
|
|
51310
|
+
existingSegments: segments,
|
|
51311
|
+
pendingApprovals: pendingApprovals.size > 0 ? pendingApprovals : void 0,
|
|
51312
|
+
executingTools: executingTools.size > 0 ? executingTools : void 0
|
|
51313
|
+
};
|
|
51314
|
+
}
|
|
51315
|
+
|
|
51733
51316
|
// src/components/chat/utils/history-merge.ts
|
|
51734
51317
|
var SYNTHETIC_REALTIME_ID_PREFIXES = ["assistant-", "user-", "direct-", "system-", "error-"];
|
|
51735
51318
|
function isSyntheticRealtimeId(id) {
|
|
@@ -51774,20 +51357,20 @@ function mergeHistoryWithRealtime(input) {
|
|
|
51774
51357
|
const seqCoverageKnown = realtimeSeenStreamSeq > 0 && historyMaxStreamSeq > 0;
|
|
51775
51358
|
const historyCoversRealtime = seqCoverageKnown ? historyMaxStreamSeq >= realtimeSeenStreamSeq : null;
|
|
51776
51359
|
const trailing = processedHistory[processedHistory.length - 1];
|
|
51777
|
-
const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess',
|
|
51778
|
-
const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access',
|
|
51360
|
+
const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _1335 => _1335.role]) === "assistant" ? trailing : null;
|
|
51361
|
+
const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _1336 => _1336.content, 'access', _1337 => _1337.find, 'call', _1338 => _1338((s) => s.type === "approval_batch"), 'optionalAccess', _1339 => _1339.data, 'optionalAccess', _1340 => _1340.approvalRequestId]), () => ( null)) : null;
|
|
51779
51362
|
let processedToUse = processedHistory;
|
|
51780
51363
|
const pinnedSyntheticIds = /* @__PURE__ */ new Set();
|
|
51781
51364
|
const droppedSyntheticIds = /* @__PURE__ */ new Set();
|
|
51782
51365
|
if (historyBatchId) {
|
|
51783
51366
|
const batchTwins = existingMessages.filter(
|
|
51784
51367
|
(m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some(
|
|
51785
|
-
(s) => s.type === "approval_batch" && _optionalChain([s, 'access',
|
|
51368
|
+
(s) => s.type === "approval_batch" && _optionalChain([s, 'access', _1341 => _1341.data, 'optionalAccess', _1342 => _1342.approvalRequestId]) === historyBatchId
|
|
51786
51369
|
)
|
|
51787
51370
|
);
|
|
51788
51371
|
const existingWithSameBatch = _nullishCoalesce(batchTwins.find((m) => m.id === streamingMessageId), () => ( batchTwins[batchTwins.length - 1]));
|
|
51789
51372
|
if (existingWithSameBatch && Array.isArray(existingWithSameBatch.content)) {
|
|
51790
|
-
const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess',
|
|
51373
|
+
const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _1343 => _1343.content])) ? historyTrailingAssistant.content.length : 0;
|
|
51791
51374
|
const realtimeSize = existingWithSameBatch.content.length;
|
|
51792
51375
|
if (existingWithSameBatch.id === streamingMessageId || realtimeSize > histSize) {
|
|
51793
51376
|
processedToUse = processedHistory.slice(0, -1);
|
|
@@ -51803,16 +51386,16 @@ function mergeHistoryWithRealtime(input) {
|
|
|
51803
51386
|
if (pinnedSyntheticIds.has(m.id)) return true;
|
|
51804
51387
|
if (droppedSyntheticIds.has(m.id)) return false;
|
|
51805
51388
|
if (processedIds.has(m.id)) return false;
|
|
51806
|
-
if (_optionalChain([rawHistoryIds, 'optionalAccess',
|
|
51389
|
+
if (_optionalChain([rawHistoryIds, 'optionalAccess', _1344 => _1344.has, 'call', _1345 => _1345(m.id)])) return false;
|
|
51807
51390
|
if (m.role === "user" && m.id.startsWith("optimistic-") && typeof m.content === "string") {
|
|
51808
|
-
const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access',
|
|
51391
|
+
const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _1346 => _1346.timestamp, 'optionalAccess', _1347 => _1347.getTime, 'call', _1348 => _1348()]), () => ( 0))) <= historyFetchedAt;
|
|
51809
51392
|
return !(canBeInSnapshot && processedToUse.some((pm) => pm.role === "user" && pm.content === m.content));
|
|
51810
51393
|
}
|
|
51811
51394
|
if (isSyntheticRealtimeId(m.id) && m.id !== streamingMessageId) {
|
|
51812
51395
|
if (m.role === "assistant" && trailingAssistantText && assistantAnswerText(m.content) === trailingAssistantText) {
|
|
51813
51396
|
return false;
|
|
51814
51397
|
}
|
|
51815
|
-
const covered = typeof m.streamSeq === "number" && historyMaxStreamSeq > 0 ? historyMaxStreamSeq >= m.streamSeq : historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access',
|
|
51398
|
+
const covered = typeof m.streamSeq === "number" && historyMaxStreamSeq > 0 ? historyMaxStreamSeq >= m.streamSeq : historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _1349 => _1349.timestamp, 'optionalAccess', _1350 => _1350.getTime, 'call', _1351 => _1351()]), () => ( 0))) <= historyFetchedAt;
|
|
51816
51399
|
if (covered) return false;
|
|
51817
51400
|
}
|
|
51818
51401
|
return true;
|
|
@@ -51867,7 +51450,7 @@ function normalizeHistoricalMessageData(md) {
|
|
|
51867
51450
|
function isHistoricalUserTurn(m) {
|
|
51868
51451
|
return !!m.owner;
|
|
51869
51452
|
}
|
|
51870
|
-
var isTextSegment = (d) => _optionalChain([d, 'optionalAccess',
|
|
51453
|
+
var isTextSegment = (d) => _optionalChain([d, 'optionalAccess', _1352 => _1352.type]) === "TEXT" && typeof d.text === "string";
|
|
51871
51454
|
var THINK_MS = 550;
|
|
51872
51455
|
var TOKEN_MS = 55;
|
|
51873
51456
|
var USER_MS = 480;
|
|
@@ -52108,7 +51691,7 @@ function useChatDialogManager({
|
|
|
52108
51691
|
const handleConfirmRestore = _react.useCallback.call(void 0, async () => {
|
|
52109
51692
|
if (restoreTarget) {
|
|
52110
51693
|
try {
|
|
52111
|
-
await _optionalChain([unarchiveDialog, 'optionalCall',
|
|
51694
|
+
await _optionalChain([unarchiveDialog, 'optionalCall', _1353 => _1353(restoreTarget.id)]);
|
|
52112
51695
|
} catch (err) {
|
|
52113
51696
|
console.error("[useChatDialogManager] unarchive failed:", err);
|
|
52114
51697
|
return;
|
|
@@ -52581,7 +52164,7 @@ function EmbeddableChatInner({
|
|
|
52581
52164
|
}),
|
|
52582
52165
|
[commandsUrl]
|
|
52583
52166
|
);
|
|
52584
|
-
const headerUserName = _optionalChain([identityUser, 'optionalAccess',
|
|
52167
|
+
const headerUserName = _optionalChain([identityUser, 'optionalAccess', _1354 => _1354.name, 'optionalAccess', _1355 => _1355.trim, 'call', _1356 => _1356()]) || [_optionalChain([identityUser, 'optionalAccess', _1357 => _1357.firstName]), _optionalChain([identityUser, 'optionalAccess', _1358 => _1358.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([userDisplayName, 'optionalAccess', _1359 => _1359.trim, 'call', _1360 => _1360()]) || void 0;
|
|
52585
52168
|
const effectiveModes = _react.useMemo.call(void 0, () => {
|
|
52586
52169
|
if (modes) return modes;
|
|
52587
52170
|
const guideOptions = tableIdForDocumentType ? { tableIdForDocumentType } : {};
|
|
@@ -52590,19 +52173,19 @@ function EmbeddableChatInner({
|
|
|
52590
52173
|
const mingoCaps = _react.useMemo.call(void 0, () => {
|
|
52591
52174
|
if (mingoState) {
|
|
52592
52175
|
return {
|
|
52593
|
-
canRename: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess',
|
|
52594
|
-
canArchive: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess',
|
|
52595
|
-
fetchArchivedDialogs: _optionalChain([mingoDialogCapabilities, 'optionalAccess',
|
|
52596
|
-
unarchiveDialog: _optionalChain([mingoDialogCapabilities, 'optionalAccess',
|
|
52597
|
-
searchQuery: _optionalChain([mingoDialogCapabilities, 'optionalAccess',
|
|
52598
|
-
onSearchChange: _optionalChain([mingoDialogCapabilities, 'optionalAccess',
|
|
52176
|
+
canRename: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1361 => _1361.canRename]), () => ( false)),
|
|
52177
|
+
canArchive: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1362 => _1362.canArchive]), () => ( false)),
|
|
52178
|
+
fetchArchivedDialogs: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1363 => _1363.fetchArchivedDialogs]),
|
|
52179
|
+
unarchiveDialog: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1364 => _1364.unarchiveDialog]),
|
|
52180
|
+
searchQuery: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1365 => _1365.searchQuery]),
|
|
52181
|
+
onSearchChange: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1366 => _1366.onSearchChange])
|
|
52599
52182
|
};
|
|
52600
52183
|
}
|
|
52601
52184
|
return {
|
|
52602
|
-
canRename: !!_optionalChain([effectiveModes, 'access',
|
|
52603
|
-
canArchive: !!_optionalChain([effectiveModes, 'access',
|
|
52604
|
-
fetchArchivedDialogs: _optionalChain([effectiveModes, 'access',
|
|
52605
|
-
unarchiveDialog: _optionalChain([effectiveModes, 'access',
|
|
52185
|
+
canRename: !!_optionalChain([effectiveModes, 'access', _1367 => _1367.mingo, 'optionalAccess', _1368 => _1368.renameDialog]),
|
|
52186
|
+
canArchive: !!_optionalChain([effectiveModes, 'access', _1369 => _1369.mingo, 'optionalAccess', _1370 => _1370.archiveDialog]),
|
|
52187
|
+
fetchArchivedDialogs: _optionalChain([effectiveModes, 'access', _1371 => _1371.mingo, 'optionalAccess', _1372 => _1372.fetchArchivedDialogs]),
|
|
52188
|
+
unarchiveDialog: _optionalChain([effectiveModes, 'access', _1373 => _1373.mingo, 'optionalAccess', _1374 => _1374.unarchiveDialog]),
|
|
52606
52189
|
searchQuery: void 0,
|
|
52607
52190
|
onSearchChange: void 0
|
|
52608
52191
|
};
|
|
@@ -52616,7 +52199,7 @@ function EmbeddableChatInner({
|
|
|
52616
52199
|
if (controlledActiveMode === void 0) {
|
|
52617
52200
|
setUncontrolledActiveMode(next);
|
|
52618
52201
|
}
|
|
52619
|
-
_optionalChain([onActiveModeChange, 'optionalCall',
|
|
52202
|
+
_optionalChain([onActiveModeChange, 'optionalCall', _1375 => _1375(next)]);
|
|
52620
52203
|
},
|
|
52621
52204
|
[controlledActiveMode, onActiveModeChange]
|
|
52622
52205
|
);
|
|
@@ -52638,7 +52221,7 @@ function EmbeddableChatInner({
|
|
|
52638
52221
|
const effectiveQuickActions = emptyStateUrl ? emptyStateConfig.quickActions : [];
|
|
52639
52222
|
const effectiveAssistantName = emptyStateConfig.name;
|
|
52640
52223
|
const effectiveAssistantIcon = emptyStateConfig.icon;
|
|
52641
|
-
const headerAssistantName = _nullishCoalesce(effectiveAssistantName, () => ( (typeof _optionalChain([guideWelcome, 'optionalAccess',
|
|
52224
|
+
const headerAssistantName = _nullishCoalesce(effectiveAssistantName, () => ( (typeof _optionalChain([guideWelcome, 'optionalAccess', _1376 => _1376.title]) === "string" ? guideWelcome.title : null)));
|
|
52642
52225
|
const {
|
|
52643
52226
|
messages: rawMessages,
|
|
52644
52227
|
isLoading: chatLoading,
|
|
@@ -52678,7 +52261,7 @@ function EmbeddableChatInner({
|
|
|
52678
52261
|
if (activeMode !== "guide" || guidePromptSentRef.current) return;
|
|
52679
52262
|
guidePromptSentRef.current = true;
|
|
52680
52263
|
void sendMessage(guidePendingPrompt);
|
|
52681
|
-
_optionalChain([onGuidePromptConsumed, 'optionalCall',
|
|
52264
|
+
_optionalChain([onGuidePromptConsumed, 'optionalCall', _1377 => _1377()]);
|
|
52682
52265
|
}, [guidePendingPrompt, activeMode, sendMessage, onGuidePromptConsumed]);
|
|
52683
52266
|
const {
|
|
52684
52267
|
attachments: stagedAttachments,
|
|
@@ -52689,7 +52272,7 @@ function EmbeddableChatInner({
|
|
|
52689
52272
|
clear: clearAttachments
|
|
52690
52273
|
} = useChatAttachments();
|
|
52691
52274
|
const { panelRef: galleryPanelRef, modal: galleryModal } = useChatAttachmentImageGallery();
|
|
52692
|
-
const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess',
|
|
52275
|
+
const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1378 => _1378.maxItems]), () => ( 10));
|
|
52693
52276
|
const contextPickerForMode = activeMode === "mingo" ? contextPicker : void 0;
|
|
52694
52277
|
const [contextItems, setContextItems] = _react.useState.call(void 0, []);
|
|
52695
52278
|
const [contextPickerOpen, setContextPickerOpen] = _react.useState.call(void 0, false);
|
|
@@ -52706,10 +52289,10 @@ function EmbeddableChatInner({
|
|
|
52706
52289
|
}, [activeDialogId, activeMode]);
|
|
52707
52290
|
const mentionMarkerByType = _react.useMemo.call(void 0, () => {
|
|
52708
52291
|
const m = /* @__PURE__ */ new Map();
|
|
52709
|
-
for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess',
|
|
52292
|
+
for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1379 => _1379.entityTypes]), () => ( []))) if (t.marker) m.set(t.type, t.marker);
|
|
52710
52293
|
return m;
|
|
52711
|
-
}, [_optionalChain([contextPicker, 'optionalAccess',
|
|
52712
|
-
const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess',
|
|
52294
|
+
}, [_optionalChain([contextPicker, 'optionalAccess', _1380 => _1380.entityTypes])]);
|
|
52295
|
+
const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess', _1381 => _1381.entityTypes]);
|
|
52713
52296
|
const resolveContextIcon = _react.useMemo.call(void 0, () => {
|
|
52714
52297
|
const byType = /* @__PURE__ */ new Map();
|
|
52715
52298
|
for (const t of _nullishCoalesce(contextEntityTypes, () => ( []))) byType.set(t.type, t.icon);
|
|
@@ -52721,7 +52304,7 @@ function EmbeddableChatInner({
|
|
|
52721
52304
|
if (mentionActiveRef.current) {
|
|
52722
52305
|
if (contextItems.some((p) => `${p.type}:${p.id}` === key)) return;
|
|
52723
52306
|
if (contextItems.length >= contextMaxItems) return;
|
|
52724
|
-
_optionalChain([chatInputRef, 'access',
|
|
52307
|
+
_optionalChain([chatInputRef, 'access', _1382 => _1382.current, 'optionalAccess', _1383 => _1383.commitMention, 'call', _1384 => _1384(mentionTokenOf(key, mentionMarkerByType), {
|
|
52725
52308
|
label: item.label,
|
|
52726
52309
|
icon: resolveContextIcon(item)
|
|
52727
52310
|
})]);
|
|
@@ -52743,9 +52326,9 @@ function EmbeddableChatInner({
|
|
|
52743
52326
|
setContextItems((prev) => prev.filter((p) => `${p.type}:${p.id}` !== key));
|
|
52744
52327
|
if (mentionKeysRef.current.has(key)) {
|
|
52745
52328
|
mentionKeysRef.current.delete(key);
|
|
52746
|
-
const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access',
|
|
52329
|
+
const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _1385 => _1385.current, 'optionalAccess', _1386 => _1386.getValue, 'call', _1387 => _1387()]), () => ( ""));
|
|
52747
52330
|
const next = cur.replace(`@${mentionTokenOf(key, mentionMarkerByType)}`, "").replace(/\s{2,}/g, " ").trimStart();
|
|
52748
|
-
_optionalChain([chatInputRef, 'access',
|
|
52331
|
+
_optionalChain([chatInputRef, 'access', _1388 => _1388.current, 'optionalAccess', _1389 => _1389.setValue, 'call', _1390 => _1390(next)]);
|
|
52749
52332
|
}
|
|
52750
52333
|
}, [mentionMarkerByType]);
|
|
52751
52334
|
const handleContextValueChange = _react.useCallback.call(void 0, (value) => {
|
|
@@ -52762,7 +52345,7 @@ function EmbeddableChatInner({
|
|
|
52762
52345
|
}, []);
|
|
52763
52346
|
const closeContextPicker = _react.useCallback.call(void 0, () => {
|
|
52764
52347
|
if (mentionActiveRef.current) {
|
|
52765
|
-
_optionalChain([chatInputRef, 'access',
|
|
52348
|
+
_optionalChain([chatInputRef, 'access', _1391 => _1391.current, 'optionalAccess', _1392 => _1392.removeMentionTrigger, 'call', _1393 => _1393()]);
|
|
52766
52349
|
}
|
|
52767
52350
|
setContextPickerOpen(false);
|
|
52768
52351
|
setMentionQuery(null);
|
|
@@ -52796,8 +52379,8 @@ function EmbeddableChatInner({
|
|
|
52796
52379
|
[effectiveAssistantIcon]
|
|
52797
52380
|
);
|
|
52798
52381
|
const timestampCacheRef = _react.useRef.call(void 0, /* @__PURE__ */ new Map());
|
|
52799
|
-
const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess',
|
|
52800
|
-
const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess',
|
|
52382
|
+
const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess', _1394 => _1394.firstName]), _optionalChain([identityUser, 'optionalAccess', _1395 => _1395.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([identityUser, 'optionalAccess', _1396 => _1396.name, 'optionalAccess', _1397 => _1397.trim, 'call', _1398 => _1398()]) || void 0 : void 0;
|
|
52383
|
+
const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess', _1399 => _1399.avatarUrl, 'optionalAccess', _1400 => _1400.trim, 'call', _1401 => _1401()]) || void 0 : void 0;
|
|
52801
52384
|
const messages = _react.useMemo.call(void 0, () => {
|
|
52802
52385
|
const cache = timestampCacheRef.current;
|
|
52803
52386
|
const seenIds = /* @__PURE__ */ new Set();
|
|
@@ -52977,9 +52560,9 @@ function EmbeddableChatInner({
|
|
|
52977
52560
|
const lastAssistantMsg = [...rawMessages].reverse().find((m) => m.role === "assistant");
|
|
52978
52561
|
const lastSources = _react.useMemo.call(void 0, () => {
|
|
52979
52562
|
if (chatLoading) return void 0;
|
|
52980
|
-
const sources = _optionalChain([lastAssistantMsg, 'optionalAccess',
|
|
52563
|
+
const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _1402 => _1402.sources]);
|
|
52981
52564
|
if (!sources || sources.length === 0) return void 0;
|
|
52982
|
-
const content = _optionalChain([lastAssistantMsg, 'optionalAccess',
|
|
52565
|
+
const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _1403 => _1403.content]) || "";
|
|
52983
52566
|
const citationOrder = [...content.matchAll(/\[(\d+)\]/g)].map(
|
|
52984
52567
|
(m) => parseInt(m[1], 10)
|
|
52985
52568
|
);
|
|
@@ -52998,7 +52581,7 @@ function EmbeddableChatInner({
|
|
|
52998
52581
|
const el = panelMeasureRef.current;
|
|
52999
52582
|
if (!el || typeof ResizeObserver === "undefined") return;
|
|
53000
52583
|
const ro = new ResizeObserver((entries) => {
|
|
53001
|
-
const w = _optionalChain([entries, 'access',
|
|
52584
|
+
const w = _optionalChain([entries, 'access', _1404 => _1404[0], 'optionalAccess', _1405 => _1405.contentRect, 'optionalAccess', _1406 => _1406.width]);
|
|
53002
52585
|
if (typeof w === "number") setPanelWidth(w);
|
|
53003
52586
|
});
|
|
53004
52587
|
ro.observe(el);
|
|
@@ -53037,7 +52620,7 @@ function EmbeddableChatInner({
|
|
|
53037
52620
|
const isMingoMode = activeMode === "mingo";
|
|
53038
52621
|
const stackedListView = isMingoMode && !hasConversation && !archiveOpen && !wideMingo && !composeOpen;
|
|
53039
52622
|
const headerShowBack = hasConversation || guideCanReturnToMingo;
|
|
53040
|
-
const headerTitle = hasConversation ? _optionalChain([activeDialog, 'optionalAccess',
|
|
52623
|
+
const headerTitle = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _1407 => _1407.title]) || "New Chat" : isGuideEmpty ? _nullishCoalesce(headerAssistantName, () => ( "Mingo Guide")) : "Current Chats";
|
|
53041
52624
|
const headerBackAriaLabel = hasConversation ? isViewingArchived ? "Back to archive" : "Back" : "Back to Mingo";
|
|
53042
52625
|
const headerOnBack = hasConversation ? handleBack : () => handleActiveModeChange("mingo");
|
|
53043
52626
|
const headerOnRestore = isViewingArchived && unarchiveDialog && activeDialog ? () => setRestoreTarget(activeDialog) : void 0;
|
|
@@ -53376,9 +52959,9 @@ function EmbeddableChatInner({
|
|
|
53376
52959
|
subtitle: _nullishCoalesce(effectiveGreeting, () => ( void 0)),
|
|
53377
52960
|
subtitleLoading: emptyStateLoading,
|
|
53378
52961
|
...guideWelcome,
|
|
53379
|
-
title: _nullishCoalesce(effectiveAssistantName, () => ( _optionalChain([guideWelcome, 'optionalAccess',
|
|
53380
|
-
icon: _nullishCoalesce(effectiveAssistantIcon, () => ( _optionalChain([guideWelcome, 'optionalAccess',
|
|
53381
|
-
quickActions: agentConfigUrl && guideSuggestedActions.length > 0 ? guideSuggestedActions : _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess',
|
|
52962
|
+
title: _nullishCoalesce(effectiveAssistantName, () => ( _optionalChain([guideWelcome, 'optionalAccess', _1408 => _1408.title]))),
|
|
52963
|
+
icon: _nullishCoalesce(effectiveAssistantIcon, () => ( _optionalChain([guideWelcome, 'optionalAccess', _1409 => _1409.icon]))),
|
|
52964
|
+
quickActions: agentConfigUrl && guideSuggestedActions.length > 0 ? guideSuggestedActions : _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess', _1410 => _1410.quickActions]), () => ( guideSuggestedActions)),
|
|
53382
52965
|
onQuickAction: (action) => {
|
|
53383
52966
|
setQuickActionPreview(null);
|
|
53384
52967
|
handleSend(_nullishCoalesce(action.prompt, () => ( action.label)));
|
|
@@ -54534,8 +54117,5 @@ function EmbeddableChatInner({
|
|
|
54534
54117
|
|
|
54535
54118
|
|
|
54536
54119
|
|
|
54537
|
-
|
|
54538
|
-
|
|
54539
|
-
|
|
54540
|
-
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.MingoHistoryRail = MingoHistoryRail; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.ChatHeaderSearchField = ChatHeaderSearchField; 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.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.useScriptedStream = useScriptedStream; 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.extractIncompleteMessageState = extractIncompleteMessageState; exports.appendToTrailingAssistant = appendToTrailingAssistant; exports.upsertTrailingCompaction = upsertTrailingCompaction; exports.applyToolExecutionToMessages = applyToolExecutionToMessages; exports.mapProcessedToUnified = mapProcessedToUnified; exports.historicalToUnified = historicalToUnified; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useUnifiedChat = useUnifiedChat; exports.SYNTHETIC_REALTIME_ID_PREFIXES = SYNTHETIC_REALTIME_ID_PREFIXES; exports.flattenMessagePagesChronological = flattenMessagePagesChronological; exports.maxPersistedStreamSeq = maxPersistedStreamSeq; exports.mergeHistoryWithRealtime = mergeHistoryWithRealtime; exports.computeHistoryPrepend = computeHistoryPrepend; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.clickupTaskUrl = clickupTaskUrl; exports.normalizeHistoricalMessageData = normalizeHistoricalMessageData; exports.isHistoricalUserTurn = isHistoricalUserTurn; exports.buildStreamFrames = buildStreamFrames; 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.SEO_DESCRIPTION_MAX_LENGTH = SEO_DESCRIPTION_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.BITE_ID_RE = BITE_ID_RE; exports.generateBiteId = generateBiteId; exports.ensureBiteIds = ensureBiteIds; exports.matchBiteElement = matchBiteElement; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.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.InfoCardRow = InfoCardRow; 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.TicketCardBody = TicketCardBody; exports.TicketCardView = TicketCardView; 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;
|
|
54541
|
-
//# sourceMappingURL=chunk-QL2EI56X.cjs.map
|
|
54120
|
+
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.MingoHistoryRail = MingoHistoryRail; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.ChatHeaderSearchField = ChatHeaderSearchField; 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.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.useScriptedStream = useScriptedStream; 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.mapProcessedToUnified = mapProcessedToUnified; exports.historicalToUnified = historicalToUnified; 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.normalizeHistoricalMessageData = normalizeHistoricalMessageData; exports.isHistoricalUserTurn = isHistoricalUserTurn; exports.buildStreamFrames = buildStreamFrames; 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.SEO_DESCRIPTION_MAX_LENGTH = SEO_DESCRIPTION_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.BITE_ID_RE = BITE_ID_RE; exports.generateBiteId = generateBiteId; exports.ensureBiteIds = ensureBiteIds; exports.matchBiteElement = matchBiteElement; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.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.InfoCardRow = InfoCardRow; 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.TicketCardBody = TicketCardBody; exports.TicketCardView = TicketCardView; 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;
|
|
54121
|
+
//# sourceMappingURL=chunk-4R3SVOKH.cjs.map
|