@datatechsolutions/ui 3.5.0 → 3.5.1
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/contracts.d.mts +517 -0
- package/dist/astrlabe/contracts.d.ts +517 -0
- package/dist/astrlabe/graph-node.d.mts +28 -0
- package/dist/astrlabe/graph-node.d.ts +28 -0
- package/dist/astrlabe/index.d.mts +743 -0
- package/dist/astrlabe/index.d.ts +743 -0
- package/dist/astrlabe/index.js +108 -108
- package/dist/astrlabe/index.mjs +4 -4
- package/dist/astrlabe/utils.d.mts +60 -0
- package/dist/astrlabe/utils.d.ts +60 -0
- package/dist/astrlabe/workflow-canvas.d.mts +6 -0
- package/dist/astrlabe/workflow-canvas.d.ts +6 -0
- package/dist/astrlabe/workflow-canvas.js +4 -4
- package/dist/astrlabe/workflow-canvas.mjs +3 -3
- package/dist/astrlabe/workflow-preview-canvas.d.mts +10 -0
- package/dist/astrlabe/workflow-preview-canvas.d.ts +10 -0
- package/dist/billing-panel-DsHhhJqG.d.mts +18 -0
- package/dist/billing-panel-DsHhhJqG.d.ts +18 -0
- package/dist/brand/index.d.mts +71 -0
- package/dist/brand/index.d.ts +71 -0
- package/dist/{chunk-UHMAKUON.mjs → chunk-2TBNOQ7M.mjs} +3 -3
- package/dist/{chunk-UHMAKUON.mjs.map → chunk-2TBNOQ7M.mjs.map} +1 -1
- package/dist/{chunk-CY2MBKVG.js → chunk-2UMDWOUY.js} +4 -4
- package/dist/{chunk-CY2MBKVG.js.map → chunk-2UMDWOUY.js.map} +1 -1
- package/dist/{chunk-6V3DUBOZ.mjs → chunk-37ZLBCJF.mjs} +7 -7
- package/dist/{chunk-6V3DUBOZ.mjs.map → chunk-37ZLBCJF.mjs.map} +1 -1
- package/dist/{chunk-NCDBNGIB.js → chunk-5AVO5DJO.js} +62 -62
- package/dist/{chunk-NCDBNGIB.js.map → chunk-5AVO5DJO.js.map} +1 -1
- package/dist/{chunk-QPSHM2JQ.mjs → chunk-7OZ4MVEF.mjs} +4 -4
- package/dist/{chunk-QPSHM2JQ.mjs.map → chunk-7OZ4MVEF.mjs.map} +1 -1
- package/dist/{chunk-3OLYSMI5.mjs → chunk-CDYNTHUE.mjs} +4 -4
- package/dist/{chunk-3OLYSMI5.mjs.map → chunk-CDYNTHUE.mjs.map} +1 -1
- package/dist/{chunk-IOEQ2GET.mjs → chunk-CJGNEALB.mjs} +4 -4
- package/dist/{chunk-IOEQ2GET.mjs.map → chunk-CJGNEALB.mjs.map} +1 -1
- package/dist/{chunk-NJ5RVWLA.mjs → chunk-CP5QXRXA.mjs} +4 -4
- package/dist/{chunk-NJ5RVWLA.mjs.map → chunk-CP5QXRXA.mjs.map} +1 -1
- package/dist/{chunk-2MJAHST4.mjs → chunk-EGXB3WXT.mjs} +4 -4
- package/dist/{chunk-2MJAHST4.mjs.map → chunk-EGXB3WXT.mjs.map} +1 -1
- package/dist/{chunk-NKXQYFS7.js → chunk-EI6FIA45.js} +16 -16
- package/dist/{chunk-NKXQYFS7.js.map → chunk-EI6FIA45.js.map} +1 -1
- package/dist/{chunk-NOHHZ6FM.mjs → chunk-EUXHJMGC.mjs} +3 -3
- package/dist/{chunk-NOHHZ6FM.mjs.map → chunk-EUXHJMGC.mjs.map} +1 -1
- package/dist/{chunk-QSMPKL27.js → chunk-F5UDX6JA.js} +74 -74
- package/dist/{chunk-QSMPKL27.js.map → chunk-F5UDX6JA.js.map} +1 -1
- package/dist/{chunk-P43PX75J.js → chunk-HVDDCBQ2.js} +33 -33
- package/dist/{chunk-P43PX75J.js.map → chunk-HVDDCBQ2.js.map} +1 -1
- package/dist/{chunk-AWDH6WNA.js → chunk-K4M4B6ME.js} +3 -3
- package/dist/{chunk-AWDH6WNA.js.map → chunk-K4M4B6ME.js.map} +1 -1
- package/dist/{chunk-VMGNQFRO.js → chunk-KIBOX3UQ.js} +53 -53
- package/dist/{chunk-VMGNQFRO.js.map → chunk-KIBOX3UQ.js.map} +1 -1
- package/dist/{chunk-5I7F7KZ6.js → chunk-KRPSTXN5.js} +10 -10
- package/dist/{chunk-5I7F7KZ6.js.map → chunk-KRPSTXN5.js.map} +1 -1
- package/dist/{chunk-ZM2Q2SMC.mjs → chunk-L5O4NWQO.mjs} +3 -3
- package/dist/{chunk-ZM2Q2SMC.mjs.map → chunk-L5O4NWQO.mjs.map} +1 -1
- package/dist/{chunk-BVXATTTA.js → chunk-MT4FJRMD.js} +4 -4
- package/dist/{chunk-BVXATTTA.js.map → chunk-MT4FJRMD.js.map} +1 -1
- package/dist/{chunk-C4NRF2G2.js → chunk-OWJIKCR2.js} +13 -13
- package/dist/{chunk-C4NRF2G2.js.map → chunk-OWJIKCR2.js.map} +1 -1
- package/dist/{chunk-5BEVTOZV.mjs → chunk-PFHXKWFT.mjs} +4 -4
- package/dist/{chunk-5BEVTOZV.mjs.map → chunk-PFHXKWFT.mjs.map} +1 -1
- package/dist/{chunk-QLFSJ6HK.mjs → chunk-PI2C3S6A.mjs} +3 -3
- package/dist/{chunk-QLFSJ6HK.mjs.map → chunk-PI2C3S6A.mjs.map} +1 -1
- package/dist/{chunk-74MHWEDC.js → chunk-PYQLY2RH.js} +161 -161
- package/dist/{chunk-74MHWEDC.js.map → chunk-PYQLY2RH.js.map} +1 -1
- package/dist/{chunk-Z7VY5M4T.js → chunk-QIUVK4BI.js} +77 -77
- package/dist/{chunk-Z7VY5M4T.js.map → chunk-QIUVK4BI.js.map} +1 -1
- package/dist/{chunk-4PFU6A2B.mjs → chunk-R3Q5RXXO.mjs} +3 -3
- package/dist/{chunk-4PFU6A2B.mjs.map → chunk-R3Q5RXXO.mjs.map} +1 -1
- package/dist/{chunk-7UHV6A4C.mjs → chunk-R6O57NTJ.mjs} +6 -6
- package/dist/{chunk-7UHV6A4C.mjs.map → chunk-R6O57NTJ.mjs.map} +1 -1
- package/dist/{chunk-A7FI4K7Z.js → chunk-RQBTLFYH.js} +5 -5
- package/dist/{chunk-A7FI4K7Z.js.map → chunk-RQBTLFYH.js.map} +1 -1
- package/dist/{chunk-V5VBYOF5.js → chunk-SFFSXC5E.js} +36 -36
- package/dist/{chunk-V5VBYOF5.js.map → chunk-SFFSXC5E.js.map} +1 -1
- package/dist/{chunk-AVM53A3Y.js → chunk-U6XA2OYE.js} +28 -28
- package/dist/{chunk-AVM53A3Y.js.map → chunk-U6XA2OYE.js.map} +1 -1
- package/dist/{chunk-7CEZB3ZD.mjs → chunk-ULEPJXTN.mjs} +3 -3
- package/dist/{chunk-7CEZB3ZD.mjs.map → chunk-ULEPJXTN.mjs.map} +1 -1
- package/dist/{chunk-FK3WDELF.js → chunk-VMIAMBCP.js} +40 -40
- package/dist/{chunk-FK3WDELF.js.map → chunk-VMIAMBCP.js.map} +1 -1
- package/dist/{chunk-OASC7NYV.mjs → chunk-WKCR4KVQ.mjs} +3 -3
- package/dist/{chunk-OASC7NYV.mjs.map → chunk-WKCR4KVQ.mjs.map} +1 -1
- package/dist/{chunk-6W7VTZG6.mjs → chunk-YV2SE5LS.mjs} +3 -3
- package/dist/{chunk-6W7VTZG6.mjs.map → chunk-YV2SE5LS.mjs.map} +1 -1
- package/dist/dynamic-island-confirm-BKsZkAEP.d.mts +17 -0
- package/dist/dynamic-island-confirm-BKsZkAEP.d.ts +17 -0
- package/dist/index-BNRGVAS5.d.mts +222 -0
- package/dist/index-BoebbJ44.d.mts +49 -0
- package/dist/index-BoebbJ44.d.ts +49 -0
- package/dist/index-CnCY-b5V.d.ts +222 -0
- package/dist/index.d.mts +5310 -0
- package/dist/index.d.ts +5310 -0
- package/dist/index.js +721 -721
- package/dist/index.mjs +2 -2
- package/dist/layout-engine-YZcVr20M.d.mts +19 -0
- package/dist/layout-engine-YZcVr20M.d.ts +19 -0
- package/dist/lib/i18n-context.d.mts +36 -0
- package/dist/lib/i18n-context.d.ts +36 -0
- package/dist/lib/router-context.d.mts +35 -0
- package/dist/lib/router-context.d.ts +35 -0
- package/dist/navigation-BiWVffAN.d.mts +49 -0
- package/dist/navigation-BiWVffAN.d.ts +49 -0
- package/dist/platform/admin/index.d.mts +17 -0
- package/dist/platform/admin/index.d.ts +17 -0
- package/dist/platform/admin/index.js +11 -11
- package/dist/platform/admin/index.mjs +5 -5
- package/dist/platform/agents-workspace.d.mts +19 -0
- package/dist/platform/agents-workspace.d.ts +19 -0
- package/dist/platform/agents-workspace.js +7 -7
- package/dist/platform/agents-workspace.mjs +6 -6
- package/dist/platform/app-shell.d.mts +58 -0
- package/dist/platform/app-shell.d.ts +58 -0
- package/dist/platform/app-shell.js +4 -4
- package/dist/platform/app-shell.mjs +3 -3
- package/dist/platform/auth/index.d.mts +73 -0
- package/dist/platform/auth/index.d.ts +73 -0
- package/dist/platform/auth/index.js +28 -28
- package/dist/platform/auth/index.mjs +5 -5
- package/dist/platform/billing/index.d.mts +29 -0
- package/dist/platform/billing/index.d.ts +29 -0
- package/dist/platform/billing/index.js +4 -4
- package/dist/platform/billing/index.mjs +3 -3
- package/dist/platform/impersonation/index.d.mts +19 -0
- package/dist/platform/impersonation/index.d.ts +19 -0
- package/dist/platform/impersonation/index.js +4 -4
- package/dist/platform/impersonation/index.mjs +3 -3
- package/dist/platform/index.d.mts +188 -0
- package/dist/platform/index.d.ts +188 -0
- package/dist/platform/index.js +89 -89
- package/dist/platform/index.mjs +19 -19
- package/dist/platform/pages/index.d.mts +440 -0
- package/dist/platform/pages/index.d.ts +440 -0
- package/dist/platform/pages/index.js +206 -206
- package/dist/platform/pages/index.js.map +1 -1
- package/dist/platform/pages/index.mjs +9 -9
- package/dist/platform/pages/index.mjs.map +1 -1
- package/dist/platform/rbac.d.mts +42 -0
- package/dist/platform/rbac.d.ts +42 -0
- package/dist/platform/settings/index.d.mts +31 -0
- package/dist/platform/settings/index.d.ts +31 -0
- package/dist/platform/settings/index.js +8 -8
- package/dist/platform/settings/index.mjs +7 -7
- package/dist/platform/telemetry/index.d.mts +51 -0
- package/dist/platform/telemetry/index.d.ts +51 -0
- package/dist/platform/utils/index.d.mts +32 -0
- package/dist/platform/utils/index.d.ts +32 -0
- package/dist/platform/windsock-admin-client.d.mts +57 -0
- package/dist/platform/windsock-admin-client.d.ts +57 -0
- package/dist/platform/workflow-api-client.d.mts +6 -0
- package/dist/platform/workflow-api-client.d.ts +6 -0
- package/dist/platform/workflow-canvas-shell.d.mts +18 -0
- package/dist/platform/workflow-canvas-shell.d.ts +18 -0
- package/dist/platform/workflow-canvas-shell.js +5 -5
- package/dist/platform/workflow-canvas-shell.mjs +4 -4
- package/dist/rule-form-BYJzyork.d.mts +128 -0
- package/dist/rule-form-BYJzyork.d.ts +128 -0
- package/dist/workflow-api-client-CpFl3WcG.d.mts +468 -0
- package/dist/workflow-api-client-uLICOanv.d.ts +468 -0
- package/dist/workflow-canvas--qaYKuMm.d.ts +113 -0
- package/dist/workflow-canvas-B80fmD_n.d.mts +113 -0
- package/dist/workflow-store-o17I6L6A.d.ts +79 -0
- package/dist/workflow-store-ppVHdMZi.d.mts +79 -0
- package/package.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
var
|
|
4
|
+
var chunkF5UDX6JA_js = require('./chunk-F5UDX6JA.js');
|
|
5
|
+
var chunkK4M4B6ME_js = require('./chunk-K4M4B6ME.js');
|
|
6
6
|
var chunkYXN2K77G_js = require('./chunk-YXN2K77G.js');
|
|
7
7
|
var chunk72SWXOD5_js = require('./chunk-72SWXOD5.js');
|
|
8
8
|
var react = require('react');
|
|
@@ -40,11 +40,11 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
|
|
|
40
40
|
const isCompact = data.displayMode === "compact";
|
|
41
41
|
if (!config) {
|
|
42
42
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
43
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
44
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
45
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
46
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
47
|
-
|
|
43
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkF5UDX6JA_js.NodeRunningIndicator, { nodeId: id }),
|
|
44
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkF5UDX6JA_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
|
|
45
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkF5UDX6JA_js.WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
|
|
46
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkF5UDX6JA_js.NodeCard, { variant: "error", nodeType: "model_provider", width: "w-[280px]", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
47
|
+
chunkF5UDX6JA_js.NodeCardHeader,
|
|
48
48
|
{
|
|
49
49
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.ExclamationTriangleIcon, { className: "h-6 w-6 text-white" }),
|
|
50
50
|
title: data.label || "Model Provider",
|
|
@@ -52,8 +52,8 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
|
|
|
52
52
|
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
53
|
}
|
|
54
54
|
) }),
|
|
55
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
56
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
55
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkF5UDX6JA_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-slate-500" }),
|
|
56
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkF5UDX6JA_js.WorkflowHandle, { type: "source", position: react$1.Position.Bottom, id: "bottom-out", colorClass: "!bg-slate-500" })
|
|
57
57
|
] });
|
|
58
58
|
}
|
|
59
59
|
const providerLabel = PROVIDER_TYPE_LABELS[config.providerType] ?? config.providerType;
|
|
@@ -62,18 +62,18 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
|
|
|
62
62
|
const isConfigured = !!(config.credentialRef || config.apiKeyRef);
|
|
63
63
|
const logo = PROVIDER_LOGOS[config.providerType];
|
|
64
64
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
65
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
66
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
67
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
65
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkF5UDX6JA_js.NodeRunningIndicator, { nodeId: id }),
|
|
66
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkF5UDX6JA_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
|
|
67
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkF5UDX6JA_js.WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
|
|
68
68
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
69
69
|
"button",
|
|
70
70
|
{
|
|
71
71
|
type: "button",
|
|
72
72
|
onClick: () => data.onEdit?.(id),
|
|
73
73
|
className: "w-full text-left",
|
|
74
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
74
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(chunkF5UDX6JA_js.NodeCard, { compact: isCompact, selected, nodeType: "model_provider", width: "w-[280px]", children: [
|
|
75
75
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
76
|
-
|
|
76
|
+
chunkF5UDX6JA_js.NodeCardHeader,
|
|
77
77
|
{
|
|
78
78
|
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
79
|
title: displayName,
|
|
@@ -81,11 +81,11 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
|
|
|
81
81
|
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
82
|
}
|
|
83
83
|
),
|
|
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(
|
|
84
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkF5UDX6JA_js.NodeCardMeta, { compact: isCompact, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [
|
|
85
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkF5UDX6JA_js.NodeCardBadge, { className: "rounded-full bg-slate-100 px-2 py-0.5 text-[10px] font-semibold text-slate-700 dark:bg-slate-500/20 dark:text-slate-300", children: providerLabel }),
|
|
86
|
+
regionLabel && /* @__PURE__ */ jsxRuntime.jsx(chunkF5UDX6JA_js.NodeCardBadge, { className: "rounded-full bg-gray-100 px-2 py-0.5 text-[10px] font-medium text-gray-600 dark:bg-white/10 dark:text-gray-300", children: regionLabel }),
|
|
87
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkF5UDX6JA_js.NodeCardBadge, { className: `rounded-full px-2 py-0.5 text-[10px] font-medium ${isConfigured ? "bg-green-100 text-green-700 dark:bg-green-500/20 dark:text-green-300" : "bg-amber-100 text-amber-700 dark:bg-amber-500/20 dark:text-amber-300"}`, children: isConfigured ? "Configured" : "Setup needed" }),
|
|
88
|
+
config.modelFilter && config.modelFilter.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(chunkF5UDX6JA_js.NodeCardBadge, { className: "rounded-full bg-gray-100 px-2 py-0.5 text-[10px] font-medium text-gray-600 dark:bg-white/10 dark:text-gray-300", children: [
|
|
89
89
|
config.modelFilter.length,
|
|
90
90
|
" models"
|
|
91
91
|
] })
|
|
@@ -93,8 +93,8 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
|
|
|
93
93
|
] })
|
|
94
94
|
}
|
|
95
95
|
),
|
|
96
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
97
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
96
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkF5UDX6JA_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-slate-500" }),
|
|
97
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkF5UDX6JA_js.WorkflowHandle, { type: "source", position: react$1.Position.Bottom, id: "bottom-out", colorClass: "!bg-slate-500" })
|
|
98
98
|
] });
|
|
99
99
|
});
|
|
100
100
|
var S3WriteFlowNode = react.memo(function S3WriteFlowNode2({ id, data, selected }) {
|
|
@@ -103,10 +103,10 @@ var S3WriteFlowNode = react.memo(function S3WriteFlowNode2({ id, data, selected
|
|
|
103
103
|
const isCompact = data.displayMode === "compact";
|
|
104
104
|
const keyPreview = config.key ? config.key.slice(0, 30) : "";
|
|
105
105
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
106
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
107
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
106
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkF5UDX6JA_js.NodeRunningIndicator, { nodeId: id }),
|
|
107
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkF5UDX6JA_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-cyan-500" }),
|
|
108
108
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
109
|
-
|
|
109
|
+
chunkF5UDX6JA_js.NodeInteractiveCard,
|
|
110
110
|
{
|
|
111
111
|
nodeId: id,
|
|
112
112
|
onEdit,
|
|
@@ -115,27 +115,27 @@ var S3WriteFlowNode = react.memo(function S3WriteFlowNode2({ id, data, selected
|
|
|
115
115
|
nodeType: "s3_write",
|
|
116
116
|
children: [
|
|
117
117
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
118
|
-
|
|
118
|
+
chunkF5UDX6JA_js.NodeCardHeader,
|
|
119
119
|
{
|
|
120
|
-
icon: /* @__PURE__ */ jsxRuntime.jsx(
|
|
120
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(chunkF5UDX6JA_js.NodeIconBubble, { tone: "s3_write", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CloudArrowUpIcon, { className: "h-5 w-5 text-white" }) }),
|
|
121
121
|
title: label,
|
|
122
122
|
description: t("s3WriteNodeDescription"),
|
|
123
123
|
compact: isCompact,
|
|
124
124
|
iconClassName: ""
|
|
125
125
|
}
|
|
126
126
|
),
|
|
127
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
127
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkF5UDX6JA_js.NodeCardMeta, { compact: isCompact, children: [
|
|
128
128
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
129
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
130
|
-
config.bucket && /* @__PURE__ */ jsxRuntime.jsx(
|
|
129
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkF5UDX6JA_js.NodeCardBadge, { tone: "s3_write", children: t("s3WriteNode") }),
|
|
130
|
+
config.bucket && /* @__PURE__ */ jsxRuntime.jsx(chunkF5UDX6JA_js.NodeCardBadge, { tone: "s3_write", soft: true, children: config.bucket }),
|
|
131
131
|
keyPreview && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: keyPreview })
|
|
132
132
|
] }),
|
|
133
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
133
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkF5UDX6JA_js.NodeCardDeleteAction, { nodeId: id, onDelete })
|
|
134
134
|
] })
|
|
135
135
|
]
|
|
136
136
|
}
|
|
137
137
|
),
|
|
138
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
138
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkF5UDX6JA_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-cyan-500" })
|
|
139
139
|
] });
|
|
140
140
|
});
|
|
141
141
|
function AnthropicModelIcon({ className }) {
|
|
@@ -199,7 +199,7 @@ function OutputSchemaBuilder({ value, onChange, depth = 0 }) {
|
|
|
199
199
|
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
200
|
/* @__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
201
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
202
|
-
|
|
202
|
+
chunkK4M4B6ME_js.Button,
|
|
203
203
|
{
|
|
204
204
|
type: "button",
|
|
205
205
|
outline: true,
|
|
@@ -263,7 +263,7 @@ function OutputSchemaBuilder({ value, onChange, depth = 0 }) {
|
|
|
263
263
|
},
|
|
264
264
|
index
|
|
265
265
|
)),
|
|
266
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
266
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkK4M4B6ME_js.Button, { type: "button", outline: true, onClick: addField, children: "+ Add field" })
|
|
267
267
|
] })
|
|
268
268
|
] });
|
|
269
269
|
}
|
|
@@ -286,7 +286,7 @@ function FieldEditor({
|
|
|
286
286
|
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
287
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[1fr_140px_auto_auto] items-end gap-2", children: [
|
|
288
288
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
289
|
-
|
|
289
|
+
chunkK4M4B6ME_js.FormInput,
|
|
290
290
|
{
|
|
291
291
|
label: "Name",
|
|
292
292
|
value: field.name,
|
|
@@ -295,7 +295,7 @@ function FieldEditor({
|
|
|
295
295
|
}
|
|
296
296
|
),
|
|
297
297
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
298
|
-
|
|
298
|
+
chunkK4M4B6ME_js.FormSelect,
|
|
299
299
|
{
|
|
300
300
|
label: "Type",
|
|
301
301
|
value: field.type,
|
|
@@ -315,10 +315,10 @@ function FieldEditor({
|
|
|
315
315
|
),
|
|
316
316
|
"Required"
|
|
317
317
|
] }),
|
|
318
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
318
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkK4M4B6ME_js.Button, { type: "button", plain: true, onClick: onRemove, children: "Remove" })
|
|
319
319
|
] }),
|
|
320
320
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
321
|
-
|
|
321
|
+
chunkK4M4B6ME_js.FormInput,
|
|
322
322
|
{
|
|
323
323
|
label: "Description (optional)",
|
|
324
324
|
value: field.description,
|
|
@@ -611,13 +611,13 @@ function AgentCapabilityCard({ elo, setElo, models, selectedModelId, setSelected
|
|
|
611
611
|
] });
|
|
612
612
|
}
|
|
613
613
|
function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFramework, setSelectedFramework, markDirty, connectedProviderTypes }) {
|
|
614
|
-
const frameworkKeys = Object.keys(
|
|
614
|
+
const frameworkKeys = Object.keys(chunkF5UDX6JA_js.FRAMEWORK_META);
|
|
615
615
|
const hasProviderConstraints = connectedProviderTypes.length > 0;
|
|
616
|
-
const compatibleModels =
|
|
616
|
+
const compatibleModels = chunkF5UDX6JA_js.getCompatibleModels(models, selectedFramework);
|
|
617
617
|
const handleFrameworkChange = react.useCallback((newFramework) => {
|
|
618
618
|
setSelectedFramework(newFramework);
|
|
619
|
-
if (!
|
|
620
|
-
const compatible =
|
|
619
|
+
if (!chunkF5UDX6JA_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
|
|
620
|
+
const compatible = chunkF5UDX6JA_js.getCompatibleModels(models, newFramework);
|
|
621
621
|
if (compatible.length > 0) {
|
|
622
622
|
setSelectedModelId(compatible[0].id);
|
|
623
623
|
}
|
|
@@ -628,10 +628,10 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
|
|
|
628
628
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
629
629
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-gray-500 dark:text-gray-400", children: t("agentDrawer.framework") }),
|
|
630
630
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1.5", children: frameworkKeys.map((key) => {
|
|
631
|
-
const meta =
|
|
631
|
+
const meta = chunkF5UDX6JA_js.FRAMEWORK_META[key];
|
|
632
632
|
const isSelected = key === selectedFramework;
|
|
633
|
-
const compatCount =
|
|
634
|
-
const isCompatibleWithProviders = !hasProviderConstraints ||
|
|
633
|
+
const compatCount = chunkF5UDX6JA_js.getCompatibleModels(models, key).length;
|
|
634
|
+
const isCompatibleWithProviders = !hasProviderConstraints || chunkF5UDX6JA_js.isFrameworkCompatibleWithProviders(key, connectedProviderTypes);
|
|
635
635
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
636
636
|
"button",
|
|
637
637
|
{
|
|
@@ -663,7 +663,7 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
|
|
|
663
663
|
] }),
|
|
664
664
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-2", children: models.map((model) => {
|
|
665
665
|
const isSelected = model.id === selectedModelId;
|
|
666
|
-
const isCompatible =
|
|
666
|
+
const isCompatible = chunkF5UDX6JA_js.isModelCompatibleWithFramework(model.id, selectedFramework);
|
|
667
667
|
const { IconComponent, color, providerLabel } = getModelIcon(model.id);
|
|
668
668
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
669
669
|
"button",
|
|
@@ -821,7 +821,7 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
|
|
|
821
821
|
] }),
|
|
822
822
|
tool.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: tool.description }),
|
|
823
823
|
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 =
|
|
824
|
+
const meta = chunkF5UDX6JA_js.getFrameworkMeta(framework);
|
|
825
825
|
const isCurrentFw = framework === agentFramework;
|
|
826
826
|
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
827
|
/* @__PURE__ */ jsxRuntime.jsx(meta.IconComponent, { className: "h-2.5 w-2.5" }),
|
|
@@ -838,7 +838,7 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
|
|
|
838
838
|
event.stopPropagation();
|
|
839
839
|
},
|
|
840
840
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
841
|
-
|
|
841
|
+
chunkK4M4B6ME_js.ToggleSwitch,
|
|
842
842
|
{
|
|
843
843
|
checked: isEnabled,
|
|
844
844
|
onChange: () => onToggle(tool.agentToolId),
|
|
@@ -886,7 +886,7 @@ function EngineTab({
|
|
|
886
886
|
const compatibleProviders = findCompatibleProviders(selectedModelId, modelProviders);
|
|
887
887
|
const configuredCompatible = compatibleProviders.filter((p) => p.configured);
|
|
888
888
|
const effectiveProvider = compatibleProviders.find((p) => p.id === selectedProviderId) ?? configuredCompatible[0] ?? compatibleProviders[0];
|
|
889
|
-
const frameworkMeta =
|
|
889
|
+
const frameworkMeta = chunkF5UDX6JA_js.getFrameworkMeta(selectedFramework);
|
|
890
890
|
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
891
|
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
892
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 pb-3 pt-4", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1030,9 +1030,9 @@ function EngineTab({
|
|
|
1030
1030
|
}
|
|
1031
1031
|
function AgentModal({ onSaved, onPersist }) {
|
|
1032
1032
|
const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
|
|
1033
|
-
const activeModal =
|
|
1034
|
-
const agentData =
|
|
1035
|
-
const closeModal =
|
|
1033
|
+
const activeModal = chunkF5UDX6JA_js.useModalStore((s) => s.activeModal);
|
|
1034
|
+
const agentData = chunkF5UDX6JA_js.useModalStore((s) => s.agentData);
|
|
1035
|
+
const closeModal = chunkF5UDX6JA_js.useModalStore((s) => s.closeModal);
|
|
1036
1036
|
const open = activeModal === "agent";
|
|
1037
1037
|
const agent = agentData?.agent ?? null;
|
|
1038
1038
|
const models = agentData?.models ?? [];
|
|
@@ -1180,7 +1180,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1180
1180
|
const fieldLabel = "text-[9px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400";
|
|
1181
1181
|
const avatarInitial = (displayName || agent.name).charAt(0).toUpperCase();
|
|
1182
1182
|
const avatarNode = /* @__PURE__ */ jsxRuntime.jsx(
|
|
1183
|
-
|
|
1183
|
+
chunkK4M4B6ME_js.Avatar,
|
|
1184
1184
|
{
|
|
1185
1185
|
src: effectiveAvatarUrl || void 0,
|
|
1186
1186
|
alt: displayName || agent.name,
|
|
@@ -1192,7 +1192,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1192
1192
|
const statusPill = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
1193
1193
|
/* @__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
1194
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1195
|
-
|
|
1195
|
+
chunkK4M4B6ME_js.ToggleSwitch,
|
|
1196
1196
|
{
|
|
1197
1197
|
size: "sm",
|
|
1198
1198
|
color: "green",
|
|
@@ -1206,7 +1206,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1206
1206
|
)
|
|
1207
1207
|
] });
|
|
1208
1208
|
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
|
-
|
|
1209
|
+
chunkK4M4B6ME_js.HeroBlock,
|
|
1210
1210
|
{
|
|
1211
1211
|
icon: avatarNode,
|
|
1212
1212
|
iconBackground: "none",
|
|
@@ -1269,7 +1269,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1269
1269
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `font-medium ${autosaveColor}`, children: autosaveLabel })
|
|
1270
1270
|
] });
|
|
1271
1271
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1272
|
-
|
|
1272
|
+
chunkK4M4B6ME_js.GlassModal,
|
|
1273
1273
|
{
|
|
1274
1274
|
open,
|
|
1275
1275
|
onClose: handleClose,
|
|
@@ -1286,7 +1286,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1286
1286
|
},
|
|
1287
1287
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
|
|
1288
1288
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1289
|
-
|
|
1289
|
+
chunkK4M4B6ME_js.SectionCard,
|
|
1290
1290
|
{
|
|
1291
1291
|
variant: "glass",
|
|
1292
1292
|
padded: false,
|
|
@@ -1326,7 +1326,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1326
1326
|
}
|
|
1327
1327
|
),
|
|
1328
1328
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1329
|
-
|
|
1329
|
+
chunkK4M4B6ME_js.SectionCard,
|
|
1330
1330
|
{
|
|
1331
1331
|
variant: "glass",
|
|
1332
1332
|
padded: false,
|
|
@@ -1354,7 +1354,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1354
1354
|
}
|
|
1355
1355
|
),
|
|
1356
1356
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1357
|
-
|
|
1357
|
+
chunkK4M4B6ME_js.SectionCard,
|
|
1358
1358
|
{
|
|
1359
1359
|
variant: "glass",
|
|
1360
1360
|
padded: false,
|
|
@@ -1477,7 +1477,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1477
1477
|
const markDirty = useSubworkflowStore((s) => s.markDirty);
|
|
1478
1478
|
const markSaved = useSubworkflowStore((s) => s.markSaved);
|
|
1479
1479
|
const closeModal = useSubworkflowStore((s) => s.closeModal);
|
|
1480
|
-
const agentBehind =
|
|
1480
|
+
const agentBehind = chunkF5UDX6JA_js.useModalStore((s) => s.activeModal === "agent" ? s.agentData?.agent?.name : null);
|
|
1481
1481
|
const isCreateMode = !tool?.toolId;
|
|
1482
1482
|
const initialGraph = react.useMemo(() => {
|
|
1483
1483
|
const config = tool?.config;
|
|
@@ -1506,9 +1506,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1506
1506
|
}, [tool, onSaved, name, category, description, timeoutMs, latestGraphRef, markSaved]);
|
|
1507
1507
|
if (!tool) return null;
|
|
1508
1508
|
const categoryKey = category ?? "external";
|
|
1509
|
-
const gradient = tool.color ??
|
|
1510
|
-
const categoryPill =
|
|
1511
|
-
const IconComponent =
|
|
1509
|
+
const gradient = tool.color ?? chunkF5UDX6JA_js.CATEGORY_COLORS[categoryKey] ?? chunkF5UDX6JA_js.CATEGORY_COLORS.external;
|
|
1510
|
+
const categoryPill = chunkF5UDX6JA_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunkF5UDX6JA_js.CATEGORY_PILL_COLORS.external;
|
|
1511
|
+
const IconComponent = chunkF5UDX6JA_js.ICON_MAP[tool.icon ?? ""] ?? outline.ArrowPathRoundedSquareIcon;
|
|
1512
1512
|
const graph = latestGraphRef.current;
|
|
1513
1513
|
const startNode = graph.nodes.find((n) => n.type === "start");
|
|
1514
1514
|
const endNode = graph.nodes.find((n) => n.type === "end");
|
|
@@ -1541,7 +1541,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1541
1541
|
] })
|
|
1542
1542
|
] });
|
|
1543
1543
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1544
|
-
|
|
1544
|
+
chunkK4M4B6ME_js.GlassModal,
|
|
1545
1545
|
{
|
|
1546
1546
|
open,
|
|
1547
1547
|
onClose: closeModal,
|
|
@@ -1573,7 +1573,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1573
1573
|
{
|
|
1574
1574
|
type: "button",
|
|
1575
1575
|
onClick: () => setCategory(cat),
|
|
1576
|
-
className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${
|
|
1576
|
+
className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${chunkF5UDX6JA_js.CATEGORY_PILL_COLORS[cat] ?? chunkF5UDX6JA_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
1577
|
children: cat
|
|
1578
1578
|
},
|
|
1579
1579
|
cat
|
|
@@ -1660,7 +1660,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1660
1660
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto" })
|
|
1661
1661
|
] }),
|
|
1662
1662
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1663
|
-
|
|
1663
|
+
chunkF5UDX6JA_js.WorkflowCanvas,
|
|
1664
1664
|
{
|
|
1665
1665
|
initialGraph,
|
|
1666
1666
|
agents: [],
|
|
@@ -1676,9 +1676,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1676
1676
|
}
|
|
1677
1677
|
function PipelineSettingsModal({ onSave }) {
|
|
1678
1678
|
const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
|
|
1679
|
-
const activeModal =
|
|
1680
|
-
const data =
|
|
1681
|
-
const closeModal =
|
|
1679
|
+
const activeModal = chunkF5UDX6JA_js.useModalStore((s) => s.activeModal);
|
|
1680
|
+
const data = chunkF5UDX6JA_js.useModalStore((s) => s.pipelineSettingsData);
|
|
1681
|
+
const closeModal = chunkF5UDX6JA_js.useModalStore((s) => s.closeModal);
|
|
1682
1682
|
const open = activeModal === "pipeline-settings";
|
|
1683
1683
|
const [nameValue, setNameValue] = react.useState("");
|
|
1684
1684
|
const [descriptionValue, setDescriptionValue] = react.useState("");
|
|
@@ -1740,7 +1740,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1740
1740
|
}
|
|
1741
1741
|
),
|
|
1742
1742
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1743
|
-
|
|
1743
|
+
chunkK4M4B6ME_js.Button,
|
|
1744
1744
|
{
|
|
1745
1745
|
type: "submit",
|
|
1746
1746
|
form: "pipeline-settings-form",
|
|
@@ -1755,7 +1755,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1755
1755
|
)
|
|
1756
1756
|
] });
|
|
1757
1757
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1758
|
-
|
|
1758
|
+
chunkK4M4B6ME_js.GlassModal,
|
|
1759
1759
|
{
|
|
1760
1760
|
open,
|
|
1761
1761
|
onClose: closeModal,
|
|
@@ -1769,7 +1769,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1769
1769
|
onSubmit: handleSubmit,
|
|
1770
1770
|
children: /* @__PURE__ */ jsxRuntime.jsxs("form", { id: "pipeline-settings-form", onSubmit: handleSubmit, className: "space-y-5", children: [
|
|
1771
1771
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1772
|
-
|
|
1772
|
+
chunkK4M4B6ME_js.FormInput,
|
|
1773
1773
|
{
|
|
1774
1774
|
label: t("pipelineName"),
|
|
1775
1775
|
value: nameValue,
|
|
@@ -1779,7 +1779,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1779
1779
|
}
|
|
1780
1780
|
),
|
|
1781
1781
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1782
|
-
|
|
1782
|
+
chunkK4M4B6ME_js.FormTextarea,
|
|
1783
1783
|
{
|
|
1784
1784
|
label: t("pipelineDescription"),
|
|
1785
1785
|
value: descriptionValue,
|
|
@@ -1790,7 +1790,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1790
1790
|
),
|
|
1791
1791
|
lifecycleAvailable && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1792
1792
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1793
|
-
|
|
1793
|
+
chunkK4M4B6ME_js.FormInput,
|
|
1794
1794
|
{
|
|
1795
1795
|
label: t("pipelineSlug", { _: "Slug" }),
|
|
1796
1796
|
value: slugValue,
|
|
@@ -1917,7 +1917,7 @@ function RunReplayModal({
|
|
|
1917
1917
|
}
|
|
1918
1918
|
),
|
|
1919
1919
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1920
|
-
|
|
1920
|
+
chunkK4M4B6ME_js.Button,
|
|
1921
1921
|
{
|
|
1922
1922
|
type: "submit",
|
|
1923
1923
|
form: "run-replay-form",
|
|
@@ -1932,7 +1932,7 @@ function RunReplayModal({
|
|
|
1932
1932
|
] })
|
|
1933
1933
|
] });
|
|
1934
1934
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1935
|
-
|
|
1935
|
+
chunkK4M4B6ME_js.GlassModal,
|
|
1936
1936
|
{
|
|
1937
1937
|
open,
|
|
1938
1938
|
onClose,
|
|
@@ -2006,7 +2006,7 @@ function RowEditor({
|
|
|
2006
2006
|
]
|
|
2007
2007
|
}
|
|
2008
2008
|
) : isJson ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2009
|
-
|
|
2009
|
+
chunkK4M4B6ME_js.FormTextarea,
|
|
2010
2010
|
{
|
|
2011
2011
|
value: row.value,
|
|
2012
2012
|
onValueChange: (v) => onChange({ value: v }),
|
|
@@ -2014,7 +2014,7 @@ function RowEditor({
|
|
|
2014
2014
|
className: "font-mono"
|
|
2015
2015
|
}
|
|
2016
2016
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
2017
|
-
|
|
2017
|
+
chunkK4M4B6ME_js.FormInput,
|
|
2018
2018
|
{
|
|
2019
2019
|
type: row.kind === "number" ? "number" : "text",
|
|
2020
2020
|
value: row.value,
|
|
@@ -2118,7 +2118,7 @@ function ExecutionTimelinePanel({
|
|
|
2118
2118
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate font-medium text-slate-900 dark:text-white", children: entry.nodeId }),
|
|
2119
2119
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs text-slate-500 dark:text-slate-400", children: entry.nodeType })
|
|
2120
2120
|
] }),
|
|
2121
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2121
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkK4M4B6ME_js.Badge, { color: meta.color, children: [
|
|
2122
2122
|
/* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "mr-1 h-3 w-3" }),
|
|
2123
2123
|
labels[entry.status]
|
|
2124
2124
|
] })
|
|
@@ -2148,7 +2148,7 @@ function NodeInspector({
|
|
|
2148
2148
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "truncate text-base font-semibold text-slate-900 dark:text-white", children: entry.nodeId }),
|
|
2149
2149
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: entry.nodeType })
|
|
2150
2150
|
] }),
|
|
2151
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2151
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkK4M4B6ME_js.Badge, { color: meta.color, children: labels[entry.status] })
|
|
2152
2152
|
] }),
|
|
2153
2153
|
/* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "grid grid-cols-2 gap-3 text-xs text-slate-500 dark:text-slate-400", children: [
|
|
2154
2154
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
@@ -2318,7 +2318,7 @@ function RuleConditionBuilder({ value, onChange, depth = 0 }) {
|
|
|
2318
2318
|
};
|
|
2319
2319
|
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
2320
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2321
|
-
|
|
2321
|
+
chunkK4M4B6ME_js.FormSelect,
|
|
2322
2322
|
{
|
|
2323
2323
|
label: "Operator",
|
|
2324
2324
|
value: value.operator,
|
|
@@ -2341,7 +2341,7 @@ function SimpleEditor({
|
|
|
2341
2341
|
const isTruthy = value.operator === "truthy";
|
|
2342
2342
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2343
2343
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2344
|
-
|
|
2344
|
+
chunkK4M4B6ME_js.FormInput,
|
|
2345
2345
|
{
|
|
2346
2346
|
label: "Field",
|
|
2347
2347
|
hint: "Dotted reference into the variable pool \u2014 e.g. `parse-pricing.margin`, `inputs.category`",
|
|
@@ -2351,7 +2351,7 @@ function SimpleEditor({
|
|
|
2351
2351
|
}
|
|
2352
2352
|
),
|
|
2353
2353
|
!isTruthy && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2354
|
-
|
|
2354
|
+
chunkK4M4B6ME_js.FormInput,
|
|
2355
2355
|
{
|
|
2356
2356
|
label: "Value",
|
|
2357
2357
|
hint: "Literal. Numeric operators coerce via `as f64`.",
|
|
@@ -2367,7 +2367,7 @@ function ThresholdEditor({
|
|
|
2367
2367
|
}) {
|
|
2368
2368
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-3", children: [
|
|
2369
2369
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2370
|
-
|
|
2370
|
+
chunkK4M4B6ME_js.FormInput,
|
|
2371
2371
|
{
|
|
2372
2372
|
label: "Field",
|
|
2373
2373
|
value: value.field ?? "",
|
|
@@ -2376,7 +2376,7 @@ function ThresholdEditor({
|
|
|
2376
2376
|
}
|
|
2377
2377
|
),
|
|
2378
2378
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2379
|
-
|
|
2379
|
+
chunkK4M4B6ME_js.FormSelect,
|
|
2380
2380
|
{
|
|
2381
2381
|
label: "Direction",
|
|
2382
2382
|
value: value.comparison ?? "gte",
|
|
@@ -2390,7 +2390,7 @@ function ThresholdEditor({
|
|
|
2390
2390
|
}
|
|
2391
2391
|
),
|
|
2392
2392
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2393
|
-
|
|
2393
|
+
chunkK4M4B6ME_js.FormInput,
|
|
2394
2394
|
{
|
|
2395
2395
|
label: "Threshold",
|
|
2396
2396
|
type: "number",
|
|
@@ -2407,7 +2407,7 @@ function RegexEditor({
|
|
|
2407
2407
|
}) {
|
|
2408
2408
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2409
2409
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2410
|
-
|
|
2410
|
+
chunkK4M4B6ME_js.FormInput,
|
|
2411
2411
|
{
|
|
2412
2412
|
label: "Field",
|
|
2413
2413
|
value: value.field ?? "",
|
|
@@ -2416,7 +2416,7 @@ function RegexEditor({
|
|
|
2416
2416
|
}
|
|
2417
2417
|
),
|
|
2418
2418
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2419
|
-
|
|
2419
|
+
chunkK4M4B6ME_js.FormInput,
|
|
2420
2420
|
{
|
|
2421
2421
|
label: "Pattern",
|
|
2422
2422
|
hint: "Rust regex syntax \u2014 `(?i)` etc. supported.",
|
|
@@ -2444,7 +2444,7 @@ function TimeWindowEditor({
|
|
|
2444
2444
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
2445
2445
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2446
2446
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2447
|
-
|
|
2447
|
+
chunkK4M4B6ME_js.FormSelect,
|
|
2448
2448
|
{
|
|
2449
2449
|
label: "Timezone",
|
|
2450
2450
|
value: value.timezone ?? "UTC",
|
|
@@ -2453,7 +2453,7 @@ function TimeWindowEditor({
|
|
|
2453
2453
|
}
|
|
2454
2454
|
),
|
|
2455
2455
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2456
|
-
|
|
2456
|
+
chunkK4M4B6ME_js.FormInput,
|
|
2457
2457
|
{
|
|
2458
2458
|
label: "Timestamp field (optional)",
|
|
2459
2459
|
hint: "Pulls a timestamp from the pool. Leave blank to use the run's wall-clock.",
|
|
@@ -2466,7 +2466,7 @@ function TimeWindowEditor({
|
|
|
2466
2466
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
2467
2467
|
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
2468
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2469
|
-
|
|
2469
|
+
chunkK4M4B6ME_js.FormInput,
|
|
2470
2470
|
{
|
|
2471
2471
|
label: `Start (hour)`,
|
|
2472
2472
|
type: "number",
|
|
@@ -2477,7 +2477,7 @@ function TimeWindowEditor({
|
|
|
2477
2477
|
}
|
|
2478
2478
|
),
|
|
2479
2479
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2480
|
-
|
|
2480
|
+
chunkK4M4B6ME_js.FormInput,
|
|
2481
2481
|
{
|
|
2482
2482
|
label: `End (hour)`,
|
|
2483
2483
|
type: "number",
|
|
@@ -2487,9 +2487,9 @@ function TimeWindowEditor({
|
|
|
2487
2487
|
onValueChange: (raw) => update(index, { endHour: clampHour(raw, 24) })
|
|
2488
2488
|
}
|
|
2489
2489
|
),
|
|
2490
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2490
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkK4M4B6ME_js.Button, { type: "button", plain: true, onClick: () => remove(index), children: "Remove" })
|
|
2491
2491
|
] }, index)),
|
|
2492
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2492
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkK4M4B6ME_js.Button, { type: "button", outline: true, onClick: add, children: "+ Add window" })
|
|
2493
2493
|
] })
|
|
2494
2494
|
] });
|
|
2495
2495
|
}
|
|
@@ -2512,7 +2512,7 @@ function BooleanGroupEditor({
|
|
|
2512
2512
|
});
|
|
2513
2513
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
2514
2514
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2515
|
-
|
|
2515
|
+
chunkK4M4B6ME_js.FormSelect,
|
|
2516
2516
|
{
|
|
2517
2517
|
label: "Combinator",
|
|
2518
2518
|
value: value.combinator ?? "and",
|
|
@@ -2530,9 +2530,9 @@ function BooleanGroupEditor({
|
|
|
2530
2530
|
depth
|
|
2531
2531
|
}
|
|
2532
2532
|
),
|
|
2533
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2 text-right", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2533
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2 text-right", children: /* @__PURE__ */ jsxRuntime.jsx(chunkK4M4B6ME_js.Button, { type: "button", plain: true, onClick: () => remove(index), children: "Remove operand" }) })
|
|
2534
2534
|
] }, index)),
|
|
2535
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2535
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkK4M4B6ME_js.Button, { type: "button", outline: true, onClick: add, children: "+ Add operand" })
|
|
2536
2536
|
] })
|
|
2537
2537
|
] });
|
|
2538
2538
|
}
|
|
@@ -2568,7 +2568,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2568
2568
|
};
|
|
2569
2569
|
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
2570
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2571
|
-
|
|
2571
|
+
chunkK4M4B6ME_js.FormSelect,
|
|
2572
2572
|
{
|
|
2573
2573
|
label: "Action type",
|
|
2574
2574
|
value: type,
|
|
@@ -2578,7 +2578,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2578
2578
|
),
|
|
2579
2579
|
type === "adjust_price" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2580
2580
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2581
|
-
|
|
2581
|
+
chunkK4M4B6ME_js.FormInput,
|
|
2582
2582
|
{
|
|
2583
2583
|
label: "Multiplier",
|
|
2584
2584
|
type: "number",
|
|
@@ -2588,7 +2588,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2588
2588
|
}
|
|
2589
2589
|
),
|
|
2590
2590
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2591
|
-
|
|
2591
|
+
chunkK4M4B6ME_js.FormInput,
|
|
2592
2592
|
{
|
|
2593
2593
|
label: "Reason code",
|
|
2594
2594
|
value: stringParam(params.reason),
|
|
@@ -2598,7 +2598,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2598
2598
|
)
|
|
2599
2599
|
] }),
|
|
2600
2600
|
type === "enforce_min_margin" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2601
|
-
|
|
2601
|
+
chunkK4M4B6ME_js.FormInput,
|
|
2602
2602
|
{
|
|
2603
2603
|
label: "Floor (fraction, e.g. 0.08)",
|
|
2604
2604
|
type: "number",
|
|
@@ -2608,7 +2608,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2608
2608
|
}
|
|
2609
2609
|
),
|
|
2610
2610
|
type === "realign_to_competitor" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2611
|
-
|
|
2611
|
+
chunkK4M4B6ME_js.FormInput,
|
|
2612
2612
|
{
|
|
2613
2613
|
label: "Tolerance (fraction)",
|
|
2614
2614
|
type: "number",
|
|
@@ -2618,7 +2618,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2618
2618
|
}
|
|
2619
2619
|
),
|
|
2620
2620
|
type === "request_manager_approval" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2621
|
-
|
|
2621
|
+
chunkK4M4B6ME_js.FormInput,
|
|
2622
2622
|
{
|
|
2623
2623
|
label: "Approval limit (fraction)",
|
|
2624
2624
|
type: "number",
|
|
@@ -2628,7 +2628,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2628
2628
|
}
|
|
2629
2629
|
),
|
|
2630
2630
|
type === "round_to" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2631
|
-
|
|
2631
|
+
chunkK4M4B6ME_js.FormInput,
|
|
2632
2632
|
{
|
|
2633
2633
|
label: "Step (e.g. 0.009)",
|
|
2634
2634
|
type: "number",
|
|
@@ -2639,7 +2639,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2639
2639
|
),
|
|
2640
2640
|
type === "alert" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2641
2641
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2642
|
-
|
|
2642
|
+
chunkK4M4B6ME_js.FormInput,
|
|
2643
2643
|
{
|
|
2644
2644
|
label: "Channel",
|
|
2645
2645
|
value: stringParam(params.channel),
|
|
@@ -2648,7 +2648,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2648
2648
|
}
|
|
2649
2649
|
),
|
|
2650
2650
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2651
|
-
|
|
2651
|
+
chunkK4M4B6ME_js.FormInput,
|
|
2652
2652
|
{
|
|
2653
2653
|
label: "Severity",
|
|
2654
2654
|
value: stringParam(params.severity),
|
|
@@ -2686,7 +2686,7 @@ function CustomParamsEditor({
|
|
|
2686
2686
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
2687
2687
|
entries.map(([key, value], index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[1fr_1fr_auto] items-end gap-2", children: [
|
|
2688
2688
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2689
|
-
|
|
2689
|
+
chunkK4M4B6ME_js.FormInput,
|
|
2690
2690
|
{
|
|
2691
2691
|
label: "Key",
|
|
2692
2692
|
value: key,
|
|
@@ -2694,16 +2694,16 @@ function CustomParamsEditor({
|
|
|
2694
2694
|
}
|
|
2695
2695
|
),
|
|
2696
2696
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2697
|
-
|
|
2697
|
+
chunkK4M4B6ME_js.FormInput,
|
|
2698
2698
|
{
|
|
2699
2699
|
label: "Value",
|
|
2700
2700
|
value: String(value ?? ""),
|
|
2701
2701
|
onValueChange: (raw) => update(index, key, raw)
|
|
2702
2702
|
}
|
|
2703
2703
|
),
|
|
2704
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2704
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkK4M4B6ME_js.Button, { type: "button", plain: true, onClick: () => remove(index), children: "Remove" })
|
|
2705
2705
|
] }, index)),
|
|
2706
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2706
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkK4M4B6ME_js.Button, { type: "button", outline: true, onClick: add, children: "+ Add param" })
|
|
2707
2707
|
] });
|
|
2708
2708
|
}
|
|
2709
2709
|
function numberParam(value, fallback) {
|
|
@@ -2733,9 +2733,9 @@ function RuleForm({ value, onChange }) {
|
|
|
2733
2733
|
);
|
|
2734
2734
|
const update = (key, v) => onChange({ ...value, [key]: v });
|
|
2735
2735
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
|
|
2736
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2736
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkK4M4B6ME_js.FormGrid, { children: [
|
|
2737
2737
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2738
|
-
|
|
2738
|
+
chunkK4M4B6ME_js.FormInput,
|
|
2739
2739
|
{
|
|
2740
2740
|
label: "Name",
|
|
2741
2741
|
required: true,
|
|
@@ -2744,7 +2744,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2744
2744
|
}
|
|
2745
2745
|
),
|
|
2746
2746
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2747
|
-
|
|
2747
|
+
chunkK4M4B6ME_js.FormInput,
|
|
2748
2748
|
{
|
|
2749
2749
|
label: "Priority",
|
|
2750
2750
|
type: "number",
|
|
@@ -2754,7 +2754,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2754
2754
|
}
|
|
2755
2755
|
),
|
|
2756
2756
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2757
|
-
|
|
2757
|
+
chunkK4M4B6ME_js.FormSelect,
|
|
2758
2758
|
{
|
|
2759
2759
|
label: "Enabled",
|
|
2760
2760
|
value: value.enabled ? "true" : "false",
|
|
@@ -2766,7 +2766,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2766
2766
|
}
|
|
2767
2767
|
),
|
|
2768
2768
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2769
|
-
|
|
2769
|
+
chunkK4M4B6ME_js.FormTextarea,
|
|
2770
2770
|
{
|
|
2771
2771
|
label: "Description",
|
|
2772
2772
|
rows: 2,
|
|
@@ -2778,7 +2778,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2778
2778
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
|
|
2779
2779
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
2780
2780
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-700 dark:text-slate-200", children: "Condition" }),
|
|
2781
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2781
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkK4M4B6ME_js.Badge, { color: "indigo", children: value.condition.operator })
|
|
2782
2782
|
] }),
|
|
2783
2783
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2784
2784
|
RuleConditionBuilder,
|
|
@@ -2791,7 +2791,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2791
2791
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
|
|
2792
2792
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
2793
2793
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-700 dark:text-slate-200", children: "Action on match" }),
|
|
2794
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2794
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkK4M4B6ME_js.Badge, { color: "fuchsia", children: value.action.type })
|
|
2795
2795
|
] }),
|
|
2796
2796
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2797
2797
|
RuleActionBuilder,
|
|
@@ -2813,7 +2813,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2813
2813
|
),
|
|
2814
2814
|
showAdvanced && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-3 grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2815
2815
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2816
|
-
|
|
2816
|
+
chunkK4M4B6ME_js.FormInput,
|
|
2817
2817
|
{
|
|
2818
2818
|
label: "Valid from (ISO 8601)",
|
|
2819
2819
|
type: "datetime-local",
|
|
@@ -2822,7 +2822,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2822
2822
|
}
|
|
2823
2823
|
),
|
|
2824
2824
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2825
|
-
|
|
2825
|
+
chunkK4M4B6ME_js.FormInput,
|
|
2826
2826
|
{
|
|
2827
2827
|
label: "Valid until (ISO 8601)",
|
|
2828
2828
|
type: "datetime-local",
|
|
@@ -2831,7 +2831,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2831
2831
|
}
|
|
2832
2832
|
),
|
|
2833
2833
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2834
|
-
|
|
2834
|
+
chunkK4M4B6ME_js.FormSelect,
|
|
2835
2835
|
{
|
|
2836
2836
|
label: "Status",
|
|
2837
2837
|
value: value.status ?? "active",
|
|
@@ -2840,7 +2840,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2840
2840
|
}
|
|
2841
2841
|
),
|
|
2842
2842
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2843
|
-
|
|
2843
|
+
chunkK4M4B6ME_js.FormInput,
|
|
2844
2844
|
{
|
|
2845
2845
|
label: "Tags (comma-separated)",
|
|
2846
2846
|
value: (value.tags ?? []).join(", "),
|
|
@@ -3027,8 +3027,8 @@ function CollapsibleSection({ title, icon, colorClass, defaultOpen = true, count
|
|
|
3027
3027
|
] });
|
|
3028
3028
|
}
|
|
3029
3029
|
function LogicNodeItemCard({ item, translationFunction }) {
|
|
3030
|
-
const IconComponent =
|
|
3031
|
-
const gradient =
|
|
3030
|
+
const IconComponent = chunkF5UDX6JA_js.LOGIC_ICON_MAP[item.nodeType];
|
|
3031
|
+
const gradient = chunkF5UDX6JA_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-gray-400 to-gray-500";
|
|
3032
3032
|
const defaultConfig = chunk72SWXOD5_js.createDefaultLogicNodeConfig(item.nodeType);
|
|
3033
3033
|
const configJson = defaultConfig ? JSON.stringify(defaultConfig) : void 0;
|
|
3034
3034
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -3099,7 +3099,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3099
3099
|
[entityTypes, normalizedQuery]
|
|
3100
3100
|
);
|
|
3101
3101
|
const filteredLogicItems = react.useMemo(() => {
|
|
3102
|
-
const visibleByDefault = LOGIC_NODE_ITEMS.filter((item) => !
|
|
3102
|
+
const visibleByDefault = LOGIC_NODE_ITEMS.filter((item) => !chunkF5UDX6JA_js.EXPERIMENTAL_NODE_TYPES.has(item.nodeType));
|
|
3103
3103
|
if (!normalizedQuery) return visibleByDefault;
|
|
3104
3104
|
return visibleByDefault.filter(
|
|
3105
3105
|
(item) => t(item.nameKey).toLowerCase().includes(normalizedQuery) || t(item.descriptionKey).toLowerCase().includes(normalizedQuery)
|
|
@@ -3235,7 +3235,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3235
3235
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: tool.category })
|
|
3236
3236
|
] }),
|
|
3237
3237
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3238
|
-
|
|
3238
|
+
chunkK4M4B6ME_js.ToggleSwitch,
|
|
3239
3239
|
{
|
|
3240
3240
|
checked: Boolean(tool.enabled),
|
|
3241
3241
|
onChange: () => {
|
|
@@ -3276,7 +3276,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3276
3276
|
] })
|
|
3277
3277
|
] }),
|
|
3278
3278
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3279
|
-
|
|
3279
|
+
chunkK4M4B6ME_js.ToggleSwitch,
|
|
3280
3280
|
{
|
|
3281
3281
|
checked: Boolean(rule.enabled),
|
|
3282
3282
|
onChange: () => {
|
|
@@ -3312,8 +3312,8 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3312
3312
|
limit: entity.defaultLimit
|
|
3313
3313
|
});
|
|
3314
3314
|
const dsLogo = getDatasourceLogo(entity.id);
|
|
3315
|
-
const EntityIcon =
|
|
3316
|
-
const entityGradient =
|
|
3315
|
+
const EntityIcon = chunkF5UDX6JA_js.getEntityIcon(entity.id);
|
|
3316
|
+
const entityGradient = chunkF5UDX6JA_js.getEntityGradient(entity.id);
|
|
3317
3317
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3318
3318
|
"div",
|
|
3319
3319
|
{
|
|
@@ -3333,7 +3333,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3333
3333
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3334
3334
|
/* @__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
3335
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3336
|
-
|
|
3336
|
+
chunkK4M4B6ME_js.ToggleSwitch,
|
|
3337
3337
|
{
|
|
3338
3338
|
checked: true,
|
|
3339
3339
|
onChange: () => {
|
|
@@ -3668,9 +3668,9 @@ function formatDuration2(durationMs) {
|
|
|
3668
3668
|
}
|
|
3669
3669
|
function RunPanel({ open, onClose, onRun, onStop }) {
|
|
3670
3670
|
const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.runPanel");
|
|
3671
|
-
const nodes =
|
|
3672
|
-
const isRunning =
|
|
3673
|
-
const nodeResults =
|
|
3671
|
+
const nodes = chunkF5UDX6JA_js.useWorkflowStore((state) => state.nodes);
|
|
3672
|
+
const isRunning = chunkF5UDX6JA_js.useWorkflowStore((state) => state.isRunning);
|
|
3673
|
+
const nodeResults = chunkF5UDX6JA_js.useWorkflowStore((state) => state.nodeResults);
|
|
3674
3674
|
const startNode = nodes.find((node) => node.type === "start");
|
|
3675
3675
|
const hasEndNode = nodes.some((node) => node.type === "end");
|
|
3676
3676
|
const hasValidStartConfig = Boolean(
|
|
@@ -4001,8 +4001,8 @@ function inferVariables(config, nodeType) {
|
|
|
4001
4001
|
}
|
|
4002
4002
|
function VariableInspector({ open, onClose }) {
|
|
4003
4003
|
const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.variableInspector");
|
|
4004
|
-
const nodes =
|
|
4005
|
-
const edges =
|
|
4004
|
+
const nodes = chunkF5UDX6JA_js.useWorkflowStore((state) => state.nodes);
|
|
4005
|
+
const edges = chunkF5UDX6JA_js.useWorkflowStore((state) => state.edges);
|
|
4006
4006
|
const [expandedNodes, setExpandedNodes] = react.useState(/* @__PURE__ */ new Set());
|
|
4007
4007
|
const toggleNodeExpansion = react.useCallback((nodeId) => {
|
|
4008
4008
|
setExpandedNodes((current) => {
|
|
@@ -4064,8 +4064,8 @@ function VariableInspector({ open, onClose }) {
|
|
|
4064
4064
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-gray-500 dark:text-gray-400", children: translations("noNodes") })
|
|
4065
4065
|
] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-gray-100 dark:divide-gray-800", children: nodeVariableEntries.map((entry) => {
|
|
4066
4066
|
const isExpanded = expandedNodes.has(entry.nodeId);
|
|
4067
|
-
const IconComponent =
|
|
4068
|
-
const gradient =
|
|
4067
|
+
const IconComponent = chunkF5UDX6JA_js.LOGIC_ICON_MAP[entry.nodeType];
|
|
4068
|
+
const gradient = chunkF5UDX6JA_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-gray-400 to-gray-500";
|
|
4069
4069
|
const inputVariables = entry.variables.filter((variable) => variable.direction === "input");
|
|
4070
4070
|
const outputVariables = entry.variables.filter((variable) => variable.direction === "output");
|
|
4071
4071
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": `variable-node-${entry.nodeId}`, children: [
|
|
@@ -4131,7 +4131,7 @@ function RunInputDialog({
|
|
|
4131
4131
|
onRun
|
|
4132
4132
|
}) {
|
|
4133
4133
|
const t = chunkYXN2K77G_js.useTranslations("agents.workflow.runInputDialog");
|
|
4134
|
-
const nodes =
|
|
4134
|
+
const nodes = chunkF5UDX6JA_js.useWorkflowStore((state) => state.nodes);
|
|
4135
4135
|
const [values, setValues] = react.useState({});
|
|
4136
4136
|
const inputVariableNames = react.useMemo(() => {
|
|
4137
4137
|
const storeStartNode = nodes.find((node) => node.type === "start");
|
|
@@ -4158,7 +4158,7 @@ function RunInputDialog({
|
|
|
4158
4158
|
}, [onClose]);
|
|
4159
4159
|
if (!open) return null;
|
|
4160
4160
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4161
|
-
|
|
4161
|
+
chunkK4M4B6ME_js.GlassModal,
|
|
4162
4162
|
{
|
|
4163
4163
|
open,
|
|
4164
4164
|
onClose: handleClose,
|
|
@@ -4169,7 +4169,7 @@ function RunInputDialog({
|
|
|
4169
4169
|
/* @__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
4170
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300", children: variableName }),
|
|
4171
4171
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4172
|
-
|
|
4172
|
+
chunkK4M4B6ME_js.Input,
|
|
4173
4173
|
{
|
|
4174
4174
|
value: values[variableName] ?? "",
|
|
4175
4175
|
onChange: (event) => handleValueChange(variableName, event.target.value),
|
|
@@ -4178,8 +4178,8 @@ function RunInputDialog({
|
|
|
4178
4178
|
)
|
|
4179
4179
|
] }, variableName)) }),
|
|
4180
4180
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-4 flex items-center justify-end gap-2", children: [
|
|
4181
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4182
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4181
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkK4M4B6ME_js.Button, { size: "sm", plain: true, onClick: handleClose, children: t("cancel") }),
|
|
4182
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkK4M4B6ME_js.Button, { size: "sm", gradient: true, onClick: handleSubmit, children: [
|
|
4183
4183
|
/* @__PURE__ */ jsxRuntime.jsx(outline.PlayIcon, { className: "h-3.5 w-3.5", "data-slot": "icon" }),
|
|
4184
4184
|
t("run")
|
|
4185
4185
|
] })
|
|
@@ -4212,8 +4212,8 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
|
|
|
4212
4212
|
const [isLoadingRuns, setIsLoadingRuns] = react.useState(false);
|
|
4213
4213
|
const [selectedRun, setSelectedRun] = react.useState(null);
|
|
4214
4214
|
const [selectedNode, setSelectedNode] = react.useState(null);
|
|
4215
|
-
const isRunning =
|
|
4216
|
-
const nodeResults =
|
|
4215
|
+
const isRunning = chunkF5UDX6JA_js.useWorkflowStore((state) => state.isRunning);
|
|
4216
|
+
const nodeResults = chunkF5UDX6JA_js.useWorkflowStore((state) => state.nodeResults);
|
|
4217
4217
|
const refreshRuns = react.useCallback(async () => {
|
|
4218
4218
|
setIsLoadingRuns(true);
|
|
4219
4219
|
try {
|
|
@@ -4391,7 +4391,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
|
|
|
4391
4391
|
onAutoSaveGraph(graph);
|
|
4392
4392
|
}, [onAutoSaveGraph, onGraphSnapshot]);
|
|
4393
4393
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4394
|
-
|
|
4394
|
+
chunkF5UDX6JA_js.Workspace,
|
|
4395
4395
|
{
|
|
4396
4396
|
...workspaceProps,
|
|
4397
4397
|
onGraphChange: handleGraphChange
|
|
@@ -4399,7 +4399,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
|
|
|
4399
4399
|
);
|
|
4400
4400
|
});
|
|
4401
4401
|
function DynamicIslandConfirm2(props) {
|
|
4402
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4402
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkK4M4B6ME_js.DynamicIslandConfirm, { ...props });
|
|
4403
4403
|
}
|
|
4404
4404
|
var JSON_PREVIEW_LINE_LIMIT = 50;
|
|
4405
4405
|
function DslExportModal({ open, onClose, workflow, graph }) {
|
|
@@ -4453,7 +4453,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
|
|
|
4453
4453
|
}, [jsonString, workflow.name, workflow.version]);
|
|
4454
4454
|
if (!open) return null;
|
|
4455
4455
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4456
|
-
|
|
4456
|
+
chunkK4M4B6ME_js.GlassModal,
|
|
4457
4457
|
{
|
|
4458
4458
|
open,
|
|
4459
4459
|
onClose,
|
|
@@ -4495,7 +4495,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
|
|
|
4495
4495
|
] }),
|
|
4496
4496
|
/* @__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
4497
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4498
|
-
|
|
4498
|
+
chunkK4M4B6ME_js.Button,
|
|
4499
4499
|
{
|
|
4500
4500
|
type: "button",
|
|
4501
4501
|
onClick: handleCopyToClipboard,
|
|
@@ -4512,7 +4512,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
|
|
|
4512
4512
|
}
|
|
4513
4513
|
),
|
|
4514
4514
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4515
|
-
|
|
4515
|
+
chunkK4M4B6ME_js.Button,
|
|
4516
4516
|
{
|
|
4517
4517
|
type: "button",
|
|
4518
4518
|
onClick: handleDownloadJson,
|
|
@@ -4671,7 +4671,7 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4671
4671
|
}, []);
|
|
4672
4672
|
if (!open) return null;
|
|
4673
4673
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4674
|
-
|
|
4674
|
+
chunkK4M4B6ME_js.GlassModal,
|
|
4675
4675
|
{
|
|
4676
4676
|
open,
|
|
4677
4677
|
onClose,
|
|
@@ -4711,7 +4711,7 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4711
4711
|
) : /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": "import-validation-result", children: [
|
|
4712
4712
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4 flex items-center justify-between", children: [
|
|
4713
4713
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: fileName }),
|
|
4714
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4714
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkK4M4B6ME_js.Button, { type: "button", plain: true, size: "sm", onClick: handleReset, children: translations("chooseAnother") })
|
|
4715
4715
|
] }),
|
|
4716
4716
|
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
4717
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
@@ -4739,9 +4739,9 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4739
4739
|
] })
|
|
4740
4740
|
] }) }),
|
|
4741
4741
|
/* @__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(
|
|
4742
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkK4M4B6ME_js.Button, { type: "button", onClick: onClose, outline: true, size: "sm", "data-testid": "import-cancel-button", children: translations("cancel") }),
|
|
4743
4743
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4744
|
-
|
|
4744
|
+
chunkK4M4B6ME_js.Button,
|
|
4745
4745
|
{
|
|
4746
4746
|
type: "button",
|
|
4747
4747
|
onClick: handleImport,
|
|
@@ -4762,14 +4762,14 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4762
4762
|
}
|
|
4763
4763
|
|
|
4764
4764
|
// 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 = () =>
|
|
4765
|
+
var useCanUndo = () => chunkF5UDX6JA_js.useWorkflowStore((state) => state.past.length > 0);
|
|
4766
|
+
var useCanRedo = () => chunkF5UDX6JA_js.useWorkflowStore((state) => state.future.length > 0);
|
|
4767
|
+
var useHasCopied = () => chunkF5UDX6JA_js.useWorkflowStore((state) => state.clipboard !== null);
|
|
4768
|
+
var useContextMenu = () => chunkF5UDX6JA_js.useWorkflowStore((state) => state.contextMenu);
|
|
4769
|
+
var useEditingNodeId = () => chunkF5UDX6JA_js.useWorkflowStore((state) => state.editingNodeId);
|
|
4770
|
+
var useSelectedNodeCount = () => chunkF5UDX6JA_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
|
|
4771
|
+
var useIsRunning = () => chunkF5UDX6JA_js.useWorkflowStore((state) => state.isRunning);
|
|
4772
|
+
var useNodeResults = () => chunkF5UDX6JA_js.useWorkflowStore((state) => state.nodeResults);
|
|
4773
4773
|
var DEFAULT_MAX_HISTORY = 50;
|
|
4774
4774
|
function useUndoRedo(nodes, edges, setNodes, setEdges, maxHistory = DEFAULT_MAX_HISTORY) {
|
|
4775
4775
|
const pastRef = react.useRef([]);
|
|
@@ -5093,5 +5093,5 @@ exports.useNodeResults = useNodeResults;
|
|
|
5093
5093
|
exports.useSelectedNodeCount = useSelectedNodeCount;
|
|
5094
5094
|
exports.useSubworkflowStore = useSubworkflowStore;
|
|
5095
5095
|
exports.useUndoRedo = useUndoRedo;
|
|
5096
|
-
//# sourceMappingURL=chunk-
|
|
5097
|
-
//# sourceMappingURL=chunk-
|
|
5096
|
+
//# sourceMappingURL=chunk-PYQLY2RH.js.map
|
|
5097
|
+
//# sourceMappingURL=chunk-PYQLY2RH.js.map
|