@flamingo-stack/openframe-frontend-core 0.0.444 → 0.0.445
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-DTMJWBDQ.js → chunk-22NSWMI6.js} +3 -3
- package/dist/{chunk-NDWIFCLS.js → chunk-3BHV2QAH.js} +555 -135
- package/dist/{chunk-NDWIFCLS.js.map → chunk-3BHV2QAH.js.map} +1 -1
- package/dist/{chunk-PMTR5W5G.js → chunk-3DQ5BFPM.js} +5 -5
- package/dist/{chunk-RALJEQWM.cjs → chunk-3HYSD7NR.cjs} +15 -15
- package/dist/{chunk-RALJEQWM.cjs.map → chunk-3HYSD7NR.cjs.map} +1 -1
- package/dist/{chunk-YP7VJPCJ.cjs → chunk-5DWPXK37.cjs} +40 -40
- package/dist/{chunk-YP7VJPCJ.cjs.map → chunk-5DWPXK37.cjs.map} +1 -1
- package/dist/{chunk-OXZLBIR7.cjs → chunk-5FUQTSTT.cjs} +18 -18
- package/dist/{chunk-OXZLBIR7.cjs.map → chunk-5FUQTSTT.cjs.map} +1 -1
- package/dist/{chunk-MG4AMIFX.js → chunk-5NYXGWBN.js} +2 -2
- package/dist/{chunk-LCJGOV6P.js → chunk-7R256DKK.js} +2 -2
- package/dist/{chunk-2PLNDTRG.cjs → chunk-DTLNCOSG.cjs} +32 -32
- package/dist/{chunk-2PLNDTRG.cjs.map → chunk-DTLNCOSG.cjs.map} +1 -1
- package/dist/{chunk-3SCNEGL2.js → chunk-FIAXFNAA.js} +5 -5
- package/dist/{chunk-FQASXKBK.js → chunk-G2KXNMFQ.js} +2 -2
- package/dist/{chunk-H7H3AFLF.js → chunk-H2DYCT6M.js} +2 -2
- package/dist/{chunk-CE3AITV2.js → chunk-H352AZJN.js} +6 -6
- package/dist/{chunk-DCDB3SM4.js → chunk-K4RASNQM.js} +3 -3
- package/dist/{chunk-WXU6A6CA.cjs → chunk-KISQUH33.cjs} +73 -73
- package/dist/{chunk-WXU6A6CA.cjs.map → chunk-KISQUH33.cjs.map} +1 -1
- package/dist/{chunk-BYTJNRJW.cjs → chunk-MPSA6YAM.cjs} +40 -40
- package/dist/{chunk-BYTJNRJW.cjs.map → chunk-MPSA6YAM.cjs.map} +1 -1
- package/dist/{chunk-ABIRMYG5.js → chunk-MQUS6BFR.js} +6 -6
- package/dist/{chunk-DSW6FIEF.cjs → chunk-N64VTHZ5.cjs} +7 -7
- package/dist/{chunk-DSW6FIEF.cjs.map → chunk-N64VTHZ5.cjs.map} +1 -1
- package/dist/{chunk-F6NMMPDL.cjs → chunk-P3FN4NAE.cjs} +29 -29
- package/dist/{chunk-F6NMMPDL.cjs.map → chunk-P3FN4NAE.cjs.map} +1 -1
- package/dist/{chunk-PHWQLKVE.js → chunk-P47NN7RY.js} +29 -31
- package/dist/chunk-P47NN7RY.js.map +1 -0
- package/dist/{chunk-2CJ734N2.cjs → chunk-PTT4J5GF.cjs} +3 -3
- package/dist/{chunk-2CJ734N2.cjs.map → chunk-PTT4J5GF.cjs.map} +1 -1
- package/dist/{chunk-4R3SVOKH.cjs → chunk-QL2EI56X.cjs} +797 -377
- package/dist/chunk-QL2EI56X.cjs.map +1 -0
- package/dist/{chunk-VI2QQIGR.cjs → chunk-R6WGCJBB.cjs} +73 -73
- package/dist/{chunk-VI2QQIGR.cjs.map → chunk-R6WGCJBB.cjs.map} +1 -1
- package/dist/{chunk-Q6XOEVPH.cjs → chunk-RXLMN6B5.cjs} +12 -12
- package/dist/{chunk-Q6XOEVPH.cjs.map → chunk-RXLMN6B5.cjs.map} +1 -1
- package/dist/{chunk-F2XHBAHT.js → chunk-TCEBFMLQ.js} +2 -2
- package/dist/{chunk-7CZ4MJSI.cjs → chunk-VIJARDBM.cjs} +3 -3
- package/dist/{chunk-7CZ4MJSI.cjs.map → chunk-VIJARDBM.cjs.map} +1 -1
- package/dist/{chunk-PXXS27EE.cjs → chunk-W24U7ZUV.cjs} +40 -42
- package/dist/chunk-W24U7ZUV.cjs.map +1 -0
- package/dist/{chunk-37ZZQXHK.js → chunk-XPZLIONZ.js} +4 -4
- package/dist/{chunk-FO4CI4R5.cjs → chunk-YCLSV2H6.cjs} +5 -5
- package/dist/{chunk-FO4CI4R5.cjs.map → chunk-YCLSV2H6.cjs.map} +1 -1
- package/dist/{chunk-U7U2CZBZ.js → chunk-Z4N7XLFG.js} +3 -3
- 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 +44 -1
- 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 +10 -4
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.js +9 -3
- 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 +142 -136
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +18 -12
- 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 +10 -4
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +9 -3
- package/dist/hooks/index.cjs +3 -3
- package/dist/hooks/index.js +2 -2
- package/dist/index.cjs +10 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +9 -3
- package/dist/nats/index.cjs +2 -2
- package/dist/nats/index.js +1 -1
- package/dist/nats/shared-connection.d.ts +6 -0
- package/dist/nats/shared-connection.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/chat/hooks/__tests__/nats-adapter-message-updaters.test.ts +270 -0
- package/src/components/chat/hooks/use-chunk-catchup.ts +212 -57
- package/src/components/chat/hooks/use-jetstream-dialog-subscription.ts +12 -8
- package/src/components/chat/hooks/use-nats-chat-adapter.ts +574 -9
- package/src/components/chat/hooks/use-nats-dialog-subscription.ts +12 -6
- package/src/components/chat/hooks/use-realtime-chunk-processor.ts +40 -3
- package/src/components/chat/utils/__tests__/process-historical-messages-approvals.test.ts +62 -0
- package/src/components/chat/utils/message-segment-accumulator.ts +6 -0
- package/src/components/chat/utils/process-historical-messages.ts +25 -3
- package/src/nats/shared-connection.ts +42 -29
- package/dist/chunk-4R3SVOKH.cjs.map +0 -1
- package/dist/chunk-PHWQLKVE.js.map +0 -1
- package/dist/chunk-PXXS27EE.cjs.map +0 -1
- /package/dist/{chunk-DTMJWBDQ.js.map → chunk-22NSWMI6.js.map} +0 -0
- /package/dist/{chunk-PMTR5W5G.js.map → chunk-3DQ5BFPM.js.map} +0 -0
- /package/dist/{chunk-MG4AMIFX.js.map → chunk-5NYXGWBN.js.map} +0 -0
- /package/dist/{chunk-LCJGOV6P.js.map → chunk-7R256DKK.js.map} +0 -0
- /package/dist/{chunk-3SCNEGL2.js.map → chunk-FIAXFNAA.js.map} +0 -0
- /package/dist/{chunk-FQASXKBK.js.map → chunk-G2KXNMFQ.js.map} +0 -0
- /package/dist/{chunk-H7H3AFLF.js.map → chunk-H2DYCT6M.js.map} +0 -0
- /package/dist/{chunk-CE3AITV2.js.map → chunk-H352AZJN.js.map} +0 -0
- /package/dist/{chunk-DCDB3SM4.js.map → chunk-K4RASNQM.js.map} +0 -0
- /package/dist/{chunk-ABIRMYG5.js.map → chunk-MQUS6BFR.js.map} +0 -0
- /package/dist/{chunk-F2XHBAHT.js.map → chunk-TCEBFMLQ.js.map} +0 -0
- /package/dist/{chunk-37ZZQXHK.js.map → chunk-XPZLIONZ.js.map} +0 -0
- /package/dist/{chunk-U7U2CZBZ.js.map → chunk-Z4N7XLFG.js.map} +0 -0
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
var
|
|
30
|
+
var _chunkVIJARDBMcjs = require('./chunk-VIJARDBM.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 _chunkW24U7ZUVcjs = require('./chunk-W24U7ZUV.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, _chunkVIJARDBMcjs.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, _chunkVIJARDBMcjs.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 = _chunkVIJARDBMcjs.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 = _chunkVIJARDBMcjs.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("#") && _chunkVIJARDBMcjs.navigateSamePageHash.call(void 0, target, { headerOffset: _chunkVIJARDBMcjs.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 = _chunkVIJARDBMcjs.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 = _chunkVIJARDBMcjs.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 } = _chunkVIJARDBMcjs.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 = _chunkVIJARDBMcjs.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 = _chunkVIJARDBMcjs.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(_chunkVIJARDBMcjs.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(_chunkVIJARDBMcjs.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 } = _chunkVIJARDBMcjs.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 = _chunkVIJARDBMcjs.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 = _chunkVIJARDBMcjs.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 = _chunkVIJARDBMcjs.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 _chunkVIJARDBMcjs.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 _chunkVIJARDBMcjs.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 = _chunkVIJARDBMcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _521 => _521.firstName]), firstName);
|
|
26252
|
+
const lastNameErr = _chunkVIJARDBMcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _522 => _522.lastName]), lastName);
|
|
26253
|
+
const passwordErr = _chunkVIJARDBMcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _523 => _523.password]), password);
|
|
26254
|
+
const confirmErr = _chunkVIJARDBMcjs.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 = _chunkVIJARDBMcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _525 => _525.email]), email);
|
|
26446
|
+
const orgNameErr = _chunkVIJARDBMcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _526 => _526.organizationName]), organizationName);
|
|
26447
|
+
const domainErr = _chunkVIJARDBMcjs.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 = _chunkVIJARDBMcjs.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 = _chunkVIJARDBMcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _537 => _537.email]), email);
|
|
26676
|
+
const passwordErr = _chunkVIJARDBMcjs.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 = _chunkVIJARDBMcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _539 => _539.email]), email);
|
|
26784
|
+
const firstNameErr = _chunkVIJARDBMcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _540 => _540.firstName]), firstName);
|
|
26785
|
+
const lastNameErr = _chunkVIJARDBMcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _541 => _541.lastName]), lastName);
|
|
26786
|
+
const passwordErr = _chunkVIJARDBMcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _542 => _542.password]), password);
|
|
26787
|
+
const confirmErr = _chunkVIJARDBMcjs.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 = _chunkVIJARDBMcjs.useDeferredError.call(void 0, _optionalChain([errors, 'optionalAccess', _544 => _544.password]), password);
|
|
26931
|
+
const confirmErr = _chunkVIJARDBMcjs.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 ? _chunkVIJARDBMcjs.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, _chunkVIJARDBMcjs.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 } = _chunkVIJARDBMcjs.useToast.call(void 0, );
|
|
32304
|
+
const { honeypotInputProps, getSignals, resetSignals } = _chunkVIJARDBMcjs.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", _chunkVIJARDBMcjs.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
|
+
_chunkVIJARDBMcjs.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 } = _chunkVIJARDBMcjs.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] = _chunkVIJARDBMcjs.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
|
+
} = _chunkVIJARDBMcjs.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
|
+
_chunkVIJARDBMcjs.useFocusTrap.call(void 0, panelRef, isOpen, { onEscape: config.onClose });
|
|
35424
|
+
const headerHeight = _chunkVIJARDBMcjs.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 = _chunkVIJARDBMcjs.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
|
+
_chunkVIJARDBMcjs.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
|
+
_chunkVIJARDBMcjs.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(_chunkVIJARDBMcjs.useMdUp.call(void 0, ), () => ( false));
|
|
36346
|
+
const isLgUp = _nullishCoalesce(_chunkVIJARDBMcjs.useLgUp.call(void 0, ), () => ( false));
|
|
36347
36347
|
const isTablet = isMdUp && !isLgUp;
|
|
36348
|
-
const [desktopMinimized, setDesktopMinimized] =
|
|
36348
|
+
const [desktopMinimized, setDesktopMinimized] = _chunkVIJARDBMcjs.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(_chunkVIJARDBMcjs.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
|
+
_chunkVIJARDBMcjs.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, _chunkVIJARDBMcjs.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
|
+
} = _chunkVIJARDBMcjs.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, _chunkVIJARDBMcjs.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 } = _chunkVIJARDBMcjs.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(_chunkVIJARDBMcjs.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
|
+
} = _chunkVIJARDBMcjs.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(_chunkVIJARDBMcjs.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 = _chunkVIJARDBMcjs.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
|
+
} = _chunkVIJARDBMcjs.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
|
+
} = _chunkVIJARDBMcjs.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 _chunkVIJARDBMcjs.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,8 +46956,10 @@ 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());
|
|
46959
46960
|
const fetchingInProgress = _react.useRef.call(void 0, false);
|
|
46960
46961
|
const lastFetchParams = _react.useRef.call(void 0, null);
|
|
46962
|
+
const pendingCatchupRef = _react.useRef.call(void 0, null);
|
|
46961
46963
|
const chunkBuffer = _react.useRef.call(void 0, []);
|
|
46962
46964
|
const bufferUntilInitialCatchupComplete = _react.useRef.call(void 0, false);
|
|
46963
46965
|
const hasCompletedInitialCatchup = _react.useRef.call(void 0, false);
|
|
@@ -46976,8 +46978,14 @@ function useChunkCatchup({
|
|
|
46976
46978
|
}
|
|
46977
46979
|
if (chunk.sequenceId !== void 0 && chunk.sequenceId !== null) {
|
|
46978
46980
|
const chunkType = typeof chunk.type === "string" ? chunk.type : "";
|
|
46979
|
-
|
|
46981
|
+
const key = makeSeqKey(messageType, chunkType, chunk.sequenceId);
|
|
46982
|
+
if (processedSequenceKeys.current.has(key)) return true;
|
|
46983
|
+
processedSequenceKeys.current.add(key);
|
|
46980
46984
|
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
|
+
}
|
|
46981
46989
|
}
|
|
46982
46990
|
onChunkReceivedRef.current(chunk, messageType);
|
|
46983
46991
|
return true;
|
|
@@ -46987,8 +46995,8 @@ function useChunkCatchup({
|
|
|
46987
46995
|
const buffered = [...chunkBuffer.current];
|
|
46988
46996
|
chunkBuffer.current = [];
|
|
46989
46997
|
buffered.sort((a, b) => {
|
|
46990
|
-
const seqA = _nullishCoalesce(a.chunk.sequenceId, () => (
|
|
46991
|
-
const seqB = _nullishCoalesce(b.chunk.sequenceId, () => (
|
|
46998
|
+
const seqA = _nullishCoalesce(a.chunk.sequenceId, () => ( Number.MAX_SAFE_INTEGER));
|
|
46999
|
+
const seqB = _nullishCoalesce(b.chunk.sequenceId, () => ( Number.MAX_SAFE_INTEGER));
|
|
46992
47000
|
return seqA - seqB;
|
|
46993
47001
|
});
|
|
46994
47002
|
buffered.forEach(({ chunk, messageType }) => {
|
|
@@ -47003,9 +47011,14 @@ function useChunkCatchup({
|
|
|
47003
47011
|
return;
|
|
47004
47012
|
}
|
|
47005
47013
|
if (hasCompletedInitialCatchup.current) {
|
|
47014
|
+
if (bufferUntilInitialCatchupComplete.current) {
|
|
47015
|
+
bufferUntilInitialCatchupComplete.current = false;
|
|
47016
|
+
flushBufferedRealtimeChunks();
|
|
47017
|
+
}
|
|
47006
47018
|
return;
|
|
47007
47019
|
}
|
|
47008
47020
|
if (fetchingInProgress.current) {
|
|
47021
|
+
pendingCatchupRef.current = { dialogId: dialogId2, fromSequenceId: _nullishCoalesce(fromSequenceId, () => ( lastSequenceId.current)) };
|
|
47009
47022
|
return;
|
|
47010
47023
|
}
|
|
47011
47024
|
if (lastFetchParams.current && lastFetchParams.current.dialogId === dialogId2 && lastFetchParams.current.fromSequenceId === fromSequenceId) {
|
|
@@ -47022,7 +47035,8 @@ function useChunkCatchup({
|
|
|
47022
47035
|
try {
|
|
47023
47036
|
const chunkPromises = chatTypes2.map(async (chatType) => {
|
|
47024
47037
|
try {
|
|
47025
|
-
const
|
|
47038
|
+
const typeFromSequenceId = fromSequenceId === void 0 ? void 0 : _nullishCoalesce(lastSequenceIdByType.current.get(getChatTypeMessageType(chatType)), () => ( null));
|
|
47039
|
+
const chunks = await fetchChunks2(dialogId2, chatType, typeFromSequenceId);
|
|
47026
47040
|
const messageType = getChatTypeMessageType(chatType);
|
|
47027
47041
|
return chunks.map((chunk) => ({ chunk, messageType }));
|
|
47028
47042
|
} catch (error) {
|
|
@@ -47042,49 +47056,66 @@ function useChunkCatchup({
|
|
|
47042
47056
|
chunkBuffer.current = [];
|
|
47043
47057
|
const allChunks = [...allCatchupChunks, ...bufferedNatsChunks];
|
|
47044
47058
|
allChunks.sort((a, b) => {
|
|
47045
|
-
const seqA = _nullishCoalesce(a.chunk.sequenceId, () => (
|
|
47046
|
-
const seqB = _nullishCoalesce(b.chunk.sequenceId, () => (
|
|
47059
|
+
const seqA = _nullishCoalesce(a.chunk.sequenceId, () => ( Number.MAX_SAFE_INTEGER));
|
|
47060
|
+
const seqB = _nullishCoalesce(b.chunk.sequenceId, () => ( Number.MAX_SAFE_INTEGER));
|
|
47047
47061
|
return seqA - seqB;
|
|
47048
47062
|
});
|
|
47049
47063
|
const uniqueAllChunks = [];
|
|
47050
47064
|
const seenInBatch = /* @__PURE__ */ new Set();
|
|
47051
47065
|
for (const item of allChunks) {
|
|
47052
|
-
const
|
|
47053
|
-
if (
|
|
47054
|
-
|
|
47055
|
-
|
|
47056
|
-
|
|
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;
|
|
47066
|
+
const hasSeq = item.chunk.sequenceId !== void 0 && item.chunk.sequenceId !== null;
|
|
47067
|
+
if (hasSeq) {
|
|
47068
|
+
const k = makeBatchDedupKey(item);
|
|
47069
|
+
if (seenInBatch.has(k)) continue;
|
|
47070
|
+
seenInBatch.add(k);
|
|
47064
47071
|
}
|
|
47072
|
+
uniqueAllChunks.push(item);
|
|
47065
47073
|
}
|
|
47066
|
-
|
|
47067
|
-
|
|
47068
|
-
|
|
47069
|
-
|
|
47070
|
-
|
|
47071
|
-
|
|
47074
|
+
const hasNoSeq = (item) => item.chunk.sequenceId === void 0 || item.chunk.sequenceId === null;
|
|
47075
|
+
const byType = /* @__PURE__ */ new Map();
|
|
47076
|
+
for (const item of uniqueAllChunks) {
|
|
47077
|
+
const list = byType.get(item.messageType);
|
|
47078
|
+
if (list) list.push(item);
|
|
47079
|
+
else byType.set(item.messageType, [item]);
|
|
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;
|
|
47072
47089
|
break;
|
|
47073
47090
|
}
|
|
47074
47091
|
}
|
|
47092
|
+
for (let i = items.length - 1; i >= 0; i--) {
|
|
47093
|
+
const chunk = items[i].chunk;
|
|
47094
|
+
const seq = chunk.sequenceId;
|
|
47095
|
+
if (chunk.type === MESSAGE_TYPE.MESSAGE_START && seq !== void 0 && seq !== null) {
|
|
47096
|
+
if (lastMessageEndSeqId === null || seq > lastMessageEndSeqId) {
|
|
47097
|
+
lastMessageStartSeqId = seq;
|
|
47098
|
+
break;
|
|
47099
|
+
}
|
|
47100
|
+
}
|
|
47101
|
+
}
|
|
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
|
+
}
|
|
47075
47113
|
}
|
|
47076
|
-
|
|
47077
|
-
|
|
47078
|
-
|
|
47079
|
-
|
|
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
|
-
}
|
|
47114
|
+
chunksToProcess.sort((a, b) => {
|
|
47115
|
+
const seqA = _nullishCoalesce(a.chunk.sequenceId, () => ( Number.MAX_SAFE_INTEGER));
|
|
47116
|
+
const seqB = _nullishCoalesce(b.chunk.sequenceId, () => ( Number.MAX_SAFE_INTEGER));
|
|
47117
|
+
return seqA - seqB;
|
|
47118
|
+
});
|
|
47088
47119
|
chunksToProcess.forEach(({ chunk, messageType }) => {
|
|
47089
47120
|
if (chunk.sequenceId !== void 0 && chunk.sequenceId !== null) {
|
|
47090
47121
|
const chunkType = typeof chunk.type === "string" ? chunk.type : "";
|
|
@@ -47092,6 +47123,10 @@ function useChunkCatchup({
|
|
|
47092
47123
|
if (processedSequenceKeys.current.has(key)) return;
|
|
47093
47124
|
processedSequenceKeys.current.add(key);
|
|
47094
47125
|
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
|
+
}
|
|
47095
47130
|
}
|
|
47096
47131
|
onChunkReceivedRef.current(chunk, messageType);
|
|
47097
47132
|
});
|
|
@@ -47100,26 +47135,55 @@ function useChunkCatchup({
|
|
|
47100
47135
|
} catch (error) {
|
|
47101
47136
|
console.error("Error during chunk catchup:", error);
|
|
47102
47137
|
} finally {
|
|
47103
|
-
|
|
47104
|
-
|
|
47105
|
-
|
|
47106
|
-
|
|
47107
|
-
|
|
47138
|
+
if (dialogId2 !== dialogIdRef.current) {
|
|
47139
|
+
if (_optionalChain([pendingCatchupRef, 'access', _1115 => _1115.current, 'optionalAccess', _1116 => _1116.dialogId]) === dialogId2) {
|
|
47140
|
+
pendingCatchupRef.current = null;
|
|
47141
|
+
}
|
|
47142
|
+
} else {
|
|
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
|
+
}
|
|
47108
47166
|
}
|
|
47109
47167
|
}
|
|
47110
47168
|
}, [flushBufferedRealtimeChunks]);
|
|
47169
|
+
const catchUpChunksRef = _react.useRef.call(void 0, null);
|
|
47170
|
+
catchUpChunksRef.current = catchUpChunks;
|
|
47111
47171
|
const resetChunkTracking = _react.useCallback.call(void 0, () => {
|
|
47112
47172
|
processedSequenceKeys.current.clear();
|
|
47113
47173
|
lastSequenceId.current = null;
|
|
47174
|
+
lastSequenceIdByType.current.clear();
|
|
47114
47175
|
fetchingInProgress.current = false;
|
|
47115
47176
|
lastFetchParams.current = null;
|
|
47177
|
+
pendingCatchupRef.current = null;
|
|
47116
47178
|
chunkBuffer.current = [];
|
|
47117
47179
|
bufferUntilInitialCatchupComplete.current = false;
|
|
47118
47180
|
hasCompletedInitialCatchup.current = false;
|
|
47119
47181
|
}, []);
|
|
47120
47182
|
const startInitialBuffering = _react.useCallback.call(void 0, () => {
|
|
47121
|
-
|
|
47122
|
-
|
|
47183
|
+
if (!bufferUntilInitialCatchupComplete.current) {
|
|
47184
|
+
chunkBuffer.current = [];
|
|
47185
|
+
bufferUntilInitialCatchupComplete.current = true;
|
|
47186
|
+
}
|
|
47123
47187
|
hasCompletedInitialCatchup.current = false;
|
|
47124
47188
|
}, []);
|
|
47125
47189
|
const isBufferingActive = _react.useCallback.call(void 0, () => bufferUntilInitialCatchupComplete.current, []);
|
|
@@ -47128,8 +47192,10 @@ function useChunkCatchup({
|
|
|
47128
47192
|
const fromSeq = lastSequenceId.current;
|
|
47129
47193
|
hasCompletedInitialCatchup.current = false;
|
|
47130
47194
|
lastFetchParams.current = null;
|
|
47131
|
-
bufferUntilInitialCatchupComplete.current
|
|
47132
|
-
|
|
47195
|
+
if (!bufferUntilInitialCatchupComplete.current) {
|
|
47196
|
+
chunkBuffer.current = [];
|
|
47197
|
+
bufferUntilInitialCatchupComplete.current = true;
|
|
47198
|
+
}
|
|
47133
47199
|
await catchUpChunks(fromSeq);
|
|
47134
47200
|
}, [catchUpChunks]);
|
|
47135
47201
|
return {
|
|
@@ -47147,7 +47213,7 @@ function useChunkCatchup({
|
|
|
47147
47213
|
|
|
47148
47214
|
var EMPTY_FRAME = { messages: [], phase: "idle", typing: false, delayMs: 0 };
|
|
47149
47215
|
function prefersReducedMotion() {
|
|
47150
|
-
return typeof window !== "undefined" && _optionalChain([window, 'access',
|
|
47216
|
+
return typeof window !== "undefined" && _optionalChain([window, 'access', _1119 => _1119.matchMedia, 'optionalCall', _1120 => _1120("(prefers-reduced-motion: reduce)"), 'access', _1121 => _1121.matches]) === true;
|
|
47151
47217
|
}
|
|
47152
47218
|
function useScriptedStream(frames, resetKey, enabled = true) {
|
|
47153
47219
|
const [index, setIndex] = _react.useState.call(void 0, 0);
|
|
@@ -47159,7 +47225,7 @@ function useScriptedStream(frames, resetKey, enabled = true) {
|
|
|
47159
47225
|
}
|
|
47160
47226
|
_react.useEffect.call(void 0, () => {
|
|
47161
47227
|
setReducedMotion(prefersReducedMotion());
|
|
47162
|
-
const mq = _optionalChain([window, 'access',
|
|
47228
|
+
const mq = _optionalChain([window, 'access', _1122 => _1122.matchMedia, 'optionalCall', _1123 => _1123("(prefers-reduced-motion: reduce)")]);
|
|
47163
47229
|
if (!mq) return;
|
|
47164
47230
|
const onChange = () => setReducedMotion(mq.matches);
|
|
47165
47231
|
mq.addEventListener("change", onChange);
|
|
@@ -47251,7 +47317,7 @@ function useJetStreamDialogSubscription({
|
|
|
47251
47317
|
_react.useEffect.call(void 0, () => {
|
|
47252
47318
|
if (!enabled || !wsUrl) {
|
|
47253
47319
|
if (currentWsUrlRef.current && clientRef.current) {
|
|
47254
|
-
|
|
47320
|
+
_chunkW24U7ZUVcjs.releaseClient.call(void 0, currentWsUrlRef.current);
|
|
47255
47321
|
clientRef.current = null;
|
|
47256
47322
|
currentWsUrlRef.current = "";
|
|
47257
47323
|
setIsConnected(false);
|
|
@@ -47262,13 +47328,13 @@ function useJetStreamDialogSubscription({
|
|
|
47262
47328
|
return;
|
|
47263
47329
|
}
|
|
47264
47330
|
if (currentWsUrlRef.current && currentWsUrlRef.current !== wsUrl && clientRef.current) {
|
|
47265
|
-
|
|
47331
|
+
_chunkW24U7ZUVcjs.releaseClient.call(void 0, currentWsUrlRef.current);
|
|
47266
47332
|
clientRef.current = null;
|
|
47267
47333
|
setIsConnected(false);
|
|
47268
47334
|
}
|
|
47269
47335
|
currentWsUrlRef.current = wsUrl;
|
|
47270
47336
|
const cfg = clientConfigRef.current;
|
|
47271
|
-
const sharedConn =
|
|
47337
|
+
const sharedConn = _chunkW24U7ZUVcjs.acquireClient.call(void 0, wsUrl, {
|
|
47272
47338
|
name: _nullishCoalesce(cfg.name, () => ( "openframe-frontend-jetstream")),
|
|
47273
47339
|
user: _nullishCoalesce(cfg.user, () => ( "machine")),
|
|
47274
47340
|
pass: _nullishCoalesce(cfg.pass, () => ( ""))
|
|
@@ -47285,10 +47351,10 @@ function useJetStreamDialogSubscription({
|
|
|
47285
47351
|
subscriptionRef.current = null;
|
|
47286
47352
|
}
|
|
47287
47353
|
};
|
|
47288
|
-
const lifecycle =
|
|
47354
|
+
const lifecycle = _chunkW24U7ZUVcjs.startConnectionLifecycle.call(void 0, {
|
|
47289
47355
|
conn: sharedConn,
|
|
47290
47356
|
wsUrl,
|
|
47291
|
-
onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access',
|
|
47357
|
+
onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _1124 => _1124.current, 'optionalCall', _1125 => _1125()]),
|
|
47292
47358
|
backoff: reconnectionBackoffRef.current,
|
|
47293
47359
|
getFreshUrl: () => getNatsWsUrlRef.current(),
|
|
47294
47360
|
// JetStream emits 'error' for protocol-level failures (e.g. -ERR Permissions
|
|
@@ -47303,7 +47369,7 @@ function useJetStreamDialogSubscription({
|
|
|
47303
47369
|
setReconnectionCount((c) => c + 1);
|
|
47304
47370
|
}
|
|
47305
47371
|
hadConnectionBeforeRef.current = true;
|
|
47306
|
-
_optionalChain([onConnectRef, 'access',
|
|
47372
|
+
_optionalChain([onConnectRef, 'access', _1126 => _1126.current, 'optionalCall', _1127 => _1127()]);
|
|
47307
47373
|
}
|
|
47308
47374
|
if (status === "error") {
|
|
47309
47375
|
console.warn("[JetStream] NATS protocol error:", evt.data);
|
|
@@ -47313,7 +47379,7 @@ function useJetStreamDialogSubscription({
|
|
|
47313
47379
|
setIsConnected(false);
|
|
47314
47380
|
setIsSubscribed(false);
|
|
47315
47381
|
tearDownSubscription();
|
|
47316
|
-
_optionalChain([onDisconnectRef, 'access',
|
|
47382
|
+
_optionalChain([onDisconnectRef, 'access', _1128 => _1128.current, 'optionalCall', _1129 => _1129()]);
|
|
47317
47383
|
}
|
|
47318
47384
|
}
|
|
47319
47385
|
});
|
|
@@ -47323,12 +47389,16 @@ function useJetStreamDialogSubscription({
|
|
|
47323
47389
|
setIsSubscribed(false);
|
|
47324
47390
|
tearDownSubscription();
|
|
47325
47391
|
if (clientRef.current && currentWsUrlRef.current) {
|
|
47326
|
-
|
|
47392
|
+
_chunkW24U7ZUVcjs.releaseClient.call(void 0, currentWsUrlRef.current);
|
|
47327
47393
|
clientRef.current = null;
|
|
47328
47394
|
currentWsUrlRef.current = "";
|
|
47329
47395
|
}
|
|
47330
47396
|
};
|
|
47331
47397
|
}, [enabled, wsUrl]);
|
|
47398
|
+
_react.useEffect.call(void 0, () => {
|
|
47399
|
+
highestStreamSeqRef.current = null;
|
|
47400
|
+
setCurrentStreamSeq(null);
|
|
47401
|
+
}, [dialogId]);
|
|
47332
47402
|
_react.useEffect.call(void 0, () => {
|
|
47333
47403
|
if (!enabled || !dialogId || !isConnected) {
|
|
47334
47404
|
if (subscriptionRef.current) {
|
|
@@ -47392,7 +47462,7 @@ function useJetStreamDialogSubscription({
|
|
|
47392
47462
|
}
|
|
47393
47463
|
subscriptionRef.current = handle;
|
|
47394
47464
|
setIsSubscribed(true);
|
|
47395
|
-
_optionalChain([onSubscribedRef, 'access',
|
|
47465
|
+
_optionalChain([onSubscribedRef, 'access', _1130 => _1130.current, 'optionalCall', _1131 => _1131()]);
|
|
47396
47466
|
} catch (e52) {
|
|
47397
47467
|
if (!cancelled) {
|
|
47398
47468
|
setIsSubscribed(false);
|
|
@@ -47412,10 +47482,6 @@ function useJetStreamDialogSubscription({
|
|
|
47412
47482
|
setIsSubscribed(false);
|
|
47413
47483
|
};
|
|
47414
47484
|
}, [enabled, dialogId, isConnected, streamName, topic, reconnectionCount]);
|
|
47415
|
-
_react.useEffect.call(void 0, () => {
|
|
47416
|
-
highestStreamSeqRef.current = null;
|
|
47417
|
-
setCurrentStreamSeq(null);
|
|
47418
|
-
}, [dialogId]);
|
|
47419
47485
|
return { isConnected, isSubscribed, reconnectionCount, currentStreamSeq };
|
|
47420
47486
|
}
|
|
47421
47487
|
|
|
@@ -47477,7 +47543,7 @@ function useNatsDialogSubscription({
|
|
|
47477
47543
|
_react.useEffect.call(void 0, () => {
|
|
47478
47544
|
if (!enabled || !wsUrl) {
|
|
47479
47545
|
if (currentWsUrlRef.current && clientRef.current) {
|
|
47480
|
-
|
|
47546
|
+
_chunkW24U7ZUVcjs.releaseClient.call(void 0, currentWsUrlRef.current);
|
|
47481
47547
|
clientRef.current = null;
|
|
47482
47548
|
currentWsUrlRef.current = "";
|
|
47483
47549
|
setIsConnected(false);
|
|
@@ -47488,13 +47554,13 @@ function useNatsDialogSubscription({
|
|
|
47488
47554
|
return;
|
|
47489
47555
|
}
|
|
47490
47556
|
if (currentWsUrlRef.current && currentWsUrlRef.current !== wsUrl && clientRef.current) {
|
|
47491
|
-
|
|
47557
|
+
_chunkW24U7ZUVcjs.releaseClient.call(void 0, currentWsUrlRef.current);
|
|
47492
47558
|
clientRef.current = null;
|
|
47493
47559
|
setIsConnected(false);
|
|
47494
47560
|
}
|
|
47495
47561
|
currentWsUrlRef.current = wsUrl;
|
|
47496
47562
|
const cfg = clientConfigRef.current;
|
|
47497
|
-
const sharedConn =
|
|
47563
|
+
const sharedConn = _chunkW24U7ZUVcjs.acquireClient.call(void 0, wsUrl, {
|
|
47498
47564
|
name: _nullishCoalesce(cfg.name, () => ( "openframe-frontend")),
|
|
47499
47565
|
user: _nullishCoalesce(cfg.user, () => ( "machine")),
|
|
47500
47566
|
pass: _nullishCoalesce(cfg.pass, () => ( ""))
|
|
@@ -47505,20 +47571,20 @@ function useNatsDialogSubscription({
|
|
|
47505
47571
|
const tearDownSubscriptions = () => {
|
|
47506
47572
|
subscriptionRefs.current.forEach((sub) => {
|
|
47507
47573
|
try {
|
|
47508
|
-
_optionalChain([sub, 'optionalAccess',
|
|
47574
|
+
_optionalChain([sub, 'optionalAccess', _1132 => _1132.unsubscribe, 'call', _1133 => _1133()]);
|
|
47509
47575
|
} catch (e54) {
|
|
47510
47576
|
}
|
|
47511
47577
|
});
|
|
47512
47578
|
subscriptionRefs.current.clear();
|
|
47513
47579
|
lastSubscribedDialogIdRef.current = null;
|
|
47514
|
-
_optionalChain([abortControllerRef, 'access',
|
|
47580
|
+
_optionalChain([abortControllerRef, 'access', _1134 => _1134.current, 'optionalAccess', _1135 => _1135.abort, 'call', _1136 => _1136()]);
|
|
47515
47581
|
abortControllerRef.current = null;
|
|
47516
47582
|
};
|
|
47517
47583
|
const isDisconnectStatus = (status) => status === "closed" || status === "disconnected";
|
|
47518
|
-
const lifecycle =
|
|
47584
|
+
const lifecycle = _chunkW24U7ZUVcjs.startConnectionLifecycle.call(void 0, {
|
|
47519
47585
|
conn: sharedConn,
|
|
47520
47586
|
wsUrl,
|
|
47521
|
-
onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access',
|
|
47587
|
+
onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _1137 => _1137.current, 'optionalCall', _1138 => _1138()]),
|
|
47522
47588
|
backoff: reconnectionBackoffRef.current,
|
|
47523
47589
|
getFreshUrl: () => getNatsWsUrlRef.current(),
|
|
47524
47590
|
shouldRetryOn: isDisconnectStatus,
|
|
@@ -47529,7 +47595,7 @@ function useNatsDialogSubscription({
|
|
|
47529
47595
|
setReconnectionCount((c) => c + 1);
|
|
47530
47596
|
}
|
|
47531
47597
|
hadConnectionBeforeRef.current = true;
|
|
47532
|
-
_optionalChain([onConnectRef, 'access',
|
|
47598
|
+
_optionalChain([onConnectRef, 'access', _1139 => _1139.current, 'optionalCall', _1140 => _1140()]);
|
|
47533
47599
|
}
|
|
47534
47600
|
if (status === "error") {
|
|
47535
47601
|
console.warn("[NATS] protocol error:", evt.data);
|
|
@@ -47539,7 +47605,7 @@ function useNatsDialogSubscription({
|
|
|
47539
47605
|
setIsConnected(false);
|
|
47540
47606
|
setIsSubscribed(false);
|
|
47541
47607
|
tearDownSubscriptions();
|
|
47542
|
-
_optionalChain([onDisconnectRef, 'access',
|
|
47608
|
+
_optionalChain([onDisconnectRef, 'access', _1141 => _1141.current, 'optionalCall', _1142 => _1142()]);
|
|
47543
47609
|
}
|
|
47544
47610
|
}
|
|
47545
47611
|
});
|
|
@@ -47549,13 +47615,15 @@ function useNatsDialogSubscription({
|
|
|
47549
47615
|
setIsSubscribed(false);
|
|
47550
47616
|
tearDownSubscriptions();
|
|
47551
47617
|
if (clientRef.current && currentWsUrlRef.current) {
|
|
47552
|
-
|
|
47618
|
+
_chunkW24U7ZUVcjs.releaseClient.call(void 0, currentWsUrlRef.current);
|
|
47553
47619
|
clientRef.current = null;
|
|
47554
47620
|
currentWsUrlRef.current = "";
|
|
47555
47621
|
}
|
|
47556
47622
|
};
|
|
47557
47623
|
}, [enabled, wsUrl]);
|
|
47558
47624
|
const topicsKey = topics.join(",");
|
|
47625
|
+
const topicsRef = _react.useRef.call(void 0, topics);
|
|
47626
|
+
topicsRef.current = topics;
|
|
47559
47627
|
const lastSubscribedDialogIdRef = _react.useRef.call(void 0, null);
|
|
47560
47628
|
const isConnectedRef = _react.useRef.call(void 0, isConnected);
|
|
47561
47629
|
_react.useEffect.call(void 0, () => {
|
|
@@ -47570,13 +47638,13 @@ function useNatsDialogSubscription({
|
|
|
47570
47638
|
setIsSubscribed(false);
|
|
47571
47639
|
subscriptionRefs.current.forEach((sub) => {
|
|
47572
47640
|
try {
|
|
47573
|
-
_optionalChain([sub, 'optionalAccess',
|
|
47641
|
+
_optionalChain([sub, 'optionalAccess', _1143 => _1143.unsubscribe, 'call', _1144 => _1144()]);
|
|
47574
47642
|
} catch (e55) {
|
|
47575
47643
|
}
|
|
47576
47644
|
});
|
|
47577
47645
|
subscriptionRefs.current.clear();
|
|
47578
47646
|
lastSubscribedDialogIdRef.current = null;
|
|
47579
|
-
_optionalChain([abortControllerRef, 'access',
|
|
47647
|
+
_optionalChain([abortControllerRef, 'access', _1145 => _1145.current, 'optionalAccess', _1146 => _1146.abort, 'call', _1147 => _1147()]);
|
|
47580
47648
|
abortControllerRef.current = null;
|
|
47581
47649
|
}
|
|
47582
47650
|
return;
|
|
@@ -47588,12 +47656,12 @@ function useNatsDialogSubscription({
|
|
|
47588
47656
|
if (subscriptionRefs.current.size > 0) {
|
|
47589
47657
|
subscriptionRefs.current.forEach((sub) => {
|
|
47590
47658
|
try {
|
|
47591
|
-
_optionalChain([sub, 'optionalAccess',
|
|
47659
|
+
_optionalChain([sub, 'optionalAccess', _1148 => _1148.unsubscribe, 'call', _1149 => _1149()]);
|
|
47592
47660
|
} catch (e56) {
|
|
47593
47661
|
}
|
|
47594
47662
|
});
|
|
47595
47663
|
subscriptionRefs.current.clear();
|
|
47596
|
-
_optionalChain([abortControllerRef, 'access',
|
|
47664
|
+
_optionalChain([abortControllerRef, 'access', _1150 => _1150.current, 'optionalAccess', _1151 => _1151.abort, 'call', _1152 => _1152()]);
|
|
47597
47665
|
}
|
|
47598
47666
|
abortControllerRef.current = new AbortController();
|
|
47599
47667
|
const abort = abortControllerRef.current;
|
|
@@ -47615,7 +47683,7 @@ function useNatsDialogSubscription({
|
|
|
47615
47683
|
} catch (e57) {
|
|
47616
47684
|
}
|
|
47617
47685
|
};
|
|
47618
|
-
|
|
47686
|
+
topicsRef.current.forEach((topic) => {
|
|
47619
47687
|
const subscription = client.subscribeBytes(
|
|
47620
47688
|
`chat.${dialogId}.${topic}`,
|
|
47621
47689
|
handleMessage(topic),
|
|
@@ -47625,7 +47693,7 @@ function useNatsDialogSubscription({
|
|
|
47625
47693
|
});
|
|
47626
47694
|
lastSubscribedDialogIdRef.current = dialogId;
|
|
47627
47695
|
setIsSubscribed(true);
|
|
47628
|
-
_optionalChain([onSubscribedRef, 'access',
|
|
47696
|
+
_optionalChain([onSubscribedRef, 'access', _1153 => _1153.current, 'optionalCall', _1154 => _1154()]);
|
|
47629
47697
|
};
|
|
47630
47698
|
if (isConnectedRef.current) {
|
|
47631
47699
|
createSubscriptions();
|
|
@@ -47635,7 +47703,7 @@ function useNatsDialogSubscription({
|
|
|
47635
47703
|
abort.abort();
|
|
47636
47704
|
subscriptionRefs.current.forEach((sub) => {
|
|
47637
47705
|
try {
|
|
47638
|
-
_optionalChain([sub, 'optionalAccess',
|
|
47706
|
+
_optionalChain([sub, 'optionalAccess', _1155 => _1155.unsubscribe, 'call', _1156 => _1156()]);
|
|
47639
47707
|
} catch (e58) {
|
|
47640
47708
|
}
|
|
47641
47709
|
});
|
|
@@ -47643,7 +47711,7 @@ function useNatsDialogSubscription({
|
|
|
47643
47711
|
lastSubscribedDialogIdRef.current = null;
|
|
47644
47712
|
abortControllerRef.current = null;
|
|
47645
47713
|
};
|
|
47646
|
-
}, [enabled, dialogId, topicsKey
|
|
47714
|
+
}, [enabled, dialogId, topicsKey]);
|
|
47647
47715
|
_react.useEffect.call(void 0, () => {
|
|
47648
47716
|
if (!enabled || !currentDialogIdRef.current || !isConnected) {
|
|
47649
47717
|
return;
|
|
@@ -47666,7 +47734,7 @@ function useNatsDialogSubscription({
|
|
|
47666
47734
|
} catch (e59) {
|
|
47667
47735
|
}
|
|
47668
47736
|
};
|
|
47669
|
-
|
|
47737
|
+
topicsRef.current.forEach((topic) => {
|
|
47670
47738
|
const subscription = client.subscribeBytes(
|
|
47671
47739
|
`chat.${dialogId2}.${topic}`,
|
|
47672
47740
|
handleMessage(topic),
|
|
@@ -47676,18 +47744,18 @@ function useNatsDialogSubscription({
|
|
|
47676
47744
|
});
|
|
47677
47745
|
lastSubscribedDialogIdRef.current = dialogId2;
|
|
47678
47746
|
setIsSubscribed(true);
|
|
47679
|
-
_optionalChain([onSubscribedRef, 'access',
|
|
47747
|
+
_optionalChain([onSubscribedRef, 'access', _1157 => _1157.current, 'optionalCall', _1158 => _1158()]);
|
|
47680
47748
|
} else if (subscriptionRefs.current.size > 0) {
|
|
47681
47749
|
setIsSubscribed(true);
|
|
47682
47750
|
}
|
|
47683
|
-
}, [isConnected, enabled,
|
|
47751
|
+
}, [isConnected, enabled, topicsKey]);
|
|
47684
47752
|
return { isConnected, isSubscribed, reconnectionCount };
|
|
47685
47753
|
}
|
|
47686
47754
|
function buildNatsWsUrl(apiBaseUrl, options) {
|
|
47687
|
-
const path = _optionalChain([options, 'optionalAccess',
|
|
47755
|
+
const path = _optionalChain([options, 'optionalAccess', _1159 => _1159.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
|
|
47688
47756
|
const u = new URL(path, apiBaseUrl);
|
|
47689
47757
|
u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
|
|
47690
|
-
if (_optionalChain([options, 'optionalAccess',
|
|
47758
|
+
if (_optionalChain([options, 'optionalAccess', _1160 => _1160.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _1161 => _1161.token])) {
|
|
47691
47759
|
u.searchParams.set("authorization", options.token);
|
|
47692
47760
|
}
|
|
47693
47761
|
return u.toString();
|
|
@@ -47823,7 +47891,7 @@ function parseChunkToAction(chunk) {
|
|
|
47823
47891
|
// is REQUIRED on `ChatContextItem`, so fall back to the id (same as the
|
|
47824
47892
|
// historical path in `process-historical-messages.ts`) — keeps both
|
|
47825
47893
|
// message sources producing an identical shape.
|
|
47826
|
-
contextItems: Array.isArray(data.contextItems) ? data.contextItems.filter((it) => typeof _optionalChain([it, 'optionalAccess',
|
|
47894
|
+
contextItems: Array.isArray(data.contextItems) ? data.contextItems.filter((it) => typeof _optionalChain([it, 'optionalAccess', _1162 => _1162.type]) === "string" && typeof _optionalChain([it, 'optionalAccess', _1163 => _1163.id]) === "string").map((it) => ({ type: it.type, id: it.id, label: it.id })) : void 0
|
|
47827
47895
|
};
|
|
47828
47896
|
case MESSAGE_TYPE.TOKEN_USAGE:
|
|
47829
47897
|
return {
|
|
@@ -48015,8 +48083,8 @@ var MessageSegmentAccumulator = class {
|
|
|
48015
48083
|
type: "tool_execution",
|
|
48016
48084
|
data: {
|
|
48017
48085
|
...toolData,
|
|
48018
|
-
toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess',
|
|
48019
|
-
parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess',
|
|
48086
|
+
toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _1164 => _1164.data, 'access', _1165 => _1165.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _1166 => _1166.toolTitle]))),
|
|
48087
|
+
parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _1167 => _1167.parameters])
|
|
48020
48088
|
}
|
|
48021
48089
|
};
|
|
48022
48090
|
if (existingIndex !== -1) {
|
|
@@ -48040,8 +48108,12 @@ var MessageSegmentAccumulator = class {
|
|
|
48040
48108
|
if (seg.type !== "approval_batch") return seg;
|
|
48041
48109
|
const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
|
|
48042
48110
|
if (!hasCall) return seg;
|
|
48043
|
-
const prev = _optionalChain([seg, 'access',
|
|
48044
|
-
|
|
48111
|
+
const prev = _optionalChain([seg, 'access', _1168 => _1168.data, 'access', _1169 => _1169.executions, 'optionalAccess', _1170 => _1170[execId]]);
|
|
48112
|
+
if (toolData.type === "EXECUTING_TOOL" && _optionalChain([prev, 'optionalAccess', _1171 => _1171.status]) === "done") {
|
|
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]) };
|
|
48045
48117
|
matched = true;
|
|
48046
48118
|
return {
|
|
48047
48119
|
...seg,
|
|
@@ -48163,10 +48235,10 @@ var MessageSegmentAccumulator = class {
|
|
|
48163
48235
|
const segment = {
|
|
48164
48236
|
type: "approval_request",
|
|
48165
48237
|
data: {
|
|
48166
|
-
command: _optionalChain([pendingApproval, 'optionalAccess',
|
|
48167
|
-
explanation: _optionalChain([pendingApproval, 'optionalAccess',
|
|
48238
|
+
command: _optionalChain([pendingApproval, 'optionalAccess', _1174 => _1174.command]) || "",
|
|
48239
|
+
explanation: _optionalChain([pendingApproval, 'optionalAccess', _1175 => _1175.explanation]),
|
|
48168
48240
|
requestId,
|
|
48169
|
-
approvalType: _optionalChain([pendingApproval, 'optionalAccess',
|
|
48241
|
+
approvalType: _optionalChain([pendingApproval, 'optionalAccess', _1176 => _1176.approvalType]) || approvalType
|
|
48170
48242
|
},
|
|
48171
48243
|
status,
|
|
48172
48244
|
onApprove: this.callbacks.onApprove,
|
|
@@ -48358,7 +48430,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48358
48430
|
if (initialState.escalatedApprovals) {
|
|
48359
48431
|
pendingEscalatedRef.current = new Map(initialState.escalatedApprovals);
|
|
48360
48432
|
initialState.escalatedApprovals.forEach((data, requestId) => {
|
|
48361
|
-
_optionalChain([callbacks, 'access',
|
|
48433
|
+
_optionalChain([callbacks, 'access', _1177 => _1177.onEscalatedApproval, 'optionalCall', _1178 => _1178(requestId, data)]);
|
|
48362
48434
|
});
|
|
48363
48435
|
}
|
|
48364
48436
|
hasEverStreamedRef.current = true;
|
|
@@ -48380,13 +48452,13 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48380
48452
|
if (!action) return;
|
|
48381
48453
|
const accumulator = accumulatorRef.current;
|
|
48382
48454
|
const streamSeq = chunk && typeof chunk === "object" && typeof chunk.streamSeq === "number" ? chunk.streamSeq : void 0;
|
|
48383
|
-
const emitSegments = (s, meta) => _optionalChain([callbacks, 'access',
|
|
48455
|
+
const emitSegments = (s, meta) => _optionalChain([callbacks, 'access', _1179 => _1179.onSegmentsUpdate, 'optionalCall', _1180 => _1180(s, streamSeq != null ? { ...meta, streamSeq } : meta)]);
|
|
48384
48456
|
if (action.action === "direct_message") sawDirectMessageRef.current = true;
|
|
48385
48457
|
if ((directModeFlagRef.current || sawDirectMessageRef.current) && !DIRECT_MODE_ALLOWED.has(action.action)) {
|
|
48386
48458
|
if (isInStreamRef.current || !directTeardownFiredRef.current) {
|
|
48387
48459
|
isInStreamRef.current = false;
|
|
48388
48460
|
directTeardownFiredRef.current = true;
|
|
48389
|
-
_optionalChain([callbacks, 'access',
|
|
48461
|
+
_optionalChain([callbacks, 'access', _1181 => _1181.onStreamEnd, 'optionalCall', _1182 => _1182()]);
|
|
48390
48462
|
accumulator.resetSegments();
|
|
48391
48463
|
}
|
|
48392
48464
|
return;
|
|
@@ -48395,16 +48467,16 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48395
48467
|
case "message_start":
|
|
48396
48468
|
isInStreamRef.current = true;
|
|
48397
48469
|
hasEverStreamedRef.current = true;
|
|
48398
|
-
_optionalChain([callbacks, 'access',
|
|
48470
|
+
_optionalChain([callbacks, 'access', _1183 => _1183.onStreamStart, 'optionalCall', _1184 => _1184()]);
|
|
48399
48471
|
accumulator.resetSegments();
|
|
48400
48472
|
break;
|
|
48401
48473
|
case "message_end":
|
|
48402
48474
|
isInStreamRef.current = false;
|
|
48403
|
-
_optionalChain([callbacks, 'access',
|
|
48475
|
+
_optionalChain([callbacks, 'access', _1185 => _1185.onStreamEnd, 'optionalCall', _1186 => _1186()]);
|
|
48404
48476
|
accumulator.resetSegments();
|
|
48405
48477
|
break;
|
|
48406
48478
|
case "metadata":
|
|
48407
|
-
_optionalChain([callbacks, 'access',
|
|
48479
|
+
_optionalChain([callbacks, 'access', _1187 => _1187.onMetadata, 'optionalCall', _1188 => _1188(action)]);
|
|
48408
48480
|
break;
|
|
48409
48481
|
case "text": {
|
|
48410
48482
|
const segments = accumulator.appendText(action.text);
|
|
@@ -48426,7 +48498,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48426
48498
|
}
|
|
48427
48499
|
case "tool_execution": {
|
|
48428
48500
|
if (action.segment.data.type === "EXECUTING_TOOL") {
|
|
48429
|
-
_optionalChain([callbacks, 'access',
|
|
48501
|
+
_optionalChain([callbacks, 'access', _1189 => _1189.onAgentBusy, 'optionalCall', _1190 => _1190()]);
|
|
48430
48502
|
}
|
|
48431
48503
|
if (!isInStreamRef.current && callbacks.onToolExecuted) {
|
|
48432
48504
|
callbacks.onToolExecuted(action.segment);
|
|
@@ -48450,7 +48522,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48450
48522
|
emitSegments(segments);
|
|
48451
48523
|
} else {
|
|
48452
48524
|
pendingEscalatedRef.current.set(requestId, { command, explanation, approvalType });
|
|
48453
|
-
_optionalChain([callbacks, 'access',
|
|
48525
|
+
_optionalChain([callbacks, 'access', _1191 => _1191.onEscalatedApproval, 'optionalCall', _1192 => _1192(requestId, { command, explanation, approvalType })]);
|
|
48454
48526
|
}
|
|
48455
48527
|
break;
|
|
48456
48528
|
}
|
|
@@ -48462,13 +48534,13 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48462
48534
|
const summary = required ? getCommandText(required) : `Batch of ${toolCalls.length} tool calls`;
|
|
48463
48535
|
pendingEscalatedRef.current.set(requestId, {
|
|
48464
48536
|
command: summary,
|
|
48465
|
-
explanation: _optionalChain([required, 'optionalAccess',
|
|
48537
|
+
explanation: _optionalChain([required, 'optionalAccess', _1193 => _1193.toolExplanation]),
|
|
48466
48538
|
approvalType,
|
|
48467
48539
|
toolCalls
|
|
48468
48540
|
});
|
|
48469
|
-
_optionalChain([callbacks, 'access',
|
|
48541
|
+
_optionalChain([callbacks, 'access', _1194 => _1194.onEscalatedApproval, 'optionalCall', _1195 => _1195(requestId, {
|
|
48470
48542
|
command: summary,
|
|
48471
|
-
explanation: _optionalChain([required, 'optionalAccess',
|
|
48543
|
+
explanation: _optionalChain([required, 'optionalAccess', _1196 => _1196.toolExplanation]),
|
|
48472
48544
|
approvalType
|
|
48473
48545
|
})]);
|
|
48474
48546
|
break;
|
|
@@ -48494,16 +48566,26 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48494
48566
|
}
|
|
48495
48567
|
case "approval_result": {
|
|
48496
48568
|
const { requestId, approved, approvalType, resolvedByName } = action;
|
|
48497
|
-
if (approved) _optionalChain([callbacks, 'access',
|
|
48569
|
+
if (approved) _optionalChain([callbacks, 'access', _1197 => _1197.onAgentBusy, 'optionalCall', _1198 => _1198()]);
|
|
48498
48570
|
const escalatedData = pendingEscalatedRef.current.get(requestId);
|
|
48499
48571
|
const status = approved ? "approved" : "rejected";
|
|
48500
48572
|
if (escalatedData) {
|
|
48501
48573
|
pendingEscalatedRef.current.delete(requestId);
|
|
48502
|
-
_optionalChain([callbacks, 'access',
|
|
48574
|
+
_optionalChain([callbacks, 'access', _1199 => _1199.onEscalatedApprovalResult, 'optionalCall', _1200 => _1200(requestId, approved, {
|
|
48503
48575
|
command: escalatedData.command,
|
|
48504
48576
|
explanation: escalatedData.explanation,
|
|
48505
48577
|
approvalType: escalatedData.approvalType
|
|
48506
48578
|
})]);
|
|
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
|
+
};
|
|
48507
48589
|
if (escalatedData.toolCalls && escalatedData.toolCalls.length > 0) {
|
|
48508
48590
|
if (batchApprovalsEnabled) {
|
|
48509
48591
|
const segments = accumulator.addApprovalBatch(
|
|
@@ -48514,7 +48596,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48514
48596
|
void 0,
|
|
48515
48597
|
resolvedByName
|
|
48516
48598
|
);
|
|
48517
|
-
|
|
48599
|
+
emitResolved(segments);
|
|
48518
48600
|
} else {
|
|
48519
48601
|
let segments = accumulator.getSegments();
|
|
48520
48602
|
for (const call of escalatedData.toolCalls) {
|
|
@@ -48527,7 +48609,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48527
48609
|
status
|
|
48528
48610
|
);
|
|
48529
48611
|
}
|
|
48530
|
-
|
|
48612
|
+
emitResolved(segments);
|
|
48531
48613
|
}
|
|
48532
48614
|
} else {
|
|
48533
48615
|
const segments = accumulator.addApprovalRequest(
|
|
@@ -48537,7 +48619,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48537
48619
|
escalatedData.approvalType,
|
|
48538
48620
|
status
|
|
48539
48621
|
);
|
|
48540
|
-
|
|
48622
|
+
emitResolved(segments);
|
|
48541
48623
|
}
|
|
48542
48624
|
} else {
|
|
48543
48625
|
accumulator.updateApprovalStatus(requestId, status, resolvedByName);
|
|
@@ -48545,29 +48627,29 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48545
48627
|
emitSegments(accumulator.getSegments());
|
|
48546
48628
|
}
|
|
48547
48629
|
}
|
|
48548
|
-
_optionalChain([callbacks, 'access',
|
|
48630
|
+
_optionalChain([callbacks, 'access', _1201 => _1201.onApprovalResolved, 'optionalCall', _1202 => _1202(requestId, status, approvalType, resolvedByName)]);
|
|
48549
48631
|
break;
|
|
48550
48632
|
}
|
|
48551
48633
|
case "error": {
|
|
48552
48634
|
let message2;
|
|
48553
|
-
if ("details" in action && _optionalChain([action, 'optionalAccess',
|
|
48635
|
+
if ("details" in action && _optionalChain([action, 'optionalAccess', _1203 => _1203.details])) {
|
|
48554
48636
|
try {
|
|
48555
|
-
message2 = _optionalChain([JSON, 'access',
|
|
48637
|
+
message2 = _optionalChain([JSON, 'access', _1204 => _1204.parse, 'call', _1205 => _1205(action.details), 'optionalAccess', _1206 => _1206.error, 'optionalAccess', _1207 => _1207.message]);
|
|
48556
48638
|
} catch (e60) {
|
|
48557
48639
|
message2 = action.details;
|
|
48558
48640
|
}
|
|
48559
48641
|
}
|
|
48560
48642
|
const segments = accumulator.addError(action.error, message2);
|
|
48561
48643
|
emitSegments(segments);
|
|
48562
|
-
_optionalChain([callbacks, 'access',
|
|
48644
|
+
_optionalChain([callbacks, 'access', _1208 => _1208.onError, 'optionalCall', _1209 => _1209(action.error, message2)]);
|
|
48563
48645
|
break;
|
|
48564
48646
|
}
|
|
48565
48647
|
case "system": {
|
|
48566
|
-
_optionalChain([callbacks, 'access',
|
|
48648
|
+
_optionalChain([callbacks, 'access', _1210 => _1210.onSystemMessage, 'optionalCall', _1211 => _1211(action.text, { streamSeq })]);
|
|
48567
48649
|
break;
|
|
48568
48650
|
}
|
|
48569
48651
|
case "direct_message": {
|
|
48570
|
-
_optionalChain([callbacks, 'access',
|
|
48652
|
+
_optionalChain([callbacks, 'access', _1212 => _1212.onDirectMessage, 'optionalCall', _1213 => _1213(action.text, {
|
|
48571
48653
|
ownerType: action.ownerType,
|
|
48572
48654
|
displayName: action.displayName,
|
|
48573
48655
|
userId: action.userId,
|
|
@@ -48576,7 +48658,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48576
48658
|
break;
|
|
48577
48659
|
}
|
|
48578
48660
|
case "message_request":
|
|
48579
|
-
_optionalChain([callbacks, 'access',
|
|
48661
|
+
_optionalChain([callbacks, 'access', _1214 => _1214.onUserMessage, 'optionalCall', _1215 => _1215(action.text, {
|
|
48580
48662
|
ownerType: action.ownerType,
|
|
48581
48663
|
displayName: action.displayName,
|
|
48582
48664
|
userId: action.userId,
|
|
@@ -48585,7 +48667,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48585
48667
|
})]);
|
|
48586
48668
|
break;
|
|
48587
48669
|
case "token_usage":
|
|
48588
|
-
_optionalChain([callbacks, 'access',
|
|
48670
|
+
_optionalChain([callbacks, 'access', _1216 => _1216.onTokenUsage, 'optionalCall', _1217 => _1217(action.data)]);
|
|
48589
48671
|
break;
|
|
48590
48672
|
case "context_compaction_start": {
|
|
48591
48673
|
const standalone = !isInStreamRef.current;
|
|
@@ -48600,7 +48682,7 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48600
48682
|
break;
|
|
48601
48683
|
}
|
|
48602
48684
|
case "dialog_closed":
|
|
48603
|
-
_optionalChain([callbacks, 'access',
|
|
48685
|
+
_optionalChain([callbacks, 'access', _1218 => _1218.onDialogClosed, 'optionalCall', _1219 => _1219()]);
|
|
48604
48686
|
break;
|
|
48605
48687
|
default:
|
|
48606
48688
|
break;
|
|
@@ -48617,6 +48699,8 @@ function useRealtimeChunkProcessor(options) {
|
|
|
48617
48699
|
hasInitializedWithData.current = false;
|
|
48618
48700
|
sawDirectMessageRef.current = false;
|
|
48619
48701
|
directTeardownFiredRef.current = false;
|
|
48702
|
+
isInStreamRef.current = false;
|
|
48703
|
+
hasEverStreamedRef.current = false;
|
|
48620
48704
|
}, []);
|
|
48621
48705
|
const updateApprovalStatus = _react.useCallback.call(void 0,
|
|
48622
48706
|
(requestId, status, resolvedByName) => {
|
|
@@ -48643,12 +48727,12 @@ async function fetchSlashCommands(prefix, signal, commandsUrl) {
|
|
|
48643
48727
|
try {
|
|
48644
48728
|
const url = new URL(commandsUrl, window.location.origin);
|
|
48645
48729
|
if (prefix) url.searchParams.set("q", prefix);
|
|
48646
|
-
const res = await
|
|
48730
|
+
const res = await _chunkVIJARDBMcjs.embedAuthedFetch.call(void 0, url.toString(), { signal, headers: {} });
|
|
48647
48731
|
if (!res.ok) return [];
|
|
48648
48732
|
const data = await res.json();
|
|
48649
48733
|
return _nullishCoalesce(data.commands, () => ( []));
|
|
48650
48734
|
} catch (err) {
|
|
48651
|
-
if (_optionalChain([err, 'optionalAccess',
|
|
48735
|
+
if (_optionalChain([err, 'optionalAccess', _1220 => _1220.name]) === "AbortError") throw err;
|
|
48652
48736
|
console.warn("[chat] slash-commands fetch failed, showing none:", err);
|
|
48653
48737
|
return [];
|
|
48654
48738
|
}
|
|
@@ -48669,7 +48753,7 @@ function useSlashCommands(prefix, commandsUrl) {
|
|
|
48669
48753
|
const next = await fetchSlashCommands(prefix, ctrl.signal, commandsUrl);
|
|
48670
48754
|
if (!cancelled) setCommands(next);
|
|
48671
48755
|
} catch (err) {
|
|
48672
|
-
if (!cancelled && _optionalChain([err, 'optionalAccess',
|
|
48756
|
+
if (!cancelled && _optionalChain([err, 'optionalAccess', _1221 => _1221.name]) !== "AbortError") {
|
|
48673
48757
|
console.warn("[use-slash-commands] fetch failed:", err);
|
|
48674
48758
|
}
|
|
48675
48759
|
} finally {
|
|
@@ -48688,7 +48772,7 @@ function useSlashCommandRegistry(commandsUrl, options) {
|
|
|
48688
48772
|
const query = _reactquery.useQuery.call(void 0, {
|
|
48689
48773
|
queryKey: ["chat-slash-commands", commandsUrl],
|
|
48690
48774
|
queryFn: ({ signal }) => fetchSlashCommands("", signal, commandsUrl),
|
|
48691
|
-
enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
48775
|
+
enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1222 => _1222.enabled]), () => ( true)),
|
|
48692
48776
|
staleTime: Infinity,
|
|
48693
48777
|
gcTime: Infinity,
|
|
48694
48778
|
// The commands registry is non-critical chrome — a failure degrades to an
|
|
@@ -48718,7 +48802,7 @@ var EMPTY_STATE_FALLBACK = {
|
|
|
48718
48802
|
async function fetchEmptyStateConfig(signal, emptyStateUrl) {
|
|
48719
48803
|
try {
|
|
48720
48804
|
const url = new URL(emptyStateUrl, window.location.origin);
|
|
48721
|
-
const res = await
|
|
48805
|
+
const res = await _chunkVIJARDBMcjs.embedAuthedFetch.call(void 0, url.toString(), { signal, headers: {} });
|
|
48722
48806
|
if (!res.ok) {
|
|
48723
48807
|
if (res.status >= 500) {
|
|
48724
48808
|
console.error(`[chat] empty-state config fetch failed (${res.status}): ${url.pathname}`);
|
|
@@ -48727,21 +48811,21 @@ async function fetchEmptyStateConfig(signal, emptyStateUrl) {
|
|
|
48727
48811
|
}
|
|
48728
48812
|
const data = await res.json();
|
|
48729
48813
|
return {
|
|
48730
|
-
name: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
48731
|
-
icon: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
48732
|
-
greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
48733
|
-
enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
48734
|
-
quickActions: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
48735
|
-
suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
48814
|
+
name: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1223 => _1223.name]), () => ( null)),
|
|
48815
|
+
icon: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1224 => _1224.icon]), () => ( null)),
|
|
48816
|
+
greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1225 => _1225.greeting]), () => ( null)),
|
|
48817
|
+
enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1226 => _1226.enabledRagTableIds]), () => ( [])),
|
|
48818
|
+
quickActions: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1227 => _1227.quickActions]), () => ( [])),
|
|
48819
|
+
suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _1228 => _1228.suggestedQueries]), () => ( []))
|
|
48736
48820
|
};
|
|
48737
48821
|
} catch (err) {
|
|
48738
|
-
if (_optionalChain([err, 'optionalAccess',
|
|
48822
|
+
if (_optionalChain([err, 'optionalAccess', _1229 => _1229.name]) === "AbortError") throw err;
|
|
48739
48823
|
console.warn("[chat] empty-state config fetch failed, using neutral defaults:", err);
|
|
48740
48824
|
return EMPTY_STATE_FALLBACK;
|
|
48741
48825
|
}
|
|
48742
48826
|
}
|
|
48743
48827
|
function useEmptyStateConfig(emptyStateUrl, options) {
|
|
48744
|
-
const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
48828
|
+
const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _1230 => _1230.enabled]), () => ( true))) && !!emptyStateUrl;
|
|
48745
48829
|
const query = _reactquery.useQuery.call(void 0, {
|
|
48746
48830
|
queryKey: ["chat-empty-state", emptyStateUrl],
|
|
48747
48831
|
queryFn: ({ signal }) => fetchEmptyStateConfig(signal, emptyStateUrl),
|
|
@@ -48770,7 +48854,7 @@ var CHAT_ATTACHMENT_MAX_SIZE_BYTES = 25 * 1024 * 1024;
|
|
|
48770
48854
|
var STORAGE_CACHE_CONTROL_IMMUTABLE = "public, max-age=31536000, immutable";
|
|
48771
48855
|
function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
48772
48856
|
return new Promise((resolve, reject) => {
|
|
48773
|
-
if (_optionalChain([signal, 'optionalAccess',
|
|
48857
|
+
if (_optionalChain([signal, 'optionalAccess', _1231 => _1231.aborted])) {
|
|
48774
48858
|
reject(new Error("Upload cancelled"));
|
|
48775
48859
|
return;
|
|
48776
48860
|
}
|
|
@@ -48784,7 +48868,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
|
48784
48868
|
xhr.removeEventListener("error", handleError);
|
|
48785
48869
|
xhr.removeEventListener("abort", handleAbort);
|
|
48786
48870
|
xhr.removeEventListener("timeout", handleTimeout);
|
|
48787
|
-
_optionalChain([signal, 'optionalAccess',
|
|
48871
|
+
_optionalChain([signal, 'optionalAccess', _1232 => _1232.removeEventListener, 'call', _1233 => _1233("abort", handleSignalAbort)]);
|
|
48788
48872
|
if (xhr.readyState !== XMLHttpRequest.DONE) xhr.abort();
|
|
48789
48873
|
};
|
|
48790
48874
|
const handleProgress = (event) => {
|
|
@@ -48820,7 +48904,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
|
48820
48904
|
const handleSignalAbort = () => {
|
|
48821
48905
|
xhr.abort();
|
|
48822
48906
|
};
|
|
48823
|
-
_optionalChain([signal, 'optionalAccess',
|
|
48907
|
+
_optionalChain([signal, 'optionalAccess', _1234 => _1234.addEventListener, 'call', _1235 => _1235("abort", handleSignalAbort, { once: true })]);
|
|
48824
48908
|
xhr.upload.addEventListener("progress", handleProgress);
|
|
48825
48909
|
xhr.addEventListener("load", handleLoad);
|
|
48826
48910
|
xhr.addEventListener("error", handleError);
|
|
@@ -48864,12 +48948,12 @@ function useChatAttachments() {
|
|
|
48864
48948
|
try {
|
|
48865
48949
|
sniffed = await _filetype.fileTypeFromBlob.call(void 0, att.file);
|
|
48866
48950
|
} catch (err) {
|
|
48867
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
48951
|
+
if (_optionalChain([ctrl, 'optionalAccess', _1236 => _1236.signal, 'access', _1237 => _1237.aborted])) return;
|
|
48868
48952
|
throw new Error(
|
|
48869
48953
|
`Could not read file content: ${err instanceof Error ? err.message : String(err)}`
|
|
48870
48954
|
);
|
|
48871
48955
|
}
|
|
48872
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
48956
|
+
if (_optionalChain([ctrl, 'optionalAccess', _1238 => _1238.signal, 'access', _1239 => _1239.aborted])) return;
|
|
48873
48957
|
if (!sniffed) {
|
|
48874
48958
|
throw new Error("Unrecognized file format");
|
|
48875
48959
|
}
|
|
@@ -48880,10 +48964,10 @@ function useChatAttachments() {
|
|
|
48880
48964
|
);
|
|
48881
48965
|
}
|
|
48882
48966
|
updateOne(att.id, { status: "uploading", progress: 5 });
|
|
48883
|
-
const urlResp = await
|
|
48967
|
+
const urlResp = await _chunkVIJARDBMcjs.embedAuthedFetch.call(void 0, uploadUrlEndpoint, {
|
|
48884
48968
|
method: "POST",
|
|
48885
48969
|
headers: { "Content-Type": "application/json" },
|
|
48886
|
-
signal: _optionalChain([ctrl, 'optionalAccess',
|
|
48970
|
+
signal: _optionalChain([ctrl, 'optionalAccess', _1240 => _1240.signal]),
|
|
48887
48971
|
body: JSON.stringify({
|
|
48888
48972
|
fileName: att.file.name,
|
|
48889
48973
|
// Pass the SNIFFED MIME (not `file.type`, which can be a
|
|
@@ -48909,9 +48993,9 @@ function useChatAttachments() {
|
|
|
48909
48993
|
(pct) => {
|
|
48910
48994
|
updateOne(att.id, { progress: pct });
|
|
48911
48995
|
},
|
|
48912
|
-
_optionalChain([ctrl, 'optionalAccess',
|
|
48996
|
+
_optionalChain([ctrl, 'optionalAccess', _1241 => _1241.signal])
|
|
48913
48997
|
);
|
|
48914
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
48998
|
+
if (_optionalChain([ctrl, 'optionalAccess', _1242 => _1242.signal, 'access', _1243 => _1243.aborted])) return;
|
|
48915
48999
|
updateOne(att.id, {
|
|
48916
49000
|
status: "ready",
|
|
48917
49001
|
progress: 100,
|
|
@@ -48919,7 +49003,7 @@ function useChatAttachments() {
|
|
|
48919
49003
|
viewToken: mintData.viewToken
|
|
48920
49004
|
});
|
|
48921
49005
|
} catch (err) {
|
|
48922
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
49006
|
+
if (_optionalChain([ctrl, 'optionalAccess', _1244 => _1244.signal, 'access', _1245 => _1245.aborted])) return;
|
|
48923
49007
|
const message2 = err instanceof Error ? err.message : String(err);
|
|
48924
49008
|
updateOne(att.id, { status: "error", progress: 0, errorMessage: message2 });
|
|
48925
49009
|
} finally {
|
|
@@ -49070,7 +49154,7 @@ var ANON_DEFAULTS = {
|
|
|
49070
49154
|
function useResolveChatIdentity(enabled) {
|
|
49071
49155
|
const runtime = _chunk2B6773QMcjs.useRequiredChatRuntime.call(void 0, );
|
|
49072
49156
|
const url = runtime.endpoints.identityUrl;
|
|
49073
|
-
const proxyEmail = _nullishCoalesce(_optionalChain([
|
|
49157
|
+
const proxyEmail = _nullishCoalesce(_optionalChain([_chunkVIJARDBMcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _1246 => _1246.email]), () => ( null));
|
|
49074
49158
|
const [data, setData] = _react.useState.call(void 0, ANON_DEFAULTS);
|
|
49075
49159
|
const [isLoading, setIsLoading] = _react.useState.call(void 0, enabled);
|
|
49076
49160
|
_react.useEffect.call(void 0, () => {
|
|
@@ -49078,7 +49162,7 @@ function useResolveChatIdentity(enabled) {
|
|
|
49078
49162
|
let cancelled = false;
|
|
49079
49163
|
const ctrl = new AbortController();
|
|
49080
49164
|
setIsLoading(true);
|
|
49081
|
-
|
|
49165
|
+
_chunkVIJARDBMcjs.embedAuthedFetch.call(void 0, url, { signal: ctrl.signal }).then(async (resp) => {
|
|
49082
49166
|
if (!resp.ok) return ANON_DEFAULTS;
|
|
49083
49167
|
return await resp.json();
|
|
49084
49168
|
}).then((next) => {
|
|
@@ -49161,7 +49245,7 @@ function useSSE({ useMock = true, debugMode = false, streamFn } = {}) {
|
|
|
49161
49245
|
yield chunk;
|
|
49162
49246
|
}
|
|
49163
49247
|
} catch (err) {
|
|
49164
|
-
if (_optionalChain([err, 'optionalAccess',
|
|
49248
|
+
if (_optionalChain([err, 'optionalAccess', _1247 => _1247.name]) === "AbortError" || ctrl.signal.aborted) {
|
|
49165
49249
|
return;
|
|
49166
49250
|
}
|
|
49167
49251
|
const errorMessage = err instanceof Error ? err.message : "An error occurred";
|
|
@@ -49212,7 +49296,7 @@ function useChat({
|
|
|
49212
49296
|
const onMessagesChangeRef = _react.useRef.call(void 0, onMessagesChange);
|
|
49213
49297
|
onMessagesChangeRef.current = onMessagesChange;
|
|
49214
49298
|
_react.useEffect.call(void 0, () => {
|
|
49215
|
-
_optionalChain([onMessagesChangeRef, 'access',
|
|
49299
|
+
_optionalChain([onMessagesChangeRef, 'access', _1248 => _1248.current, 'optionalCall', _1249 => _1249(messages)]);
|
|
49216
49300
|
}, [messages]);
|
|
49217
49301
|
const {
|
|
49218
49302
|
streamMessage,
|
|
@@ -49249,7 +49333,7 @@ function useChat({
|
|
|
49249
49333
|
name: "You",
|
|
49250
49334
|
content: text,
|
|
49251
49335
|
timestamp: /* @__PURE__ */ new Date(),
|
|
49252
|
-
..._optionalChain([options, 'optionalAccess',
|
|
49336
|
+
..._optionalChain([options, 'optionalAccess', _1250 => _1250.hidden]) ? { hidden: true } : {}
|
|
49253
49337
|
};
|
|
49254
49338
|
addMessage(userMessage);
|
|
49255
49339
|
setIsTyping(true);
|
|
@@ -49311,7 +49395,7 @@ function useChat({
|
|
|
49311
49395
|
currentTextSegment = "";
|
|
49312
49396
|
}
|
|
49313
49397
|
const seg = segment;
|
|
49314
|
-
const proposalId = _optionalChain([seg, 'access',
|
|
49398
|
+
const proposalId = _optionalChain([seg, 'access', _1251 => _1251.data, 'optionalAccess', _1252 => _1252.requestId]);
|
|
49315
49399
|
const updateApprovalMessage = (transform) => {
|
|
49316
49400
|
setMessages((prev) => {
|
|
49317
49401
|
for (let i = prev.length - 1; i >= 0; i--) {
|
|
@@ -49320,7 +49404,7 @@ function useChat({
|
|
|
49320
49404
|
if (!Array.isArray(m.content)) continue;
|
|
49321
49405
|
const segments = m.content;
|
|
49322
49406
|
const hasMatch = segments.some(
|
|
49323
|
-
(s) => s.type === "approval_request" && _optionalChain([s, 'access',
|
|
49407
|
+
(s) => s.type === "approval_request" && _optionalChain([s, 'access', _1253 => _1253.data, 'optionalAccess', _1254 => _1254.requestId]) === proposalId
|
|
49324
49408
|
);
|
|
49325
49409
|
if (!hasMatch) continue;
|
|
49326
49410
|
const next = [...prev];
|
|
@@ -49362,11 +49446,11 @@ function useChat({
|
|
|
49362
49446
|
if (!Array.isArray(m.content)) continue;
|
|
49363
49447
|
const segments = m.content;
|
|
49364
49448
|
const hasMatch = segments.some(
|
|
49365
|
-
(s) => s.type === "approval_request" && _optionalChain([s, 'access',
|
|
49449
|
+
(s) => s.type === "approval_request" && _optionalChain([s, 'access', _1255 => _1255.data, 'optionalAccess', _1256 => _1256.requestId]) === decision.proposalId
|
|
49366
49450
|
);
|
|
49367
49451
|
if (!hasMatch) continue;
|
|
49368
49452
|
const flipped = segments.map(
|
|
49369
|
-
(s) => s.type === "approval_request" && _optionalChain([s, 'access',
|
|
49453
|
+
(s) => s.type === "approval_request" && _optionalChain([s, 'access', _1257 => _1257.data, 'optionalAccess', _1258 => _1258.requestId]) === decision.proposalId ? { ...s, status: decision.action } : s
|
|
49370
49454
|
);
|
|
49371
49455
|
const next = [...prev];
|
|
49372
49456
|
next[i] = { ...m, content: flipped };
|
|
@@ -49528,8 +49612,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
49528
49612
|
})),
|
|
49529
49613
|
{ role: "user", content: message2 }
|
|
49530
49614
|
];
|
|
49531
|
-
const targetPath = _optionalChain([extra, 'optionalAccess',
|
|
49532
|
-
const requestBody = _optionalChain([extra, 'optionalAccess',
|
|
49615
|
+
const targetPath = _optionalChain([extra, 'optionalAccess', _1259 => _1259.approvalAction]) ? endpoints.approvalToolUrl : endpoints.chatStreamUrl;
|
|
49616
|
+
const requestBody = _optionalChain([extra, 'optionalAccess', _1260 => _1260.approvalAction]) ? {
|
|
49533
49617
|
proposal_id: extra.approvalAction.proposalId,
|
|
49534
49618
|
action: extra.approvalAction.action,
|
|
49535
49619
|
messages: currentMessages.filter((m) => (m.role === "user" || m.role === "assistant") && !m.hidden).map((m) => ({
|
|
@@ -49538,10 +49622,10 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
49538
49622
|
}))
|
|
49539
49623
|
} : {
|
|
49540
49624
|
messages: apiMessages,
|
|
49541
|
-
..._optionalChain([extra, 'optionalAccess',
|
|
49542
|
-
..._optionalChain([extra, 'optionalAccess',
|
|
49625
|
+
..._optionalChain([extra, 'optionalAccess', _1261 => _1261.commandOverride]) ? { commandOverride: extra.commandOverride } : {},
|
|
49626
|
+
..._optionalChain([extra, 'optionalAccess', _1262 => _1262.pendingAttachments]) && extra.pendingAttachments.length > 0 ? { pendingAttachments: extra.pendingAttachments } : {}
|
|
49543
49627
|
};
|
|
49544
|
-
const response = await
|
|
49628
|
+
const response = await _chunkVIJARDBMcjs.embedAuthedFetch.call(void 0, targetPath, {
|
|
49545
49629
|
method: "POST",
|
|
49546
49630
|
body: JSON.stringify(requestBody),
|
|
49547
49631
|
signal
|
|
@@ -49549,7 +49633,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
49549
49633
|
if (!response.ok) {
|
|
49550
49634
|
throw new Error(`Chat request failed: ${response.status}`);
|
|
49551
49635
|
}
|
|
49552
|
-
const reader = _optionalChain([response, 'access',
|
|
49636
|
+
const reader = _optionalChain([response, 'access', _1263 => _1263.body, 'optionalAccess', _1264 => _1264.getReader, 'call', _1265 => _1265()]);
|
|
49553
49637
|
if (!reader) throw new Error("No response body");
|
|
49554
49638
|
const decoder = new TextDecoder();
|
|
49555
49639
|
let buffer = "";
|
|
@@ -49632,7 +49716,7 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
49632
49716
|
const toolName = typeof meta.tool_name === "string" ? meta.tool_name : void 0;
|
|
49633
49717
|
const result = _nullishCoalesce(meta.result, () => ( null));
|
|
49634
49718
|
const card = _nullishCoalesce(meta.card, () => ( null));
|
|
49635
|
-
if (_optionalChain([card, 'optionalAccess',
|
|
49719
|
+
if (_optionalChain([card, 'optionalAccess', _1266 => _1266.ref, 'optionalAccess', _1267 => _1267.id]) && _optionalChain([card, 'optionalAccess', _1268 => _1268.type])) {
|
|
49636
49720
|
const existing = _nullishCoalesce(refsMapRef.current.get(sendIdx), () => ( {}));
|
|
49637
49721
|
const key = buildChatRefKey(card.type, card.ref.id);
|
|
49638
49722
|
refsMapRef.current.set(sendIdx, { ...existing, [key]: card.ref });
|
|
@@ -49645,8 +49729,8 @@ function createDocStreamFn(source, endpoints, messagesRef, sourcesMapRef, refsMa
|
|
|
49645
49729
|
willAutoContinue: meta.willAutoContinue === true,
|
|
49646
49730
|
...toolName ? { toolName } : {},
|
|
49647
49731
|
...result ? { result } : {},
|
|
49648
|
-
..._optionalChain([card, 'optionalAccess',
|
|
49649
|
-
..._optionalChain([card, 'optionalAccess',
|
|
49732
|
+
..._optionalChain([card, 'optionalAccess', _1269 => _1269.marker]) ? { marker: card.marker } : {},
|
|
49733
|
+
..._optionalChain([card, 'optionalAccess', _1270 => _1270.ref]) ? { cardRef: card.ref } : {},
|
|
49650
49734
|
...typeof meta.receiptText === "string" ? { receiptText: meta.receiptText } : {},
|
|
49651
49735
|
proposalId: typeof meta.proposalId === "string" ? meta.proposalId : void 0
|
|
49652
49736
|
};
|
|
@@ -49764,8 +49848,8 @@ var CHAT_STORAGE_VERSION = 1;
|
|
|
49764
49848
|
var DEFAULT_CHAT_SOURCE = "embed";
|
|
49765
49849
|
var chatStorageKey = (source) => {
|
|
49766
49850
|
const base = `mingo-chat-${source}-v${CHAT_STORAGE_VERSION}`;
|
|
49767
|
-
const auth =
|
|
49768
|
-
if (_optionalChain([auth, 'optionalAccess',
|
|
49851
|
+
const auth = _chunkVIJARDBMcjs.getEmbedProxyAuth.call(void 0, );
|
|
49852
|
+
if (_optionalChain([auth, 'optionalAccess', _1271 => _1271.email])) {
|
|
49769
49853
|
return `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}`;
|
|
49770
49854
|
}
|
|
49771
49855
|
return base;
|
|
@@ -49820,7 +49904,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
49820
49904
|
const { active = true } = runtimeOptions;
|
|
49821
49905
|
const runtime = _chunk2B6773QMcjs.useRequiredChatRuntime.call(void 0, );
|
|
49822
49906
|
const source = runtime.source || DEFAULT_CHAT_SOURCE;
|
|
49823
|
-
const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
49907
|
+
const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _1272 => _1272.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
|
|
49824
49908
|
const persistedRef = _react.useRef.call(void 0, null);
|
|
49825
49909
|
if (persistedRef.current === null) {
|
|
49826
49910
|
pruneStaleChatStorage(source);
|
|
@@ -49925,7 +50009,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
49925
50009
|
const lookupIdx = sendIdx >= 0 ? sendIdx : 0;
|
|
49926
50010
|
sources = sourcesMapRef.current.get(lookupIdx);
|
|
49927
50011
|
chatRefs = _nullishCoalesce(m.chatRefs, () => ( refsMapRef.current.get(lookupIdx)));
|
|
49928
|
-
scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access',
|
|
50012
|
+
scrollAnchor = _nullishCoalesce(_optionalChain([metaMapRef, 'access', _1273 => _1273.current, 'access', _1274 => _1274.get, 'call', _1275 => _1275(lookupIdx), 'optionalAccess', _1276 => _1276.scrollAnchor]), () => ( void 0));
|
|
49929
50013
|
}
|
|
49930
50014
|
return {
|
|
49931
50015
|
id: m.id,
|
|
@@ -49973,7 +50057,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
49973
50057
|
);
|
|
49974
50058
|
return;
|
|
49975
50059
|
}
|
|
49976
|
-
const refSlug = typeof _optionalChain([reference, 'access',
|
|
50060
|
+
const refSlug = typeof _optionalChain([reference, 'access', _1277 => _1277.metadata, 'optionalAccess', _1278 => _1278.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
|
|
49977
50061
|
const queryValue = refSlug || sanitizeTitleForChat(reference.title) || reference.id;
|
|
49978
50062
|
const escaped = queryValue.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
49979
50063
|
const text = `/${cmdId} display "${escaped}"`;
|
|
@@ -50045,18 +50129,18 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
50045
50129
|
clearMessages,
|
|
50046
50130
|
streamingPhase,
|
|
50047
50131
|
/** Provider key for the lib's `<ModelDisplay>` icon. */
|
|
50048
|
-
currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
50049
|
-
currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
50050
|
-
currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
50132
|
+
currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1279 => _1279.provider]), () => ( null)),
|
|
50133
|
+
currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1280 => _1280.modelLabel]), () => ( null)),
|
|
50134
|
+
currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1281 => _1281.contextWindowMaxTokens]), () => ( null)),
|
|
50051
50135
|
/** Input tokens (known after server's message_start frame; null until). */
|
|
50052
|
-
currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
50136
|
+
currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1282 => _1282.inputTokens]), () => ( null)),
|
|
50053
50137
|
/** Output tokens (known only after server's trailing usage frame). */
|
|
50054
|
-
currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
50138
|
+
currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1283 => _1283.outputTokens]), () => ( null)),
|
|
50055
50139
|
/** Cache hit % (read / total-input × 100). null during streaming. */
|
|
50056
|
-
currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
50140
|
+
currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1284 => _1284.cacheHitRatePct]), () => ( null)),
|
|
50057
50141
|
/** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
|
|
50058
50142
|
* token counts). null until the trailing usage frame lands. */
|
|
50059
|
-
currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
50143
|
+
currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _1285 => _1285.breakdown]), () => ( null)),
|
|
50060
50144
|
// ─── Dialog management — stubs for v1 ────────────────────────────────
|
|
50061
50145
|
// Guide mode currently keeps its history in `localStorage` opaquely
|
|
50062
50146
|
// under the hood (`runtime.source` namespaced key). Surfacing that
|
|
@@ -50114,15 +50198,15 @@ var noopRejectRequest = async (_id, _reason) => {
|
|
|
50114
50198
|
|
|
50115
50199
|
// src/components/chat/utils/process-historical-messages.ts
|
|
50116
50200
|
function getOwnerDisplayName(owner) {
|
|
50117
|
-
if (_optionalChain([owner, 'optionalAccess',
|
|
50201
|
+
if (_optionalChain([owner, 'optionalAccess', _1286 => _1286.type]) === OWNER_TYPE.ADMIN && owner.user) {
|
|
50118
50202
|
const { firstName, lastName } = owner.user;
|
|
50119
50203
|
const name = [firstName, lastName].filter(Boolean).join(" ");
|
|
50120
50204
|
if (name) return name;
|
|
50121
50205
|
}
|
|
50122
|
-
return _optionalChain([owner, 'optionalAccess',
|
|
50206
|
+
return _optionalChain([owner, 'optionalAccess', _1287 => _1287.type]) === OWNER_TYPE.ADMIN ? "Admin" : "You";
|
|
50123
50207
|
}
|
|
50124
50208
|
function getOwnerAvatar(owner) {
|
|
50125
|
-
return _nullishCoalesce(_optionalChain([owner, 'optionalAccess',
|
|
50209
|
+
return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _1288 => _1288.user, 'optionalAccess', _1289 => _1289.image, 'optionalAccess', _1290 => _1290.imageUrl]), () => ( void 0));
|
|
50126
50210
|
}
|
|
50127
50211
|
function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
|
|
50128
50212
|
messageDataArray.forEach((data) => {
|
|
@@ -50147,7 +50231,15 @@ function processHistoricalMessages(messages, options = {}) {
|
|
|
50147
50231
|
onReject,
|
|
50148
50232
|
chatTypeFilter,
|
|
50149
50233
|
approvalStatuses = {},
|
|
50150
|
-
|
|
50234
|
+
// An omitted option means "display every approval type" — the original
|
|
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
|
|
50151
50243
|
} = options;
|
|
50152
50244
|
const processedMessages = [];
|
|
50153
50245
|
const accumulator = createMessageSegmentAccumulator({ onApprove, onReject });
|
|
@@ -50185,14 +50277,14 @@ function processHistoricalMessages(messages, options = {}) {
|
|
|
50185
50277
|
pushStandaloneMessages(processedMessages, msg, messageDataArray);
|
|
50186
50278
|
return;
|
|
50187
50279
|
}
|
|
50188
|
-
const isUserMessage = _optionalChain([msg, 'access',
|
|
50280
|
+
const isUserMessage = _optionalChain([msg, 'access', _1291 => _1291.owner, 'optionalAccess', _1292 => _1292.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1293 => _1293.owner, 'optionalAccess', _1294 => _1294.type]) === OWNER_TYPE.ADMIN;
|
|
50189
50281
|
if (isUserMessage) {
|
|
50190
50282
|
flushAssistantMessage();
|
|
50191
|
-
const userAuthorType = _optionalChain([msg, 'access',
|
|
50283
|
+
const userAuthorType = _optionalChain([msg, 'access', _1295 => _1295.owner, 'optionalAccess', _1296 => _1296.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
|
|
50192
50284
|
messageDataArray.forEach((data) => {
|
|
50193
50285
|
if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
|
|
50194
50286
|
const rawContext = data.contextItems;
|
|
50195
|
-
const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess',
|
|
50287
|
+
const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _1297 => _1297.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _1298 => _1298.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
|
|
50196
50288
|
processedMessages.push({
|
|
50197
50289
|
id: msg.id,
|
|
50198
50290
|
role: "user",
|
|
@@ -50212,11 +50304,17 @@ function processHistoricalMessages(messages, options = {}) {
|
|
|
50212
50304
|
}
|
|
50213
50305
|
lastAssistantId = msg.id;
|
|
50214
50306
|
messageDataArray.forEach((data) => {
|
|
50215
|
-
processMessageData(
|
|
50307
|
+
processMessageData(
|
|
50308
|
+
data,
|
|
50309
|
+
accumulator,
|
|
50310
|
+
approvalStatuses,
|
|
50311
|
+
{ displayApprovalTypes, batchApprovalsEnabled },
|
|
50312
|
+
escalatedApprovals
|
|
50313
|
+
);
|
|
50216
50314
|
});
|
|
50217
50315
|
const nextMsg = messages[index + 1];
|
|
50218
50316
|
const isLastMessage = index === messages.length - 1;
|
|
50219
|
-
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access',
|
|
50317
|
+
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1299 => _1299.owner, 'optionalAccess', _1300 => _1300.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1301 => _1301.owner, 'optionalAccess', _1302 => _1302.type]) === OWNER_TYPE.ADMIN);
|
|
50220
50318
|
if (isLastMessage || nextIsFromUser) {
|
|
50221
50319
|
flushAssistantMessage();
|
|
50222
50320
|
}
|
|
@@ -50326,7 +50424,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
50326
50424
|
}
|
|
50327
50425
|
}
|
|
50328
50426
|
} else {
|
|
50329
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
50427
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _1303 => _1303.set, 'call', _1304 => _1304(data.approvalRequestId, {
|
|
50330
50428
|
command: data.command || "",
|
|
50331
50429
|
explanation: data.explanation,
|
|
50332
50430
|
approvalType,
|
|
@@ -50340,8 +50438,8 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
50340
50438
|
const existingStatus = approvalStatuses[data.approvalRequestId];
|
|
50341
50439
|
const status = existingStatus || (data.approved ? "approved" : "rejected");
|
|
50342
50440
|
const resolvedByName = "resolvedByName" in data ? data.resolvedByName : void 0;
|
|
50343
|
-
const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess',
|
|
50344
|
-
if (_optionalChain([escalatedData, 'optionalAccess',
|
|
50441
|
+
const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _1305 => _1305.get, 'call', _1306 => _1306(data.approvalRequestId)]);
|
|
50442
|
+
if (_optionalChain([escalatedData, 'optionalAccess', _1307 => _1307.toolCalls]) && escalatedData.toolCalls.length > 0) {
|
|
50345
50443
|
if (batchApprovalsEnabled) {
|
|
50346
50444
|
accumulator.addApprovalBatch(
|
|
50347
50445
|
data.approvalRequestId,
|
|
@@ -50363,7 +50461,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
50363
50461
|
);
|
|
50364
50462
|
}
|
|
50365
50463
|
}
|
|
50366
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
50464
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _1308 => _1308.delete, 'call', _1309 => _1309(data.approvalRequestId)]);
|
|
50367
50465
|
break;
|
|
50368
50466
|
}
|
|
50369
50467
|
if (escalatedData) {
|
|
@@ -50372,7 +50470,7 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
50372
50470
|
explanation: escalatedData.explanation,
|
|
50373
50471
|
approvalType: escalatedData.approvalType
|
|
50374
50472
|
});
|
|
50375
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
50473
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _1310 => _1310.delete, 'call', _1311 => _1311(data.approvalRequestId)]);
|
|
50376
50474
|
}
|
|
50377
50475
|
const before = accumulator.getSegments();
|
|
50378
50476
|
const after = accumulator.updateApprovalStatus(data.approvalRequestId, status, resolvedByName);
|
|
@@ -50388,9 +50486,9 @@ function processMessageData(data, accumulator, approvalStatuses, options = {}, e
|
|
|
50388
50486
|
case MESSAGE_TYPE.ERROR:
|
|
50389
50487
|
if ("error" in data) {
|
|
50390
50488
|
let message2;
|
|
50391
|
-
if ("details" in data && _optionalChain([data, 'optionalAccess',
|
|
50489
|
+
if ("details" in data && _optionalChain([data, 'optionalAccess', _1312 => _1312.details])) {
|
|
50392
50490
|
try {
|
|
50393
|
-
message2 = _optionalChain([JSON, 'access',
|
|
50491
|
+
message2 = _optionalChain([JSON, 'access', _1313 => _1313.parse, 'call', _1314 => _1314(data.details), 'optionalAccess', _1315 => _1315.error, 'optionalAccess', _1316 => _1316.message]);
|
|
50394
50492
|
} catch (e67) {
|
|
50395
50493
|
message2 = data.details;
|
|
50396
50494
|
}
|
|
@@ -50436,7 +50534,7 @@ function extractErrorMessages(messages, options = {}) {
|
|
|
50436
50534
|
return errorMessages;
|
|
50437
50535
|
}
|
|
50438
50536
|
function processHistoricalMessagesWithErrors(messages, options = {}) {
|
|
50439
|
-
const { chatTypeFilter, assistantName = "Fae", assistantType = "fae", assistantAvatar, onApprove, onReject, approvalStatuses = {}, displayApprovalTypes } = options;
|
|
50537
|
+
const { chatTypeFilter, assistantName = "Fae", assistantType = "fae", assistantAvatar, onApprove, onReject, approvalStatuses = {}, displayApprovalTypes, batchApprovalsEnabled } = options;
|
|
50440
50538
|
const processedMessages = [];
|
|
50441
50539
|
const accumulator = createMessageSegmentAccumulator({ onApprove, onReject });
|
|
50442
50540
|
const escalatedApprovals = /* @__PURE__ */ new Map();
|
|
@@ -50473,14 +50571,14 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
|
|
|
50473
50571
|
pushStandaloneMessages(processedMessages, msg, messageDataArray);
|
|
50474
50572
|
return;
|
|
50475
50573
|
}
|
|
50476
|
-
const isUserMessage = _optionalChain([msg, 'access',
|
|
50574
|
+
const isUserMessage = _optionalChain([msg, 'access', _1317 => _1317.owner, 'optionalAccess', _1318 => _1318.type]) === OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _1319 => _1319.owner, 'optionalAccess', _1320 => _1320.type]) === OWNER_TYPE.ADMIN;
|
|
50477
50575
|
if (isUserMessage) {
|
|
50478
50576
|
flushAssistantMessage();
|
|
50479
|
-
const userAuthorType = _optionalChain([msg, 'access',
|
|
50577
|
+
const userAuthorType = _optionalChain([msg, 'access', _1321 => _1321.owner, 'optionalAccess', _1322 => _1322.type]) === OWNER_TYPE.ADMIN ? "admin" : "user";
|
|
50480
50578
|
messageDataArray.forEach((data) => {
|
|
50481
50579
|
if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
|
|
50482
50580
|
const rawContext = data.contextItems;
|
|
50483
|
-
const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess',
|
|
50581
|
+
const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _1323 => _1323.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _1324 => _1324.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
|
|
50484
50582
|
processedMessages.push({
|
|
50485
50583
|
id: msg.id,
|
|
50486
50584
|
role: "user",
|
|
@@ -50500,11 +50598,17 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
|
|
|
50500
50598
|
}
|
|
50501
50599
|
lastAssistantId = msg.id;
|
|
50502
50600
|
messageDataArray.forEach((data) => {
|
|
50503
|
-
processMessageData(
|
|
50601
|
+
processMessageData(
|
|
50602
|
+
data,
|
|
50603
|
+
accumulator,
|
|
50604
|
+
approvalStatuses,
|
|
50605
|
+
{ displayApprovalTypes, batchApprovalsEnabled },
|
|
50606
|
+
escalatedApprovals
|
|
50607
|
+
);
|
|
50504
50608
|
});
|
|
50505
50609
|
const nextMsg = messages[index + 1];
|
|
50506
50610
|
const isLastMessage = index === messages.length - 1;
|
|
50507
|
-
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access',
|
|
50611
|
+
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _1325 => _1325.owner, 'optionalAccess', _1326 => _1326.type]) === OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _1327 => _1327.owner, 'optionalAccess', _1328 => _1328.type]) === OWNER_TYPE.ADMIN);
|
|
50508
50612
|
if (isLastMessage || nextIsFromUser) {
|
|
50509
50613
|
flushAssistantMessage();
|
|
50510
50614
|
}
|
|
@@ -50529,6 +50633,65 @@ function processHistoricalMessagesWithErrors(messages, options = {}) {
|
|
|
50529
50633
|
};
|
|
50530
50634
|
}
|
|
50531
50635
|
|
|
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
|
+
|
|
50532
50695
|
// src/components/chat/hooks/use-nats-chat-adapter.ts
|
|
50533
50696
|
function nextId(role) {
|
|
50534
50697
|
return `${role}-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`;
|
|
@@ -50551,6 +50714,110 @@ function updateTrailingAssistant(prev, segments) {
|
|
|
50551
50714
|
{ ...last, segments }
|
|
50552
50715
|
];
|
|
50553
50716
|
}
|
|
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
|
+
}
|
|
50554
50821
|
function mapProcessedToUnified(processed) {
|
|
50555
50822
|
const out = [];
|
|
50556
50823
|
for (const m of processed) {
|
|
@@ -50590,6 +50857,7 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
50590
50857
|
fetchChunks,
|
|
50591
50858
|
topics,
|
|
50592
50859
|
batchApprovalsEnabled,
|
|
50860
|
+
displayApprovalTypes,
|
|
50593
50861
|
fetchDialogs,
|
|
50594
50862
|
fetchDialogMessages,
|
|
50595
50863
|
createDialog: createDialogCallback,
|
|
@@ -50609,11 +50877,17 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
50609
50877
|
const isManagedMode = fetchDialogs !== void 0;
|
|
50610
50878
|
const [internalDialogId, setInternalDialogId] = _react.useState.call(void 0, null);
|
|
50611
50879
|
const dialogId = isManagedMode ? internalDialogId : controlledDialogId !== void 0 ? controlledDialogId : null;
|
|
50880
|
+
const currentDialogIdRef = _react.useRef.call(void 0, dialogId);
|
|
50881
|
+
currentDialogIdRef.current = dialogId;
|
|
50612
50882
|
const [messages, setMessages] = _react.useState.call(void 0, []);
|
|
50613
50883
|
const [streamingPhase, setStreamingPhase] = _react.useState.call(void 0, "idle");
|
|
50614
50884
|
const streamingPhaseRef = _react.useRef.call(void 0, streamingPhase);
|
|
50615
50885
|
streamingPhaseRef.current = streamingPhase;
|
|
50616
|
-
const suppressAgentBusyRef = _react.useRef.call(void 0,
|
|
50886
|
+
const suppressAgentBusyRef = _react.useRef.call(void 0, 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, []);
|
|
50617
50891
|
const [approvalStatuses, setApprovalStatuses] = _react.useState.call(void 0, {});
|
|
50618
50892
|
const [dialogs, setDialogs] = _react.useState.call(void 0, []);
|
|
50619
50893
|
const [dialogsNextCursor, setDialogsNextCursor] = _react.useState.call(void 0, null);
|
|
@@ -50679,17 +50953,39 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
50679
50953
|
return handleRejectRef.current(requestId);
|
|
50680
50954
|
}, []);
|
|
50681
50955
|
const callbacksRef = _react.useRef.call(void 0, {
|
|
50682
|
-
onSegmentsUpdate: (segments) => {
|
|
50956
|
+
onSegmentsUpdate: (segments, meta) => {
|
|
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
|
+
}
|
|
50683
50965
|
setMessages((prev) => updateTrailingAssistant(prev, segments));
|
|
50684
50966
|
},
|
|
50685
|
-
onStreamStart: () =>
|
|
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
|
+
},
|
|
50686
50982
|
onStreamEnd: () => setStreamingPhase("idle"),
|
|
50687
50983
|
// Agent is executing (approved) commands outside an open stream — keep
|
|
50688
50984
|
// the composer locked exactly like the in-stream phases. An open stream
|
|
50689
50985
|
// keeps ownership: only 'idle' upgrades to 'thinking'. Suppressed during
|
|
50690
50986
|
// initial catchup so a replayed dead tail can't lock a finished dialog.
|
|
50691
50987
|
onAgentBusy: () => {
|
|
50692
|
-
if (suppressAgentBusyRef.current) return;
|
|
50988
|
+
if (suppressAgentBusyRef.current > 0) return;
|
|
50693
50989
|
setStreamingPhase((p) => p === "idle" ? "thinking" : p);
|
|
50694
50990
|
},
|
|
50695
50991
|
// Terminal turn failures can arrive without a MESSAGE_END; unlock the
|
|
@@ -50704,27 +51000,171 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
50704
51000
|
provider: meta.providerName || null,
|
|
50705
51001
|
modelLabel: meta.modelDisplayName || meta.modelName || null,
|
|
50706
51002
|
contextWindowMaxTokens: meta.contextWindow || null
|
|
50707
|
-
})
|
|
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
|
+
}
|
|
50708
51139
|
});
|
|
50709
51140
|
const { processChunk, reset: resetAccumulator } = useRealtimeChunkProcessor({
|
|
50710
51141
|
callbacks: {
|
|
50711
|
-
onSegmentsUpdate: (segments) => callbacksRef.current.onSegmentsUpdate(segments),
|
|
51142
|
+
onSegmentsUpdate: (segments, meta) => callbacksRef.current.onSegmentsUpdate(segments, meta),
|
|
50712
51143
|
onStreamStart: () => callbacksRef.current.onStreamStart(),
|
|
50713
51144
|
onStreamEnd: () => callbacksRef.current.onStreamEnd(),
|
|
50714
51145
|
onAgentBusy: () => callbacksRef.current.onAgentBusy(),
|
|
50715
51146
|
onError: () => callbacksRef.current.onError(),
|
|
50716
51147
|
onTokenUsage: (data) => callbacksRef.current.onTokenUsage(data),
|
|
50717
51148
|
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),
|
|
50718
51154
|
onApprove: accumApprove,
|
|
50719
51155
|
onReject: accumReject
|
|
50720
51156
|
},
|
|
50721
|
-
batchApprovalsEnabled
|
|
51157
|
+
batchApprovalsEnabled,
|
|
51158
|
+
approvalStatuses,
|
|
51159
|
+
...displayApprovalTypes ? { displayApprovalTypes } : {}
|
|
50722
51160
|
});
|
|
50723
51161
|
const {
|
|
50724
51162
|
processChunk: catchupProcessChunk,
|
|
50725
51163
|
catchUpChunks,
|
|
50726
51164
|
startInitialBuffering,
|
|
50727
|
-
resetChunkTracking
|
|
51165
|
+
resetChunkTracking,
|
|
51166
|
+
resetAndCatchUp,
|
|
51167
|
+
isBufferingActive
|
|
50728
51168
|
} = useChunkCatchup({
|
|
50729
51169
|
dialogId: active ? dialogId : null,
|
|
50730
51170
|
onChunkReceived: (chunk) => processChunk(chunk),
|
|
@@ -50753,11 +51193,13 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
50753
51193
|
onApprove: accumApprove,
|
|
50754
51194
|
onReject: accumReject,
|
|
50755
51195
|
approvalStatuses,
|
|
50756
|
-
batchApprovalsEnabled
|
|
51196
|
+
batchApprovalsEnabled,
|
|
51197
|
+
...displayApprovalTypes ? { displayApprovalTypes } : {}
|
|
50757
51198
|
}
|
|
50758
51199
|
);
|
|
50759
51200
|
const unified = mapProcessedToUnified(rawProcessed);
|
|
50760
51201
|
if (cursor === void 0) {
|
|
51202
|
+
adoptTrailingAssistantRef.current = isBufferingActive() && extractIncompleteMessageState(rawProcessed[rawProcessed.length - 1]) !== void 0;
|
|
50761
51203
|
setMessages(unified);
|
|
50762
51204
|
} else {
|
|
50763
51205
|
setMessages((prev) => [...unified, ...prev]);
|
|
@@ -50781,8 +51223,10 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
50781
51223
|
chatTypeFilter,
|
|
50782
51224
|
approvalStatuses,
|
|
50783
51225
|
batchApprovalsEnabled,
|
|
51226
|
+
displayApprovalTypes,
|
|
50784
51227
|
accumApprove,
|
|
50785
|
-
accumReject
|
|
51228
|
+
accumReject,
|
|
51229
|
+
isBufferingActive
|
|
50786
51230
|
]
|
|
50787
51231
|
);
|
|
50788
51232
|
const prevDialogIdRef = _react.useRef.call(void 0, void 0);
|
|
@@ -50791,6 +51235,9 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
50791
51235
|
prevDialogIdRef.current = dialogId;
|
|
50792
51236
|
historyLoadSeqRef.current += 1;
|
|
50793
51237
|
resetAccumulator();
|
|
51238
|
+
adoptTrailingAssistantRef.current = false;
|
|
51239
|
+
seenParticipantSeqsRef.current.clear();
|
|
51240
|
+
pendingEchoTextsRef.current = [];
|
|
50794
51241
|
setMessages([]);
|
|
50795
51242
|
setMessagesNextCursor(null);
|
|
50796
51243
|
setDialogTokenUsage(null);
|
|
@@ -50802,13 +51249,16 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
50802
51249
|
}, [active, dialogId, loadDialogHistory, resetAccumulator]);
|
|
50803
51250
|
_react.useEffect.call(void 0, () => {
|
|
50804
51251
|
if (!active || !dialogId) return;
|
|
50805
|
-
suppressAgentBusyRef.current
|
|
51252
|
+
suppressAgentBusyRef.current += 1;
|
|
50806
51253
|
resetChunkTracking();
|
|
50807
51254
|
startInitialBuffering();
|
|
50808
51255
|
catchUpChunks().catch((err) => {
|
|
50809
51256
|
console.error("[useNatsChatAdapter] initial catchup failed:", err);
|
|
50810
51257
|
}).finally(() => {
|
|
50811
|
-
suppressAgentBusyRef.current =
|
|
51258
|
+
suppressAgentBusyRef.current = Math.max(0, suppressAgentBusyRef.current - 1);
|
|
51259
|
+
if (dialogId === currentDialogIdRef.current) {
|
|
51260
|
+
adoptTrailingAssistantRef.current = false;
|
|
51261
|
+
}
|
|
50812
51262
|
});
|
|
50813
51263
|
}, [active, dialogId, resetChunkTracking, startInitialBuffering, catchUpChunks]);
|
|
50814
51264
|
useNatsDialogSubscription({
|
|
@@ -50823,6 +51273,30 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
50823
51273
|
onEvent: (payload, messageType) => {
|
|
50824
51274
|
catchupProcessChunk(payload, messageType);
|
|
50825
51275
|
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
|
+
})();
|
|
50826
51300
|
}
|
|
50827
51301
|
});
|
|
50828
51302
|
_react.useEffect.call(void 0, () => {
|
|
@@ -50873,7 +51347,9 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
50873
51347
|
}, [active, fetchDialogs, loadDialogsPage]);
|
|
50874
51348
|
const sendMessage = _react.useCallback.call(void 0,
|
|
50875
51349
|
async (text, sendOptions) => {
|
|
50876
|
-
const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess',
|
|
51350
|
+
const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _1353 => _1353.hidden]), () => ( false));
|
|
51351
|
+
pendingEchoTextsRef.current.push(text);
|
|
51352
|
+
if (pendingEchoTextsRef.current.length > 5) pendingEchoTextsRef.current.shift();
|
|
50877
51353
|
setMessages((prev) => [
|
|
50878
51354
|
...prev,
|
|
50879
51355
|
{
|
|
@@ -51037,11 +51513,11 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
51037
51513
|
// Tokens: live `token_usage` frame / dialog snapshot (`dialogTokenUsage`).
|
|
51038
51514
|
// contextWindow uses the dialog's `contextSize` (the "X / Y" denominator,
|
|
51039
51515
|
// matching the /mingo page). cacheHitRate/breakdown are SSE-only → null.
|
|
51040
|
-
currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess',
|
|
51041
|
-
currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess',
|
|
51042
|
-
currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess',
|
|
51043
|
-
currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess',
|
|
51044
|
-
currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess',
|
|
51516
|
+
currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1354 => _1354.provider]), () => ( modelProvider)), () => ( null)),
|
|
51517
|
+
currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _1355 => _1355.modelLabel]), () => ( modelLabel)), () => ( null)),
|
|
51518
|
+
currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1356 => _1356.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _1357 => _1357.contextWindowMaxTokens]))), () => ( null)),
|
|
51519
|
+
currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1358 => _1358.inputTokensSize]), () => ( null)),
|
|
51520
|
+
currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _1359 => _1359.outputTokensSize]), () => ( null)),
|
|
51045
51521
|
currentCacheHitRatePct: null,
|
|
51046
51522
|
currentUsageBreakdown: null,
|
|
51047
51523
|
// Dialog management
|
|
@@ -51254,65 +51730,6 @@ function useUnifiedChat(options) {
|
|
|
51254
51730
|
);
|
|
51255
51731
|
}
|
|
51256
51732
|
|
|
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
|
-
|
|
51316
51733
|
// src/components/chat/utils/history-merge.ts
|
|
51317
51734
|
var SYNTHETIC_REALTIME_ID_PREFIXES = ["assistant-", "user-", "direct-", "system-", "error-"];
|
|
51318
51735
|
function isSyntheticRealtimeId(id) {
|
|
@@ -51357,20 +51774,20 @@ function mergeHistoryWithRealtime(input) {
|
|
|
51357
51774
|
const seqCoverageKnown = realtimeSeenStreamSeq > 0 && historyMaxStreamSeq > 0;
|
|
51358
51775
|
const historyCoversRealtime = seqCoverageKnown ? historyMaxStreamSeq >= realtimeSeenStreamSeq : null;
|
|
51359
51776
|
const trailing = processedHistory[processedHistory.length - 1];
|
|
51360
|
-
const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess',
|
|
51361
|
-
const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access',
|
|
51777
|
+
const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _1360 => _1360.role]) === "assistant" ? trailing : null;
|
|
51778
|
+
const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _1361 => _1361.content, 'access', _1362 => _1362.find, 'call', _1363 => _1363((s) => s.type === "approval_batch"), 'optionalAccess', _1364 => _1364.data, 'optionalAccess', _1365 => _1365.approvalRequestId]), () => ( null)) : null;
|
|
51362
51779
|
let processedToUse = processedHistory;
|
|
51363
51780
|
const pinnedSyntheticIds = /* @__PURE__ */ new Set();
|
|
51364
51781
|
const droppedSyntheticIds = /* @__PURE__ */ new Set();
|
|
51365
51782
|
if (historyBatchId) {
|
|
51366
51783
|
const batchTwins = existingMessages.filter(
|
|
51367
51784
|
(m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some(
|
|
51368
|
-
(s) => s.type === "approval_batch" && _optionalChain([s, 'access',
|
|
51785
|
+
(s) => s.type === "approval_batch" && _optionalChain([s, 'access', _1366 => _1366.data, 'optionalAccess', _1367 => _1367.approvalRequestId]) === historyBatchId
|
|
51369
51786
|
)
|
|
51370
51787
|
);
|
|
51371
51788
|
const existingWithSameBatch = _nullishCoalesce(batchTwins.find((m) => m.id === streamingMessageId), () => ( batchTwins[batchTwins.length - 1]));
|
|
51372
51789
|
if (existingWithSameBatch && Array.isArray(existingWithSameBatch.content)) {
|
|
51373
|
-
const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess',
|
|
51790
|
+
const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _1368 => _1368.content])) ? historyTrailingAssistant.content.length : 0;
|
|
51374
51791
|
const realtimeSize = existingWithSameBatch.content.length;
|
|
51375
51792
|
if (existingWithSameBatch.id === streamingMessageId || realtimeSize > histSize) {
|
|
51376
51793
|
processedToUse = processedHistory.slice(0, -1);
|
|
@@ -51386,16 +51803,16 @@ function mergeHistoryWithRealtime(input) {
|
|
|
51386
51803
|
if (pinnedSyntheticIds.has(m.id)) return true;
|
|
51387
51804
|
if (droppedSyntheticIds.has(m.id)) return false;
|
|
51388
51805
|
if (processedIds.has(m.id)) return false;
|
|
51389
|
-
if (_optionalChain([rawHistoryIds, 'optionalAccess',
|
|
51806
|
+
if (_optionalChain([rawHistoryIds, 'optionalAccess', _1369 => _1369.has, 'call', _1370 => _1370(m.id)])) return false;
|
|
51390
51807
|
if (m.role === "user" && m.id.startsWith("optimistic-") && typeof m.content === "string") {
|
|
51391
|
-
const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access',
|
|
51808
|
+
const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _1371 => _1371.timestamp, 'optionalAccess', _1372 => _1372.getTime, 'call', _1373 => _1373()]), () => ( 0))) <= historyFetchedAt;
|
|
51392
51809
|
return !(canBeInSnapshot && processedToUse.some((pm) => pm.role === "user" && pm.content === m.content));
|
|
51393
51810
|
}
|
|
51394
51811
|
if (isSyntheticRealtimeId(m.id) && m.id !== streamingMessageId) {
|
|
51395
51812
|
if (m.role === "assistant" && trailingAssistantText && assistantAnswerText(m.content) === trailingAssistantText) {
|
|
51396
51813
|
return false;
|
|
51397
51814
|
}
|
|
51398
|
-
const covered = typeof m.streamSeq === "number" && historyMaxStreamSeq > 0 ? historyMaxStreamSeq >= m.streamSeq : historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access',
|
|
51815
|
+
const covered = typeof m.streamSeq === "number" && historyMaxStreamSeq > 0 ? historyMaxStreamSeq >= m.streamSeq : historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _1374 => _1374.timestamp, 'optionalAccess', _1375 => _1375.getTime, 'call', _1376 => _1376()]), () => ( 0))) <= historyFetchedAt;
|
|
51399
51816
|
if (covered) return false;
|
|
51400
51817
|
}
|
|
51401
51818
|
return true;
|
|
@@ -51450,7 +51867,7 @@ function normalizeHistoricalMessageData(md) {
|
|
|
51450
51867
|
function isHistoricalUserTurn(m) {
|
|
51451
51868
|
return !!m.owner;
|
|
51452
51869
|
}
|
|
51453
|
-
var isTextSegment = (d) => _optionalChain([d, 'optionalAccess',
|
|
51870
|
+
var isTextSegment = (d) => _optionalChain([d, 'optionalAccess', _1377 => _1377.type]) === "TEXT" && typeof d.text === "string";
|
|
51454
51871
|
var THINK_MS = 550;
|
|
51455
51872
|
var TOKEN_MS = 55;
|
|
51456
51873
|
var USER_MS = 480;
|
|
@@ -51691,7 +52108,7 @@ function useChatDialogManager({
|
|
|
51691
52108
|
const handleConfirmRestore = _react.useCallback.call(void 0, async () => {
|
|
51692
52109
|
if (restoreTarget) {
|
|
51693
52110
|
try {
|
|
51694
|
-
await _optionalChain([unarchiveDialog, 'optionalCall',
|
|
52111
|
+
await _optionalChain([unarchiveDialog, 'optionalCall', _1378 => _1378(restoreTarget.id)]);
|
|
51695
52112
|
} catch (err) {
|
|
51696
52113
|
console.error("[useChatDialogManager] unarchive failed:", err);
|
|
51697
52114
|
return;
|
|
@@ -52164,7 +52581,7 @@ function EmbeddableChatInner({
|
|
|
52164
52581
|
}),
|
|
52165
52582
|
[commandsUrl]
|
|
52166
52583
|
);
|
|
52167
|
-
const headerUserName = _optionalChain([identityUser, 'optionalAccess',
|
|
52584
|
+
const headerUserName = _optionalChain([identityUser, 'optionalAccess', _1379 => _1379.name, 'optionalAccess', _1380 => _1380.trim, 'call', _1381 => _1381()]) || [_optionalChain([identityUser, 'optionalAccess', _1382 => _1382.firstName]), _optionalChain([identityUser, 'optionalAccess', _1383 => _1383.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([userDisplayName, 'optionalAccess', _1384 => _1384.trim, 'call', _1385 => _1385()]) || void 0;
|
|
52168
52585
|
const effectiveModes = _react.useMemo.call(void 0, () => {
|
|
52169
52586
|
if (modes) return modes;
|
|
52170
52587
|
const guideOptions = tableIdForDocumentType ? { tableIdForDocumentType } : {};
|
|
@@ -52173,19 +52590,19 @@ function EmbeddableChatInner({
|
|
|
52173
52590
|
const mingoCaps = _react.useMemo.call(void 0, () => {
|
|
52174
52591
|
if (mingoState) {
|
|
52175
52592
|
return {
|
|
52176
|
-
canRename: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess',
|
|
52177
|
-
canArchive: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess',
|
|
52178
|
-
fetchArchivedDialogs: _optionalChain([mingoDialogCapabilities, 'optionalAccess',
|
|
52179
|
-
unarchiveDialog: _optionalChain([mingoDialogCapabilities, 'optionalAccess',
|
|
52180
|
-
searchQuery: _optionalChain([mingoDialogCapabilities, 'optionalAccess',
|
|
52181
|
-
onSearchChange: _optionalChain([mingoDialogCapabilities, 'optionalAccess',
|
|
52593
|
+
canRename: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1386 => _1386.canRename]), () => ( false)),
|
|
52594
|
+
canArchive: _nullishCoalesce(_optionalChain([mingoDialogCapabilities, 'optionalAccess', _1387 => _1387.canArchive]), () => ( false)),
|
|
52595
|
+
fetchArchivedDialogs: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1388 => _1388.fetchArchivedDialogs]),
|
|
52596
|
+
unarchiveDialog: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1389 => _1389.unarchiveDialog]),
|
|
52597
|
+
searchQuery: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1390 => _1390.searchQuery]),
|
|
52598
|
+
onSearchChange: _optionalChain([mingoDialogCapabilities, 'optionalAccess', _1391 => _1391.onSearchChange])
|
|
52182
52599
|
};
|
|
52183
52600
|
}
|
|
52184
52601
|
return {
|
|
52185
|
-
canRename: !!_optionalChain([effectiveModes, 'access',
|
|
52186
|
-
canArchive: !!_optionalChain([effectiveModes, 'access',
|
|
52187
|
-
fetchArchivedDialogs: _optionalChain([effectiveModes, 'access',
|
|
52188
|
-
unarchiveDialog: _optionalChain([effectiveModes, 'access',
|
|
52602
|
+
canRename: !!_optionalChain([effectiveModes, 'access', _1392 => _1392.mingo, 'optionalAccess', _1393 => _1393.renameDialog]),
|
|
52603
|
+
canArchive: !!_optionalChain([effectiveModes, 'access', _1394 => _1394.mingo, 'optionalAccess', _1395 => _1395.archiveDialog]),
|
|
52604
|
+
fetchArchivedDialogs: _optionalChain([effectiveModes, 'access', _1396 => _1396.mingo, 'optionalAccess', _1397 => _1397.fetchArchivedDialogs]),
|
|
52605
|
+
unarchiveDialog: _optionalChain([effectiveModes, 'access', _1398 => _1398.mingo, 'optionalAccess', _1399 => _1399.unarchiveDialog]),
|
|
52189
52606
|
searchQuery: void 0,
|
|
52190
52607
|
onSearchChange: void 0
|
|
52191
52608
|
};
|
|
@@ -52199,7 +52616,7 @@ function EmbeddableChatInner({
|
|
|
52199
52616
|
if (controlledActiveMode === void 0) {
|
|
52200
52617
|
setUncontrolledActiveMode(next);
|
|
52201
52618
|
}
|
|
52202
|
-
_optionalChain([onActiveModeChange, 'optionalCall',
|
|
52619
|
+
_optionalChain([onActiveModeChange, 'optionalCall', _1400 => _1400(next)]);
|
|
52203
52620
|
},
|
|
52204
52621
|
[controlledActiveMode, onActiveModeChange]
|
|
52205
52622
|
);
|
|
@@ -52221,7 +52638,7 @@ function EmbeddableChatInner({
|
|
|
52221
52638
|
const effectiveQuickActions = emptyStateUrl ? emptyStateConfig.quickActions : [];
|
|
52222
52639
|
const effectiveAssistantName = emptyStateConfig.name;
|
|
52223
52640
|
const effectiveAssistantIcon = emptyStateConfig.icon;
|
|
52224
|
-
const headerAssistantName = _nullishCoalesce(effectiveAssistantName, () => ( (typeof _optionalChain([guideWelcome, 'optionalAccess',
|
|
52641
|
+
const headerAssistantName = _nullishCoalesce(effectiveAssistantName, () => ( (typeof _optionalChain([guideWelcome, 'optionalAccess', _1401 => _1401.title]) === "string" ? guideWelcome.title : null)));
|
|
52225
52642
|
const {
|
|
52226
52643
|
messages: rawMessages,
|
|
52227
52644
|
isLoading: chatLoading,
|
|
@@ -52261,7 +52678,7 @@ function EmbeddableChatInner({
|
|
|
52261
52678
|
if (activeMode !== "guide" || guidePromptSentRef.current) return;
|
|
52262
52679
|
guidePromptSentRef.current = true;
|
|
52263
52680
|
void sendMessage(guidePendingPrompt);
|
|
52264
|
-
_optionalChain([onGuidePromptConsumed, 'optionalCall',
|
|
52681
|
+
_optionalChain([onGuidePromptConsumed, 'optionalCall', _1402 => _1402()]);
|
|
52265
52682
|
}, [guidePendingPrompt, activeMode, sendMessage, onGuidePromptConsumed]);
|
|
52266
52683
|
const {
|
|
52267
52684
|
attachments: stagedAttachments,
|
|
@@ -52272,7 +52689,7 @@ function EmbeddableChatInner({
|
|
|
52272
52689
|
clear: clearAttachments
|
|
52273
52690
|
} = useChatAttachments();
|
|
52274
52691
|
const { panelRef: galleryPanelRef, modal: galleryModal } = useChatAttachmentImageGallery();
|
|
52275
|
-
const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess',
|
|
52692
|
+
const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1403 => _1403.maxItems]), () => ( 10));
|
|
52276
52693
|
const contextPickerForMode = activeMode === "mingo" ? contextPicker : void 0;
|
|
52277
52694
|
const [contextItems, setContextItems] = _react.useState.call(void 0, []);
|
|
52278
52695
|
const [contextPickerOpen, setContextPickerOpen] = _react.useState.call(void 0, false);
|
|
@@ -52289,10 +52706,10 @@ function EmbeddableChatInner({
|
|
|
52289
52706
|
}, [activeDialogId, activeMode]);
|
|
52290
52707
|
const mentionMarkerByType = _react.useMemo.call(void 0, () => {
|
|
52291
52708
|
const m = /* @__PURE__ */ new Map();
|
|
52292
|
-
for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess',
|
|
52709
|
+
for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _1404 => _1404.entityTypes]), () => ( []))) if (t.marker) m.set(t.type, t.marker);
|
|
52293
52710
|
return m;
|
|
52294
|
-
}, [_optionalChain([contextPicker, 'optionalAccess',
|
|
52295
|
-
const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess',
|
|
52711
|
+
}, [_optionalChain([contextPicker, 'optionalAccess', _1405 => _1405.entityTypes])]);
|
|
52712
|
+
const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess', _1406 => _1406.entityTypes]);
|
|
52296
52713
|
const resolveContextIcon = _react.useMemo.call(void 0, () => {
|
|
52297
52714
|
const byType = /* @__PURE__ */ new Map();
|
|
52298
52715
|
for (const t of _nullishCoalesce(contextEntityTypes, () => ( []))) byType.set(t.type, t.icon);
|
|
@@ -52304,7 +52721,7 @@ function EmbeddableChatInner({
|
|
|
52304
52721
|
if (mentionActiveRef.current) {
|
|
52305
52722
|
if (contextItems.some((p) => `${p.type}:${p.id}` === key)) return;
|
|
52306
52723
|
if (contextItems.length >= contextMaxItems) return;
|
|
52307
|
-
_optionalChain([chatInputRef, 'access',
|
|
52724
|
+
_optionalChain([chatInputRef, 'access', _1407 => _1407.current, 'optionalAccess', _1408 => _1408.commitMention, 'call', _1409 => _1409(mentionTokenOf(key, mentionMarkerByType), {
|
|
52308
52725
|
label: item.label,
|
|
52309
52726
|
icon: resolveContextIcon(item)
|
|
52310
52727
|
})]);
|
|
@@ -52326,9 +52743,9 @@ function EmbeddableChatInner({
|
|
|
52326
52743
|
setContextItems((prev) => prev.filter((p) => `${p.type}:${p.id}` !== key));
|
|
52327
52744
|
if (mentionKeysRef.current.has(key)) {
|
|
52328
52745
|
mentionKeysRef.current.delete(key);
|
|
52329
|
-
const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access',
|
|
52746
|
+
const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _1410 => _1410.current, 'optionalAccess', _1411 => _1411.getValue, 'call', _1412 => _1412()]), () => ( ""));
|
|
52330
52747
|
const next = cur.replace(`@${mentionTokenOf(key, mentionMarkerByType)}`, "").replace(/\s{2,}/g, " ").trimStart();
|
|
52331
|
-
_optionalChain([chatInputRef, 'access',
|
|
52748
|
+
_optionalChain([chatInputRef, 'access', _1413 => _1413.current, 'optionalAccess', _1414 => _1414.setValue, 'call', _1415 => _1415(next)]);
|
|
52332
52749
|
}
|
|
52333
52750
|
}, [mentionMarkerByType]);
|
|
52334
52751
|
const handleContextValueChange = _react.useCallback.call(void 0, (value) => {
|
|
@@ -52345,7 +52762,7 @@ function EmbeddableChatInner({
|
|
|
52345
52762
|
}, []);
|
|
52346
52763
|
const closeContextPicker = _react.useCallback.call(void 0, () => {
|
|
52347
52764
|
if (mentionActiveRef.current) {
|
|
52348
|
-
_optionalChain([chatInputRef, 'access',
|
|
52765
|
+
_optionalChain([chatInputRef, 'access', _1416 => _1416.current, 'optionalAccess', _1417 => _1417.removeMentionTrigger, 'call', _1418 => _1418()]);
|
|
52349
52766
|
}
|
|
52350
52767
|
setContextPickerOpen(false);
|
|
52351
52768
|
setMentionQuery(null);
|
|
@@ -52379,8 +52796,8 @@ function EmbeddableChatInner({
|
|
|
52379
52796
|
[effectiveAssistantIcon]
|
|
52380
52797
|
);
|
|
52381
52798
|
const timestampCacheRef = _react.useRef.call(void 0, /* @__PURE__ */ new Map());
|
|
52382
|
-
const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess',
|
|
52383
|
-
const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess',
|
|
52799
|
+
const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess', _1419 => _1419.firstName]), _optionalChain([identityUser, 'optionalAccess', _1420 => _1420.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([identityUser, 'optionalAccess', _1421 => _1421.name, 'optionalAccess', _1422 => _1422.trim, 'call', _1423 => _1423()]) || void 0 : void 0;
|
|
52800
|
+
const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess', _1424 => _1424.avatarUrl, 'optionalAccess', _1425 => _1425.trim, 'call', _1426 => _1426()]) || void 0 : void 0;
|
|
52384
52801
|
const messages = _react.useMemo.call(void 0, () => {
|
|
52385
52802
|
const cache = timestampCacheRef.current;
|
|
52386
52803
|
const seenIds = /* @__PURE__ */ new Set();
|
|
@@ -52560,9 +52977,9 @@ function EmbeddableChatInner({
|
|
|
52560
52977
|
const lastAssistantMsg = [...rawMessages].reverse().find((m) => m.role === "assistant");
|
|
52561
52978
|
const lastSources = _react.useMemo.call(void 0, () => {
|
|
52562
52979
|
if (chatLoading) return void 0;
|
|
52563
|
-
const sources = _optionalChain([lastAssistantMsg, 'optionalAccess',
|
|
52980
|
+
const sources = _optionalChain([lastAssistantMsg, 'optionalAccess', _1427 => _1427.sources]);
|
|
52564
52981
|
if (!sources || sources.length === 0) return void 0;
|
|
52565
|
-
const content = _optionalChain([lastAssistantMsg, 'optionalAccess',
|
|
52982
|
+
const content = _optionalChain([lastAssistantMsg, 'optionalAccess', _1428 => _1428.content]) || "";
|
|
52566
52983
|
const citationOrder = [...content.matchAll(/\[(\d+)\]/g)].map(
|
|
52567
52984
|
(m) => parseInt(m[1], 10)
|
|
52568
52985
|
);
|
|
@@ -52581,7 +52998,7 @@ function EmbeddableChatInner({
|
|
|
52581
52998
|
const el = panelMeasureRef.current;
|
|
52582
52999
|
if (!el || typeof ResizeObserver === "undefined") return;
|
|
52583
53000
|
const ro = new ResizeObserver((entries) => {
|
|
52584
|
-
const w = _optionalChain([entries, 'access',
|
|
53001
|
+
const w = _optionalChain([entries, 'access', _1429 => _1429[0], 'optionalAccess', _1430 => _1430.contentRect, 'optionalAccess', _1431 => _1431.width]);
|
|
52585
53002
|
if (typeof w === "number") setPanelWidth(w);
|
|
52586
53003
|
});
|
|
52587
53004
|
ro.observe(el);
|
|
@@ -52620,7 +53037,7 @@ function EmbeddableChatInner({
|
|
|
52620
53037
|
const isMingoMode = activeMode === "mingo";
|
|
52621
53038
|
const stackedListView = isMingoMode && !hasConversation && !archiveOpen && !wideMingo && !composeOpen;
|
|
52622
53039
|
const headerShowBack = hasConversation || guideCanReturnToMingo;
|
|
52623
|
-
const headerTitle = hasConversation ? _optionalChain([activeDialog, 'optionalAccess',
|
|
53040
|
+
const headerTitle = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _1432 => _1432.title]) || "New Chat" : isGuideEmpty ? _nullishCoalesce(headerAssistantName, () => ( "Mingo Guide")) : "Current Chats";
|
|
52624
53041
|
const headerBackAriaLabel = hasConversation ? isViewingArchived ? "Back to archive" : "Back" : "Back to Mingo";
|
|
52625
53042
|
const headerOnBack = hasConversation ? handleBack : () => handleActiveModeChange("mingo");
|
|
52626
53043
|
const headerOnRestore = isViewingArchived && unarchiveDialog && activeDialog ? () => setRestoreTarget(activeDialog) : void 0;
|
|
@@ -52959,9 +53376,9 @@ function EmbeddableChatInner({
|
|
|
52959
53376
|
subtitle: _nullishCoalesce(effectiveGreeting, () => ( void 0)),
|
|
52960
53377
|
subtitleLoading: emptyStateLoading,
|
|
52961
53378
|
...guideWelcome,
|
|
52962
|
-
title: _nullishCoalesce(effectiveAssistantName, () => ( _optionalChain([guideWelcome, 'optionalAccess',
|
|
52963
|
-
icon: _nullishCoalesce(effectiveAssistantIcon, () => ( _optionalChain([guideWelcome, 'optionalAccess',
|
|
52964
|
-
quickActions: agentConfigUrl && guideSuggestedActions.length > 0 ? guideSuggestedActions : _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess',
|
|
53379
|
+
title: _nullishCoalesce(effectiveAssistantName, () => ( _optionalChain([guideWelcome, 'optionalAccess', _1433 => _1433.title]))),
|
|
53380
|
+
icon: _nullishCoalesce(effectiveAssistantIcon, () => ( _optionalChain([guideWelcome, 'optionalAccess', _1434 => _1434.icon]))),
|
|
53381
|
+
quickActions: agentConfigUrl && guideSuggestedActions.length > 0 ? guideSuggestedActions : _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess', _1435 => _1435.quickActions]), () => ( guideSuggestedActions)),
|
|
52965
53382
|
onQuickAction: (action) => {
|
|
52966
53383
|
setQuickActionPreview(null);
|
|
52967
53384
|
handleSend(_nullishCoalesce(action.prompt, () => ( action.label)));
|
|
@@ -54117,5 +54534,8 @@ function EmbeddableChatInner({
|
|
|
54117
54534
|
|
|
54118
54535
|
|
|
54119
54536
|
|
|
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
|
-
|
|
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
|