@shuffleio/shuffle-mcps 0.0.18 → 0.0.21
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 +35 -22
- package/dist/index.d.ts +35 -22
- package/dist/index.js +148 -73
- package/dist/index.mjs +151 -76
- package/dist/{shuffle-mcp-CN72CJJQ.css → shuffle-mcp-ER33P3W2.css} +62 -0
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -19,14 +19,31 @@ 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
28
|
import { jsx } from "react/jsx-runtime";
|
|
29
|
-
var
|
|
29
|
+
var readHtmlDarkClass = () => {
|
|
30
|
+
if (typeof document === "undefined") return false;
|
|
31
|
+
return document.documentElement.classList.contains("dark");
|
|
32
|
+
};
|
|
33
|
+
var useHtmlDarkClass = (enabled) => {
|
|
34
|
+
const [isDark, setIsDark] = React.useState(() => enabled ? readHtmlDarkClass() : false);
|
|
35
|
+
React.useEffect(() => {
|
|
36
|
+
if (!enabled || typeof document === "undefined") return;
|
|
37
|
+
setIsDark(readHtmlDarkClass());
|
|
38
|
+
const observer = new MutationObserver(() => setIsDark(readHtmlDarkClass()));
|
|
39
|
+
observer.observe(document.documentElement, { attributes: true, attributeFilter: ["class"] });
|
|
40
|
+
return () => observer.disconnect();
|
|
41
|
+
}, [enabled]);
|
|
42
|
+
return isDark;
|
|
43
|
+
};
|
|
44
|
+
var ShuffleMcpThemeContext = React.createContext(null);
|
|
45
|
+
var useShuffleMcpTheme = () => React.useContext(ShuffleMcpThemeContext);
|
|
46
|
+
var buildComponentOverrides = (scopeClassName) => ({
|
|
30
47
|
MuiTextField: { defaultProps: { size: "small" } },
|
|
31
48
|
MuiButton: { defaultProps: { size: "small" } },
|
|
32
49
|
MuiFormControl: { defaultProps: { size: "small" } },
|
|
@@ -68,7 +85,15 @@ var componentOverrides = {
|
|
|
68
85
|
}
|
|
69
86
|
}
|
|
70
87
|
},
|
|
88
|
+
// ---- Portaled surfaces: stamp scopeClassName so HSL tokens resolve ----
|
|
89
|
+
MuiDrawer: {
|
|
90
|
+
defaultProps: { slotProps: { paper: { className: scopeClassName } } }
|
|
91
|
+
},
|
|
92
|
+
MuiDialog: {
|
|
93
|
+
defaultProps: { slotProps: { paper: { className: scopeClassName } } }
|
|
94
|
+
},
|
|
71
95
|
MuiMenu: {
|
|
96
|
+
defaultProps: { slotProps: { paper: { className: scopeClassName } } },
|
|
72
97
|
styleOverrides: {
|
|
73
98
|
paper: {
|
|
74
99
|
backgroundColor: "hsl(var(--popover))",
|
|
@@ -78,6 +103,7 @@ var componentOverrides = {
|
|
|
78
103
|
}
|
|
79
104
|
},
|
|
80
105
|
MuiPopover: {
|
|
106
|
+
defaultProps: { slotProps: { paper: { className: scopeClassName } } },
|
|
81
107
|
styleOverrides: {
|
|
82
108
|
paper: {
|
|
83
109
|
backgroundColor: "hsl(var(--popover))",
|
|
@@ -86,32 +112,23 @@ var componentOverrides = {
|
|
|
86
112
|
}
|
|
87
113
|
}
|
|
88
114
|
},
|
|
115
|
+
MuiTooltip: {
|
|
116
|
+
defaultProps: { slotProps: { tooltip: { className: scopeClassName } } }
|
|
117
|
+
},
|
|
89
118
|
MuiDivider: {
|
|
90
119
|
styleOverrides: { root: { borderColor: "hsl(var(--border))" } }
|
|
91
120
|
}
|
|
92
|
-
};
|
|
93
|
-
var readHtmlDarkClass = () => {
|
|
94
|
-
if (typeof document === "undefined") return false;
|
|
95
|
-
return document.documentElement.classList.contains("dark");
|
|
96
|
-
};
|
|
97
|
-
var useHtmlDarkClass = (enabled) => {
|
|
98
|
-
const [isDark, setIsDark] = React.useState(() => enabled ? readHtmlDarkClass() : false);
|
|
99
|
-
React.useEffect(() => {
|
|
100
|
-
if (!enabled || typeof document === "undefined") return;
|
|
101
|
-
setIsDark(readHtmlDarkClass());
|
|
102
|
-
const observer = new MutationObserver(() => setIsDark(readHtmlDarkClass()));
|
|
103
|
-
observer.observe(document.documentElement, { attributes: true, attributeFilter: ["class"] });
|
|
104
|
-
return () => observer.disconnect();
|
|
105
|
-
}, [enabled]);
|
|
106
|
-
return isDark;
|
|
107
|
-
};
|
|
121
|
+
});
|
|
108
122
|
var ShuffleMcpThemeProvider = ({
|
|
109
123
|
children,
|
|
110
|
-
mode = "
|
|
124
|
+
mode = "auto"
|
|
111
125
|
}) => {
|
|
112
126
|
const parent = useMuiTheme();
|
|
127
|
+
const parentCtx = useShuffleMcpTheme();
|
|
113
128
|
const htmlIsDark = useHtmlDarkClass(mode === "auto");
|
|
114
129
|
const effectiveDark = mode === "auto" ? htmlIsDark : mode === "dark";
|
|
130
|
+
const sameAsParent = parentCtx !== null && parentCtx.isDark === effectiveDark;
|
|
131
|
+
const scopeClassName = effectiveDark ? "shuffle-mcp-scope dark" : "shuffle-mcp-scope";
|
|
115
132
|
const merged = React.useMemo(
|
|
116
133
|
() => createTheme({
|
|
117
134
|
...parent,
|
|
@@ -121,25 +138,27 @@ var ShuffleMcpThemeProvider = ({
|
|
|
121
138
|
},
|
|
122
139
|
components: {
|
|
123
140
|
...parent.components,
|
|
124
|
-
...
|
|
141
|
+
...buildComponentOverrides(scopeClassName)
|
|
125
142
|
}
|
|
126
143
|
}),
|
|
127
|
-
[parent, effectiveDark]
|
|
144
|
+
[parent, effectiveDark, scopeClassName]
|
|
145
|
+
);
|
|
146
|
+
const ctxValue = React.useMemo(
|
|
147
|
+
() => ({ mode, isDark: effectiveDark, scopeClassName }),
|
|
148
|
+
[mode, effectiveDark, scopeClassName]
|
|
128
149
|
);
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
if (mode === "light" || mode === "dark") {
|
|
132
|
-
return /* @__PURE__ */ jsx("div", { className: scopeClassName, "data-shuffle-mode": mode, "data-shuffle-mcp-root": true, children: tree });
|
|
150
|
+
if (sameAsParent) {
|
|
151
|
+
return /* @__PURE__ */ jsx(ShuffleMcpThemeContext.Provider, { value: ctxValue, children });
|
|
133
152
|
}
|
|
134
|
-
return /* @__PURE__ */ jsx("div", { className:
|
|
153
|
+
return /* @__PURE__ */ jsx(ShuffleMcpThemeContext.Provider, { value: ctxValue, children: /* @__PURE__ */ jsx(ThemeProvider, { theme: merged, children: /* @__PURE__ */ jsx("div", { className: scopeClassName, "data-shuffle-mode": mode, "data-shuffle-mcp-root": true, children }) }) });
|
|
135
154
|
};
|
|
136
155
|
|
|
137
|
-
// ShuffleMCP.tsx
|
|
156
|
+
// views/ShuffleMCP.tsx
|
|
138
157
|
import React3, { useState as useState9, useEffect as useEffect8, useRef as useRef7, useCallback as useCallback7, useMemo as useMemo4, useImperativeHandle } from "react";
|
|
139
158
|
import { algoliasearch } from "algoliasearch";
|
|
140
159
|
import { Tooltip as Tooltip4 } from "@mui/material";
|
|
141
160
|
|
|
142
|
-
// AppDetailDrawer.tsx
|
|
161
|
+
// views/AppDetailDrawer.tsx
|
|
143
162
|
import { useState as useState8, useEffect as useEffect6, useMemo as useMemo3, useRef as useRef5 } from "react";
|
|
144
163
|
|
|
145
164
|
// toast.ts
|
|
@@ -164,7 +183,7 @@ base.info = (msg, opts) => _impl({ title: msg, description: opts?.description, v
|
|
|
164
183
|
base.warning = (msg, opts) => _impl({ title: msg, description: opts?.description, variant: "warning" }, opts);
|
|
165
184
|
var toast = base;
|
|
166
185
|
|
|
167
|
-
// AppDetailDrawer.tsx
|
|
186
|
+
// views/AppDetailDrawer.tsx
|
|
168
187
|
import {
|
|
169
188
|
Download,
|
|
170
189
|
Forward,
|
|
@@ -604,7 +623,7 @@ var DATASTORE_CATEGORIES = {
|
|
|
604
623
|
LEGACY_CASES: "shuffle-security_cases"
|
|
605
624
|
};
|
|
606
625
|
|
|
607
|
-
// AppDetailDrawer.tsx
|
|
626
|
+
// views/AppDetailDrawer.tsx
|
|
608
627
|
import {
|
|
609
628
|
Box as Box8,
|
|
610
629
|
Typography as Typography8,
|
|
@@ -619,7 +638,7 @@ import { motion as motion6 } from "framer-motion";
|
|
|
619
638
|
// useAppAuth.ts
|
|
620
639
|
import { useState as useState3, useCallback as useCallback3, useEffect as useEffect2 } from "react";
|
|
621
640
|
|
|
622
|
-
// IntegrationStatus.tsx
|
|
641
|
+
// components/IntegrationStatus.tsx
|
|
623
642
|
import { useState as useState2, useEffect, useCallback as useCallback2 } from "react";
|
|
624
643
|
import {
|
|
625
644
|
Plus as AddIcon
|
|
@@ -903,7 +922,7 @@ function extractValidatedIngestionApps(authApiResponse, workflowAppNames) {
|
|
|
903
922
|
return apps;
|
|
904
923
|
}
|
|
905
924
|
|
|
906
|
-
// IntegrationStatus.tsx
|
|
925
|
+
// components/IntegrationStatus.tsx
|
|
907
926
|
import { Fragment, jsx as jsx3, jsxs } from "react/jsx-runtime";
|
|
908
927
|
var ONBOARDING_CONFIG_CATEGORY = "shuffle-security_onboarding";
|
|
909
928
|
var SELECTED_TOOLS_KEY = "selected_tools";
|
|
@@ -1553,7 +1572,7 @@ function useAppAuth() {
|
|
|
1553
1572
|
};
|
|
1554
1573
|
}
|
|
1555
1574
|
|
|
1556
|
-
// AppTitleHeader.tsx
|
|
1575
|
+
// components/AppTitleHeader.tsx
|
|
1557
1576
|
import { Box as Box2, Typography as Typography2, Avatar as Avatar2, Chip, Button } from "@mui/material";
|
|
1558
1577
|
import {
|
|
1559
1578
|
CheckCircle2 as CheckCircleIcon,
|
|
@@ -1684,11 +1703,11 @@ function AppTitleHeader({
|
|
|
1684
1703
|
) });
|
|
1685
1704
|
}
|
|
1686
1705
|
|
|
1687
|
-
// AppAuthSection.tsx
|
|
1706
|
+
// components/AppAuthSection.tsx
|
|
1688
1707
|
import { Box as Box4, Typography as Typography4 } from "@mui/material";
|
|
1689
1708
|
import { motion as motion3 } from "framer-motion";
|
|
1690
1709
|
|
|
1691
|
-
// AppAuthConfig.tsx
|
|
1710
|
+
// components/AppAuthConfig.tsx
|
|
1692
1711
|
import { useState as useState5, useEffect as useEffect4, useRef as useRef2 } from "react";
|
|
1693
1712
|
import {
|
|
1694
1713
|
CheckCircle2 as CheckCircleIcon2,
|
|
@@ -1726,7 +1745,7 @@ import {
|
|
|
1726
1745
|
} from "@mui/material";
|
|
1727
1746
|
import { motion as motion2 } from "framer-motion";
|
|
1728
1747
|
|
|
1729
|
-
// AppFallbackIcon.tsx
|
|
1748
|
+
// components/AppFallbackIcon.tsx
|
|
1730
1749
|
import { useEffect as useEffect3, useRef, useState as useState4 } from "react";
|
|
1731
1750
|
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
1732
1751
|
var norm = (s) => s.toLowerCase().replace(/[\s_\-]+/g, "_");
|
|
@@ -1872,7 +1891,7 @@ var AppFallbackIcon = ({
|
|
|
1872
1891
|
);
|
|
1873
1892
|
};
|
|
1874
1893
|
|
|
1875
|
-
// AppAuthConfig.tsx
|
|
1894
|
+
// components/AppAuthConfig.tsx
|
|
1876
1895
|
import ReactMarkdown from "react-markdown";
|
|
1877
1896
|
import remarkGfm from "remark-gfm";
|
|
1878
1897
|
import { Fragment as Fragment2, jsx as jsx6, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
@@ -3728,7 +3747,7 @@ var AppAuthConfig = ({
|
|
|
3728
3747
|
] });
|
|
3729
3748
|
};
|
|
3730
3749
|
|
|
3731
|
-
// AppAuthSection.tsx
|
|
3750
|
+
// components/AppAuthSection.tsx
|
|
3732
3751
|
import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
3733
3752
|
function AppAuthSection({
|
|
3734
3753
|
displayName,
|
|
@@ -3765,11 +3784,11 @@ function AppAuthSection({
|
|
|
3765
3784
|
] }) });
|
|
3766
3785
|
}
|
|
3767
3786
|
|
|
3768
|
-
// TryMcpSection.tsx
|
|
3787
|
+
// views/TryMcpSection.tsx
|
|
3769
3788
|
import { Box as Box6, Typography as Typography6 } from "@mui/material";
|
|
3770
3789
|
import { motion as motion5 } from "framer-motion";
|
|
3771
3790
|
|
|
3772
|
-
// AppMcpChat.tsx
|
|
3791
|
+
// views/AppMcpChat.tsx
|
|
3773
3792
|
import { useState as useState6, useRef as useRef3, useMemo } from "react";
|
|
3774
3793
|
import {
|
|
3775
3794
|
CheckCircle as CheckCircleOutlineIcon,
|
|
@@ -3789,7 +3808,7 @@ import {
|
|
|
3789
3808
|
// ../assets/singul-agent-icon.png
|
|
3790
3809
|
var singul_agent_icon_default = "data:image/png;base64,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";
|
|
3791
3810
|
|
|
3792
|
-
// AgentIcon.tsx
|
|
3811
|
+
// components/AgentIcon.tsx
|
|
3793
3812
|
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
3794
3813
|
var AgentIcon = ({ size = 16, className, style }) => /* @__PURE__ */ jsx8(
|
|
3795
3814
|
"img",
|
|
@@ -3804,7 +3823,7 @@ var AgentIcon = ({ size = 16, className, style }) => /* @__PURE__ */ jsx8(
|
|
|
3804
3823
|
);
|
|
3805
3824
|
var AgentIcon_default = AgentIcon;
|
|
3806
3825
|
|
|
3807
|
-
// AppMcpChat.tsx
|
|
3826
|
+
// views/AppMcpChat.tsx
|
|
3808
3827
|
import { motion as motion4, AnimatePresence } from "framer-motion";
|
|
3809
3828
|
import ReactMarkdown2 from "react-markdown";
|
|
3810
3829
|
import remarkGfm2 from "remark-gfm";
|
|
@@ -4378,7 +4397,7 @@ ${JSON.stringify(data, null, 2)}
|
|
|
4378
4397
|
};
|
|
4379
4398
|
var AppMcpChat_default = AppMcpChat;
|
|
4380
4399
|
|
|
4381
|
-
// TryMcpSection.tsx
|
|
4400
|
+
// views/TryMcpSection.tsx
|
|
4382
4401
|
import { jsx as jsx10, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
4383
4402
|
function TryMcpSection({ appName, appIcon, appId, categories }) {
|
|
4384
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__ */ jsxs6(Box6, { sx: { mt: 5, mb: 3 }, children: [
|
|
@@ -4395,7 +4414,7 @@ function TryMcpSection({ appName, appIcon, appId, categories }) {
|
|
|
4395
4414
|
] }) });
|
|
4396
4415
|
}
|
|
4397
4416
|
|
|
4398
|
-
// SingulActionsPreview.tsx
|
|
4417
|
+
// components/SingulActionsPreview.tsx
|
|
4399
4418
|
import { useState as useState7, useEffect as useEffect5, useMemo as useMemo2, useCallback as useCallback5, useRef as useRef4 } from "react";
|
|
4400
4419
|
import {
|
|
4401
4420
|
Box as Box7,
|
|
@@ -5211,7 +5230,7 @@ var SingulActionsPreview = ({
|
|
|
5211
5230
|
};
|
|
5212
5231
|
var SingulActionsPreview_default = SingulActionsPreview;
|
|
5213
5232
|
|
|
5214
|
-
// AppDetailDrawer.tsx
|
|
5233
|
+
// views/AppDetailDrawer.tsx
|
|
5215
5234
|
import { Fragment as Fragment4, jsx as jsx12, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
5216
5235
|
function AppDetailDrawer({
|
|
5217
5236
|
open,
|
|
@@ -5583,10 +5602,10 @@ function AppDetailDrawer({
|
|
|
5583
5602
|
);
|
|
5584
5603
|
}
|
|
5585
5604
|
|
|
5586
|
-
// ShuffleMCP.tsx
|
|
5587
|
-
import "./shuffle-mcp-
|
|
5605
|
+
// views/ShuffleMCP.tsx
|
|
5606
|
+
import "./shuffle-mcp-ER33P3W2.css";
|
|
5588
5607
|
|
|
5589
|
-
// SegmentedControl.tsx
|
|
5608
|
+
// components/SegmentedControl.tsx
|
|
5590
5609
|
import * as React2 from "react";
|
|
5591
5610
|
import { motion as motion7, LayoutGroup } from "framer-motion";
|
|
5592
5611
|
import { jsx as jsx13, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
@@ -5792,7 +5811,7 @@ var useSyncHostBaseUrl = (globalUrl) => {
|
|
|
5792
5811
|
}, [globalUrl]);
|
|
5793
5812
|
};
|
|
5794
5813
|
|
|
5795
|
-
// ShuffleMCP.tsx
|
|
5814
|
+
// views/ShuffleMCP.tsx
|
|
5796
5815
|
import { Fragment as Fragment5, jsx as jsx14, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
5797
5816
|
var DEFAULT_ALGOLIA_APP_ID = "JNSS5CFDZZ";
|
|
5798
5817
|
var DEFAULT_ALGOLIA_API_KEY = "33e4e3564f4f060e96e0531957bed552";
|
|
@@ -6331,7 +6350,7 @@ var ShuffleMCP = React3.forwardRef(({
|
|
|
6331
6350
|
});
|
|
6332
6351
|
ShuffleMCP.displayName = "ShuffleMCP";
|
|
6333
6352
|
|
|
6334
|
-
// AppSearchDrawer.tsx
|
|
6353
|
+
// views/AppSearchDrawer.tsx
|
|
6335
6354
|
import { useState as useState10, useEffect as useEffect9 } from "react";
|
|
6336
6355
|
import {
|
|
6337
6356
|
X as CloseIcon3
|
|
@@ -6742,7 +6761,7 @@ function AppSearchDrawer({
|
|
|
6742
6761
|
] });
|
|
6743
6762
|
}
|
|
6744
6763
|
|
|
6745
|
-
// AiAgentPromptsEditor.tsx
|
|
6764
|
+
// components/AiAgentPromptsEditor.tsx
|
|
6746
6765
|
import { Box as Box10, Typography as Typography10, IconButton as IconButton6, Tooltip as Tooltip6, Button as Button5, TextField as TextField4 } from "@mui/material";
|
|
6747
6766
|
import { X as CloseIcon4, Plus as AddIcon2 } from "lucide-react";
|
|
6748
6767
|
import { jsx as jsx16, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
@@ -6935,13 +6954,13 @@ var AiAgentPromptsEditor = ({
|
|
|
6935
6954
|
};
|
|
6936
6955
|
var AiAgentPromptsEditor_default = AiAgentPromptsEditor;
|
|
6937
6956
|
|
|
6938
|
-
// ShufflePipelinesBanner.tsx
|
|
6957
|
+
// components/ShufflePipelinesBanner.tsx
|
|
6939
6958
|
import { Box as Box11, Typography as Typography11, Chip as Chip6 } from "@mui/material";
|
|
6940
6959
|
|
|
6941
6960
|
// ../assets/shuffle-icon.png
|
|
6942
6961
|
var shuffle_icon_default = "data:image/png;base64,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";
|
|
6943
6962
|
|
|
6944
|
-
// ShufflePipelinesBanner.tsx
|
|
6963
|
+
// components/ShufflePipelinesBanner.tsx
|
|
6945
6964
|
import { jsx as jsx17, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
6946
6965
|
function ShufflePipelinesBanner() {
|
|
6947
6966
|
return /* @__PURE__ */ jsxs13(
|
|
@@ -7002,7 +7021,7 @@ function ShufflePipelinesBanner() {
|
|
|
7002
7021
|
}
|
|
7003
7022
|
var ShufflePipelinesBanner_default = ShufflePipelinesBanner;
|
|
7004
7023
|
|
|
7005
|
-
// AgentUI.tsx
|
|
7024
|
+
// components/AgentUI.tsx
|
|
7006
7025
|
import { useCallback as useCallback8, useEffect as useEffect11, useMemo as useMemo6, useRef as useRef8, useState as useState12 } from "react";
|
|
7007
7026
|
import {
|
|
7008
7027
|
Plus as AddIcon3,
|
|
@@ -7600,11 +7619,11 @@ var parseScheduleHint = (input) => {
|
|
|
7600
7619
|
return null;
|
|
7601
7620
|
};
|
|
7602
7621
|
|
|
7603
|
-
// AgentRunDiagnosisBanner.tsx
|
|
7622
|
+
// components/AgentRunDiagnosisBanner.tsx
|
|
7604
7623
|
import { Box as Box13, IconButton as IconButton7, Tooltip as Tooltip8, Typography as Typography12 } from "@mui/material";
|
|
7605
7624
|
import { AlertTriangle, ArrowUpRight, HelpCircle, X } from "lucide-react";
|
|
7606
7625
|
|
|
7607
|
-
// AgentDiagnosisCtas.tsx
|
|
7626
|
+
// components/AgentDiagnosisCtas.tsx
|
|
7608
7627
|
import { Box as Box12, Button as Button6, Tooltip as Tooltip7 } from "@mui/material";
|
|
7609
7628
|
import { ExternalLink, Settings2 } from "lucide-react";
|
|
7610
7629
|
import { jsx as jsx18, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
@@ -7678,7 +7697,7 @@ var AgentDiagnosisCtas = ({ diagnosis, compact = false, tone = "medium" }) => {
|
|
|
7678
7697
|
};
|
|
7679
7698
|
var AgentDiagnosisCtas_default = AgentDiagnosisCtas;
|
|
7680
7699
|
|
|
7681
|
-
// AgentRunDiagnosisBanner.tsx
|
|
7700
|
+
// components/AgentRunDiagnosisBanner.tsx
|
|
7682
7701
|
import { useEffect as useEffect10, useMemo as useMemo5, useState as useState11 } from "react";
|
|
7683
7702
|
|
|
7684
7703
|
// agentDiagnosis.ts
|
|
@@ -8037,7 +8056,7 @@ var diagnoseOutputWarning = (run) => {
|
|
|
8037
8056
|
return null;
|
|
8038
8057
|
};
|
|
8039
8058
|
|
|
8040
|
-
// AgentRunDiagnosisBanner.tsx
|
|
8059
|
+
// components/AgentRunDiagnosisBanner.tsx
|
|
8041
8060
|
import { jsx as jsx19, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
8042
8061
|
var DISMISS_PREFIX = "agent-diagnosis-dismissed::";
|
|
8043
8062
|
var readDismissed = (key) => {
|
|
@@ -8193,7 +8212,7 @@ var AgentRunDiagnosisBanner = ({ run, sx, onJumpToEvidence, executionId }) => {
|
|
|
8193
8212
|
};
|
|
8194
8213
|
var AgentRunDiagnosisBanner_default = AgentRunDiagnosisBanner;
|
|
8195
8214
|
|
|
8196
|
-
// AgentUI.tsx
|
|
8215
|
+
// components/AgentUI.tsx
|
|
8197
8216
|
import { Fragment as Fragment7, jsx as jsx20, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
8198
8217
|
var normalizeMarkdown = (raw) => {
|
|
8199
8218
|
if (raw == null) return "";
|
|
@@ -11356,7 +11375,7 @@ var AgentUI = ({
|
|
|
11356
11375
|
};
|
|
11357
11376
|
var AgentUI_default = AgentUI;
|
|
11358
11377
|
|
|
11359
|
-
// AgentRunDrawer.tsx
|
|
11378
|
+
// components/AgentRunDrawer.tsx
|
|
11360
11379
|
import { useEffect as useEffect12, useRef as useRef9, useState as useState13 } from "react";
|
|
11361
11380
|
import {
|
|
11362
11381
|
Box as Box15,
|
|
@@ -11561,7 +11580,7 @@ var AgentRunDrawer = ({
|
|
|
11561
11580
|
};
|
|
11562
11581
|
var AgentRunDrawer_default = AgentRunDrawer;
|
|
11563
11582
|
|
|
11564
|
-
// AgentActivityList.tsx
|
|
11583
|
+
// components/AgentActivityList.tsx
|
|
11565
11584
|
import { useCallback as useCallback9, useEffect as useEffect13, useRef as useRef10, useState as useState14 } from "react";
|
|
11566
11585
|
import {
|
|
11567
11586
|
Box as Box16,
|
|
@@ -11742,7 +11761,7 @@ var stopAgentSchedule = async (workflowId, params = {}) => {
|
|
|
11742
11761
|
if (!res.ok) throw new Error(`Failed to stop schedule: ${res.statusText}`);
|
|
11743
11762
|
};
|
|
11744
11763
|
|
|
11745
|
-
// AgentActivityList.tsx
|
|
11764
|
+
// components/AgentActivityList.tsx
|
|
11746
11765
|
import { Pencil, StopCircle, AlertTriangle as AlertTriangle2 } from "lucide-react";
|
|
11747
11766
|
import { Fragment as Fragment8, jsx as jsx22, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
11748
11767
|
var STATUS_CONFIG = {
|
|
@@ -12358,7 +12377,7 @@ var AgentActivityList = ({
|
|
|
12358
12377
|
};
|
|
12359
12378
|
var AgentActivityList_default = AgentActivityList;
|
|
12360
12379
|
|
|
12361
|
-
// AgentExecutionDrawer.tsx
|
|
12380
|
+
// components/AgentExecutionDrawer.tsx
|
|
12362
12381
|
import { Box as Box17, Drawer as Drawer4, IconButton as IconButton10, Tooltip as Tooltip12, Typography as Typography16 } from "@mui/material";
|
|
12363
12382
|
import {
|
|
12364
12383
|
X as CloseIcon7,
|
|
@@ -12538,11 +12557,23 @@ var AgentExecutionDrawer = ({
|
|
|
12538
12557
|
};
|
|
12539
12558
|
var AgentExecutionDrawer_default = AgentExecutionDrawer;
|
|
12540
12559
|
|
|
12541
|
-
// AgentsView.tsx
|
|
12542
|
-
import { useCallback as useCallback10, useState as useState15 } from "react";
|
|
12560
|
+
// views/AgentsView.tsx
|
|
12561
|
+
import { useCallback as useCallback10, useMemo as useMemo7, useState as useState15 } from "react";
|
|
12543
12562
|
import { Box as Box18, Stack, Typography as Typography17 } from "@mui/material";
|
|
12544
12563
|
import { jsx as jsx24, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
12545
|
-
var AgentsView = ({
|
|
12564
|
+
var AgentsView = ({
|
|
12565
|
+
onSchedule,
|
|
12566
|
+
maxWidth = 820,
|
|
12567
|
+
onChooseLLM,
|
|
12568
|
+
hideChooseLLM,
|
|
12569
|
+
localLLMSlot,
|
|
12570
|
+
permissionsSlot,
|
|
12571
|
+
globalUrl,
|
|
12572
|
+
isLoaded,
|
|
12573
|
+
isLoggedIn,
|
|
12574
|
+
userdata,
|
|
12575
|
+
serverside
|
|
12576
|
+
}) => {
|
|
12546
12577
|
useSyncHostBaseUrl(globalUrl);
|
|
12547
12578
|
const [selectedRun, setSelectedRun] = useState15(null);
|
|
12548
12579
|
const [agentView, setAgentView] = useState15("start");
|
|
@@ -12552,6 +12583,33 @@ var AgentsView = ({ onSchedule, maxWidth = 820, onChooseLLM, hideChooseLLM, glob
|
|
|
12552
12583
|
key: 0
|
|
12553
12584
|
});
|
|
12554
12585
|
const [editing, setEditing] = useState15(null);
|
|
12586
|
+
const [builtInDrawer, setBuiltInDrawer] = useState15({
|
|
12587
|
+
open: false,
|
|
12588
|
+
tab: "localLLM"
|
|
12589
|
+
});
|
|
12590
|
+
const effectiveLocalLLMSlot = useMemo7(
|
|
12591
|
+
() => localLLMSlot ?? /* @__PURE__ */ jsxs20(Box18, { sx: { p: 3, color: "hsl(var(--muted-foreground))", fontSize: "0.85rem", lineHeight: 1.6 }, children: [
|
|
12592
|
+
/* @__PURE__ */ jsx24(Typography17, { sx: { fontSize: "0.95rem", fontWeight: 600, color: "hsl(var(--foreground))", mb: 1 }, children: "Local LLM not configured" }),
|
|
12593
|
+
"This host hasn't wired a Local LLM picker yet. Pass an",
|
|
12594
|
+
" ",
|
|
12595
|
+
/* @__PURE__ */ jsx24("code", { style: { fontFamily: "monospace" }, children: "onChooseLLM" }),
|
|
12596
|
+
" handler or a",
|
|
12597
|
+
" ",
|
|
12598
|
+
/* @__PURE__ */ jsx24("code", { style: { fontFamily: "monospace" }, children: "localLLMSlot" }),
|
|
12599
|
+
" to",
|
|
12600
|
+
" ",
|
|
12601
|
+
/* @__PURE__ */ jsx24("code", { style: { fontFamily: "monospace" }, children: "<AgentsView />" }),
|
|
12602
|
+
" to render your own configuration UI here."
|
|
12603
|
+
] }),
|
|
12604
|
+
[localLLMSlot]
|
|
12605
|
+
);
|
|
12606
|
+
const handleChooseLLM = useCallback10(() => {
|
|
12607
|
+
if (onChooseLLM) {
|
|
12608
|
+
onChooseLLM();
|
|
12609
|
+
return;
|
|
12610
|
+
}
|
|
12611
|
+
setBuiltInDrawer({ open: true, tab: "localLLM" });
|
|
12612
|
+
}, [onChooseLLM]);
|
|
12555
12613
|
const handleEditWorkflow = useCallback10(
|
|
12556
12614
|
({ workflowId, name, prompt, apps }) => {
|
|
12557
12615
|
setEditing({ workflowId, name });
|
|
@@ -12632,7 +12690,7 @@ var AgentsView = ({ onSchedule, maxWidth = 820, onChooseLLM, hideChooseLLM, glob
|
|
|
12632
12690
|
apiBaseUrl: globalUrl,
|
|
12633
12691
|
onViewChange: setAgentView,
|
|
12634
12692
|
onSchedule,
|
|
12635
|
-
onChooseLLM,
|
|
12693
|
+
onChooseLLM: handleChooseLLM,
|
|
12636
12694
|
hideChooseLLM,
|
|
12637
12695
|
defaultInput: prefill.input,
|
|
12638
12696
|
defaultApps: prefill.apps.length > 0 ? prefill.apps : void 0,
|
|
@@ -12662,13 +12720,25 @@ var AgentsView = ({ onSchedule, maxWidth = 820, onChooseLLM, hideChooseLLM, glob
|
|
|
12662
12720
|
apiBaseUrl: globalUrl,
|
|
12663
12721
|
onSchedule
|
|
12664
12722
|
}
|
|
12723
|
+
),
|
|
12724
|
+
/* @__PURE__ */ jsx24(
|
|
12725
|
+
AgentRunDrawer_default,
|
|
12726
|
+
{
|
|
12727
|
+
open: builtInDrawer.open,
|
|
12728
|
+
onClose: () => setBuiltInDrawer((s) => ({ ...s, open: false })),
|
|
12729
|
+
initialTab: builtInDrawer.tab,
|
|
12730
|
+
globalUrl,
|
|
12731
|
+
localLLMSlot: effectiveLocalLLMSlot,
|
|
12732
|
+
permissionsSlot,
|
|
12733
|
+
agentUIProps: { onSchedule, apiBaseUrl: globalUrl }
|
|
12734
|
+
}
|
|
12665
12735
|
)
|
|
12666
12736
|
] });
|
|
12667
12737
|
};
|
|
12668
12738
|
var AgentsView_default = AgentsView;
|
|
12669
12739
|
|
|
12670
12740
|
// useAppLookup.ts
|
|
12671
|
-
import { useEffect as useEffect14, useMemo as
|
|
12741
|
+
import { useEffect as useEffect14, useMemo as useMemo8, useState as useState16 } from "react";
|
|
12672
12742
|
var norm3 = (s) => s.toLowerCase().replace(/[\s_\-]+/g, "_");
|
|
12673
12743
|
function useAppLookup(appName) {
|
|
12674
12744
|
const [loading, setLoading] = useState16(false);
|
|
@@ -12761,13 +12831,13 @@ function useAppLookup(appName) {
|
|
|
12761
12831
|
setLoading(false);
|
|
12762
12832
|
})();
|
|
12763
12833
|
}, [appName]);
|
|
12764
|
-
const matchingEntries =
|
|
12834
|
+
const matchingEntries = useMemo8(() => {
|
|
12765
12835
|
if (!appName) return [];
|
|
12766
12836
|
return authenticatedApps.filter(
|
|
12767
12837
|
(auth) => auth.app?.name && norm3(auth.app.name) === norm3(appName)
|
|
12768
12838
|
);
|
|
12769
12839
|
}, [appName, authenticatedApps]);
|
|
12770
|
-
const image =
|
|
12840
|
+
const image = useMemo8(() => {
|
|
12771
12841
|
if (info?.image) return info.image;
|
|
12772
12842
|
for (const entry of matchingEntries) {
|
|
12773
12843
|
const img = entry.app?.large_image || entry.large_image;
|
|
@@ -12775,7 +12845,7 @@ function useAppLookup(appName) {
|
|
|
12775
12845
|
}
|
|
12776
12846
|
return "";
|
|
12777
12847
|
}, [info, matchingEntries]);
|
|
12778
|
-
const algoliaApp =
|
|
12848
|
+
const algoliaApp = useMemo8(() => {
|
|
12779
12849
|
if (!appName) return null;
|
|
12780
12850
|
return {
|
|
12781
12851
|
objectID: algoliaId || appName,
|
|
@@ -12806,7 +12876,7 @@ function useAppLookup(appName) {
|
|
|
12806
12876
|
};
|
|
12807
12877
|
}
|
|
12808
12878
|
|
|
12809
|
-
// UsageBar.tsx
|
|
12879
|
+
// components/UsageBar.tsx
|
|
12810
12880
|
import { Box as Box19, Typography as Typography18, Tooltip as Tooltip13 } from "@mui/material";
|
|
12811
12881
|
import { jsx as jsx25, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
12812
12882
|
var fmt = (n) => n.toLocaleString();
|
|
@@ -12887,10 +12957,15 @@ var UsageBar = ({
|
|
|
12887
12957
|
};
|
|
12888
12958
|
|
|
12889
12959
|
// index.ts
|
|
12960
|
+
var resolveMode = (theme, colorMode) => {
|
|
12961
|
+
if (theme === "light" || theme === "dark") return theme;
|
|
12962
|
+
if (theme === "system") return "auto";
|
|
12963
|
+
return colorMode ?? "auto";
|
|
12964
|
+
};
|
|
12890
12965
|
var withMcpTheme = (Inner, displayName) => {
|
|
12891
|
-
const Wrapped = ({ colorMode, ...rest }) => React5.createElement(
|
|
12966
|
+
const Wrapped = ({ theme, colorMode, ...rest }) => React5.createElement(
|
|
12892
12967
|
ShuffleMcpThemeProvider,
|
|
12893
|
-
{ mode: colorMode },
|
|
12968
|
+
{ mode: resolveMode(theme, colorMode) },
|
|
12894
12969
|
React5.createElement(Inner, { ...rest })
|
|
12895
12970
|
);
|
|
12896
12971
|
Wrapped.displayName = `ShuffleMCPs(${displayName})`;
|
|
@@ -12898,9 +12973,9 @@ var withMcpTheme = (Inner, displayName) => {
|
|
|
12898
12973
|
};
|
|
12899
12974
|
var withMcpThemeRef = (Inner, displayName) => {
|
|
12900
12975
|
const Wrapped = React5.forwardRef(
|
|
12901
|
-
({ colorMode, ...rest }, ref) => React5.createElement(
|
|
12976
|
+
({ theme, colorMode, ...rest }, ref) => React5.createElement(
|
|
12902
12977
|
ShuffleMcpThemeProvider,
|
|
12903
|
-
{ mode: colorMode },
|
|
12978
|
+
{ mode: resolveMode(theme, colorMode) },
|
|
12904
12979
|
React5.createElement(Inner, { ...rest, ref })
|
|
12905
12980
|
)
|
|
12906
12981
|
);
|