@datatechsolutions/ui 3.13.0 → 3.13.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/graph-node.js +6 -6
- package/dist/astrlabe/graph-node.mjs +2 -2
- package/dist/astrlabe/index.js +113 -113
- package/dist/astrlabe/index.mjs +5 -5
- package/dist/astrlabe/workflow-canvas.js +5 -5
- package/dist/astrlabe/workflow-canvas.mjs +4 -4
- package/dist/{chunk-CSOMZ5UM.mjs → chunk-3VCSMSJB.mjs} +5 -5
- package/dist/{chunk-CSOMZ5UM.mjs.map → chunk-3VCSMSJB.mjs.map} +1 -1
- package/dist/{chunk-KWH7JIRP.mjs → chunk-4MNKVDTJ.mjs} +9 -8
- package/dist/chunk-4MNKVDTJ.mjs.map +1 -0
- package/dist/{chunk-ZRCXDKBE.mjs → chunk-4QCO4CBC.mjs} +4 -4
- package/dist/{chunk-ZRCXDKBE.mjs.map → chunk-4QCO4CBC.mjs.map} +1 -1
- package/dist/{chunk-VIB42VMZ.mjs → chunk-4VEQJAXJ.mjs} +5 -5
- package/dist/{chunk-VIB42VMZ.mjs.map → chunk-4VEQJAXJ.mjs.map} +1 -1
- package/dist/{chunk-D5OTZGA2.js → chunk-4Z5NZINA.js} +373 -422
- package/dist/chunk-4Z5NZINA.js.map +1 -0
- package/dist/{chunk-K5567JM5.js → chunk-54T5F65C.js} +26 -26
- package/dist/{chunk-K5567JM5.js.map → chunk-54T5F65C.js.map} +1 -1
- package/dist/{chunk-IIRS5XZY.js → chunk-7IAWXG43.js} +33 -33
- package/dist/{chunk-IIRS5XZY.js.map → chunk-7IAWXG43.js.map} +1 -1
- package/dist/{chunk-N4YT3QA5.js → chunk-AC54BNSK.js} +13 -13
- package/dist/{chunk-N4YT3QA5.js.map → chunk-AC54BNSK.js.map} +1 -1
- package/dist/{chunk-OY5HUZSD.js → chunk-B3TA74C4.js} +91 -91
- package/dist/chunk-B3TA74C4.js.map +1 -0
- package/dist/{chunk-PPIUMCUZ.js → chunk-CKY2QIRR.js} +4 -4
- package/dist/{chunk-PPIUMCUZ.js.map → chunk-CKY2QIRR.js.map} +1 -1
- package/dist/{chunk-EZQ2D47U.js → chunk-CVEI4RQP.js} +4 -4
- package/dist/{chunk-EZQ2D47U.js.map → chunk-CVEI4RQP.js.map} +1 -1
- package/dist/{chunk-OC4AOYU5.mjs → chunk-DJHNSBIR.mjs} +62 -99
- package/dist/chunk-DJHNSBIR.mjs.map +1 -0
- package/dist/{chunk-P4RVGMZL.js → chunk-DTFU3ZTD.js} +5 -33
- package/dist/chunk-DTFU3ZTD.js.map +1 -0
- package/dist/{chunk-BHOT22QL.js → chunk-EBARYRSA.js} +2 -2
- package/dist/{chunk-BHOT22QL.js.map → chunk-EBARYRSA.js.map} +1 -1
- package/dist/{chunk-QGLGQXJE.js → chunk-FV42SSLP.js} +10 -10
- package/dist/chunk-FV42SSLP.js.map +1 -0
- package/dist/{chunk-AHNH2PMI.mjs → chunk-M4KRQXOT.mjs} +3 -3
- package/dist/{chunk-AHNH2PMI.mjs.map → chunk-M4KRQXOT.mjs.map} +1 -1
- package/dist/{chunk-WR55H7DH.mjs → chunk-O4RZCDP2.mjs} +2 -2
- package/dist/{chunk-WR55H7DH.mjs.map → chunk-O4RZCDP2.mjs.map} +1 -1
- package/dist/{chunk-6YTYD4P5.js → chunk-PM7A5I3X.js} +135 -172
- package/dist/chunk-PM7A5I3X.js.map +1 -0
- package/dist/{chunk-SDYKXLCU.js → chunk-Q7QPHZOV.js} +63 -63
- package/dist/{chunk-SDYKXLCU.js.map → chunk-Q7QPHZOV.js.map} +1 -1
- package/dist/{chunk-MSKKNPRE.mjs → chunk-QEACOJXX.mjs} +73 -73
- package/dist/chunk-QEACOJXX.mjs.map +1 -0
- package/dist/{chunk-6KDTVSZT.mjs → chunk-RMPXGEFL.mjs} +10 -9
- package/dist/chunk-RMPXGEFL.mjs.map +1 -0
- package/dist/{chunk-WOTKBKS6.js → chunk-RPNMDGRA.js} +44 -44
- package/dist/chunk-RPNMDGRA.js.map +1 -0
- package/dist/{chunk-UPYACFZJ.mjs → chunk-RSCRIDMW.mjs} +274 -312
- package/dist/chunk-RSCRIDMW.mjs.map +1 -0
- package/dist/{chunk-NF5DDM5V.js → chunk-RUZPOHJW.js} +43 -42
- package/dist/chunk-RUZPOHJW.js.map +1 -0
- package/dist/{chunk-5ETT54QS.js → chunk-RWZ2PLMQ.js} +142 -142
- package/dist/chunk-RWZ2PLMQ.js.map +1 -0
- package/dist/{chunk-ANFSQJNI.mjs → chunk-SCGICCQM.mjs} +14 -14
- package/dist/chunk-SCGICCQM.mjs.map +1 -0
- package/dist/{chunk-UXHJS2SH.mjs → chunk-TRNDFSM6.mjs} +273 -322
- package/dist/chunk-TRNDFSM6.mjs.map +1 -0
- package/dist/{chunk-VI4IUTMX.js → chunk-ULSG4JLR.js} +6 -6
- package/dist/{chunk-VI4IUTMX.js.map → chunk-ULSG4JLR.js.map} +1 -1
- package/dist/{chunk-MQDCUBVW.js → chunk-UPWJRCAD.js} +430 -468
- package/dist/chunk-UPWJRCAD.js.map +1 -0
- package/dist/{chunk-AKWCT53S.mjs → chunk-UUTTS3VV.mjs} +44 -44
- package/dist/chunk-UUTTS3VV.mjs.map +1 -0
- package/dist/{chunk-AMCFAGK3.js → chunk-VCL5LDS5.js} +42 -41
- package/dist/chunk-VCL5LDS5.js.map +1 -0
- package/dist/{chunk-PLTLRL2V.mjs → chunk-VPRAESA7.mjs} +3 -3
- package/dist/{chunk-PLTLRL2V.mjs.map → chunk-VPRAESA7.mjs.map} +1 -1
- package/dist/{chunk-2ECLDHAT.js → chunk-VWZ53TE2.js} +9 -9
- package/dist/{chunk-2ECLDHAT.js.map → chunk-VWZ53TE2.js.map} +1 -1
- package/dist/{chunk-3VYD7QL2.mjs → chunk-WX44DAQD.mjs} +9 -9
- package/dist/chunk-WX44DAQD.mjs.map +1 -0
- package/dist/{chunk-DJ33CSGJ.mjs → chunk-XYMHIZ3K.mjs} +5 -33
- package/dist/chunk-XYMHIZ3K.mjs.map +1 -0
- package/dist/{chunk-4VHFGW7I.mjs → chunk-Y65X2NHF.mjs} +3 -3
- package/dist/{chunk-4VHFGW7I.mjs.map → chunk-Y65X2NHF.mjs.map} +1 -1
- package/dist/{chunk-7TYNV6SY.mjs → chunk-YHD6SJIN.mjs} +14 -14
- package/dist/{chunk-7TYNV6SY.mjs.map → chunk-YHD6SJIN.mjs.map} +1 -1
- package/dist/{chunk-QGRTV35L.mjs → chunk-ZPV7X4ZE.mjs} +6 -6
- package/dist/{chunk-QGRTV35L.mjs.map → chunk-ZPV7X4ZE.mjs.map} +1 -1
- package/dist/index.js +703 -703
- package/dist/index.mjs +2 -2
- package/dist/platform/admin/index.js +11 -11
- package/dist/platform/admin/index.mjs +5 -5
- package/dist/platform/agents-workspace.js +8 -8
- package/dist/platform/agents-workspace.mjs +7 -7
- package/dist/platform/app-shell.js +4 -4
- package/dist/platform/app-shell.mjs +3 -3
- package/dist/platform/auth/index.js +28 -28
- package/dist/platform/auth/index.mjs +5 -5
- package/dist/platform/billing/index.js +6 -6
- package/dist/platform/billing/index.mjs +4 -4
- package/dist/platform/impersonation/index.js +4 -4
- package/dist/platform/impersonation/index.mjs +3 -3
- package/dist/platform/index.js +101 -101
- package/dist/platform/index.js.map +1 -1
- package/dist/platform/index.mjs +29 -29
- package/dist/platform/index.mjs.map +1 -1
- package/dist/platform/pages/index.d.mts +12 -2
- package/dist/platform/pages/index.d.ts +12 -2
- package/dist/platform/pages/index.js +450 -449
- package/dist/platform/pages/index.js.map +1 -1
- package/dist/platform/pages/index.mjs +50 -49
- package/dist/platform/pages/index.mjs.map +1 -1
- package/dist/platform/settings/index.js +8 -8
- package/dist/platform/settings/index.mjs +7 -7
- package/dist/platform/workflow-canvas-shell.js +6 -6
- package/dist/platform/workflow-canvas-shell.mjs +5 -5
- package/package.json +1 -1
- package/dist/chunk-3VYD7QL2.mjs.map +0 -1
- package/dist/chunk-5ETT54QS.js.map +0 -1
- package/dist/chunk-6KDTVSZT.mjs.map +0 -1
- package/dist/chunk-6YTYD4P5.js.map +0 -1
- package/dist/chunk-AKWCT53S.mjs.map +0 -1
- package/dist/chunk-AMCFAGK3.js.map +0 -1
- package/dist/chunk-ANFSQJNI.mjs.map +0 -1
- package/dist/chunk-D5OTZGA2.js.map +0 -1
- package/dist/chunk-DJ33CSGJ.mjs.map +0 -1
- package/dist/chunk-KWH7JIRP.mjs.map +0 -1
- package/dist/chunk-MQDCUBVW.js.map +0 -1
- package/dist/chunk-MSKKNPRE.mjs.map +0 -1
- package/dist/chunk-NF5DDM5V.js.map +0 -1
- package/dist/chunk-OC4AOYU5.mjs.map +0 -1
- package/dist/chunk-OY5HUZSD.js.map +0 -1
- package/dist/chunk-P4RVGMZL.js.map +0 -1
- package/dist/chunk-QGLGQXJE.js.map +0 -1
- package/dist/chunk-UPYACFZJ.mjs.map +0 -1
- package/dist/chunk-UXHJS2SH.mjs.map +0 -1
- package/dist/chunk-WOTKBKS6.js.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
var
|
|
4
|
+
var chunk4Z5NZINA_js = require('./chunk-4Z5NZINA.js');
|
|
5
|
+
var chunkRWZ2PLMQ_js = require('./chunk-RWZ2PLMQ.js');
|
|
6
6
|
var chunkY5VN4SPH_js = require('./chunk-Y5VN4SPH.js');
|
|
7
|
-
var
|
|
7
|
+
var chunkEBARYRSA_js = require('./chunk-EBARYRSA.js');
|
|
8
8
|
var chunk72SWXOD5_js = require('./chunk-72SWXOD5.js');
|
|
9
9
|
var react = require('react');
|
|
10
10
|
var react$1 = require('@xyflow/react');
|
|
@@ -41,11 +41,11 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
|
|
|
41
41
|
const isCompact = data.displayMode === "compact";
|
|
42
42
|
if (!config) {
|
|
43
43
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
44
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
45
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
46
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
47
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
48
|
-
|
|
44
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunk4Z5NZINA_js.NodeRunningIndicator, { nodeId: id }),
|
|
45
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunk4Z5NZINA_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
|
|
46
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunk4Z5NZINA_js.WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
|
|
47
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunk4Z5NZINA_js.NodeCard, { variant: "error", nodeType: "model_provider", width: "w-[280px]", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
48
|
+
chunk4Z5NZINA_js.NodeCardHeader,
|
|
49
49
|
{
|
|
50
50
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.ExclamationTriangleIcon, { className: "h-6 w-6 text-white" }),
|
|
51
51
|
title: data.label || "Model Provider",
|
|
@@ -53,8 +53,8 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
|
|
|
53
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"
|
|
54
54
|
}
|
|
55
55
|
) }),
|
|
56
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
57
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
56
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunk4Z5NZINA_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-slate-500" }),
|
|
57
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunk4Z5NZINA_js.WorkflowHandle, { type: "source", position: react$1.Position.Bottom, id: "bottom-out", colorClass: "!bg-slate-500" })
|
|
58
58
|
] });
|
|
59
59
|
}
|
|
60
60
|
const providerLabel = PROVIDER_TYPE_LABELS[config.providerType] ?? config.providerType;
|
|
@@ -63,18 +63,18 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
|
|
|
63
63
|
const isConfigured = !!(config.credentialRef || config.apiKeyRef);
|
|
64
64
|
const logo = PROVIDER_LOGOS[config.providerType];
|
|
65
65
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
66
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
67
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
68
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
66
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunk4Z5NZINA_js.NodeRunningIndicator, { nodeId: id }),
|
|
67
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunk4Z5NZINA_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
|
|
68
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunk4Z5NZINA_js.WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
|
|
69
69
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
70
70
|
"button",
|
|
71
71
|
{
|
|
72
72
|
type: "button",
|
|
73
73
|
onClick: () => data.onEdit?.(id),
|
|
74
74
|
className: "w-full text-left",
|
|
75
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
75
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(chunk4Z5NZINA_js.NodeCard, { compact: isCompact, selected, nodeType: "model_provider", width: "w-[280px]", children: [
|
|
76
76
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
77
|
-
|
|
77
|
+
chunk4Z5NZINA_js.NodeCardHeader,
|
|
78
78
|
{
|
|
79
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" }),
|
|
80
80
|
title: displayName,
|
|
@@ -82,11 +82,11 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
|
|
|
82
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"}`
|
|
83
83
|
}
|
|
84
84
|
),
|
|
85
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
86
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
87
|
-
regionLabel && /* @__PURE__ */ jsxRuntime.jsx(
|
|
88
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
89
|
-
config.modelFilter && config.modelFilter.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
85
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunk4Z5NZINA_js.NodeCardMeta, { compact: isCompact, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [
|
|
86
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", children: providerLabel }),
|
|
87
|
+
regionLabel && /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", children: regionLabel }),
|
|
88
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: isConfigured ? "green" : "amber", size: "xs", children: isConfigured ? "Configured" : "Setup needed" }),
|
|
89
|
+
config.modelFilter && config.modelFilter.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", children: [
|
|
90
90
|
config.modelFilter.length,
|
|
91
91
|
" models"
|
|
92
92
|
] })
|
|
@@ -94,8 +94,8 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
|
|
|
94
94
|
] })
|
|
95
95
|
}
|
|
96
96
|
),
|
|
97
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
98
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
97
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunk4Z5NZINA_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-slate-500" }),
|
|
98
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunk4Z5NZINA_js.WorkflowHandle, { type: "source", position: react$1.Position.Bottom, id: "bottom-out", colorClass: "!bg-slate-500" })
|
|
99
99
|
] });
|
|
100
100
|
});
|
|
101
101
|
var S3WriteFlowNode = react.memo(function S3WriteFlowNode2({ id, data, selected }) {
|
|
@@ -104,10 +104,10 @@ var S3WriteFlowNode = react.memo(function S3WriteFlowNode2({ id, data, selected
|
|
|
104
104
|
const isCompact = data.displayMode === "compact";
|
|
105
105
|
const keyPreview = config.key ? config.key.slice(0, 30) : "";
|
|
106
106
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
107
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
108
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
107
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunk4Z5NZINA_js.NodeRunningIndicator, { nodeId: id }),
|
|
108
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunk4Z5NZINA_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-cyan-500" }),
|
|
109
109
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
110
|
-
|
|
110
|
+
chunk4Z5NZINA_js.NodeInteractiveCard,
|
|
111
111
|
{
|
|
112
112
|
nodeId: id,
|
|
113
113
|
onEdit,
|
|
@@ -116,27 +116,27 @@ var S3WriteFlowNode = react.memo(function S3WriteFlowNode2({ id, data, selected
|
|
|
116
116
|
nodeType: "s3_write",
|
|
117
117
|
children: [
|
|
118
118
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
119
|
-
|
|
119
|
+
chunk4Z5NZINA_js.NodeCardHeader,
|
|
120
120
|
{
|
|
121
|
-
icon: /* @__PURE__ */ jsxRuntime.jsx(
|
|
121
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(chunk4Z5NZINA_js.NodeIconBubble, { tone: "s3_write", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CloudArrowUpIcon, { className: "h-5 w-5 text-white" }) }),
|
|
122
122
|
title: label,
|
|
123
123
|
description: t("s3WriteNodeDescription"),
|
|
124
124
|
compact: isCompact,
|
|
125
125
|
iconClassName: ""
|
|
126
126
|
}
|
|
127
127
|
),
|
|
128
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
128
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunk4Z5NZINA_js.NodeCardMeta, { compact: isCompact, children: [
|
|
129
129
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
130
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
131
|
-
config.bucket && /* @__PURE__ */ jsxRuntime.jsx(
|
|
130
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunk4Z5NZINA_js.NodeCardBadge, { tone: "s3_write", children: t("s3WriteNode") }),
|
|
131
|
+
config.bucket && /* @__PURE__ */ jsxRuntime.jsx(chunk4Z5NZINA_js.NodeCardBadge, { tone: "s3_write", soft: true, children: config.bucket }),
|
|
132
132
|
keyPreview && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: keyPreview })
|
|
133
133
|
] }),
|
|
134
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
134
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunk4Z5NZINA_js.NodeCardDeleteAction, { nodeId: id, onDelete })
|
|
135
135
|
] })
|
|
136
136
|
]
|
|
137
137
|
}
|
|
138
138
|
),
|
|
139
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
139
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunk4Z5NZINA_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-cyan-500" })
|
|
140
140
|
] });
|
|
141
141
|
});
|
|
142
142
|
function AnthropicModelIcon({ className }) {
|
|
@@ -200,7 +200,7 @@ function OutputSchemaBuilder({ value, onChange, depth = 0 }) {
|
|
|
200
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: [
|
|
201
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." }),
|
|
202
202
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
203
|
-
|
|
203
|
+
chunkEBARYRSA_js.Button,
|
|
204
204
|
{
|
|
205
205
|
type: "button",
|
|
206
206
|
outline: true,
|
|
@@ -264,7 +264,7 @@ function OutputSchemaBuilder({ value, onChange, depth = 0 }) {
|
|
|
264
264
|
},
|
|
265
265
|
index
|
|
266
266
|
)),
|
|
267
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
267
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { type: "button", outline: true, onClick: addField, children: "+ Add field" })
|
|
268
268
|
] })
|
|
269
269
|
] });
|
|
270
270
|
}
|
|
@@ -287,7 +287,7 @@ function FieldEditor({
|
|
|
287
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: [
|
|
288
288
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[1fr_140px_auto_auto] items-end gap-2", children: [
|
|
289
289
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
290
|
-
|
|
290
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
291
291
|
{
|
|
292
292
|
label: "Name",
|
|
293
293
|
value: field.name,
|
|
@@ -296,7 +296,7 @@ function FieldEditor({
|
|
|
296
296
|
}
|
|
297
297
|
),
|
|
298
298
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
299
|
-
|
|
299
|
+
chunkRWZ2PLMQ_js.FormSelect,
|
|
300
300
|
{
|
|
301
301
|
label: "Type",
|
|
302
302
|
value: field.type,
|
|
@@ -316,10 +316,10 @@ function FieldEditor({
|
|
|
316
316
|
),
|
|
317
317
|
"Required"
|
|
318
318
|
] }),
|
|
319
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
319
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { type: "button", plain: true, onClick: onRemove, children: "Remove" })
|
|
320
320
|
] }),
|
|
321
321
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
322
|
-
|
|
322
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
323
323
|
{
|
|
324
324
|
label: "Description (optional)",
|
|
325
325
|
value: field.description,
|
|
@@ -501,17 +501,17 @@ function AgentCapabilityCard({ elo, setElo, models, selectedModelId, setSelected
|
|
|
501
501
|
}, [family, models, setSelectedModelId, setTemperature, onChanged]);
|
|
502
502
|
const currentFamilyEntry = family.find((entry) => selectedModelId.startsWith(entry.prefix)) ?? family[0];
|
|
503
503
|
const currentModelName = models.find((model) => model.id === selectedModelId)?.name ?? selectedModelId;
|
|
504
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mx-4 mt-4 overflow-hidden rounded-xl border border-
|
|
504
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mx-4 mt-4 overflow-hidden rounded-xl border border-slate-200/30 bg-white/40 dark:border-white/10 dark:bg-white/5", children: [
|
|
505
505
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-4 pt-3 pb-2", children: [
|
|
506
506
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-1 flex items-center justify-between", children: [
|
|
507
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] font-semibold uppercase tracking-wider text-
|
|
507
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: t("agentDrawer.capabilityRating") }),
|
|
508
508
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-baseline gap-1", children: [
|
|
509
509
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-lg font-bold tabular-nums ${tierInfo.color}`, children: elo }),
|
|
510
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-
|
|
510
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: "ELO" })
|
|
511
511
|
] })
|
|
512
512
|
] }),
|
|
513
513
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
514
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-x-0 top-1/2 h-2 -translate-y-1/2 overflow-hidden rounded-full bg-
|
|
514
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute inset-x-0 top-1/2 h-2 -translate-y-1/2 overflow-hidden rounded-full bg-slate-200 dark:bg-slate-700", children: [
|
|
515
515
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
516
516
|
"div",
|
|
517
517
|
{
|
|
@@ -522,7 +522,7 @@ function AgentCapabilityCard({ elo, setElo, models, selectedModelId, setSelected
|
|
|
522
522
|
[1200, 1600, 2e3].map((boundary) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
523
523
|
"div",
|
|
524
524
|
{
|
|
525
|
-
className: "absolute top-0 h-full w-px bg-
|
|
525
|
+
className: "absolute top-0 h-full w-px bg-slate-400/40 dark:bg-slate-500/40",
|
|
526
526
|
style: { left: `${(boundary - 800) / (2400 - 800) * 100}%` }
|
|
527
527
|
},
|
|
528
528
|
boundary
|
|
@@ -542,12 +542,12 @@ function AgentCapabilityCard({ elo, setElo, models, selectedModelId, setSelected
|
|
|
542
542
|
"aria-valuemax": 2400,
|
|
543
543
|
"aria-valuenow": elo,
|
|
544
544
|
"aria-valuetext": `${elo} ELO \u2014 ${t(`agentDrawer.tier${tierInfo.tierKey.charAt(0).toUpperCase()}${tierInfo.tierKey.slice(1)}`)}`,
|
|
545
|
-
className: "relative z-10 h-5 w-full cursor-pointer appearance-none bg-transparent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-
|
|
545
|
+
className: "relative z-10 h-5 w-full cursor-pointer appearance-none bg-transparent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:border-2 [&::-webkit-slider-thumb]:border-white [&::-webkit-slider-thumb]:shadow-lg dark:[&::-webkit-slider-thumb]:border-slate-900"
|
|
546
546
|
}
|
|
547
547
|
),
|
|
548
548
|
/* @__PURE__ */ jsxRuntime.jsx("style", { children: `input[type="range"]::-webkit-slider-thumb { background: ${elo < 1200 ? "#06b6d4" : elo < 1600 ? "#ec4899" : elo < 2e3 ? "#f59e0b" : "#10b981"}; box-shadow: 0 0 6px ${elo < 1200 ? "rgba(6,182,212,0.5)" : elo < 1600 ? "rgba(236,72,153,0.5)" : elo < 2e3 ? "rgba(245,158,11,0.5)" : "rgba(16,185,129,0.5)"}; }` })
|
|
549
549
|
] }),
|
|
550
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-0.5 flex justify-between text-[8px] text-
|
|
550
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-0.5 flex justify-between text-[8px] text-slate-400 dark:text-slate-500", children: [
|
|
551
551
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "800" }),
|
|
552
552
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "1200" }),
|
|
553
553
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "1600" }),
|
|
@@ -555,35 +555,35 @@ function AgentCapabilityCard({ elo, setElo, models, selectedModelId, setSelected
|
|
|
555
555
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "2400" })
|
|
556
556
|
] })
|
|
557
557
|
] }),
|
|
558
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-3 gap-px border-t border-
|
|
559
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-
|
|
560
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[9px] text-
|
|
561
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-semibold text-
|
|
558
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-3 gap-px border-t border-slate-200/30 bg-slate-200/30 dark:border-white/10 dark:bg-white/10", children: [
|
|
559
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-slate-900/60", children: [
|
|
560
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[9px] text-slate-400 dark:text-slate-500", children: t("agentDrawer.model") }),
|
|
561
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-semibold text-slate-900 dark:text-white", children: currentModelName })
|
|
562
562
|
] }),
|
|
563
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-
|
|
564
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[9px] text-
|
|
565
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-semibold text-
|
|
563
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-slate-900/60", children: [
|
|
564
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[9px] text-slate-400 dark:text-slate-500", children: t("agentDrawer.maxTokens") }),
|
|
565
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-semibold text-slate-900 dark:text-white", children: currentFamilyEntry.maxTokens.toLocaleString() })
|
|
566
566
|
] }),
|
|
567
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-
|
|
568
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[9px] text-
|
|
569
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-semibold text-
|
|
567
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-slate-900/60", children: [
|
|
568
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[9px] text-slate-400 dark:text-slate-500", children: t("agentDrawer.context") }),
|
|
569
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-semibold text-slate-900 dark:text-white", children: currentFamilyEntry.contextWindow })
|
|
570
570
|
] }),
|
|
571
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-
|
|
572
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[9px] text-
|
|
573
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-semibold text-
|
|
571
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-slate-900/60", children: [
|
|
572
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[9px] text-slate-400 dark:text-slate-500", children: t("agentDrawer.temperature") }),
|
|
573
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-semibold text-slate-900 dark:text-white", children: temperature.toFixed(2) })
|
|
574
574
|
] }),
|
|
575
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-
|
|
576
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[9px] text-
|
|
575
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-slate-900/60", children: [
|
|
576
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[9px] text-slate-400 dark:text-slate-500", children: t("agentDrawer.autonomy") }),
|
|
577
577
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: `text-xs font-semibold ${tierInfo.color}`, children: t(`agentDrawer.${tierInfo.autonomyKey}`) })
|
|
578
578
|
] }),
|
|
579
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-
|
|
580
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[9px] text-
|
|
581
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-semibold text-
|
|
579
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white/60 px-3 py-2 dark:bg-slate-900/60", children: [
|
|
580
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[9px] text-slate-400 dark:text-slate-500", children: t("agentDrawer.costPerTask") }),
|
|
581
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-semibold text-slate-900 dark:text-white", children: tierInfo.costPerTask })
|
|
582
582
|
] })
|
|
583
583
|
] }),
|
|
584
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-t border-
|
|
584
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-t border-slate-200/30 bg-white/60 px-4 py-2.5 dark:border-white/10 dark:bg-slate-900/60", children: [
|
|
585
585
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-1 flex items-center justify-between", children: [
|
|
586
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[9px] text-
|
|
586
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[9px] text-slate-400 dark:text-slate-500", children: t("agentDrawer.autonomyLevel") }),
|
|
587
587
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] font-semibold ${tierInfo.color}`, children: t(`agentDrawer.${tierInfo.autonomyKey}`) })
|
|
588
588
|
] }),
|
|
589
589
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-1", children: [
|
|
@@ -598,11 +598,11 @@ function AgentCapabilityCard({ elo, setElo, models, selectedModelId, setSelected
|
|
|
598
598
|
onClick: () => handleAutonomyClick(level),
|
|
599
599
|
"aria-label": t(`agentDrawer.${labelKey}`),
|
|
600
600
|
"aria-pressed": level <= tierInfo.autonomyPercent,
|
|
601
|
-
className: `h-2 flex-1 rounded-full transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-
|
|
601
|
+
className: `h-2 flex-1 rounded-full transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 ${level <= tierInfo.autonomyPercent ? `bg-gradient-to-r ${tierInfo.barColor} hover:opacity-80` : "bg-slate-200 hover:bg-slate-300 dark:bg-slate-700 dark:hover:bg-slate-600"}`
|
|
602
602
|
},
|
|
603
603
|
level
|
|
604
604
|
)) }),
|
|
605
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-1 flex justify-between text-[7px] text-
|
|
605
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-1 flex justify-between text-[7px] text-slate-400 dark:text-slate-500", children: [
|
|
606
606
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: t("agentDrawer.autonomyLow") }),
|
|
607
607
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: t("agentDrawer.autonomyMedium") }),
|
|
608
608
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: t("agentDrawer.autonomyHigh") }),
|
|
@@ -612,13 +612,13 @@ function AgentCapabilityCard({ elo, setElo, models, selectedModelId, setSelected
|
|
|
612
612
|
] });
|
|
613
613
|
}
|
|
614
614
|
function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFramework, setSelectedFramework, markDirty, connectedProviderTypes }) {
|
|
615
|
-
const frameworkKeys = Object.keys(
|
|
615
|
+
const frameworkKeys = Object.keys(chunk4Z5NZINA_js.FRAMEWORK_META);
|
|
616
616
|
const hasProviderConstraints = connectedProviderTypes.length > 0;
|
|
617
|
-
const compatibleModels =
|
|
617
|
+
const compatibleModels = chunk4Z5NZINA_js.getCompatibleModels(models, selectedFramework);
|
|
618
618
|
const handleFrameworkChange = react.useCallback((newFramework) => {
|
|
619
619
|
setSelectedFramework(newFramework);
|
|
620
|
-
if (!
|
|
621
|
-
const compatible =
|
|
620
|
+
if (!chunk4Z5NZINA_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
|
|
621
|
+
const compatible = chunk4Z5NZINA_js.getCompatibleModels(models, newFramework);
|
|
622
622
|
if (compatible.length > 0) {
|
|
623
623
|
setSelectedModelId(compatible[0].id);
|
|
624
624
|
}
|
|
@@ -627,19 +627,19 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
|
|
|
627
627
|
}, [selectedModelId, models, setSelectedFramework, setSelectedModelId, markDirty]);
|
|
628
628
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5 p-4", children: [
|
|
629
629
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
630
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-
|
|
630
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-slate-500 dark:text-slate-400", children: t("agentDrawer.framework") }),
|
|
631
631
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1.5", children: frameworkKeys.map((key) => {
|
|
632
|
-
const meta =
|
|
632
|
+
const meta = chunk4Z5NZINA_js.FRAMEWORK_META[key];
|
|
633
633
|
const isSelected = key === selectedFramework;
|
|
634
|
-
const compatCount =
|
|
635
|
-
const isCompatibleWithProviders = !hasProviderConstraints ||
|
|
634
|
+
const compatCount = chunk4Z5NZINA_js.getCompatibleModels(models, key).length;
|
|
635
|
+
const isCompatibleWithProviders = !hasProviderConstraints || chunk4Z5NZINA_js.isFrameworkCompatibleWithProviders(key, connectedProviderTypes);
|
|
636
636
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
637
637
|
"button",
|
|
638
638
|
{
|
|
639
639
|
type: "button",
|
|
640
640
|
onClick: () => handleFrameworkChange(key),
|
|
641
641
|
disabled: !isCompatibleWithProviders,
|
|
642
|
-
className: `inline-flex items-center gap-1.5 rounded-full px-3 py-1.5 text-[10px] font-semibold transition-all ${!isCompatibleWithProviders ? "cursor-not-allowed bg-
|
|
642
|
+
className: `inline-flex items-center gap-1.5 rounded-full px-3 py-1.5 text-[10px] font-semibold transition-all focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 ${!isCompatibleWithProviders ? "cursor-not-allowed bg-slate-100 text-slate-400 opacity-40 dark:bg-white/5 dark:text-slate-500" : isSelected ? `${meta.badgeColor} ring-1 ring-current/20` : "bg-slate-100 text-slate-500 hover:bg-slate-200 dark:bg-white/5 dark:text-slate-400 dark:hover:bg-white/10"}`,
|
|
643
643
|
title: !isCompatibleWithProviders ? t("agentDrawer.frameworkIncompatible") : void 0,
|
|
644
644
|
children: [
|
|
645
645
|
/* @__PURE__ */ jsxRuntime.jsx(meta.IconComponent, { className: "h-3.5 w-3.5" }),
|
|
@@ -652,9 +652,9 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
|
|
|
652
652
|
}) })
|
|
653
653
|
] }),
|
|
654
654
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
655
|
-
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "mb-2 block text-xs font-medium text-
|
|
655
|
+
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "mb-2 block text-xs font-medium text-slate-500 dark:text-slate-400", children: [
|
|
656
656
|
t("agentDrawer.model"),
|
|
657
|
-
compatibleModels.length < models.length && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-1.5 text-[10px] font-normal text-
|
|
657
|
+
compatibleModels.length < models.length && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-1.5 text-[10px] font-normal text-slate-400 dark:text-slate-500", children: [
|
|
658
658
|
"(",
|
|
659
659
|
compatibleModels.length,
|
|
660
660
|
"/",
|
|
@@ -664,7 +664,7 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
|
|
|
664
664
|
] }),
|
|
665
665
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-2", children: models.map((model) => {
|
|
666
666
|
const isSelected = model.id === selectedModelId;
|
|
667
|
-
const isCompatible =
|
|
667
|
+
const isCompatible = chunk4Z5NZINA_js.isModelCompatibleWithFramework(model.id, selectedFramework);
|
|
668
668
|
const { IconComponent, color, providerLabel } = getModelIcon(model.id);
|
|
669
669
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
670
670
|
"button",
|
|
@@ -675,12 +675,12 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
|
|
|
675
675
|
setSelectedModelId(model.id);
|
|
676
676
|
markDirty();
|
|
677
677
|
},
|
|
678
|
-
className: `flex items-center gap-2.5 rounded-xl border px-3 py-2.5 text-left transition-all ${!isCompatible ? "cursor-not-allowed border-
|
|
678
|
+
className: `flex items-center gap-2.5 rounded-xl border px-3 py-2.5 text-left transition-all focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 ${!isCompatible ? "cursor-not-allowed border-slate-200/30 opacity-35 dark:border-white/5" : isSelected ? "border-indigo-500/50 bg-indigo-50/50 ring-1 ring-indigo-500/30 dark:border-indigo-400/40 dark:bg-indigo-500/10" : "border-slate-200/50 bg-white/40 backdrop-blur-sm hover:border-slate-300 dark:border-white/10 dark:bg-white/[0.04] dark:hover:border-white/20"}`,
|
|
679
679
|
children: [
|
|
680
|
-
/* @__PURE__ */ jsxRuntime.jsx(IconComponent, { className: `h-5 w-5 flex-shrink-0 ${isSelected && isCompatible ? color : "text-
|
|
680
|
+
/* @__PURE__ */ jsxRuntime.jsx(IconComponent, { className: `h-5 w-5 flex-shrink-0 ${isSelected && isCompatible ? color : "text-slate-400 dark:text-slate-500"}` }),
|
|
681
681
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
|
|
682
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: `truncate text-xs font-semibold ${isSelected && isCompatible ? "text-
|
|
683
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-
|
|
682
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: `truncate text-xs font-semibold ${isSelected && isCompatible ? "text-slate-900 dark:text-white" : "text-slate-600 dark:text-slate-300"}`, children: model.name }),
|
|
683
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: providerLabel })
|
|
684
684
|
] })
|
|
685
685
|
]
|
|
686
686
|
},
|
|
@@ -716,11 +716,11 @@ function PromptTab({
|
|
|
716
716
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5 p-4", children: [
|
|
717
717
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
718
718
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
719
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-xs font-medium text-
|
|
720
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-bold tabular-nums text-
|
|
719
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-xs font-medium text-slate-500 dark:text-slate-400", children: t("agentDrawer.temperature") }),
|
|
720
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-bold tabular-nums text-slate-900 dark:text-white", children: temperature.toFixed(2) })
|
|
721
721
|
] }),
|
|
722
722
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
723
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-x-0 top-1/2 h-2 -translate-y-1/2 overflow-hidden rounded-full bg-
|
|
723
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-x-0 top-1/2 h-2 -translate-y-1/2 overflow-hidden rounded-full bg-slate-200 dark:bg-slate-700", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
724
724
|
"div",
|
|
725
725
|
{
|
|
726
726
|
className: "h-full rounded-full transition-all duration-300 ease-out",
|
|
@@ -739,21 +739,21 @@ function PromptTab({
|
|
|
739
739
|
"aria-label": t("agentDrawer.temperature"),
|
|
740
740
|
"aria-valuenow": temperature,
|
|
741
741
|
"aria-valuetext": `${temperature.toFixed(2)} \u2014 ${isPrecise ? t("agentDrawer.precise") : isBalanced ? t("agentDrawer.balanced") : t("agentDrawer.creative")}`,
|
|
742
|
-
className: "relative z-10 h-5 w-full cursor-pointer appearance-none bg-transparent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-
|
|
742
|
+
className: "relative z-10 h-5 w-full cursor-pointer appearance-none bg-transparent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 [&::-webkit-slider-thumb]:h-5 [&::-webkit-slider-thumb]:w-5 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:border-2 [&::-webkit-slider-thumb]:border-white [&::-webkit-slider-thumb]:shadow-lg dark:[&::-webkit-slider-thumb]:border-slate-900"
|
|
743
743
|
}
|
|
744
744
|
),
|
|
745
745
|
/* @__PURE__ */ jsxRuntime.jsx("style", { children: `input[type="range"]::-webkit-slider-thumb { background: ${isPrecise ? "#3b82f6" : isBalanced ? "#8b5cf6" : "#ec4899"}; box-shadow: 0 0 8px ${isPrecise ? "rgba(59,130,246,0.5)" : isBalanced ? "rgba(139,92,246,0.5)" : "rgba(236,72,153,0.5)"}; }` })
|
|
746
746
|
] }),
|
|
747
747
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-1 flex items-center justify-between", children: [
|
|
748
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] font-medium transition-colors ${isPrecise ? "text-blue-500" : "text-
|
|
749
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] font-medium transition-colors ${isBalanced ? "text-purple-500" : "text-
|
|
750
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] font-medium transition-colors ${isCreative ? "text-pink-500" : "text-
|
|
748
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] font-medium transition-colors ${isPrecise ? "text-blue-500" : "text-slate-400 dark:text-slate-500"}`, children: t("agentDrawer.precise") }),
|
|
749
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] font-medium transition-colors ${isBalanced ? "text-purple-500" : "text-slate-400 dark:text-slate-500"}`, children: t("agentDrawer.balanced") }),
|
|
750
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[10px] font-medium transition-colors ${isCreative ? "text-pink-500" : "text-slate-400 dark:text-slate-500"}`, children: t("agentDrawer.creative") })
|
|
751
751
|
] })
|
|
752
752
|
] }),
|
|
753
753
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
754
754
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-1 flex items-center justify-between", children: [
|
|
755
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-xs font-medium text-
|
|
756
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-
|
|
755
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-xs font-medium text-slate-500 dark:text-slate-400", children: t("agentDrawer.systemPrompt") }),
|
|
756
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: [
|
|
757
757
|
promptText.length,
|
|
758
758
|
" chars"
|
|
759
759
|
] })
|
|
@@ -764,14 +764,14 @@ function PromptTab({
|
|
|
764
764
|
value: promptText,
|
|
765
765
|
onChange: handlePromptChange,
|
|
766
766
|
rows: 12,
|
|
767
|
-
className: "w-full resize-y rounded-lg
|
|
767
|
+
className: "liquid-surface w-full resize-y rounded-lg px-3 py-2.5 font-mono text-xs leading-relaxed text-slate-700 outline-none transition-colors placeholder:text-slate-400 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:text-slate-300 dark:placeholder:text-slate-500",
|
|
768
768
|
placeholder: t("agentDrawer.systemPromptPlaceholder")
|
|
769
769
|
}
|
|
770
770
|
)
|
|
771
771
|
] }),
|
|
772
772
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
773
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-
|
|
774
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-[11px] text-
|
|
773
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-slate-500 dark:text-slate-400", children: t("agentDrawer.outputSchema", { _: "Output schema (optional)" }) }),
|
|
774
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-[11px] text-slate-400 dark:text-slate-500", children: t("agentDrawer.outputSchemaHint", {
|
|
775
775
|
_: "Define the structured JSON the model must return. The engine parses + validates and exposes it under `output.parsed`. Invalid output fails the node."
|
|
776
776
|
}) }),
|
|
777
777
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -790,8 +790,8 @@ function PromptTab({
|
|
|
790
790
|
function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
|
|
791
791
|
if (agentTools.length === 0) {
|
|
792
792
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center justify-center px-4 py-12 text-center", children: [
|
|
793
|
-
/* @__PURE__ */ jsxRuntime.jsx(outline.CommandLineIcon, { className: "mb-2 h-8 w-8 text-
|
|
794
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-
|
|
793
|
+
/* @__PURE__ */ jsxRuntime.jsx(outline.CommandLineIcon, { className: "mb-2 h-8 w-8 text-slate-400 dark:text-slate-500" }),
|
|
794
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-500 dark:text-slate-400", children: t("agentDrawer.noToolsAvailable") })
|
|
795
795
|
] });
|
|
796
796
|
}
|
|
797
797
|
const sortedTools = [...agentTools].sort((a, b) => {
|
|
@@ -802,7 +802,7 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
|
|
|
802
802
|
return 0;
|
|
803
803
|
});
|
|
804
804
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2 p-4", children: [
|
|
805
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-3 text-xs text-
|
|
805
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-3 text-xs text-slate-500 dark:text-slate-400", children: t("agentDrawer.toolsDescription") }),
|
|
806
806
|
sortedTools.map((tool) => {
|
|
807
807
|
const isEnabled = enabledToolIds.has(tool.agentToolId);
|
|
808
808
|
const isCompatible = !tool.compatibleFrameworks || tool.compatibleFrameworks.length === 0 || tool.compatibleFrameworks.includes(agentFramework);
|
|
@@ -811,26 +811,26 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
|
|
|
811
811
|
{
|
|
812
812
|
type: "button",
|
|
813
813
|
onClick: () => onToggle(tool.agentToolId),
|
|
814
|
-
className: `flex w-full items-center gap-3 rounded-xl border px-4 py-3 text-left transition-all ${!isCompatible ? "border-
|
|
814
|
+
className: `flex w-full items-center gap-3 rounded-xl border px-4 py-3 text-left transition-all focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 ${!isCompatible ? "border-slate-200/30 opacity-40 dark:border-white/5" : isEnabled ? "border-amber-500/30 bg-amber-50/50 dark:border-amber-400/20 dark:bg-amber-500/5" : "border-slate-200/50 bg-white/40 backdrop-blur-sm hover:border-slate-300 dark:border-white/10 dark:bg-white/[0.04] dark:hover:border-white/20"}`,
|
|
815
815
|
disabled: !isCompatible,
|
|
816
816
|
children: [
|
|
817
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-8 w-8 shrink-0 items-center justify-center rounded-lg ${isEnabled ? "bg-gradient-to-br from-amber-400 to-orange-500" : "bg-
|
|
817
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-8 w-8 shrink-0 items-center justify-center rounded-lg ${isEnabled ? "bg-gradient-to-br from-amber-400 to-orange-500" : "bg-slate-200 dark:bg-slate-700"}`, children: /* @__PURE__ */ jsxRuntime.jsx(outline.CommandLineIcon, { className: `h-4 w-4 ${isEnabled ? "text-white" : "text-slate-500 dark:text-slate-400"}` }) }),
|
|
818
818
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
819
819
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
820
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: `text-sm font-medium ${isEnabled ? "text-
|
|
821
|
-
!isCompatible && /* @__PURE__ */ jsxRuntime.jsx(
|
|
820
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: `text-sm font-medium ${isEnabled ? "text-slate-900 dark:text-white" : "text-slate-600 dark:text-slate-400"}`, children: tool.name }),
|
|
821
|
+
!isCompatible && /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", children: "incompatible" })
|
|
822
822
|
] }),
|
|
823
|
-
tool.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-
|
|
823
|
+
tool.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: tool.description }),
|
|
824
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) => {
|
|
825
|
-
const meta =
|
|
825
|
+
const meta = chunk4Z5NZINA_js.getFrameworkMeta(framework);
|
|
826
826
|
const isCurrentFw = framework === agentFramework;
|
|
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-
|
|
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-slate-100 text-slate-500 dark:bg-white/5 dark:text-slate-400"}`, children: [
|
|
828
828
|
/* @__PURE__ */ jsxRuntime.jsx(meta.IconComponent, { className: "h-2.5 w-2.5" }),
|
|
829
829
|
meta.label
|
|
830
830
|
] }, framework);
|
|
831
831
|
}) })
|
|
832
832
|
] }),
|
|
833
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-5 w-5 shrink-0 items-center justify-center rounded-full transition-all ${isEnabled ? "bg-amber-500 text-white" : "border border-
|
|
833
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-5 w-5 shrink-0 items-center justify-center rounded-full transition-all ${isEnabled ? "bg-amber-500 text-white" : "border border-slate-300 dark:border-slate-600"}`, children: isEnabled && /* @__PURE__ */ jsxRuntime.jsx(outline.CheckIcon, { className: "h-3 w-3" }) }),
|
|
834
834
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
835
835
|
"div",
|
|
836
836
|
{
|
|
@@ -839,7 +839,7 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
|
|
|
839
839
|
event.stopPropagation();
|
|
840
840
|
},
|
|
841
841
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
842
|
-
|
|
842
|
+
chunkRWZ2PLMQ_js.ToggleSwitch,
|
|
843
843
|
{
|
|
844
844
|
checked: isEnabled,
|
|
845
845
|
onChange: () => onToggle(tool.agentToolId),
|
|
@@ -887,8 +887,8 @@ function EngineTab({
|
|
|
887
887
|
const compatibleProviders = findCompatibleProviders(selectedModelId, modelProviders);
|
|
888
888
|
const configuredCompatible = compatibleProviders.filter((p) => p.configured);
|
|
889
889
|
const effectiveProvider = compatibleProviders.find((p) => p.id === selectedProviderId) ?? configuredCompatible[0] ?? compatibleProviders[0];
|
|
890
|
-
const frameworkMeta =
|
|
891
|
-
const inputCard = "liquid-surface w-full rounded-lg px-3 py-1.5 text-sm text-
|
|
890
|
+
const frameworkMeta = chunk4Z5NZINA_js.getFrameworkMeta(selectedFramework);
|
|
891
|
+
const inputCard = "liquid-surface w-full rounded-lg px-3 py-1.5 text-sm text-slate-800 outline-none transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:text-slate-200";
|
|
892
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: [
|
|
893
893
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 pb-3 pt-4", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
894
894
|
AgentCapabilityCard,
|
|
@@ -916,9 +916,9 @@ function EngineTab({
|
|
|
916
916
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2", children: [
|
|
917
917
|
/* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "mt-0.5 h-5 w-5 text-indigo-500 dark:text-indigo-400" }),
|
|
918
918
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
|
|
919
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-semibold text-
|
|
919
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: modelName }),
|
|
920
920
|
compatibleProviders.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-amber-600 dark:text-amber-400", children: t("agentDrawer.noProviderForFamily", { _: "Nenhum provedor configurado serve a fam\xEDlia " + family }) }) : configuredCompatible.length > 1 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-1 flex items-center gap-1.5", children: [
|
|
921
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-
|
|
921
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-slate-500 dark:text-slate-400", children: t("agentDrawer.servedVia", { _: "via" }) }),
|
|
922
922
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
923
923
|
"select",
|
|
924
924
|
{
|
|
@@ -927,22 +927,17 @@ function EngineTab({
|
|
|
927
927
|
onSelectProvider(event.target.value);
|
|
928
928
|
markDirty();
|
|
929
929
|
},
|
|
930
|
-
|
|
930
|
+
"aria-label": t("agentDrawer.servedVia", { _: "via" }),
|
|
931
|
+
className: "liquid-surface rounded-md px-2 py-0.5 text-[10px] font-semibold text-slate-900 outline-none focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:text-white",
|
|
931
932
|
children: configuredCompatible.map((p) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: p.id, children: p.name }, p.id))
|
|
932
933
|
}
|
|
933
934
|
),
|
|
934
|
-
effectiveProvider && /* @__PURE__ */ jsxRuntime.
|
|
935
|
-
|
|
936
|
-
effectiveProvider.configured ? t("agentDrawer.configured", { _: "connected" }) : t("agentDrawer.setup", { _: "setup" })
|
|
937
|
-
] })
|
|
938
|
-
] }) : /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-[10px] text-gray-500 dark:text-gray-400", children: [
|
|
935
|
+
effectiveProvider && /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: effectiveProvider.configured ? "emerald" : "amber", size: "xs", children: effectiveProvider.configured ? t("agentDrawer.configured", { _: "connected" }) : t("agentDrawer.setup", { _: "setup" }) })
|
|
936
|
+
] }) : /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-[10px] text-slate-500 dark:text-slate-400", children: [
|
|
939
937
|
t("agentDrawer.servedVia", { _: "via" }),
|
|
940
938
|
" ",
|
|
941
939
|
effectiveProvider?.name ?? family,
|
|
942
|
-
effectiveProvider && /* @__PURE__ */ jsxRuntime.
|
|
943
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `h-1 w-1 rounded-full ${effectiveProvider.configured ? "bg-emerald-500" : "bg-amber-500"}` }),
|
|
944
|
-
effectiveProvider.configured ? t("agentDrawer.configured", { _: "connected" }) : t("agentDrawer.setup", { _: "setup" })
|
|
945
|
-
] })
|
|
940
|
+
effectiveProvider && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-2 inline-flex", children: /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: effectiveProvider.configured ? "emerald" : "amber", size: "xs", children: effectiveProvider.configured ? t("agentDrawer.configured", { _: "connected" }) : t("agentDrawer.setup", { _: "setup" }) }) })
|
|
946
941
|
] })
|
|
947
942
|
] })
|
|
948
943
|
] }),
|
|
@@ -952,13 +947,13 @@ function EngineTab({
|
|
|
952
947
|
] })
|
|
953
948
|
] }) }),
|
|
954
949
|
/* @__PURE__ */ jsxRuntime.jsxs("details", { className: "group border-t border-indigo-500/15 bg-white/30 px-4 py-2.5 dark:border-indigo-400/15 dark:bg-white/[0.02]", children: [
|
|
955
|
-
/* @__PURE__ */ jsxRuntime.jsxs("summary", { className: "flex cursor-pointer items-center gap-2 text-[10px] font-semibold uppercase tracking-wider text-
|
|
950
|
+
/* @__PURE__ */ jsxRuntime.jsxs("summary", { className: "flex cursor-pointer items-center gap-2 text-[10px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: [
|
|
956
951
|
/* @__PURE__ */ jsxRuntime.jsx(outline.Cog6ToothIcon, { className: "h-3 w-3" }),
|
|
957
952
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: t("agentDrawer.overrideDerivation", { _: "Override \xB7 ajustes avan\xE7ados" }) }),
|
|
958
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto font-normal text-
|
|
959
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto hidden font-normal text-
|
|
953
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto font-normal text-slate-400 group-open:hidden", children: "\u25BE" }),
|
|
954
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto hidden font-normal text-slate-400 group-open:inline", children: "\u25B4" })
|
|
960
955
|
] }),
|
|
961
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[10px] italic text-
|
|
956
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[10px] italic text-slate-400 dark:text-slate-500", children: t("agentDrawer.overrideHint", { _: "Mude framework, modelo manual ou tokens s\xF3 se a deriva\xE7\xE3o por ELO n\xE3o atender." }) }),
|
|
962
957
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-3 space-y-4", children: [
|
|
963
958
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
964
959
|
ConfigTab,
|
|
@@ -974,13 +969,13 @@ function EngineTab({
|
|
|
974
969
|
}
|
|
975
970
|
),
|
|
976
971
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
977
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-[10px] font-semibold uppercase tracking-wider text-
|
|
972
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-[10px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: t("agentDrawer.generationParams", { _: "Par\xE2metros de gera\xE7\xE3o" }) }),
|
|
978
973
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-3 gap-2", children: [
|
|
979
974
|
{ key: "max", labelKey: "agentDrawer.maxOutputTokens", label: "Max output", value: maxOutputTokens, setter: setMaxOutputTokens, step: 1, min: 1, max: 32768 },
|
|
980
975
|
{ key: "topP", labelKey: "agentDrawer.topP", label: "Top-p", value: topP, setter: setTopP, step: 0.05, min: 0, max: 1 },
|
|
981
976
|
{ key: "topK", labelKey: "agentDrawer.topK", label: "Top-k", value: topK, setter: setTopK, step: 1, min: 0, max: 500 }
|
|
982
977
|
].map((field) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `${inputCard} flex flex-col items-center !py-2`, children: [
|
|
983
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[8px] font-semibold uppercase tracking-wider text-
|
|
978
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[8px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: t(field.labelKey, { _: field.label }) }),
|
|
984
979
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
985
980
|
"input",
|
|
986
981
|
{
|
|
@@ -993,14 +988,14 @@ function EngineTab({
|
|
|
993
988
|
field.setter(Number(event.target.value) || 0);
|
|
994
989
|
markDirty();
|
|
995
990
|
},
|
|
996
|
-
className: "w-full bg-transparent text-center text-sm font-semibold tabular-nums text-
|
|
991
|
+
className: "w-full bg-transparent text-center text-sm font-semibold tabular-nums text-slate-900 outline-none dark:text-white"
|
|
997
992
|
}
|
|
998
993
|
)
|
|
999
994
|
] }, field.key)) })
|
|
1000
995
|
] }),
|
|
1001
996
|
modelProviders.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
1002
997
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
1003
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] font-semibold uppercase tracking-wider text-
|
|
998
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: t("agentDrawer.providerCredentials", { _: "Credenciais do provedor" }) }),
|
|
1004
999
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1005
1000
|
"a",
|
|
1006
1001
|
{
|
|
@@ -1013,17 +1008,17 @@ function EngineTab({
|
|
|
1013
1008
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1", children: modelProviders.map((provider) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1014
1009
|
"div",
|
|
1015
1010
|
{
|
|
1016
|
-
className: "flex items-center gap-2 rounded-lg border border-
|
|
1011
|
+
className: "flex items-center gap-2 rounded-lg border border-slate-200/50 bg-white/40 px-3 py-1.5 dark:border-white/10 dark:bg-white/[0.04]",
|
|
1017
1012
|
children: [
|
|
1018
|
-
/* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-3 w-3 shrink-0 text-
|
|
1019
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[11px] font-semibold text-
|
|
1020
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1021
|
-
provider.apiKeyMasked && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto truncate font-mono text-[9px] text-
|
|
1013
|
+
/* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-3 w-3 shrink-0 text-slate-500 dark:text-slate-400" }),
|
|
1014
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[11px] font-semibold text-slate-900 dark:text-white", children: provider.name }),
|
|
1015
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: provider.configured ? "emerald" : "amber", size: "xs", children: provider.configured ? t("agentDrawer.configured", { _: "connected" }) : t("agentDrawer.setup", { _: "setup" }) }),
|
|
1016
|
+
provider.apiKeyMasked && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto truncate font-mono text-[9px] text-slate-400 dark:text-slate-500", title: provider.credentialRef, children: provider.apiKeyMasked })
|
|
1022
1017
|
]
|
|
1023
1018
|
},
|
|
1024
1019
|
provider.id
|
|
1025
1020
|
)) }),
|
|
1026
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-[10px] text-
|
|
1021
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-[10px] text-slate-400 dark:text-slate-500", children: selectedProviderId ? "" : t("agentDrawer.providerHint", { _: "Credenciais s\xE3o configuradas no n\xEDvel da conta. Aqui voc\xEA s\xF3 confere o que est\xE1 conectado." }) })
|
|
1027
1022
|
] })
|
|
1028
1023
|
] })
|
|
1029
1024
|
] })
|
|
@@ -1031,9 +1026,9 @@ function EngineTab({
|
|
|
1031
1026
|
}
|
|
1032
1027
|
function AgentModal({ onSaved, onPersist }) {
|
|
1033
1028
|
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
1034
|
-
const activeModal =
|
|
1035
|
-
const agentData =
|
|
1036
|
-
const closeModal =
|
|
1029
|
+
const activeModal = chunk4Z5NZINA_js.useModalStore((s) => s.activeModal);
|
|
1030
|
+
const agentData = chunk4Z5NZINA_js.useModalStore((s) => s.agentData);
|
|
1031
|
+
const closeModal = chunk4Z5NZINA_js.useModalStore((s) => s.closeModal);
|
|
1037
1032
|
const open = activeModal === "agent";
|
|
1038
1033
|
const agent = agentData?.agent ?? null;
|
|
1039
1034
|
const models = agentData?.models ?? [];
|
|
@@ -1177,11 +1172,11 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1177
1172
|
if (!agent) return null;
|
|
1178
1173
|
const sections = [];
|
|
1179
1174
|
const effectiveAvatarUrl = avatarUrl || agent.avatar;
|
|
1180
|
-
const fieldCard = "liquid-surface w-full rounded-lg px-2.5 py-1.5 text-xs text-
|
|
1175
|
+
const fieldCard = "liquid-surface w-full rounded-lg px-2.5 py-1.5 text-xs text-slate-800 outline-none transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:text-slate-200";
|
|
1181
1176
|
const fieldLabel = "text-[9px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400";
|
|
1182
1177
|
const avatarInitial = (displayName || agent.name).charAt(0).toUpperCase();
|
|
1183
1178
|
const avatarNode = /* @__PURE__ */ jsxRuntime.jsx(
|
|
1184
|
-
|
|
1179
|
+
chunkRWZ2PLMQ_js.Avatar,
|
|
1185
1180
|
{
|
|
1186
1181
|
src: effectiveAvatarUrl || void 0,
|
|
1187
1182
|
alt: displayName || agent.name,
|
|
@@ -1193,7 +1188,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1193
1188
|
const statusPill = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
1194
1189
|
/* @__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" }) }),
|
|
1195
1190
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1196
|
-
|
|
1191
|
+
chunkRWZ2PLMQ_js.ToggleSwitch,
|
|
1197
1192
|
{
|
|
1198
1193
|
size: "sm",
|
|
1199
1194
|
color: "green",
|
|
@@ -1207,7 +1202,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1207
1202
|
)
|
|
1208
1203
|
] });
|
|
1209
1204
|
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(
|
|
1210
|
-
|
|
1205
|
+
chunkRWZ2PLMQ_js.HeroBlock,
|
|
1211
1206
|
{
|
|
1212
1207
|
icon: avatarNode,
|
|
1213
1208
|
iconBackground: "none",
|
|
@@ -1270,7 +1265,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1270
1265
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `font-medium ${autosaveColor}`, children: autosaveLabel })
|
|
1271
1266
|
] });
|
|
1272
1267
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1273
|
-
|
|
1268
|
+
chunkRWZ2PLMQ_js.GlassModal,
|
|
1274
1269
|
{
|
|
1275
1270
|
open,
|
|
1276
1271
|
onClose: handleClose,
|
|
@@ -1287,7 +1282,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1287
1282
|
},
|
|
1288
1283
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
|
|
1289
1284
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1290
|
-
|
|
1285
|
+
chunkRWZ2PLMQ_js.SectionCard,
|
|
1291
1286
|
{
|
|
1292
1287
|
variant: "glass",
|
|
1293
1288
|
padded: false,
|
|
@@ -1327,7 +1322,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1327
1322
|
}
|
|
1328
1323
|
),
|
|
1329
1324
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1330
|
-
|
|
1325
|
+
chunkRWZ2PLMQ_js.SectionCard,
|
|
1331
1326
|
{
|
|
1332
1327
|
variant: "glass",
|
|
1333
1328
|
padded: false,
|
|
@@ -1355,7 +1350,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1355
1350
|
}
|
|
1356
1351
|
),
|
|
1357
1352
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1358
|
-
|
|
1353
|
+
chunkRWZ2PLMQ_js.SectionCard,
|
|
1359
1354
|
{
|
|
1360
1355
|
variant: "glass",
|
|
1361
1356
|
padded: false,
|
|
@@ -1451,9 +1446,9 @@ function ConfigSection({ title, icon: Icon, defaultOpen = true, children }) {
|
|
|
1451
1446
|
"aria-expanded": open,
|
|
1452
1447
|
className: "flex w-full items-center gap-2 px-4 py-2.5 text-left hover:bg-white/5",
|
|
1453
1448
|
children: [
|
|
1454
|
-
open ? /* @__PURE__ */ jsxRuntime.jsx(outline.ChevronDownIcon, { className: "h-3 w-3 text-
|
|
1455
|
-
/* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "h-3 w-3 text-
|
|
1456
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] font-semibold uppercase tracking-wider text-
|
|
1449
|
+
open ? /* @__PURE__ */ jsxRuntime.jsx(outline.ChevronDownIcon, { className: "h-3 w-3 text-slate-400" }) : /* @__PURE__ */ jsxRuntime.jsx(outline.ChevronRightIcon, { className: "h-3 w-3 text-slate-400" }),
|
|
1450
|
+
/* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "h-3 w-3 text-slate-400" }),
|
|
1451
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: title })
|
|
1457
1452
|
]
|
|
1458
1453
|
}
|
|
1459
1454
|
),
|
|
@@ -1478,7 +1473,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1478
1473
|
const markDirty = useSubworkflowStore((s) => s.markDirty);
|
|
1479
1474
|
const markSaved = useSubworkflowStore((s) => s.markSaved);
|
|
1480
1475
|
const closeModal = useSubworkflowStore((s) => s.closeModal);
|
|
1481
|
-
const agentBehind =
|
|
1476
|
+
const agentBehind = chunk4Z5NZINA_js.useModalStore((s) => s.activeModal === "agent" ? s.agentData?.agent?.name : null);
|
|
1482
1477
|
const isCreateMode = !tool?.toolId;
|
|
1483
1478
|
const initialGraph = react.useMemo(() => {
|
|
1484
1479
|
const config = tool?.config;
|
|
@@ -1507,9 +1502,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1507
1502
|
}, [tool, onSaved, name, category, description, timeoutMs, latestGraphRef, markSaved]);
|
|
1508
1503
|
if (!tool) return null;
|
|
1509
1504
|
const categoryKey = category ?? "external";
|
|
1510
|
-
const gradient = tool.color ??
|
|
1511
|
-
const categoryPill =
|
|
1512
|
-
const IconComponent =
|
|
1505
|
+
const gradient = tool.color ?? chunk4Z5NZINA_js.CATEGORY_COLORS[categoryKey] ?? chunk4Z5NZINA_js.CATEGORY_COLORS.external;
|
|
1506
|
+
const categoryPill = chunk4Z5NZINA_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunk4Z5NZINA_js.CATEGORY_PILL_COLORS.external;
|
|
1507
|
+
const IconComponent = chunk4Z5NZINA_js.ICON_MAP[tool.icon ?? ""] ?? outline.ArrowPathRoundedSquareIcon;
|
|
1513
1508
|
const graph = latestGraphRef.current;
|
|
1514
1509
|
const startNode = graph.nodes.find((n) => n.type === "start");
|
|
1515
1510
|
const endNode = graph.nodes.find((n) => n.type === "end");
|
|
@@ -1520,29 +1515,22 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1520
1515
|
const footer = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
|
|
1521
1516
|
/* @__PURE__ */ jsxRuntime.jsx("div", { role: "status", "aria-live": "polite", className: "text-xs", children: dirty ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-amber-500 dark:text-amber-400", children: t("subworkflowDrawer.unsavedChanges") }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-emerald-500 dark:text-emerald-400", children: t("subworkflowDrawer.saved") }) }),
|
|
1522
1517
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
1518
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { type: "button", outline: true, size: "sm", onClick: closeModal, children: t("subworkflowDrawer.cancel") }),
|
|
1523
1519
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1524
|
-
|
|
1525
|
-
{
|
|
1526
|
-
type: "button",
|
|
1527
|
-
onClick: closeModal,
|
|
1528
|
-
className: "rounded-lg border border-gray-200/50 px-4 py-2 text-xs font-medium text-gray-600 transition-colors hover:bg-gray-100/50 dark:border-white/10 dark:text-gray-300 dark:hover:bg-white/5",
|
|
1529
|
-
children: t("subworkflowDrawer.cancel")
|
|
1530
|
-
}
|
|
1531
|
-
),
|
|
1532
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1533
|
-
"button",
|
|
1520
|
+
chunkEBARYRSA_js.Button,
|
|
1534
1521
|
{
|
|
1535
1522
|
type: "button",
|
|
1523
|
+
color: "ios-teal",
|
|
1524
|
+
size: "sm",
|
|
1536
1525
|
onClick: handleSave,
|
|
1537
|
-
disabled: isCreateMode && !name.trim(),
|
|
1538
|
-
className: `rounded-lg px-4 py-2 text-xs font-semibold text-white shadow-sm transition-all ${dirty ? "bg-gradient-to-r from-teal-500 to-cyan-500 hover:from-teal-600 hover:to-cyan-600" : "cursor-not-allowed bg-gray-300 dark:bg-gray-700"}`,
|
|
1526
|
+
disabled: isCreateMode && !name.trim() || !dirty,
|
|
1539
1527
|
children: isCreateMode ? t("subworkflowDrawer.create") : t("subworkflowDrawer.save")
|
|
1540
1528
|
}
|
|
1541
1529
|
)
|
|
1542
1530
|
] })
|
|
1543
1531
|
] });
|
|
1544
1532
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1545
|
-
|
|
1533
|
+
chunkRWZ2PLMQ_js.GlassModal,
|
|
1546
1534
|
{
|
|
1547
1535
|
open,
|
|
1548
1536
|
onClose: closeModal,
|
|
@@ -1557,7 +1545,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1557
1545
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-[80vh] min-h-[600px]", children: [
|
|
1558
1546
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-72 flex-shrink-0 flex-col overflow-y-auto border-r border-white/10", children: [
|
|
1559
1547
|
isCreateMode ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-b border-white/10 bg-gradient-to-br from-teal-500/15 via-cyan-500/8 to-transparent px-4 py-4 dark:from-teal-500/8 dark:via-cyan-500/4", children: [
|
|
1560
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-[10px] font-semibold uppercase tracking-wider text-
|
|
1548
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-[10px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: t("subworkflowDrawer.name") }),
|
|
1561
1549
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1562
1550
|
"input",
|
|
1563
1551
|
{
|
|
@@ -1566,7 +1554,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1566
1554
|
onChange: (event) => setName(event.target.value),
|
|
1567
1555
|
placeholder: t("subworkflowDrawer.namePlaceholder"),
|
|
1568
1556
|
autoFocus: true,
|
|
1569
|
-
className: "w-full rounded-lg border border-
|
|
1557
|
+
className: "w-full rounded-lg bg-white/40 dark:bg-white/[0.04] backdrop-blur-sm border border-slate-200/50 dark:border-white/10 px-3 py-2 text-sm font-medium text-slate-900 outline-none placeholder:text-slate-400 focus:border-teal-300/50 focus:ring-1 focus:ring-teal-300/30 dark:text-white dark:placeholder:text-slate-500"
|
|
1570
1558
|
}
|
|
1571
1559
|
),
|
|
1572
1560
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3 flex flex-wrap gap-1", children: ["external", "market", "data", "communication", "analytics"].map((cat) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1574,7 +1562,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1574
1562
|
{
|
|
1575
1563
|
type: "button",
|
|
1576
1564
|
onClick: () => setCategory(cat),
|
|
1577
|
-
className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${
|
|
1565
|
+
className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${chunk4Z5NZINA_js.CATEGORY_PILL_COLORS[cat] ?? chunk4Z5NZINA_js.CATEGORY_PILL_COLORS.external} ring-1 ring-current/20` : "bg-white/30 text-slate-500 hover:bg-white/50 dark:bg-white/5 dark:text-slate-400"}`,
|
|
1578
1566
|
children: cat
|
|
1579
1567
|
},
|
|
1580
1568
|
cat
|
|
@@ -1582,7 +1570,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1582
1570
|
] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-b border-white/10 bg-gradient-to-br from-teal-500/15 via-cyan-500/8 to-transparent px-4 py-4 dark:from-teal-500/8 dark:via-cyan-500/4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
1583
1571
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-10 w-10 shrink-0 items-center justify-center rounded-xl bg-gradient-to-br ${gradient} shadow-lg`, children: /* @__PURE__ */ jsxRuntime.jsx(IconComponent, { className: "h-5 w-5 text-white" }) }),
|
|
1584
1572
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
1585
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "truncate text-sm font-bold text-
|
|
1573
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "truncate text-sm font-bold text-slate-900 dark:text-white", children: name }),
|
|
1586
1574
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-1 flex flex-wrap gap-1", children: [
|
|
1587
1575
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex items-center rounded-full bg-teal-100 px-1.5 py-0.5 text-[8px] font-semibold text-teal-700 dark:bg-teal-400/15 dark:text-teal-400", children: t("subworkflowDrawer.subworkflow") }),
|
|
1588
1576
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `inline-flex items-center rounded-full px-1.5 py-0.5 text-[8px] font-medium ${categoryPill}`, children: category })
|
|
@@ -1594,7 +1582,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1594
1582
|
type: "button",
|
|
1595
1583
|
onClick: () => onMaximize(tool.toolId),
|
|
1596
1584
|
title: t("subworkflowDrawer.openFullEditor"),
|
|
1597
|
-
className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-lg text-
|
|
1585
|
+
className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-lg text-slate-400 transition-colors hover:bg-white/10 hover:text-teal-500 dark:hover:text-teal-400",
|
|
1598
1586
|
children: /* @__PURE__ */ jsxRuntime.jsx(outline.ArrowsPointingOutIcon, { className: "h-4 w-4" })
|
|
1599
1587
|
}
|
|
1600
1588
|
)
|
|
@@ -1606,19 +1594,19 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1606
1594
|
onChange: (event) => setDescription(event.target.value),
|
|
1607
1595
|
rows: 2,
|
|
1608
1596
|
placeholder: t("subworkflowDrawer.descriptionPlaceholder"),
|
|
1609
|
-
className: "w-full resize-none rounded-lg border border-
|
|
1597
|
+
className: "w-full resize-none rounded-lg bg-white/40 dark:bg-white/[0.04] backdrop-blur-sm border border-slate-200/50 dark:border-white/10 px-2.5 py-2 text-[11px] leading-relaxed text-slate-700 outline-none placeholder:text-slate-400 focus:border-teal-300/50 dark:text-slate-300 dark:placeholder:text-slate-500"
|
|
1610
1598
|
}
|
|
1611
1599
|
) }),
|
|
1612
|
-
/* @__PURE__ */ jsxRuntime.jsx(ConfigSection, { title: t("subworkflowDrawer.inputVariables"), icon: outline.ArrowsPointingInIcon, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1", children: inputVariables.length > 0 ? inputVariables.map((variable) => /* @__PURE__ */ jsxRuntime.jsx(VariableChip, { name: variable.name, type: variable.type }, variable.name)) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-
|
|
1613
|
-
/* @__PURE__ */ jsxRuntime.jsx(ConfigSection, { title: t("subworkflowDrawer.outputVariables"), icon: outline.ArrowsPointingOutIcon, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1", children: outputVariables.length > 0 ? outputVariables.map((variable) => /* @__PURE__ */ jsxRuntime.jsx(OutputChip, { name: variable.name, type: variable.type }, variable.name)) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-
|
|
1600
|
+
/* @__PURE__ */ jsxRuntime.jsx(ConfigSection, { title: t("subworkflowDrawer.inputVariables"), icon: outline.ArrowsPointingInIcon, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1", children: inputVariables.length > 0 ? inputVariables.map((variable) => /* @__PURE__ */ jsxRuntime.jsx(VariableChip, { name: variable.name, type: variable.type }, variable.name)) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: t("subworkflowDrawer.noVariables") }) }) }),
|
|
1601
|
+
/* @__PURE__ */ jsxRuntime.jsx(ConfigSection, { title: t("subworkflowDrawer.outputVariables"), icon: outline.ArrowsPointingOutIcon, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1", children: outputVariables.length > 0 ? outputVariables.map((variable) => /* @__PURE__ */ jsxRuntime.jsx(OutputChip, { name: variable.name, type: variable.type }, variable.name)) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: t("subworkflowDrawer.noVariables") }) }) }),
|
|
1614
1602
|
/* @__PURE__ */ jsxRuntime.jsxs(ConfigSection, { title: t("subworkflowDrawer.executionSettings"), icon: outline.BoltIcon, defaultOpen: false, children: [
|
|
1615
1603
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3", children: [
|
|
1616
1604
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-1 flex items-center justify-between", children: [
|
|
1617
|
-
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-1 text-[10px] text-
|
|
1605
|
+
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-1 text-[10px] text-slate-600 dark:text-slate-400", children: [
|
|
1618
1606
|
/* @__PURE__ */ jsxRuntime.jsx(outline.ClockIcon, { className: "h-3 w-3" }),
|
|
1619
1607
|
t("subworkflowDrawer.timeout")
|
|
1620
1608
|
] }),
|
|
1621
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] font-bold tabular-nums text-
|
|
1609
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] font-bold tabular-nums text-slate-900 dark:text-white", children: [
|
|
1622
1610
|
(timeoutMs / 1e3).toFixed(0),
|
|
1623
1611
|
"s"
|
|
1624
1612
|
] })
|
|
@@ -1637,21 +1625,21 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1637
1625
|
"aria-valuemax": 30,
|
|
1638
1626
|
"aria-valuenow": timeoutMs / 1e3,
|
|
1639
1627
|
"aria-valuetext": `${(timeoutMs / 1e3).toFixed(0)} seconds`,
|
|
1640
|
-
className: "h-3 w-full cursor-pointer appearance-none rounded-full bg-
|
|
1628
|
+
className: "h-3 w-full cursor-pointer appearance-none rounded-full bg-slate-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-teal-500 dark:bg-slate-700 [&::-webkit-slider-thumb]:h-3 [&::-webkit-slider-thumb]:w-3 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-teal-500"
|
|
1641
1629
|
}
|
|
1642
1630
|
)
|
|
1643
1631
|
] }),
|
|
1644
1632
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
1645
1633
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-1 flex items-center justify-between", children: [
|
|
1646
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-[10px] text-
|
|
1647
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] font-bold tabular-nums text-
|
|
1634
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-[10px] text-slate-600 dark:text-slate-400", children: t("subworkflowDrawer.retries") }),
|
|
1635
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] font-bold tabular-nums text-slate-900 dark:text-white", children: retryCount })
|
|
1648
1636
|
] }),
|
|
1649
1637
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-1", children: [0, 1, 2, 3].map((count) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1650
1638
|
"button",
|
|
1651
1639
|
{
|
|
1652
1640
|
type: "button",
|
|
1653
1641
|
onClick: () => setRetryCount(count),
|
|
1654
|
-
className: `flex-1 rounded py-1 text-[10px] font-medium transition-all ${count === retryCount ? "bg-teal-500 text-white" : "bg-
|
|
1642
|
+
className: `flex-1 rounded py-1 text-[10px] font-medium transition-all ${count === retryCount ? "bg-teal-500 text-white" : "bg-white/40 text-slate-500 dark:bg-white/5 dark:text-slate-400"}`,
|
|
1655
1643
|
children: count
|
|
1656
1644
|
},
|
|
1657
1645
|
count
|
|
@@ -1661,7 +1649,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1661
1649
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto" })
|
|
1662
1650
|
] }),
|
|
1663
1651
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1664
|
-
|
|
1652
|
+
chunk4Z5NZINA_js.WorkflowCanvas,
|
|
1665
1653
|
{
|
|
1666
1654
|
initialGraph,
|
|
1667
1655
|
agents: [],
|
|
@@ -1677,9 +1665,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1677
1665
|
}
|
|
1678
1666
|
function PipelineSettingsModal({ onSave }) {
|
|
1679
1667
|
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
1680
|
-
const activeModal =
|
|
1681
|
-
const data =
|
|
1682
|
-
const closeModal =
|
|
1668
|
+
const activeModal = chunk4Z5NZINA_js.useModalStore((s) => s.activeModal);
|
|
1669
|
+
const data = chunk4Z5NZINA_js.useModalStore((s) => s.pipelineSettingsData);
|
|
1670
|
+
const closeModal = chunk4Z5NZINA_js.useModalStore((s) => s.closeModal);
|
|
1683
1671
|
const open = activeModal === "pipeline-settings";
|
|
1684
1672
|
const [nameValue, setNameValue] = react.useState("");
|
|
1685
1673
|
const [descriptionValue, setDescriptionValue] = react.useState("");
|
|
@@ -1730,17 +1718,9 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1730
1718
|
}
|
|
1731
1719
|
};
|
|
1732
1720
|
const footer = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-end gap-2", children: [
|
|
1733
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1734
|
-
"button",
|
|
1735
|
-
{
|
|
1736
|
-
type: "button",
|
|
1737
|
-
onClick: closeModal,
|
|
1738
|
-
className: "rounded-lg border border-gray-200/50 px-4 py-2 text-xs font-medium text-gray-600 transition-colors hover:bg-gray-100/50 dark:border-white/10 dark:text-gray-300 dark:hover:bg-white/5",
|
|
1739
|
-
children: t("cancel")
|
|
1740
|
-
}
|
|
1741
|
-
),
|
|
1721
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { type: "button", outline: true, size: "sm", onClick: closeModal, children: t("cancel") }),
|
|
1742
1722
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1743
|
-
|
|
1723
|
+
chunkEBARYRSA_js.Button,
|
|
1744
1724
|
{
|
|
1745
1725
|
type: "button",
|
|
1746
1726
|
onClick: () => {
|
|
@@ -1757,7 +1737,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1757
1737
|
)
|
|
1758
1738
|
] });
|
|
1759
1739
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1760
|
-
|
|
1740
|
+
chunkRWZ2PLMQ_js.GlassModal,
|
|
1761
1741
|
{
|
|
1762
1742
|
open,
|
|
1763
1743
|
onClose: closeModal,
|
|
@@ -1780,7 +1760,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1780
1760
|
},
|
|
1781
1761
|
children: [
|
|
1782
1762
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1783
|
-
|
|
1763
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
1784
1764
|
{
|
|
1785
1765
|
label: t("pipelineName"),
|
|
1786
1766
|
value: nameValue,
|
|
@@ -1790,7 +1770,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1790
1770
|
}
|
|
1791
1771
|
),
|
|
1792
1772
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1793
|
-
|
|
1773
|
+
chunkRWZ2PLMQ_js.FormTextarea,
|
|
1794
1774
|
{
|
|
1795
1775
|
label: t("pipelineDescription"),
|
|
1796
1776
|
value: descriptionValue,
|
|
@@ -1801,7 +1781,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1801
1781
|
),
|
|
1802
1782
|
lifecycleAvailable && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1803
1783
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1804
|
-
|
|
1784
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
1805
1785
|
{
|
|
1806
1786
|
label: t("pipelineSlug", { _: "Slug" }),
|
|
1807
1787
|
value: slugValue,
|
|
@@ -1812,12 +1792,12 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1812
1792
|
})
|
|
1813
1793
|
}
|
|
1814
1794
|
),
|
|
1815
|
-
/* @__PURE__ */ jsxRuntime.jsxs("fieldset", { className: "space-y-2 rounded-xl
|
|
1816
|
-
/* @__PURE__ */ jsxRuntime.jsx("legend", { className: "px-1 text-xs font-medium text-
|
|
1817
|
-
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center justify-between gap-3 text-sm text-
|
|
1795
|
+
/* @__PURE__ */ jsxRuntime.jsxs("fieldset", { className: "space-y-2 rounded-xl liquid-surface p-3", children: [
|
|
1796
|
+
/* @__PURE__ */ jsxRuntime.jsx("legend", { className: "px-1 text-xs font-medium text-slate-600 dark:text-slate-300", children: t("pipelineLifecycle", { _: "Lifecycle" }) }),
|
|
1797
|
+
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center justify-between gap-3 text-sm text-slate-700 dark:text-slate-200", children: [
|
|
1818
1798
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
1819
1799
|
t("pipelineIsDraft", { _: "Draft mode" }),
|
|
1820
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-2 text-[11px] text-
|
|
1800
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-2 text-[11px] text-slate-400", children: isDraft ? t("pipelineIsDraftOn", { _: "Editable \u2014 changes do not affect runs." }) : t("pipelineIsDraftOff", { _: "Published \u2014 edits require a new version." }) })
|
|
1821
1801
|
] }),
|
|
1822
1802
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1823
1803
|
"input",
|
|
@@ -1825,14 +1805,14 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1825
1805
|
type: "checkbox",
|
|
1826
1806
|
checked: isDraft,
|
|
1827
1807
|
onChange: (event) => setIsDraft(event.target.checked),
|
|
1828
|
-
className: "h-4 w-4 rounded border-
|
|
1808
|
+
className: "h-4 w-4 rounded border-slate-300 text-indigo-600 focus:ring-indigo-500/70 focus:ring-offset-1"
|
|
1829
1809
|
}
|
|
1830
1810
|
)
|
|
1831
1811
|
] }),
|
|
1832
|
-
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center justify-between gap-3 text-sm text-
|
|
1812
|
+
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center justify-between gap-3 text-sm text-slate-700 dark:text-slate-200", children: [
|
|
1833
1813
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
1834
1814
|
t("pipelineIsActive", { _: "Active" }),
|
|
1835
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-2 text-[11px] text-
|
|
1815
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-2 text-[11px] text-slate-400", children: isActive ? t("pipelineIsActiveOn", { _: "Visible in listings and runnable." }) : t("pipelineIsActiveOff", { _: "Archived \u2014 hidden from the default listing." }) })
|
|
1836
1816
|
] }),
|
|
1837
1817
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1838
1818
|
"input",
|
|
@@ -1840,7 +1820,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1840
1820
|
type: "checkbox",
|
|
1841
1821
|
checked: isActive,
|
|
1842
1822
|
onChange: (event) => setIsActive(event.target.checked),
|
|
1843
|
-
className: "h-4 w-4 rounded border-
|
|
1823
|
+
className: "h-4 w-4 rounded border-slate-300 text-indigo-600 focus:ring-indigo-500/70 focus:ring-offset-1"
|
|
1844
1824
|
}
|
|
1845
1825
|
)
|
|
1846
1826
|
] })
|
|
@@ -1920,17 +1900,9 @@ function RunReplayModal({
|
|
|
1920
1900
|
/* @__PURE__ */ jsxRuntime.jsx("code", { children: workflowId.slice(0, 8) })
|
|
1921
1901
|
] }),
|
|
1922
1902
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
1923
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1924
|
-
"button",
|
|
1925
|
-
{
|
|
1926
|
-
type: "button",
|
|
1927
|
-
onClick: onClose,
|
|
1928
|
-
className: "rounded-lg border border-gray-200/50 px-4 py-2 text-xs font-medium text-gray-600 transition-colors hover:bg-gray-100/50 dark:border-white/10 dark:text-gray-300 dark:hover:bg-white/5",
|
|
1929
|
-
children: t("cancel")
|
|
1930
|
-
}
|
|
1931
|
-
),
|
|
1903
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { type: "button", outline: true, size: "sm", onClick: onClose, children: t("cancel") }),
|
|
1932
1904
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1933
|
-
|
|
1905
|
+
chunkEBARYRSA_js.Button,
|
|
1934
1906
|
{
|
|
1935
1907
|
type: "submit",
|
|
1936
1908
|
form: "run-replay-form",
|
|
@@ -1945,7 +1917,7 @@ function RunReplayModal({
|
|
|
1945
1917
|
] })
|
|
1946
1918
|
] });
|
|
1947
1919
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1948
|
-
|
|
1920
|
+
chunkRWZ2PLMQ_js.GlassModal,
|
|
1949
1921
|
{
|
|
1950
1922
|
open,
|
|
1951
1923
|
onClose,
|
|
@@ -1995,16 +1967,8 @@ function RowEditor({
|
|
|
1995
1967
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between gap-2", children: [
|
|
1996
1968
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-xs text-gray-700 dark:text-gray-200", children: row.key }),
|
|
1997
1969
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
1998
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1999
|
-
row.touched && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2000
|
-
"button",
|
|
2001
|
-
{
|
|
2002
|
-
type: "button",
|
|
2003
|
-
onClick: onReset,
|
|
2004
|
-
className: "text-[11px] text-indigo-600 hover:text-indigo-500 dark:text-indigo-400",
|
|
2005
|
-
children: "reset"
|
|
2006
|
-
}
|
|
2007
|
-
)
|
|
1970
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", className: "uppercase tracking-wider", children: row.kind }),
|
|
1971
|
+
row.touched && /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { type: "button", plain: true, size: "xs", onClick: onReset, children: "reset" })
|
|
2008
1972
|
] })
|
|
2009
1973
|
] }),
|
|
2010
1974
|
row.kind === "boolean" ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -2019,7 +1983,7 @@ function RowEditor({
|
|
|
2019
1983
|
]
|
|
2020
1984
|
}
|
|
2021
1985
|
) : isJson ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2022
|
-
|
|
1986
|
+
chunkRWZ2PLMQ_js.FormTextarea,
|
|
2023
1987
|
{
|
|
2024
1988
|
value: row.value,
|
|
2025
1989
|
onValueChange: (v) => onChange({ value: v }),
|
|
@@ -2027,7 +1991,7 @@ function RowEditor({
|
|
|
2027
1991
|
className: "font-mono"
|
|
2028
1992
|
}
|
|
2029
1993
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
2030
|
-
|
|
1994
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
2031
1995
|
{
|
|
2032
1996
|
type: row.kind === "number" ? "number" : "text",
|
|
2033
1997
|
value: row.value,
|
|
@@ -2131,7 +2095,7 @@ function ExecutionTimelinePanel({
|
|
|
2131
2095
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate font-medium text-slate-900 dark:text-white", children: entry.nodeId }),
|
|
2132
2096
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs text-slate-500 dark:text-slate-400", children: entry.nodeType })
|
|
2133
2097
|
] }),
|
|
2134
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2098
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkEBARYRSA_js.Badge, { color: meta.color, children: [
|
|
2135
2099
|
/* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "mr-1 h-3 w-3" }),
|
|
2136
2100
|
labels[entry.status]
|
|
2137
2101
|
] })
|
|
@@ -2161,7 +2125,7 @@ function NodeInspector({
|
|
|
2161
2125
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "truncate text-base font-semibold text-slate-900 dark:text-white", children: entry.nodeId }),
|
|
2162
2126
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: entry.nodeType })
|
|
2163
2127
|
] }),
|
|
2164
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2128
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: meta.color, children: labels[entry.status] })
|
|
2165
2129
|
] }),
|
|
2166
2130
|
/* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "grid grid-cols-2 gap-3 text-xs text-slate-500 dark:text-slate-400", children: [
|
|
2167
2131
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
@@ -2331,7 +2295,7 @@ function RuleConditionBuilder({ value, onChange, depth = 0 }) {
|
|
|
2331
2295
|
};
|
|
2332
2296
|
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: [
|
|
2333
2297
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2334
|
-
|
|
2298
|
+
chunkRWZ2PLMQ_js.FormSelect,
|
|
2335
2299
|
{
|
|
2336
2300
|
label: "Operator",
|
|
2337
2301
|
value: value.operator,
|
|
@@ -2354,7 +2318,7 @@ function SimpleEditor({
|
|
|
2354
2318
|
const isTruthy = value.operator === "truthy";
|
|
2355
2319
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2356
2320
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2357
|
-
|
|
2321
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
2358
2322
|
{
|
|
2359
2323
|
label: "Field",
|
|
2360
2324
|
hint: "Dotted reference into the variable pool \u2014 e.g. `parse-pricing.margin`, `inputs.category`",
|
|
@@ -2364,7 +2328,7 @@ function SimpleEditor({
|
|
|
2364
2328
|
}
|
|
2365
2329
|
),
|
|
2366
2330
|
!isTruthy && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2367
|
-
|
|
2331
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
2368
2332
|
{
|
|
2369
2333
|
label: "Value",
|
|
2370
2334
|
hint: "Literal. Numeric operators coerce via `as f64`.",
|
|
@@ -2380,7 +2344,7 @@ function ThresholdEditor({
|
|
|
2380
2344
|
}) {
|
|
2381
2345
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-3", children: [
|
|
2382
2346
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2383
|
-
|
|
2347
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
2384
2348
|
{
|
|
2385
2349
|
label: "Field",
|
|
2386
2350
|
value: value.field ?? "",
|
|
@@ -2389,7 +2353,7 @@ function ThresholdEditor({
|
|
|
2389
2353
|
}
|
|
2390
2354
|
),
|
|
2391
2355
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2392
|
-
|
|
2356
|
+
chunkRWZ2PLMQ_js.FormSelect,
|
|
2393
2357
|
{
|
|
2394
2358
|
label: "Direction",
|
|
2395
2359
|
value: value.comparison ?? "gte",
|
|
@@ -2403,7 +2367,7 @@ function ThresholdEditor({
|
|
|
2403
2367
|
}
|
|
2404
2368
|
),
|
|
2405
2369
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2406
|
-
|
|
2370
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
2407
2371
|
{
|
|
2408
2372
|
label: "Threshold",
|
|
2409
2373
|
type: "number",
|
|
@@ -2420,7 +2384,7 @@ function RegexEditor({
|
|
|
2420
2384
|
}) {
|
|
2421
2385
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2422
2386
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2423
|
-
|
|
2387
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
2424
2388
|
{
|
|
2425
2389
|
label: "Field",
|
|
2426
2390
|
value: value.field ?? "",
|
|
@@ -2429,7 +2393,7 @@ function RegexEditor({
|
|
|
2429
2393
|
}
|
|
2430
2394
|
),
|
|
2431
2395
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2432
|
-
|
|
2396
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
2433
2397
|
{
|
|
2434
2398
|
label: "Pattern",
|
|
2435
2399
|
hint: "Rust regex syntax \u2014 `(?i)` etc. supported.",
|
|
@@ -2457,7 +2421,7 @@ function TimeWindowEditor({
|
|
|
2457
2421
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
2458
2422
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2459
2423
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2460
|
-
|
|
2424
|
+
chunkRWZ2PLMQ_js.FormSelect,
|
|
2461
2425
|
{
|
|
2462
2426
|
label: "Timezone",
|
|
2463
2427
|
value: value.timezone ?? "UTC",
|
|
@@ -2466,7 +2430,7 @@ function TimeWindowEditor({
|
|
|
2466
2430
|
}
|
|
2467
2431
|
),
|
|
2468
2432
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2469
|
-
|
|
2433
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
2470
2434
|
{
|
|
2471
2435
|
label: "Timestamp field (optional)",
|
|
2472
2436
|
hint: "Pulls a timestamp from the pool. Leave blank to use the run's wall-clock.",
|
|
@@ -2479,7 +2443,7 @@ function TimeWindowEditor({
|
|
|
2479
2443
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
2480
2444
|
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: [
|
|
2481
2445
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2482
|
-
|
|
2446
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
2483
2447
|
{
|
|
2484
2448
|
label: `Start (hour)`,
|
|
2485
2449
|
type: "number",
|
|
@@ -2490,7 +2454,7 @@ function TimeWindowEditor({
|
|
|
2490
2454
|
}
|
|
2491
2455
|
),
|
|
2492
2456
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2493
|
-
|
|
2457
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
2494
2458
|
{
|
|
2495
2459
|
label: `End (hour)`,
|
|
2496
2460
|
type: "number",
|
|
@@ -2500,9 +2464,9 @@ function TimeWindowEditor({
|
|
|
2500
2464
|
onValueChange: (raw) => update(index, { endHour: clampHour(raw, 24) })
|
|
2501
2465
|
}
|
|
2502
2466
|
),
|
|
2503
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2467
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { type: "button", plain: true, onClick: () => remove(index), children: "Remove" })
|
|
2504
2468
|
] }, index)),
|
|
2505
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2469
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { type: "button", outline: true, onClick: add, children: "+ Add window" })
|
|
2506
2470
|
] })
|
|
2507
2471
|
] });
|
|
2508
2472
|
}
|
|
@@ -2525,7 +2489,7 @@ function BooleanGroupEditor({
|
|
|
2525
2489
|
});
|
|
2526
2490
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
2527
2491
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2528
|
-
|
|
2492
|
+
chunkRWZ2PLMQ_js.FormSelect,
|
|
2529
2493
|
{
|
|
2530
2494
|
label: "Combinator",
|
|
2531
2495
|
value: value.combinator ?? "and",
|
|
@@ -2543,9 +2507,9 @@ function BooleanGroupEditor({
|
|
|
2543
2507
|
depth
|
|
2544
2508
|
}
|
|
2545
2509
|
),
|
|
2546
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2 text-right", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2510
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2 text-right", children: /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { type: "button", plain: true, onClick: () => remove(index), children: "Remove operand" }) })
|
|
2547
2511
|
] }, index)),
|
|
2548
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2512
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { type: "button", outline: true, onClick: add, children: "+ Add operand" })
|
|
2549
2513
|
] })
|
|
2550
2514
|
] });
|
|
2551
2515
|
}
|
|
@@ -2581,7 +2545,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2581
2545
|
};
|
|
2582
2546
|
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: [
|
|
2583
2547
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2584
|
-
|
|
2548
|
+
chunkRWZ2PLMQ_js.FormSelect,
|
|
2585
2549
|
{
|
|
2586
2550
|
label: "Action type",
|
|
2587
2551
|
value: type,
|
|
@@ -2591,7 +2555,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2591
2555
|
),
|
|
2592
2556
|
type === "adjust_price" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2593
2557
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2594
|
-
|
|
2558
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
2595
2559
|
{
|
|
2596
2560
|
label: "Multiplier",
|
|
2597
2561
|
type: "number",
|
|
@@ -2601,7 +2565,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2601
2565
|
}
|
|
2602
2566
|
),
|
|
2603
2567
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2604
|
-
|
|
2568
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
2605
2569
|
{
|
|
2606
2570
|
label: "Reason code",
|
|
2607
2571
|
value: stringParam(params.reason),
|
|
@@ -2611,7 +2575,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2611
2575
|
)
|
|
2612
2576
|
] }),
|
|
2613
2577
|
type === "enforce_min_margin" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2614
|
-
|
|
2578
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
2615
2579
|
{
|
|
2616
2580
|
label: "Floor (fraction, e.g. 0.08)",
|
|
2617
2581
|
type: "number",
|
|
@@ -2621,7 +2585,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2621
2585
|
}
|
|
2622
2586
|
),
|
|
2623
2587
|
type === "realign_to_competitor" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2624
|
-
|
|
2588
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
2625
2589
|
{
|
|
2626
2590
|
label: "Tolerance (fraction)",
|
|
2627
2591
|
type: "number",
|
|
@@ -2631,7 +2595,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2631
2595
|
}
|
|
2632
2596
|
),
|
|
2633
2597
|
type === "request_manager_approval" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2634
|
-
|
|
2598
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
2635
2599
|
{
|
|
2636
2600
|
label: "Approval limit (fraction)",
|
|
2637
2601
|
type: "number",
|
|
@@ -2641,7 +2605,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2641
2605
|
}
|
|
2642
2606
|
),
|
|
2643
2607
|
type === "round_to" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2644
|
-
|
|
2608
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
2645
2609
|
{
|
|
2646
2610
|
label: "Step (e.g. 0.009)",
|
|
2647
2611
|
type: "number",
|
|
@@ -2652,7 +2616,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2652
2616
|
),
|
|
2653
2617
|
type === "alert" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2654
2618
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2655
|
-
|
|
2619
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
2656
2620
|
{
|
|
2657
2621
|
label: "Channel",
|
|
2658
2622
|
value: stringParam(params.channel),
|
|
@@ -2661,7 +2625,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2661
2625
|
}
|
|
2662
2626
|
),
|
|
2663
2627
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2664
|
-
|
|
2628
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
2665
2629
|
{
|
|
2666
2630
|
label: "Severity",
|
|
2667
2631
|
value: stringParam(params.severity),
|
|
@@ -2699,7 +2663,7 @@ function CustomParamsEditor({
|
|
|
2699
2663
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
2700
2664
|
entries.map(([key, value], index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[1fr_1fr_auto] items-end gap-2", children: [
|
|
2701
2665
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2702
|
-
|
|
2666
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
2703
2667
|
{
|
|
2704
2668
|
label: "Key",
|
|
2705
2669
|
value: key,
|
|
@@ -2707,16 +2671,16 @@ function CustomParamsEditor({
|
|
|
2707
2671
|
}
|
|
2708
2672
|
),
|
|
2709
2673
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2710
|
-
|
|
2674
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
2711
2675
|
{
|
|
2712
2676
|
label: "Value",
|
|
2713
2677
|
value: String(value ?? ""),
|
|
2714
2678
|
onValueChange: (raw) => update(index, key, raw)
|
|
2715
2679
|
}
|
|
2716
2680
|
),
|
|
2717
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2681
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { type: "button", plain: true, onClick: () => remove(index), children: "Remove" })
|
|
2718
2682
|
] }, index)),
|
|
2719
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2683
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { type: "button", outline: true, onClick: add, children: "+ Add param" })
|
|
2720
2684
|
] });
|
|
2721
2685
|
}
|
|
2722
2686
|
function numberParam(value, fallback) {
|
|
@@ -2746,9 +2710,9 @@ function RuleForm({ value, onChange }) {
|
|
|
2746
2710
|
);
|
|
2747
2711
|
const update = (key, v) => onChange({ ...value, [key]: v });
|
|
2748
2712
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
|
|
2749
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2713
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkRWZ2PLMQ_js.FormGrid, { children: [
|
|
2750
2714
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2751
|
-
|
|
2715
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
2752
2716
|
{
|
|
2753
2717
|
label: "Name",
|
|
2754
2718
|
required: true,
|
|
@@ -2757,7 +2721,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2757
2721
|
}
|
|
2758
2722
|
),
|
|
2759
2723
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2760
|
-
|
|
2724
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
2761
2725
|
{
|
|
2762
2726
|
label: "Priority",
|
|
2763
2727
|
type: "number",
|
|
@@ -2767,7 +2731,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2767
2731
|
}
|
|
2768
2732
|
),
|
|
2769
2733
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2770
|
-
|
|
2734
|
+
chunkRWZ2PLMQ_js.FormSelect,
|
|
2771
2735
|
{
|
|
2772
2736
|
label: "Enabled",
|
|
2773
2737
|
value: value.enabled ? "true" : "false",
|
|
@@ -2779,7 +2743,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2779
2743
|
}
|
|
2780
2744
|
),
|
|
2781
2745
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2782
|
-
|
|
2746
|
+
chunkRWZ2PLMQ_js.FormTextarea,
|
|
2783
2747
|
{
|
|
2784
2748
|
label: "Description",
|
|
2785
2749
|
rows: 2,
|
|
@@ -2791,7 +2755,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2791
2755
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
|
|
2792
2756
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
2793
2757
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-700 dark:text-slate-200", children: "Condition" }),
|
|
2794
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2758
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "indigo", children: value.condition.operator })
|
|
2795
2759
|
] }),
|
|
2796
2760
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2797
2761
|
RuleConditionBuilder,
|
|
@@ -2804,7 +2768,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2804
2768
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
|
|
2805
2769
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
2806
2770
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-700 dark:text-slate-200", children: "Action on match" }),
|
|
2807
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2771
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "fuchsia", children: value.action.type })
|
|
2808
2772
|
] }),
|
|
2809
2773
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2810
2774
|
RuleActionBuilder,
|
|
@@ -2826,7 +2790,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2826
2790
|
),
|
|
2827
2791
|
showAdvanced && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-3 grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2828
2792
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2829
|
-
|
|
2793
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
2830
2794
|
{
|
|
2831
2795
|
label: "Valid from (ISO 8601)",
|
|
2832
2796
|
type: "datetime-local",
|
|
@@ -2835,7 +2799,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2835
2799
|
}
|
|
2836
2800
|
),
|
|
2837
2801
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2838
|
-
|
|
2802
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
2839
2803
|
{
|
|
2840
2804
|
label: "Valid until (ISO 8601)",
|
|
2841
2805
|
type: "datetime-local",
|
|
@@ -2844,7 +2808,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2844
2808
|
}
|
|
2845
2809
|
),
|
|
2846
2810
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2847
|
-
|
|
2811
|
+
chunkRWZ2PLMQ_js.FormSelect,
|
|
2848
2812
|
{
|
|
2849
2813
|
label: "Status",
|
|
2850
2814
|
value: value.status ?? "active",
|
|
@@ -2853,7 +2817,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2853
2817
|
}
|
|
2854
2818
|
),
|
|
2855
2819
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2856
|
-
|
|
2820
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
2857
2821
|
{
|
|
2858
2822
|
label: "Tags (comma-separated)",
|
|
2859
2823
|
value: (value.tags ?? []).join(", "),
|
|
@@ -3001,7 +2965,7 @@ function SectionHeader({ icon, title, colorClass, count, onAdd, addLabel, isOpen
|
|
|
3001
2965
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3002
2966
|
outline.ChevronDownIcon,
|
|
3003
2967
|
{
|
|
3004
|
-
className: `h-3 w-3 text-
|
|
2968
|
+
className: `h-3 w-3 text-slate-400 transition-transform duration-200 ${isOpen ? "" : "-rotate-90"}`
|
|
3005
2969
|
}
|
|
3006
2970
|
)
|
|
3007
2971
|
]
|
|
@@ -3022,7 +2986,7 @@ function SectionHeader({ icon, title, colorClass, count, onAdd, addLabel, isOpen
|
|
|
3022
2986
|
function CollapsibleSection({ title, icon, colorClass, defaultOpen = true, count, onAdd, addLabel, children }) {
|
|
3023
2987
|
const [isOpen, setIsOpen] = react.useState(defaultOpen);
|
|
3024
2988
|
const safeChildren = react.Children.toArray(children);
|
|
3025
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-t border-
|
|
2989
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-t border-slate-200/40 dark:border-white/5", children: [
|
|
3026
2990
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3027
2991
|
SectionHeader,
|
|
3028
2992
|
{
|
|
@@ -3040,8 +3004,8 @@ function CollapsibleSection({ title, icon, colorClass, defaultOpen = true, count
|
|
|
3040
3004
|
] });
|
|
3041
3005
|
}
|
|
3042
3006
|
function LogicNodeItemCard({ item, translationFunction }) {
|
|
3043
|
-
const IconComponent =
|
|
3044
|
-
const gradient =
|
|
3007
|
+
const IconComponent = chunk4Z5NZINA_js.LOGIC_ICON_MAP[item.nodeType];
|
|
3008
|
+
const gradient = chunk4Z5NZINA_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-slate-400 to-slate-500";
|
|
3045
3009
|
const defaultConfig = chunk72SWXOD5_js.createDefaultLogicNodeConfig(item.nodeType);
|
|
3046
3010
|
const configJson = defaultConfig ? JSON.stringify(defaultConfig) : void 0;
|
|
3047
3011
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -3053,8 +3017,8 @@ function LogicNodeItemCard({ item, translationFunction }) {
|
|
|
3053
3017
|
children: [
|
|
3054
3018
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-6 w-6 items-center justify-center rounded-md bg-gradient-to-br ${gradient} shadow-sm`, children: IconComponent && /* @__PURE__ */ jsxRuntime.jsx(IconComponent, { className: "h-3.5 w-3.5 text-white" }) }),
|
|
3055
3019
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
3056
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-
|
|
3057
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-
|
|
3020
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-slate-900 dark:text-white", children: translationFunction(item.nameKey) }),
|
|
3021
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: translationFunction(item.descriptionKey) })
|
|
3058
3022
|
] })
|
|
3059
3023
|
]
|
|
3060
3024
|
}
|
|
@@ -3112,7 +3076,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3112
3076
|
[entityTypes, normalizedQuery]
|
|
3113
3077
|
);
|
|
3114
3078
|
const filteredLogicItems = react.useMemo(() => {
|
|
3115
|
-
const visibleByDefault = LOGIC_NODE_ITEMS.filter((item) => !
|
|
3079
|
+
const visibleByDefault = LOGIC_NODE_ITEMS.filter((item) => !chunk4Z5NZINA_js.EXPERIMENTAL_NODE_TYPES.has(item.nodeType));
|
|
3116
3080
|
if (!normalizedQuery) return visibleByDefault;
|
|
3117
3081
|
return visibleByDefault.filter(
|
|
3118
3082
|
(item) => t(item.nameKey).toLowerCase().includes(normalizedQuery) || t(item.descriptionKey).toLowerCase().includes(normalizedQuery)
|
|
@@ -3134,13 +3098,13 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3134
3098
|
function renderLogicSubcategory(subcategory, items, isFirst) {
|
|
3135
3099
|
if (items.length === 0) return null;
|
|
3136
3100
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", children: [
|
|
3137
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: `${isFirst ? "mt-1" : "mt-2"} text-[9px] font-semibold uppercase tracking-wider text-
|
|
3101
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: `${isFirst ? "mt-1" : "mt-2"} text-[9px] font-semibold uppercase tracking-wider text-slate-400 dark:text-slate-500`, children: t(SUBCATEGORY_LABELS[subcategory]) }),
|
|
3138
3102
|
items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(LogicNodeItemCard, { item, translationFunction: t }, item.nodeType))
|
|
3139
3103
|
] }, subcategory);
|
|
3140
3104
|
}
|
|
3141
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-surface w-[260px] flex-shrink-0 overflow-y-auto rounded-none border-0 border-r border-
|
|
3105
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-surface w-[260px] flex-shrink-0 overflow-y-auto rounded-none border-0 border-r border-slate-200/30 dark:border-white/5", children: [
|
|
3142
3106
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-4 pb-2", children: [
|
|
3143
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-xs font-semibold uppercase tracking-wider text-
|
|
3107
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-xs font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: t("palette") }),
|
|
3144
3108
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3145
3109
|
"input",
|
|
3146
3110
|
{
|
|
@@ -3148,7 +3112,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3148
3112
|
value: searchQuery,
|
|
3149
3113
|
onChange: (event) => setSearchQuery(event.target.value),
|
|
3150
3114
|
placeholder: t("searchPalette"),
|
|
3151
|
-
className: "liquid-surface w-full rounded-lg px-2.5 py-1.5 text-[11px] text-
|
|
3115
|
+
className: "liquid-surface w-full rounded-lg px-2.5 py-1.5 text-[11px] text-slate-900 placeholder-slate-400 outline-none transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:text-white dark:placeholder-slate-500"
|
|
3152
3116
|
}
|
|
3153
3117
|
) })
|
|
3154
3118
|
] }),
|
|
@@ -3161,7 +3125,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3161
3125
|
onAdd: onCreateAgent,
|
|
3162
3126
|
addLabel: t("newAgent"),
|
|
3163
3127
|
count: filteredAgents.length,
|
|
3164
|
-
children: filteredAgents.length === 0 && filteredAgentTools.length === 0 && filteredProviders.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-
|
|
3128
|
+
children: filteredAgents.length === 0 && filteredAgentTools.length === 0 && filteredProviders.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: t("noAgents") }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
3165
3129
|
filteredAgents.map((agent) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3166
3130
|
"div",
|
|
3167
3131
|
{
|
|
@@ -3170,24 +3134,24 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3170
3134
|
className: "liquid-surface group flex items-center gap-2 rounded-lg px-3 py-2 transition-all cursor-grab hover:shadow-md active:cursor-grabbing",
|
|
3171
3135
|
children: [
|
|
3172
3136
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex-shrink-0", children: [
|
|
3173
|
-
agent.avatar ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: agent.avatar, alt: agent.name, className: "h-7 w-7 rounded-full bg-white shadow-sm ring-1 ring-
|
|
3174
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute -bottom-0.5 -right-0.5 flex h-3.5 w-3.5 items-center justify-center rounded-full bg-indigo-500 ring-1.5 ring-white dark:ring-
|
|
3137
|
+
agent.avatar ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: agent.avatar, alt: agent.name, className: "h-7 w-7 rounded-full bg-white shadow-sm ring-1 ring-slate-200/50 dark:bg-slate-800 dark:ring-white/10" }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-7 w-7 items-center justify-center rounded-full bg-gradient-to-br from-indigo-400 to-purple-500 shadow-sm", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-3.5 w-3.5 text-white" }) }),
|
|
3138
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute -bottom-0.5 -right-0.5 flex h-3.5 w-3.5 items-center justify-center rounded-full bg-indigo-500 ring-1.5 ring-white dark:ring-slate-900", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-2 w-2 text-white" }) })
|
|
3175
3139
|
] }),
|
|
3176
3140
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
3177
3141
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
3178
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-
|
|
3142
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-slate-900 dark:text-white", children: agent.name }),
|
|
3179
3143
|
(() => {
|
|
3180
3144
|
const tier = chunk72SWXOD5_js.getAgentTier(Number(agent.elo ?? 0));
|
|
3181
3145
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: `shrink-0 rounded-full px-1.5 py-px text-[8px] font-bold ${tier.pillColor}`, children: t(`agentDrawer.tier${tier.key.charAt(0).toUpperCase()}${tier.key.slice(1)}`) });
|
|
3182
3146
|
})()
|
|
3183
3147
|
] }),
|
|
3184
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-
|
|
3148
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: agent.role ?? agent.agentId })
|
|
3185
3149
|
] })
|
|
3186
3150
|
]
|
|
3187
3151
|
},
|
|
3188
3152
|
agent.agentId
|
|
3189
3153
|
)),
|
|
3190
|
-
filteredProviders.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 border-t border-
|
|
3154
|
+
filteredProviders.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 border-t border-slate-200/40 pt-2 dark:border-white/5", children: [
|
|
3191
3155
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-1.5 px-1 text-[9px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: t("connectionsSection") }),
|
|
3192
3156
|
filteredProviders.map((provider) => {
|
|
3193
3157
|
const providerLogo = PROVIDER_LOGOS3[provider.provider];
|
|
@@ -3211,13 +3175,13 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3211
3175
|
children: [
|
|
3212
3176
|
providerLogo ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-6 w-6 shrink-0 items-center justify-center rounded-md bg-white/10 p-1", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: providerLogo, alt: "", className: "h-4 w-4 object-contain", loading: "lazy" }) }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-6 w-6 items-center justify-center rounded-md bg-gradient-to-br from-rose-400 to-pink-500 shadow-sm", children: /* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-3.5 w-3.5 text-white" }) }),
|
|
3213
3177
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
3214
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-
|
|
3215
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "truncate text-[10px] text-
|
|
3178
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-slate-900 dark:text-white", children: provider.name }),
|
|
3179
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: [
|
|
3216
3180
|
provider.modelCount,
|
|
3217
3181
|
" models"
|
|
3218
3182
|
] })
|
|
3219
3183
|
] }),
|
|
3220
|
-
provider.configured ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3184
|
+
provider.configured ? /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "emerald", size: "xs", children: t("configured") }) : /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "amber", size: "xs", children: t("setup") })
|
|
3221
3185
|
]
|
|
3222
3186
|
},
|
|
3223
3187
|
provider.id
|
|
@@ -3235,7 +3199,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3235
3199
|
colorClass: "text-teal-600 dark:text-teal-400",
|
|
3236
3200
|
onAdd: onCreateTool,
|
|
3237
3201
|
addLabel: t("newSubworkflow"),
|
|
3238
|
-
children: filteredTools.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-
|
|
3202
|
+
children: filteredTools.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: t("noSubworkflows") }) : filteredTools.map((tool) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3239
3203
|
"div",
|
|
3240
3204
|
{
|
|
3241
3205
|
draggable: true,
|
|
@@ -3244,11 +3208,11 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3244
3208
|
children: [
|
|
3245
3209
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-6 w-6 items-center justify-center rounded-md bg-gradient-to-br from-teal-400 to-emerald-500 shadow-sm", children: /* @__PURE__ */ jsxRuntime.jsx(outline.ArrowPathRoundedSquareIcon, { className: "h-3.5 w-3.5 text-white" }) }),
|
|
3246
3210
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
3247
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-
|
|
3248
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-
|
|
3211
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-slate-900 dark:text-white", children: tool.name }),
|
|
3212
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: tool.category })
|
|
3249
3213
|
] }),
|
|
3250
3214
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3251
|
-
|
|
3215
|
+
chunkRWZ2PLMQ_js.ToggleSwitch,
|
|
3252
3216
|
{
|
|
3253
3217
|
checked: Boolean(tool.enabled),
|
|
3254
3218
|
onChange: () => {
|
|
@@ -3273,7 +3237,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3273
3237
|
colorClass: "text-violet-600 dark:text-violet-400",
|
|
3274
3238
|
onAdd: onCreateRule,
|
|
3275
3239
|
addLabel: t("newRule"),
|
|
3276
|
-
children: filteredRules.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-
|
|
3240
|
+
children: filteredRules.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: t("noRules") }) : filteredRules.map((rule) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3277
3241
|
"div",
|
|
3278
3242
|
{
|
|
3279
3243
|
draggable: true,
|
|
@@ -3282,14 +3246,14 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3282
3246
|
children: [
|
|
3283
3247
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-6 w-6 items-center justify-center rounded-md bg-gradient-to-br from-violet-400 to-purple-500 shadow-sm", children: /* @__PURE__ */ jsxRuntime.jsx(outline.AdjustmentsHorizontalIcon, { className: "h-3.5 w-3.5 text-white" }) }),
|
|
3284
3248
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
3285
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-
|
|
3286
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "truncate text-[10px] text-
|
|
3249
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-slate-900 dark:text-white", children: rule.name }),
|
|
3250
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: [
|
|
3287
3251
|
"P",
|
|
3288
3252
|
String(rule.priority ?? "")
|
|
3289
3253
|
] })
|
|
3290
3254
|
] }),
|
|
3291
3255
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3292
|
-
|
|
3256
|
+
chunkRWZ2PLMQ_js.ToggleSwitch,
|
|
3293
3257
|
{
|
|
3294
3258
|
checked: Boolean(rule.enabled),
|
|
3295
3259
|
onChange: () => {
|
|
@@ -3315,7 +3279,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3315
3279
|
count: filteredEntityTypes.length,
|
|
3316
3280
|
onAdd: onCreateDatasource,
|
|
3317
3281
|
addLabel: t("newDataSource"),
|
|
3318
|
-
children: filteredEntityTypes.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-
|
|
3282
|
+
children: filteredEntityTypes.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: t("noDataSources") }) : filteredEntityTypes.map((entity) => {
|
|
3319
3283
|
const defaultConfig = JSON.stringify({
|
|
3320
3284
|
type: "entity",
|
|
3321
3285
|
entityMasterId: entity.id,
|
|
@@ -3325,8 +3289,8 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3325
3289
|
limit: entity.defaultLimit
|
|
3326
3290
|
});
|
|
3327
3291
|
const dsLogo = getDatasourceLogo(entity.id);
|
|
3328
|
-
const EntityIcon =
|
|
3329
|
-
const entityGradient =
|
|
3292
|
+
const EntityIcon = chunk4Z5NZINA_js.getEntityIcon(entity.id);
|
|
3293
|
+
const entityGradient = chunk4Z5NZINA_js.getEntityGradient(entity.id);
|
|
3330
3294
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3331
3295
|
"div",
|
|
3332
3296
|
{
|
|
@@ -3336,17 +3300,17 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3336
3300
|
children: [
|
|
3337
3301
|
dsLogo ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-6 w-6 shrink-0 items-center justify-center rounded-md bg-white/10 p-1", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: dsLogo, alt: "", className: "h-4 w-4 object-contain", loading: "lazy" }) }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-6 w-6 items-center justify-center rounded-md bg-gradient-to-br ${entityGradient} shadow-sm`, children: /* @__PURE__ */ jsxRuntime.jsx(EntityIcon, { className: "h-3.5 w-3.5 text-white" }) }),
|
|
3338
3302
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
3339
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-
|
|
3340
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "truncate text-[10px] text-
|
|
3303
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-slate-900 dark:text-white", children: entity.label }),
|
|
3304
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: [
|
|
3341
3305
|
entity.fieldCount,
|
|
3342
3306
|
" ",
|
|
3343
3307
|
t("entityFieldsLabel")
|
|
3344
3308
|
] })
|
|
3345
3309
|
] }),
|
|
3346
3310
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3347
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3311
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", children: "Read only" }),
|
|
3348
3312
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3349
|
-
|
|
3313
|
+
chunkRWZ2PLMQ_js.ToggleSwitch,
|
|
3350
3314
|
{
|
|
3351
3315
|
checked: true,
|
|
3352
3316
|
onChange: () => {
|
|
@@ -3370,7 +3334,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3370
3334
|
{
|
|
3371
3335
|
title: t("logicSection"),
|
|
3372
3336
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.BoltIcon, { className: "h-3 w-3" }),
|
|
3373
|
-
colorClass: "text-
|
|
3337
|
+
colorClass: "text-slate-600 dark:text-slate-400",
|
|
3374
3338
|
count: filteredLogicItems.length,
|
|
3375
3339
|
children: [
|
|
3376
3340
|
renderLogicSubcategory("control_flow", groupedLogicItems.control_flow, true),
|
|
@@ -3456,19 +3420,17 @@ function WorkflowListBar({
|
|
|
3456
3420
|
children: /* @__PURE__ */ jsxRuntime.jsx(outline.ArrowPathRoundedSquareIcon, { className: "h-3.5 w-3.5" })
|
|
3457
3421
|
}
|
|
3458
3422
|
),
|
|
3459
|
-
workflows.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
3460
|
-
|
|
3423
|
+
workflows.length > 1 && /* @__PURE__ */ jsxRuntime.jsx("div", { onClick: (event) => event.stopPropagation(), children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3424
|
+
chunkEBARYRSA_js.IconButton,
|
|
3461
3425
|
{
|
|
3462
|
-
|
|
3463
|
-
|
|
3464
|
-
|
|
3465
|
-
|
|
3466
|
-
|
|
3467
|
-
|
|
3468
|
-
"aria-label": `${tWorkflow("deleteWorkflow")} ${workflow.name}`,
|
|
3469
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "h-3.5 w-3.5" })
|
|
3426
|
+
label: `${tWorkflow("deleteWorkflow")} ${workflow.name}`,
|
|
3427
|
+
variant: "ghost",
|
|
3428
|
+
size: "sm",
|
|
3429
|
+
destructive: true,
|
|
3430
|
+
onClick: () => onDelete(workflow.id, workflow.name),
|
|
3431
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "h-3.5 w-3.5" })
|
|
3470
3432
|
}
|
|
3471
|
-
)
|
|
3433
|
+
) })
|
|
3472
3434
|
] })
|
|
3473
3435
|
]
|
|
3474
3436
|
},
|
|
@@ -3539,22 +3501,23 @@ function VersionHistoryPanel({
|
|
|
3539
3501
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3540
3502
|
"div",
|
|
3541
3503
|
{
|
|
3542
|
-
className: "absolute right-0 top-0 z-40 flex h-full w-80 flex-col border-l border-
|
|
3504
|
+
className: "liquid-surface absolute right-0 top-0 z-40 flex h-full w-80 flex-col border-l border-slate-200/60 shadow-xl dark:border-white/10",
|
|
3543
3505
|
"data-testid": "version-history-panel",
|
|
3544
3506
|
children: [
|
|
3545
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between
|
|
3507
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-divider flex items-center justify-between px-4 py-3", children: [
|
|
3546
3508
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3547
|
-
/* @__PURE__ */ jsxRuntime.jsx(outline.ClockIcon, { className: "h-5 w-5 text-
|
|
3548
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-
|
|
3509
|
+
/* @__PURE__ */ jsxRuntime.jsx(outline.ClockIcon, { className: "h-5 w-5 text-slate-500 dark:text-slate-400" }),
|
|
3510
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: translations("title") })
|
|
3549
3511
|
] }),
|
|
3550
3512
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3551
|
-
|
|
3513
|
+
chunkEBARYRSA_js.IconButton,
|
|
3552
3514
|
{
|
|
3553
|
-
|
|
3515
|
+
label: translations("close"),
|
|
3516
|
+
variant: "ghost",
|
|
3517
|
+
size: "sm",
|
|
3554
3518
|
onClick: onClose,
|
|
3555
|
-
|
|
3556
|
-
"data-testid": "version-history-close"
|
|
3557
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(outline.XMarkIcon, { className: "h-4 w-4" })
|
|
3519
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.XMarkIcon, { className: "h-4 w-4" }),
|
|
3520
|
+
"data-testid": "version-history-close"
|
|
3558
3521
|
}
|
|
3559
3522
|
)
|
|
3560
3523
|
] }),
|
|
@@ -3562,36 +3525,28 @@ function VersionHistoryPanel({
|
|
|
3562
3525
|
isLoading && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center py-12", "data-testid": "version-history-loading", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-6 w-6 animate-spin motion-reduce:animate-none rounded-full border-2 border-blue-500 border-t-transparent" }) }),
|
|
3563
3526
|
loadError && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-4 py-8 text-center", "data-testid": "version-history-error", children: [
|
|
3564
3527
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-red-500 dark:text-red-400", children: loadError }),
|
|
3565
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3566
|
-
"button",
|
|
3567
|
-
{
|
|
3568
|
-
type: "button",
|
|
3569
|
-
onClick: loadVersions,
|
|
3570
|
-
className: "mt-2 text-xs text-blue-600 hover:underline dark:text-blue-400",
|
|
3571
|
-
children: translations("retry")
|
|
3572
|
-
}
|
|
3573
|
-
)
|
|
3528
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { type: "button", plain: true, size: "xs", onClick: loadVersions, children: translations("retry") })
|
|
3574
3529
|
] }),
|
|
3575
3530
|
!isLoading && !loadError && versions.length === 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-4 py-12 text-center", "data-testid": "version-history-empty", children: [
|
|
3576
|
-
/* @__PURE__ */ jsxRuntime.jsx(outline.ClockIcon, { className: "mx-auto h-8 w-8 text-
|
|
3577
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-
|
|
3531
|
+
/* @__PURE__ */ jsxRuntime.jsx(outline.ClockIcon, { className: "mx-auto h-8 w-8 text-slate-300 dark:text-slate-600" }),
|
|
3532
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-slate-500 dark:text-slate-400", children: translations("noVersions") })
|
|
3578
3533
|
] }),
|
|
3579
|
-
!isLoading && !loadError && versions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-
|
|
3534
|
+
!isLoading && !loadError && versions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-slate-200/60 dark:divide-white/10", children: versions.map((version) => {
|
|
3580
3535
|
const isCurrentVersion = version.version === currentVersion;
|
|
3581
3536
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3582
3537
|
"div",
|
|
3583
3538
|
{
|
|
3584
|
-
className: `px-4 py-3 transition-colors ${isCurrentVersion ? "bg-blue-50 dark:bg-blue-500/10" : "hover:bg-
|
|
3539
|
+
className: `px-4 py-3 transition-colors ${isCurrentVersion ? "bg-blue-50 dark:bg-blue-500/10" : "hover:bg-white/40 dark:hover:bg-white/[0.04]"}`,
|
|
3585
3540
|
"data-testid": `version-entry-${version.version}`,
|
|
3586
3541
|
children: [
|
|
3587
3542
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3588
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-sm font-semibold text-
|
|
3543
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: [
|
|
3589
3544
|
"v",
|
|
3590
3545
|
version.version
|
|
3591
3546
|
] }),
|
|
3592
|
-
isCurrentVersion && /* @__PURE__ */ jsxRuntime.jsx(
|
|
3547
|
+
isCurrentVersion && /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "blue", size: "xs", children: translations("current") })
|
|
3593
3548
|
] }) }),
|
|
3594
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-1 text-xs text-
|
|
3549
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-1 text-xs text-slate-500 dark:text-slate-400", children: [
|
|
3595
3550
|
/* @__PURE__ */ jsxRuntime.jsx("div", { children: formatTimestamp3(version.publishedAt) }),
|
|
3596
3551
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-0.5", children: [
|
|
3597
3552
|
translations("publishedBy"),
|
|
@@ -3610,11 +3565,12 @@ function VersionHistoryPanel({
|
|
|
3610
3565
|
] }),
|
|
3611
3566
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 flex gap-2", children: [
|
|
3612
3567
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3613
|
-
|
|
3568
|
+
chunkEBARYRSA_js.Button,
|
|
3614
3569
|
{
|
|
3615
3570
|
type: "button",
|
|
3571
|
+
outline: true,
|
|
3572
|
+
size: "xs",
|
|
3616
3573
|
onClick: () => onPreview(version),
|
|
3617
|
-
className: "inline-flex items-center gap-1 rounded-md border border-gray-300 px-2 py-1 text-xs font-medium text-gray-600 transition-colors hover:bg-gray-100 dark:border-gray-600 dark:text-gray-400 dark:hover:bg-gray-700",
|
|
3618
3574
|
"data-testid": `version-preview-${version.version}`,
|
|
3619
3575
|
children: [
|
|
3620
3576
|
/* @__PURE__ */ jsxRuntime.jsx(outline.EyeIcon, { className: "h-3 w-3" }),
|
|
@@ -3623,11 +3579,12 @@ function VersionHistoryPanel({
|
|
|
3623
3579
|
}
|
|
3624
3580
|
),
|
|
3625
3581
|
!isCurrentVersion && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3626
|
-
|
|
3582
|
+
chunkEBARYRSA_js.Button,
|
|
3627
3583
|
{
|
|
3628
3584
|
type: "button",
|
|
3585
|
+
outline: true,
|
|
3586
|
+
size: "xs",
|
|
3629
3587
|
onClick: () => onRestore(version),
|
|
3630
|
-
className: "inline-flex items-center gap-1 rounded-md border border-blue-300 px-2 py-1 text-xs font-medium text-blue-600 transition-colors hover:bg-blue-50 dark:border-blue-600 dark:text-blue-400 dark:hover:bg-blue-500/10",
|
|
3631
3588
|
"data-testid": `version-restore-${version.version}`,
|
|
3632
3589
|
children: [
|
|
3633
3590
|
/* @__PURE__ */ jsxRuntime.jsx(outline.ArrowPathIcon, { className: "h-3 w-3" }),
|
|
@@ -3649,8 +3606,8 @@ function VersionHistoryPanel({
|
|
|
3649
3606
|
var STATUS_CONFIG = {
|
|
3650
3607
|
pending: {
|
|
3651
3608
|
icon: outline.ClockIcon,
|
|
3652
|
-
color: "text-
|
|
3653
|
-
background: "bg-
|
|
3609
|
+
color: "text-slate-400 dark:text-slate-500",
|
|
3610
|
+
background: "bg-slate-100 dark:bg-slate-800",
|
|
3654
3611
|
label: "pending"
|
|
3655
3612
|
},
|
|
3656
3613
|
running: {
|
|
@@ -3681,9 +3638,9 @@ function formatDuration2(durationMs) {
|
|
|
3681
3638
|
}
|
|
3682
3639
|
function RunPanel({ open, onClose, onRun, onStop }) {
|
|
3683
3640
|
const translations = chunkY5VN4SPH_js.useTranslations("agents.workflow.runPanel");
|
|
3684
|
-
const nodes =
|
|
3685
|
-
const isRunning =
|
|
3686
|
-
const nodeResults =
|
|
3641
|
+
const nodes = chunk4Z5NZINA_js.useWorkflowStore((state) => state.nodes);
|
|
3642
|
+
const isRunning = chunk4Z5NZINA_js.useWorkflowStore((state) => state.isRunning);
|
|
3643
|
+
const nodeResults = chunk4Z5NZINA_js.useWorkflowStore((state) => state.nodeResults);
|
|
3687
3644
|
const startNode = nodes.find((node) => node.type === "start");
|
|
3688
3645
|
const hasEndNode = nodes.some((node) => node.type === "end");
|
|
3689
3646
|
const hasValidStartConfig = Boolean(
|
|
@@ -3695,13 +3652,13 @@ function RunPanel({ open, onClose, onRun, onStop }) {
|
|
|
3695
3652
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3696
3653
|
"div",
|
|
3697
3654
|
{
|
|
3698
|
-
className: "absolute bottom-0 left-0 right-0 z-40 border-t border-
|
|
3655
|
+
className: "liquid-surface absolute bottom-0 left-0 right-0 z-40 border-t border-slate-200/60 shadow-xl dark:border-white/10",
|
|
3699
3656
|
"data-testid": "run-panel",
|
|
3700
3657
|
children: [
|
|
3701
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between
|
|
3658
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-divider flex items-center justify-between px-4 py-2", children: [
|
|
3702
3659
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3703
|
-
/* @__PURE__ */ jsxRuntime.jsx(outline.PlayIcon, { className: "h-4 w-4 text-
|
|
3704
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-
|
|
3660
|
+
/* @__PURE__ */ jsxRuntime.jsx(outline.PlayIcon, { className: "h-4 w-4 text-slate-500 dark:text-slate-400" }),
|
|
3661
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: translations("title") }),
|
|
3705
3662
|
isRunning && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3706
3663
|
"span",
|
|
3707
3664
|
{
|
|
@@ -3723,11 +3680,12 @@ function RunPanel({ open, onClose, onRun, onStop }) {
|
|
|
3723
3680
|
] }),
|
|
3724
3681
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3725
3682
|
isRunning ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3726
|
-
|
|
3683
|
+
chunkEBARYRSA_js.Button,
|
|
3727
3684
|
{
|
|
3728
3685
|
type: "button",
|
|
3686
|
+
destructive: true,
|
|
3687
|
+
size: "sm",
|
|
3729
3688
|
onClick: onStop,
|
|
3730
|
-
className: "inline-flex items-center gap-1.5 rounded-lg bg-red-500 px-3 py-1.5 text-xs font-medium text-white transition-colors hover:bg-red-600",
|
|
3731
3689
|
"data-testid": "run-panel-stop",
|
|
3732
3690
|
children: [
|
|
3733
3691
|
/* @__PURE__ */ jsxRuntime.jsx(outline.StopIcon, { className: "h-3.5 w-3.5" }),
|
|
@@ -3735,12 +3693,13 @@ function RunPanel({ open, onClose, onRun, onStop }) {
|
|
|
3735
3693
|
]
|
|
3736
3694
|
}
|
|
3737
3695
|
) : /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3738
|
-
|
|
3696
|
+
chunkEBARYRSA_js.Button,
|
|
3739
3697
|
{
|
|
3740
3698
|
type: "button",
|
|
3699
|
+
color: "ios-green",
|
|
3700
|
+
size: "sm",
|
|
3741
3701
|
onClick: onRun,
|
|
3742
3702
|
disabled: !canRun,
|
|
3743
|
-
className: "inline-flex items-center gap-1.5 rounded-lg bg-green-500 px-3 py-1.5 text-xs font-medium text-white transition-colors hover:bg-green-600 disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-green-500",
|
|
3744
3703
|
"data-testid": "run-panel-run",
|
|
3745
3704
|
children: [
|
|
3746
3705
|
/* @__PURE__ */ jsxRuntime.jsx(outline.PlayIcon, { className: "h-3.5 w-3.5" }),
|
|
@@ -3749,18 +3708,19 @@ function RunPanel({ open, onClose, onRun, onStop }) {
|
|
|
3749
3708
|
}
|
|
3750
3709
|
),
|
|
3751
3710
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3752
|
-
|
|
3711
|
+
chunkEBARYRSA_js.IconButton,
|
|
3753
3712
|
{
|
|
3754
|
-
|
|
3713
|
+
label: translations("close"),
|
|
3714
|
+
variant: "ghost",
|
|
3715
|
+
size: "sm",
|
|
3755
3716
|
onClick: onClose,
|
|
3756
|
-
|
|
3757
|
-
"data-testid": "run-panel-close"
|
|
3758
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(outline.XMarkIcon, { className: "h-4 w-4" })
|
|
3717
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.XMarkIcon, { className: "h-4 w-4" }),
|
|
3718
|
+
"data-testid": "run-panel-close"
|
|
3759
3719
|
}
|
|
3760
3720
|
)
|
|
3761
3721
|
] })
|
|
3762
3722
|
] }),
|
|
3763
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-h-48 overflow-y-auto px-4 py-2", children: executionNodes.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "py-4 text-center text-sm text-
|
|
3723
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-h-48 overflow-y-auto px-4 py-2", children: executionNodes.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "py-4 text-center text-sm text-slate-500 dark:text-slate-400", children: translations("noNodes") }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1", children: executionNodes.map((node) => {
|
|
3764
3724
|
const result = nodeResults[node.id];
|
|
3765
3725
|
const status = result?.status ?? "pending";
|
|
3766
3726
|
const statusConfig = STATUS_CONFIG[status];
|
|
@@ -3775,12 +3735,12 @@ function RunPanel({ open, onClose, onRun, onStop }) {
|
|
|
3775
3735
|
/* @__PURE__ */ jsxRuntime.jsx(StatusIconComponent, { className: `h-4 w-4 flex-shrink-0 ${statusConfig.color}` }),
|
|
3776
3736
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
3777
3737
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3778
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-sm font-medium text-
|
|
3779
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded bg-
|
|
3738
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-sm font-medium text-slate-900 dark:text-white", children: nodeLabel }),
|
|
3739
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded bg-slate-200 px-1.5 py-0.5 text-[10px] text-slate-500 dark:bg-slate-700 dark:text-slate-400", children: node.type })
|
|
3780
3740
|
] }),
|
|
3781
3741
|
result?.error && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 truncate text-xs text-red-500 dark:text-red-400", children: result.error })
|
|
3782
3742
|
] }),
|
|
3783
|
-
result?.durationMs !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0 text-xs text-
|
|
3743
|
+
result?.durationMs !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0 text-xs text-slate-500 dark:text-slate-400", children: formatDuration2(result.durationMs) })
|
|
3784
3744
|
]
|
|
3785
3745
|
},
|
|
3786
3746
|
node.id
|
|
@@ -4014,8 +3974,8 @@ function inferVariables(config, nodeType) {
|
|
|
4014
3974
|
}
|
|
4015
3975
|
function VariableInspector({ open, onClose }) {
|
|
4016
3976
|
const translations = chunkY5VN4SPH_js.useTranslations("agents.workflow.variableInspector");
|
|
4017
|
-
const nodes =
|
|
4018
|
-
const edges =
|
|
3977
|
+
const nodes = chunk4Z5NZINA_js.useWorkflowStore((state) => state.nodes);
|
|
3978
|
+
const edges = chunk4Z5NZINA_js.useWorkflowStore((state) => state.edges);
|
|
4019
3979
|
const [expandedNodes, setExpandedNodes] = react.useState(/* @__PURE__ */ new Set());
|
|
4020
3980
|
const toggleNodeExpansion = react.useCallback((nodeId) => {
|
|
4021
3981
|
setExpandedNodes((current) => {
|
|
@@ -4053,32 +4013,33 @@ function VariableInspector({ open, onClose }) {
|
|
|
4053
4013
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4054
4014
|
"div",
|
|
4055
4015
|
{
|
|
4056
|
-
className: "absolute right-0 top-0 z-40 flex h-full w-80 flex-col
|
|
4016
|
+
className: "liquid-surface absolute right-0 top-0 z-40 flex h-full w-80 flex-col shadow-xl",
|
|
4057
4017
|
"data-testid": "variable-inspector",
|
|
4058
4018
|
children: [
|
|
4059
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between border-b
|
|
4019
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-divider flex items-center justify-between border-b px-4 py-3", children: [
|
|
4060
4020
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
4061
|
-
/* @__PURE__ */ jsxRuntime.jsx(outline.VariableIcon, { className: "h-5 w-5 text-
|
|
4062
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-
|
|
4021
|
+
/* @__PURE__ */ jsxRuntime.jsx(outline.VariableIcon, { className: "h-5 w-5 text-slate-500 dark:text-slate-400" }),
|
|
4022
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: translations("title") })
|
|
4063
4023
|
] }),
|
|
4064
4024
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4065
|
-
|
|
4025
|
+
chunkEBARYRSA_js.IconButton,
|
|
4066
4026
|
{
|
|
4067
|
-
|
|
4027
|
+
label: translations("close"),
|
|
4028
|
+
variant: "ghost",
|
|
4029
|
+
size: "sm",
|
|
4068
4030
|
onClick: onClose,
|
|
4069
|
-
|
|
4070
|
-
"data-testid": "variable-inspector-close"
|
|
4071
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(outline.XMarkIcon, { className: "h-4 w-4" })
|
|
4031
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.XMarkIcon, { className: "h-4 w-4" }),
|
|
4032
|
+
"data-testid": "variable-inspector-close"
|
|
4072
4033
|
}
|
|
4073
4034
|
)
|
|
4074
4035
|
] }),
|
|
4075
4036
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 overflow-y-auto", children: nodeVariableEntries.length === 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-4 py-12 text-center", "data-testid": "variable-inspector-empty", children: [
|
|
4076
|
-
/* @__PURE__ */ jsxRuntime.jsx(outline.VariableIcon, { className: "mx-auto h-8 w-8 text-
|
|
4077
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-
|
|
4078
|
-
] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-
|
|
4037
|
+
/* @__PURE__ */ jsxRuntime.jsx(outline.VariableIcon, { className: "mx-auto h-8 w-8 text-slate-300 dark:text-slate-600" }),
|
|
4038
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-slate-500 dark:text-slate-400", children: translations("noNodes") })
|
|
4039
|
+
] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-slate-100 dark:divide-slate-800", children: nodeVariableEntries.map((entry) => {
|
|
4079
4040
|
const isExpanded = expandedNodes.has(entry.nodeId);
|
|
4080
|
-
const IconComponent =
|
|
4081
|
-
const gradient =
|
|
4041
|
+
const IconComponent = chunk4Z5NZINA_js.LOGIC_ICON_MAP[entry.nodeType];
|
|
4042
|
+
const gradient = chunk4Z5NZINA_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-slate-400 to-slate-500";
|
|
4082
4043
|
const inputVariables = entry.variables.filter((variable) => variable.direction === "input");
|
|
4083
4044
|
const outputVariables = entry.variables.filter((variable) => variable.direction === "output");
|
|
4084
4045
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": `variable-node-${entry.nodeId}`, children: [
|
|
@@ -4087,12 +4048,12 @@ function VariableInspector({ open, onClose }) {
|
|
|
4087
4048
|
{
|
|
4088
4049
|
type: "button",
|
|
4089
4050
|
onClick: () => toggleNodeExpansion(entry.nodeId),
|
|
4090
|
-
className: "flex w-full items-center gap-2 px-4 py-2.5 text-left transition-colors hover:bg-
|
|
4051
|
+
className: "flex w-full items-center gap-2 px-4 py-2.5 text-left transition-colors hover:bg-white/40 dark:hover:bg-white/[0.04]",
|
|
4091
4052
|
children: [
|
|
4092
|
-
isExpanded ? /* @__PURE__ */ jsxRuntime.jsx(outline.ChevronDownIcon, { className: "h-3.5 w-3.5 flex-shrink-0 text-
|
|
4053
|
+
isExpanded ? /* @__PURE__ */ jsxRuntime.jsx(outline.ChevronDownIcon, { className: "h-3.5 w-3.5 flex-shrink-0 text-slate-400" }) : /* @__PURE__ */ jsxRuntime.jsx(outline.ChevronRightIcon, { className: "h-3.5 w-3.5 flex-shrink-0 text-slate-400" }),
|
|
4093
4054
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-5 w-5 flex-shrink-0 items-center justify-center rounded bg-gradient-to-br ${gradient}`, children: IconComponent && /* @__PURE__ */ jsxRuntime.jsx(IconComponent, { className: "h-3 w-3 text-white" }) }),
|
|
4094
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-sm font-medium text-
|
|
4095
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-auto flex-shrink-0 text-[10px] text-
|
|
4055
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-sm font-medium text-slate-900 dark:text-white", children: entry.nodeLabel }),
|
|
4056
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-auto flex-shrink-0 text-[10px] text-slate-400 dark:text-slate-500", children: [
|
|
4096
4057
|
entry.variables.length,
|
|
4097
4058
|
" ",
|
|
4098
4059
|
translations("variables")
|
|
@@ -4100,32 +4061,32 @@ function VariableInspector({ open, onClose }) {
|
|
|
4100
4061
|
]
|
|
4101
4062
|
}
|
|
4102
4063
|
),
|
|
4103
|
-
isExpanded && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-
|
|
4064
|
+
isExpanded && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-white/40 dark:bg-white/[0.04] backdrop-blur-sm px-4 pb-2", children: entry.variables.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "py-2 pl-9 text-xs italic text-slate-400 dark:text-slate-500", children: translations("noVariables") }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
4104
4065
|
inputVariables.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "pl-9 pt-1", children: [
|
|
4105
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1 text-[10px] font-medium uppercase tracking-wider text-
|
|
4066
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1 text-[10px] font-medium uppercase tracking-wider text-slate-400 dark:text-slate-500", children: translations("inputs") }),
|
|
4106
4067
|
inputVariables.map((variable, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4107
4068
|
"div",
|
|
4108
4069
|
{
|
|
4109
4070
|
className: "flex items-center gap-2 py-0.5",
|
|
4110
4071
|
children: [
|
|
4111
4072
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "h-1.5 w-1.5 rounded-full bg-blue-400" }),
|
|
4112
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-
|
|
4113
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded bg-
|
|
4073
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-slate-700 dark:text-slate-300", children: variable.name }),
|
|
4074
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded bg-slate-200 px-1 py-0.5 text-[9px] text-slate-500 dark:bg-slate-700 dark:text-slate-400", children: variable.variableType })
|
|
4114
4075
|
]
|
|
4115
4076
|
},
|
|
4116
4077
|
`${variable.name}-${index}`
|
|
4117
4078
|
))
|
|
4118
4079
|
] }),
|
|
4119
4080
|
outputVariables.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "pl-9 pt-1", children: [
|
|
4120
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1 text-[10px] font-medium uppercase tracking-wider text-
|
|
4081
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1 text-[10px] font-medium uppercase tracking-wider text-slate-400 dark:text-slate-500", children: translations("outputs") }),
|
|
4121
4082
|
outputVariables.map((variable, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4122
4083
|
"div",
|
|
4123
4084
|
{
|
|
4124
4085
|
className: "flex items-center gap-2 py-0.5",
|
|
4125
4086
|
children: [
|
|
4126
4087
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "h-1.5 w-1.5 rounded-full bg-green-400" }),
|
|
4127
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-
|
|
4128
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded bg-
|
|
4088
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-slate-700 dark:text-slate-300", children: variable.name }),
|
|
4089
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded bg-slate-200 px-1 py-0.5 text-[9px] text-slate-500 dark:bg-slate-700 dark:text-slate-400", children: variable.variableType })
|
|
4129
4090
|
]
|
|
4130
4091
|
},
|
|
4131
4092
|
`${variable.name}-${index}`
|
|
@@ -4144,7 +4105,7 @@ function RunInputDialog({
|
|
|
4144
4105
|
onRun
|
|
4145
4106
|
}) {
|
|
4146
4107
|
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.runInputDialog");
|
|
4147
|
-
const nodes =
|
|
4108
|
+
const nodes = chunk4Z5NZINA_js.useWorkflowStore((state) => state.nodes);
|
|
4148
4109
|
const [values, setValues] = react.useState({});
|
|
4149
4110
|
const inputVariableNames = react.useMemo(() => {
|
|
4150
4111
|
const storeStartNode = nodes.find((node) => node.type === "start");
|
|
@@ -4171,7 +4132,7 @@ function RunInputDialog({
|
|
|
4171
4132
|
}, [onClose]);
|
|
4172
4133
|
if (!open) return null;
|
|
4173
4134
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4174
|
-
|
|
4135
|
+
chunkRWZ2PLMQ_js.GlassModal,
|
|
4175
4136
|
{
|
|
4176
4137
|
open,
|
|
4177
4138
|
onClose: handleClose,
|
|
@@ -4182,7 +4143,7 @@ function RunInputDialog({
|
|
|
4182
4143
|
/* @__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: [
|
|
4183
4144
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300", children: variableName }),
|
|
4184
4145
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4185
|
-
|
|
4146
|
+
chunkRWZ2PLMQ_js.Input,
|
|
4186
4147
|
{
|
|
4187
4148
|
value: values[variableName] ?? "",
|
|
4188
4149
|
onChange: (event) => handleValueChange(variableName, event.target.value),
|
|
@@ -4191,8 +4152,8 @@ function RunInputDialog({
|
|
|
4191
4152
|
)
|
|
4192
4153
|
] }, variableName)) }),
|
|
4193
4154
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-4 flex items-center justify-end gap-2", children: [
|
|
4194
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4195
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4155
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { size: "sm", plain: true, onClick: handleClose, children: t("cancel") }),
|
|
4156
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkEBARYRSA_js.Button, { size: "sm", gradient: true, onClick: handleSubmit, children: [
|
|
4196
4157
|
/* @__PURE__ */ jsxRuntime.jsx(outline.PlayIcon, { className: "h-3.5 w-3.5", "data-slot": "icon" }),
|
|
4197
4158
|
t("run")
|
|
4198
4159
|
] })
|
|
@@ -4205,10 +4166,10 @@ var STATUS_STYLES = {
|
|
|
4205
4166
|
completed: { icon: outline.CheckCircleIcon, colorClass: "text-green-500" },
|
|
4206
4167
|
failed: { icon: outline.ExclamationCircleIcon, colorClass: "text-red-500" },
|
|
4207
4168
|
running: { icon: outline.ArrowPathIcon, colorClass: "text-blue-500 animate-spin motion-reduce:animate-none" },
|
|
4208
|
-
pending: { icon: outline.ClockIcon, colorClass: "text-
|
|
4169
|
+
pending: { icon: outline.ClockIcon, colorClass: "text-slate-400" },
|
|
4209
4170
|
success: { icon: outline.CheckCircleIcon, colorClass: "text-green-500" },
|
|
4210
4171
|
error: { icon: outline.ExclamationCircleIcon, colorClass: "text-red-500" },
|
|
4211
|
-
skipped: { icon: outline.ClockIcon, colorClass: "text-
|
|
4172
|
+
skipped: { icon: outline.ClockIcon, colorClass: "text-slate-400" }
|
|
4212
4173
|
};
|
|
4213
4174
|
function formatDuration3(durationMs) {
|
|
4214
4175
|
if (durationMs === null) return "\u2014";
|
|
@@ -4225,8 +4186,8 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
|
|
|
4225
4186
|
const [isLoadingRuns, setIsLoadingRuns] = react.useState(false);
|
|
4226
4187
|
const [selectedRun, setSelectedRun] = react.useState(null);
|
|
4227
4188
|
const [selectedNode, setSelectedNode] = react.useState(null);
|
|
4228
|
-
const isRunning =
|
|
4229
|
-
const nodeResults =
|
|
4189
|
+
const isRunning = chunk4Z5NZINA_js.useWorkflowStore((state) => state.isRunning);
|
|
4190
|
+
const nodeResults = chunk4Z5NZINA_js.useWorkflowStore((state) => state.nodeResults);
|
|
4230
4191
|
const refreshRuns = react.useCallback(async () => {
|
|
4231
4192
|
setIsLoadingRuns(true);
|
|
4232
4193
|
try {
|
|
@@ -4245,21 +4206,22 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
|
|
|
4245
4206
|
if (!open) return null;
|
|
4246
4207
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
4247
4208
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "fixed inset-x-0 top-[120px] bottom-0 z-40 bg-black/10 backdrop-blur-[1px]", onClick: onClose }),
|
|
4248
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "fixed right-0 top-[120px] bottom-0 z-50 w-96 overflow-hidden border-l border-white/20 bg-white/95 shadow-2xl backdrop-blur-xl dark:border-
|
|
4249
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between border-b
|
|
4250
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-
|
|
4209
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "fixed right-0 top-[120px] bottom-0 z-50 w-96 overflow-hidden border-l border-white/20 bg-white/95 shadow-2xl backdrop-blur-xl dark:border-slate-700/50 dark:bg-slate-800/95", children: [
|
|
4210
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-divider flex items-center justify-between border-b px-4 py-3", children: [
|
|
4211
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: t("title") }),
|
|
4251
4212
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4252
|
-
|
|
4213
|
+
chunkEBARYRSA_js.IconButton,
|
|
4253
4214
|
{
|
|
4254
|
-
|
|
4215
|
+
label: t("close"),
|
|
4216
|
+
variant: "ghost",
|
|
4217
|
+
size: "sm",
|
|
4255
4218
|
onClick: onClose,
|
|
4256
|
-
|
|
4257
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(outline.XMarkIcon, { className: "h-4 w-4" })
|
|
4219
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.XMarkIcon, { className: "h-4 w-4" })
|
|
4258
4220
|
}
|
|
4259
4221
|
)
|
|
4260
4222
|
] }),
|
|
4261
4223
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col overflow-hidden", children: [
|
|
4262
|
-
isRunning && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "
|
|
4224
|
+
isRunning && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-divider border-b px-4 py-3", children: [
|
|
4263
4225
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center gap-2", children: [
|
|
4264
4226
|
/* @__PURE__ */ jsxRuntime.jsx(outline.ArrowPathIcon, { className: "h-4 w-4 animate-spin motion-reduce:animate-none text-blue-500" }),
|
|
4265
4227
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-semibold text-blue-600 dark:text-blue-400", children: t("activeRun") })
|
|
@@ -4267,46 +4229,46 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
|
|
|
4267
4229
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-h-60 space-y-1 overflow-y-auto", children: Object.entries(nodeResults).map(([nodeId, result]) => {
|
|
4268
4230
|
const statusStyle = STATUS_STYLES[result.status] ?? STATUS_STYLES.pending;
|
|
4269
4231
|
const StatusIcon = statusStyle.icon;
|
|
4270
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between rounded-lg px-2 py-1.5 text-xs hover:bg-
|
|
4232
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between rounded-lg px-2 py-1.5 text-xs hover:bg-white/40 dark:hover:bg-white/[0.04]", children: [
|
|
4271
4233
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
4272
4234
|
/* @__PURE__ */ jsxRuntime.jsx(StatusIcon, { className: `h-3.5 w-3.5 ${statusStyle.colorClass}` }),
|
|
4273
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-
|
|
4235
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-slate-700 dark:text-slate-300", children: nodeId.slice(0, 8) })
|
|
4274
4236
|
] }),
|
|
4275
|
-
result.durationMs !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
4237
|
+
result.durationMs !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-400", children: formatDuration3(result.durationMs) })
|
|
4276
4238
|
] }, nodeId);
|
|
4277
4239
|
}) })
|
|
4278
4240
|
] }),
|
|
4279
|
-
selectedNode && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "
|
|
4241
|
+
selectedNode && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-divider border-b px-4 py-3", children: [
|
|
4280
4242
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
4281
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-semibold text-
|
|
4282
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4243
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-semibold text-slate-900 dark:text-white", children: t("nodeDetail") }),
|
|
4244
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { type: "button", plain: true, size: "xs", onClick: () => setSelectedNode(null), children: t("close") })
|
|
4283
4245
|
] }),
|
|
4284
4246
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2 text-xs", children: [
|
|
4285
4247
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
|
|
4286
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
4287
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: STATUS_STYLES[selectedNode.status]?.colorClass ?? "text-
|
|
4248
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-500", children: t("status") }),
|
|
4249
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: STATUS_STYLES[selectedNode.status]?.colorClass ?? "text-slate-400", children: t(selectedNode.status) })
|
|
4288
4250
|
] }),
|
|
4289
4251
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
|
|
4290
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
4291
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
4252
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-500", children: t("duration") }),
|
|
4253
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-700 dark:text-slate-300", children: formatDuration3(selectedNode.durationMs) })
|
|
4292
4254
|
] }),
|
|
4293
4255
|
selectedNode.error && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4294
4256
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-red-500", children: t("error") }),
|
|
4295
4257
|
/* @__PURE__ */ jsxRuntime.jsx("pre", { className: "mt-1 max-h-20 overflow-auto whitespace-pre-wrap rounded bg-red-50 p-2 text-[10px] text-red-700 dark:bg-red-900/20 dark:text-red-300", children: selectedNode.error })
|
|
4296
4258
|
] }),
|
|
4297
4259
|
Object.keys(selectedNode.outputs).length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4298
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
4299
|
-
/* @__PURE__ */ jsxRuntime.jsx("pre", { className: "mt-1 max-h-32 overflow-auto whitespace-pre-wrap rounded bg-
|
|
4260
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-500", children: t("outputs") }),
|
|
4261
|
+
/* @__PURE__ */ jsxRuntime.jsx("pre", { className: "mt-1 max-h-32 overflow-auto whitespace-pre-wrap rounded bg-white/40 dark:bg-white/[0.04] backdrop-blur-sm p-2 text-[10px] text-slate-700 dark:text-slate-300", children: JSON.stringify(selectedNode.outputs, null, 2) })
|
|
4300
4262
|
] })
|
|
4301
4263
|
] })
|
|
4302
4264
|
] }),
|
|
4303
4265
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 overflow-y-auto px-4 py-3", children: [
|
|
4304
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "mb-2 text-xs font-semibold text-
|
|
4266
|
+
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "mb-2 text-xs font-semibold text-slate-500 dark:text-slate-400", children: t("runHistory") }),
|
|
4305
4267
|
isLoadingRuns && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-2", children: [1, 2, 3].map((index) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shimmer h-14 rounded-lg" }, index)) }),
|
|
4306
4268
|
!isLoadingRuns && runs.length === 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "py-8 text-center", children: [
|
|
4307
|
-
/* @__PURE__ */ jsxRuntime.jsx(outline.ClockIcon, { className: "mx-auto mb-2 h-8 w-8 text-
|
|
4308
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-
|
|
4309
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[10px] text-
|
|
4269
|
+
/* @__PURE__ */ jsxRuntime.jsx(outline.ClockIcon, { className: "mx-auto mb-2 h-8 w-8 text-slate-300 dark:text-slate-600" }),
|
|
4270
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: t("noRuns") }),
|
|
4271
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[10px] text-slate-400 dark:text-slate-500", children: t("noRunsDescription") })
|
|
4310
4272
|
] }),
|
|
4311
4273
|
!isLoadingRuns && runs.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1.5", children: runs.map((run) => {
|
|
4312
4274
|
const statusStyle = STATUS_STYLES[run.status] ?? STATUS_STYLES.pending;
|
|
@@ -4320,14 +4282,14 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
|
|
|
4320
4282
|
setSelectedRun(isSelected ? null : run);
|
|
4321
4283
|
setSelectedNode(null);
|
|
4322
4284
|
},
|
|
4323
|
-
className: `w-full rounded-lg border px-3 py-2.5 text-left transition-colors ${isSelected ? "border-blue-200 bg-blue-50/50 dark:border-blue-800 dark:bg-blue-900/20" : "border-
|
|
4285
|
+
className: `w-full rounded-lg border px-3 py-2.5 text-left transition-colors ${isSelected ? "border-blue-200 bg-blue-50/50 dark:border-blue-800 dark:bg-blue-900/20" : "border-slate-100 hover:border-slate-200 hover:bg-white/40 dark:border-slate-700/50 dark:hover:border-slate-600 dark:hover:bg-white/[0.04]"}`,
|
|
4324
4286
|
children: [
|
|
4325
4287
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
|
|
4326
4288
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
4327
4289
|
/* @__PURE__ */ jsxRuntime.jsx(StatusIcon, { className: `h-3.5 w-3.5 ${statusStyle.colorClass}` }),
|
|
4328
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-medium text-
|
|
4290
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-medium text-slate-900 dark:text-white", children: formatTimestamp2(run.createdAt) })
|
|
4329
4291
|
] }),
|
|
4330
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-
|
|
4292
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-slate-400", children: formatDuration3(run.totalDurationMs) })
|
|
4331
4293
|
] }),
|
|
4332
4294
|
run.error && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 truncate text-[10px] text-red-500", children: run.error })
|
|
4333
4295
|
]
|
|
@@ -4336,7 +4298,7 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
|
|
|
4336
4298
|
);
|
|
4337
4299
|
}) }),
|
|
4338
4300
|
selectedRun && selectedRun.nodeResults.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-3 space-y-1", children: [
|
|
4339
|
-
/* @__PURE__ */ jsxRuntime.jsx("h5", { className: "mb-1.5 text-[10px] font-semibold uppercase tracking-wider text-
|
|
4301
|
+
/* @__PURE__ */ jsxRuntime.jsx("h5", { className: "mb-1.5 text-[10px] font-semibold uppercase tracking-wider text-slate-400", children: "Nodes" }),
|
|
4340
4302
|
selectedRun.nodeResults.map((nodeResult) => {
|
|
4341
4303
|
const nodeStatusStyle = STATUS_STYLES[nodeResult.status] ?? STATUS_STYLES.pending;
|
|
4342
4304
|
const NodeStatusIcon = nodeStatusStyle.icon;
|
|
@@ -4345,13 +4307,13 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
|
|
|
4345
4307
|
{
|
|
4346
4308
|
type: "button",
|
|
4347
4309
|
onClick: () => setSelectedNode(nodeResult),
|
|
4348
|
-
className: "flex w-full items-center justify-between rounded px-2 py-1.5 text-xs hover:bg-
|
|
4310
|
+
className: "flex w-full items-center justify-between rounded px-2 py-1.5 text-xs hover:bg-white/40 dark:hover:bg-white/[0.04]",
|
|
4349
4311
|
children: [
|
|
4350
4312
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
4351
4313
|
/* @__PURE__ */ jsxRuntime.jsx(NodeStatusIcon, { className: `h-3 w-3 ${nodeStatusStyle.colorClass}` }),
|
|
4352
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
4314
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-700 dark:text-slate-300", children: nodeResult.nodeType })
|
|
4353
4315
|
] }),
|
|
4354
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-
|
|
4316
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-slate-400", children: formatDuration3(nodeResult.durationMs) })
|
|
4355
4317
|
]
|
|
4356
4318
|
},
|
|
4357
4319
|
nodeResult.nodeId
|
|
@@ -4404,7 +4366,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
|
|
|
4404
4366
|
onAutoSaveGraph(graph);
|
|
4405
4367
|
}, [onAutoSaveGraph, onGraphSnapshot]);
|
|
4406
4368
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4407
|
-
|
|
4369
|
+
chunk4Z5NZINA_js.Workspace,
|
|
4408
4370
|
{
|
|
4409
4371
|
...workspaceProps,
|
|
4410
4372
|
onGraphChange: handleGraphChange
|
|
@@ -4412,7 +4374,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
|
|
|
4412
4374
|
);
|
|
4413
4375
|
});
|
|
4414
4376
|
function DynamicIslandConfirm2(props) {
|
|
4415
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4377
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkRWZ2PLMQ_js.DynamicIslandConfirm, { ...props });
|
|
4416
4378
|
}
|
|
4417
4379
|
var JSON_PREVIEW_LINE_LIMIT = 50;
|
|
4418
4380
|
function DslExportModal({ open, onClose, workflow, graph }) {
|
|
@@ -4466,7 +4428,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
|
|
|
4466
4428
|
}, [jsonString, workflow.name, workflow.version]);
|
|
4467
4429
|
if (!open) return null;
|
|
4468
4430
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4469
|
-
|
|
4431
|
+
chunkRWZ2PLMQ_js.GlassModal,
|
|
4470
4432
|
{
|
|
4471
4433
|
open,
|
|
4472
4434
|
onClose,
|
|
@@ -4474,41 +4436,41 @@ function DslExportModal({ open, onClose, workflow, graph }) {
|
|
|
4474
4436
|
subtitle: translations("description"),
|
|
4475
4437
|
maxWidth: "2xl",
|
|
4476
4438
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": "dsl-export-modal", children: [
|
|
4477
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
4439
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "liquid-divider px-1 py-4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-4 text-sm", children: [
|
|
4478
4440
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4479
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
4480
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-
|
|
4441
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-500 dark:text-slate-400", children: translations("workflowName") }),
|
|
4442
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-slate-900 dark:text-white", children: workflow.name })
|
|
4481
4443
|
] }),
|
|
4482
4444
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4483
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
4484
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "font-medium text-
|
|
4445
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-500 dark:text-slate-400", children: translations("version") }),
|
|
4446
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "font-medium text-slate-900 dark:text-white", children: [
|
|
4485
4447
|
"v",
|
|
4486
4448
|
workflow.version
|
|
4487
4449
|
] })
|
|
4488
4450
|
] }),
|
|
4489
4451
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4490
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
4491
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-
|
|
4452
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-500 dark:text-slate-400", children: translations("nodes") }),
|
|
4453
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-slate-900 dark:text-white", children: graph.nodes.length })
|
|
4492
4454
|
] }),
|
|
4493
4455
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4494
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
4495
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-
|
|
4456
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-500 dark:text-slate-400", children: translations("edges") }),
|
|
4457
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-slate-900 dark:text-white", children: graph.edges.length })
|
|
4496
4458
|
] })
|
|
4497
4459
|
] }) }),
|
|
4498
4460
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-1 py-4", children: [
|
|
4499
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 text-xs font-medium uppercase tracking-wider text-
|
|
4461
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 text-xs font-medium uppercase tracking-wider text-slate-400 dark:text-slate-500", children: translations("preview") }),
|
|
4500
4462
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4501
4463
|
"pre",
|
|
4502
4464
|
{
|
|
4503
|
-
className: "max-h-64 overflow-auto rounded-lg
|
|
4465
|
+
className: "liquid-surface max-h-64 overflow-auto rounded-lg p-3 text-xs text-slate-700 dark:text-slate-300",
|
|
4504
4466
|
"data-testid": "export-json-preview",
|
|
4505
4467
|
children: previewLines
|
|
4506
4468
|
}
|
|
4507
4469
|
)
|
|
4508
4470
|
] }),
|
|
4509
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-end gap-3 border-t border-
|
|
4471
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-end gap-3 border-t border-slate-200 px-1 py-4 dark:border-slate-700", children: [
|
|
4510
4472
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4511
|
-
|
|
4473
|
+
chunkEBARYRSA_js.Button,
|
|
4512
4474
|
{
|
|
4513
4475
|
type: "button",
|
|
4514
4476
|
onClick: handleCopyToClipboard,
|
|
@@ -4525,7 +4487,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
|
|
|
4525
4487
|
}
|
|
4526
4488
|
),
|
|
4527
4489
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4528
|
-
|
|
4490
|
+
chunkEBARYRSA_js.Button,
|
|
4529
4491
|
{
|
|
4530
4492
|
type: "button",
|
|
4531
4493
|
onClick: handleDownloadJson,
|
|
@@ -4684,7 +4646,7 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4684
4646
|
}, []);
|
|
4685
4647
|
if (!open) return null;
|
|
4686
4648
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4687
|
-
|
|
4649
|
+
chunkRWZ2PLMQ_js.GlassModal,
|
|
4688
4650
|
{
|
|
4689
4651
|
open,
|
|
4690
4652
|
onClose,
|
|
@@ -4724,7 +4686,7 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4724
4686
|
) : /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": "import-validation-result", children: [
|
|
4725
4687
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4 flex items-center justify-between", children: [
|
|
4726
4688
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: fileName }),
|
|
4727
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4689
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { type: "button", plain: true, size: "sm", onClick: handleReset, children: translations("chooseAnother") })
|
|
4728
4690
|
] }),
|
|
4729
4691
|
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: [
|
|
4730
4692
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
@@ -4752,9 +4714,9 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4752
4714
|
] })
|
|
4753
4715
|
] }) }),
|
|
4754
4716
|
/* @__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: [
|
|
4755
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4717
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { type: "button", onClick: onClose, outline: true, size: "sm", "data-testid": "import-cancel-button", children: translations("cancel") }),
|
|
4756
4718
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4757
|
-
|
|
4719
|
+
chunkEBARYRSA_js.Button,
|
|
4758
4720
|
{
|
|
4759
4721
|
type: "button",
|
|
4760
4722
|
onClick: handleImport,
|
|
@@ -4775,14 +4737,14 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4775
4737
|
}
|
|
4776
4738
|
|
|
4777
4739
|
// src/astrlabe/store/selectors.ts
|
|
4778
|
-
var useCanUndo = () =>
|
|
4779
|
-
var useCanRedo = () =>
|
|
4780
|
-
var useHasCopied = () =>
|
|
4781
|
-
var useContextMenu = () =>
|
|
4782
|
-
var useEditingNodeId = () =>
|
|
4783
|
-
var useSelectedNodeCount = () =>
|
|
4784
|
-
var useIsRunning = () =>
|
|
4785
|
-
var useNodeResults = () =>
|
|
4740
|
+
var useCanUndo = () => chunk4Z5NZINA_js.useWorkflowStore((state) => state.past.length > 0);
|
|
4741
|
+
var useCanRedo = () => chunk4Z5NZINA_js.useWorkflowStore((state) => state.future.length > 0);
|
|
4742
|
+
var useHasCopied = () => chunk4Z5NZINA_js.useWorkflowStore((state) => state.clipboard !== null);
|
|
4743
|
+
var useContextMenu = () => chunk4Z5NZINA_js.useWorkflowStore((state) => state.contextMenu);
|
|
4744
|
+
var useEditingNodeId = () => chunk4Z5NZINA_js.useWorkflowStore((state) => state.editingNodeId);
|
|
4745
|
+
var useSelectedNodeCount = () => chunk4Z5NZINA_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
|
|
4746
|
+
var useIsRunning = () => chunk4Z5NZINA_js.useWorkflowStore((state) => state.isRunning);
|
|
4747
|
+
var useNodeResults = () => chunk4Z5NZINA_js.useWorkflowStore((state) => state.nodeResults);
|
|
4786
4748
|
var DEFAULT_MAX_HISTORY = 50;
|
|
4787
4749
|
function useUndoRedo(nodes, edges, setNodes, setEdges, maxHistory = DEFAULT_MAX_HISTORY) {
|
|
4788
4750
|
const pastRef = react.useRef([]);
|
|
@@ -5106,5 +5068,5 @@ exports.useNodeResults = useNodeResults;
|
|
|
5106
5068
|
exports.useSelectedNodeCount = useSelectedNodeCount;
|
|
5107
5069
|
exports.useSubworkflowStore = useSubworkflowStore;
|
|
5108
5070
|
exports.useUndoRedo = useUndoRedo;
|
|
5109
|
-
//# sourceMappingURL=chunk-
|
|
5110
|
-
//# sourceMappingURL=chunk-
|
|
5071
|
+
//# sourceMappingURL=chunk-UPWJRCAD.js.map
|
|
5072
|
+
//# sourceMappingURL=chunk-UPWJRCAD.js.map
|