@datatechsolutions/ui 3.6.0 → 3.6.2
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/astrlabe/graph-node.js +8 -5
- package/dist/astrlabe/graph-node.mjs +4 -1
- package/dist/astrlabe/index.js +115 -114
- package/dist/astrlabe/index.mjs +7 -6
- package/dist/astrlabe/workflow-canvas.js +7 -6
- package/dist/astrlabe/workflow-canvas.mjs +6 -5
- package/dist/{chunk-I63NFWIA.mjs → chunk-2OPBUVTQ.mjs} +3 -3
- package/dist/{chunk-I63NFWIA.mjs.map → chunk-2OPBUVTQ.mjs.map} +1 -1
- package/dist/{chunk-XTXLRQ3H.mjs → chunk-34XRH2FX.mjs} +28 -28
- package/dist/chunk-34XRH2FX.mjs.map +1 -0
- package/dist/{chunk-QHP2MR2F.js → chunk-3JZGRXSG.js} +4 -4
- package/dist/{chunk-QHP2MR2F.js.map → chunk-3JZGRXSG.js.map} +1 -1
- package/dist/{chunk-JQYDJ75Q.mjs → chunk-3VYD7QL2.mjs} +3 -3
- package/dist/{chunk-JQYDJ75Q.mjs.map → chunk-3VYD7QL2.mjs.map} +1 -1
- package/dist/{chunk-MRRFDIUQ.mjs → chunk-4JRMXHPU.mjs} +5 -4
- package/dist/chunk-4JRMXHPU.mjs.map +1 -0
- package/dist/{chunk-4OFG6POC.mjs → chunk-5LCWQKGQ.mjs} +207 -1128
- package/dist/chunk-5LCWQKGQ.mjs.map +1 -0
- package/dist/{chunk-W5YCZOXO.js → chunk-7YK4WXHO.js} +79 -78
- package/dist/chunk-7YK4WXHO.js.map +1 -0
- package/dist/{chunk-YOJIPZ72.js → chunk-BBLBSDPN.js} +9 -9
- package/dist/{chunk-YOJIPZ72.js.map → chunk-BBLBSDPN.js.map} +1 -1
- package/dist/chunk-BHOT22QL.js +998 -0
- package/dist/chunk-BHOT22QL.js.map +1 -0
- package/dist/{chunk-DYWSG42B.mjs → chunk-C4AJWDFB.mjs} +11 -10
- package/dist/chunk-C4AJWDFB.mjs.map +1 -0
- package/dist/{chunk-UOABOFKO.mjs → chunk-CBFK4W4C.mjs} +3 -3
- package/dist/{chunk-UOABOFKO.mjs.map → chunk-CBFK4W4C.mjs.map} +1 -1
- package/dist/{chunk-P5F257N3.js → chunk-CVZXZK2X.js} +35 -34
- package/dist/chunk-CVZXZK2X.js.map +1 -0
- package/dist/{chunk-IHHGT3LP.mjs → chunk-CYAAL3BY.mjs} +6 -5
- package/dist/chunk-CYAAL3BY.mjs.map +1 -0
- package/dist/{chunk-LVK7VXW7.js → chunk-DMPBNWJB.js} +37 -36
- package/dist/chunk-DMPBNWJB.js.map +1 -0
- package/dist/{chunk-ESLKQJQS.mjs → chunk-DXLATMGD.mjs} +6 -5
- package/dist/chunk-DXLATMGD.mjs.map +1 -0
- package/dist/{chunk-P4YYEM4B.js → chunk-EZQ2D47U.js} +7 -10
- package/dist/chunk-EZQ2D47U.js.map +1 -0
- package/dist/{chunk-UWSMHKOF.js → chunk-FUHNEP3Y.js} +164 -163
- package/dist/chunk-FUHNEP3Y.js.map +1 -0
- package/dist/{chunk-YTE6WCBX.js → chunk-JHN2OUWG.js} +64 -63
- package/dist/chunk-JHN2OUWG.js.map +1 -0
- package/dist/{chunk-AMYQSPQC.js → chunk-JLECJI7S.js} +18 -17
- package/dist/chunk-JLECJI7S.js.map +1 -0
- package/dist/{chunk-VPOIX2DY.js → chunk-KMNWPC64.js} +40 -39
- package/dist/chunk-KMNWPC64.js.map +1 -0
- package/dist/{chunk-VUAGVZJM.mjs → chunk-NJ6HH4QP.mjs} +6 -5
- package/dist/chunk-NJ6HH4QP.mjs.map +1 -0
- package/dist/{chunk-OZNTQROP.mjs → chunk-PLTLRL2V.mjs} +7 -10
- package/dist/chunk-PLTLRL2V.mjs.map +1 -0
- package/dist/{chunk-WEZ722BS.mjs → chunk-PMMP76MV.mjs} +7 -6
- package/dist/chunk-PMMP76MV.mjs.map +1 -0
- package/dist/{chunk-NJZIE4EH.js → chunk-QF6WL7XU.js} +6 -5
- package/dist/chunk-QF6WL7XU.js.map +1 -0
- package/dist/{chunk-QRNFTG6A.js → chunk-QGLGQXJE.js} +4 -4
- package/dist/{chunk-QRNFTG6A.js.map → chunk-QGLGQXJE.js.map} +1 -1
- package/dist/{chunk-GCYYGSHU.js → chunk-R4EKPXX3.js} +564 -1525
- package/dist/chunk-R4EKPXX3.js.map +1 -0
- package/dist/{chunk-S7AV6XEY.js → chunk-RWYG7QHP.js} +128 -138
- package/dist/chunk-RWYG7QHP.js.map +1 -0
- package/dist/{chunk-WBEZATIB.js → chunk-RZ3NDH5S.js} +13 -13
- package/dist/{chunk-WBEZATIB.js.map → chunk-RZ3NDH5S.js.map} +1 -1
- package/dist/{chunk-HGWVJ3VB.mjs → chunk-SJVKID3E.mjs} +4 -3
- package/dist/chunk-SJVKID3E.mjs.map +1 -0
- package/dist/{chunk-7LILNZMR.mjs → chunk-TJEZL72T.mjs} +4 -3
- package/dist/chunk-TJEZL72T.mjs.map +1 -0
- package/dist/{chunk-3WXMBAGN.js → chunk-UDYEUTJC.js} +50 -50
- package/dist/chunk-UDYEUTJC.js.map +1 -0
- package/dist/{chunk-UGJZ3M4Q.js → chunk-VDLMWOQM.js} +55 -54
- package/dist/chunk-VDLMWOQM.js.map +1 -0
- package/dist/{chunk-QTA5I6FC.mjs → chunk-VZIUQE7B.mjs} +54 -64
- package/dist/chunk-VZIUQE7B.mjs.map +1 -0
- package/dist/chunk-WR55H7DH.mjs +934 -0
- package/dist/chunk-WR55H7DH.mjs.map +1 -0
- package/dist/{chunk-ZYVDDSAC.mjs → chunk-YRXDETBK.mjs} +6 -6
- package/dist/{chunk-ZYVDDSAC.mjs.map → chunk-YRXDETBK.mjs.map} +1 -1
- package/dist/{chunk-VDLAZR7S.mjs → chunk-ZYRL3WER.mjs} +5 -4
- package/dist/chunk-ZYRL3WER.mjs.map +1 -0
- package/dist/index.js +826 -825
- package/dist/index.mjs +4 -3
- package/dist/platform/admin/index.js +13 -12
- package/dist/platform/admin/index.mjs +7 -6
- package/dist/platform/agents-workspace.js +10 -9
- package/dist/platform/agents-workspace.mjs +9 -8
- package/dist/platform/app-shell.js +6 -5
- package/dist/platform/app-shell.mjs +5 -4
- package/dist/platform/auth/index.js +30 -29
- package/dist/platform/auth/index.mjs +7 -6
- package/dist/platform/billing/index.js +6 -5
- package/dist/platform/billing/index.mjs +5 -4
- package/dist/platform/impersonation/index.js +6 -5
- package/dist/platform/impersonation/index.mjs +5 -4
- package/dist/platform/index.js +87 -93
- package/dist/platform/index.js.map +1 -1
- package/dist/platform/index.mjs +23 -29
- package/dist/platform/index.mjs.map +1 -1
- package/dist/platform/pages/index.js +476 -470
- package/dist/platform/pages/index.js.map +1 -1
- package/dist/platform/pages/index.mjs +326 -320
- package/dist/platform/pages/index.mjs.map +1 -1
- package/dist/platform/settings/index.js +10 -9
- package/dist/platform/settings/index.mjs +9 -8
- package/dist/platform/workflow-canvas-shell.js +8 -7
- package/dist/platform/workflow-canvas-shell.mjs +7 -6
- package/package.json +1 -1
- package/dist/chunk-3WXMBAGN.js.map +0 -1
- package/dist/chunk-4OFG6POC.mjs.map +0 -1
- package/dist/chunk-7LILNZMR.mjs.map +0 -1
- package/dist/chunk-AMYQSPQC.js.map +0 -1
- package/dist/chunk-DYWSG42B.mjs.map +0 -1
- package/dist/chunk-ESLKQJQS.mjs.map +0 -1
- package/dist/chunk-GCYYGSHU.js.map +0 -1
- package/dist/chunk-HGWVJ3VB.mjs.map +0 -1
- package/dist/chunk-IHHGT3LP.mjs.map +0 -1
- package/dist/chunk-LVK7VXW7.js.map +0 -1
- package/dist/chunk-MRRFDIUQ.mjs.map +0 -1
- package/dist/chunk-NJZIE4EH.js.map +0 -1
- package/dist/chunk-OZNTQROP.mjs.map +0 -1
- package/dist/chunk-P4YYEM4B.js.map +0 -1
- package/dist/chunk-P5F257N3.js.map +0 -1
- package/dist/chunk-QTA5I6FC.mjs.map +0 -1
- package/dist/chunk-S7AV6XEY.js.map +0 -1
- package/dist/chunk-UGJZ3M4Q.js.map +0 -1
- package/dist/chunk-UWSMHKOF.js.map +0 -1
- package/dist/chunk-VDLAZR7S.mjs.map +0 -1
- package/dist/chunk-VPOIX2DY.js.map +0 -1
- package/dist/chunk-VUAGVZJM.mjs.map +0 -1
- package/dist/chunk-W5YCZOXO.js.map +0 -1
- package/dist/chunk-WEZ722BS.mjs.map +0 -1
- package/dist/chunk-XTXLRQ3H.mjs.map +0 -1
- package/dist/chunk-YTE6WCBX.js.map +0 -1
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
var
|
|
4
|
+
var chunkRWYG7QHP_js = require('./chunk-RWYG7QHP.js');
|
|
5
|
+
var chunkR4EKPXX3_js = require('./chunk-R4EKPXX3.js');
|
|
6
6
|
var chunkYXN2K77G_js = require('./chunk-YXN2K77G.js');
|
|
7
|
+
var chunkBHOT22QL_js = require('./chunk-BHOT22QL.js');
|
|
7
8
|
var chunk72SWXOD5_js = require('./chunk-72SWXOD5.js');
|
|
8
9
|
var react = require('react');
|
|
9
10
|
var react$1 = require('@xyflow/react');
|
|
@@ -40,11 +41,11 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
|
|
|
40
41
|
const isCompact = data.displayMode === "compact";
|
|
41
42
|
if (!config) {
|
|
42
43
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
43
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
44
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
45
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
46
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
47
|
-
|
|
44
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRWYG7QHP_js.NodeRunningIndicator, { nodeId: id }),
|
|
45
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRWYG7QHP_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
|
|
46
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRWYG7QHP_js.WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
|
|
47
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRWYG7QHP_js.NodeCard, { variant: "error", nodeType: "model_provider", width: "w-[280px]", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
48
|
+
chunkRWYG7QHP_js.NodeCardHeader,
|
|
48
49
|
{
|
|
49
50
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.ExclamationTriangleIcon, { className: "h-6 w-6 text-white" }),
|
|
50
51
|
title: data.label || "Model Provider",
|
|
@@ -52,8 +53,8 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
|
|
|
52
53
|
iconClassName: "flex h-11 w-11 items-center justify-center rounded-xl bg-gradient-to-br from-amber-400 to-orange-500 shadow-lg"
|
|
53
54
|
}
|
|
54
55
|
) }),
|
|
55
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
56
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
56
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRWYG7QHP_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-slate-500" }),
|
|
57
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRWYG7QHP_js.WorkflowHandle, { type: "source", position: react$1.Position.Bottom, id: "bottom-out", colorClass: "!bg-slate-500" })
|
|
57
58
|
] });
|
|
58
59
|
}
|
|
59
60
|
const providerLabel = PROVIDER_TYPE_LABELS[config.providerType] ?? config.providerType;
|
|
@@ -62,18 +63,18 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
|
|
|
62
63
|
const isConfigured = !!(config.credentialRef || config.apiKeyRef);
|
|
63
64
|
const logo = PROVIDER_LOGOS[config.providerType];
|
|
64
65
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
65
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
66
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
67
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
66
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRWYG7QHP_js.NodeRunningIndicator, { nodeId: id }),
|
|
67
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRWYG7QHP_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
|
|
68
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRWYG7QHP_js.WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
|
|
68
69
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
69
70
|
"button",
|
|
70
71
|
{
|
|
71
72
|
type: "button",
|
|
72
73
|
onClick: () => data.onEdit?.(id),
|
|
73
74
|
className: "w-full text-left",
|
|
74
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
75
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(chunkRWYG7QHP_js.NodeCard, { compact: isCompact, selected, nodeType: "model_provider", width: "w-[280px]", children: [
|
|
75
76
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
76
|
-
|
|
77
|
+
chunkRWYG7QHP_js.NodeCardHeader,
|
|
77
78
|
{
|
|
78
79
|
icon: logo ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo, alt: providerLabel, className: "h-6 w-6 object-contain", loading: "lazy" }) : /* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-6 w-6 text-white" }),
|
|
79
80
|
title: displayName,
|
|
@@ -81,11 +82,11 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
|
|
|
81
82
|
iconClassName: `flex h-11 w-11 items-center justify-center rounded-xl shadow-lg ${logo ? "bg-white/10 dark:bg-white/5 p-2" : "bg-gradient-to-br from-slate-600 to-slate-700 p-1.5"}`
|
|
82
83
|
}
|
|
83
84
|
),
|
|
84
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
85
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
86
|
-
regionLabel && /* @__PURE__ */ jsxRuntime.jsx(
|
|
87
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
88
|
-
config.modelFilter && config.modelFilter.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
85
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRWYG7QHP_js.NodeCardMeta, { compact: isCompact, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [
|
|
86
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "zinc", size: "xs", children: providerLabel }),
|
|
87
|
+
regionLabel && /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "zinc", size: "xs", children: regionLabel }),
|
|
88
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: isConfigured ? "green" : "amber", size: "xs", children: isConfigured ? "Configured" : "Setup needed" }),
|
|
89
|
+
config.modelFilter && config.modelFilter.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(chunkBHOT22QL_js.Badge, { color: "zinc", size: "xs", children: [
|
|
89
90
|
config.modelFilter.length,
|
|
90
91
|
" models"
|
|
91
92
|
] })
|
|
@@ -93,8 +94,8 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
|
|
|
93
94
|
] })
|
|
94
95
|
}
|
|
95
96
|
),
|
|
96
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
97
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
97
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRWYG7QHP_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-slate-500" }),
|
|
98
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRWYG7QHP_js.WorkflowHandle, { type: "source", position: react$1.Position.Bottom, id: "bottom-out", colorClass: "!bg-slate-500" })
|
|
98
99
|
] });
|
|
99
100
|
});
|
|
100
101
|
var S3WriteFlowNode = react.memo(function S3WriteFlowNode2({ id, data, selected }) {
|
|
@@ -103,10 +104,10 @@ var S3WriteFlowNode = react.memo(function S3WriteFlowNode2({ id, data, selected
|
|
|
103
104
|
const isCompact = data.displayMode === "compact";
|
|
104
105
|
const keyPreview = config.key ? config.key.slice(0, 30) : "";
|
|
105
106
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
106
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
107
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
107
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRWYG7QHP_js.NodeRunningIndicator, { nodeId: id }),
|
|
108
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRWYG7QHP_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-cyan-500" }),
|
|
108
109
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
109
|
-
|
|
110
|
+
chunkRWYG7QHP_js.NodeInteractiveCard,
|
|
110
111
|
{
|
|
111
112
|
nodeId: id,
|
|
112
113
|
onEdit,
|
|
@@ -115,27 +116,27 @@ var S3WriteFlowNode = react.memo(function S3WriteFlowNode2({ id, data, selected
|
|
|
115
116
|
nodeType: "s3_write",
|
|
116
117
|
children: [
|
|
117
118
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
118
|
-
|
|
119
|
+
chunkRWYG7QHP_js.NodeCardHeader,
|
|
119
120
|
{
|
|
120
|
-
icon: /* @__PURE__ */ jsxRuntime.jsx(
|
|
121
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(chunkRWYG7QHP_js.NodeIconBubble, { tone: "s3_write", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CloudArrowUpIcon, { className: "h-5 w-5 text-white" }) }),
|
|
121
122
|
title: label,
|
|
122
123
|
description: t("s3WriteNodeDescription"),
|
|
123
124
|
compact: isCompact,
|
|
124
125
|
iconClassName: ""
|
|
125
126
|
}
|
|
126
127
|
),
|
|
127
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
128
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkRWYG7QHP_js.NodeCardMeta, { compact: isCompact, children: [
|
|
128
129
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
129
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
130
|
-
config.bucket && /* @__PURE__ */ jsxRuntime.jsx(
|
|
130
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRWYG7QHP_js.NodeCardBadge, { tone: "s3_write", children: t("s3WriteNode") }),
|
|
131
|
+
config.bucket && /* @__PURE__ */ jsxRuntime.jsx(chunkRWYG7QHP_js.NodeCardBadge, { tone: "s3_write", soft: true, children: config.bucket }),
|
|
131
132
|
keyPreview && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: keyPreview })
|
|
132
133
|
] }),
|
|
133
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
134
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRWYG7QHP_js.NodeCardDeleteAction, { nodeId: id, onDelete })
|
|
134
135
|
] })
|
|
135
136
|
]
|
|
136
137
|
}
|
|
137
138
|
),
|
|
138
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
139
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkRWYG7QHP_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-cyan-500" })
|
|
139
140
|
] });
|
|
140
141
|
});
|
|
141
142
|
function AnthropicModelIcon({ className }) {
|
|
@@ -199,7 +200,7 @@ function OutputSchemaBuilder({ value, onChange, depth = 0 }) {
|
|
|
199
200
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-xl border border-dashed border-slate-300 bg-slate-50/40 p-4 text-center dark:border-slate-700 dark:bg-slate-900/30", children: [
|
|
200
201
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-3 text-xs text-slate-500 dark:text-slate-400", children: "No schema yet \u2014 agent text is exposed as a raw string. Add a schema to enforce structured output." }),
|
|
201
202
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
202
|
-
|
|
203
|
+
chunkBHOT22QL_js.Button,
|
|
203
204
|
{
|
|
204
205
|
type: "button",
|
|
205
206
|
outline: true,
|
|
@@ -263,7 +264,7 @@ function OutputSchemaBuilder({ value, onChange, depth = 0 }) {
|
|
|
263
264
|
},
|
|
264
265
|
index
|
|
265
266
|
)),
|
|
266
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
267
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", outline: true, onClick: addField, children: "+ Add field" })
|
|
267
268
|
] })
|
|
268
269
|
] });
|
|
269
270
|
}
|
|
@@ -286,7 +287,7 @@ function FieldEditor({
|
|
|
286
287
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-xl border border-slate-200 bg-slate-50/60 p-3 dark:border-slate-700 dark:bg-slate-900/40", children: [
|
|
287
288
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[1fr_140px_auto_auto] items-end gap-2", children: [
|
|
288
289
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
289
|
-
|
|
290
|
+
chunkR4EKPXX3_js.FormInput,
|
|
290
291
|
{
|
|
291
292
|
label: "Name",
|
|
292
293
|
value: field.name,
|
|
@@ -295,7 +296,7 @@ function FieldEditor({
|
|
|
295
296
|
}
|
|
296
297
|
),
|
|
297
298
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
298
|
-
|
|
299
|
+
chunkR4EKPXX3_js.FormSelect,
|
|
299
300
|
{
|
|
300
301
|
label: "Type",
|
|
301
302
|
value: field.type,
|
|
@@ -315,10 +316,10 @@ function FieldEditor({
|
|
|
315
316
|
),
|
|
316
317
|
"Required"
|
|
317
318
|
] }),
|
|
318
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
319
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", plain: true, onClick: onRemove, children: "Remove" })
|
|
319
320
|
] }),
|
|
320
321
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
321
|
-
|
|
322
|
+
chunkR4EKPXX3_js.FormInput,
|
|
322
323
|
{
|
|
323
324
|
label: "Description (optional)",
|
|
324
325
|
value: field.description,
|
|
@@ -611,13 +612,13 @@ function AgentCapabilityCard({ elo, setElo, models, selectedModelId, setSelected
|
|
|
611
612
|
] });
|
|
612
613
|
}
|
|
613
614
|
function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFramework, setSelectedFramework, markDirty, connectedProviderTypes }) {
|
|
614
|
-
const frameworkKeys = Object.keys(
|
|
615
|
+
const frameworkKeys = Object.keys(chunkRWYG7QHP_js.FRAMEWORK_META);
|
|
615
616
|
const hasProviderConstraints = connectedProviderTypes.length > 0;
|
|
616
|
-
const compatibleModels =
|
|
617
|
+
const compatibleModels = chunkRWYG7QHP_js.getCompatibleModels(models, selectedFramework);
|
|
617
618
|
const handleFrameworkChange = react.useCallback((newFramework) => {
|
|
618
619
|
setSelectedFramework(newFramework);
|
|
619
|
-
if (!
|
|
620
|
-
const compatible =
|
|
620
|
+
if (!chunkRWYG7QHP_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
|
|
621
|
+
const compatible = chunkRWYG7QHP_js.getCompatibleModels(models, newFramework);
|
|
621
622
|
if (compatible.length > 0) {
|
|
622
623
|
setSelectedModelId(compatible[0].id);
|
|
623
624
|
}
|
|
@@ -628,10 +629,10 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
|
|
|
628
629
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
629
630
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-gray-500 dark:text-gray-400", children: t("agentDrawer.framework") }),
|
|
630
631
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1.5", children: frameworkKeys.map((key) => {
|
|
631
|
-
const meta =
|
|
632
|
+
const meta = chunkRWYG7QHP_js.FRAMEWORK_META[key];
|
|
632
633
|
const isSelected = key === selectedFramework;
|
|
633
|
-
const compatCount =
|
|
634
|
-
const isCompatibleWithProviders = !hasProviderConstraints ||
|
|
634
|
+
const compatCount = chunkRWYG7QHP_js.getCompatibleModels(models, key).length;
|
|
635
|
+
const isCompatibleWithProviders = !hasProviderConstraints || chunkRWYG7QHP_js.isFrameworkCompatibleWithProviders(key, connectedProviderTypes);
|
|
635
636
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
636
637
|
"button",
|
|
637
638
|
{
|
|
@@ -663,7 +664,7 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
|
|
|
663
664
|
] }),
|
|
664
665
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-2", children: models.map((model) => {
|
|
665
666
|
const isSelected = model.id === selectedModelId;
|
|
666
|
-
const isCompatible =
|
|
667
|
+
const isCompatible = chunkRWYG7QHP_js.isModelCompatibleWithFramework(model.id, selectedFramework);
|
|
667
668
|
const { IconComponent, color, providerLabel } = getModelIcon(model.id);
|
|
668
669
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
669
670
|
"button",
|
|
@@ -821,7 +822,7 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
|
|
|
821
822
|
] }),
|
|
822
823
|
tool.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: tool.description }),
|
|
823
824
|
tool.compatibleFrameworks && tool.compatibleFrameworks.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-1 flex flex-wrap gap-0.5", children: tool.compatibleFrameworks.map((framework) => {
|
|
824
|
-
const meta =
|
|
825
|
+
const meta = chunkRWYG7QHP_js.getFrameworkMeta(framework);
|
|
825
826
|
const isCurrentFw = framework === agentFramework;
|
|
826
827
|
return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: `inline-flex items-center gap-0.5 rounded px-1.5 py-0.5 text-[8px] font-medium ${isCurrentFw ? meta.badgeColor : "bg-gray-100 text-gray-500 dark:bg-white/5 dark:text-gray-400"}`, children: [
|
|
827
828
|
/* @__PURE__ */ jsxRuntime.jsx(meta.IconComponent, { className: "h-2.5 w-2.5" }),
|
|
@@ -838,7 +839,7 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
|
|
|
838
839
|
event.stopPropagation();
|
|
839
840
|
},
|
|
840
841
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
841
|
-
|
|
842
|
+
chunkR4EKPXX3_js.ToggleSwitch,
|
|
842
843
|
{
|
|
843
844
|
checked: isEnabled,
|
|
844
845
|
onChange: () => onToggle(tool.agentToolId),
|
|
@@ -886,7 +887,7 @@ function EngineTab({
|
|
|
886
887
|
const compatibleProviders = findCompatibleProviders(selectedModelId, modelProviders);
|
|
887
888
|
const configuredCompatible = compatibleProviders.filter((p) => p.configured);
|
|
888
889
|
const effectiveProvider = compatibleProviders.find((p) => p.id === selectedProviderId) ?? configuredCompatible[0] ?? compatibleProviders[0];
|
|
889
|
-
const frameworkMeta =
|
|
890
|
+
const frameworkMeta = chunkRWYG7QHP_js.getFrameworkMeta(selectedFramework);
|
|
890
891
|
const inputCard = "liquid-surface w-full rounded-lg px-3 py-1.5 text-sm text-gray-800 outline-none transition-colors focus:ring-1 focus:ring-indigo-300/40 dark:text-gray-200 dark:focus:ring-indigo-500/20";
|
|
891
892
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-5", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "overflow-hidden rounded-2xl border border-indigo-500/20 bg-gradient-to-b from-indigo-500/[0.04] via-violet-500/[0.03] to-purple-500/[0.04] dark:border-indigo-400/20 dark:from-indigo-500/[0.10] dark:via-violet-500/[0.06] dark:to-purple-500/[0.08]", children: [
|
|
892
893
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 pb-3 pt-4", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1030,9 +1031,9 @@ function EngineTab({
|
|
|
1030
1031
|
}
|
|
1031
1032
|
function AgentModal({ onSaved, onPersist }) {
|
|
1032
1033
|
const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
|
|
1033
|
-
const activeModal =
|
|
1034
|
-
const agentData =
|
|
1035
|
-
const closeModal =
|
|
1034
|
+
const activeModal = chunkRWYG7QHP_js.useModalStore((s) => s.activeModal);
|
|
1035
|
+
const agentData = chunkRWYG7QHP_js.useModalStore((s) => s.agentData);
|
|
1036
|
+
const closeModal = chunkRWYG7QHP_js.useModalStore((s) => s.closeModal);
|
|
1036
1037
|
const open = activeModal === "agent";
|
|
1037
1038
|
const agent = agentData?.agent ?? null;
|
|
1038
1039
|
const models = agentData?.models ?? [];
|
|
@@ -1180,7 +1181,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1180
1181
|
const fieldLabel = "text-[9px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400";
|
|
1181
1182
|
const avatarInitial = (displayName || agent.name).charAt(0).toUpperCase();
|
|
1182
1183
|
const avatarNode = /* @__PURE__ */ jsxRuntime.jsx(
|
|
1183
|
-
|
|
1184
|
+
chunkR4EKPXX3_js.Avatar,
|
|
1184
1185
|
{
|
|
1185
1186
|
src: effectiveAvatarUrl || void 0,
|
|
1186
1187
|
alt: displayName || agent.name,
|
|
@@ -1192,7 +1193,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1192
1193
|
const statusPill = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
1193
1194
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[9px] font-semibold ${status === "active" ? "text-emerald-600 dark:text-emerald-400" : "text-slate-500"}`, children: status === "active" ? t("agentDrawer.statusActive", { _: "Active" }) : t("agentDrawer.statusInactive", { _: "Inactive" }) }),
|
|
1194
1195
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1195
|
-
|
|
1196
|
+
chunkR4EKPXX3_js.ToggleSwitch,
|
|
1196
1197
|
{
|
|
1197
1198
|
size: "sm",
|
|
1198
1199
|
color: "green",
|
|
@@ -1206,7 +1207,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1206
1207
|
)
|
|
1207
1208
|
] });
|
|
1208
1209
|
const identityCard = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "liquid-surface rounded-2xl p-3 ring-1 ring-slate-200/50 dark:ring-white/10", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1209
|
-
|
|
1210
|
+
chunkR4EKPXX3_js.HeroBlock,
|
|
1210
1211
|
{
|
|
1211
1212
|
icon: avatarNode,
|
|
1212
1213
|
iconBackground: "none",
|
|
@@ -1269,7 +1270,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1269
1270
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `font-medium ${autosaveColor}`, children: autosaveLabel })
|
|
1270
1271
|
] });
|
|
1271
1272
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1272
|
-
|
|
1273
|
+
chunkR4EKPXX3_js.GlassModal,
|
|
1273
1274
|
{
|
|
1274
1275
|
open,
|
|
1275
1276
|
onClose: handleClose,
|
|
@@ -1286,7 +1287,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1286
1287
|
},
|
|
1287
1288
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
|
|
1288
1289
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1289
|
-
|
|
1290
|
+
chunkR4EKPXX3_js.SectionCard,
|
|
1290
1291
|
{
|
|
1291
1292
|
variant: "glass",
|
|
1292
1293
|
padded: false,
|
|
@@ -1326,7 +1327,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1326
1327
|
}
|
|
1327
1328
|
),
|
|
1328
1329
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1329
|
-
|
|
1330
|
+
chunkR4EKPXX3_js.SectionCard,
|
|
1330
1331
|
{
|
|
1331
1332
|
variant: "glass",
|
|
1332
1333
|
padded: false,
|
|
@@ -1354,7 +1355,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1354
1355
|
}
|
|
1355
1356
|
),
|
|
1356
1357
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1357
|
-
|
|
1358
|
+
chunkR4EKPXX3_js.SectionCard,
|
|
1358
1359
|
{
|
|
1359
1360
|
variant: "glass",
|
|
1360
1361
|
padded: false,
|
|
@@ -1477,7 +1478,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1477
1478
|
const markDirty = useSubworkflowStore((s) => s.markDirty);
|
|
1478
1479
|
const markSaved = useSubworkflowStore((s) => s.markSaved);
|
|
1479
1480
|
const closeModal = useSubworkflowStore((s) => s.closeModal);
|
|
1480
|
-
const agentBehind =
|
|
1481
|
+
const agentBehind = chunkRWYG7QHP_js.useModalStore((s) => s.activeModal === "agent" ? s.agentData?.agent?.name : null);
|
|
1481
1482
|
const isCreateMode = !tool?.toolId;
|
|
1482
1483
|
const initialGraph = react.useMemo(() => {
|
|
1483
1484
|
const config = tool?.config;
|
|
@@ -1506,9 +1507,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1506
1507
|
}, [tool, onSaved, name, category, description, timeoutMs, latestGraphRef, markSaved]);
|
|
1507
1508
|
if (!tool) return null;
|
|
1508
1509
|
const categoryKey = category ?? "external";
|
|
1509
|
-
const gradient = tool.color ??
|
|
1510
|
-
const categoryPill =
|
|
1511
|
-
const IconComponent =
|
|
1510
|
+
const gradient = tool.color ?? chunkRWYG7QHP_js.CATEGORY_COLORS[categoryKey] ?? chunkRWYG7QHP_js.CATEGORY_COLORS.external;
|
|
1511
|
+
const categoryPill = chunkRWYG7QHP_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunkRWYG7QHP_js.CATEGORY_PILL_COLORS.external;
|
|
1512
|
+
const IconComponent = chunkRWYG7QHP_js.ICON_MAP[tool.icon ?? ""] ?? outline.ArrowPathRoundedSquareIcon;
|
|
1512
1513
|
const graph = latestGraphRef.current;
|
|
1513
1514
|
const startNode = graph.nodes.find((n) => n.type === "start");
|
|
1514
1515
|
const endNode = graph.nodes.find((n) => n.type === "end");
|
|
@@ -1541,7 +1542,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1541
1542
|
] })
|
|
1542
1543
|
] });
|
|
1543
1544
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1544
|
-
|
|
1545
|
+
chunkR4EKPXX3_js.GlassModal,
|
|
1545
1546
|
{
|
|
1546
1547
|
open,
|
|
1547
1548
|
onClose: closeModal,
|
|
@@ -1573,7 +1574,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1573
1574
|
{
|
|
1574
1575
|
type: "button",
|
|
1575
1576
|
onClick: () => setCategory(cat),
|
|
1576
|
-
className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${
|
|
1577
|
+
className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${chunkRWYG7QHP_js.CATEGORY_PILL_COLORS[cat] ?? chunkRWYG7QHP_js.CATEGORY_PILL_COLORS.external} ring-1 ring-current/20` : "bg-white/30 text-gray-500 hover:bg-white/50 dark:bg-white/5 dark:text-gray-400"}`,
|
|
1577
1578
|
children: cat
|
|
1578
1579
|
},
|
|
1579
1580
|
cat
|
|
@@ -1660,7 +1661,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1660
1661
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto" })
|
|
1661
1662
|
] }),
|
|
1662
1663
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1663
|
-
|
|
1664
|
+
chunkRWYG7QHP_js.WorkflowCanvas,
|
|
1664
1665
|
{
|
|
1665
1666
|
initialGraph,
|
|
1666
1667
|
agents: [],
|
|
@@ -1676,9 +1677,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1676
1677
|
}
|
|
1677
1678
|
function PipelineSettingsModal({ onSave }) {
|
|
1678
1679
|
const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
|
|
1679
|
-
const activeModal =
|
|
1680
|
-
const data =
|
|
1681
|
-
const closeModal =
|
|
1680
|
+
const activeModal = chunkRWYG7QHP_js.useModalStore((s) => s.activeModal);
|
|
1681
|
+
const data = chunkRWYG7QHP_js.useModalStore((s) => s.pipelineSettingsData);
|
|
1682
|
+
const closeModal = chunkRWYG7QHP_js.useModalStore((s) => s.closeModal);
|
|
1682
1683
|
const open = activeModal === "pipeline-settings";
|
|
1683
1684
|
const [nameValue, setNameValue] = react.useState("");
|
|
1684
1685
|
const [descriptionValue, setDescriptionValue] = react.useState("");
|
|
@@ -1740,7 +1741,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1740
1741
|
}
|
|
1741
1742
|
),
|
|
1742
1743
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1743
|
-
|
|
1744
|
+
chunkBHOT22QL_js.Button,
|
|
1744
1745
|
{
|
|
1745
1746
|
type: "submit",
|
|
1746
1747
|
form: "pipeline-settings-form",
|
|
@@ -1755,7 +1756,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1755
1756
|
)
|
|
1756
1757
|
] });
|
|
1757
1758
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1758
|
-
|
|
1759
|
+
chunkR4EKPXX3_js.GlassModal,
|
|
1759
1760
|
{
|
|
1760
1761
|
open,
|
|
1761
1762
|
onClose: closeModal,
|
|
@@ -1769,7 +1770,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1769
1770
|
onSubmit: handleSubmit,
|
|
1770
1771
|
children: /* @__PURE__ */ jsxRuntime.jsxs("form", { id: "pipeline-settings-form", onSubmit: handleSubmit, className: "space-y-5", children: [
|
|
1771
1772
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1772
|
-
|
|
1773
|
+
chunkR4EKPXX3_js.FormInput,
|
|
1773
1774
|
{
|
|
1774
1775
|
label: t("pipelineName"),
|
|
1775
1776
|
value: nameValue,
|
|
@@ -1779,7 +1780,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1779
1780
|
}
|
|
1780
1781
|
),
|
|
1781
1782
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1782
|
-
|
|
1783
|
+
chunkR4EKPXX3_js.FormTextarea,
|
|
1783
1784
|
{
|
|
1784
1785
|
label: t("pipelineDescription"),
|
|
1785
1786
|
value: descriptionValue,
|
|
@@ -1790,7 +1791,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1790
1791
|
),
|
|
1791
1792
|
lifecycleAvailable && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1792
1793
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1793
|
-
|
|
1794
|
+
chunkR4EKPXX3_js.FormInput,
|
|
1794
1795
|
{
|
|
1795
1796
|
label: t("pipelineSlug", { _: "Slug" }),
|
|
1796
1797
|
value: slugValue,
|
|
@@ -1917,7 +1918,7 @@ function RunReplayModal({
|
|
|
1917
1918
|
}
|
|
1918
1919
|
),
|
|
1919
1920
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1920
|
-
|
|
1921
|
+
chunkBHOT22QL_js.Button,
|
|
1921
1922
|
{
|
|
1922
1923
|
type: "submit",
|
|
1923
1924
|
form: "run-replay-form",
|
|
@@ -1932,7 +1933,7 @@ function RunReplayModal({
|
|
|
1932
1933
|
] })
|
|
1933
1934
|
] });
|
|
1934
1935
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1935
|
-
|
|
1936
|
+
chunkR4EKPXX3_js.GlassModal,
|
|
1936
1937
|
{
|
|
1937
1938
|
open,
|
|
1938
1939
|
onClose,
|
|
@@ -1982,7 +1983,7 @@ function RowEditor({
|
|
|
1982
1983
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between gap-2", children: [
|
|
1983
1984
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-xs text-gray-700 dark:text-gray-200", children: row.key }),
|
|
1984
1985
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
1985
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1986
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "zinc", size: "xs", className: "uppercase tracking-wider", children: row.kind }),
|
|
1986
1987
|
row.touched && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1987
1988
|
"button",
|
|
1988
1989
|
{
|
|
@@ -2006,7 +2007,7 @@ function RowEditor({
|
|
|
2006
2007
|
]
|
|
2007
2008
|
}
|
|
2008
2009
|
) : isJson ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2009
|
-
|
|
2010
|
+
chunkR4EKPXX3_js.FormTextarea,
|
|
2010
2011
|
{
|
|
2011
2012
|
value: row.value,
|
|
2012
2013
|
onValueChange: (v) => onChange({ value: v }),
|
|
@@ -2014,7 +2015,7 @@ function RowEditor({
|
|
|
2014
2015
|
className: "font-mono"
|
|
2015
2016
|
}
|
|
2016
2017
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
2017
|
-
|
|
2018
|
+
chunkR4EKPXX3_js.FormInput,
|
|
2018
2019
|
{
|
|
2019
2020
|
type: row.kind === "number" ? "number" : "text",
|
|
2020
2021
|
value: row.value,
|
|
@@ -2118,7 +2119,7 @@ function ExecutionTimelinePanel({
|
|
|
2118
2119
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate font-medium text-slate-900 dark:text-white", children: entry.nodeId }),
|
|
2119
2120
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs text-slate-500 dark:text-slate-400", children: entry.nodeType })
|
|
2120
2121
|
] }),
|
|
2121
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2122
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkBHOT22QL_js.Badge, { color: meta.color, children: [
|
|
2122
2123
|
/* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "mr-1 h-3 w-3" }),
|
|
2123
2124
|
labels[entry.status]
|
|
2124
2125
|
] })
|
|
@@ -2148,7 +2149,7 @@ function NodeInspector({
|
|
|
2148
2149
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "truncate text-base font-semibold text-slate-900 dark:text-white", children: entry.nodeId }),
|
|
2149
2150
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: entry.nodeType })
|
|
2150
2151
|
] }),
|
|
2151
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2152
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: meta.color, children: labels[entry.status] })
|
|
2152
2153
|
] }),
|
|
2153
2154
|
/* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "grid grid-cols-2 gap-3 text-xs text-slate-500 dark:text-slate-400", children: [
|
|
2154
2155
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
@@ -2318,7 +2319,7 @@ function RuleConditionBuilder({ value, onChange, depth = 0 }) {
|
|
|
2318
2319
|
};
|
|
2319
2320
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3 rounded-xl border border-slate-200 bg-slate-50/60 p-3 dark:border-slate-700 dark:bg-slate-900/40", children: [
|
|
2320
2321
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2321
|
-
|
|
2322
|
+
chunkR4EKPXX3_js.FormSelect,
|
|
2322
2323
|
{
|
|
2323
2324
|
label: "Operator",
|
|
2324
2325
|
value: value.operator,
|
|
@@ -2341,7 +2342,7 @@ function SimpleEditor({
|
|
|
2341
2342
|
const isTruthy = value.operator === "truthy";
|
|
2342
2343
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2343
2344
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2344
|
-
|
|
2345
|
+
chunkR4EKPXX3_js.FormInput,
|
|
2345
2346
|
{
|
|
2346
2347
|
label: "Field",
|
|
2347
2348
|
hint: "Dotted reference into the variable pool \u2014 e.g. `parse-pricing.margin`, `inputs.category`",
|
|
@@ -2351,7 +2352,7 @@ function SimpleEditor({
|
|
|
2351
2352
|
}
|
|
2352
2353
|
),
|
|
2353
2354
|
!isTruthy && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2354
|
-
|
|
2355
|
+
chunkR4EKPXX3_js.FormInput,
|
|
2355
2356
|
{
|
|
2356
2357
|
label: "Value",
|
|
2357
2358
|
hint: "Literal. Numeric operators coerce via `as f64`.",
|
|
@@ -2367,7 +2368,7 @@ function ThresholdEditor({
|
|
|
2367
2368
|
}) {
|
|
2368
2369
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-3", children: [
|
|
2369
2370
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2370
|
-
|
|
2371
|
+
chunkR4EKPXX3_js.FormInput,
|
|
2371
2372
|
{
|
|
2372
2373
|
label: "Field",
|
|
2373
2374
|
value: value.field ?? "",
|
|
@@ -2376,7 +2377,7 @@ function ThresholdEditor({
|
|
|
2376
2377
|
}
|
|
2377
2378
|
),
|
|
2378
2379
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2379
|
-
|
|
2380
|
+
chunkR4EKPXX3_js.FormSelect,
|
|
2380
2381
|
{
|
|
2381
2382
|
label: "Direction",
|
|
2382
2383
|
value: value.comparison ?? "gte",
|
|
@@ -2390,7 +2391,7 @@ function ThresholdEditor({
|
|
|
2390
2391
|
}
|
|
2391
2392
|
),
|
|
2392
2393
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2393
|
-
|
|
2394
|
+
chunkR4EKPXX3_js.FormInput,
|
|
2394
2395
|
{
|
|
2395
2396
|
label: "Threshold",
|
|
2396
2397
|
type: "number",
|
|
@@ -2407,7 +2408,7 @@ function RegexEditor({
|
|
|
2407
2408
|
}) {
|
|
2408
2409
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2409
2410
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2410
|
-
|
|
2411
|
+
chunkR4EKPXX3_js.FormInput,
|
|
2411
2412
|
{
|
|
2412
2413
|
label: "Field",
|
|
2413
2414
|
value: value.field ?? "",
|
|
@@ -2416,7 +2417,7 @@ function RegexEditor({
|
|
|
2416
2417
|
}
|
|
2417
2418
|
),
|
|
2418
2419
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2419
|
-
|
|
2420
|
+
chunkR4EKPXX3_js.FormInput,
|
|
2420
2421
|
{
|
|
2421
2422
|
label: "Pattern",
|
|
2422
2423
|
hint: "Rust regex syntax \u2014 `(?i)` etc. supported.",
|
|
@@ -2444,7 +2445,7 @@ function TimeWindowEditor({
|
|
|
2444
2445
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
2445
2446
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2446
2447
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2447
|
-
|
|
2448
|
+
chunkR4EKPXX3_js.FormSelect,
|
|
2448
2449
|
{
|
|
2449
2450
|
label: "Timezone",
|
|
2450
2451
|
value: value.timezone ?? "UTC",
|
|
@@ -2453,7 +2454,7 @@ function TimeWindowEditor({
|
|
|
2453
2454
|
}
|
|
2454
2455
|
),
|
|
2455
2456
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2456
|
-
|
|
2457
|
+
chunkR4EKPXX3_js.FormInput,
|
|
2457
2458
|
{
|
|
2458
2459
|
label: "Timestamp field (optional)",
|
|
2459
2460
|
hint: "Pulls a timestamp from the pool. Leave blank to use the run's wall-clock.",
|
|
@@ -2466,7 +2467,7 @@ function TimeWindowEditor({
|
|
|
2466
2467
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
2467
2468
|
windows.map((win, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[1fr_1fr_auto] items-end gap-2 rounded-lg border border-slate-200 p-2 dark:border-slate-700", children: [
|
|
2468
2469
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2469
|
-
|
|
2470
|
+
chunkR4EKPXX3_js.FormInput,
|
|
2470
2471
|
{
|
|
2471
2472
|
label: `Start (hour)`,
|
|
2472
2473
|
type: "number",
|
|
@@ -2477,7 +2478,7 @@ function TimeWindowEditor({
|
|
|
2477
2478
|
}
|
|
2478
2479
|
),
|
|
2479
2480
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2480
|
-
|
|
2481
|
+
chunkR4EKPXX3_js.FormInput,
|
|
2481
2482
|
{
|
|
2482
2483
|
label: `End (hour)`,
|
|
2483
2484
|
type: "number",
|
|
@@ -2487,9 +2488,9 @@ function TimeWindowEditor({
|
|
|
2487
2488
|
onValueChange: (raw) => update(index, { endHour: clampHour(raw, 24) })
|
|
2488
2489
|
}
|
|
2489
2490
|
),
|
|
2490
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2491
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", plain: true, onClick: () => remove(index), children: "Remove" })
|
|
2491
2492
|
] }, index)),
|
|
2492
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2493
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", outline: true, onClick: add, children: "+ Add window" })
|
|
2493
2494
|
] })
|
|
2494
2495
|
] });
|
|
2495
2496
|
}
|
|
@@ -2512,7 +2513,7 @@ function BooleanGroupEditor({
|
|
|
2512
2513
|
});
|
|
2513
2514
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
2514
2515
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2515
|
-
|
|
2516
|
+
chunkR4EKPXX3_js.FormSelect,
|
|
2516
2517
|
{
|
|
2517
2518
|
label: "Combinator",
|
|
2518
2519
|
value: value.combinator ?? "and",
|
|
@@ -2530,9 +2531,9 @@ function BooleanGroupEditor({
|
|
|
2530
2531
|
depth
|
|
2531
2532
|
}
|
|
2532
2533
|
),
|
|
2533
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2 text-right", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2534
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2 text-right", children: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", plain: true, onClick: () => remove(index), children: "Remove operand" }) })
|
|
2534
2535
|
] }, index)),
|
|
2535
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2536
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", outline: true, onClick: add, children: "+ Add operand" })
|
|
2536
2537
|
] })
|
|
2537
2538
|
] });
|
|
2538
2539
|
}
|
|
@@ -2568,7 +2569,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2568
2569
|
};
|
|
2569
2570
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3 rounded-xl border border-slate-200 bg-slate-50/60 p-3 dark:border-slate-700 dark:bg-slate-900/40", children: [
|
|
2570
2571
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2571
|
-
|
|
2572
|
+
chunkR4EKPXX3_js.FormSelect,
|
|
2572
2573
|
{
|
|
2573
2574
|
label: "Action type",
|
|
2574
2575
|
value: type,
|
|
@@ -2578,7 +2579,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2578
2579
|
),
|
|
2579
2580
|
type === "adjust_price" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2580
2581
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2581
|
-
|
|
2582
|
+
chunkR4EKPXX3_js.FormInput,
|
|
2582
2583
|
{
|
|
2583
2584
|
label: "Multiplier",
|
|
2584
2585
|
type: "number",
|
|
@@ -2588,7 +2589,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2588
2589
|
}
|
|
2589
2590
|
),
|
|
2590
2591
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2591
|
-
|
|
2592
|
+
chunkR4EKPXX3_js.FormInput,
|
|
2592
2593
|
{
|
|
2593
2594
|
label: "Reason code",
|
|
2594
2595
|
value: stringParam(params.reason),
|
|
@@ -2598,7 +2599,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2598
2599
|
)
|
|
2599
2600
|
] }),
|
|
2600
2601
|
type === "enforce_min_margin" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2601
|
-
|
|
2602
|
+
chunkR4EKPXX3_js.FormInput,
|
|
2602
2603
|
{
|
|
2603
2604
|
label: "Floor (fraction, e.g. 0.08)",
|
|
2604
2605
|
type: "number",
|
|
@@ -2608,7 +2609,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2608
2609
|
}
|
|
2609
2610
|
),
|
|
2610
2611
|
type === "realign_to_competitor" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2611
|
-
|
|
2612
|
+
chunkR4EKPXX3_js.FormInput,
|
|
2612
2613
|
{
|
|
2613
2614
|
label: "Tolerance (fraction)",
|
|
2614
2615
|
type: "number",
|
|
@@ -2618,7 +2619,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2618
2619
|
}
|
|
2619
2620
|
),
|
|
2620
2621
|
type === "request_manager_approval" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2621
|
-
|
|
2622
|
+
chunkR4EKPXX3_js.FormInput,
|
|
2622
2623
|
{
|
|
2623
2624
|
label: "Approval limit (fraction)",
|
|
2624
2625
|
type: "number",
|
|
@@ -2628,7 +2629,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2628
2629
|
}
|
|
2629
2630
|
),
|
|
2630
2631
|
type === "round_to" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2631
|
-
|
|
2632
|
+
chunkR4EKPXX3_js.FormInput,
|
|
2632
2633
|
{
|
|
2633
2634
|
label: "Step (e.g. 0.009)",
|
|
2634
2635
|
type: "number",
|
|
@@ -2639,7 +2640,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2639
2640
|
),
|
|
2640
2641
|
type === "alert" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2641
2642
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2642
|
-
|
|
2643
|
+
chunkR4EKPXX3_js.FormInput,
|
|
2643
2644
|
{
|
|
2644
2645
|
label: "Channel",
|
|
2645
2646
|
value: stringParam(params.channel),
|
|
@@ -2648,7 +2649,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2648
2649
|
}
|
|
2649
2650
|
),
|
|
2650
2651
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2651
|
-
|
|
2652
|
+
chunkR4EKPXX3_js.FormInput,
|
|
2652
2653
|
{
|
|
2653
2654
|
label: "Severity",
|
|
2654
2655
|
value: stringParam(params.severity),
|
|
@@ -2686,7 +2687,7 @@ function CustomParamsEditor({
|
|
|
2686
2687
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
2687
2688
|
entries.map(([key, value], index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[1fr_1fr_auto] items-end gap-2", children: [
|
|
2688
2689
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2689
|
-
|
|
2690
|
+
chunkR4EKPXX3_js.FormInput,
|
|
2690
2691
|
{
|
|
2691
2692
|
label: "Key",
|
|
2692
2693
|
value: key,
|
|
@@ -2694,16 +2695,16 @@ function CustomParamsEditor({
|
|
|
2694
2695
|
}
|
|
2695
2696
|
),
|
|
2696
2697
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2697
|
-
|
|
2698
|
+
chunkR4EKPXX3_js.FormInput,
|
|
2698
2699
|
{
|
|
2699
2700
|
label: "Value",
|
|
2700
2701
|
value: String(value ?? ""),
|
|
2701
2702
|
onValueChange: (raw) => update(index, key, raw)
|
|
2702
2703
|
}
|
|
2703
2704
|
),
|
|
2704
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2705
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", plain: true, onClick: () => remove(index), children: "Remove" })
|
|
2705
2706
|
] }, index)),
|
|
2706
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2707
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", outline: true, onClick: add, children: "+ Add param" })
|
|
2707
2708
|
] });
|
|
2708
2709
|
}
|
|
2709
2710
|
function numberParam(value, fallback) {
|
|
@@ -2733,9 +2734,9 @@ function RuleForm({ value, onChange }) {
|
|
|
2733
2734
|
);
|
|
2734
2735
|
const update = (key, v) => onChange({ ...value, [key]: v });
|
|
2735
2736
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
|
|
2736
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2737
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkR4EKPXX3_js.FormGrid, { children: [
|
|
2737
2738
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2738
|
-
|
|
2739
|
+
chunkR4EKPXX3_js.FormInput,
|
|
2739
2740
|
{
|
|
2740
2741
|
label: "Name",
|
|
2741
2742
|
required: true,
|
|
@@ -2744,7 +2745,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2744
2745
|
}
|
|
2745
2746
|
),
|
|
2746
2747
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2747
|
-
|
|
2748
|
+
chunkR4EKPXX3_js.FormInput,
|
|
2748
2749
|
{
|
|
2749
2750
|
label: "Priority",
|
|
2750
2751
|
type: "number",
|
|
@@ -2754,7 +2755,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2754
2755
|
}
|
|
2755
2756
|
),
|
|
2756
2757
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2757
|
-
|
|
2758
|
+
chunkR4EKPXX3_js.FormSelect,
|
|
2758
2759
|
{
|
|
2759
2760
|
label: "Enabled",
|
|
2760
2761
|
value: value.enabled ? "true" : "false",
|
|
@@ -2766,7 +2767,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2766
2767
|
}
|
|
2767
2768
|
),
|
|
2768
2769
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2769
|
-
|
|
2770
|
+
chunkR4EKPXX3_js.FormTextarea,
|
|
2770
2771
|
{
|
|
2771
2772
|
label: "Description",
|
|
2772
2773
|
rows: 2,
|
|
@@ -2778,7 +2779,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2778
2779
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
|
|
2779
2780
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
2780
2781
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-700 dark:text-slate-200", children: "Condition" }),
|
|
2781
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2782
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "indigo", children: value.condition.operator })
|
|
2782
2783
|
] }),
|
|
2783
2784
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2784
2785
|
RuleConditionBuilder,
|
|
@@ -2791,7 +2792,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2791
2792
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
|
|
2792
2793
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
2793
2794
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-700 dark:text-slate-200", children: "Action on match" }),
|
|
2794
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2795
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "fuchsia", children: value.action.type })
|
|
2795
2796
|
] }),
|
|
2796
2797
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2797
2798
|
RuleActionBuilder,
|
|
@@ -2813,7 +2814,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2813
2814
|
),
|
|
2814
2815
|
showAdvanced && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-3 grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2815
2816
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2816
|
-
|
|
2817
|
+
chunkR4EKPXX3_js.FormInput,
|
|
2817
2818
|
{
|
|
2818
2819
|
label: "Valid from (ISO 8601)",
|
|
2819
2820
|
type: "datetime-local",
|
|
@@ -2822,7 +2823,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2822
2823
|
}
|
|
2823
2824
|
),
|
|
2824
2825
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2825
|
-
|
|
2826
|
+
chunkR4EKPXX3_js.FormInput,
|
|
2826
2827
|
{
|
|
2827
2828
|
label: "Valid until (ISO 8601)",
|
|
2828
2829
|
type: "datetime-local",
|
|
@@ -2831,7 +2832,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2831
2832
|
}
|
|
2832
2833
|
),
|
|
2833
2834
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2834
|
-
|
|
2835
|
+
chunkR4EKPXX3_js.FormSelect,
|
|
2835
2836
|
{
|
|
2836
2837
|
label: "Status",
|
|
2837
2838
|
value: value.status ?? "active",
|
|
@@ -2840,7 +2841,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2840
2841
|
}
|
|
2841
2842
|
),
|
|
2842
2843
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2843
|
-
|
|
2844
|
+
chunkR4EKPXX3_js.FormInput,
|
|
2844
2845
|
{
|
|
2845
2846
|
label: "Tags (comma-separated)",
|
|
2846
2847
|
value: (value.tags ?? []).join(", "),
|
|
@@ -3027,8 +3028,8 @@ function CollapsibleSection({ title, icon, colorClass, defaultOpen = true, count
|
|
|
3027
3028
|
] });
|
|
3028
3029
|
}
|
|
3029
3030
|
function LogicNodeItemCard({ item, translationFunction }) {
|
|
3030
|
-
const IconComponent =
|
|
3031
|
-
const gradient =
|
|
3031
|
+
const IconComponent = chunkRWYG7QHP_js.LOGIC_ICON_MAP[item.nodeType];
|
|
3032
|
+
const gradient = chunkRWYG7QHP_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-gray-400 to-gray-500";
|
|
3032
3033
|
const defaultConfig = chunk72SWXOD5_js.createDefaultLogicNodeConfig(item.nodeType);
|
|
3033
3034
|
const configJson = defaultConfig ? JSON.stringify(defaultConfig) : void 0;
|
|
3034
3035
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -3099,7 +3100,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3099
3100
|
[entityTypes, normalizedQuery]
|
|
3100
3101
|
);
|
|
3101
3102
|
const filteredLogicItems = react.useMemo(() => {
|
|
3102
|
-
const visibleByDefault = LOGIC_NODE_ITEMS.filter((item) => !
|
|
3103
|
+
const visibleByDefault = LOGIC_NODE_ITEMS.filter((item) => !chunkRWYG7QHP_js.EXPERIMENTAL_NODE_TYPES.has(item.nodeType));
|
|
3103
3104
|
if (!normalizedQuery) return visibleByDefault;
|
|
3104
3105
|
return visibleByDefault.filter(
|
|
3105
3106
|
(item) => t(item.nameKey).toLowerCase().includes(normalizedQuery) || t(item.descriptionKey).toLowerCase().includes(normalizedQuery)
|
|
@@ -3235,7 +3236,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3235
3236
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: tool.category })
|
|
3236
3237
|
] }),
|
|
3237
3238
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3238
|
-
|
|
3239
|
+
chunkR4EKPXX3_js.ToggleSwitch,
|
|
3239
3240
|
{
|
|
3240
3241
|
checked: Boolean(tool.enabled),
|
|
3241
3242
|
onChange: () => {
|
|
@@ -3276,7 +3277,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3276
3277
|
] })
|
|
3277
3278
|
] }),
|
|
3278
3279
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3279
|
-
|
|
3280
|
+
chunkR4EKPXX3_js.ToggleSwitch,
|
|
3280
3281
|
{
|
|
3281
3282
|
checked: Boolean(rule.enabled),
|
|
3282
3283
|
onChange: () => {
|
|
@@ -3312,8 +3313,8 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3312
3313
|
limit: entity.defaultLimit
|
|
3313
3314
|
});
|
|
3314
3315
|
const dsLogo = getDatasourceLogo(entity.id);
|
|
3315
|
-
const EntityIcon =
|
|
3316
|
-
const entityGradient =
|
|
3316
|
+
const EntityIcon = chunkRWYG7QHP_js.getEntityIcon(entity.id);
|
|
3317
|
+
const entityGradient = chunkRWYG7QHP_js.getEntityGradient(entity.id);
|
|
3317
3318
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3318
3319
|
"div",
|
|
3319
3320
|
{
|
|
@@ -3333,7 +3334,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3333
3334
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3334
3335
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded-full bg-slate-100 px-1.5 py-0.5 text-[9px] font-medium text-slate-600 dark:bg-white/10 dark:text-slate-300", children: "Read only" }),
|
|
3335
3336
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3336
|
-
|
|
3337
|
+
chunkR4EKPXX3_js.ToggleSwitch,
|
|
3337
3338
|
{
|
|
3338
3339
|
checked: true,
|
|
3339
3340
|
onChange: () => {
|
|
@@ -3576,7 +3577,7 @@ function VersionHistoryPanel({
|
|
|
3576
3577
|
"v",
|
|
3577
3578
|
version.version
|
|
3578
3579
|
] }),
|
|
3579
|
-
isCurrentVersion && /* @__PURE__ */ jsxRuntime.jsx(
|
|
3580
|
+
isCurrentVersion && /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "blue", size: "xs", children: translations("current") })
|
|
3580
3581
|
] }) }),
|
|
3581
3582
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-1 text-xs text-gray-500 dark:text-gray-400", children: [
|
|
3582
3583
|
/* @__PURE__ */ jsxRuntime.jsx("div", { children: formatTimestamp3(version.publishedAt) }),
|
|
@@ -3668,9 +3669,9 @@ function formatDuration2(durationMs) {
|
|
|
3668
3669
|
}
|
|
3669
3670
|
function RunPanel({ open, onClose, onRun, onStop }) {
|
|
3670
3671
|
const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.runPanel");
|
|
3671
|
-
const nodes =
|
|
3672
|
-
const isRunning =
|
|
3673
|
-
const nodeResults =
|
|
3672
|
+
const nodes = chunkRWYG7QHP_js.useWorkflowStore((state) => state.nodes);
|
|
3673
|
+
const isRunning = chunkRWYG7QHP_js.useWorkflowStore((state) => state.isRunning);
|
|
3674
|
+
const nodeResults = chunkRWYG7QHP_js.useWorkflowStore((state) => state.nodeResults);
|
|
3674
3675
|
const startNode = nodes.find((node) => node.type === "start");
|
|
3675
3676
|
const hasEndNode = nodes.some((node) => node.type === "end");
|
|
3676
3677
|
const hasValidStartConfig = Boolean(
|
|
@@ -4001,8 +4002,8 @@ function inferVariables(config, nodeType) {
|
|
|
4001
4002
|
}
|
|
4002
4003
|
function VariableInspector({ open, onClose }) {
|
|
4003
4004
|
const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.variableInspector");
|
|
4004
|
-
const nodes =
|
|
4005
|
-
const edges =
|
|
4005
|
+
const nodes = chunkRWYG7QHP_js.useWorkflowStore((state) => state.nodes);
|
|
4006
|
+
const edges = chunkRWYG7QHP_js.useWorkflowStore((state) => state.edges);
|
|
4006
4007
|
const [expandedNodes, setExpandedNodes] = react.useState(/* @__PURE__ */ new Set());
|
|
4007
4008
|
const toggleNodeExpansion = react.useCallback((nodeId) => {
|
|
4008
4009
|
setExpandedNodes((current) => {
|
|
@@ -4064,8 +4065,8 @@ function VariableInspector({ open, onClose }) {
|
|
|
4064
4065
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-gray-500 dark:text-gray-400", children: translations("noNodes") })
|
|
4065
4066
|
] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-gray-100 dark:divide-gray-800", children: nodeVariableEntries.map((entry) => {
|
|
4066
4067
|
const isExpanded = expandedNodes.has(entry.nodeId);
|
|
4067
|
-
const IconComponent =
|
|
4068
|
-
const gradient =
|
|
4068
|
+
const IconComponent = chunkRWYG7QHP_js.LOGIC_ICON_MAP[entry.nodeType];
|
|
4069
|
+
const gradient = chunkRWYG7QHP_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-gray-400 to-gray-500";
|
|
4069
4070
|
const inputVariables = entry.variables.filter((variable) => variable.direction === "input");
|
|
4070
4071
|
const outputVariables = entry.variables.filter((variable) => variable.direction === "output");
|
|
4071
4072
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": `variable-node-${entry.nodeId}`, children: [
|
|
@@ -4131,7 +4132,7 @@ function RunInputDialog({
|
|
|
4131
4132
|
onRun
|
|
4132
4133
|
}) {
|
|
4133
4134
|
const t = chunkYXN2K77G_js.useTranslations("agents.workflow.runInputDialog");
|
|
4134
|
-
const nodes =
|
|
4135
|
+
const nodes = chunkRWYG7QHP_js.useWorkflowStore((state) => state.nodes);
|
|
4135
4136
|
const [values, setValues] = react.useState({});
|
|
4136
4137
|
const inputVariableNames = react.useMemo(() => {
|
|
4137
4138
|
const storeStartNode = nodes.find((node) => node.type === "start");
|
|
@@ -4158,7 +4159,7 @@ function RunInputDialog({
|
|
|
4158
4159
|
}, [onClose]);
|
|
4159
4160
|
if (!open) return null;
|
|
4160
4161
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4161
|
-
|
|
4162
|
+
chunkR4EKPXX3_js.GlassModal,
|
|
4162
4163
|
{
|
|
4163
4164
|
open,
|
|
4164
4165
|
onClose: handleClose,
|
|
@@ -4169,7 +4170,7 @@ function RunInputDialog({
|
|
|
4169
4170
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: inputVariableNames.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-center text-sm text-gray-500 dark:text-gray-400", children: t("noInputs") }) : inputVariableNames.map((variableName) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4170
4171
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300", children: variableName }),
|
|
4171
4172
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4172
|
-
|
|
4173
|
+
chunkR4EKPXX3_js.Input,
|
|
4173
4174
|
{
|
|
4174
4175
|
value: values[variableName] ?? "",
|
|
4175
4176
|
onChange: (event) => handleValueChange(variableName, event.target.value),
|
|
@@ -4178,8 +4179,8 @@ function RunInputDialog({
|
|
|
4178
4179
|
)
|
|
4179
4180
|
] }, variableName)) }),
|
|
4180
4181
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-4 flex items-center justify-end gap-2", children: [
|
|
4181
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4182
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4182
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { size: "sm", plain: true, onClick: handleClose, children: t("cancel") }),
|
|
4183
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkBHOT22QL_js.Button, { size: "sm", gradient: true, onClick: handleSubmit, children: [
|
|
4183
4184
|
/* @__PURE__ */ jsxRuntime.jsx(outline.PlayIcon, { className: "h-3.5 w-3.5", "data-slot": "icon" }),
|
|
4184
4185
|
t("run")
|
|
4185
4186
|
] })
|
|
@@ -4212,8 +4213,8 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
|
|
|
4212
4213
|
const [isLoadingRuns, setIsLoadingRuns] = react.useState(false);
|
|
4213
4214
|
const [selectedRun, setSelectedRun] = react.useState(null);
|
|
4214
4215
|
const [selectedNode, setSelectedNode] = react.useState(null);
|
|
4215
|
-
const isRunning =
|
|
4216
|
-
const nodeResults =
|
|
4216
|
+
const isRunning = chunkRWYG7QHP_js.useWorkflowStore((state) => state.isRunning);
|
|
4217
|
+
const nodeResults = chunkRWYG7QHP_js.useWorkflowStore((state) => state.nodeResults);
|
|
4217
4218
|
const refreshRuns = react.useCallback(async () => {
|
|
4218
4219
|
setIsLoadingRuns(true);
|
|
4219
4220
|
try {
|
|
@@ -4391,7 +4392,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
|
|
|
4391
4392
|
onAutoSaveGraph(graph);
|
|
4392
4393
|
}, [onAutoSaveGraph, onGraphSnapshot]);
|
|
4393
4394
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4394
|
-
|
|
4395
|
+
chunkRWYG7QHP_js.Workspace,
|
|
4395
4396
|
{
|
|
4396
4397
|
...workspaceProps,
|
|
4397
4398
|
onGraphChange: handleGraphChange
|
|
@@ -4399,7 +4400,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
|
|
|
4399
4400
|
);
|
|
4400
4401
|
});
|
|
4401
4402
|
function DynamicIslandConfirm2(props) {
|
|
4402
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4403
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.DynamicIslandConfirm, { ...props });
|
|
4403
4404
|
}
|
|
4404
4405
|
var JSON_PREVIEW_LINE_LIMIT = 50;
|
|
4405
4406
|
function DslExportModal({ open, onClose, workflow, graph }) {
|
|
@@ -4453,7 +4454,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
|
|
|
4453
4454
|
}, [jsonString, workflow.name, workflow.version]);
|
|
4454
4455
|
if (!open) return null;
|
|
4455
4456
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4456
|
-
|
|
4457
|
+
chunkR4EKPXX3_js.GlassModal,
|
|
4457
4458
|
{
|
|
4458
4459
|
open,
|
|
4459
4460
|
onClose,
|
|
@@ -4495,7 +4496,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
|
|
|
4495
4496
|
] }),
|
|
4496
4497
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-end gap-3 border-t border-gray-200 px-1 py-4 dark:border-gray-700", children: [
|
|
4497
4498
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4498
|
-
|
|
4499
|
+
chunkBHOT22QL_js.Button,
|
|
4499
4500
|
{
|
|
4500
4501
|
type: "button",
|
|
4501
4502
|
onClick: handleCopyToClipboard,
|
|
@@ -4512,7 +4513,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
|
|
|
4512
4513
|
}
|
|
4513
4514
|
),
|
|
4514
4515
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4515
|
-
|
|
4516
|
+
chunkBHOT22QL_js.Button,
|
|
4516
4517
|
{
|
|
4517
4518
|
type: "button",
|
|
4518
4519
|
onClick: handleDownloadJson,
|
|
@@ -4671,7 +4672,7 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4671
4672
|
}, []);
|
|
4672
4673
|
if (!open) return null;
|
|
4673
4674
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4674
|
-
|
|
4675
|
+
chunkR4EKPXX3_js.GlassModal,
|
|
4675
4676
|
{
|
|
4676
4677
|
open,
|
|
4677
4678
|
onClose,
|
|
@@ -4711,7 +4712,7 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4711
4712
|
) : /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": "import-validation-result", children: [
|
|
4712
4713
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4 flex items-center justify-between", children: [
|
|
4713
4714
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: fileName }),
|
|
4714
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4715
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", plain: true, size: "sm", onClick: handleReset, children: translations("chooseAnother") })
|
|
4715
4716
|
] }),
|
|
4716
4717
|
validationResult.isValid ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg border border-green-200 bg-green-50 p-4 dark:border-green-800 dark:bg-green-900/20", children: [
|
|
4717
4718
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
@@ -4739,9 +4740,9 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4739
4740
|
] })
|
|
4740
4741
|
] }) }),
|
|
4741
4742
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-end gap-3 border-t border-gray-200 px-1 py-4 dark:border-gray-700", children: [
|
|
4742
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4743
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", onClick: onClose, outline: true, size: "sm", "data-testid": "import-cancel-button", children: translations("cancel") }),
|
|
4743
4744
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4744
|
-
|
|
4745
|
+
chunkBHOT22QL_js.Button,
|
|
4745
4746
|
{
|
|
4746
4747
|
type: "button",
|
|
4747
4748
|
onClick: handleImport,
|
|
@@ -4762,14 +4763,14 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4762
4763
|
}
|
|
4763
4764
|
|
|
4764
4765
|
// src/astrlabe/store/selectors.ts
|
|
4765
|
-
var useCanUndo = () =>
|
|
4766
|
-
var useCanRedo = () =>
|
|
4767
|
-
var useHasCopied = () =>
|
|
4768
|
-
var useContextMenu = () =>
|
|
4769
|
-
var useEditingNodeId = () =>
|
|
4770
|
-
var useSelectedNodeCount = () =>
|
|
4771
|
-
var useIsRunning = () =>
|
|
4772
|
-
var useNodeResults = () =>
|
|
4766
|
+
var useCanUndo = () => chunkRWYG7QHP_js.useWorkflowStore((state) => state.past.length > 0);
|
|
4767
|
+
var useCanRedo = () => chunkRWYG7QHP_js.useWorkflowStore((state) => state.future.length > 0);
|
|
4768
|
+
var useHasCopied = () => chunkRWYG7QHP_js.useWorkflowStore((state) => state.clipboard !== null);
|
|
4769
|
+
var useContextMenu = () => chunkRWYG7QHP_js.useWorkflowStore((state) => state.contextMenu);
|
|
4770
|
+
var useEditingNodeId = () => chunkRWYG7QHP_js.useWorkflowStore((state) => state.editingNodeId);
|
|
4771
|
+
var useSelectedNodeCount = () => chunkRWYG7QHP_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
|
|
4772
|
+
var useIsRunning = () => chunkRWYG7QHP_js.useWorkflowStore((state) => state.isRunning);
|
|
4773
|
+
var useNodeResults = () => chunkRWYG7QHP_js.useWorkflowStore((state) => state.nodeResults);
|
|
4773
4774
|
var DEFAULT_MAX_HISTORY = 50;
|
|
4774
4775
|
function useUndoRedo(nodes, edges, setNodes, setEdges, maxHistory = DEFAULT_MAX_HISTORY) {
|
|
4775
4776
|
const pastRef = react.useRef([]);
|
|
@@ -5093,5 +5094,5 @@ exports.useNodeResults = useNodeResults;
|
|
|
5093
5094
|
exports.useSelectedNodeCount = useSelectedNodeCount;
|
|
5094
5095
|
exports.useSubworkflowStore = useSubworkflowStore;
|
|
5095
5096
|
exports.useUndoRedo = useUndoRedo;
|
|
5096
|
-
//# sourceMappingURL=chunk-
|
|
5097
|
-
//# sourceMappingURL=chunk-
|
|
5097
|
+
//# sourceMappingURL=chunk-FUHNEP3Y.js.map
|
|
5098
|
+
//# sourceMappingURL=chunk-FUHNEP3Y.js.map
|