@shuffleio/shuffle-mcps 0.0.20 → 0.0.22
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/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +189 -143
- package/dist/index.mjs +383 -339
- package/dist/{shuffle-mcp-CN72CJJQ.css → shuffle-mcp-ER33P3W2.css} +62 -0
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -19,26 +19,45 @@ import {
|
|
|
19
19
|
} from "./chunk-R3YLER6P.mjs";
|
|
20
20
|
|
|
21
21
|
// index.ts
|
|
22
|
-
import "./shuffle-mcp-
|
|
22
|
+
import "./shuffle-mcp-ER33P3W2.css";
|
|
23
23
|
import React5 from "react";
|
|
24
24
|
|
|
25
25
|
// ShuffleMcpThemeProvider.tsx
|
|
26
26
|
import React from "react";
|
|
27
27
|
import { ThemeProvider, createTheme, useTheme as useMuiTheme } from "@mui/material";
|
|
28
|
-
import { jsx } from "react/jsx-runtime";
|
|
28
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
29
29
|
var readHtmlDarkClass = () => {
|
|
30
30
|
if (typeof document === "undefined") return false;
|
|
31
31
|
return document.documentElement.classList.contains("dark");
|
|
32
32
|
};
|
|
33
|
-
var
|
|
33
|
+
var readAncestorDark = (anchor) => {
|
|
34
|
+
if (!anchor || typeof document === "undefined") return null;
|
|
35
|
+
const start = anchor.parentElement;
|
|
36
|
+
if (!start) return null;
|
|
37
|
+
const scoped = start.closest('[data-shuffle-mode="dark"], [data-shuffle-mode="light"]');
|
|
38
|
+
if (scoped) return scoped.getAttribute("data-shuffle-mode") === "dark";
|
|
39
|
+
const darkAncestor = start.closest(".dark");
|
|
40
|
+
if (darkAncestor) return true;
|
|
41
|
+
return null;
|
|
42
|
+
};
|
|
43
|
+
var useAutoDarkClass = (enabled, anchorRef) => {
|
|
34
44
|
const [isDark, setIsDark] = React.useState(() => enabled ? readHtmlDarkClass() : false);
|
|
35
|
-
React.
|
|
45
|
+
React.useLayoutEffect(() => {
|
|
36
46
|
if (!enabled || typeof document === "undefined") return;
|
|
37
|
-
|
|
38
|
-
|
|
47
|
+
const recompute = () => {
|
|
48
|
+
const ancestor = readAncestorDark(anchorRef.current);
|
|
49
|
+
setIsDark(ancestor !== null ? ancestor : readHtmlDarkClass());
|
|
50
|
+
};
|
|
51
|
+
recompute();
|
|
52
|
+
const observer = new MutationObserver(recompute);
|
|
39
53
|
observer.observe(document.documentElement, { attributes: true, attributeFilter: ["class"] });
|
|
54
|
+
let node = anchorRef.current?.parentElement ?? null;
|
|
55
|
+
while (node) {
|
|
56
|
+
observer.observe(node, { attributes: true, attributeFilter: ["class", "data-shuffle-mode"] });
|
|
57
|
+
node = node.parentElement;
|
|
58
|
+
}
|
|
40
59
|
return () => observer.disconnect();
|
|
41
|
-
}, [enabled]);
|
|
60
|
+
}, [enabled, anchorRef]);
|
|
42
61
|
return isDark;
|
|
43
62
|
};
|
|
44
63
|
var ShuffleMcpThemeContext = React.createContext(null);
|
|
@@ -125,10 +144,12 @@ var ShuffleMcpThemeProvider = ({
|
|
|
125
144
|
}) => {
|
|
126
145
|
const parent = useMuiTheme();
|
|
127
146
|
const parentCtx = useShuffleMcpTheme();
|
|
128
|
-
const
|
|
129
|
-
const
|
|
147
|
+
const anchorRef = React.useRef(null);
|
|
148
|
+
const autoIsDark = useAutoDarkClass(mode === "auto", anchorRef);
|
|
149
|
+
const effectiveDark = mode === "auto" ? autoIsDark : mode === "dark";
|
|
130
150
|
const sameAsParent = parentCtx !== null && parentCtx.isDark === effectiveDark;
|
|
131
151
|
const scopeClassName = effectiveDark ? "shuffle-mcp-scope dark" : "shuffle-mcp-scope";
|
|
152
|
+
const resolvedModeAttr = effectiveDark ? "dark" : "light";
|
|
132
153
|
const merged = React.useMemo(
|
|
133
154
|
() => createTheme({
|
|
134
155
|
...parent,
|
|
@@ -148,18 +169,24 @@ var ShuffleMcpThemeProvider = ({
|
|
|
148
169
|
[mode, effectiveDark, scopeClassName]
|
|
149
170
|
);
|
|
150
171
|
if (sameAsParent) {
|
|
151
|
-
return /* @__PURE__ */
|
|
172
|
+
return /* @__PURE__ */ jsxs(ShuffleMcpThemeContext.Provider, { value: ctxValue, children: [
|
|
173
|
+
/* @__PURE__ */ jsx("span", { ref: anchorRef, style: { display: "none" }, "aria-hidden": true }),
|
|
174
|
+
children
|
|
175
|
+
] });
|
|
152
176
|
}
|
|
153
|
-
return /* @__PURE__ */ jsx(ShuffleMcpThemeContext.Provider, { value: ctxValue, children: /* @__PURE__ */ jsx(ThemeProvider, { theme: merged, children: /* @__PURE__ */
|
|
177
|
+
return /* @__PURE__ */ jsx(ShuffleMcpThemeContext.Provider, { value: ctxValue, children: /* @__PURE__ */ jsx(ThemeProvider, { theme: merged, children: /* @__PURE__ */ jsxs("div", { className: scopeClassName, "data-shuffle-mode": resolvedModeAttr, "data-shuffle-mcp-root": true, children: [
|
|
178
|
+
/* @__PURE__ */ jsx("span", { ref: anchorRef, style: { display: "none" }, "aria-hidden": true }),
|
|
179
|
+
children
|
|
180
|
+
] }) }) });
|
|
154
181
|
};
|
|
155
182
|
|
|
156
|
-
// ShuffleMCP.tsx
|
|
183
|
+
// views/ShuffleMCP.tsx
|
|
157
184
|
import React3, { useState as useState9, useEffect as useEffect8, useRef as useRef7, useCallback as useCallback7, useMemo as useMemo4, useImperativeHandle } from "react";
|
|
158
185
|
import { algoliasearch } from "algoliasearch";
|
|
159
186
|
import { Tooltip as Tooltip4 } from "@mui/material";
|
|
160
187
|
|
|
161
|
-
// AppDetailDrawer.tsx
|
|
162
|
-
import { useState as useState8, useEffect as
|
|
188
|
+
// views/AppDetailDrawer.tsx
|
|
189
|
+
import { useState as useState8, useEffect as useEffect7, useMemo as useMemo3, useRef as useRef5 } from "react";
|
|
163
190
|
|
|
164
191
|
// toast.ts
|
|
165
192
|
var defaultImpl = (arg, opts) => {
|
|
@@ -183,7 +210,7 @@ base.info = (msg, opts) => _impl({ title: msg, description: opts?.description, v
|
|
|
183
210
|
base.warning = (msg, opts) => _impl({ title: msg, description: opts?.description, variant: "warning" }, opts);
|
|
184
211
|
var toast = base;
|
|
185
212
|
|
|
186
|
-
// AppDetailDrawer.tsx
|
|
213
|
+
// views/AppDetailDrawer.tsx
|
|
187
214
|
import {
|
|
188
215
|
Download,
|
|
189
216
|
Forward,
|
|
@@ -623,7 +650,7 @@ var DATASTORE_CATEGORIES = {
|
|
|
623
650
|
LEGACY_CASES: "shuffle-security_cases"
|
|
624
651
|
};
|
|
625
652
|
|
|
626
|
-
// AppDetailDrawer.tsx
|
|
653
|
+
// views/AppDetailDrawer.tsx
|
|
627
654
|
import {
|
|
628
655
|
Box as Box8,
|
|
629
656
|
Typography as Typography8,
|
|
@@ -638,7 +665,7 @@ import { motion as motion6 } from "framer-motion";
|
|
|
638
665
|
// useAppAuth.ts
|
|
639
666
|
import { useState as useState3, useCallback as useCallback3, useEffect as useEffect2 } from "react";
|
|
640
667
|
|
|
641
|
-
// IntegrationStatus.tsx
|
|
668
|
+
// components/IntegrationStatus.tsx
|
|
642
669
|
import { useState as useState2, useEffect, useCallback as useCallback2 } from "react";
|
|
643
670
|
import {
|
|
644
671
|
Plus as AddIcon
|
|
@@ -922,8 +949,8 @@ function extractValidatedIngestionApps(authApiResponse, workflowAppNames) {
|
|
|
922
949
|
return apps;
|
|
923
950
|
}
|
|
924
951
|
|
|
925
|
-
// IntegrationStatus.tsx
|
|
926
|
-
import { Fragment, jsx as jsx3, jsxs } from "react/jsx-runtime";
|
|
952
|
+
// components/IntegrationStatus.tsx
|
|
953
|
+
import { Fragment, jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
927
954
|
var ONBOARDING_CONFIG_CATEGORY = "shuffle-security_onboarding";
|
|
928
955
|
var SELECTED_TOOLS_KEY = "selected_tools";
|
|
929
956
|
var PRIORITY_CATEGORY_PATTERNS = {
|
|
@@ -1084,7 +1111,7 @@ var IntegrationStatus = ({ collapsed, filterApps, onAddClick, iconSize = 26, onD
|
|
|
1084
1111
|
return integration.hasValidAuth ? "hsl(var(--severity-low))" : "hsl(var(--severity-medium))";
|
|
1085
1112
|
};
|
|
1086
1113
|
const sz = iconSize;
|
|
1087
|
-
return /* @__PURE__ */
|
|
1114
|
+
return /* @__PURE__ */ jsxs2(Box, { sx: { px: collapsed ? 0 : 1, py: 1 }, children: [
|
|
1088
1115
|
!collapsed && !hideHeader && /* @__PURE__ */ jsx3(
|
|
1089
1116
|
Typography,
|
|
1090
1117
|
{
|
|
@@ -1108,20 +1135,20 @@ var IntegrationStatus = ({ collapsed, filterApps, onAddClick, iconSize = 26, onD
|
|
|
1108
1135
|
px: collapsed ? 0 : 1,
|
|
1109
1136
|
maxHeight: expanded ? "none" : 80,
|
|
1110
1137
|
overflow: "hidden"
|
|
1111
|
-
}, children: loading ? /* @__PURE__ */ jsx3(CircularProgress, { size: 20, sx: { color: "hsl(var(--muted-foreground))" } }) : /* @__PURE__ */
|
|
1138
|
+
}, children: loading ? /* @__PURE__ */ jsx3(CircularProgress, { size: 20, sx: { color: "hsl(var(--muted-foreground))" } }) : /* @__PURE__ */ jsxs2(Fragment, { children: [
|
|
1112
1139
|
integrations.slice(0, displayLimit).map((integration) => {
|
|
1113
1140
|
const isDisabled = disabledApps?.has(integration.name) ?? false;
|
|
1114
1141
|
const isHovered = hoveredId === integration.id;
|
|
1115
1142
|
return /* @__PURE__ */ jsx3(
|
|
1116
1143
|
Tooltip,
|
|
1117
1144
|
{
|
|
1118
|
-
title: onDisable && isHovered ? "" : /* @__PURE__ */
|
|
1119
|
-
/* @__PURE__ */
|
|
1145
|
+
title: onDisable && isHovered ? "" : /* @__PURE__ */ jsxs2(Box, { sx: { textAlign: "left", minWidth: 160, maxWidth: 320, p: 0.5 }, children: [
|
|
1146
|
+
/* @__PURE__ */ jsxs2(Typography, { sx: { fontWeight: 600, fontSize: "0.85rem", color: "hsl(var(--foreground))", textTransform: "capitalize" }, children: [
|
|
1120
1147
|
integration.name.replace(/_/g, " "),
|
|
1121
1148
|
isDisabled && /* @__PURE__ */ jsx3(Typography, { component: "span", sx: { ml: 1, fontSize: "0.7rem", color: "hsl(var(--muted-foreground))" }, children: "(disabled)" })
|
|
1122
1149
|
] }),
|
|
1123
1150
|
/* @__PURE__ */ jsx3(Typography, { sx: { fontSize: "0.7rem", color: "hsl(var(--muted-foreground))", mb: 1, textTransform: "capitalize" }, children: integration.category }),
|
|
1124
|
-
/* @__PURE__ */ jsx3(Box, { sx: { display: "flex", flexDirection: "column", gap: 0.5 }, children: integration.authInstances.map((instance, idx) => /* @__PURE__ */
|
|
1151
|
+
/* @__PURE__ */ jsx3(Box, { sx: { display: "flex", flexDirection: "column", gap: 0.5 }, children: integration.authInstances.map((instance, idx) => /* @__PURE__ */ jsxs2(Box, { sx: { display: "flex", alignItems: "center", gap: 0.75, minWidth: 0 }, children: [
|
|
1125
1152
|
/* @__PURE__ */ jsx3(
|
|
1126
1153
|
Box,
|
|
1127
1154
|
{
|
|
@@ -1140,7 +1167,7 @@ var IntegrationStatus = ({ collapsed, filterApps, onAddClick, iconSize = 26, onD
|
|
|
1140
1167
|
] }),
|
|
1141
1168
|
placement: "bottom",
|
|
1142
1169
|
arrow: true,
|
|
1143
|
-
children: /* @__PURE__ */
|
|
1170
|
+
children: /* @__PURE__ */ jsxs2(
|
|
1144
1171
|
Box,
|
|
1145
1172
|
{
|
|
1146
1173
|
onMouseEnter: () => onDisable && setHoveredId(integration.id),
|
|
@@ -1248,7 +1275,7 @@ var IntegrationStatus = ({ collapsed, filterApps, onAddClick, iconSize = 26, onD
|
|
|
1248
1275
|
integration.id
|
|
1249
1276
|
);
|
|
1250
1277
|
}),
|
|
1251
|
-
hasMore && !expanded && /* @__PURE__ */ jsx3(Tooltip, { title: `Show all ${integrations.length} integrations`, placement: "bottom", children: /* @__PURE__ */
|
|
1278
|
+
hasMore && !expanded && /* @__PURE__ */ jsx3(Tooltip, { title: `Show all ${integrations.length} integrations`, placement: "bottom", children: /* @__PURE__ */ jsxs2(
|
|
1252
1279
|
Avatar,
|
|
1253
1280
|
{
|
|
1254
1281
|
onClick: () => setExpanded(true),
|
|
@@ -1572,14 +1599,14 @@ function useAppAuth() {
|
|
|
1572
1599
|
};
|
|
1573
1600
|
}
|
|
1574
1601
|
|
|
1575
|
-
// AppTitleHeader.tsx
|
|
1602
|
+
// components/AppTitleHeader.tsx
|
|
1576
1603
|
import { Box as Box2, Typography as Typography2, Avatar as Avatar2, Chip, Button } from "@mui/material";
|
|
1577
1604
|
import {
|
|
1578
1605
|
CheckCircle2 as CheckCircleIcon,
|
|
1579
1606
|
AlertCircle as ErrorOutlineIcon
|
|
1580
1607
|
} from "lucide-react";
|
|
1581
1608
|
import { motion } from "framer-motion";
|
|
1582
|
-
import { jsx as jsx4, jsxs as
|
|
1609
|
+
import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
1583
1610
|
function AppTitleHeader({
|
|
1584
1611
|
name,
|
|
1585
1612
|
image,
|
|
@@ -1592,7 +1619,7 @@ function AppTitleHeader({
|
|
|
1592
1619
|
onActivateToggle,
|
|
1593
1620
|
onAdd
|
|
1594
1621
|
}) {
|
|
1595
|
-
return /* @__PURE__ */ jsx4(motion.div, { initial: { opacity: 0, y: 12 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.3 }, children: /* @__PURE__ */
|
|
1622
|
+
return /* @__PURE__ */ jsx4(motion.div, { initial: { opacity: 0, y: 12 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.3 }, children: /* @__PURE__ */ jsxs3(
|
|
1596
1623
|
Box2,
|
|
1597
1624
|
{
|
|
1598
1625
|
sx: {
|
|
@@ -1624,8 +1651,8 @@ function AppTitleHeader({
|
|
|
1624
1651
|
children: /* @__PURE__ */ jsx4(Typography2, { sx: { fontSize: "1.2rem", fontWeight: 700 }, children: name.charAt(0).toUpperCase() })
|
|
1625
1652
|
}
|
|
1626
1653
|
),
|
|
1627
|
-
/* @__PURE__ */
|
|
1628
|
-
/* @__PURE__ */
|
|
1654
|
+
/* @__PURE__ */ jsxs3(Box2, { sx: { flex: 1, minWidth: 0 }, children: [
|
|
1655
|
+
/* @__PURE__ */ jsxs3(Box2, { sx: { display: "flex", alignItems: "center", gap: 1, mb: 0.5 }, children: [
|
|
1629
1656
|
/* @__PURE__ */ jsx4(Typography2, { sx: { color: "hsl(var(--foreground))", fontWeight: 700, fontSize: "1rem", textTransform: "capitalize" }, children: name }),
|
|
1630
1657
|
isAuthenticated && hasValidAuth && /* @__PURE__ */ jsx4(
|
|
1631
1658
|
Chip,
|
|
@@ -1703,12 +1730,12 @@ function AppTitleHeader({
|
|
|
1703
1730
|
) });
|
|
1704
1731
|
}
|
|
1705
1732
|
|
|
1706
|
-
// AppAuthSection.tsx
|
|
1733
|
+
// components/AppAuthSection.tsx
|
|
1707
1734
|
import { Box as Box4, Typography as Typography4 } from "@mui/material";
|
|
1708
1735
|
import { motion as motion3 } from "framer-motion";
|
|
1709
1736
|
|
|
1710
|
-
// AppAuthConfig.tsx
|
|
1711
|
-
import { useState as useState5, useEffect as
|
|
1737
|
+
// components/AppAuthConfig.tsx
|
|
1738
|
+
import { useState as useState5, useEffect as useEffect5, useRef as useRef2 } from "react";
|
|
1712
1739
|
import {
|
|
1713
1740
|
CheckCircle2 as CheckCircleIcon2,
|
|
1714
1741
|
X as CloseIcon,
|
|
@@ -1745,7 +1772,7 @@ import {
|
|
|
1745
1772
|
} from "@mui/material";
|
|
1746
1773
|
import { motion as motion2 } from "framer-motion";
|
|
1747
1774
|
|
|
1748
|
-
// AppFallbackIcon.tsx
|
|
1775
|
+
// components/AppFallbackIcon.tsx
|
|
1749
1776
|
import { useEffect as useEffect3, useRef, useState as useState4 } from "react";
|
|
1750
1777
|
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
1751
1778
|
var norm = (s) => s.toLowerCase().replace(/[\s_\-]+/g, "_");
|
|
@@ -1891,10 +1918,19 @@ var AppFallbackIcon = ({
|
|
|
1891
1918
|
);
|
|
1892
1919
|
};
|
|
1893
1920
|
|
|
1894
|
-
//
|
|
1921
|
+
// useSyncHostBaseUrl.ts
|
|
1922
|
+
import { useEffect as useEffect4 } from "react";
|
|
1923
|
+
var useSyncHostBaseUrl = (globalUrl) => {
|
|
1924
|
+
useEffect4(() => {
|
|
1925
|
+
if (!globalUrl) return;
|
|
1926
|
+
setHostBaseUrl(globalUrl);
|
|
1927
|
+
}, [globalUrl]);
|
|
1928
|
+
};
|
|
1929
|
+
|
|
1930
|
+
// components/AppAuthConfig.tsx
|
|
1895
1931
|
import ReactMarkdown from "react-markdown";
|
|
1896
1932
|
import remarkGfm from "remark-gfm";
|
|
1897
|
-
import { Fragment as Fragment2, jsx as jsx6, jsxs as
|
|
1933
|
+
import { Fragment as Fragment2, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
1898
1934
|
var isOAuth2Type = (type) => {
|
|
1899
1935
|
if (!type) return false;
|
|
1900
1936
|
const lowerType = type.toLowerCase();
|
|
@@ -1947,8 +1983,14 @@ var AppAuthCard = ({
|
|
|
1947
1983
|
hideStatusChips,
|
|
1948
1984
|
hideDocsLink,
|
|
1949
1985
|
hideUrlFields,
|
|
1950
|
-
borderless
|
|
1986
|
+
borderless,
|
|
1987
|
+
globalUrl,
|
|
1988
|
+
userdata,
|
|
1989
|
+
isLoaded,
|
|
1990
|
+
isLoggedIn,
|
|
1991
|
+
serverside
|
|
1951
1992
|
}) => {
|
|
1993
|
+
useSyncHostBaseUrl(globalUrl);
|
|
1952
1994
|
const getBestDefaultAuth = (entries) => {
|
|
1953
1995
|
if (entries.length === 0) return ADD_NEW_AUTH;
|
|
1954
1996
|
const validatedEntry = entries.find((e) => e.validation?.valid === true);
|
|
@@ -1993,7 +2035,7 @@ var AppAuthCard = ({
|
|
|
1993
2035
|
const [wasPreValidatedPerAuth, setWasPreValidatedPerAuth] = useState5({});
|
|
1994
2036
|
const prevEntryCountRef = useRef2(apiAuthEntries.length);
|
|
1995
2037
|
const autoTestFiredRef = useRef2(null);
|
|
1996
|
-
|
|
2038
|
+
useEffect5(() => {
|
|
1997
2039
|
if (apiAuthEntries.length > 0) {
|
|
1998
2040
|
if (apiAuthEntries.length > prevEntryCountRef.current) {
|
|
1999
2041
|
const sorted = [...apiAuthEntries].sort((a, b) => {
|
|
@@ -2022,7 +2064,7 @@ var AppAuthCard = ({
|
|
|
2022
2064
|
}
|
|
2023
2065
|
prevEntryCountRef.current = apiAuthEntries.length;
|
|
2024
2066
|
}, [apiAuthEntries, userHasSelected]);
|
|
2025
|
-
|
|
2067
|
+
useEffect5(() => {
|
|
2026
2068
|
if (wasPreValidatedPerAuth[selectedAuthId] === void 0) {
|
|
2027
2069
|
const currentAuth = apiAuthEntries.find(
|
|
2028
2070
|
(auth2) => (auth2.id || auth2.label || "") === selectedAuthId
|
|
@@ -2044,7 +2086,7 @@ var AppAuthCard = ({
|
|
|
2044
2086
|
};
|
|
2045
2087
|
const localTestMessages = testMessagesPerAuth[selectedAuthId] || {};
|
|
2046
2088
|
const wasPreValidated = wasPreValidatedPerAuth[selectedAuthId] || false;
|
|
2047
|
-
|
|
2089
|
+
useEffect5(() => {
|
|
2048
2090
|
if (!testingAuthId) return;
|
|
2049
2091
|
if (authState.status === "testing") {
|
|
2050
2092
|
setTestStatusForAuth(testingAuthId, "testing");
|
|
@@ -2105,12 +2147,12 @@ var AppAuthCard = ({
|
|
|
2105
2147
|
const [saveSuccess, setSaveSuccess] = useState5(null);
|
|
2106
2148
|
const [error, setError] = useState5(null);
|
|
2107
2149
|
const [appConfig, setAppConfig] = useState5(null);
|
|
2108
|
-
|
|
2150
|
+
useEffect5(() => {
|
|
2109
2151
|
if (isExpanded && onRefreshAuth) {
|
|
2110
2152
|
onRefreshAuth();
|
|
2111
2153
|
}
|
|
2112
2154
|
}, [isExpanded]);
|
|
2113
|
-
|
|
2155
|
+
useEffect5(() => {
|
|
2114
2156
|
const fetchAppConfig = async () => {
|
|
2115
2157
|
if (!isExpanded || appConfig) return;
|
|
2116
2158
|
setLoading(true);
|
|
@@ -2144,12 +2186,12 @@ var AppAuthCard = ({
|
|
|
2144
2186
|
const auth = appConfig?.authentication;
|
|
2145
2187
|
const isOAuth2 = isOAuth2Type(auth?.type);
|
|
2146
2188
|
const [selectedScopes, setSelectedScopes] = useState5([]);
|
|
2147
|
-
|
|
2189
|
+
useEffect5(() => {
|
|
2148
2190
|
if (auth?.scope) {
|
|
2149
2191
|
setSelectedScopes(auth.scope);
|
|
2150
2192
|
}
|
|
2151
2193
|
}, [auth?.scope]);
|
|
2152
|
-
|
|
2194
|
+
useEffect5(() => {
|
|
2153
2195
|
if (disableUrlPrefill) return;
|
|
2154
2196
|
if (!auth?.parameters || auth.parameters.length === 0) return;
|
|
2155
2197
|
const urlDefaults = {};
|
|
@@ -2166,7 +2208,7 @@ var AppAuthCard = ({
|
|
|
2166
2208
|
setLocalCredentials((prev) => ({ ...urlDefaults, ...prev }));
|
|
2167
2209
|
}
|
|
2168
2210
|
}, [auth?.parameters, disableUrlPrefill]);
|
|
2169
|
-
|
|
2211
|
+
useEffect5(() => {
|
|
2170
2212
|
const incoming = authState.credentials || {};
|
|
2171
2213
|
setLocalCredentials((prev) => {
|
|
2172
2214
|
let changed = false;
|
|
@@ -2256,10 +2298,10 @@ var AppAuthCard = ({
|
|
|
2256
2298
|
if (!auth || !isOAuth2) return null;
|
|
2257
2299
|
const availableScopes = auth.scope || [];
|
|
2258
2300
|
const hasManualCredentials = !!localCredentials["client_id"]?.trim() && !!localCredentials["client_secret"]?.trim();
|
|
2259
|
-
return /* @__PURE__ */
|
|
2260
|
-
/* @__PURE__ */
|
|
2261
|
-
/* @__PURE__ */ jsx6(Collapse, { in: !hasManualCredentials, children: /* @__PURE__ */
|
|
2262
|
-
/* @__PURE__ */
|
|
2301
|
+
return /* @__PURE__ */ jsxs4(Box3, { sx: { display: "flex", flexDirection: "column", gap: 3 }, children: [
|
|
2302
|
+
/* @__PURE__ */ jsxs4(Fragment2, { children: [
|
|
2303
|
+
/* @__PURE__ */ jsx6(Collapse, { in: !hasManualCredentials, children: /* @__PURE__ */ jsxs4(Box3, { sx: { display: "flex", flexDirection: "column", gap: 3 }, children: [
|
|
2304
|
+
/* @__PURE__ */ jsxs4(
|
|
2263
2305
|
Button2,
|
|
2264
2306
|
{
|
|
2265
2307
|
variant: "outlined",
|
|
@@ -2325,7 +2367,7 @@ var AppAuthCard = ({
|
|
|
2325
2367
|
]
|
|
2326
2368
|
}
|
|
2327
2369
|
),
|
|
2328
|
-
/* @__PURE__ */
|
|
2370
|
+
/* @__PURE__ */ jsxs4(Box3, { sx: { display: "flex", alignItems: "center", gap: 2 }, children: [
|
|
2329
2371
|
/* @__PURE__ */ jsx6(Divider, { sx: { flex: 1, borderColor: "hsl(var(--border))" } }),
|
|
2330
2372
|
/* @__PURE__ */ jsx6(Typography3, { sx: { color: "hsl(var(--muted-foreground))", fontSize: "0.875rem" }, children: "OR configure manually" }),
|
|
2331
2373
|
/* @__PURE__ */ jsx6(Divider, { sx: { flex: 1, borderColor: "hsl(var(--border))" } })
|
|
@@ -2353,8 +2395,8 @@ var AppAuthCard = ({
|
|
|
2353
2395
|
}
|
|
2354
2396
|
)
|
|
2355
2397
|
] }),
|
|
2356
|
-
/* @__PURE__ */
|
|
2357
|
-
/* @__PURE__ */
|
|
2398
|
+
/* @__PURE__ */ jsxs4(Box3, { sx: { display: "flex", flexDirection: "column", gap: 2 }, children: [
|
|
2399
|
+
/* @__PURE__ */ jsxs4(Typography3, { variant: "body2", sx: { color: "hsl(var(--muted-foreground))" }, children: [
|
|
2358
2400
|
"Redirect URL: ",
|
|
2359
2401
|
/* @__PURE__ */ jsx6(Typography3, { component: "span", sx: { color: "hsl(var(--primary))", fontWeight: 600 }, children: auth.redirect_uri || "https://shuffler.io/set_authentication" })
|
|
2360
2402
|
] }),
|
|
@@ -2437,7 +2479,7 @@ var AppAuthCard = ({
|
|
|
2437
2479
|
}
|
|
2438
2480
|
}
|
|
2439
2481
|
},
|
|
2440
|
-
children: availableScopes.map((scope) => /* @__PURE__ */
|
|
2482
|
+
children: availableScopes.map((scope) => /* @__PURE__ */ jsxs4(MenuItem, { value: scope, sx: { color: "hsl(var(--foreground))" }, children: [
|
|
2441
2483
|
/* @__PURE__ */ jsx6(
|
|
2442
2484
|
Checkbox,
|
|
2443
2485
|
{
|
|
@@ -2466,7 +2508,7 @@ var AppAuthCard = ({
|
|
|
2466
2508
|
return /* @__PURE__ */ jsx6(
|
|
2467
2509
|
TextField,
|
|
2468
2510
|
{
|
|
2469
|
-
label: /* @__PURE__ */
|
|
2511
|
+
label: /* @__PURE__ */ jsxs4(Box3, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
|
|
2470
2512
|
param.name,
|
|
2471
2513
|
param.required && /* @__PURE__ */ jsx6(Typography3, { component: "span", sx: { color: "hsl(var(--destructive))", fontSize: "0.8rem" }, children: "*" })
|
|
2472
2514
|
] }),
|
|
@@ -2577,14 +2619,14 @@ var AppAuthCard = ({
|
|
|
2577
2619
|
[key]: error2 || ""
|
|
2578
2620
|
}));
|
|
2579
2621
|
};
|
|
2580
|
-
return /* @__PURE__ */
|
|
2581
|
-
/* @__PURE__ */
|
|
2622
|
+
return /* @__PURE__ */ jsxs4(motion2.div, { variants: itemVariants, style: { width: "100%", maxWidth: "100%" }, children: [
|
|
2623
|
+
/* @__PURE__ */ jsxs4(
|
|
2582
2624
|
Card,
|
|
2583
2625
|
{
|
|
2584
2626
|
sx: {
|
|
2585
2627
|
background: "transparent",
|
|
2586
|
-
border: borderless ? "none" : "
|
|
2587
|
-
borderColor: borderless ? "transparent" : isTested ? "hsl(var(--severity-low) / 0.
|
|
2628
|
+
border: borderless ? "none" : "2px solid",
|
|
2629
|
+
borderColor: borderless ? "transparent" : isTested ? "hsl(var(--severity-low) / 0.9)" : authState.status === "error" ? "hsl(var(--destructive) / 0.7)" : "hsl(var(--border))",
|
|
2588
2630
|
borderRadius: borderless ? 0 : 3,
|
|
2589
2631
|
boxShadow: "none",
|
|
2590
2632
|
overflow: "hidden",
|
|
@@ -2593,7 +2635,7 @@ var AppAuthCard = ({
|
|
|
2593
2635
|
maxWidth: "100%"
|
|
2594
2636
|
},
|
|
2595
2637
|
children: [
|
|
2596
|
-
!hideHeader && /* @__PURE__ */
|
|
2638
|
+
!hideHeader && /* @__PURE__ */ jsxs4(
|
|
2597
2639
|
CardContent,
|
|
2598
2640
|
{
|
|
2599
2641
|
onClick: onToggle,
|
|
@@ -2608,7 +2650,7 @@ var AppAuthCard = ({
|
|
|
2608
2650
|
"&:hover": { backgroundColor: "hsl(var(--muted) / 0.35)" }
|
|
2609
2651
|
},
|
|
2610
2652
|
children: [
|
|
2611
|
-
/* @__PURE__ */
|
|
2653
|
+
/* @__PURE__ */ jsxs4(Box3, { sx: { display: "flex", alignItems: "center", gap: 2, flex: 1, minWidth: 0 }, children: [
|
|
2612
2654
|
/* @__PURE__ */ jsx6(
|
|
2613
2655
|
Box3,
|
|
2614
2656
|
{
|
|
@@ -2634,7 +2676,7 @@ var AppAuthCard = ({
|
|
|
2634
2676
|
)
|
|
2635
2677
|
}
|
|
2636
2678
|
),
|
|
2637
|
-
/* @__PURE__ */
|
|
2679
|
+
/* @__PURE__ */ jsxs4(Box3, { sx: { minWidth: 0, flex: 1 }, children: [
|
|
2638
2680
|
/* @__PURE__ */ jsx6(
|
|
2639
2681
|
Typography3,
|
|
2640
2682
|
{
|
|
@@ -2666,7 +2708,7 @@ var AppAuthCard = ({
|
|
|
2666
2708
|
)
|
|
2667
2709
|
] })
|
|
2668
2710
|
] }),
|
|
2669
|
-
/* @__PURE__ */
|
|
2711
|
+
/* @__PURE__ */ jsxs4(Box3, { sx: {
|
|
2670
2712
|
display: "flex",
|
|
2671
2713
|
alignItems: "center",
|
|
2672
2714
|
gap: { xs: 1, sm: 1.5 },
|
|
@@ -2687,7 +2729,7 @@ var AppAuthCard = ({
|
|
|
2687
2729
|
height: { xs: 22, sm: 24 }
|
|
2688
2730
|
}
|
|
2689
2731
|
}
|
|
2690
|
-
) : /* @__PURE__ */
|
|
2732
|
+
) : /* @__PURE__ */ jsxs4(Fragment2, { children: [
|
|
2691
2733
|
/* @__PURE__ */ jsx6(
|
|
2692
2734
|
Chip2,
|
|
2693
2735
|
{
|
|
@@ -2760,7 +2802,7 @@ var AppAuthCard = ({
|
|
|
2760
2802
|
]
|
|
2761
2803
|
}
|
|
2762
2804
|
),
|
|
2763
|
-
/* @__PURE__ */ jsx6(Collapse, { in: isExpanded, children: /* @__PURE__ */
|
|
2805
|
+
/* @__PURE__ */ jsx6(Collapse, { in: isExpanded, children: /* @__PURE__ */ jsxs4(
|
|
2764
2806
|
Box3,
|
|
2765
2807
|
{
|
|
2766
2808
|
sx: {
|
|
@@ -2770,9 +2812,9 @@ var AppAuthCard = ({
|
|
|
2770
2812
|
borderTop: borderless ? "none" : "1px solid hsl(var(--border))"
|
|
2771
2813
|
},
|
|
2772
2814
|
children: [
|
|
2773
|
-
apiAuthEntries.length > 0 && /* @__PURE__ */
|
|
2815
|
+
apiAuthEntries.length > 0 && /* @__PURE__ */ jsxs4(Box3, { sx: { mb: 3 }, children: [
|
|
2774
2816
|
/* @__PURE__ */ jsx6(Typography3, { variant: "body2", sx: { color: "hsl(var(--muted-foreground))", mb: 1 }, children: "Select authentication" }),
|
|
2775
|
-
/* @__PURE__ */ jsx6(FormControl, { fullWidth: true, size: "small", children: /* @__PURE__ */
|
|
2817
|
+
/* @__PURE__ */ jsx6(FormControl, { fullWidth: true, size: "small", children: /* @__PURE__ */ jsxs4(
|
|
2776
2818
|
Select,
|
|
2777
2819
|
{
|
|
2778
2820
|
value: selectedAuthId,
|
|
@@ -2824,8 +2866,8 @@ var AppAuthCard = ({
|
|
|
2824
2866
|
};
|
|
2825
2867
|
const configuredDate = authEntry.created || authEntry.edited;
|
|
2826
2868
|
const lastValidDate = authEntry.validation?.last_valid;
|
|
2827
|
-
return /* @__PURE__ */ jsx6(MenuItem, { value: entryId, sx: { color: "hsl(var(--foreground))", py: 1 }, children: /* @__PURE__ */
|
|
2828
|
-
/* @__PURE__ */
|
|
2869
|
+
return /* @__PURE__ */ jsx6(MenuItem, { value: entryId, sx: { color: "hsl(var(--foreground))", py: 1 }, children: /* @__PURE__ */ jsxs4(Box3, { sx: { display: "flex", alignItems: "center", gap: 1, width: "100%", minWidth: 0 }, children: [
|
|
2870
|
+
/* @__PURE__ */ jsxs4(Box3, { sx: { display: "flex", gap: 0.5, flexShrink: 0 }, children: [
|
|
2829
2871
|
/* @__PURE__ */ jsx6(
|
|
2830
2872
|
Tooltip2,
|
|
2831
2873
|
{
|
|
@@ -2919,7 +2961,7 @@ var AppAuthCard = ({
|
|
|
2919
2961
|
]
|
|
2920
2962
|
}
|
|
2921
2963
|
) }),
|
|
2922
|
-
/* @__PURE__ */
|
|
2964
|
+
/* @__PURE__ */ jsxs4(
|
|
2923
2965
|
Dialog,
|
|
2924
2966
|
{
|
|
2925
2967
|
open: !!deleteConfirmAuthId,
|
|
@@ -2937,9 +2979,9 @@ var AppAuthCard = ({
|
|
|
2937
2979
|
},
|
|
2938
2980
|
children: [
|
|
2939
2981
|
/* @__PURE__ */ jsx6(DialogTitle, { sx: { color: "hsl(var(--foreground))", fontWeight: 600, pb: 1 }, children: "Delete Authentication" }),
|
|
2940
|
-
/* @__PURE__ */
|
|
2982
|
+
/* @__PURE__ */ jsxs4(DialogContent, { children: [
|
|
2941
2983
|
/* @__PURE__ */ jsx6(Typography3, { sx: { color: "hsl(var(--muted-foreground))", mb: 3 }, children: "Are you sure you want to delete this authentication? This action cannot be undone." }),
|
|
2942
|
-
/* @__PURE__ */
|
|
2984
|
+
/* @__PURE__ */ jsxs4(Box3, { sx: { display: "flex", justifyContent: "flex-end", gap: 1.5 }, children: [
|
|
2943
2985
|
/* @__PURE__ */ jsx6(
|
|
2944
2986
|
Button2,
|
|
2945
2987
|
{
|
|
@@ -2987,7 +3029,7 @@ var AppAuthCard = ({
|
|
|
2987
3029
|
]
|
|
2988
3030
|
}
|
|
2989
3031
|
),
|
|
2990
|
-
!showAddNewForm && selectedAuth && /* @__PURE__ */
|
|
3032
|
+
!showAddNewForm && selectedAuth && /* @__PURE__ */ jsxs4(Box3, { sx: {
|
|
2991
3033
|
mt: 2,
|
|
2992
3034
|
p: 0,
|
|
2993
3035
|
backgroundColor: "hsl(var(--muted))",
|
|
@@ -2995,7 +3037,7 @@ var AppAuthCard = ({
|
|
|
2995
3037
|
border: "1px solid hsl(var(--border))",
|
|
2996
3038
|
overflow: "hidden"
|
|
2997
3039
|
}, children: [
|
|
2998
|
-
/* @__PURE__ */
|
|
3040
|
+
/* @__PURE__ */ jsxs4(Box3, { sx: {
|
|
2999
3041
|
display: "flex",
|
|
3000
3042
|
alignItems: "center",
|
|
3001
3043
|
gap: 1.5,
|
|
@@ -3019,14 +3061,14 @@ var AppAuthCard = ({
|
|
|
3019
3061
|
letterSpacing: "0.05em"
|
|
3020
3062
|
}, children: localTestStatus === "success" ? "Verified Authentication" : localTestStatus === "pending_validation" ? "Awaiting Backend Validation" : localTestStatus === "error" ? "Test Failed" : "Pending Verification" })
|
|
3021
3063
|
] }),
|
|
3022
|
-
/* @__PURE__ */
|
|
3064
|
+
/* @__PURE__ */ jsxs4(Box3, { sx: {
|
|
3023
3065
|
display: "flex",
|
|
3024
3066
|
flexDirection: "column",
|
|
3025
3067
|
alignItems: "stretch",
|
|
3026
3068
|
gap: 2,
|
|
3027
3069
|
p: { xs: 2, sm: 2.5 }
|
|
3028
3070
|
}, children: [
|
|
3029
|
-
/* @__PURE__ */
|
|
3071
|
+
/* @__PURE__ */ jsxs4(Box3, { sx: {
|
|
3030
3072
|
display: "flex",
|
|
3031
3073
|
alignItems: "center",
|
|
3032
3074
|
gap: 1.5,
|
|
@@ -3044,8 +3086,8 @@ var AppAuthCard = ({
|
|
|
3044
3086
|
border: `1px solid ${localTestStatus === "success" ? "hsl(var(--severity-low) / 0.2)" : localTestStatus === "pending_validation" ? "hsl(var(--severity-medium) / 0.2)" : localTestStatus === "error" ? "hsl(var(--destructive) / 0.2)" : isTested ? "hsl(var(--severity-low) / 0.2)" : isConfigured ? "hsl(var(--severity-medium) / 0.2)" : "hsl(var(--muted-foreground) / 0.2)"}`,
|
|
3045
3087
|
flexShrink: 0
|
|
3046
3088
|
}, children: /* @__PURE__ */ jsx6(CheckCircleIcon2, { size: 20 }) }),
|
|
3047
|
-
/* @__PURE__ */
|
|
3048
|
-
/* @__PURE__ */ jsx6(Box3, { sx: { display: "flex", alignItems: "center", gap: 0.5 }, children: editingLabel ? /* @__PURE__ */
|
|
3089
|
+
/* @__PURE__ */ jsxs4(Box3, { sx: { minWidth: 0, flex: 1 }, children: [
|
|
3090
|
+
/* @__PURE__ */ jsx6(Box3, { sx: { display: "flex", alignItems: "center", gap: 0.5 }, children: editingLabel ? /* @__PURE__ */ jsxs4(Box3, { sx: { display: "flex", alignItems: "center", gap: 0.5 }, onClick: (e) => e.stopPropagation(), children: [
|
|
3049
3091
|
/* @__PURE__ */ jsx6(
|
|
3050
3092
|
TextField,
|
|
3051
3093
|
{
|
|
@@ -3106,7 +3148,7 @@ var AppAuthCard = ({
|
|
|
3106
3148
|
children: "Cancel"
|
|
3107
3149
|
}
|
|
3108
3150
|
)
|
|
3109
|
-
] }) : /* @__PURE__ */
|
|
3151
|
+
] }) : /* @__PURE__ */ jsxs4(Fragment2, { children: [
|
|
3110
3152
|
/* @__PURE__ */ jsx6(Typography3, { sx: {
|
|
3111
3153
|
color: "hsl(var(--foreground))",
|
|
3112
3154
|
fontWeight: 600,
|
|
@@ -3200,7 +3242,7 @@ var AppAuthCard = ({
|
|
|
3200
3242
|
borderRadius: 2,
|
|
3201
3243
|
"& .MuiAlert-icon": { color: "hsl(var(--destructive))" }
|
|
3202
3244
|
},
|
|
3203
|
-
children: /* @__PURE__ */
|
|
3245
|
+
children: /* @__PURE__ */ jsxs4(Box3, { sx: { display: "flex", alignItems: "center", justifyContent: "space-between", gap: 2, width: "100%" }, children: [
|
|
3204
3246
|
/* @__PURE__ */ jsx6(Typography3, { sx: { fontSize: "0.875rem", flex: 1 }, children: localTestMessages.errorMessage }),
|
|
3205
3247
|
localTestMessages.workflowId && localTestMessages.executionId && /* @__PURE__ */ jsx6(
|
|
3206
3248
|
Button2,
|
|
@@ -3245,7 +3287,7 @@ var AppAuthCard = ({
|
|
|
3245
3287
|
color: localTestMessages.warningMessage ? "hsl(var(--severity-medium))" : "hsl(var(--severity-low))"
|
|
3246
3288
|
}
|
|
3247
3289
|
},
|
|
3248
|
-
children: localTestMessages.warningMessage ? /* @__PURE__ */
|
|
3290
|
+
children: localTestMessages.warningMessage ? /* @__PURE__ */ jsxs4(Box3, { children: [
|
|
3249
3291
|
/* @__PURE__ */ jsx6(Typography3, { sx: { fontWeight: 600, mb: 0.5 }, children: localTestMessages.successMessage || "Connection probably working" }),
|
|
3250
3292
|
/* @__PURE__ */ jsx6(Typography3, { sx: { fontSize: "0.85rem", opacity: 0.9 }, children: localTestMessages.warningMessage })
|
|
3251
3293
|
] }) : localTestMessages.successMessage || "Connection verified successfully"
|
|
@@ -3265,7 +3307,7 @@ var AppAuthCard = ({
|
|
|
3265
3307
|
borderRadius: 2,
|
|
3266
3308
|
"& .MuiAlert-icon": { color: "hsl(var(--severity-medium))" }
|
|
3267
3309
|
},
|
|
3268
|
-
children: /* @__PURE__ */
|
|
3310
|
+
children: /* @__PURE__ */ jsxs4(Box3, { children: [
|
|
3269
3311
|
/* @__PURE__ */ jsx6(Typography3, { sx: { fontWeight: 600, mb: 0.5 }, children: "Test passed (Status 200), but not marked as validated" }),
|
|
3270
3312
|
/* @__PURE__ */ jsx6(Typography3, { sx: { fontSize: "0.85rem", opacity: 0.9, mb: 1 }, children: "The API returned success, but Shuffle hasn't confirmed the validation yet. This could mean credentials are correct but the app needs additional setup." }),
|
|
3271
3313
|
/* @__PURE__ */ jsx6(
|
|
@@ -3288,7 +3330,7 @@ var AppAuthCard = ({
|
|
|
3288
3330
|
) })
|
|
3289
3331
|
] })
|
|
3290
3332
|
] }),
|
|
3291
|
-
(apiAuthEntries.length === 0 || showAddNewForm) && /* @__PURE__ */
|
|
3333
|
+
(apiAuthEntries.length === 0 || showAddNewForm) && /* @__PURE__ */ jsxs4(Box3, { sx: {
|
|
3292
3334
|
p: 3,
|
|
3293
3335
|
backgroundColor: "hsl(var(--background) / 0.4)",
|
|
3294
3336
|
borderRadius: 2,
|
|
@@ -3310,10 +3352,10 @@ var AppAuthCard = ({
|
|
|
3310
3352
|
}
|
|
3311
3353
|
),
|
|
3312
3354
|
/* @__PURE__ */ jsx6(Typography3, { variant: "subtitle2", sx: { color: "hsl(var(--foreground))", fontWeight: 600, mb: 2 }, children: apiAuthEntries.length === 0 ? "Configure Authentication" : "Add New Authentication" }),
|
|
3313
|
-
loading ? /* @__PURE__ */
|
|
3355
|
+
loading ? /* @__PURE__ */ jsxs4(Box3, { sx: { display: "flex", alignItems: "center", justifyContent: "center", py: 4 }, children: [
|
|
3314
3356
|
/* @__PURE__ */ jsx6(CircularProgress2, { size: 32, sx: { color: "hsl(var(--primary))" } }),
|
|
3315
3357
|
/* @__PURE__ */ jsx6(Typography3, { sx: { ml: 2, color: "hsl(var(--muted-foreground))" }, children: "Loading configuration..." })
|
|
3316
|
-
] }) : saving || authState.status === "testing" ? /* @__PURE__ */
|
|
3358
|
+
] }) : saving || authState.status === "testing" ? /* @__PURE__ */ jsxs4(Box3, { sx: { display: "flex", alignItems: "center", justifyContent: "center", py: 4 }, children: [
|
|
3317
3359
|
/* @__PURE__ */ jsx6(CircularProgress2, { size: 32, sx: { color: "hsl(var(--primary))" } }),
|
|
3318
3360
|
/* @__PURE__ */ jsx6(Typography3, { sx: { ml: 2, color: "hsl(var(--muted-foreground))" }, children: saving ? "Saving authentication..." : "Testing connection..." })
|
|
3319
3361
|
] }) : error ? /* @__PURE__ */ jsx6(
|
|
@@ -3339,12 +3381,12 @@ var AppAuthCard = ({
|
|
|
3339
3381
|
borderRadius: 2,
|
|
3340
3382
|
"& .MuiAlert-icon": { color: "hsl(var(--severity-info))" }
|
|
3341
3383
|
},
|
|
3342
|
-
children: /* @__PURE__ */
|
|
3384
|
+
children: /* @__PURE__ */ jsxs4(Box3, { children: [
|
|
3343
3385
|
/* @__PURE__ */ jsx6(Typography3, { sx: { fontWeight: 600, mb: 0.5 }, children: "No authentication required" }),
|
|
3344
3386
|
/* @__PURE__ */ jsx6(Typography3, { sx: { fontSize: "0.85rem", opacity: 0.9 }, children: "This app works without credentials. You can use it directly." })
|
|
3345
3387
|
] })
|
|
3346
3388
|
}
|
|
3347
|
-
) : /* @__PURE__ */
|
|
3389
|
+
) : /* @__PURE__ */ jsxs4(Box3, { sx: { display: "flex", flexDirection: "column", gap: 3 }, children: [
|
|
3348
3390
|
renderOAuth2Fields(),
|
|
3349
3391
|
renderParameterFields(),
|
|
3350
3392
|
authState.status === "error" && authState.errorMessage && /* @__PURE__ */ jsx6(
|
|
@@ -3357,7 +3399,7 @@ var AppAuthCard = ({
|
|
|
3357
3399
|
border: "1px solid hsl(var(--destructive) / 0.3)",
|
|
3358
3400
|
borderRadius: 2
|
|
3359
3401
|
},
|
|
3360
|
-
children: /* @__PURE__ */
|
|
3402
|
+
children: /* @__PURE__ */ jsxs4(Box3, { sx: { display: "flex", alignItems: "center", justifyContent: "space-between", gap: 2, width: "100%" }, children: [
|
|
3361
3403
|
/* @__PURE__ */ jsx6(Typography3, { sx: { fontSize: "0.875rem", flex: 1 }, children: authState.errorMessage }),
|
|
3362
3404
|
authState.workflowId && authState.executionId && /* @__PURE__ */ jsx6(
|
|
3363
3405
|
Button2,
|
|
@@ -3534,7 +3576,7 @@ var AppAuthCard = ({
|
|
|
3534
3576
|
]
|
|
3535
3577
|
}
|
|
3536
3578
|
),
|
|
3537
|
-
/* @__PURE__ */
|
|
3579
|
+
/* @__PURE__ */ jsxs4(
|
|
3538
3580
|
Dialog,
|
|
3539
3581
|
{
|
|
3540
3582
|
open: docsOpen,
|
|
@@ -3553,7 +3595,7 @@ var AppAuthCard = ({
|
|
|
3553
3595
|
}
|
|
3554
3596
|
},
|
|
3555
3597
|
children: [
|
|
3556
|
-
/* @__PURE__ */
|
|
3598
|
+
/* @__PURE__ */ jsxs4(
|
|
3557
3599
|
DialogTitle,
|
|
3558
3600
|
{
|
|
3559
3601
|
sx: {
|
|
@@ -3564,7 +3606,7 @@ var AppAuthCard = ({
|
|
|
3564
3606
|
color: "hsl(var(--foreground))"
|
|
3565
3607
|
},
|
|
3566
3608
|
children: [
|
|
3567
|
-
/* @__PURE__ */
|
|
3609
|
+
/* @__PURE__ */ jsxs4(Box3, { sx: { display: "flex", alignItems: "center", gap: 2 }, children: [
|
|
3568
3610
|
app.image_url && /* @__PURE__ */ jsx6(
|
|
3569
3611
|
Box3,
|
|
3570
3612
|
{
|
|
@@ -3574,7 +3616,7 @@ var AppAuthCard = ({
|
|
|
3574
3616
|
sx: { width: 32, height: 32, borderRadius: 1, objectFit: "contain" }
|
|
3575
3617
|
}
|
|
3576
3618
|
),
|
|
3577
|
-
/* @__PURE__ */
|
|
3619
|
+
/* @__PURE__ */ jsxs4(Typography3, { variant: "h6", sx: { fontWeight: 600 }, children: [
|
|
3578
3620
|
app.name.replace(/_/g, " "),
|
|
3579
3621
|
" Documentation"
|
|
3580
3622
|
] })
|
|
@@ -3583,7 +3625,7 @@ var AppAuthCard = ({
|
|
|
3583
3625
|
]
|
|
3584
3626
|
}
|
|
3585
3627
|
),
|
|
3586
|
-
/* @__PURE__ */ jsx6(DialogContent, { sx: { pt: 3 }, children: docsLoading ? /* @__PURE__ */
|
|
3628
|
+
/* @__PURE__ */ jsx6(DialogContent, { sx: { pt: 3 }, children: docsLoading ? /* @__PURE__ */ jsxs4(Box3, { sx: { display: "flex", alignItems: "center", justifyContent: "center", py: 6 }, children: [
|
|
3587
3629
|
/* @__PURE__ */ jsx6(CircularProgress2, { size: 32, sx: { color: "hsl(var(--primary))" } }),
|
|
3588
3630
|
/* @__PURE__ */ jsx6(Typography3, { sx: { ml: 2, color: "hsl(var(--muted-foreground))" }, children: "Loading documentation..." })
|
|
3589
3631
|
] }) : /* @__PURE__ */ jsx6(
|
|
@@ -3626,8 +3668,14 @@ var AppAuthConfig = ({
|
|
|
3626
3668
|
onTestConnection,
|
|
3627
3669
|
onSaveAuth,
|
|
3628
3670
|
onSelectAuth,
|
|
3629
|
-
onRefreshAuth
|
|
3671
|
+
onRefreshAuth,
|
|
3672
|
+
globalUrl,
|
|
3673
|
+
userdata,
|
|
3674
|
+
isLoaded,
|
|
3675
|
+
isLoggedIn,
|
|
3676
|
+
serverside
|
|
3630
3677
|
}) => {
|
|
3678
|
+
useSyncHostBaseUrl(globalUrl);
|
|
3631
3679
|
const getApiAuthEntries = (app) => {
|
|
3632
3680
|
const normalize = (n) => n.toLowerCase().replace(/[\s_\-]+/g, "_");
|
|
3633
3681
|
return authenticatedApps.filter((auth) => normalize(auth.app?.name || "") === normalize(app.name)).map((auth) => ({
|
|
@@ -3688,7 +3736,7 @@ var AppAuthConfig = ({
|
|
|
3688
3736
|
}
|
|
3689
3737
|
const validatedCount = sortedApps.filter((app) => isAppValidated(app)).length;
|
|
3690
3738
|
const totalCount = sortedApps.length;
|
|
3691
|
-
return /* @__PURE__ */
|
|
3739
|
+
return /* @__PURE__ */ jsxs4(Box3, { sx: { width: "100%", maxWidth: "100%", overflow: "hidden" }, children: [
|
|
3692
3740
|
/* @__PURE__ */ jsx6(
|
|
3693
3741
|
Typography3,
|
|
3694
3742
|
{
|
|
@@ -3730,6 +3778,11 @@ var AppAuthConfig = ({
|
|
|
3730
3778
|
return /* @__PURE__ */ jsx6(
|
|
3731
3779
|
AppAuthCard,
|
|
3732
3780
|
{
|
|
3781
|
+
globalUrl,
|
|
3782
|
+
userdata,
|
|
3783
|
+
isLoaded,
|
|
3784
|
+
isLoggedIn,
|
|
3785
|
+
serverside,
|
|
3733
3786
|
app,
|
|
3734
3787
|
authState,
|
|
3735
3788
|
isExpanded,
|
|
@@ -3747,8 +3800,8 @@ var AppAuthConfig = ({
|
|
|
3747
3800
|
] });
|
|
3748
3801
|
};
|
|
3749
3802
|
|
|
3750
|
-
// AppAuthSection.tsx
|
|
3751
|
-
import { jsx as jsx7, jsxs as
|
|
3803
|
+
// components/AppAuthSection.tsx
|
|
3804
|
+
import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
3752
3805
|
function AppAuthSection({
|
|
3753
3806
|
displayName,
|
|
3754
3807
|
algoliaApp,
|
|
@@ -3764,7 +3817,7 @@ function AppAuthSection({
|
|
|
3764
3817
|
onSaveAuth,
|
|
3765
3818
|
onRefreshAuth
|
|
3766
3819
|
}) {
|
|
3767
|
-
return /* @__PURE__ */ jsx7(motion3.div, { initial: { opacity: 0, y: 12 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.3, delay: 0.1 }, children: /* @__PURE__ */
|
|
3820
|
+
return /* @__PURE__ */ jsx7(motion3.div, { initial: { opacity: 0, y: 12 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.3, delay: 0.1 }, children: /* @__PURE__ */ jsxs5(Box4, { sx: { mb: 3 }, children: [
|
|
3768
3821
|
/* @__PURE__ */ jsx7(Typography4, { sx: { color: "hsl(var(--foreground))", fontWeight: 600, fontSize: "0.95rem", mb: 0.5 }, children: "Authentication" }),
|
|
3769
3822
|
/* @__PURE__ */ jsx7(Typography4, { variant: "body2", sx: { color: "hsl(var(--muted-foreground))", mb: 1.5 }, children: isAuthenticated ? authCount > 0 ? `${authCount} configuration${authCount > 1 ? "s" : ""} found` : "No authentication configured yet" : `Connect your ${displayName} account` }),
|
|
3770
3823
|
isAuthenticated && algoliaApp && resolvedAlgoliaId && /* @__PURE__ */ jsx7(
|
|
@@ -3784,11 +3837,11 @@ function AppAuthSection({
|
|
|
3784
3837
|
] }) });
|
|
3785
3838
|
}
|
|
3786
3839
|
|
|
3787
|
-
// TryMcpSection.tsx
|
|
3840
|
+
// views/TryMcpSection.tsx
|
|
3788
3841
|
import { Box as Box6, Typography as Typography6 } from "@mui/material";
|
|
3789
3842
|
import { motion as motion5 } from "framer-motion";
|
|
3790
3843
|
|
|
3791
|
-
// AppMcpChat.tsx
|
|
3844
|
+
// views/AppMcpChat.tsx
|
|
3792
3845
|
import { useState as useState6, useRef as useRef3, useMemo } from "react";
|
|
3793
3846
|
import {
|
|
3794
3847
|
CheckCircle as CheckCircleOutlineIcon,
|
|
@@ -3808,7 +3861,7 @@ import {
|
|
|
3808
3861
|
// ../assets/singul-agent-icon.png
|
|
3809
3862
|
var singul_agent_icon_default = "data:image/png;base64,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";
|
|
3810
3863
|
|
|
3811
|
-
// AgentIcon.tsx
|
|
3864
|
+
// components/AgentIcon.tsx
|
|
3812
3865
|
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
3813
3866
|
var AgentIcon = ({ size = 16, className, style }) => /* @__PURE__ */ jsx8(
|
|
3814
3867
|
"img",
|
|
@@ -3823,11 +3876,11 @@ var AgentIcon = ({ size = 16, className, style }) => /* @__PURE__ */ jsx8(
|
|
|
3823
3876
|
);
|
|
3824
3877
|
var AgentIcon_default = AgentIcon;
|
|
3825
3878
|
|
|
3826
|
-
// AppMcpChat.tsx
|
|
3879
|
+
// views/AppMcpChat.tsx
|
|
3827
3880
|
import { motion as motion4, AnimatePresence } from "framer-motion";
|
|
3828
3881
|
import ReactMarkdown2 from "react-markdown";
|
|
3829
3882
|
import remarkGfm2 from "remark-gfm";
|
|
3830
|
-
import { jsx as jsx9, jsxs as
|
|
3883
|
+
import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
3831
3884
|
var CATEGORY_SUGGESTIONS = {
|
|
3832
3885
|
"threat": [
|
|
3833
3886
|
"Is 1.2.3.4 a known bad actor?",
|
|
@@ -4078,7 +4131,7 @@ ${JSON.stringify(data, null, 2)}
|
|
|
4078
4131
|
backgroundColor: "hsl(var(--background))",
|
|
4079
4132
|
overflow: "hidden"
|
|
4080
4133
|
},
|
|
4081
|
-
children: /* @__PURE__ */
|
|
4134
|
+
children: /* @__PURE__ */ jsxs6(AnimatePresence, { mode: "wait", children: [
|
|
4082
4135
|
runState === "idle" && /* @__PURE__ */ jsx9(
|
|
4083
4136
|
motion4.div,
|
|
4084
4137
|
{
|
|
@@ -4086,8 +4139,8 @@ ${JSON.stringify(data, null, 2)}
|
|
|
4086
4139
|
animate: { opacity: 1 },
|
|
4087
4140
|
exit: { opacity: 0 },
|
|
4088
4141
|
transition: { duration: 0.15 },
|
|
4089
|
-
children: /* @__PURE__ */
|
|
4090
|
-
/* @__PURE__ */
|
|
4142
|
+
children: /* @__PURE__ */ jsxs6(Box5, { sx: { p: 3, display: "flex", flexDirection: "column", gap: 2.5 }, children: [
|
|
4143
|
+
/* @__PURE__ */ jsxs6(Box5, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
|
|
4091
4144
|
/* @__PURE__ */ jsx9(
|
|
4092
4145
|
Box5,
|
|
4093
4146
|
{
|
|
@@ -4144,7 +4197,7 @@ ${JSON.stringify(data, null, 2)}
|
|
|
4144
4197
|
}
|
|
4145
4198
|
)
|
|
4146
4199
|
] }),
|
|
4147
|
-
/* @__PURE__ */
|
|
4200
|
+
/* @__PURE__ */ jsxs6(
|
|
4148
4201
|
Box5,
|
|
4149
4202
|
{
|
|
4150
4203
|
sx: {
|
|
@@ -4252,11 +4305,11 @@ ${JSON.stringify(data, null, 2)}
|
|
|
4252
4305
|
animate: { opacity: 1 },
|
|
4253
4306
|
exit: { opacity: 0 },
|
|
4254
4307
|
transition: { duration: 0.15 },
|
|
4255
|
-
children: /* @__PURE__ */
|
|
4308
|
+
children: /* @__PURE__ */ jsxs6(Box5, { sx: { p: 3, display: "flex", alignItems: "center", gap: 2 }, children: [
|
|
4256
4309
|
/* @__PURE__ */ jsx9(CircularProgress3, { size: 20, thickness: 5, sx: { color: "hsl(var(--primary))" } }),
|
|
4257
|
-
/* @__PURE__ */
|
|
4310
|
+
/* @__PURE__ */ jsxs6(Box5, { sx: { flex: 1, minWidth: 0 }, children: [
|
|
4258
4311
|
/* @__PURE__ */ jsx9(Typography5, { sx: { fontSize: "0.78rem", fontWeight: 600, color: "hsl(var(--foreground))" }, children: "Executing\u2026" }),
|
|
4259
|
-
/* @__PURE__ */
|
|
4312
|
+
/* @__PURE__ */ jsxs6(
|
|
4260
4313
|
Typography5,
|
|
4261
4314
|
{
|
|
4262
4315
|
sx: {
|
|
@@ -4285,9 +4338,9 @@ ${JSON.stringify(data, null, 2)}
|
|
|
4285
4338
|
animate: { opacity: 1, y: 0 },
|
|
4286
4339
|
exit: { opacity: 0 },
|
|
4287
4340
|
transition: { duration: 0.2 },
|
|
4288
|
-
children: /* @__PURE__ */
|
|
4289
|
-
/* @__PURE__ */
|
|
4290
|
-
/* @__PURE__ */
|
|
4341
|
+
children: /* @__PURE__ */ jsxs6(Box5, { sx: { p: 3, display: "flex", flexDirection: "column", gap: 2 }, children: [
|
|
4342
|
+
/* @__PURE__ */ jsxs6(Box5, { sx: { display: "flex", alignItems: "center", justifyContent: "space-between" }, children: [
|
|
4343
|
+
/* @__PURE__ */ jsxs6(Box5, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
|
|
4291
4344
|
isError ? /* @__PURE__ */ jsx9(ErrorOutlineIcon2, { size: 18, color: "hsl(0 70% 55%)" }) : /* @__PURE__ */ jsx9(CheckCircleOutlineIcon, { size: 18, color: "hsl(145 60% 45%)" }),
|
|
4292
4345
|
/* @__PURE__ */ jsx9(Typography5, { sx: { fontSize: "0.78rem", fontWeight: 600, color: "hsl(var(--foreground))" }, children: isError ? "Failed" : "Completed" })
|
|
4293
4346
|
] }),
|
|
@@ -4315,7 +4368,7 @@ ${JSON.stringify(data, null, 2)}
|
|
|
4315
4368
|
}
|
|
4316
4369
|
)
|
|
4317
4370
|
] }),
|
|
4318
|
-
/* @__PURE__ */
|
|
4371
|
+
/* @__PURE__ */ jsxs6(
|
|
4319
4372
|
Typography5,
|
|
4320
4373
|
{
|
|
4321
4374
|
sx: {
|
|
@@ -4397,10 +4450,10 @@ ${JSON.stringify(data, null, 2)}
|
|
|
4397
4450
|
};
|
|
4398
4451
|
var AppMcpChat_default = AppMcpChat;
|
|
4399
4452
|
|
|
4400
|
-
// TryMcpSection.tsx
|
|
4401
|
-
import { jsx as jsx10, jsxs as
|
|
4453
|
+
// views/TryMcpSection.tsx
|
|
4454
|
+
import { jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
4402
4455
|
function TryMcpSection({ appName, appIcon, appId, categories }) {
|
|
4403
|
-
return /* @__PURE__ */ jsx10(motion5.div, { initial: { opacity: 0, y: 12 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.3, delay: 0.15 }, children: /* @__PURE__ */
|
|
4456
|
+
return /* @__PURE__ */ jsx10(motion5.div, { initial: { opacity: 0, y: 12 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.3, delay: 0.15 }, children: /* @__PURE__ */ jsxs7(Box6, { sx: { mt: 5, mb: 3 }, children: [
|
|
4404
4457
|
/* @__PURE__ */ jsx10(Typography6, { sx: { color: "hsl(var(--foreground))", fontWeight: 600, fontSize: "0.95rem", mb: 1.5 }, children: "Try MCP" }),
|
|
4405
4458
|
/* @__PURE__ */ jsx10(
|
|
4406
4459
|
AppMcpChat_default,
|
|
@@ -4414,8 +4467,8 @@ function TryMcpSection({ appName, appIcon, appId, categories }) {
|
|
|
4414
4467
|
] }) });
|
|
4415
4468
|
}
|
|
4416
4469
|
|
|
4417
|
-
// SingulActionsPreview.tsx
|
|
4418
|
-
import { useState as useState7, useEffect as
|
|
4470
|
+
// components/SingulActionsPreview.tsx
|
|
4471
|
+
import { useState as useState7, useEffect as useEffect6, useMemo as useMemo2, useCallback as useCallback5, useRef as useRef4 } from "react";
|
|
4419
4472
|
import {
|
|
4420
4473
|
Box as Box7,
|
|
4421
4474
|
Typography as Typography7,
|
|
@@ -4438,7 +4491,7 @@ import {
|
|
|
4438
4491
|
import JsonView from "react18-json-view";
|
|
4439
4492
|
import "react18-json-view/src/style.css";
|
|
4440
4493
|
import "react18-json-view/src/dark.css";
|
|
4441
|
-
import { Fragment as Fragment3, jsx as jsx11, jsxs as
|
|
4494
|
+
import { Fragment as Fragment3, jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
4442
4495
|
import { createElement } from "react";
|
|
4443
4496
|
var deepParseJsonStrings = (obj, depth = 0) => {
|
|
4444
4497
|
if (depth > 5) return obj;
|
|
@@ -4718,7 +4771,7 @@ var SingulActionsPreview = ({
|
|
|
4718
4771
|
(action, l) => l === "python" ? buildSingulPython(appName, action, curlOpts) : buildSingulCurl(appName, action, curlOpts),
|
|
4719
4772
|
[appName, curlOpts]
|
|
4720
4773
|
);
|
|
4721
|
-
|
|
4774
|
+
useEffect6(() => {
|
|
4722
4775
|
const initial = sortedActions[0] || null;
|
|
4723
4776
|
setSelected(initial);
|
|
4724
4777
|
setSnippet(buildSnippet(initial, lang));
|
|
@@ -4808,8 +4861,8 @@ var SingulActionsPreview = ({
|
|
|
4808
4861
|
}
|
|
4809
4862
|
};
|
|
4810
4863
|
const lineCount = useMemo2(() => Math.max(snippet.split("\n").length, 1), [snippet]);
|
|
4811
|
-
return /* @__PURE__ */
|
|
4812
|
-
/* @__PURE__ */
|
|
4864
|
+
return /* @__PURE__ */ jsxs8(Box7, { sx: { mt: 5, mb: 3, opacity: isDisabled ? 0.55 : 1 }, children: [
|
|
4865
|
+
/* @__PURE__ */ jsxs8(Box7, { sx: { display: "flex", alignItems: "center", gap: 1, mb: 1.5 }, children: [
|
|
4813
4866
|
/* @__PURE__ */ jsx11(Typography7, { sx: { color: "hsl(var(--foreground))", fontWeight: 600, fontSize: "0.95rem" }, children: "Try individual actions" }),
|
|
4814
4867
|
/* @__PURE__ */ jsx11(
|
|
4815
4868
|
Chip4,
|
|
@@ -4820,7 +4873,7 @@ var SingulActionsPreview = ({
|
|
|
4820
4873
|
}
|
|
4821
4874
|
)
|
|
4822
4875
|
] }),
|
|
4823
|
-
/* @__PURE__ */
|
|
4876
|
+
/* @__PURE__ */ jsxs8(
|
|
4824
4877
|
Box7,
|
|
4825
4878
|
{
|
|
4826
4879
|
sx: {
|
|
@@ -4845,7 +4898,7 @@ var SingulActionsPreview = ({
|
|
|
4845
4898
|
}
|
|
4846
4899
|
},
|
|
4847
4900
|
children: [
|
|
4848
|
-
isDisabled ? /* @__PURE__ */ jsx11(Typography7, { sx: { fontSize: "0.75rem", color: "hsl(var(--muted-foreground))", fontStyle: "italic", textAlign: "center", py: 1 }, children: "No category detected for this app" }) : /* @__PURE__ */
|
|
4901
|
+
isDisabled ? /* @__PURE__ */ jsx11(Typography7, { sx: { fontSize: "0.75rem", color: "hsl(var(--muted-foreground))", fontStyle: "italic", textAlign: "center", py: 1 }, children: "No category detected for this app" }) : /* @__PURE__ */ jsxs8(Fragment3, { children: [
|
|
4849
4902
|
/* @__PURE__ */ jsx11(Box7, { sx: { display: "flex", gap: 1, mb: 1.5, alignItems: "center" }, children: /* @__PURE__ */ jsx11(
|
|
4850
4903
|
Autocomplete,
|
|
4851
4904
|
{
|
|
@@ -4857,7 +4910,7 @@ var SingulActionsPreview = ({
|
|
|
4857
4910
|
groupBy: (o) => o.category,
|
|
4858
4911
|
getOptionLabel: (o) => o?.label ?? "",
|
|
4859
4912
|
isOptionEqualToValue: (a, b) => a?.name === b?.name && a?.category === b?.category,
|
|
4860
|
-
renderOption: (props, option) => /* @__PURE__ */ createElement("li", { ...props, key: `${option.category}-${option.name}` }, /* @__PURE__ */
|
|
4913
|
+
renderOption: (props, option) => /* @__PURE__ */ createElement("li", { ...props, key: `${option.category}-${option.name}` }, /* @__PURE__ */ jsxs8(Box7, { sx: { display: "flex", flexDirection: "column" }, children: [
|
|
4861
4914
|
/* @__PURE__ */ jsx11(Typography7, { sx: { fontSize: "0.78rem", color: "hsl(var(--foreground))" }, children: option.label }),
|
|
4862
4915
|
/* @__PURE__ */ jsx11(Typography7, { sx: { fontFamily: "'JetBrains Mono', monospace", fontSize: "0.65rem", color: "hsl(var(--muted-foreground))" }, children: option.name })
|
|
4863
4916
|
] })),
|
|
@@ -4894,7 +4947,7 @@ var SingulActionsPreview = ({
|
|
|
4894
4947
|
renderInput: (params) => /* @__PURE__ */ jsx11(TextField2, { ...params, placeholder: "Select action" })
|
|
4895
4948
|
}
|
|
4896
4949
|
) }),
|
|
4897
|
-
/* @__PURE__ */
|
|
4950
|
+
/* @__PURE__ */ jsxs8(
|
|
4898
4951
|
Box7,
|
|
4899
4952
|
{
|
|
4900
4953
|
sx: {
|
|
@@ -4906,7 +4959,7 @@ var SingulActionsPreview = ({
|
|
|
4906
4959
|
boxShadow: "0 8px 24px -12px hsl(var(--primary) / 0.25)"
|
|
4907
4960
|
},
|
|
4908
4961
|
children: [
|
|
4909
|
-
/* @__PURE__ */
|
|
4962
|
+
/* @__PURE__ */ jsxs8(
|
|
4910
4963
|
Box7,
|
|
4911
4964
|
{
|
|
4912
4965
|
sx: {
|
|
@@ -5004,7 +5057,7 @@ var SingulActionsPreview = ({
|
|
|
5004
5057
|
]
|
|
5005
5058
|
}
|
|
5006
5059
|
),
|
|
5007
|
-
/* @__PURE__ */
|
|
5060
|
+
/* @__PURE__ */ jsxs8(Box7, { sx: { display: "flex", minHeight: 270 }, children: [
|
|
5008
5061
|
/* @__PURE__ */ jsx11(
|
|
5009
5062
|
Box7,
|
|
5010
5063
|
{
|
|
@@ -5026,7 +5079,7 @@ var SingulActionsPreview = ({
|
|
|
5026
5079
|
children: Array.from({ length: lineCount }, (_, i) => /* @__PURE__ */ jsx11("div", { children: i + 1 }, i))
|
|
5027
5080
|
}
|
|
5028
5081
|
),
|
|
5029
|
-
/* @__PURE__ */
|
|
5082
|
+
/* @__PURE__ */ jsxs8(Box7, { sx: { flex: 1, position: "relative", minHeight: 270 }, children: [
|
|
5030
5083
|
/* @__PURE__ */ jsx11(
|
|
5031
5084
|
Box7,
|
|
5032
5085
|
{
|
|
@@ -5107,8 +5160,8 @@ var SingulActionsPreview = ({
|
|
|
5107
5160
|
target.scrollIntoView({ behavior: "smooth", block: "start" });
|
|
5108
5161
|
}
|
|
5109
5162
|
};
|
|
5110
|
-
return /* @__PURE__ */
|
|
5111
|
-
needsAuth && /* @__PURE__ */
|
|
5163
|
+
return /* @__PURE__ */ jsxs8(Box7, { ref: responseRef, sx: { mt: 1.5 }, children: [
|
|
5164
|
+
needsAuth && /* @__PURE__ */ jsxs8(
|
|
5112
5165
|
Box7,
|
|
5113
5166
|
{
|
|
5114
5167
|
sx: {
|
|
@@ -5123,14 +5176,14 @@ var SingulActionsPreview = ({
|
|
|
5123
5176
|
},
|
|
5124
5177
|
children: [
|
|
5125
5178
|
/* @__PURE__ */ jsx11(LockIcon2, { size: 22, color: "hsl(var(--severity-medium))" }),
|
|
5126
|
-
/* @__PURE__ */
|
|
5127
|
-
/* @__PURE__ */
|
|
5179
|
+
/* @__PURE__ */ jsxs8(Box7, { sx: { flex: 1, minWidth: 0 }, children: [
|
|
5180
|
+
/* @__PURE__ */ jsxs8(Typography7, { sx: { fontSize: "0.85rem", fontWeight: 600, color: "hsl(var(--foreground))" }, children: [
|
|
5128
5181
|
pretty,
|
|
5129
5182
|
" requires authentication"
|
|
5130
5183
|
] }),
|
|
5131
5184
|
/* @__PURE__ */ jsx11(Typography7, { sx: { fontSize: "0.75rem", color: "hsl(var(--muted-foreground))" }, children: typeof parsedResult?.reason === "string" && parsedResult.reason ? parsedResult.reason : `Connect your ${pretty} account so this action can run, then try again.` })
|
|
5132
5185
|
] }),
|
|
5133
|
-
/* @__PURE__ */
|
|
5186
|
+
/* @__PURE__ */ jsxs8(
|
|
5134
5187
|
Button3,
|
|
5135
5188
|
{
|
|
5136
5189
|
variant: "outlined",
|
|
@@ -5165,7 +5218,7 @@ var SingulActionsPreview = ({
|
|
|
5165
5218
|
]
|
|
5166
5219
|
}
|
|
5167
5220
|
),
|
|
5168
|
-
/* @__PURE__ */
|
|
5221
|
+
/* @__PURE__ */ jsxs8(Box7, { sx: { display: "flex", alignItems: "center", gap: 0.75, mb: 0.5 }, children: [
|
|
5169
5222
|
/* @__PURE__ */ jsx11(Box7, { sx: { width: 6, height: 6, borderRadius: "50%", backgroundColor: needsAuth ? "hsl(var(--severity-medium))" : "hsl(140 60% 55%)" } }),
|
|
5170
5223
|
/* @__PURE__ */ jsx11(Typography7, { sx: { fontFamily: "'JetBrains Mono', monospace", fontSize: "0.65rem", color: "hsl(var(--muted-foreground))", letterSpacing: 0.4 }, children: "response" })
|
|
5171
5224
|
] }),
|
|
@@ -5230,8 +5283,8 @@ var SingulActionsPreview = ({
|
|
|
5230
5283
|
};
|
|
5231
5284
|
var SingulActionsPreview_default = SingulActionsPreview;
|
|
5232
5285
|
|
|
5233
|
-
// AppDetailDrawer.tsx
|
|
5234
|
-
import { Fragment as Fragment4, jsx as jsx12, jsxs as
|
|
5286
|
+
// views/AppDetailDrawer.tsx
|
|
5287
|
+
import { Fragment as Fragment4, jsx as jsx12, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
5235
5288
|
function AppDetailDrawer({
|
|
5236
5289
|
open,
|
|
5237
5290
|
onClose,
|
|
@@ -5262,7 +5315,7 @@ function AppDetailDrawer({
|
|
|
5262
5315
|
handleSaveAuth,
|
|
5263
5316
|
refreshAuth
|
|
5264
5317
|
} = useAppAuth();
|
|
5265
|
-
|
|
5318
|
+
useEffect7(() => {
|
|
5266
5319
|
if (!open || !appName) return;
|
|
5267
5320
|
setAppLoading(true);
|
|
5268
5321
|
setAppInfo(null);
|
|
@@ -5354,7 +5407,7 @@ function AppDetailDrawer({
|
|
|
5354
5407
|
setAppLoading(false);
|
|
5355
5408
|
})();
|
|
5356
5409
|
}, [open, appName, appId]);
|
|
5357
|
-
|
|
5410
|
+
useEffect7(() => {
|
|
5358
5411
|
if (!open || !appName || !isAuthenticated) {
|
|
5359
5412
|
setIncidentStats(null);
|
|
5360
5413
|
return;
|
|
@@ -5423,12 +5476,12 @@ function AppDetailDrawer({
|
|
|
5423
5476
|
const effectiveActivated = isActivated === null ? hasAnyAuth ? true : null : isActivated || hasAnyAuth;
|
|
5424
5477
|
const authCount = matchingEntries.length;
|
|
5425
5478
|
const displayName = (appInfo?.name || appName || "").replace(/_/g, " ");
|
|
5426
|
-
|
|
5479
|
+
useEffect7(() => {
|
|
5427
5480
|
if (lastValidAuthRef.current === hasValidAuth) return;
|
|
5428
5481
|
lastValidAuthRef.current = hasValidAuth;
|
|
5429
5482
|
setAuthExpanded(!hasValidAuth);
|
|
5430
5483
|
}, [hasValidAuth]);
|
|
5431
|
-
|
|
5484
|
+
useEffect7(() => {
|
|
5432
5485
|
lastValidAuthRef.current = null;
|
|
5433
5486
|
}, [appName]);
|
|
5434
5487
|
const handleActivateToggle = async () => {
|
|
@@ -5469,7 +5522,7 @@ function AppDetailDrawer({
|
|
|
5469
5522
|
}
|
|
5470
5523
|
};
|
|
5471
5524
|
const isLoadingAll = appLoading || isAuthenticated && appAuthLoading;
|
|
5472
|
-
return /* @__PURE__ */
|
|
5525
|
+
return /* @__PURE__ */ jsxs9(
|
|
5473
5526
|
Drawer,
|
|
5474
5527
|
{
|
|
5475
5528
|
anchor,
|
|
@@ -5485,7 +5538,7 @@ function AppDetailDrawer({
|
|
|
5485
5538
|
}
|
|
5486
5539
|
},
|
|
5487
5540
|
children: [
|
|
5488
|
-
/* @__PURE__ */
|
|
5541
|
+
/* @__PURE__ */ jsxs9(
|
|
5489
5542
|
Box8,
|
|
5490
5543
|
{
|
|
5491
5544
|
sx: {
|
|
@@ -5498,7 +5551,7 @@ function AppDetailDrawer({
|
|
|
5498
5551
|
flexShrink: 0
|
|
5499
5552
|
},
|
|
5500
5553
|
children: [
|
|
5501
|
-
/* @__PURE__ */
|
|
5554
|
+
/* @__PURE__ */ jsxs9(Box8, { sx: { flex: 1 }, children: [
|
|
5502
5555
|
/* @__PURE__ */ jsx12(Typography8, { sx: { color: "hsl(var(--foreground))", fontWeight: 700, fontSize: "1rem", lineHeight: 1.2, textTransform: "capitalize" }, children: isLoadingAll ? /* @__PURE__ */ jsx12(Skeleton, { width: 140 }) : displayName }),
|
|
5503
5556
|
/* @__PURE__ */ jsx12(Typography8, { sx: { color: "hsl(var(--muted-foreground))", fontSize: "0.75rem" }, children: "App configuration" })
|
|
5504
5557
|
] }),
|
|
@@ -5514,16 +5567,16 @@ function AppDetailDrawer({
|
|
|
5514
5567
|
]
|
|
5515
5568
|
}
|
|
5516
5569
|
),
|
|
5517
|
-
/* @__PURE__ */ jsx12(Box8, { sx: { flex: 1, overflowY: "auto", p: 3 }, children: isLoadingAll ? /* @__PURE__ */
|
|
5518
|
-
/* @__PURE__ */
|
|
5570
|
+
/* @__PURE__ */ jsx12(Box8, { sx: { flex: 1, overflowY: "auto", p: 3 }, children: isLoadingAll ? /* @__PURE__ */ jsxs9(Box8, { children: [
|
|
5571
|
+
/* @__PURE__ */ jsxs9(Box8, { sx: { display: "flex", gap: 2, mb: 3 }, children: [
|
|
5519
5572
|
/* @__PURE__ */ jsx12(Skeleton, { variant: "circular", width: 56, height: 56 }),
|
|
5520
|
-
/* @__PURE__ */
|
|
5573
|
+
/* @__PURE__ */ jsxs9(Box8, { sx: { flex: 1 }, children: [
|
|
5521
5574
|
/* @__PURE__ */ jsx12(Skeleton, { width: 180, height: 28 }),
|
|
5522
5575
|
/* @__PURE__ */ jsx12(Skeleton, { width: 260, height: 18, sx: { mt: 0.5 } })
|
|
5523
5576
|
] })
|
|
5524
5577
|
] }),
|
|
5525
5578
|
/* @__PURE__ */ jsx12(Skeleton, { variant: "rectangular", height: 160, sx: { borderRadius: 2 } })
|
|
5526
|
-
] }) : /* @__PURE__ */
|
|
5579
|
+
] }) : /* @__PURE__ */ jsxs9(Fragment4, { children: [
|
|
5527
5580
|
/* @__PURE__ */ jsx12(
|
|
5528
5581
|
AppTitleHeader,
|
|
5529
5582
|
{
|
|
@@ -5542,7 +5595,7 @@ function AppDetailDrawer({
|
|
|
5542
5595
|
} : void 0
|
|
5543
5596
|
}
|
|
5544
5597
|
),
|
|
5545
|
-
isAuthenticated && incidentStats && incidentStats.ingested > 0 && /* @__PURE__ */ jsx12(motion6.div, { initial: { opacity: 0, y: 12 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.3, delay: 0.08 }, children: /* @__PURE__ */
|
|
5598
|
+
isAuthenticated && incidentStats && incidentStats.ingested > 0 && /* @__PURE__ */ jsx12(motion6.div, { initial: { opacity: 0, y: 12 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.3, delay: 0.08 }, children: /* @__PURE__ */ jsxs9(Box8, { sx: {
|
|
5546
5599
|
display: "flex",
|
|
5547
5600
|
gap: 2,
|
|
5548
5601
|
mb: 3,
|
|
@@ -5551,16 +5604,16 @@ function AppDetailDrawer({
|
|
|
5551
5604
|
border: "1px solid hsl(var(--border))",
|
|
5552
5605
|
bgcolor: "hsl(var(--muted) / 0.3)"
|
|
5553
5606
|
}, children: [
|
|
5554
|
-
/* @__PURE__ */
|
|
5607
|
+
/* @__PURE__ */ jsxs9(Box8, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
|
|
5555
5608
|
/* @__PURE__ */ jsx12(Download, { size: 14, style: { color: "hsl(var(--primary))" } }),
|
|
5556
|
-
/* @__PURE__ */
|
|
5609
|
+
/* @__PURE__ */ jsxs9(Box8, { children: [
|
|
5557
5610
|
/* @__PURE__ */ jsx12(Typography8, { sx: { fontSize: "1.1rem", fontWeight: 700, color: "hsl(var(--foreground))", lineHeight: 1 }, children: incidentStats.ingested }),
|
|
5558
5611
|
/* @__PURE__ */ jsx12(Typography8, { sx: { fontSize: "0.65rem", color: "hsl(var(--muted-foreground))", fontWeight: 500 }, children: "Incidents ingested" })
|
|
5559
5612
|
] })
|
|
5560
5613
|
] }),
|
|
5561
|
-
incidentStats.forwarded > 0 && /* @__PURE__ */
|
|
5614
|
+
incidentStats.forwarded > 0 && /* @__PURE__ */ jsxs9(Box8, { sx: { display: "flex", alignItems: "center", gap: 1, ml: 2, pl: 2, borderLeft: "1px solid hsl(var(--border))" }, children: [
|
|
5562
5615
|
/* @__PURE__ */ jsx12(Forward, { size: 14, style: { color: "hsl(var(--severity-low))" } }),
|
|
5563
|
-
/* @__PURE__ */
|
|
5616
|
+
/* @__PURE__ */ jsxs9(Box8, { children: [
|
|
5564
5617
|
/* @__PURE__ */ jsx12(Typography8, { sx: { fontSize: "1.1rem", fontWeight: 700, color: "hsl(var(--foreground))", lineHeight: 1 }, children: incidentStats.forwarded }),
|
|
5565
5618
|
/* @__PURE__ */ jsx12(Typography8, { sx: { fontSize: "0.65rem", color: "hsl(var(--muted-foreground))", fontWeight: 500 }, children: "Forwarded" })
|
|
5566
5619
|
] })
|
|
@@ -5584,7 +5637,7 @@ function AppDetailDrawer({
|
|
|
5584
5637
|
onRefreshAuth: refreshAuth
|
|
5585
5638
|
}
|
|
5586
5639
|
) }),
|
|
5587
|
-
isAuthenticated && /* @__PURE__ */
|
|
5640
|
+
isAuthenticated && /* @__PURE__ */ jsxs9(Fragment4, { children: [
|
|
5588
5641
|
/* @__PURE__ */ jsx12(
|
|
5589
5642
|
TryMcpSection,
|
|
5590
5643
|
{
|
|
@@ -5602,13 +5655,13 @@ function AppDetailDrawer({
|
|
|
5602
5655
|
);
|
|
5603
5656
|
}
|
|
5604
5657
|
|
|
5605
|
-
// ShuffleMCP.tsx
|
|
5606
|
-
import "./shuffle-mcp-
|
|
5658
|
+
// views/ShuffleMCP.tsx
|
|
5659
|
+
import "./shuffle-mcp-ER33P3W2.css";
|
|
5607
5660
|
|
|
5608
|
-
// SegmentedControl.tsx
|
|
5661
|
+
// components/SegmentedControl.tsx
|
|
5609
5662
|
import * as React2 from "react";
|
|
5610
5663
|
import { motion as motion7, LayoutGroup } from "framer-motion";
|
|
5611
|
-
import { jsx as jsx13, jsxs as
|
|
5664
|
+
import { jsx as jsx13, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
5612
5665
|
var SIZE = {
|
|
5613
5666
|
sm: {
|
|
5614
5667
|
containerPadding: "2px",
|
|
@@ -5695,7 +5748,7 @@ function SegmentedControl({
|
|
|
5695
5748
|
const isAction = opt.type === "action";
|
|
5696
5749
|
const active = !isAction && opt.value === value;
|
|
5697
5750
|
const key = isAction ? opt.key : opt.value;
|
|
5698
|
-
return /* @__PURE__ */
|
|
5751
|
+
return /* @__PURE__ */ jsxs10(
|
|
5699
5752
|
"button",
|
|
5700
5753
|
{
|
|
5701
5754
|
type: "button",
|
|
@@ -5802,17 +5855,8 @@ function SegmentedControl({
|
|
|
5802
5855
|
) });
|
|
5803
5856
|
}
|
|
5804
5857
|
|
|
5805
|
-
//
|
|
5806
|
-
import {
|
|
5807
|
-
var useSyncHostBaseUrl = (globalUrl) => {
|
|
5808
|
-
useEffect7(() => {
|
|
5809
|
-
if (!globalUrl) return;
|
|
5810
|
-
setHostBaseUrl(globalUrl);
|
|
5811
|
-
}, [globalUrl]);
|
|
5812
|
-
};
|
|
5813
|
-
|
|
5814
|
-
// ShuffleMCP.tsx
|
|
5815
|
-
import { Fragment as Fragment5, jsx as jsx14, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
5858
|
+
// views/ShuffleMCP.tsx
|
|
5859
|
+
import { Fragment as Fragment5, jsx as jsx14, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
5816
5860
|
var DEFAULT_ALGOLIA_APP_ID = "JNSS5CFDZZ";
|
|
5817
5861
|
var DEFAULT_ALGOLIA_API_KEY = "33e4e3564f4f060e96e0531957bed552";
|
|
5818
5862
|
var DEFAULT_ALGOLIA_INDEX = "appsearch";
|
|
@@ -6173,8 +6217,8 @@ var ShuffleMCP = React3.forwardRef(({
|
|
|
6173
6217
|
...selected ? customStyles.selectedItem : {}
|
|
6174
6218
|
},
|
|
6175
6219
|
onClick: () => selectApp(app),
|
|
6176
|
-
children: /* @__PURE__ */
|
|
6177
|
-
/* @__PURE__ */
|
|
6220
|
+
children: /* @__PURE__ */ jsxs11("div", { className: "singul-app-info", style: customStyles.appInfo, children: [
|
|
6221
|
+
/* @__PURE__ */ jsxs11("div", { style: { position: "relative", flexShrink: 0 }, children: [
|
|
6178
6222
|
/* @__PURE__ */ jsx14(
|
|
6179
6223
|
AppFallbackIcon,
|
|
6180
6224
|
{
|
|
@@ -6192,8 +6236,8 @@ var ShuffleMCP = React3.forwardRef(({
|
|
|
6192
6236
|
}
|
|
6193
6237
|
)
|
|
6194
6238
|
] }),
|
|
6195
|
-
/* @__PURE__ */
|
|
6196
|
-
/* @__PURE__ */
|
|
6239
|
+
/* @__PURE__ */ jsxs11("div", { className: "singul-app-details", style: customStyles.appDetails, children: [
|
|
6240
|
+
/* @__PURE__ */ jsxs11(
|
|
6197
6241
|
"span",
|
|
6198
6242
|
{
|
|
6199
6243
|
className: "singul-app-name",
|
|
@@ -6234,15 +6278,15 @@ var ShuffleMCP = React3.forwardRef(({
|
|
|
6234
6278
|
app.objectID
|
|
6235
6279
|
);
|
|
6236
6280
|
};
|
|
6237
|
-
return /* @__PURE__ */
|
|
6281
|
+
return /* @__PURE__ */ jsxs11(
|
|
6238
6282
|
"div",
|
|
6239
6283
|
{
|
|
6240
6284
|
ref: containerRef,
|
|
6241
6285
|
className: `singul-container ${inline ? "singul-inline" : ""} ${className}`,
|
|
6242
6286
|
style: customStyles.container,
|
|
6243
6287
|
children: [
|
|
6244
|
-
/* @__PURE__ */
|
|
6245
|
-
/* @__PURE__ */
|
|
6288
|
+
/* @__PURE__ */ jsxs11("div", { className: "singul-search-bar-container", children: [
|
|
6289
|
+
/* @__PURE__ */ jsxs11("div", { className: "singul-search-input-wrapper", style: customStyles.inputWrapper, children: [
|
|
6246
6290
|
/* @__PURE__ */ jsx14(
|
|
6247
6291
|
"input",
|
|
6248
6292
|
{
|
|
@@ -6262,7 +6306,7 @@ var ShuffleMCP = React3.forwardRef(({
|
|
|
6262
6306
|
autoComplete: "off"
|
|
6263
6307
|
}
|
|
6264
6308
|
),
|
|
6265
|
-
/* @__PURE__ */ jsx14("div", { className: "singul-search-icon", style: customStyles.searchIcon, children: /* @__PURE__ */
|
|
6309
|
+
/* @__PURE__ */ jsx14("div", { className: "singul-search-icon", style: customStyles.searchIcon, children: /* @__PURE__ */ jsxs11("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [
|
|
6266
6310
|
/* @__PURE__ */ jsx14("circle", { cx: "11", cy: "11", r: "8" }),
|
|
6267
6311
|
/* @__PURE__ */ jsx14("path", { d: "m21 21-4.35-4.35" })
|
|
6268
6312
|
] }) }),
|
|
@@ -6291,7 +6335,7 @@ var ShuffleMCP = React3.forwardRef(({
|
|
|
6291
6335
|
...getGridColumnsStyle,
|
|
6292
6336
|
...layout === "grid" ? { display: "grid" } : {}
|
|
6293
6337
|
},
|
|
6294
|
-
children: displayResults.length > 0 ? /* @__PURE__ */
|
|
6338
|
+
children: displayResults.length > 0 ? /* @__PURE__ */ jsxs11(Fragment5, { children: [
|
|
6295
6339
|
displayResults.map((app, index) => renderAppItem(app, index)),
|
|
6296
6340
|
/* @__PURE__ */ jsx14("div", { className: "singul-end-of-results", style: {
|
|
6297
6341
|
padding: "10px 16px",
|
|
@@ -6300,14 +6344,14 @@ var ShuffleMCP = React3.forwardRef(({
|
|
|
6300
6344
|
fontSize: "11px",
|
|
6301
6345
|
gridColumn: "1 / -1"
|
|
6302
6346
|
}, children: "Can't find what you're looking for? Try a different search term." })
|
|
6303
|
-
] }) : query.trim() ? /* @__PURE__ */ jsx14("div", { className: "singul-empty-state", style: customStyles.emptyState, children: searchError ? /* @__PURE__ */
|
|
6347
|
+
] }) : query.trim() ? /* @__PURE__ */ jsx14("div", { className: "singul-empty-state", style: customStyles.emptyState, children: searchError ? /* @__PURE__ */ jsxs11("div", { style: { display: "flex", flexDirection: "column", gap: 4, alignItems: "center", color: searchError.rateLimited ? "hsl(var(--severity-medium))" : "hsl(var(--destructive))" }, children: [
|
|
6304
6348
|
/* @__PURE__ */ jsx14("strong", { style: { fontSize: 13 }, children: searchError.rateLimited ? "Algolia rate limit reached (429)" : "Search unavailable" }),
|
|
6305
6349
|
/* @__PURE__ */ jsx14("span", { style: { fontSize: 12, color: "hsl(var(--muted-foreground))" }, children: searchError.message })
|
|
6306
|
-
] }) : renderEmptyState ? renderEmptyState() : /* @__PURE__ */
|
|
6350
|
+
] }) : renderEmptyState ? renderEmptyState() : /* @__PURE__ */ jsxs11(Fragment5, { children: [
|
|
6307
6351
|
'No integrations match "',
|
|
6308
6352
|
query,
|
|
6309
6353
|
'". Try searching for a different app or category.'
|
|
6310
|
-
] }) }) : /* @__PURE__ */ jsx14("div", { className: "singul-empty-state", style: customStyles.emptyState, children: searchError ? /* @__PURE__ */
|
|
6354
|
+
] }) }) : /* @__PURE__ */ jsx14("div", { className: "singul-empty-state", style: customStyles.emptyState, children: searchError ? /* @__PURE__ */ jsxs11("div", { style: { display: "flex", flexDirection: "column", gap: 4, alignItems: "center", color: searchError.rateLimited ? "hsl(var(--severity-medium))" : "hsl(var(--destructive))" }, children: [
|
|
6311
6355
|
/* @__PURE__ */ jsx14("strong", { style: { fontSize: 13 }, children: searchError.rateLimited ? "Algolia rate limit reached (429)" : "Search unavailable" }),
|
|
6312
6356
|
/* @__PURE__ */ jsx14("span", { style: { fontSize: 12, color: "hsl(var(--muted-foreground))" }, children: searchError.message })
|
|
6313
6357
|
] }) : /* @__PURE__ */ jsx14(Fragment5, { children: "Start typing to search integrations..." }) })
|
|
@@ -6322,10 +6366,10 @@ var ShuffleMCP = React3.forwardRef(({
|
|
|
6322
6366
|
...getGridColumnsStyle,
|
|
6323
6367
|
...layout === "grid" ? { display: "grid" } : {}
|
|
6324
6368
|
},
|
|
6325
|
-
children: displayResults.length > 0 ? displayResults.map((app, index) => renderAppItem(app, index)) : /* @__PURE__ */ jsx14("div", { className: "singul-empty-state", style: customStyles.emptyState, children: searchError ? /* @__PURE__ */
|
|
6369
|
+
children: displayResults.length > 0 ? displayResults.map((app, index) => renderAppItem(app, index)) : /* @__PURE__ */ jsx14("div", { className: "singul-empty-state", style: customStyles.emptyState, children: searchError ? /* @__PURE__ */ jsxs11("div", { style: { display: "flex", flexDirection: "column", gap: 4, alignItems: "center", color: searchError.rateLimited ? "hsl(var(--severity-medium))" : "hsl(var(--destructive))" }, children: [
|
|
6326
6370
|
/* @__PURE__ */ jsx14("strong", { style: { fontSize: 13 }, children: searchError.rateLimited ? "Algolia rate limit reached (429)" : "Search unavailable" }),
|
|
6327
6371
|
/* @__PURE__ */ jsx14("span", { style: { fontSize: 12, color: "hsl(var(--muted-foreground))" }, children: searchError.message })
|
|
6328
|
-
] }) : renderEmptyState ? renderEmptyState() : /* @__PURE__ */
|
|
6372
|
+
] }) : renderEmptyState ? renderEmptyState() : /* @__PURE__ */ jsxs11(Fragment5, { children: [
|
|
6329
6373
|
'No apps found for "',
|
|
6330
6374
|
query,
|
|
6331
6375
|
'"'
|
|
@@ -6350,14 +6394,14 @@ var ShuffleMCP = React3.forwardRef(({
|
|
|
6350
6394
|
});
|
|
6351
6395
|
ShuffleMCP.displayName = "ShuffleMCP";
|
|
6352
6396
|
|
|
6353
|
-
// AppSearchDrawer.tsx
|
|
6397
|
+
// views/AppSearchDrawer.tsx
|
|
6354
6398
|
import { useState as useState10, useEffect as useEffect9 } from "react";
|
|
6355
6399
|
import {
|
|
6356
6400
|
X as CloseIcon3
|
|
6357
6401
|
} from "lucide-react";
|
|
6358
6402
|
import { Box as Box9, Typography as Typography9, IconButton as IconButton5, Drawer as Drawer2, Avatar as Avatar6, Tooltip as Tooltip5 } from "@mui/material";
|
|
6359
6403
|
import { motion as motion8, AnimatePresence as AnimatePresence2 } from "framer-motion";
|
|
6360
|
-
import { Fragment as Fragment6, jsx as jsx15, jsxs as
|
|
6404
|
+
import { Fragment as Fragment6, jsx as jsx15, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
6361
6405
|
var singulStyles = {
|
|
6362
6406
|
container: { width: "100%" },
|
|
6363
6407
|
inputWrapper: {
|
|
@@ -6535,8 +6579,8 @@ function AppSearchDrawer({
|
|
|
6535
6579
|
setDetailAppName(detail.app.name);
|
|
6536
6580
|
setDetailAppId(algoliaId);
|
|
6537
6581
|
};
|
|
6538
|
-
return /* @__PURE__ */
|
|
6539
|
-
/* @__PURE__ */
|
|
6582
|
+
return /* @__PURE__ */ jsxs12(Fragment6, { children: [
|
|
6583
|
+
/* @__PURE__ */ jsxs12(
|
|
6540
6584
|
Drawer2,
|
|
6541
6585
|
{
|
|
6542
6586
|
anchor,
|
|
@@ -6557,7 +6601,7 @@ function AppSearchDrawer({
|
|
|
6557
6601
|
}
|
|
6558
6602
|
},
|
|
6559
6603
|
children: [
|
|
6560
|
-
/* @__PURE__ */
|
|
6604
|
+
/* @__PURE__ */ jsxs12(
|
|
6561
6605
|
Box9,
|
|
6562
6606
|
{
|
|
6563
6607
|
sx: {
|
|
@@ -6570,7 +6614,7 @@ function AppSearchDrawer({
|
|
|
6570
6614
|
flexShrink: 0
|
|
6571
6615
|
},
|
|
6572
6616
|
children: [
|
|
6573
|
-
/* @__PURE__ */
|
|
6617
|
+
/* @__PURE__ */ jsxs12(Box9, { sx: { flex: 1 }, children: [
|
|
6574
6618
|
/* @__PURE__ */ jsx15(Typography9, { sx: { color: "hsl(var(--foreground))", fontWeight: 700, fontSize: "1rem", lineHeight: 1.2 }, children: title }),
|
|
6575
6619
|
/* @__PURE__ */ jsx15(Typography9, { sx: { color: "hsl(var(--muted-foreground))", fontSize: "0.75rem" }, children: subtitle })
|
|
6576
6620
|
] }),
|
|
@@ -6586,10 +6630,10 @@ function AppSearchDrawer({
|
|
|
6586
6630
|
]
|
|
6587
6631
|
}
|
|
6588
6632
|
),
|
|
6589
|
-
/* @__PURE__ */
|
|
6590
|
-
connectionPathApps && connectionPathApps.length > 0 && /* @__PURE__ */
|
|
6633
|
+
/* @__PURE__ */ jsxs12(Box9, { sx: { flex: 1, boxSizing: "border-box", overflow: "hidden", p: 3, minHeight: 0, display: "flex", flexDirection: "column" }, children: [
|
|
6634
|
+
connectionPathApps && connectionPathApps.length > 0 && /* @__PURE__ */ jsxs12(Box9, { sx: { mb: 2.5 }, children: [
|
|
6591
6635
|
/* @__PURE__ */ jsx15(Typography9, { sx: { color: "hsl(var(--muted-foreground))", fontSize: "0.7rem", fontWeight: 600, textTransform: "uppercase", letterSpacing: "0.05em", mb: 1 }, children: "In this usecase" }),
|
|
6592
|
-
/* @__PURE__ */ jsx15(Box9, { sx: { display: "flex", gap: 1.5, flexWrap: "wrap" }, children: connectionPathApps.map((app) => /* @__PURE__ */ jsx15(Tooltip5, { title: app.name.replace(/_/g, " "), arrow: true, placement: "bottom", children: /* @__PURE__ */
|
|
6636
|
+
/* @__PURE__ */ jsx15(Box9, { sx: { display: "flex", gap: 1.5, flexWrap: "wrap" }, children: connectionPathApps.map((app) => /* @__PURE__ */ jsx15(Tooltip5, { title: app.name.replace(/_/g, " "), arrow: true, placement: "bottom", children: /* @__PURE__ */ jsxs12(
|
|
6593
6637
|
Box9,
|
|
6594
6638
|
{
|
|
6595
6639
|
onClick: () => handleAppSelected({ app: { name: app.name, image_url: app.icon, categories: [] } }),
|
|
@@ -6761,10 +6805,10 @@ function AppSearchDrawer({
|
|
|
6761
6805
|
] });
|
|
6762
6806
|
}
|
|
6763
6807
|
|
|
6764
|
-
// AiAgentPromptsEditor.tsx
|
|
6808
|
+
// components/AiAgentPromptsEditor.tsx
|
|
6765
6809
|
import { Box as Box10, Typography as Typography10, IconButton as IconButton6, Tooltip as Tooltip6, Button as Button5, TextField as TextField4 } from "@mui/material";
|
|
6766
6810
|
import { X as CloseIcon4, Plus as AddIcon2 } from "lucide-react";
|
|
6767
|
-
import { jsx as jsx16, jsxs as
|
|
6811
|
+
import { jsx as jsx16, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
6768
6812
|
var AiAgentPromptsEditor = ({
|
|
6769
6813
|
prompts,
|
|
6770
6814
|
apps,
|
|
@@ -6777,10 +6821,10 @@ var AiAgentPromptsEditor = ({
|
|
|
6777
6821
|
resolveAppMeta,
|
|
6778
6822
|
renderPromptInput
|
|
6779
6823
|
}) => {
|
|
6780
|
-
return /* @__PURE__ */
|
|
6824
|
+
return /* @__PURE__ */ jsxs13(Box10, { sx: { display: "flex", flexDirection: "column", gap: 1.25 }, children: [
|
|
6781
6825
|
prompts.map((prompt, idx) => {
|
|
6782
6826
|
const promptApps = apps[idx] || [];
|
|
6783
|
-
return /* @__PURE__ */
|
|
6827
|
+
return /* @__PURE__ */ jsxs13(
|
|
6784
6828
|
Box10,
|
|
6785
6829
|
{
|
|
6786
6830
|
sx: {
|
|
@@ -6793,9 +6837,9 @@ var AiAgentPromptsEditor = ({
|
|
|
6793
6837
|
bgcolor: "hsl(var(--muted) / 0.2)"
|
|
6794
6838
|
},
|
|
6795
6839
|
children: [
|
|
6796
|
-
/* @__PURE__ */
|
|
6797
|
-
/* @__PURE__ */
|
|
6798
|
-
/* @__PURE__ */
|
|
6840
|
+
/* @__PURE__ */ jsxs13(Box10, { sx: { display: "flex", gap: 1, alignItems: "flex-start" }, children: [
|
|
6841
|
+
/* @__PURE__ */ jsxs13(Box10, { sx: { flex: 1, minWidth: 0 }, children: [
|
|
6842
|
+
/* @__PURE__ */ jsxs13(
|
|
6799
6843
|
Typography10,
|
|
6800
6844
|
{
|
|
6801
6845
|
sx: {
|
|
@@ -6854,7 +6898,7 @@ var AiAgentPromptsEditor = ({
|
|
|
6854
6898
|
}
|
|
6855
6899
|
)
|
|
6856
6900
|
] }),
|
|
6857
|
-
/* @__PURE__ */
|
|
6901
|
+
/* @__PURE__ */ jsxs13(Box10, { sx: { display: "flex", alignItems: "center", gap: 1, flexWrap: "wrap" }, children: [
|
|
6858
6902
|
/* @__PURE__ */ jsx16(
|
|
6859
6903
|
Typography10,
|
|
6860
6904
|
{
|
|
@@ -6868,7 +6912,7 @@ var AiAgentPromptsEditor = ({
|
|
|
6868
6912
|
children: "Allowed apps"
|
|
6869
6913
|
}
|
|
6870
6914
|
),
|
|
6871
|
-
/* @__PURE__ */
|
|
6915
|
+
/* @__PURE__ */ jsxs13(Box10, { sx: { display: "flex", alignItems: "center", gap: 0.5, flexWrap: "wrap", flex: 1 }, children: [
|
|
6872
6916
|
promptApps.length === 0 && /* @__PURE__ */ jsx16(Typography10, { sx: { fontSize: "0.7rem", color: "hsl(var(--muted-foreground))", opacity: 0.7 }, children: "All authenticated apps" }),
|
|
6873
6917
|
promptApps.map((appKey) => {
|
|
6874
6918
|
const meta = resolveAppMeta(appKey);
|
|
@@ -6954,16 +6998,16 @@ var AiAgentPromptsEditor = ({
|
|
|
6954
6998
|
};
|
|
6955
6999
|
var AiAgentPromptsEditor_default = AiAgentPromptsEditor;
|
|
6956
7000
|
|
|
6957
|
-
// ShufflePipelinesBanner.tsx
|
|
7001
|
+
// components/ShufflePipelinesBanner.tsx
|
|
6958
7002
|
import { Box as Box11, Typography as Typography11, Chip as Chip6 } from "@mui/material";
|
|
6959
7003
|
|
|
6960
7004
|
// ../assets/shuffle-icon.png
|
|
6961
7005
|
var shuffle_icon_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAACQCAYAAADnRuK4AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAkKADAAQAAAABAAAAkAAAAAA/PwqIAAAk1klEQVR4Ae1da6xcV3XeM/fhZ+xrO7YDIck1cUIwEJuKpCqExEhQSFTaQFpVVUuAP61SKkEQ/IPG7o9WKggVtajtD9oUSquSEviBqKhayIPQKmmIA42DaIgf5OHYTmzH9rVzHzP9vrX23mefM+c9Z2bude62zz17r71ee63vrrPnzNwzLdNA63a7U1Bzq+mYnaZtptHfhYM0Htmti6lW9vQwZ2q5UkaoDE/KQmuKpWjypIPo8diH43Ec97VaLY77arXTZ0HzcVjfbQ/rSJ2ll5cpz2nduRBPzQWBYPoijtpgqgygADifgOH8ClMxealxSSUWKa4lVKS09rz3xndqqxqk4N1QvrdqVaoEIIDnLhhpHDiDjMqFoHvIuNsDEO0tG7dSAAJwpqHwmzh2lVVcmW/IUUr6V998fcmkD8Mal/D4IHx5V5lq1C5yGuD5MHgewzE48NCJUlAm42BaffP1JQezkmKtJTyehpbHkPtbi7TlAshesu6GkilD2C63chG4MGI1hcV+02Igc92ZYLSCezIllyeqRyDl2pFCqq538BKZ+6JUANnSxT3PCNoSCWnFyIx6VQ3Y/wj2RP+QXHYPgACeaTBxz8MSFrUsD7LokeRyr+kI1Ip5LaHQ85MYvDW5sU4D0AGYmqZky9v0HZKXW1EE+gxXn+L53vWnfB8A9NbQQGwTbfc900SVIMvDy3dC2eV+VgT6DFef4lleKb0/5buAkT2hAa/OXroOhJPL/XIRCH+pw75I9xCSOgsZkgLDHfe418WlrLUNlYiXNLz1GbW7ou5yr0oE/G8hhMK+6OghJDUXMiQFhjvuca/FvfEnnBMyXar6hEhEvwvJHt1O6/J59BEI89WnNymqWH2kCrkKtLvQRoiWxQYerjDRUkgJjoaHQzdY4L/NVxNuham3Vn0VcgD6eIE71afLeF6Gp4zllBWmkMpoSucp42ejBtPdqENtxq3UANxEf1qlLl91PF+WqRwBpim6dVJGXCTKMA6KZwMr0G6nPRVnbnKA51HZHdiSai5IqkWlklGJueRyKzl/KwG0y2kehDtOd955VHbzfHr1zlXKxi4CaKcLViXsOaEL6dxUACrloOkANrWIUn5NE0DTjnXo6x7qWt0qc85DD0COL5WmwkA2vIhQda9PO7mJzmeRDwI17FSvIxcWhRFtLGSNKms6zidLAKhpmw3payquTelpaFlL7feVl7DmGpNRqpVmzNbW1G94U3qyPU2fyQpBLX+ylKWbbpKaD6CqfoWLD2XRD4fl63tcqsmFD0ZXBX/DWPU4U0GPyOYq69EeJxTYKpheupeweBR6Rlx3P2HtUbhMSI1AfgVKFYmIBeCMGBvslbW5DJ4Gg56jqi8AlU5S2aznOOqmStt0AsvneAQazAUV9wWguGc5o6FkveHI5CxnSU81nIvhAGgoEW84Mt7nZWAmXwL50KBzAQEoXFZWvwAMKdPd5a04gpn9y9kngFIinpW7RUGPB6LH+/i0eOxIPbyLYj2jdyIAUJ0QufCOfiF1PKjifRXeUr7UCXcpxcNlCgDUeIhqrWQwcR2M1loLdEKLI9zOmxLn9BgGAIp0pLPmbaUi2X57TcdV19K01n5XWV4+KxflNShn/3rSY7hk7kQzAOlLSITy/FnTeeJhc+7pl82ZX7TNmQNnzCtHz5m5zkrTaY3jMY5jcl7otqOxAb01ZhY45w+lcbz2itVm1eaV5pLr1pnpG9cmDNYcHsZjCh//d2N4PvWCKlm5xpgt24259leNufrtxqx0tkqvPuZMPamYisLBEgFQQSgImke/b7pPAjj/+6w5+eLrzcz5zYYg6QI0HhgEUBdAAVi6BEw3AgmBInwOZARSUha0VZtXmB23TZltNyLZdRoB88BXFTh58uu3GvPO2xVMeXxl5grCV0ZFFk95AOU4kTOVZVfptQWtWgLnh982nYdwnJ01Lz27w8yc2+iryAIqC4Hiq4sFDIEiwAKYOKfgIdgmYmCLVynyRZXqzQDRW25zFSJ/mX724XuN+Y+/9sNSnes/aMy77yjFOgqm8dJGc64fOlUFDZY3R2eRX50ffc90v/N3pntuxizMrTQv/mKnmZ9bHYlBdwufAaAl+chcSwgyT7MdEp19zLV4SQtp9nN2joV6wvbje89Ad8tce1vJSlQHPDRIuXNnjHn/pzGwcQsdGXE/dRNdzqdkSF2oy0hb3qSKMqKsOl/7M9O59y8VPLMrzInD15j52ckovAQLmsWA1Ro3pixK44cy+Q9/7215bapkrDRATABHCavdPH7vjDmyf87LZHZOHjHmB1/JnC6c+An2So/wcU2Rf4Uyg2CIh1As9AGgBhZTVcXJo2bhS3eaDvY6uN7IcfrINCrQCkk+AWMh4Tp2zLWS31YkjPQOM2j638pHERIwUZ9DIfjYeBIuy7rv3nNCz/3xg380BsDvqz0IAJ5HJeq3RUusrsnGIBQsCaBeq72UUK3rp3CFpLDvRLLOBM+XP2O6J44hg7g44Th/apOZn7lIJaDLF5BAL9fsKwsYfAwcMALeSAGEOA/mSKcy8qfq0J8vPDlvjuDIbKw+P/5u5nTpCYKHlajf5gPQryKVLwmgXqu9lDSHUrhCUtgPE5lUZcFjThwX8BBA/Hfu+BatENAjFyEHCsqDRuDI5Qn00FRSvYwpG5O3sjHmQI9X2OoFkKzFLujwj2Ma+hocytaVF76+bBYIlwRQgZac6dIL8wlJKEPpX/jyZ6XyRDlumVdObTCduUktETDiqoyqwU+5xEXW5VJkAZJmipxOh3qgeyLhdWWIlQ+TotWBDecXDy7EnVYh5XzhqfhcP6McXWlr6sdUOdlu2Xfjo0SUUxxx9buwzne+DPAcFUBIzphEHHOn10VGbE8qjvRtmpl4l3x081bhqlWkNKhANCy6MMsuTgK2jrhlZmeyNIPzleTeh9I1W4+umnoaE2vFASRhSI1FH4vuw9kuXqp3fvR9zRJAo+7CF/i4MBO8ZHc2kGjvqQOOn9PECwhJ47wfsMuFh3skBYk87ID8jlfNKxgx6e2Rp0TTbXwJxiXCgktYhBgJho1IRK25kn4VcN/zvX+Bca04TJXkEEDqLOBGIG4Cxi45mKRJMcs1cGyTLnx2XR5Xds6tzk5H0QBBWPxFXjn40+tAh+PJ1TrndMXOK+L3iXI4Y2KpA96dXmQN4UlfUjq1gvd9KuCNQsNXXLhMeGTYy1cXAGILMco+gSJm7YQDmAMSMy99hwCeRdDq8j4rn7A5I37OGia69L+54m0TdCfRrODV70jQqw4Dw1uvrCpcj9+tOSmdQve/X0neoY/FOeshNs7dR+9DgphgusgzA2kPAggJ5Mg1D5aIAB434Jk6IOPAQxJBQCU8yZk6lUA+iqsKlaUIm9LQISvaJW9Mu6FvJ5l0/6ao8lf76a01875YGePW9R7WFPriAZA4px529j+s93uQIYGJqzyuGrURVCaYAEALf/rsCjgCkJHJgqIHSESCKsHJdnCO4gWaHYhaQRsNd832d64wazdrGJ0kffKN4LnuA37Y24ms9M4FlMvxEBUeyZZqNMk0uPEIAZS98i7fWce0AIRsYfVBvz0+b1ptoMkmkikQfpxdbjXjQXLsbthRxLpjxlxsLPEGJ5Q6focrEaExtLWbx8zO21ZJnz/IqzOepJ3r8IbolqzLT5qEt6ryBKG8F5bQy2GCNeRI0xzOa78cl/CmsCYAlMLRa7EhSsbK8ZK98/QTsIF5fhyD1Uf6HOvRBXbak69IggU55MYU/vck0K0oeH0lusnrG5jk0uaY3QSUWqyIgXD/NLmmbd7zmSlffZxI6pkA+K29xqy/JHW6l5hwhO/Gl9lAJ8Ria+w1YinluIS5h7XnPlAPR6bZQU10nz8YAQWAkcQzMBIcCybcfRhfZe+vWOQkYqdoghhXxCOcZ72Jj8kASmz5lkNo+MFqRFs4r0HlefdnNkkFgmSshSpCGwKA3/t8BRBBLYH3m3tT9z4x3c6D0Lij2XMqf4JHh/mc8dkWPuAyokZH0tYr1YeVhskCh1QAViHSKMEzhMfXvGzaJzfjIxiSU10FWVyDoPxTdlDJiBPGvJqJejsWERC8OPq0K25w0k5MrG6b7TevN1ffvM6wX9ScPm+GVeRjX8V7Y3hP60GcT+F9srRG4PBTiTfcDhDFbwM4dqfbjb0NR0ick/yJ6WCYz5mcHQCAipaiviYdcSvoPncIXQsYAQ0BQm4cTCrVY9zCRnriohNm/uUtAgaCImnZ1i+AbdKsve4K3BHAJRFHp6Vn6VtaV2i4vwQ75ONh5FOKbXwKcdJcvGOtWT+9ohRwIBhrPWslOHjw04mHcJx8QflXAThbX2/MVTdkAiemOBj02AjmBtkdAID6W0r3Jdz7sWARwLAv46gaSWkAbcXaE3inYINZ4I1FGyV3FhCCOrV7u9n6kevNGECU15Lgy+NtbC7rlRUM5PqTO9mYd6UU9dbhKAOlFDTN1D1x3FcZVp4Wq4/4xLM9AB6pRPB+7eZnTBuvyAgz97JefeqayS0XmUs+Wgwe8lN+MbXIn5SERJMjd7kXQKN2LgAJgSOvwkIQOfCQ1sFL+vacWbfxMC5pwTviXAP2MSu3bTTt1bbypORhKNHv2+6oE5IfpV4A5fD3HYsc3X4qBA33ITQKsMg+yAGJZ6kZSm9PvGKmNh0wY2P246XiKLbQUqas5lHlYVR2fUAH26kEoGZjkQFHvgIRoOhlKtpAp48FSOBvt+fNxk3/Z9aufsGMjyuQZvYfMXNH+eH3JlozWprwpC8dVZdRwG9/xftyqaZwBhzdy1Y6boEkZ1Qc+TiHB5d9jeXH6saa1UfNxoueMhvWHDITr7xkDv/JtwVENZ0MxDL8DTiWRLfqMgr4y/9d2JCiM/f3XzALP3lUwcPLFADCKxHB417C6+WMDkXzHmyg6ZXL/W7gJXln3IxtWo9KpPzuskh5pUEVbCT1yrz8Blo5rzsxpo+ii7cH0Mf+a2zzBvRxw3PbVvSnzOSbLzOT01uGFEVdD1wZQGNAIsXjMozTmjdaQX9rA4NMB22SIBsHD6aoz87rJc6OrZwCjnxMLDkXTOf4SxgzwUoXwGHGgVJ4A73JeQUXfaICyln/2Mch9414A5JAx6GXToyfeMbTxrZMmRVvusys3b3DrHzzpVQ0oAYn4UtTjUsWbdJhz1PwKjm202zKZEk9kR9eoPPUk2b2S38qyaefChBNlk82lyOViYvBwXfpcY54MfTz2pexldM5lWHfzfGWgbMh5xg/baEF/E5OQIOEdQSgURXq8i9g6RdvUnIuANjY5nVmw29fb9btfoPqdT9TYuKmss4qUk2wGneW5VE/oczmJHSvfekVpsV9EFYYAUKTLMmzSdUKAEnyMUk4dI9EmgUTo2T7nBegOZBwHIIBIHTgoU4BppMlX8gfyBEcvAvlKo+AxN3VJmCkr6DqQI68PGaPnTVH/uo+8/Qf/nN8j0ZTFZuKVBOsxp3tUKVXYdlqGpxZhc86v/byGHiYWAGATaICizYdUBAO8oCRc543nJcq5fZF5KcsZaCGh+VVW+QLdHNaeCPdtCGgEXsEiIIkOlMeNDkUNIYPdbCXODkDXLNHZ8xTH/u6Ofb1x2hlybXFByCEcOJ9+PwMEuSTKH2QkCyh2zmO+U8a5/xBXvwP+cGn4HB6yRPJCC9BJjSV9bqZdMeLm5cePNAp76/ZKoS7mRFAhKbVSfdHYaWyOuSSp0B74Z6fmEOfuw9/LDAry1kqPxYlgNpXXWNaGy6WhEsgLRAkcS6ROEu1sWPfJ6DsnAAg4I9ASa1cOngtPwFHAMTGXjfIltfvY7jnCasJ+gsyJjgAFoBDZKgTvDrnqpQFkLvEWbunHn7W/Pyu/0RVSv4pEO1Xb1JYq4tVkuAqF2WbuOVW+BVUiFh1AEZkDiyMEhMdjKVaYOyrhkTSAUv5dcMcgJDybBZ8BJhe3gIfPGgUJFpx2Lf+0CbAQADRH9eXCiTgIph03oGPQNN9kYJr5uAp8/TnHkIlsnfV6VOFFoLGrqiCdHXWRQugsV++wbQvvTwCB5NiweIriwWJBwpB4MGkfblsOVDg7G5GUkbfqGWYLS8vT4oGsUUep5uAdVVFNs428Q4k4d5GNtUCFN376Bx0UQcOBRiBA9CwCtG+BRb1zRx62Tz15/9VPZu6klpydYUaB1D4G1DXKSc3cdvvSHA12aDahGpSMcQ4BAwT4WnCqzIeIEKjh+SjvLUkferimCGxephY9uVQuiTd7V1sVXHg4RxfaTmgKEC0sgjQAA7/Uh991c0zHl5FOYLIyp/e/6J59p6fYm5xN3pfu7n4hwoY8qba2NVvMJO3vF8SKwFGcKX5hGuCBUSgSUVh0sUxO8fkC7/1ismnHtGF5TNhOKSqETxOt+hRMGiVifY88oE0Jpu6eRAYlLXVxAFKztTvgGFtKr/TF1WlSJfSnrnnZ+bl/cebCmd5PRK/cuz5AMpSZOlM0aDbxK/9umlfhZttEnxY49kdLsk26Q4Y8lts90xCY3I9r5OnLvy3utylS/mVRyuJVhUFCECTAhJ3afMVR8BlAWbBE87pZQw2PB/1kj86dA/WNr+4p8GHMzBZWTnlnGtwrWzLB1CWoix6WatFfIlFrrzjDtN+3WUCHAGHgAlOSPKpjH2cMNbLEh208zwHYNJKozIKHvbRRDaSc+DRqqKJdfsXqRTQKwlH4snjQOFBQEDwgF4BD8DhNsyOx+sT8Kg+R2OVw0cMzKn9J8zR+55VH5v4ySU22HoBlEheg7bKq0ossrUaj9n91CcVRASEBYdemjDG5ldooLtNsoILdFkPz9rnnwS5ueiyReBZHQSSAIKhQfJlv0MAWcD4MwBhE++rk6sgASAIItlXkearl9NlQUZwiV76QFs43CYd50P3/Bz0xdl6AcQ11GiDxl1r9Sqz6tN3mvFd1wooYpWGwWfi4YQDlesTLB4cSAxB4caiQ2QILj2k8ghoAB4m3yWeZ5dcnKWqQCZ2+XLztCl9exZZ9h09Ao6rZg44CkbLa/04f3zWnHziRI2sDF4kAaD6MKiJu9IrpGcCoj/6A7PiN25BKuC6JF1BQ2B4sJCZcw4sTKjQyEs+npXHgUl4bYK1T/287LjEu7OCR+xZgLlLlIKB6nnZok0LNBnHAeiA43kdKKHTVz1WLIIPx8F/PQiHyzUubeDNGkkAaNAwqL+s0LNJAGjN5+4y42/YroBAggQwAhraILejWZsyR5qdJzA8TcEhQGACbSUREDCBdsyzVAgBhILE7VkiQCg/K0p0iVP9oR7Xj2xRzvGx+rFvbcPPM4dm8DzInGcx2mXa1QUj7TYOKoYYbbQf51Afyv9kFKzjTmj2wYfN3AOPmPknn9aqIsBh9dBKwDPBRbAwQfIn8gSOHbuzJouggCxBxATaS4hPJBMKOquS8LgEM/EeaJwnnwJCgMR5kVVaj63QjpUjj4LLykLHL92100ztWO+WPsJzlIilBaCckC0cfs688p0HBEgLR08KQISdQMHBf1JxCCwCAGMHnqiqWPBQxiWSZ0kwQREl01UOBwatHuSJEs/LrH9/TPQ4vRGQYiCRd+vhVgp4SLvqw1eay295TU4U+piKMFFJyYAAVNObSq6TOd3OwsHnTOfYCTO3/4DpHH3JdM/iQQzk9sChpAUREsM+L0UElSaP3C7JmnSZI7DII0Aif8BjZck3j/exzh08Cb7gDrPXrTakgvnKozQHPle13FlB2jav2b3FvOmO7XRupC2M+gD+MpVrY3CH0dLtjE2/1vCYuO5Nw3Ai1cbcsTPm4J7v4sNip808vqNj3uBJ+raqCTAAHnmF50ApYASNZ/Dhh/LLvAL15UPnU20NmxhGnR4HjdhanC3Xs6zJLPoQljixea2Zvuu9gMO8Wdk9a9Z2T+B8GpajS9yCAw+BZQ9WQj4wQjfnrIycUzDNneVNrMXVEgAKsbW4HM31LGsyi46l1cNWkVR8fmLLWrPyik0SSO6G1nROmos7h/HW6bwARi6LUpUUVLI5l0udfnJR7jHZeQJsdib469s+0xP3tL6yBIDqK1pqkjnYyllKQqonC4l5aGqvneQ7Hdpwxt9rKIi6c/ZlPi9PeonSV3/BB/HtXkv2aKhWc2d7DOb4mj/lXMrnimazLL9qARSFpo9eQRb4pz0zTzyPzXtkg68Gx7uz5pLOz80EQKSbdihylcbtfaQSKbDcJnolvjVxVC1aarAYOJMPoDjvqHxvxu4w1wJbswDPwT3/Jr63bQkSFyyaxs2s2dI5oPsbpEH3PnbjnASPBdf4mgG95qkU4QhKFMv3KM5byUwVZga20BS/rYZP9noZD2PiF7CxTeGJX3yMbt/PYlZ1/Dk30zHPP3LanMIrHt755d6lhXdgbYp9X2sD5jT1cm6Dj+P5Y6fNuf3PmXaXd4GwIQZo5Dc1WCjXu6p7ymxYeN682H6d3mtyVQha5HaBWIUlecWGp43gQVeLreUDaBDe+iD6DsKV0/h1Sd/+fP53jPLRcde+F98x+qFsRblGjDl7bN7s/8ZJc+iBU/a5ZEg+AdAFiFra57eqyq1BT5tXXvJZHvIrX+QKC5DcAcfZXc7c6jd3DppjbfwZEzQraBSS7rLlX+rj0rYOX/7bd3OG+1Vk9QwfQD6RvpO9FH7d4w++UvxlbfzWY34hG7+X63cBtqmyT0OFaQTimUfPm//+mxdNhxUHY+Qqeplm3ezxlgFkpSA/u/JDSNqnAF+Po0VT3AFFjSMCbk33pDnTxl+hUJ/UKntGRdKX8wquddMN7IFCB8QVetdDjJzM6lkRqaxZPKS7xafxRHNRL42vMo3qCAh+QW2Vb/ojkP7pU3jmYMbDK1McefrB8+b+L+CutfvGHZaL5HIw9iRXQiyFT26VLU6QA+HlDyk9ajSikR44gv6GzvP2QmirkL2UCXhkUw1AgcbnNDbfQmeqay8EUJ76aC7qVXchRYJPL+VTTAuaT2rIxwdWfmNPSMnsnznWMY989bTkkyvgU10DqOjYAYEzHjxUadfsSpBDSKpTlluuY2pCQCc6jbnI4O0WUWlvHLrLGd/qsGDa9MY1tR7wSbVlW4brMfEkTz6AQu6sfkx9Q4OvoYoELTQdkF0KQ5L2X8An+EoA8KG/PWNmcW9F9AMPLr9UQpof20uRKHeZFybIQs77J0IWWMKc9kPnFYy4aGE42ZmBDr5vBsDgkMpD4GDS7YUuu2kqTVkGzXuUMZ9OLvKcUkmefACF3Fn9dF/qU3/2EJ6fjCoStNB0QM7vPoL9U047st9+16lTzpjjM8guREJ2YMGAXR3a5JCBNNmzWDHSIjjF+i6lAhzhAzgcEZzcnMuGuR2BxoGHjxm+4qYqH+MQA3Rm4C0fQP2YD4JTpCbG+rMfZrPHGLPZZIYv+/kM5ox2+FH+5Se3rXZjy5iHGcXY1iYBCnGh5m1yOBCCfX9KJ4kpCzR0ZKQnp95Kg8jqE43mzApUIIKKAHKH7omuue1iKqvWrD/VhMpwxxUPDkBRbAq9irEeweWnnxau72i2rhcPMfG0DAEkUrFDYauAZAcATwV/DGQqFwJBNOCHnvnTC1tt1AEabcqkwTtjE+iDLpctgkYPXsq0+qyznBVOXNpAWlzx4ABU1/mcpEf5jC8iZiqc4l4oo505jkuGTyHBwoafLqsyJimk6aRnAZgUPEoRwKFLEerzwLIquF/yGyuvpGXOtqdksxy+ZBdAAUhvvE3fjHXuDOXsfSu2tvgAVOwzOCqsMFcfM8qm+qL9iVL1J+Ysm5yIDtekj3mK2xPRwyJFkq9WGIgU6TJBcEXzMy19nqKrPO585c0bsPepUX1ou7DRmQymYIkZHJ48UABl+eetp3XKfK1RmlwaLUcXv66JLfQxxEZcnUZUeB0CRBi7JKfAIoQn6pFhoJBsrEhSlTBJsOo0vja8fSn84CUtunytx03DnbfX2PvEHc8ZOSdzWEpMDRRAEsQSTsRYtm6PDasMXC69TKou5dp4GZbO7HNoBfWkgVUyfkpHLyhOr1+XAAJURxD2AFQioPocizcmgDHmTGvKnGpvseDRtzG47/mVT+pnn2m+75alJKSH/QoGBwqgCn5ErJdfG/VTe1Eq/LRdfM9MqMsHSLmuujF6Y9JN6R4mBAt4rVLlsQN7on1fgTgg3SqTk5t0BgJ+stLeofGdCh7ZQI+Z1QDPTZ+9FGd9lykwBYmaLUtJSA/7Fcw0CKAgShUc6GHl1yDxafWZLcVO2uKTehI8l+wYN2u3jEnSgysNkql7GDHvAGAZREVMD7iTRDvPE28EekQl1sNVPN++0pxqbbU222b95Sti4EmIxIYpUYjND2vQIIBs5BKeV14owXPDhxJaKg751ZLvvL1Q6B2/j6fBslkned8nBJOgSy5zyqB3j8HOodCtrAOasEkdo1YpSE63EEizYTrXWm+rj162rrx5ytz4x1HlcfxZ53i07QKymAdIbxBA6V5GdzvS51Op1+Mhm29BJarb3nNHqe8YvWTHBL40V0HEFGjqNRlMkCTbZVzGQrV0x4Cza8Jrbz+CNXxVR612xsyYdean4+/AWL/M7sbPXiYb5jLfguhMxc9xOMXnBjsa+Mc5eEmotTx+SzGfF/3IN8tHgNWLX1B79dtLy1z7wTW4NdMxT3zjlMj4YsJOiuMERQQxgMLxCJGrjZq84lJmoXPuWPsK88zYDnyL4pi55n0bzfZbNhS8SUoFodZI/0h71q0B/WFhg0tL+X7R1JDy2/8IupyX7qly1tUDD8zgA2UnzMzR82acHw7jh8fkE4X6qUTXHxOam8eHx8DbsjT+tUUkt2A/bKa0c62LzMmLtpmxbZeaK2/eaF7ztrx9XoPxG7CqTADlBbsxn0IjYT/NAIHEN1r5cQ3erWa1WYdPIk4DOKw4BFAD7dD9p83z/4OPpB47b84fP286Z2cFSPyUIR/WO8ZPIxJc7AsNYwDIf1oRNF6KJlBh5ruTZnLbxaazZavZdN1mfOfqqoJq08ACaqgoCn3efCaAavjBi3yD1bZRZbWWsyxUHIFmN9E1L9WESm8rUJYu1KtmmTLQCDQLoJquFkAlXWstoXRVy9R6EeDv8KIAUD33l7jUkqqg6c7yd9gDKJ1lkSWptpM1BGuIVIrWkqqg2c56AGWz2LAMOqCVol+VuXB1vQpriPQqWaKUCrn2ACpc6mII6GLwoTBQw2OQPFdIdppnqeIV4lweQGnWh0pLXWpDHgxSd0MupqiRPCeSHV+JHcWJMU0J8dhcmcHiB5BffL9LZTi8skRsmtCdUDmiYXwldhQnNurZiACUksgUkqy00cU3qiwbj42mqAFlWbFtQPWIAJSSyBRSA+sbkAqbkVH5XBUQA/RzRABqPq9VY9qfB1kZyfMib66KN9CTZb6KmoZ4lziAoqQ0HtNIdYVQ53mRN1fChPcnR4/nKaGvIRYCCE/lHkYrXl0xR9LP9GBW15PUi3G66hTGiNSI3UhdvFfGnzI8ca19jxRAqStPEGWYoFUyX7y6Yo4SBuFiP3oGu0L634+FEusfLstBAmhfesTT0pBGG67HhdZCFweYq/qqQwcLVxMx1DcY6Wi+JwA6VEpvzXWX0j0optDnkgkIReJuuY+yKjWbLy5ValTGt34MltFfytEepse1AvXQlyYhN079JEDCka1A7OYaL4hntuoCwZLTNfT75fhOqq19/EQi/rLfnEi/jKUKLRNfTREggLIBuA2PMG6dBMN9Sz8m+b8qbn3luBz3EjsnFpcYVlqMl80Gzz5gR/ZAVHx/Je2Lkjl7paG7cS4fppBl6fbji8spHMVLTKhKE/giicInlzFjDmBc5UF8aUqHR2Pui1aZ4EkMh+brqOxWX2AlT7f5CiSXMWMEUdWNjkiiCDx0K8GTGOY4jkAylj1NialTPbwRobzdSCbDgZAh3cUYBwdVvC3t6d0ED7V7iaaqEN31Smkhs5XnzFRxwU4s+thI9WH4+TJeWn9VKEJ5OfDQZHlO9fDV9NPGJgrriBcfc2Svqz50qieLqESPgb5rkB773y/fGaS1C1C3jdsIwncQ4NkWRtRXoID4AfQH+garR63vBNaXu8URsHEbcviIiXclnesBkC1PdyYZBzvm79Jw2/AtDmF9/SyqWPaj4aXLraYHQJwA49047WV/OA2/S8ULaNSVQf/2Dnk5Gpt+wpgfkL3AxLfSEpAKIDJCYA9Oe9nvaYOITv4C4EJTRpvS0xOVGEGXMxxboWHabdgqwbMntBH2i9PW7d4Kgb/HMRUKjrLPABU6XtvBJrU3qKtBVSVDwz3PnQDP3Xn8pfKAV2bTUPJ9YBvnUiJ5NkvODT9iJR0bMdtQ4rIPi/wAwHOwaLGZl7BQkIpwbAN49ob0gfUZo6EBdWCr6F+xxCGpJusXGMyp/En53DGrzl7k+q3MeS6nnczyJlPWVqM9YPhwJtOgJhgg+RKvym5rcGuI9b0U8dlqCft9K25UAYHDt7L+AsBhv3SrHVILpN2w9HEcu0pbrMHYVNyb0lNjCYtV5D44dj+OysBxC6oNIKeA5wBMBBIfVjhtD5wuvLYEgYiqgm/2Na19yMYhHDx/q2q1Scvk/wN41g4g84VXcwAAAABJRU5ErkJggg==";
|
|
6962
7006
|
|
|
6963
|
-
// ShufflePipelinesBanner.tsx
|
|
6964
|
-
import { jsx as jsx17, jsxs as
|
|
7007
|
+
// components/ShufflePipelinesBanner.tsx
|
|
7008
|
+
import { jsx as jsx17, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
6965
7009
|
function ShufflePipelinesBanner() {
|
|
6966
|
-
return /* @__PURE__ */
|
|
7010
|
+
return /* @__PURE__ */ jsxs14(
|
|
6967
7011
|
Box11,
|
|
6968
7012
|
{
|
|
6969
7013
|
component: "a",
|
|
@@ -6995,7 +7039,7 @@ function ShufflePipelinesBanner() {
|
|
|
6995
7039
|
sx: { width: 36, height: 36, borderRadius: "10px", flexShrink: 0 }
|
|
6996
7040
|
}
|
|
6997
7041
|
),
|
|
6998
|
-
/* @__PURE__ */
|
|
7042
|
+
/* @__PURE__ */ jsxs14(Box11, { sx: { flex: 1, minWidth: 0 }, children: [
|
|
6999
7043
|
/* @__PURE__ */ jsx17(Typography11, { sx: { fontWeight: 700, fontSize: "0.85rem", color: "hsl(var(--foreground))", lineHeight: 1.3 }, children: "Shuffle Pipelines" }),
|
|
7000
7044
|
/* @__PURE__ */ jsx17(Typography11, { sx: { fontSize: "0.72rem", color: "hsl(var(--muted-foreground))", lineHeight: 1.4 }, children: "Do not have a SIEM? Shuffle can ingest, parse, and correlate your logs and events directly \u2014 no external SIEM required." })
|
|
7001
7045
|
] }),
|
|
@@ -7021,7 +7065,7 @@ function ShufflePipelinesBanner() {
|
|
|
7021
7065
|
}
|
|
7022
7066
|
var ShufflePipelinesBanner_default = ShufflePipelinesBanner;
|
|
7023
7067
|
|
|
7024
|
-
// AgentUI.tsx
|
|
7068
|
+
// components/AgentUI.tsx
|
|
7025
7069
|
import { useCallback as useCallback8, useEffect as useEffect11, useMemo as useMemo6, useRef as useRef8, useState as useState12 } from "react";
|
|
7026
7070
|
import {
|
|
7027
7071
|
Plus as AddIcon3,
|
|
@@ -7619,14 +7663,14 @@ var parseScheduleHint = (input) => {
|
|
|
7619
7663
|
return null;
|
|
7620
7664
|
};
|
|
7621
7665
|
|
|
7622
|
-
// AgentRunDiagnosisBanner.tsx
|
|
7666
|
+
// components/AgentRunDiagnosisBanner.tsx
|
|
7623
7667
|
import { Box as Box13, IconButton as IconButton7, Tooltip as Tooltip8, Typography as Typography12 } from "@mui/material";
|
|
7624
7668
|
import { AlertTriangle, ArrowUpRight, HelpCircle, X } from "lucide-react";
|
|
7625
7669
|
|
|
7626
|
-
// AgentDiagnosisCtas.tsx
|
|
7670
|
+
// components/AgentDiagnosisCtas.tsx
|
|
7627
7671
|
import { Box as Box12, Button as Button6, Tooltip as Tooltip7 } from "@mui/material";
|
|
7628
7672
|
import { ExternalLink, Settings2 } from "lucide-react";
|
|
7629
|
-
import { jsx as jsx18, jsxs as
|
|
7673
|
+
import { jsx as jsx18, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
7630
7674
|
var openLocalLlmTab = (e) => {
|
|
7631
7675
|
e.stopPropagation();
|
|
7632
7676
|
window.dispatchEvent(
|
|
@@ -7648,7 +7692,7 @@ var AgentDiagnosisCtas = ({ diagnosis, compact = false, tone = "medium" }) => {
|
|
|
7648
7692
|
const fontSize = compact ? "0.7rem" : "0.78rem";
|
|
7649
7693
|
const iconSize = compact ? 12 : 14;
|
|
7650
7694
|
const px = compact ? 1 : 1.5;
|
|
7651
|
-
return /* @__PURE__ */
|
|
7695
|
+
return /* @__PURE__ */ jsxs15(Box12, { sx: { display: "flex", flexWrap: "wrap", gap: compact ? 0.5 : 1 }, children: [
|
|
7652
7696
|
/* @__PURE__ */ jsx18(Tooltip7, { title: "Configure your own LLM vendor (OpenAI-compatible endpoint)", placement: "top", arrow: true, children: /* @__PURE__ */ jsx18(
|
|
7653
7697
|
Button6,
|
|
7654
7698
|
{
|
|
@@ -7697,7 +7741,7 @@ var AgentDiagnosisCtas = ({ diagnosis, compact = false, tone = "medium" }) => {
|
|
|
7697
7741
|
};
|
|
7698
7742
|
var AgentDiagnosisCtas_default = AgentDiagnosisCtas;
|
|
7699
7743
|
|
|
7700
|
-
// AgentRunDiagnosisBanner.tsx
|
|
7744
|
+
// components/AgentRunDiagnosisBanner.tsx
|
|
7701
7745
|
import { useEffect as useEffect10, useMemo as useMemo5, useState as useState11 } from "react";
|
|
7702
7746
|
|
|
7703
7747
|
// agentDiagnosis.ts
|
|
@@ -8056,8 +8100,8 @@ var diagnoseOutputWarning = (run) => {
|
|
|
8056
8100
|
return null;
|
|
8057
8101
|
};
|
|
8058
8102
|
|
|
8059
|
-
// AgentRunDiagnosisBanner.tsx
|
|
8060
|
-
import { jsx as jsx19, jsxs as
|
|
8103
|
+
// components/AgentRunDiagnosisBanner.tsx
|
|
8104
|
+
import { jsx as jsx19, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
8061
8105
|
var DISMISS_PREFIX = "agent-diagnosis-dismissed::";
|
|
8062
8106
|
var readDismissed = (key) => {
|
|
8063
8107
|
if (!key || typeof window === "undefined") return false;
|
|
@@ -8107,7 +8151,7 @@ var AgentRunDiagnosisBanner = ({ run, sx, onJumpToEvidence, executionId }) => {
|
|
|
8107
8151
|
if (canJump) onJumpToEvidence(jumpDecisionIndex);
|
|
8108
8152
|
};
|
|
8109
8153
|
const showTokenCtas = diagnosis?.kind === "token_limit";
|
|
8110
|
-
return /* @__PURE__ */ jsx19(Box13, { sx: { px: 2.5, pb: 0.5, ...sx || {} }, children: /* @__PURE__ */
|
|
8154
|
+
return /* @__PURE__ */ jsx19(Box13, { sx: { px: 2.5, pb: 0.5, ...sx || {} }, children: /* @__PURE__ */ jsxs16(
|
|
8111
8155
|
Box13,
|
|
8112
8156
|
{
|
|
8113
8157
|
sx: {
|
|
@@ -8121,7 +8165,7 @@ var AgentRunDiagnosisBanner = ({ run, sx, onJumpToEvidence, executionId }) => {
|
|
|
8121
8165
|
border: `1px solid hsla(var(--severity-${tone}) / 0.18)`
|
|
8122
8166
|
},
|
|
8123
8167
|
children: [
|
|
8124
|
-
/* @__PURE__ */
|
|
8168
|
+
/* @__PURE__ */ jsxs16(
|
|
8125
8169
|
Box13,
|
|
8126
8170
|
{
|
|
8127
8171
|
...canJump ? {
|
|
@@ -8212,8 +8256,8 @@ var AgentRunDiagnosisBanner = ({ run, sx, onJumpToEvidence, executionId }) => {
|
|
|
8212
8256
|
};
|
|
8213
8257
|
var AgentRunDiagnosisBanner_default = AgentRunDiagnosisBanner;
|
|
8214
8258
|
|
|
8215
|
-
// AgentUI.tsx
|
|
8216
|
-
import { Fragment as Fragment7, jsx as jsx20, jsxs as
|
|
8259
|
+
// components/AgentUI.tsx
|
|
8260
|
+
import { Fragment as Fragment7, jsx as jsx20, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
8217
8261
|
var normalizeMarkdown = (raw) => {
|
|
8218
8262
|
if (raw == null) return "";
|
|
8219
8263
|
let s = typeof raw === "string" ? raw : (() => {
|
|
@@ -8422,7 +8466,7 @@ var TimelineRow = ({
|
|
|
8422
8466
|
);
|
|
8423
8467
|
const effectiveStatus = runFinished && (item.status === "RUNNING" || item.status === "WAITING") ? "IGNORED" : item.status;
|
|
8424
8468
|
const barColor = isProcessing ? "hsl(var(--muted-foreground) / 0.45)" : effectiveStatus === "IGNORED" ? STATUS_COLORS.warning : effectiveStatus === "FINISHED" ? STATUS_COLORS.finished : effectiveStatus === "FAILURE" || effectiveStatus === "ABORTED" ? STATUS_COLORS.error : STATUS_COLORS.running;
|
|
8425
|
-
return /* @__PURE__ */
|
|
8469
|
+
return /* @__PURE__ */ jsxs17(
|
|
8426
8470
|
Box14,
|
|
8427
8471
|
{
|
|
8428
8472
|
"data-timeline-index": index,
|
|
@@ -8435,7 +8479,7 @@ var TimelineRow = ({
|
|
|
8435
8479
|
boxShadow: highlight ? "inset 0 0 0 2px hsla(var(--severity-medium) / 0.55)" : "none"
|
|
8436
8480
|
},
|
|
8437
8481
|
children: [
|
|
8438
|
-
/* @__PURE__ */
|
|
8482
|
+
/* @__PURE__ */ jsxs17(
|
|
8439
8483
|
Box14,
|
|
8440
8484
|
{
|
|
8441
8485
|
onClick: isProcessing ? void 0 : onToggle,
|
|
@@ -8492,7 +8536,7 @@ var TimelineRow = ({
|
|
|
8492
8536
|
transition: "all 0.2s ease"
|
|
8493
8537
|
} }) }) }),
|
|
8494
8538
|
/* @__PURE__ */ jsx20(Box14, { sx: { width: 60, fontSize: "0.7rem", color: "hsl(var(--muted-foreground))", textAlign: "right" }, children: dur > 0 ? `${dur.toFixed(2)}s` : "" }),
|
|
8495
|
-
/* @__PURE__ */
|
|
8539
|
+
/* @__PURE__ */ jsxs17(
|
|
8496
8540
|
Box14,
|
|
8497
8541
|
{
|
|
8498
8542
|
sx: { display: "flex", alignItems: "center", gap: 0.25, ml: 1, minWidth: 96, justifyContent: "flex-end" },
|
|
@@ -8500,7 +8544,7 @@ var TimelineRow = ({
|
|
|
8500
8544
|
if (e.target.closest("button, a")) e.stopPropagation();
|
|
8501
8545
|
},
|
|
8502
8546
|
children: [
|
|
8503
|
-
item.type === "decision" && details?.run_details?.status === "WAITING" && (item.category === "ask" || details?.action === "ask") && questions.length === 0 && /* @__PURE__ */
|
|
8547
|
+
item.type === "decision" && details?.run_details?.status === "WAITING" && (item.category === "ask" || details?.action === "ask") && questions.length === 0 && /* @__PURE__ */ jsxs17(Fragment7, { children: [
|
|
8504
8548
|
/* @__PURE__ */ jsx20(Tooltip9, { title: "Approve this step", children: /* @__PURE__ */ jsx20("span", { children: /* @__PURE__ */ jsx20(
|
|
8505
8549
|
IconButton8,
|
|
8506
8550
|
{
|
|
@@ -8569,11 +8613,11 @@ var TimelineRow = ({
|
|
|
8569
8613
|
onSubmitQuestions(details.run_details.id, questionAnswers);
|
|
8570
8614
|
}
|
|
8571
8615
|
};
|
|
8572
|
-
return /* @__PURE__ */
|
|
8616
|
+
return /* @__PURE__ */ jsxs17(Fragment7, { children: [
|
|
8573
8617
|
questions.map((q, qi) => {
|
|
8574
8618
|
const value = questionAnswers[q.question]?.value || "";
|
|
8575
8619
|
const isMissing = submitAttempted && !value;
|
|
8576
|
-
return /* @__PURE__ */
|
|
8620
|
+
return /* @__PURE__ */ jsxs17(Box14, { sx: { mt: 2 }, children: [
|
|
8577
8621
|
/* @__PURE__ */ jsx20(Box14, { sx: { fontSize: "0.85rem", color: "hsl(var(--foreground))", mb: 1 }, children: /* @__PURE__ */ jsx20(Markdown, { remarkPlugins: [remarkGfm4, remarkBreaks], children: normalizeMarkdown(q.question) }) }),
|
|
8578
8622
|
/* @__PURE__ */ jsx20(
|
|
8579
8623
|
TextField5,
|
|
@@ -8606,7 +8650,7 @@ var TimelineRow = ({
|
|
|
8606
8650
|
)
|
|
8607
8651
|
] }, qi);
|
|
8608
8652
|
}),
|
|
8609
|
-
/* @__PURE__ */
|
|
8653
|
+
/* @__PURE__ */ jsxs17(Box14, { sx: { display: "flex", alignItems: "center", gap: 1, mt: 2 }, children: [
|
|
8610
8654
|
/* @__PURE__ */ jsx20(Tooltip9, { title: !questionsAnswered ? "Please answer all questions first" : "", placement: "top", arrow: true, children: /* @__PURE__ */ jsx20("span", { children: /* @__PURE__ */ jsx20(
|
|
8611
8655
|
Button8,
|
|
8612
8656
|
{
|
|
@@ -8633,7 +8677,7 @@ var TimelineRow = ({
|
|
|
8633
8677
|
] })
|
|
8634
8678
|
] });
|
|
8635
8679
|
})() }),
|
|
8636
|
-
open && runFinished && unansweredQuestions.length > 0 && /* @__PURE__ */
|
|
8680
|
+
open && runFinished && unansweredQuestions.length > 0 && /* @__PURE__ */ jsxs17(Box14, { sx: { px: 4, pb: 2 }, children: [
|
|
8637
8681
|
/* @__PURE__ */ jsx20(Typography13, { sx: { fontSize: "0.7rem", textTransform: "uppercase", letterSpacing: 0.5, color: "hsl(var(--muted-foreground))", mb: 1 }, children: unansweredQuestions.length === 1 ? "Question (unanswered)" : "Questions (unanswered)" }),
|
|
8638
8682
|
/* @__PURE__ */ jsx20(Box14, { sx: {
|
|
8639
8683
|
p: 2,
|
|
@@ -8653,7 +8697,7 @@ var TimelineRow = ({
|
|
|
8653
8697
|
const slug = req.appName.toLowerCase().replace(/[\s-]+/g, "_");
|
|
8654
8698
|
const appId = req.appId || appsById[req.appName]?.id || appsById[slug]?.id || null;
|
|
8655
8699
|
const icon = appsById[req.appName]?.icon || appsById[slug]?.icon || (appId ? appsById[appId]?.icon : "") || "";
|
|
8656
|
-
return /* @__PURE__ */ jsx20(Box14, { sx: { px: 4, pb: 2 }, children: /* @__PURE__ */
|
|
8700
|
+
return /* @__PURE__ */ jsx20(Box14, { sx: { px: 4, pb: 2 }, children: /* @__PURE__ */ jsxs17(Box14, { sx: {
|
|
8657
8701
|
display: "flex",
|
|
8658
8702
|
alignItems: "center",
|
|
8659
8703
|
gap: 1.5,
|
|
@@ -8663,18 +8707,18 @@ var TimelineRow = ({
|
|
|
8663
8707
|
bgcolor: "hsla(var(--severity-medium) / 0.08)"
|
|
8664
8708
|
}, children: [
|
|
8665
8709
|
/* @__PURE__ */ jsx20(LockIcon3, { size: 22, color: "hsl(var(--severity-medium))" }),
|
|
8666
|
-
/* @__PURE__ */
|
|
8667
|
-
/* @__PURE__ */
|
|
8710
|
+
/* @__PURE__ */ jsxs17(Box14, { sx: { flex: 1, minWidth: 0 }, children: [
|
|
8711
|
+
/* @__PURE__ */ jsxs17(Typography13, { sx: { fontSize: "0.85rem", fontWeight: 600, color: "hsl(var(--foreground))" }, children: [
|
|
8668
8712
|
pretty,
|
|
8669
8713
|
" requires authentication"
|
|
8670
8714
|
] }),
|
|
8671
|
-
/* @__PURE__ */
|
|
8715
|
+
/* @__PURE__ */ jsxs17(Typography13, { sx: { fontSize: "0.75rem", color: "hsl(var(--muted-foreground))" }, children: [
|
|
8672
8716
|
"Connect your ",
|
|
8673
8717
|
pretty,
|
|
8674
8718
|
" account so the agent can complete this step, then rerun the decision."
|
|
8675
8719
|
] })
|
|
8676
8720
|
] }),
|
|
8677
|
-
/* @__PURE__ */
|
|
8721
|
+
/* @__PURE__ */ jsxs17(
|
|
8678
8722
|
Button8,
|
|
8679
8723
|
{
|
|
8680
8724
|
variant: "outlined",
|
|
@@ -9906,14 +9950,14 @@ var AgentUI = ({
|
|
|
9906
9950
|
if (cron) setScheduleCron(cron);
|
|
9907
9951
|
}, [schedFreq, schedInterval, schedHour, schedMinute, schedWeekdays, schedDayOfMonth]);
|
|
9908
9952
|
const scheduleDisabledReason = scheduleDisabledReasons[0] || "";
|
|
9909
|
-
const scheduleDisabledTooltip = scheduleDisabledReasons.length > 1 ? /* @__PURE__ */
|
|
9910
|
-
/* @__PURE__ */
|
|
9953
|
+
const scheduleDisabledTooltip = scheduleDisabledReasons.length > 1 ? /* @__PURE__ */ jsxs17(Box14, { children: [
|
|
9954
|
+
/* @__PURE__ */ jsxs17(Box14, { sx: { fontWeight: 600, mb: 0.5 }, children: [
|
|
9911
9955
|
"Cannot schedule for ",
|
|
9912
9956
|
scheduleDisabledReasons.length,
|
|
9913
9957
|
" reasons:"
|
|
9914
9958
|
] }),
|
|
9915
|
-
/* @__PURE__ */ jsx20(Box14, { sx: { m: 0 }, children: scheduleDisabledReasons.map((r, i) => /* @__PURE__ */
|
|
9916
|
-
/* @__PURE__ */
|
|
9959
|
+
/* @__PURE__ */ jsx20(Box14, { sx: { m: 0 }, children: scheduleDisabledReasons.map((r, i) => /* @__PURE__ */ jsxs17(Box14, { sx: { mb: 0.5, display: "flex", gap: 0.75 }, children: [
|
|
9960
|
+
/* @__PURE__ */ jsxs17(Box14, { component: "span", sx: { fontWeight: 700, flexShrink: 0 }, children: [
|
|
9917
9961
|
i + 1,
|
|
9918
9962
|
"."
|
|
9919
9963
|
] }),
|
|
@@ -9975,7 +10019,7 @@ var AgentUI = ({
|
|
|
9975
10019
|
)
|
|
9976
10020
|
}
|
|
9977
10021
|
);
|
|
9978
|
-
const schedulePopover = /* @__PURE__ */
|
|
10022
|
+
const schedulePopover = /* @__PURE__ */ jsxs17(
|
|
9979
10023
|
Popover,
|
|
9980
10024
|
{
|
|
9981
10025
|
open: Boolean(scheduleAnchor),
|
|
@@ -10000,7 +10044,7 @@ var AgentUI = ({
|
|
|
10000
10044
|
children: [
|
|
10001
10045
|
/* @__PURE__ */ jsx20(Typography13, { sx: { fontSize: "0.85rem", fontWeight: 600, mb: 0.5 }, children: "Schedule recurring run" }),
|
|
10002
10046
|
/* @__PURE__ */ jsx20(Typography13, { sx: { fontSize: "0.75rem", color: "hsl(var(--muted-foreground))", mb: 1.5 }, children: "Choose how often this prompt should run. The schedule keeps running until you remove it." }),
|
|
10003
|
-
scheduleHint && /* @__PURE__ */
|
|
10047
|
+
scheduleHint && /* @__PURE__ */ jsxs17(
|
|
10004
10048
|
Box14,
|
|
10005
10049
|
{
|
|
10006
10050
|
sx: {
|
|
@@ -10015,7 +10059,7 @@ var AgentUI = ({
|
|
|
10015
10059
|
},
|
|
10016
10060
|
children: [
|
|
10017
10061
|
/* @__PURE__ */ jsx20(ScheduleIcon, { size: 16, color: "hsl(var(--primary))" }),
|
|
10018
|
-
/* @__PURE__ */
|
|
10062
|
+
/* @__PURE__ */ jsxs17(Box14, { sx: { flex: 1, minWidth: 0 }, children: [
|
|
10019
10063
|
/* @__PURE__ */ jsx20(Box14, { sx: { fontSize: "0.7rem", color: "hsl(var(--muted-foreground))", mb: 0.25 }, children: "Detected from your prompt" }),
|
|
10020
10064
|
/* @__PURE__ */ jsx20(Box14, { sx: { fontSize: "0.78rem", fontWeight: 600, color: "hsl(var(--foreground))" }, children: scheduleHint.label }),
|
|
10021
10065
|
/* @__PURE__ */ jsx20(Box14, { sx: { fontSize: "0.68rem", fontFamily: "monospace", color: "hsl(var(--muted-foreground))" }, children: scheduleHint.cron })
|
|
@@ -10041,7 +10085,7 @@ var AgentUI = ({
|
|
|
10041
10085
|
]
|
|
10042
10086
|
}
|
|
10043
10087
|
),
|
|
10044
|
-
/* @__PURE__ */
|
|
10088
|
+
/* @__PURE__ */ jsxs17(Box14, { sx: { display: "flex", alignItems: "center", gap: 1, mb: 1.25 }, children: [
|
|
10045
10089
|
/* @__PURE__ */ jsx20(Typography13, { sx: { fontSize: "0.78rem", color: "hsl(var(--muted-foreground))", flexShrink: 0 }, children: "Repeat every" }),
|
|
10046
10090
|
/* @__PURE__ */ jsx20(
|
|
10047
10091
|
TextField5,
|
|
@@ -10065,7 +10109,7 @@ var AgentUI = ({
|
|
|
10065
10109
|
}
|
|
10066
10110
|
}
|
|
10067
10111
|
),
|
|
10068
|
-
/* @__PURE__ */
|
|
10112
|
+
/* @__PURE__ */ jsxs17(
|
|
10069
10113
|
Select2,
|
|
10070
10114
|
{
|
|
10071
10115
|
size: "small",
|
|
@@ -10096,7 +10140,7 @@ var AgentUI = ({
|
|
|
10096
10140
|
}
|
|
10097
10141
|
)
|
|
10098
10142
|
] }),
|
|
10099
|
-
(schedFreq === "days" || schedFreq === "weeks" || schedFreq === "months") && /* @__PURE__ */
|
|
10143
|
+
(schedFreq === "days" || schedFreq === "weeks" || schedFreq === "months") && /* @__PURE__ */ jsxs17(Box14, { sx: { display: "flex", alignItems: "center", gap: 1, mb: 1.25 }, children: [
|
|
10100
10144
|
/* @__PURE__ */ jsx20(Typography13, { sx: { fontSize: "0.78rem", color: "hsl(var(--muted-foreground))", flexShrink: 0 }, children: "At" }),
|
|
10101
10145
|
/* @__PURE__ */ jsx20(
|
|
10102
10146
|
TextField5,
|
|
@@ -10123,7 +10167,7 @@ var AgentUI = ({
|
|
|
10123
10167
|
}
|
|
10124
10168
|
)
|
|
10125
10169
|
] }),
|
|
10126
|
-
schedFreq === "weeks" && /* @__PURE__ */
|
|
10170
|
+
schedFreq === "weeks" && /* @__PURE__ */ jsxs17(Box14, { sx: { mb: 1.25 }, children: [
|
|
10127
10171
|
/* @__PURE__ */ jsx20(Typography13, { sx: { fontSize: "0.78rem", color: "hsl(var(--muted-foreground))", mb: 0.75 }, children: "Repeat on" }),
|
|
10128
10172
|
/* @__PURE__ */ jsx20(Box14, { sx: { display: "flex", gap: 0.5 }, children: ["S", "M", "T", "W", "T", "F", "S"].map((label, i) => {
|
|
10129
10173
|
const active = schedWeekdays.has(i);
|
|
@@ -10164,13 +10208,13 @@ var AgentUI = ({
|
|
|
10164
10208
|
i
|
|
10165
10209
|
);
|
|
10166
10210
|
}) }),
|
|
10167
|
-
schedInterval > 1 && /* @__PURE__ */
|
|
10211
|
+
schedInterval > 1 && /* @__PURE__ */ jsxs17(Typography13, { sx: { fontSize: "0.68rem", color: "hsl(var(--muted-foreground))", mt: 0.75 }, children: [
|
|
10168
10212
|
"Cron does not support every ",
|
|
10169
10213
|
schedInterval,
|
|
10170
10214
|
" weeks natively \u2014 this will run weekly on the selected days."
|
|
10171
10215
|
] })
|
|
10172
10216
|
] }),
|
|
10173
|
-
schedFreq === "months" && /* @__PURE__ */
|
|
10217
|
+
schedFreq === "months" && /* @__PURE__ */ jsxs17(Box14, { sx: { display: "flex", alignItems: "center", gap: 1, mb: 1.25 }, children: [
|
|
10174
10218
|
/* @__PURE__ */ jsx20(Typography13, { sx: { fontSize: "0.78rem", color: "hsl(var(--muted-foreground))", flexShrink: 0 }, children: "On day" }),
|
|
10175
10219
|
/* @__PURE__ */ jsx20(
|
|
10176
10220
|
TextField5,
|
|
@@ -10223,8 +10267,8 @@ var AgentUI = ({
|
|
|
10223
10267
|
},
|
|
10224
10268
|
expr
|
|
10225
10269
|
)) }),
|
|
10226
|
-
/* @__PURE__ */
|
|
10227
|
-
/* @__PURE__ */
|
|
10270
|
+
/* @__PURE__ */ jsxs17(Box14, { sx: { mt: 1.25 }, children: [
|
|
10271
|
+
/* @__PURE__ */ jsxs17(
|
|
10228
10272
|
Box14,
|
|
10229
10273
|
{
|
|
10230
10274
|
role: "button",
|
|
@@ -10267,7 +10311,7 @@ var AgentUI = ({
|
|
|
10267
10311
|
}
|
|
10268
10312
|
}
|
|
10269
10313
|
),
|
|
10270
|
-
/* @__PURE__ */
|
|
10314
|
+
/* @__PURE__ */ jsxs17(Typography13, { sx: { fontSize: "0.68rem", fontFamily: "monospace", color: "hsl(var(--muted-foreground))", mt: 0.75 }, children: [
|
|
10271
10315
|
"cron: ",
|
|
10272
10316
|
scheduleCron || "\u2014"
|
|
10273
10317
|
] })
|
|
@@ -10275,23 +10319,23 @@ var AgentUI = ({
|
|
|
10275
10319
|
scheduleSaving && /* @__PURE__ */ jsx20(Box14, { sx: { mt: 2, display: "flex", flexDirection: "column", gap: 0.75, p: 1.25, borderRadius: 1, bgcolor: "hsl(var(--muted))", border: "1px solid hsl(var(--border))" }, children: scheduleSteps.map((s) => {
|
|
10276
10320
|
const label = s.id === "name" ? "Generating name & description" : s.id === "workflow" ? "Creating workflow" : "Enabling schedule";
|
|
10277
10321
|
const color = s.state === "done" ? "hsl(var(--primary))" : s.state === "error" ? "hsl(var(--destructive))" : s.state === "active" ? "hsl(var(--foreground))" : "hsl(var(--muted-foreground))";
|
|
10278
|
-
return /* @__PURE__ */
|
|
10279
|
-
/* @__PURE__ */
|
|
10322
|
+
return /* @__PURE__ */ jsxs17(Box14, { sx: { display: "flex", alignItems: "center", gap: 1, fontSize: "0.78rem", color }, children: [
|
|
10323
|
+
/* @__PURE__ */ jsxs17(Box14, { sx: { width: 16, display: "flex", alignItems: "center", justifyContent: "center" }, children: [
|
|
10280
10324
|
s.state === "active" && /* @__PURE__ */ jsx20(CircularProgress4, { size: 12, sx: { color: "hsl(var(--primary))" } }),
|
|
10281
10325
|
s.state === "done" && /* @__PURE__ */ jsx20(Box14, { sx: { fontSize: "0.85rem", lineHeight: 1, color: "hsl(var(--primary))" }, children: "\u2713" }),
|
|
10282
10326
|
s.state === "error" && /* @__PURE__ */ jsx20(Box14, { sx: { fontSize: "0.85rem", lineHeight: 1, color: "hsl(var(--destructive))" }, children: "!" }),
|
|
10283
10327
|
s.state === "pending" && /* @__PURE__ */ jsx20(Box14, { sx: { width: 6, height: 6, borderRadius: "50%", bgcolor: "hsl(var(--muted-foreground))", opacity: 0.4 } })
|
|
10284
10328
|
] }),
|
|
10285
|
-
/* @__PURE__ */
|
|
10329
|
+
/* @__PURE__ */ jsxs17(Box14, { component: "span", sx: { fontFamily: "inherit" }, children: [
|
|
10286
10330
|
label,
|
|
10287
|
-
s.detail && s.state !== "pending" && /* @__PURE__ */
|
|
10331
|
+
s.detail && s.state !== "pending" && /* @__PURE__ */ jsxs17(Box14, { component: "span", sx: { ml: 0.75, color: "hsl(var(--muted-foreground))", fontFamily: "monospace", fontSize: "0.72rem" }, children: [
|
|
10288
10332
|
"\u2014 ",
|
|
10289
10333
|
s.detail
|
|
10290
10334
|
] })
|
|
10291
10335
|
] })
|
|
10292
10336
|
] }, s.id);
|
|
10293
10337
|
}) }),
|
|
10294
|
-
/* @__PURE__ */
|
|
10338
|
+
/* @__PURE__ */ jsxs17(Box14, { sx: { display: "flex", justifyContent: "flex-end", gap: 1, mt: 2 }, children: [
|
|
10295
10339
|
/* @__PURE__ */ jsx20(
|
|
10296
10340
|
Button8,
|
|
10297
10341
|
{
|
|
@@ -10363,7 +10407,7 @@ var AgentUI = ({
|
|
|
10363
10407
|
{ width: "100%", display: "flex", justifyContent: "center", pb: 4 },
|
|
10364
10408
|
...Array.isArray(sx) ? sx : sx ? [sx] : []
|
|
10365
10409
|
],
|
|
10366
|
-
children: /* @__PURE__ */
|
|
10410
|
+
children: /* @__PURE__ */ jsxs17(
|
|
10367
10411
|
Box14,
|
|
10368
10412
|
{
|
|
10369
10413
|
sx: [
|
|
@@ -10373,7 +10417,7 @@ var AgentUI = ({
|
|
|
10373
10417
|
children: [
|
|
10374
10418
|
showRunSwitcher && tabBar,
|
|
10375
10419
|
schedulePopover,
|
|
10376
|
-
showStarter ? /* @__PURE__ */
|
|
10420
|
+
showStarter ? /* @__PURE__ */ jsxs17(
|
|
10377
10421
|
Box14,
|
|
10378
10422
|
{
|
|
10379
10423
|
component: "form",
|
|
@@ -10408,7 +10452,7 @@ var AgentUI = ({
|
|
|
10408
10452
|
mt: -1,
|
|
10409
10453
|
maxWidth: 600
|
|
10410
10454
|
}, children: subtitle }),
|
|
10411
|
-
/* @__PURE__ */
|
|
10455
|
+
/* @__PURE__ */ jsxs17(Box14, { sx: {
|
|
10412
10456
|
width: "100%",
|
|
10413
10457
|
display: "flex",
|
|
10414
10458
|
flexDirection: "column",
|
|
@@ -10424,7 +10468,7 @@ var AgentUI = ({
|
|
|
10424
10468
|
boxShadow: "0 0 0 3px hsla(var(--primary) / 0.12)"
|
|
10425
10469
|
}
|
|
10426
10470
|
}, children: [
|
|
10427
|
-
attachedImages.length > 0 && /* @__PURE__ */ jsx20(Box14, { sx: { display: "flex", flexWrap: "wrap", gap: 0.75 }, children: attachedImages.map((img, idx) => /* @__PURE__ */
|
|
10471
|
+
attachedImages.length > 0 && /* @__PURE__ */ jsx20(Box14, { sx: { display: "flex", flexWrap: "wrap", gap: 0.75 }, children: attachedImages.map((img, idx) => /* @__PURE__ */ jsxs17(Box14, { sx: {
|
|
10428
10472
|
display: "inline-flex",
|
|
10429
10473
|
alignItems: "center",
|
|
10430
10474
|
gap: 1,
|
|
@@ -10439,7 +10483,7 @@ var AgentUI = ({
|
|
|
10439
10483
|
/* @__PURE__ */ jsx20(Typography13, { sx: { fontSize: "0.72rem", color: "hsl(var(--foreground))", maxWidth: 190, overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children: img.name }),
|
|
10440
10484
|
/* @__PURE__ */ jsx20(IconButton8, { size: "small", onClick: () => setAttachedImages((prev) => prev.filter((_, i) => i !== idx)), sx: { p: 0.25, color: "hsl(var(--muted-foreground))", "&:hover": { color: "hsl(var(--destructive))" } }, "aria-label": "Remove attached image", children: /* @__PURE__ */ jsx20(CloseIcon5, { size: 12 }) })
|
|
10441
10485
|
] }, `${img.name}-${idx}`)) }),
|
|
10442
|
-
/* @__PURE__ */
|
|
10486
|
+
/* @__PURE__ */ jsxs17(Box14, { sx: { display: "flex", alignItems: "flex-end", gap: 1, width: "100%" }, children: [
|
|
10443
10487
|
/* @__PURE__ */ jsx20(
|
|
10444
10488
|
InputBase2,
|
|
10445
10489
|
{
|
|
@@ -10496,7 +10540,7 @@ var AgentUI = ({
|
|
|
10496
10540
|
const canSchedule = (hasExecution || allowWithoutExecution) && !scheduleDisabledReason && !promptTooShort && !disableSchedule;
|
|
10497
10541
|
const hintActive = Boolean(scheduleHint) && canSchedule;
|
|
10498
10542
|
const tip = disableSchedule ? disableScheduleTooltip || "Scheduling is disabled while editing" : scheduleDisabledReason ? scheduleDisabledTooltip : promptTooShort ? "Type a prompt before scheduling." : hintActive ? `Detected schedule: ${scheduleHint.label}. Click to review and save.` : "Schedule this prompt to run repeatedly on a cron schedule";
|
|
10499
|
-
return /* @__PURE__ */ jsx20(Tooltip9, { title: tip, placement: "top", arrow: true, children: /* @__PURE__ */ jsx20(Box14, { sx: { display: "inline-flex", alignItems: "center", gap: 0.5 }, children: /* @__PURE__ */
|
|
10543
|
+
return /* @__PURE__ */ jsx20(Tooltip9, { title: tip, placement: "top", arrow: true, children: /* @__PURE__ */ jsx20(Box14, { sx: { display: "inline-flex", alignItems: "center", gap: 0.5 }, children: /* @__PURE__ */ jsxs17(
|
|
10500
10544
|
IconButton8,
|
|
10501
10545
|
{
|
|
10502
10546
|
type: "button",
|
|
@@ -10557,7 +10601,7 @@ var AgentUI = ({
|
|
|
10557
10601
|
children: /* @__PURE__ */ jsx20(AttachFileIcon, { size: 18 })
|
|
10558
10602
|
}
|
|
10559
10603
|
),
|
|
10560
|
-
/* @__PURE__ */ jsx20(Tooltip9, { title: submitTooltip, placement: "top", arrow: true, children: /* @__PURE__ */ jsx20("span", { children: submitLabel ? /* @__PURE__ */
|
|
10604
|
+
/* @__PURE__ */ jsx20(Tooltip9, { title: submitTooltip, placement: "top", arrow: true, children: /* @__PURE__ */ jsx20("span", { children: submitLabel ? /* @__PURE__ */ jsxs17(Box14, { sx: { display: "inline-flex", alignItems: "center", gap: 1 }, children: [
|
|
10561
10605
|
/* @__PURE__ */ jsx20(Tooltip9, { title: "Try this prompt without saving", placement: "top", arrow: true, children: /* @__PURE__ */ jsx20(
|
|
10562
10606
|
IconButton8,
|
|
10563
10607
|
{
|
|
@@ -10616,7 +10660,7 @@ var AgentUI = ({
|
|
|
10616
10660
|
) }) })
|
|
10617
10661
|
] })
|
|
10618
10662
|
] }),
|
|
10619
|
-
!hideAppPicker && /* @__PURE__ */ jsx20(Box14, { sx: { display: "flex", justifyContent: "center" }, children: /* @__PURE__ */
|
|
10663
|
+
!hideAppPicker && /* @__PURE__ */ jsx20(Box14, { sx: { display: "flex", justifyContent: "center" }, children: /* @__PURE__ */ jsxs17(Box14, { sx: {
|
|
10620
10664
|
display: "inline-flex",
|
|
10621
10665
|
flexWrap: "wrap",
|
|
10622
10666
|
alignItems: "center",
|
|
@@ -10627,7 +10671,7 @@ var AgentUI = ({
|
|
|
10627
10671
|
bgcolor: "hsl(var(--card))",
|
|
10628
10672
|
maxWidth: "100%"
|
|
10629
10673
|
}, children: [
|
|
10630
|
-
!hideChooseLLM && /* @__PURE__ */ jsx20(Tooltip9, { title: "Configure the local LLM used for this agent", children: /* @__PURE__ */
|
|
10674
|
+
!hideChooseLLM && /* @__PURE__ */ jsx20(Tooltip9, { title: "Configure the local LLM used for this agent", children: /* @__PURE__ */ jsxs17(
|
|
10631
10675
|
Box14,
|
|
10632
10676
|
{
|
|
10633
10677
|
component: "button",
|
|
@@ -10671,7 +10715,7 @@ var AgentUI = ({
|
|
|
10671
10715
|
]
|
|
10672
10716
|
}
|
|
10673
10717
|
) }),
|
|
10674
|
-
/* @__PURE__ */ jsx20(Tooltip9, { title: agentRequestLoading ? "Locked while the agent is running" : "", children: /* @__PURE__ */
|
|
10718
|
+
/* @__PURE__ */ jsx20(Tooltip9, { title: agentRequestLoading ? "Locked while the agent is running" : "", children: /* @__PURE__ */ jsxs17(
|
|
10675
10719
|
Box14,
|
|
10676
10720
|
{
|
|
10677
10721
|
component: "button",
|
|
@@ -10712,7 +10756,7 @@ var AgentUI = ({
|
|
|
10712
10756
|
{
|
|
10713
10757
|
title: needsAuth ? `${(app.name || "").replace(/_/g, " ")} is not authenticated yet \u2014 click to set it up` : "",
|
|
10714
10758
|
arrow: true,
|
|
10715
|
-
children: /* @__PURE__ */
|
|
10759
|
+
children: /* @__PURE__ */ jsxs17(
|
|
10716
10760
|
Box14,
|
|
10717
10761
|
{
|
|
10718
10762
|
onClick: needsAuth && !agentRequestLoading ? () => setAuthDrawerApp({ name: app.name, id: app.id || null }) : void 0,
|
|
@@ -10772,7 +10816,7 @@ var AgentUI = ({
|
|
|
10772
10816
|
return !NO_AUTH.has(slug) && !isAppAuthenticated(a.name || "");
|
|
10773
10817
|
});
|
|
10774
10818
|
if (unauthed.length === 0) return null;
|
|
10775
|
-
return /* @__PURE__ */ jsx20(Box14, { sx: { display: "flex", justifyContent: "center", mt: -0.5 }, children: /* @__PURE__ */
|
|
10819
|
+
return /* @__PURE__ */ jsx20(Box14, { sx: { display: "flex", justifyContent: "center", mt: -0.5 }, children: /* @__PURE__ */ jsxs17(Box14, { sx: {
|
|
10776
10820
|
display: "inline-flex",
|
|
10777
10821
|
alignItems: "center",
|
|
10778
10822
|
gap: 1,
|
|
@@ -10787,7 +10831,7 @@ var AgentUI = ({
|
|
|
10787
10831
|
}, children: [
|
|
10788
10832
|
/* @__PURE__ */ jsx20(WarningIcon, { size: 14, color: "hsl(var(--severity-medium))" }),
|
|
10789
10833
|
/* @__PURE__ */ jsx20(Typography13, { sx: { fontSize: "0.75rem", color: "hsl(var(--muted-foreground))" }, children: unauthed.length === 1 ? `${unauthed[0].name.replace(/_/g, " ")} is not authenticated.` : `${unauthed.length} apps are not authenticated.` }),
|
|
10790
|
-
/* @__PURE__ */
|
|
10834
|
+
/* @__PURE__ */ jsxs17(
|
|
10791
10835
|
Box14,
|
|
10792
10836
|
{
|
|
10793
10837
|
component: "button",
|
|
@@ -10822,8 +10866,8 @@ var AgentUI = ({
|
|
|
10822
10866
|
}, children: error })
|
|
10823
10867
|
]
|
|
10824
10868
|
}
|
|
10825
|
-
) : /* @__PURE__ */
|
|
10826
|
-
/* @__PURE__ */
|
|
10869
|
+
) : /* @__PURE__ */ jsxs17(Box14, { children: [
|
|
10870
|
+
/* @__PURE__ */ jsxs17(Box14, { sx: {
|
|
10827
10871
|
display: "flex",
|
|
10828
10872
|
alignItems: "center",
|
|
10829
10873
|
gap: 2,
|
|
@@ -10848,9 +10892,9 @@ var AgentUI = ({
|
|
|
10848
10892
|
}
|
|
10849
10893
|
}
|
|
10850
10894
|
) }, i)) }),
|
|
10851
|
-
/* @__PURE__ */
|
|
10895
|
+
/* @__PURE__ */ jsxs17(Box14, { sx: { flex: 1, minWidth: 0 }, children: [
|
|
10852
10896
|
/* @__PURE__ */ jsx20(Typography13, { sx: { fontSize: "0.85rem", color: "hsl(var(--foreground))", fontWeight: 600, overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children: agentData?.original_input || actionInput || "Agent run" }),
|
|
10853
|
-
/* @__PURE__ */
|
|
10897
|
+
/* @__PURE__ */ jsxs17(Typography13, { sx: { fontSize: "0.7rem", color: "hsl(var(--muted-foreground))" }, children: [
|
|
10854
10898
|
"Status: ",
|
|
10855
10899
|
execution?.status || agentData?.status || "\u2014",
|
|
10856
10900
|
" \xB7 ",
|
|
@@ -10970,11 +11014,11 @@ var AgentUI = ({
|
|
|
10970
11014
|
}
|
|
10971
11015
|
}
|
|
10972
11016
|
const pendingAnswered = pendingQuestions.every((q) => questionAnswers[q.question]?.value);
|
|
10973
|
-
return /* @__PURE__ */
|
|
10974
|
-
/* @__PURE__ */
|
|
11017
|
+
return /* @__PURE__ */ jsxs17(Fragment7, { children: [
|
|
11018
|
+
/* @__PURE__ */ jsxs17(Box14, { sx: { display: "flex", alignItems: "center", gap: 1, flexWrap: "wrap" }, children: [
|
|
10975
11019
|
isRunning ? /* @__PURE__ */ jsx20(CircularProgress4, { size: 16, sx: { color: "hsl(var(--primary))" } }) : status === "FINISHED" ? /* @__PURE__ */ jsx20(CheckCircleIcon4, { size: 18, color: "hsl(142 70% 45%)" }) : /* @__PURE__ */ jsx20(ErrorIcon, { size: 18, color: "hsl(var(--destructive))" }),
|
|
10976
11020
|
/* @__PURE__ */ jsx20(Typography13, { sx: { fontSize: "0.9rem", fontWeight: 600, color: "hsl(var(--foreground))" }, children: isRunning ? "Agent is working\u2026" : status === "FINISHED" ? "Run finished" : `Run ${status.toLowerCase()}` }),
|
|
10977
|
-
/* @__PURE__ */
|
|
11021
|
+
/* @__PURE__ */ jsxs17(Typography13, { sx: { fontSize: "0.75rem", color: "hsl(var(--muted-foreground))" }, children: [
|
|
10978
11022
|
decisionCount,
|
|
10979
11023
|
" step",
|
|
10980
11024
|
decisionCount === 1 ? "" : "s",
|
|
@@ -10984,7 +11028,7 @@ var AgentUI = ({
|
|
|
10984
11028
|
] }),
|
|
10985
11029
|
pendingAuthApps.map(({ appName, appId, icon }) => {
|
|
10986
11030
|
const pretty = appName.replace(/_/g, " ").replace(/\b\w/g, (c) => c.toUpperCase());
|
|
10987
|
-
return /* @__PURE__ */
|
|
11031
|
+
return /* @__PURE__ */ jsxs17(
|
|
10988
11032
|
Box14,
|
|
10989
11033
|
{
|
|
10990
11034
|
sx: {
|
|
@@ -10998,18 +11042,18 @@ var AgentUI = ({
|
|
|
10998
11042
|
},
|
|
10999
11043
|
children: [
|
|
11000
11044
|
/* @__PURE__ */ jsx20(LockIcon3, { size: 22, color: "hsl(var(--severity-medium))" }),
|
|
11001
|
-
/* @__PURE__ */
|
|
11002
|
-
/* @__PURE__ */
|
|
11045
|
+
/* @__PURE__ */ jsxs17(Box14, { sx: { flex: 1, minWidth: 0 }, children: [
|
|
11046
|
+
/* @__PURE__ */ jsxs17(Typography13, { sx: { fontSize: "0.85rem", fontWeight: 600, color: "hsl(var(--foreground))" }, children: [
|
|
11003
11047
|
pretty,
|
|
11004
11048
|
" requires authentication"
|
|
11005
11049
|
] }),
|
|
11006
|
-
/* @__PURE__ */
|
|
11050
|
+
/* @__PURE__ */ jsxs17(Typography13, { sx: { fontSize: "0.75rem", color: "hsl(var(--muted-foreground))" }, children: [
|
|
11007
11051
|
"Connect your ",
|
|
11008
11052
|
pretty,
|
|
11009
11053
|
" account so the agent can complete this step, then rerun."
|
|
11010
11054
|
] })
|
|
11011
11055
|
] }),
|
|
11012
|
-
/* @__PURE__ */
|
|
11056
|
+
/* @__PURE__ */ jsxs17(
|
|
11013
11057
|
Button8,
|
|
11014
11058
|
{
|
|
11015
11059
|
variant: "outlined",
|
|
@@ -11108,11 +11152,11 @@ var AgentUI = ({
|
|
|
11108
11152
|
submitQuestions(pendingAsk.run_details.id, questionAnswers);
|
|
11109
11153
|
}
|
|
11110
11154
|
};
|
|
11111
|
-
return /* @__PURE__ */
|
|
11155
|
+
return /* @__PURE__ */ jsxs17(Box14, { sx: { display: "flex", flexDirection: "column", gap: 1.5 }, children: [
|
|
11112
11156
|
pendingQuestions.map((q, qi) => {
|
|
11113
11157
|
const value = questionAnswers[q.question]?.value || "";
|
|
11114
11158
|
const isMissing = simpleSubmitAttempted && !value;
|
|
11115
|
-
return /* @__PURE__ */
|
|
11159
|
+
return /* @__PURE__ */ jsxs17(Box14, { children: [
|
|
11116
11160
|
/* @__PURE__ */ jsx20(Box14, { sx: { fontSize: "0.9rem", color: "hsl(var(--foreground))", mb: 1, "& p": { my: 0.5 } }, children: /* @__PURE__ */ jsx20(Markdown, { remarkPlugins: [remarkGfm4, remarkBreaks], children: normalizeMarkdown(q.question) }) }),
|
|
11117
11161
|
/* @__PURE__ */ jsx20(
|
|
11118
11162
|
TextField5,
|
|
@@ -11143,7 +11187,7 @@ var AgentUI = ({
|
|
|
11143
11187
|
)
|
|
11144
11188
|
] }, qi);
|
|
11145
11189
|
}),
|
|
11146
|
-
/* @__PURE__ */
|
|
11190
|
+
/* @__PURE__ */ jsxs17(Box14, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
|
|
11147
11191
|
/* @__PURE__ */ jsx20(Tooltip9, { title: !pendingAnswered ? "Please answer all questions first" : "", placement: "top", arrow: true, children: /* @__PURE__ */ jsx20("span", { children: /* @__PURE__ */ jsx20(
|
|
11148
11192
|
Button8,
|
|
11149
11193
|
{
|
|
@@ -11191,10 +11235,10 @@ var AgentUI = ({
|
|
|
11191
11235
|
border: "1px solid hsl(var(--border))",
|
|
11192
11236
|
bgcolor: "hsl(var(--card))",
|
|
11193
11237
|
overflow: "hidden"
|
|
11194
|
-
}, children: timeline.length === 0 || timeline.length === 1 && agentRequestLoading ? /* @__PURE__ */
|
|
11238
|
+
}, children: timeline.length === 0 || timeline.length === 1 && agentRequestLoading ? /* @__PURE__ */ jsxs17(Box14, { sx: { p: 4, textAlign: "center", color: "hsl(var(--muted-foreground))", fontSize: "0.85rem" }, children: [
|
|
11195
11239
|
/* @__PURE__ */ jsx20(CircularProgress4, { size: 20, sx: { mb: 1 } }),
|
|
11196
11240
|
/* @__PURE__ */ jsx20(Typography13, { sx: { fontSize: "0.85rem" }, children: "Waiting for agent response\u2026" })
|
|
11197
|
-
] }) : /* @__PURE__ */
|
|
11241
|
+
] }) : /* @__PURE__ */ jsxs17(Fragment7, { children: [
|
|
11198
11242
|
timeline.map((item, i) => /* @__PURE__ */ jsx20(
|
|
11199
11243
|
TimelineRow,
|
|
11200
11244
|
{
|
|
@@ -11220,7 +11264,7 @@ var AgentUI = ({
|
|
|
11220
11264
|
},
|
|
11221
11265
|
i
|
|
11222
11266
|
)),
|
|
11223
|
-
detailedRunFinished && /* @__PURE__ */
|
|
11267
|
+
detailedRunFinished && /* @__PURE__ */ jsxs17(Box14, { sx: {
|
|
11224
11268
|
borderTop: "1px solid hsl(var(--border))",
|
|
11225
11269
|
p: 2.5,
|
|
11226
11270
|
display: "flex",
|
|
@@ -11228,7 +11272,7 @@ var AgentUI = ({
|
|
|
11228
11272
|
gap: 1.5,
|
|
11229
11273
|
bgcolor: "hsl(var(--muted) / 0.2)"
|
|
11230
11274
|
}, children: [
|
|
11231
|
-
/* @__PURE__ */
|
|
11275
|
+
/* @__PURE__ */ jsxs17(Box14, { sx: { display: "flex", alignItems: "center", gap: 1, flexWrap: "wrap" }, children: [
|
|
11232
11276
|
detailedStatus === "FINISHED" ? /* @__PURE__ */ jsx20(CheckCircleIcon4, { size: 18, color: "hsl(142 70% 45%)" }) : /* @__PURE__ */ jsx20(ErrorIcon, { size: 18, color: "hsl(var(--destructive))" }),
|
|
11233
11277
|
/* @__PURE__ */ jsx20(Typography13, { sx: { fontSize: "0.9rem", fontWeight: 600, color: "hsl(var(--foreground))" }, children: detailedStatus === "FINISHED" ? "Run finished" : `Run ${detailedStatus.toLowerCase()}` })
|
|
11234
11278
|
] }),
|
|
@@ -11264,9 +11308,9 @@ var AgentUI = ({
|
|
|
11264
11308
|
] })
|
|
11265
11309
|
] }) });
|
|
11266
11310
|
})(),
|
|
11267
|
-
finishDecisionId && /* @__PURE__ */ jsx20(Box14, { sx: { mt: 3, display: "flex", justifyContent: "center" }, children: /* @__PURE__ */
|
|
11311
|
+
finishDecisionId && /* @__PURE__ */ jsx20(Box14, { sx: { mt: 3, display: "flex", justifyContent: "center" }, children: /* @__PURE__ */ jsxs17(Box14, { sx: { width: "100%", maxWidth: 640 }, children: [
|
|
11268
11312
|
/* @__PURE__ */ jsx20(Typography13, { sx: { fontSize: "0.75rem", color: "hsl(var(--muted-foreground))", mb: 0.75, textAlign: "center" }, children: "Continue this agent run with more details" }),
|
|
11269
|
-
/* @__PURE__ */
|
|
11313
|
+
/* @__PURE__ */ jsxs17(
|
|
11270
11314
|
Box14,
|
|
11271
11315
|
{
|
|
11272
11316
|
component: "form",
|
|
@@ -11375,7 +11419,7 @@ var AgentUI = ({
|
|
|
11375
11419
|
};
|
|
11376
11420
|
var AgentUI_default = AgentUI;
|
|
11377
11421
|
|
|
11378
|
-
// AgentRunDrawer.tsx
|
|
11422
|
+
// components/AgentRunDrawer.tsx
|
|
11379
11423
|
import { useEffect as useEffect12, useRef as useRef9, useState as useState13 } from "react";
|
|
11380
11424
|
import {
|
|
11381
11425
|
Box as Box15,
|
|
@@ -11392,7 +11436,7 @@ import {
|
|
|
11392
11436
|
ShieldCheck,
|
|
11393
11437
|
X as CloseIcon6
|
|
11394
11438
|
} from "lucide-react";
|
|
11395
|
-
import { jsx as jsx21, jsxs as
|
|
11439
|
+
import { jsx as jsx21, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
11396
11440
|
var TAB_ORDER = ["run", "permissions", "localLLM"];
|
|
11397
11441
|
var AgentRunDrawer = ({
|
|
11398
11442
|
open,
|
|
@@ -11436,7 +11480,7 @@ var AgentRunDrawer = ({
|
|
|
11436
11480
|
});
|
|
11437
11481
|
const showTabs = visibleTabs.length > 1;
|
|
11438
11482
|
const safeActiveTab = visibleTabs.includes(activeTab) ? activeTab : "run";
|
|
11439
|
-
return /* @__PURE__ */
|
|
11483
|
+
return /* @__PURE__ */ jsxs18(
|
|
11440
11484
|
Drawer3,
|
|
11441
11485
|
{
|
|
11442
11486
|
anchor: "right",
|
|
@@ -11459,7 +11503,7 @@ var AgentRunDrawer = ({
|
|
|
11459
11503
|
}
|
|
11460
11504
|
},
|
|
11461
11505
|
children: [
|
|
11462
|
-
/* @__PURE__ */
|
|
11506
|
+
/* @__PURE__ */ jsxs18(
|
|
11463
11507
|
Box15,
|
|
11464
11508
|
{
|
|
11465
11509
|
sx: [
|
|
@@ -11492,7 +11536,7 @@ var AgentRunDrawer = ({
|
|
|
11492
11536
|
children: /* @__PURE__ */ jsx21(AgentIcon_default, { size: 22 })
|
|
11493
11537
|
}
|
|
11494
11538
|
),
|
|
11495
|
-
/* @__PURE__ */
|
|
11539
|
+
/* @__PURE__ */ jsxs18(Box15, { sx: { flex: 1, minWidth: 0 }, children: [
|
|
11496
11540
|
/* @__PURE__ */ jsx21(Typography14, { sx: { fontWeight: 600, fontSize: "1.1rem", color: "hsl(var(--foreground))" }, children: title }),
|
|
11497
11541
|
/* @__PURE__ */ jsx21(Typography14, { sx: { fontSize: "0.8rem", color: "hsl(var(--muted-foreground))" }, children: subtitle })
|
|
11498
11542
|
] }),
|
|
@@ -11500,7 +11544,7 @@ var AgentRunDrawer = ({
|
|
|
11500
11544
|
]
|
|
11501
11545
|
}
|
|
11502
11546
|
),
|
|
11503
|
-
showTabs && /* @__PURE__ */ jsx21(Box15, { sx: { borderBottom: "1px solid hsl(var(--border))", flexShrink: 0 }, children: /* @__PURE__ */
|
|
11547
|
+
showTabs && /* @__PURE__ */ jsx21(Box15, { sx: { borderBottom: "1px solid hsl(var(--border))", flexShrink: 0 }, children: /* @__PURE__ */ jsxs18(
|
|
11504
11548
|
Tabs,
|
|
11505
11549
|
{
|
|
11506
11550
|
value: safeActiveTab,
|
|
@@ -11547,7 +11591,7 @@ var AgentRunDrawer = ({
|
|
|
11547
11591
|
Tab,
|
|
11548
11592
|
{
|
|
11549
11593
|
value: "localLLM",
|
|
11550
|
-
label: /* @__PURE__ */
|
|
11594
|
+
label: /* @__PURE__ */ jsxs18(Box15, { sx: { display: "flex", alignItems: "center", gap: 0.5 }, children: [
|
|
11551
11595
|
"Local LLM",
|
|
11552
11596
|
localLLMTabBadge
|
|
11553
11597
|
] }),
|
|
@@ -11559,7 +11603,7 @@ var AgentRunDrawer = ({
|
|
|
11559
11603
|
]
|
|
11560
11604
|
}
|
|
11561
11605
|
) }),
|
|
11562
|
-
/* @__PURE__ */
|
|
11606
|
+
/* @__PURE__ */ jsxs18(Box15, { sx: [{ flex: 1, overflowY: "auto" }, ...Array.isArray(bodySx) ? bodySx : bodySx ? [bodySx] : []], children: [
|
|
11563
11607
|
safeActiveTab === "run" && /* @__PURE__ */ jsx21(Box15, { sx: { px: 2, py: 2 }, children: /* @__PURE__ */ jsx21(
|
|
11564
11608
|
AgentUI_default,
|
|
11565
11609
|
{
|
|
@@ -11580,7 +11624,7 @@ var AgentRunDrawer = ({
|
|
|
11580
11624
|
};
|
|
11581
11625
|
var AgentRunDrawer_default = AgentRunDrawer;
|
|
11582
11626
|
|
|
11583
|
-
// AgentActivityList.tsx
|
|
11627
|
+
// components/AgentActivityList.tsx
|
|
11584
11628
|
import { useCallback as useCallback9, useEffect as useEffect13, useRef as useRef10, useState as useState14 } from "react";
|
|
11585
11629
|
import {
|
|
11586
11630
|
Box as Box16,
|
|
@@ -11761,9 +11805,9 @@ var stopAgentSchedule = async (workflowId, params = {}) => {
|
|
|
11761
11805
|
if (!res.ok) throw new Error(`Failed to stop schedule: ${res.statusText}`);
|
|
11762
11806
|
};
|
|
11763
11807
|
|
|
11764
|
-
// AgentActivityList.tsx
|
|
11808
|
+
// components/AgentActivityList.tsx
|
|
11765
11809
|
import { Pencil, StopCircle, AlertTriangle as AlertTriangle2 } from "lucide-react";
|
|
11766
|
-
import { Fragment as Fragment8, jsx as jsx22, jsxs as
|
|
11810
|
+
import { Fragment as Fragment8, jsx as jsx22, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
11767
11811
|
var STATUS_CONFIG = {
|
|
11768
11812
|
FINISHED: { icon: /* @__PURE__ */ jsx22(CheckCircle, { size: 16 }), color: "hsl(var(--severity-low, 142 71% 45%))", label: "Completed" },
|
|
11769
11813
|
SUCCESS: { icon: /* @__PURE__ */ jsx22(CheckCircle, { size: 16 }), color: "hsl(var(--severity-low, 142 71% 45%))", label: "Completed" },
|
|
@@ -11887,7 +11931,7 @@ var AgentRunRow = ({ run, onClick, sx }) => {
|
|
|
11887
11931
|
const iconColor = getRunIconColor(run);
|
|
11888
11932
|
const duration = formatDuration(run);
|
|
11889
11933
|
const tools = getRunTools(run);
|
|
11890
|
-
return /* @__PURE__ */
|
|
11934
|
+
return /* @__PURE__ */ jsxs19(
|
|
11891
11935
|
Box16,
|
|
11892
11936
|
{
|
|
11893
11937
|
onClick,
|
|
@@ -11928,8 +11972,8 @@ var AgentRunRow = ({ run, onClick, sx }) => {
|
|
|
11928
11972
|
children: getRunIcon(run)
|
|
11929
11973
|
}
|
|
11930
11974
|
),
|
|
11931
|
-
/* @__PURE__ */
|
|
11932
|
-
/* @__PURE__ */
|
|
11975
|
+
/* @__PURE__ */ jsxs19(Box16, { sx: { flex: 1, minWidth: 0 }, children: [
|
|
11976
|
+
/* @__PURE__ */ jsxs19(Box16, { sx: { display: "flex", alignItems: "center", gap: 1, mb: 0.25 }, children: [
|
|
11933
11977
|
/* @__PURE__ */ jsx22(
|
|
11934
11978
|
Typography15,
|
|
11935
11979
|
{
|
|
@@ -11959,9 +12003,9 @@ var AgentRunRow = ({ run, onClick, sx }) => {
|
|
|
11959
12003
|
children: getRunSubtitle(run)
|
|
11960
12004
|
}
|
|
11961
12005
|
),
|
|
11962
|
-
/* @__PURE__ */
|
|
12006
|
+
/* @__PURE__ */ jsxs19(Box16, { sx: { display: "flex", alignItems: "center", gap: 1, mt: 0.5 }, children: [
|
|
11963
12007
|
/* @__PURE__ */ jsx22(Typography15, { sx: { fontSize: "0.72rem", color: "hsl(var(--muted-foreground))", opacity: 0.7 }, children: run.started_at ? getTimeAgo(run.started_at) : "\u2014" }),
|
|
11964
|
-
duration && /* @__PURE__ */
|
|
12008
|
+
duration && /* @__PURE__ */ jsxs19(Fragment8, { children: [
|
|
11965
12009
|
/* @__PURE__ */ jsx22(Typography15, { sx: { fontSize: "0.72rem", color: "hsl(var(--muted-foreground))", opacity: 0.4 }, children: "\xB7" }),
|
|
11966
12010
|
/* @__PURE__ */ jsx22(Typography15, { sx: { fontSize: "0.72rem", color: "hsl(var(--muted-foreground))", opacity: 0.7 }, children: duration })
|
|
11967
12011
|
] })
|
|
@@ -12134,14 +12178,14 @@ var AgentActivityList = ({
|
|
|
12134
12178
|
].filter(Boolean).join(" ").toLowerCase();
|
|
12135
12179
|
return hay.includes(debouncedQuery.toLowerCase());
|
|
12136
12180
|
}) : runs;
|
|
12137
|
-
return /* @__PURE__ */
|
|
12181
|
+
return /* @__PURE__ */ jsxs19(
|
|
12138
12182
|
Box16,
|
|
12139
12183
|
{
|
|
12140
12184
|
className,
|
|
12141
12185
|
sx: [{ display: "flex", flexDirection: "column", gap: 2 }, ...Array.isArray(sx) ? sx : sx ? [sx] : []],
|
|
12142
12186
|
children: [
|
|
12143
|
-
(showSearchBar || showStatusChips) && /* @__PURE__ */
|
|
12144
|
-
/* @__PURE__ */
|
|
12187
|
+
(showSearchBar || showStatusChips) && /* @__PURE__ */ jsxs19(Box16, { sx: [{ display: "flex", alignItems: "center", justifyContent: "center", gap: 1.5, flexWrap: "wrap" }, ...Array.isArray(toolbarSx) ? toolbarSx : toolbarSx ? [toolbarSx] : []], children: [
|
|
12188
|
+
/* @__PURE__ */ jsxs19(
|
|
12145
12189
|
Select3,
|
|
12146
12190
|
{
|
|
12147
12191
|
size: "small",
|
|
@@ -12224,7 +12268,7 @@ var AgentActivityList = ({
|
|
|
12224
12268
|
),
|
|
12225
12269
|
isLoading && runs.length > 0 && /* @__PURE__ */ jsx22(CircularProgress5, { size: 16, sx: { color: "hsl(var(--primary))", ml: 0.5 } })
|
|
12226
12270
|
] }),
|
|
12227
|
-
selectedAgentWorkflow && /* @__PURE__ */
|
|
12271
|
+
selectedAgentWorkflow && /* @__PURE__ */ jsxs19(
|
|
12228
12272
|
Box16,
|
|
12229
12273
|
{
|
|
12230
12274
|
sx: {
|
|
@@ -12237,7 +12281,7 @@ var AgentActivityList = ({
|
|
|
12237
12281
|
bgcolor: "hsl(var(--card))"
|
|
12238
12282
|
},
|
|
12239
12283
|
children: [
|
|
12240
|
-
/* @__PURE__ */
|
|
12284
|
+
/* @__PURE__ */ jsxs19(Box16, { sx: { flex: 1, minWidth: 0 }, children: [
|
|
12241
12285
|
/* @__PURE__ */ jsx22(Typography15, { sx: { fontSize: "0.85rem", fontWeight: 600, color: "hsl(var(--foreground))", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children: selectedAgentWorkflow.name }),
|
|
12242
12286
|
selectedAgentWorkflow.description && /* @__PURE__ */ jsx22(Typography15, { sx: { fontSize: "0.75rem", color: "hsl(var(--muted-foreground))", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children: selectedAgentWorkflow.description })
|
|
12243
12287
|
] }),
|
|
@@ -12282,7 +12326,7 @@ var AgentActivityList = ({
|
|
|
12282
12326
|
]
|
|
12283
12327
|
}
|
|
12284
12328
|
),
|
|
12285
|
-
isLoading && runs.length === 0 ? /* @__PURE__ */ jsx22(Box16, { sx: { display: "flex", justifyContent: "center", py: 8 }, children: /* @__PURE__ */ jsx22(CircularProgress5, { size: 28, sx: { color: "hsl(var(--primary))" } }) }) : error ? /* @__PURE__ */
|
|
12329
|
+
isLoading && runs.length === 0 ? /* @__PURE__ */ jsx22(Box16, { sx: { display: "flex", justifyContent: "center", py: 8 }, children: /* @__PURE__ */ jsx22(CircularProgress5, { size: 28, sx: { color: "hsl(var(--primary))" } }) }) : error ? /* @__PURE__ */ jsxs19(Box16, { sx: { display: "flex", flexDirection: "column", alignItems: "center", textAlign: "center", py: 6 }, children: [
|
|
12286
12330
|
/* @__PURE__ */ jsx22(AlertCircle, { size: 28, style: { color: "hsl(var(--severity-critical, 0 72% 55%))", marginBottom: 8 } }),
|
|
12287
12331
|
/* @__PURE__ */ jsx22(
|
|
12288
12332
|
Typography15,
|
|
@@ -12300,7 +12344,7 @@ var AgentActivityList = ({
|
|
|
12300
12344
|
children: "Try again"
|
|
12301
12345
|
}
|
|
12302
12346
|
)
|
|
12303
|
-
] }) : filteredRuns.length === 0 ? /* @__PURE__ */
|
|
12347
|
+
] }) : filteredRuns.length === 0 ? /* @__PURE__ */ jsxs19(Box16, { sx: { display: "flex", flexDirection: "column", alignItems: "center", textAlign: "center", py: 8 }, children: [
|
|
12304
12348
|
/* @__PURE__ */ jsx22(
|
|
12305
12349
|
Activity,
|
|
12306
12350
|
{
|
|
@@ -12316,7 +12360,7 @@ var AgentActivityList = ({
|
|
|
12316
12360
|
children: emptySubtitle
|
|
12317
12361
|
}
|
|
12318
12362
|
)
|
|
12319
|
-
] }) : /* @__PURE__ */
|
|
12363
|
+
] }) : /* @__PURE__ */ jsxs19(Box16, { sx: { display: "flex", flexDirection: "column", gap: 1.5 }, children: [
|
|
12320
12364
|
filteredRuns.map((run, idx) => /* @__PURE__ */ jsx22(
|
|
12321
12365
|
AgentRunRow,
|
|
12322
12366
|
{
|
|
@@ -12326,7 +12370,7 @@ var AgentActivityList = ({
|
|
|
12326
12370
|
},
|
|
12327
12371
|
run.execution_id || idx
|
|
12328
12372
|
)),
|
|
12329
|
-
hasMore && /* @__PURE__ */ jsx22(Box16, { sx: { display: "flex", justifyContent: "center", mt: 1 }, children: /* @__PURE__ */
|
|
12373
|
+
hasMore && /* @__PURE__ */ jsx22(Box16, { sx: { display: "flex", justifyContent: "center", mt: 1 }, children: /* @__PURE__ */ jsxs19(
|
|
12330
12374
|
Button9,
|
|
12331
12375
|
{
|
|
12332
12376
|
size: "small",
|
|
@@ -12340,7 +12384,7 @@ var AgentActivityList = ({
|
|
|
12340
12384
|
}
|
|
12341
12385
|
) })
|
|
12342
12386
|
] }),
|
|
12343
|
-
/* @__PURE__ */
|
|
12387
|
+
/* @__PURE__ */ jsxs19(
|
|
12344
12388
|
Dialog2,
|
|
12345
12389
|
{
|
|
12346
12390
|
open: stopOpen,
|
|
@@ -12348,14 +12392,14 @@ var AgentActivityList = ({
|
|
|
12348
12392
|
slotProps: { paper: { sx: { bgcolor: "hsl(var(--card))", color: "hsl(var(--foreground))", border: "1px solid hsl(var(--border))" } } },
|
|
12349
12393
|
children: [
|
|
12350
12394
|
/* @__PURE__ */ jsx22(DialogTitle2, { sx: { fontSize: "1rem", fontWeight: 600 }, children: "Stop schedule?" }),
|
|
12351
|
-
/* @__PURE__ */ jsx22(DialogContent2, { children: /* @__PURE__ */
|
|
12395
|
+
/* @__PURE__ */ jsx22(DialogContent2, { children: /* @__PURE__ */ jsxs19(Typography15, { sx: { fontSize: "0.85rem", color: "hsl(var(--muted-foreground))" }, children: [
|
|
12352
12396
|
'This will stop "',
|
|
12353
12397
|
selectedAgentWorkflow?.name,
|
|
12354
12398
|
'" and delete the scheduled workflow. Past executions remain visible. This cannot be undone.'
|
|
12355
12399
|
] }) }),
|
|
12356
|
-
/* @__PURE__ */
|
|
12400
|
+
/* @__PURE__ */ jsxs19(DialogActions, { sx: { px: 3, pb: 2 }, children: [
|
|
12357
12401
|
/* @__PURE__ */ jsx22(Button9, { onClick: () => setStopOpen(false), disabled: stopLoading, sx: { textTransform: "none", color: "hsl(var(--muted-foreground))" }, children: "Cancel" }),
|
|
12358
|
-
/* @__PURE__ */
|
|
12402
|
+
/* @__PURE__ */ jsxs19(
|
|
12359
12403
|
Button9,
|
|
12360
12404
|
{
|
|
12361
12405
|
onClick: confirmStop,
|
|
@@ -12377,13 +12421,13 @@ var AgentActivityList = ({
|
|
|
12377
12421
|
};
|
|
12378
12422
|
var AgentActivityList_default = AgentActivityList;
|
|
12379
12423
|
|
|
12380
|
-
// AgentExecutionDrawer.tsx
|
|
12424
|
+
// components/AgentExecutionDrawer.tsx
|
|
12381
12425
|
import { Box as Box17, Drawer as Drawer4, IconButton as IconButton10, Tooltip as Tooltip12, Typography as Typography16 } from "@mui/material";
|
|
12382
12426
|
import {
|
|
12383
12427
|
X as CloseIcon7,
|
|
12384
12428
|
ExternalLink as OpenInNewIcon3
|
|
12385
12429
|
} from "lucide-react";
|
|
12386
|
-
import { Fragment as Fragment9, jsx as jsx23, jsxs as
|
|
12430
|
+
import { Fragment as Fragment9, jsx as jsx23, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
12387
12431
|
var AgentExecutionDrawer = ({
|
|
12388
12432
|
open,
|
|
12389
12433
|
onClose,
|
|
@@ -12402,7 +12446,7 @@ var AgentExecutionDrawer = ({
|
|
|
12402
12446
|
const statusKey = (run?.status || "").toUpperCase();
|
|
12403
12447
|
const cfg = STATUS_CONFIG[statusKey] || STATUS_CONFIG.WAITING;
|
|
12404
12448
|
const duration = run ? formatDuration(run) : "";
|
|
12405
|
-
return /* @__PURE__ */
|
|
12449
|
+
return /* @__PURE__ */ jsxs20(
|
|
12406
12450
|
Drawer4,
|
|
12407
12451
|
{
|
|
12408
12452
|
anchor: "right",
|
|
@@ -12425,7 +12469,7 @@ var AgentExecutionDrawer = ({
|
|
|
12425
12469
|
}
|
|
12426
12470
|
},
|
|
12427
12471
|
children: [
|
|
12428
|
-
/* @__PURE__ */
|
|
12472
|
+
/* @__PURE__ */ jsxs20(
|
|
12429
12473
|
Box17,
|
|
12430
12474
|
{
|
|
12431
12475
|
sx: [
|
|
@@ -12461,8 +12505,8 @@ var AgentExecutionDrawer = ({
|
|
|
12461
12505
|
children: /* @__PURE__ */ jsx23(AgentIcon_default, { size: 20 })
|
|
12462
12506
|
}
|
|
12463
12507
|
),
|
|
12464
|
-
/* @__PURE__ */
|
|
12465
|
-
/* @__PURE__ */
|
|
12508
|
+
/* @__PURE__ */ jsxs20(Box17, { sx: { flex: 1, minWidth: 0 }, children: [
|
|
12509
|
+
/* @__PURE__ */ jsxs20(Box17, { sx: { display: "flex", alignItems: "center", gap: 1, minWidth: 0 }, children: [
|
|
12466
12510
|
/* @__PURE__ */ jsx23(
|
|
12467
12511
|
Typography16,
|
|
12468
12512
|
{
|
|
@@ -12479,13 +12523,13 @@ var AgentExecutionDrawer = ({
|
|
|
12479
12523
|
),
|
|
12480
12524
|
run && /* @__PURE__ */ jsx23(Box17, { sx: { display: "flex", alignItems: "center", color: cfg.color, flexShrink: 0 }, children: cfg.icon })
|
|
12481
12525
|
] }),
|
|
12482
|
-
run && /* @__PURE__ */
|
|
12526
|
+
run && /* @__PURE__ */ jsxs20(Box17, { sx: { display: "flex", alignItems: "center", gap: 1, mt: 0.25 }, children: [
|
|
12483
12527
|
/* @__PURE__ */ jsx23(Typography16, { sx: { fontSize: "0.72rem", color: "hsl(var(--muted-foreground))" }, children: cfg.label }),
|
|
12484
|
-
run.started_at && /* @__PURE__ */
|
|
12528
|
+
run.started_at && /* @__PURE__ */ jsxs20(Fragment9, { children: [
|
|
12485
12529
|
/* @__PURE__ */ jsx23(Typography16, { sx: { fontSize: "0.72rem", color: "hsl(var(--muted-foreground))", opacity: 0.4 }, children: "\xB7" }),
|
|
12486
12530
|
/* @__PURE__ */ jsx23(Typography16, { sx: { fontSize: "0.72rem", color: "hsl(var(--muted-foreground))" }, children: getTimeAgo(run.started_at) })
|
|
12487
12531
|
] }),
|
|
12488
|
-
duration && /* @__PURE__ */
|
|
12532
|
+
duration && /* @__PURE__ */ jsxs20(Fragment9, { children: [
|
|
12489
12533
|
/* @__PURE__ */ jsx23(Typography16, { sx: { fontSize: "0.72rem", color: "hsl(var(--muted-foreground))", opacity: 0.4 }, children: "\xB7" }),
|
|
12490
12534
|
/* @__PURE__ */ jsx23(Typography16, { sx: { fontSize: "0.72rem", color: "hsl(var(--muted-foreground))" }, children: duration })
|
|
12491
12535
|
] })
|
|
@@ -12521,7 +12565,7 @@ var AgentExecutionDrawer = ({
|
|
|
12521
12565
|
]
|
|
12522
12566
|
}
|
|
12523
12567
|
),
|
|
12524
|
-
/* @__PURE__ */
|
|
12568
|
+
/* @__PURE__ */ jsxs20(Box17, { sx: [{ flex: 1, overflowY: "auto", pt: 3 }, ...Array.isArray(bodySx) ? bodySx : bodySx ? [bodySx] : []], children: [
|
|
12525
12569
|
topBanner,
|
|
12526
12570
|
run ? /* @__PURE__ */ jsx23(
|
|
12527
12571
|
AgentUI_default,
|
|
@@ -12557,10 +12601,10 @@ var AgentExecutionDrawer = ({
|
|
|
12557
12601
|
};
|
|
12558
12602
|
var AgentExecutionDrawer_default = AgentExecutionDrawer;
|
|
12559
12603
|
|
|
12560
|
-
// AgentsView.tsx
|
|
12604
|
+
// views/AgentsView.tsx
|
|
12561
12605
|
import { useCallback as useCallback10, useMemo as useMemo7, useState as useState15 } from "react";
|
|
12562
12606
|
import { Box as Box18, Stack, Typography as Typography17 } from "@mui/material";
|
|
12563
|
-
import { jsx as jsx24, jsxs as
|
|
12607
|
+
import { jsx as jsx24, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
12564
12608
|
var AgentsView = ({
|
|
12565
12609
|
onSchedule,
|
|
12566
12610
|
maxWidth = 820,
|
|
@@ -12588,7 +12632,7 @@ var AgentsView = ({
|
|
|
12588
12632
|
tab: "localLLM"
|
|
12589
12633
|
});
|
|
12590
12634
|
const effectiveLocalLLMSlot = useMemo7(
|
|
12591
|
-
() => localLLMSlot ?? /* @__PURE__ */
|
|
12635
|
+
() => localLLMSlot ?? /* @__PURE__ */ jsxs21(Box18, { sx: { p: 3, color: "hsl(var(--muted-foreground))", fontSize: "0.85rem", lineHeight: 1.6 }, children: [
|
|
12592
12636
|
/* @__PURE__ */ jsx24(Typography17, { sx: { fontSize: "0.95rem", fontWeight: 600, color: "hsl(var(--foreground))", mb: 1 }, children: "Local LLM not configured" }),
|
|
12593
12637
|
"This host hasn't wired a Local LLM picker yet. Pass an",
|
|
12594
12638
|
" ",
|
|
@@ -12642,9 +12686,9 @@ var AgentsView = ({
|
|
|
12642
12686
|
},
|
|
12643
12687
|
[editing]
|
|
12644
12688
|
);
|
|
12645
|
-
return /* @__PURE__ */
|
|
12646
|
-
/* @__PURE__ */
|
|
12647
|
-
editing && /* @__PURE__ */
|
|
12689
|
+
return /* @__PURE__ */ jsxs21(Box18, { sx: { minHeight: "100%", width: "100%", px: { xs: 2, md: 4 }, pt: { xs: 3, md: "5vh" }, pb: 6, boxSizing: "border-box" }, children: [
|
|
12690
|
+
/* @__PURE__ */ jsxs21(Stack, { spacing: 6, sx: { maxWidth, mx: "auto", width: "100%" }, children: [
|
|
12691
|
+
editing && /* @__PURE__ */ jsxs21(
|
|
12648
12692
|
Box18,
|
|
12649
12693
|
{
|
|
12650
12694
|
sx: {
|
|
@@ -12658,7 +12702,7 @@ var AgentsView = ({
|
|
|
12658
12702
|
bgcolor: "hsl(var(--primary) / 0.08)"
|
|
12659
12703
|
},
|
|
12660
12704
|
children: [
|
|
12661
|
-
/* @__PURE__ */
|
|
12705
|
+
/* @__PURE__ */ jsxs21(Typography17, { sx: { fontSize: "0.85rem", color: "hsl(var(--foreground))" }, children: [
|
|
12662
12706
|
"Editing schedule: ",
|
|
12663
12707
|
/* @__PURE__ */ jsx24("strong", { children: editing.name })
|
|
12664
12708
|
] }),
|
|
@@ -12876,9 +12920,9 @@ function useAppLookup(appName) {
|
|
|
12876
12920
|
};
|
|
12877
12921
|
}
|
|
12878
12922
|
|
|
12879
|
-
// UsageBar.tsx
|
|
12923
|
+
// components/UsageBar.tsx
|
|
12880
12924
|
import { Box as Box19, Typography as Typography18, Tooltip as Tooltip13 } from "@mui/material";
|
|
12881
|
-
import { jsx as jsx25, jsxs as
|
|
12925
|
+
import { jsx as jsx25, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
12882
12926
|
var fmt = (n) => n.toLocaleString();
|
|
12883
12927
|
var UsageBar = ({
|
|
12884
12928
|
label,
|
|
@@ -12895,8 +12939,8 @@ var UsageBar = ({
|
|
|
12895
12939
|
const isWarn = pct >= 65 && !isOver;
|
|
12896
12940
|
const accent = isOver ? "hsl(var(--destructive))" : isWarn ? "hsl(var(--severity-medium))" : "hsl(var(--muted-foreground))";
|
|
12897
12941
|
const tooltipText = safeLimit > 0 ? `${pct.toFixed(0)}% used \xB7 ${fmt(usage)} / ${fmt(safeLimit)}${unit ? " " + unit : ""}${hint ? " \xB7 " + hint : ""}` : `${fmt(usage)}${unit ? " " + unit : ""}${hint ? " \xB7 " + hint : ""}`;
|
|
12898
|
-
return /* @__PURE__ */ jsx25(Tooltip13, { title: tooltipText, placement: "top", arrow: true, children: /* @__PURE__ */
|
|
12899
|
-
/* @__PURE__ */
|
|
12942
|
+
return /* @__PURE__ */ jsx25(Tooltip13, { title: tooltipText, placement: "top", arrow: true, children: /* @__PURE__ */ jsxs22(Box19, { sx: { display: "flex", flexDirection: "column", gap: 0.5, py: 0.25 }, children: [
|
|
12943
|
+
/* @__PURE__ */ jsxs22(Box19, { sx: { display: "flex", alignItems: "center", justifyContent: "space-between", gap: 1 }, children: [
|
|
12900
12944
|
/* @__PURE__ */ jsx25(
|
|
12901
12945
|
Typography18,
|
|
12902
12946
|
{
|
|
@@ -12909,7 +12953,7 @@ var UsageBar = ({
|
|
|
12909
12953
|
children: label
|
|
12910
12954
|
}
|
|
12911
12955
|
),
|
|
12912
|
-
/* @__PURE__ */
|
|
12956
|
+
/* @__PURE__ */ jsxs22(Box19, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
|
|
12913
12957
|
actionLabel && actionHref && (isWarn || isOver) && /* @__PURE__ */ jsx25(
|
|
12914
12958
|
Box19,
|
|
12915
12959
|
{
|