@datatechsolutions/ui 3.12.1 → 3.13.0
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/index.js +108 -108
- package/dist/astrlabe/index.mjs +4 -4
- package/dist/astrlabe/workflow-canvas.js +4 -4
- package/dist/astrlabe/workflow-canvas.mjs +3 -3
- package/dist/{chunk-HTODLUKG.js → chunk-2ECLDHAT.js} +12 -12
- package/dist/{chunk-HTODLUKG.js.map → chunk-2ECLDHAT.js.map} +1 -1
- package/dist/{chunk-NQGLSM46.mjs → chunk-4VHFGW7I.mjs} +4 -4
- package/dist/{chunk-NQGLSM46.mjs.map → chunk-4VHFGW7I.mjs.map} +1 -1
- package/dist/{chunk-ULKZGM2T.js → chunk-5ETT54QS.js} +37 -37
- package/dist/{chunk-ULKZGM2T.js.map → chunk-5ETT54QS.js.map} +1 -1
- package/dist/{chunk-N5GQIT7A.mjs → chunk-6KDTVSZT.mjs} +7 -7
- package/dist/{chunk-N5GQIT7A.mjs.map → chunk-6KDTVSZT.mjs.map} +1 -1
- package/dist/{chunk-VYU2FYDE.js → chunk-6YTYD4P5.js} +66 -66
- package/dist/{chunk-VYU2FYDE.js.map → chunk-6YTYD4P5.js.map} +1 -1
- package/dist/{chunk-YYNGXKUE.mjs → chunk-7TYNV6SY.mjs} +4 -4
- package/dist/{chunk-YYNGXKUE.mjs.map → chunk-7TYNV6SY.mjs.map} +1 -1
- package/dist/{chunk-RT264BD4.mjs → chunk-AHNH2PMI.mjs} +4 -4
- package/dist/{chunk-RT264BD4.mjs.map → chunk-AHNH2PMI.mjs.map} +1 -1
- package/dist/{chunk-RBH723MG.mjs → chunk-AKWCT53S.mjs} +4 -4
- package/dist/{chunk-RBH723MG.mjs.map → chunk-AKWCT53S.mjs.map} +1 -1
- package/dist/{chunk-MYHBXIO2.js → chunk-AMCFAGK3.js} +34 -34
- package/dist/{chunk-MYHBXIO2.js.map → chunk-AMCFAGK3.js.map} +1 -1
- package/dist/{chunk-UVFWKDRO.mjs → chunk-ANFSQJNI.mjs} +4 -4
- package/dist/{chunk-UVFWKDRO.mjs.map → chunk-ANFSQJNI.mjs.map} +1 -1
- package/dist/{chunk-BPMYNE7S.mjs → chunk-CSOMZ5UM.mjs} +4 -4
- package/dist/{chunk-BPMYNE7S.mjs.map → chunk-CSOMZ5UM.mjs.map} +1 -1
- package/dist/{chunk-FKRIQYRG.js → chunk-D5OTZGA2.js} +126 -127
- package/dist/chunk-D5OTZGA2.js.map +1 -0
- package/dist/{chunk-V3UZCOZI.js → chunk-IIRS5XZY.js} +32 -32
- package/dist/{chunk-V3UZCOZI.js.map → chunk-IIRS5XZY.js.map} +1 -1
- package/dist/{chunk-Z75CEP4V.js → chunk-K5567JM5.js} +13 -13
- package/dist/{chunk-Z75CEP4V.js.map → chunk-K5567JM5.js.map} +1 -1
- package/dist/{chunk-OM5NNUD2.mjs → chunk-KWH7JIRP.mjs} +3 -3
- package/dist/{chunk-OM5NNUD2.mjs.map → chunk-KWH7JIRP.mjs.map} +1 -1
- package/dist/{chunk-MFF37C24.js → chunk-MQDCUBVW.js} +150 -150
- package/dist/{chunk-MFF37C24.js.map → chunk-MQDCUBVW.js.map} +1 -1
- package/dist/{chunk-OW5LSEHU.mjs → chunk-MSKKNPRE.mjs} +3 -3
- package/dist/{chunk-OW5LSEHU.mjs.map → chunk-MSKKNPRE.mjs.map} +1 -1
- package/dist/{chunk-PLEWG2L7.js → chunk-N4YT3QA5.js} +15 -15
- package/dist/{chunk-PLEWG2L7.js.map → chunk-N4YT3QA5.js.map} +1 -1
- package/dist/{chunk-XGAPZT4J.js → chunk-NF5DDM5V.js} +40 -40
- package/dist/{chunk-XGAPZT4J.js.map → chunk-NF5DDM5V.js.map} +1 -1
- package/dist/{chunk-NK4H3JWN.mjs → chunk-OC4AOYU5.mjs} +4 -4
- package/dist/{chunk-NK4H3JWN.mjs.map → chunk-OC4AOYU5.mjs.map} +1 -1
- package/dist/{chunk-ID55ABBB.js → chunk-OY5HUZSD.js} +44 -44
- package/dist/{chunk-ID55ABBB.js.map → chunk-OY5HUZSD.js.map} +1 -1
- package/dist/{chunk-5OZTI7TR.js → chunk-PPIUMCUZ.js} +6 -6
- package/dist/{chunk-5OZTI7TR.js.map → chunk-PPIUMCUZ.js.map} +1 -1
- package/dist/{chunk-WLNY3GVM.mjs → chunk-QGRTV35L.mjs} +7 -7
- package/dist/{chunk-WLNY3GVM.mjs.map → chunk-QGRTV35L.mjs.map} +1 -1
- package/dist/{chunk-TDNBO3V7.js → chunk-SDYKXLCU.js} +56 -56
- package/dist/{chunk-TDNBO3V7.js.map → chunk-SDYKXLCU.js.map} +1 -1
- package/dist/{chunk-5TLKFOEL.mjs → chunk-UPYACFZJ.mjs} +5 -5
- package/dist/{chunk-5TLKFOEL.mjs.map → chunk-UPYACFZJ.mjs.map} +1 -1
- package/dist/{chunk-EDI46QA7.mjs → chunk-UXHJS2SH.mjs} +4 -5
- package/dist/chunk-UXHJS2SH.mjs.map +1 -0
- package/dist/{chunk-LRNVB7MO.js → chunk-VI4IUTMX.js} +4 -4
- package/dist/{chunk-LRNVB7MO.js.map → chunk-VI4IUTMX.js.map} +1 -1
- package/dist/{chunk-4D23CQZM.mjs → chunk-VIB42VMZ.mjs} +5 -5
- package/dist/{chunk-4D23CQZM.mjs.map → chunk-VIB42VMZ.mjs.map} +1 -1
- package/dist/{chunk-QSCWV47U.js → chunk-WOTKBKS6.js} +31 -31
- package/dist/{chunk-QSCWV47U.js.map → chunk-WOTKBKS6.js.map} +1 -1
- package/dist/{chunk-YXN2K77G.js → chunk-Y5VN4SPH.js} +26 -3
- package/dist/chunk-Y5VN4SPH.js.map +1 -0
- package/dist/{chunk-7VJ7CMMT.mjs → chunk-ZEFNBGYI.mjs} +26 -3
- package/dist/chunk-ZEFNBGYI.mjs.map +1 -0
- package/dist/{chunk-PIIY2Z2O.mjs → chunk-ZRCXDKBE.mjs} +3 -3
- package/dist/{chunk-PIIY2Z2O.mjs.map → chunk-ZRCXDKBE.mjs.map} +1 -1
- package/dist/index.js +668 -668
- package/dist/index.mjs +2 -2
- package/dist/lib/i18n-context.d.mts +12 -4
- package/dist/lib/i18n-context.d.ts +12 -4
- package/dist/lib/i18n-context.js +6 -6
- package/dist/lib/i18n-context.mjs +1 -1
- package/dist/platform/admin/index.js +10 -10
- package/dist/platform/admin/index.mjs +4 -4
- package/dist/platform/agents-workspace.js +7 -7
- package/dist/platform/agents-workspace.mjs +6 -6
- package/dist/platform/app-shell.js +4 -4
- package/dist/platform/app-shell.mjs +3 -3
- package/dist/platform/auth/index.js +22 -22
- package/dist/platform/auth/index.mjs +4 -4
- package/dist/platform/billing/index.js +4 -4
- package/dist/platform/billing/index.mjs +3 -3
- package/dist/platform/impersonation/index.js +4 -4
- package/dist/platform/impersonation/index.mjs +3 -3
- package/dist/platform/index.d.mts +1 -1
- package/dist/platform/index.d.ts +1 -1
- package/dist/platform/index.js +96 -96
- package/dist/platform/index.mjs +18 -18
- package/dist/platform/pages/index.js +346 -346
- package/dist/platform/pages/index.mjs +8 -8
- package/dist/platform/settings/index.js +7 -7
- package/dist/platform/settings/index.mjs +6 -6
- package/dist/platform/workflow-canvas-shell.js +5 -5
- package/dist/platform/workflow-canvas-shell.mjs +4 -4
- package/package.json +2 -1
- package/dist/chunk-7VJ7CMMT.mjs.map +0 -1
- package/dist/chunk-EDI46QA7.mjs.map +0 -1
- package/dist/chunk-FKRIQYRG.js.map +0 -1
- package/dist/chunk-YXN2K77G.js.map +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
4
|
+
var chunkD5OTZGA2_js = require('./chunk-D5OTZGA2.js');
|
|
5
|
+
var chunk5ETT54QS_js = require('./chunk-5ETT54QS.js');
|
|
6
|
+
var chunkY5VN4SPH_js = require('./chunk-Y5VN4SPH.js');
|
|
7
7
|
var chunkBHOT22QL_js = require('./chunk-BHOT22QL.js');
|
|
8
8
|
var chunk72SWXOD5_js = require('./chunk-72SWXOD5.js');
|
|
9
9
|
var react = require('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(chunkD5OTZGA2_js.NodeRunningIndicator, { nodeId: id }),
|
|
45
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
|
|
46
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_js.WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
|
|
47
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_js.NodeCard, { variant: "error", nodeType: "model_provider", width: "w-[280px]", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
48
|
+
chunkD5OTZGA2_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(chunkD5OTZGA2_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-slate-500" }),
|
|
57
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_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(chunkD5OTZGA2_js.NodeRunningIndicator, { nodeId: id }),
|
|
67
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
|
|
68
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_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(chunkD5OTZGA2_js.NodeCard, { compact: isCompact, selected, nodeType: "model_provider", width: "w-[280px]", children: [
|
|
76
76
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
77
|
-
|
|
77
|
+
chunkD5OTZGA2_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,7 +82,7 @@ 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(
|
|
85
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_js.NodeCardMeta, { compact: isCompact, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [
|
|
86
86
|
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "zinc", size: "xs", children: providerLabel }),
|
|
87
87
|
regionLabel && /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "zinc", size: "xs", children: regionLabel }),
|
|
88
88
|
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: isConfigured ? "green" : "amber", size: "xs", children: isConfigured ? "Configured" : "Setup needed" }),
|
|
@@ -94,20 +94,20 @@ 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(chunkD5OTZGA2_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-slate-500" }),
|
|
98
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_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 }) {
|
|
102
|
-
const t =
|
|
102
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
103
103
|
const { config, label, onDelete, onEdit } = data;
|
|
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(chunkD5OTZGA2_js.NodeRunningIndicator, { nodeId: id }),
|
|
108
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-cyan-500" }),
|
|
109
109
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
110
|
-
|
|
110
|
+
chunkD5OTZGA2_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
|
+
chunkD5OTZGA2_js.NodeCardHeader,
|
|
120
120
|
{
|
|
121
|
-
icon: /* @__PURE__ */ jsxRuntime.jsx(
|
|
121
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_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(chunkD5OTZGA2_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(chunkD5OTZGA2_js.NodeCardBadge, { tone: "s3_write", children: t("s3WriteNode") }),
|
|
131
|
+
config.bucket && /* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_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(chunkD5OTZGA2_js.NodeCardDeleteAction, { nodeId: id, onDelete })
|
|
135
135
|
] })
|
|
136
136
|
]
|
|
137
137
|
}
|
|
138
138
|
),
|
|
139
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
139
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkD5OTZGA2_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 }) {
|
|
@@ -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
|
+
chunk5ETT54QS_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
|
+
chunk5ETT54QS_js.FormSelect,
|
|
300
300
|
{
|
|
301
301
|
label: "Type",
|
|
302
302
|
value: field.type,
|
|
@@ -319,7 +319,7 @@ function FieldEditor({
|
|
|
319
319
|
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", plain: true, onClick: onRemove, children: "Remove" })
|
|
320
320
|
] }),
|
|
321
321
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
322
|
-
|
|
322
|
+
chunk5ETT54QS_js.FormInput,
|
|
323
323
|
{
|
|
324
324
|
label: "Description (optional)",
|
|
325
325
|
value: field.description,
|
|
@@ -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(chunkD5OTZGA2_js.FRAMEWORK_META);
|
|
616
616
|
const hasProviderConstraints = connectedProviderTypes.length > 0;
|
|
617
|
-
const compatibleModels =
|
|
617
|
+
const compatibleModels = chunkD5OTZGA2_js.getCompatibleModels(models, selectedFramework);
|
|
618
618
|
const handleFrameworkChange = react.useCallback((newFramework) => {
|
|
619
619
|
setSelectedFramework(newFramework);
|
|
620
|
-
if (!
|
|
621
|
-
const compatible =
|
|
620
|
+
if (!chunkD5OTZGA2_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
|
|
621
|
+
const compatible = chunkD5OTZGA2_js.getCompatibleModels(models, newFramework);
|
|
622
622
|
if (compatible.length > 0) {
|
|
623
623
|
setSelectedModelId(compatible[0].id);
|
|
624
624
|
}
|
|
@@ -629,10 +629,10 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
|
|
|
629
629
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
630
630
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-gray-500 dark:text-gray-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 = chunkD5OTZGA2_js.FRAMEWORK_META[key];
|
|
633
633
|
const isSelected = key === selectedFramework;
|
|
634
|
-
const compatCount =
|
|
635
|
-
const isCompatibleWithProviders = !hasProviderConstraints ||
|
|
634
|
+
const compatCount = chunkD5OTZGA2_js.getCompatibleModels(models, key).length;
|
|
635
|
+
const isCompatibleWithProviders = !hasProviderConstraints || chunkD5OTZGA2_js.isFrameworkCompatibleWithProviders(key, connectedProviderTypes);
|
|
636
636
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
637
637
|
"button",
|
|
638
638
|
{
|
|
@@ -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 = chunkD5OTZGA2_js.isModelCompatibleWithFramework(model.id, selectedFramework);
|
|
668
668
|
const { IconComponent, color, providerLabel } = getModelIcon(model.id);
|
|
669
669
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
670
670
|
"button",
|
|
@@ -822,7 +822,7 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
|
|
|
822
822
|
] }),
|
|
823
823
|
tool.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-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 = chunkD5OTZGA2_js.getFrameworkMeta(framework);
|
|
826
826
|
const isCurrentFw = framework === agentFramework;
|
|
827
827
|
return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: `inline-flex items-center gap-0.5 rounded px-1.5 py-0.5 text-[8px] font-medium ${isCurrentFw ? meta.badgeColor : "bg-gray-100 text-gray-500 dark:bg-white/5 dark:text-gray-400"}`, children: [
|
|
828
828
|
/* @__PURE__ */ jsxRuntime.jsx(meta.IconComponent, { className: "h-2.5 w-2.5" }),
|
|
@@ -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
|
+
chunk5ETT54QS_js.ToggleSwitch,
|
|
843
843
|
{
|
|
844
844
|
checked: isEnabled,
|
|
845
845
|
onChange: () => onToggle(tool.agentToolId),
|
|
@@ -887,7 +887,7 @@ 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 =
|
|
890
|
+
const frameworkMeta = chunkD5OTZGA2_js.getFrameworkMeta(selectedFramework);
|
|
891
891
|
const inputCard = "liquid-surface w-full rounded-lg px-3 py-1.5 text-sm text-gray-800 outline-none transition-colors focus:ring-1 focus:ring-indigo-300/40 dark:text-gray-200 dark:focus:ring-indigo-500/20";
|
|
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(
|
|
@@ -1030,10 +1030,10 @@ function EngineTab({
|
|
|
1030
1030
|
] }) });
|
|
1031
1031
|
}
|
|
1032
1032
|
function AgentModal({ onSaved, onPersist }) {
|
|
1033
|
-
const t =
|
|
1034
|
-
const activeModal =
|
|
1035
|
-
const agentData =
|
|
1036
|
-
const closeModal =
|
|
1033
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
1034
|
+
const activeModal = chunkD5OTZGA2_js.useModalStore((s) => s.activeModal);
|
|
1035
|
+
const agentData = chunkD5OTZGA2_js.useModalStore((s) => s.agentData);
|
|
1036
|
+
const closeModal = chunkD5OTZGA2_js.useModalStore((s) => s.closeModal);
|
|
1037
1037
|
const open = activeModal === "agent";
|
|
1038
1038
|
const agent = agentData?.agent ?? null;
|
|
1039
1039
|
const models = agentData?.models ?? [];
|
|
@@ -1181,7 +1181,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1181
1181
|
const fieldLabel = "text-[9px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400";
|
|
1182
1182
|
const avatarInitial = (displayName || agent.name).charAt(0).toUpperCase();
|
|
1183
1183
|
const avatarNode = /* @__PURE__ */ jsxRuntime.jsx(
|
|
1184
|
-
|
|
1184
|
+
chunk5ETT54QS_js.Avatar,
|
|
1185
1185
|
{
|
|
1186
1186
|
src: effectiveAvatarUrl || void 0,
|
|
1187
1187
|
alt: displayName || agent.name,
|
|
@@ -1193,7 +1193,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1193
1193
|
const statusPill = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
1194
1194
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[9px] font-semibold ${status === "active" ? "text-emerald-600 dark:text-emerald-400" : "text-slate-500"}`, children: status === "active" ? t("agentDrawer.statusActive", { _: "Active" }) : t("agentDrawer.statusInactive", { _: "Inactive" }) }),
|
|
1195
1195
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1196
|
-
|
|
1196
|
+
chunk5ETT54QS_js.ToggleSwitch,
|
|
1197
1197
|
{
|
|
1198
1198
|
size: "sm",
|
|
1199
1199
|
color: "green",
|
|
@@ -1207,7 +1207,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1207
1207
|
)
|
|
1208
1208
|
] });
|
|
1209
1209
|
const identityCard = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "liquid-surface rounded-2xl p-3 ring-1 ring-slate-200/50 dark:ring-white/10", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1210
|
-
|
|
1210
|
+
chunk5ETT54QS_js.HeroBlock,
|
|
1211
1211
|
{
|
|
1212
1212
|
icon: avatarNode,
|
|
1213
1213
|
iconBackground: "none",
|
|
@@ -1270,7 +1270,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1270
1270
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `font-medium ${autosaveColor}`, children: autosaveLabel })
|
|
1271
1271
|
] });
|
|
1272
1272
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1273
|
-
|
|
1273
|
+
chunk5ETT54QS_js.GlassModal,
|
|
1274
1274
|
{
|
|
1275
1275
|
open,
|
|
1276
1276
|
onClose: handleClose,
|
|
@@ -1287,7 +1287,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1287
1287
|
},
|
|
1288
1288
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
|
|
1289
1289
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1290
|
-
|
|
1290
|
+
chunk5ETT54QS_js.SectionCard,
|
|
1291
1291
|
{
|
|
1292
1292
|
variant: "glass",
|
|
1293
1293
|
padded: false,
|
|
@@ -1327,7 +1327,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1327
1327
|
}
|
|
1328
1328
|
),
|
|
1329
1329
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1330
|
-
|
|
1330
|
+
chunk5ETT54QS_js.SectionCard,
|
|
1331
1331
|
{
|
|
1332
1332
|
variant: "glass",
|
|
1333
1333
|
padded: false,
|
|
@@ -1355,7 +1355,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1355
1355
|
}
|
|
1356
1356
|
),
|
|
1357
1357
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1358
|
-
|
|
1358
|
+
chunk5ETT54QS_js.SectionCard,
|
|
1359
1359
|
{
|
|
1360
1360
|
variant: "glass",
|
|
1361
1361
|
padded: false,
|
|
@@ -1461,7 +1461,7 @@ function ConfigSection({ title, icon: Icon, defaultOpen = true, children }) {
|
|
|
1461
1461
|
] });
|
|
1462
1462
|
}
|
|
1463
1463
|
function SubworkflowModal({ onSaved, onMaximize }) {
|
|
1464
|
-
const t =
|
|
1464
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
1465
1465
|
const tool = useSubworkflowStore((s) => s.tool);
|
|
1466
1466
|
const open = useSubworkflowStore((s) => s.open);
|
|
1467
1467
|
const name = useSubworkflowStore((s) => s.name);
|
|
@@ -1478,7 +1478,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1478
1478
|
const markDirty = useSubworkflowStore((s) => s.markDirty);
|
|
1479
1479
|
const markSaved = useSubworkflowStore((s) => s.markSaved);
|
|
1480
1480
|
const closeModal = useSubworkflowStore((s) => s.closeModal);
|
|
1481
|
-
const agentBehind =
|
|
1481
|
+
const agentBehind = chunkD5OTZGA2_js.useModalStore((s) => s.activeModal === "agent" ? s.agentData?.agent?.name : null);
|
|
1482
1482
|
const isCreateMode = !tool?.toolId;
|
|
1483
1483
|
const initialGraph = react.useMemo(() => {
|
|
1484
1484
|
const config = tool?.config;
|
|
@@ -1507,9 +1507,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1507
1507
|
}, [tool, onSaved, name, category, description, timeoutMs, latestGraphRef, markSaved]);
|
|
1508
1508
|
if (!tool) return null;
|
|
1509
1509
|
const categoryKey = category ?? "external";
|
|
1510
|
-
const gradient = tool.color ??
|
|
1511
|
-
const categoryPill =
|
|
1512
|
-
const IconComponent =
|
|
1510
|
+
const gradient = tool.color ?? chunkD5OTZGA2_js.CATEGORY_COLORS[categoryKey] ?? chunkD5OTZGA2_js.CATEGORY_COLORS.external;
|
|
1511
|
+
const categoryPill = chunkD5OTZGA2_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunkD5OTZGA2_js.CATEGORY_PILL_COLORS.external;
|
|
1512
|
+
const IconComponent = chunkD5OTZGA2_js.ICON_MAP[tool.icon ?? ""] ?? outline.ArrowPathRoundedSquareIcon;
|
|
1513
1513
|
const graph = latestGraphRef.current;
|
|
1514
1514
|
const startNode = graph.nodes.find((n) => n.type === "start");
|
|
1515
1515
|
const endNode = graph.nodes.find((n) => n.type === "end");
|
|
@@ -1542,7 +1542,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1542
1542
|
] })
|
|
1543
1543
|
] });
|
|
1544
1544
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1545
|
-
|
|
1545
|
+
chunk5ETT54QS_js.GlassModal,
|
|
1546
1546
|
{
|
|
1547
1547
|
open,
|
|
1548
1548
|
onClose: closeModal,
|
|
@@ -1574,7 +1574,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1574
1574
|
{
|
|
1575
1575
|
type: "button",
|
|
1576
1576
|
onClick: () => setCategory(cat),
|
|
1577
|
-
className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${
|
|
1577
|
+
className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${chunkD5OTZGA2_js.CATEGORY_PILL_COLORS[cat] ?? chunkD5OTZGA2_js.CATEGORY_PILL_COLORS.external} ring-1 ring-current/20` : "bg-white/30 text-gray-500 hover:bg-white/50 dark:bg-white/5 dark:text-gray-400"}`,
|
|
1578
1578
|
children: cat
|
|
1579
1579
|
},
|
|
1580
1580
|
cat
|
|
@@ -1661,7 +1661,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1661
1661
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto" })
|
|
1662
1662
|
] }),
|
|
1663
1663
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1664
|
-
|
|
1664
|
+
chunkD5OTZGA2_js.WorkflowCanvas,
|
|
1665
1665
|
{
|
|
1666
1666
|
initialGraph,
|
|
1667
1667
|
agents: [],
|
|
@@ -1676,10 +1676,10 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1676
1676
|
);
|
|
1677
1677
|
}
|
|
1678
1678
|
function PipelineSettingsModal({ onSave }) {
|
|
1679
|
-
const t =
|
|
1680
|
-
const activeModal =
|
|
1681
|
-
const data =
|
|
1682
|
-
const closeModal =
|
|
1679
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
1680
|
+
const activeModal = chunkD5OTZGA2_js.useModalStore((s) => s.activeModal);
|
|
1681
|
+
const data = chunkD5OTZGA2_js.useModalStore((s) => s.pipelineSettingsData);
|
|
1682
|
+
const closeModal = chunkD5OTZGA2_js.useModalStore((s) => s.closeModal);
|
|
1683
1683
|
const open = activeModal === "pipeline-settings";
|
|
1684
1684
|
const [nameValue, setNameValue] = react.useState("");
|
|
1685
1685
|
const [descriptionValue, setDescriptionValue] = react.useState("");
|
|
@@ -1757,7 +1757,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1757
1757
|
)
|
|
1758
1758
|
] });
|
|
1759
1759
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1760
|
-
|
|
1760
|
+
chunk5ETT54QS_js.GlassModal,
|
|
1761
1761
|
{
|
|
1762
1762
|
open,
|
|
1763
1763
|
onClose: closeModal,
|
|
@@ -1780,7 +1780,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1780
1780
|
},
|
|
1781
1781
|
children: [
|
|
1782
1782
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1783
|
-
|
|
1783
|
+
chunk5ETT54QS_js.FormInput,
|
|
1784
1784
|
{
|
|
1785
1785
|
label: t("pipelineName"),
|
|
1786
1786
|
value: nameValue,
|
|
@@ -1790,7 +1790,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1790
1790
|
}
|
|
1791
1791
|
),
|
|
1792
1792
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1793
|
-
|
|
1793
|
+
chunk5ETT54QS_js.FormTextarea,
|
|
1794
1794
|
{
|
|
1795
1795
|
label: t("pipelineDescription"),
|
|
1796
1796
|
value: descriptionValue,
|
|
@@ -1801,7 +1801,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1801
1801
|
),
|
|
1802
1802
|
lifecycleAvailable && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1803
1803
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1804
|
-
|
|
1804
|
+
chunk5ETT54QS_js.FormInput,
|
|
1805
1805
|
{
|
|
1806
1806
|
label: t("pipelineSlug", { _: "Slug" }),
|
|
1807
1807
|
value: slugValue,
|
|
@@ -1860,7 +1860,7 @@ function RunReplayModal({
|
|
|
1860
1860
|
originalInputs,
|
|
1861
1861
|
onReplay
|
|
1862
1862
|
}) {
|
|
1863
|
-
const t =
|
|
1863
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
1864
1864
|
const [rows, setRows] = react.useState([]);
|
|
1865
1865
|
const [submitting, setSubmitting] = react.useState(false);
|
|
1866
1866
|
const [error, setError] = react.useState(null);
|
|
@@ -1945,7 +1945,7 @@ function RunReplayModal({
|
|
|
1945
1945
|
] })
|
|
1946
1946
|
] });
|
|
1947
1947
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1948
|
-
|
|
1948
|
+
chunk5ETT54QS_js.GlassModal,
|
|
1949
1949
|
{
|
|
1950
1950
|
open,
|
|
1951
1951
|
onClose,
|
|
@@ -2019,7 +2019,7 @@ function RowEditor({
|
|
|
2019
2019
|
]
|
|
2020
2020
|
}
|
|
2021
2021
|
) : isJson ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2022
|
-
|
|
2022
|
+
chunk5ETT54QS_js.FormTextarea,
|
|
2023
2023
|
{
|
|
2024
2024
|
value: row.value,
|
|
2025
2025
|
onValueChange: (v) => onChange({ value: v }),
|
|
@@ -2027,7 +2027,7 @@ function RowEditor({
|
|
|
2027
2027
|
className: "font-mono"
|
|
2028
2028
|
}
|
|
2029
2029
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
2030
|
-
|
|
2030
|
+
chunk5ETT54QS_js.FormInput,
|
|
2031
2031
|
{
|
|
2032
2032
|
type: row.kind === "number" ? "number" : "text",
|
|
2033
2033
|
value: row.value,
|
|
@@ -2331,7 +2331,7 @@ function RuleConditionBuilder({ value, onChange, depth = 0 }) {
|
|
|
2331
2331
|
};
|
|
2332
2332
|
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
2333
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2334
|
-
|
|
2334
|
+
chunk5ETT54QS_js.FormSelect,
|
|
2335
2335
|
{
|
|
2336
2336
|
label: "Operator",
|
|
2337
2337
|
value: value.operator,
|
|
@@ -2354,7 +2354,7 @@ function SimpleEditor({
|
|
|
2354
2354
|
const isTruthy = value.operator === "truthy";
|
|
2355
2355
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2356
2356
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2357
|
-
|
|
2357
|
+
chunk5ETT54QS_js.FormInput,
|
|
2358
2358
|
{
|
|
2359
2359
|
label: "Field",
|
|
2360
2360
|
hint: "Dotted reference into the variable pool \u2014 e.g. `parse-pricing.margin`, `inputs.category`",
|
|
@@ -2364,7 +2364,7 @@ function SimpleEditor({
|
|
|
2364
2364
|
}
|
|
2365
2365
|
),
|
|
2366
2366
|
!isTruthy && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2367
|
-
|
|
2367
|
+
chunk5ETT54QS_js.FormInput,
|
|
2368
2368
|
{
|
|
2369
2369
|
label: "Value",
|
|
2370
2370
|
hint: "Literal. Numeric operators coerce via `as f64`.",
|
|
@@ -2380,7 +2380,7 @@ function ThresholdEditor({
|
|
|
2380
2380
|
}) {
|
|
2381
2381
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-3", children: [
|
|
2382
2382
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2383
|
-
|
|
2383
|
+
chunk5ETT54QS_js.FormInput,
|
|
2384
2384
|
{
|
|
2385
2385
|
label: "Field",
|
|
2386
2386
|
value: value.field ?? "",
|
|
@@ -2389,7 +2389,7 @@ function ThresholdEditor({
|
|
|
2389
2389
|
}
|
|
2390
2390
|
),
|
|
2391
2391
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2392
|
-
|
|
2392
|
+
chunk5ETT54QS_js.FormSelect,
|
|
2393
2393
|
{
|
|
2394
2394
|
label: "Direction",
|
|
2395
2395
|
value: value.comparison ?? "gte",
|
|
@@ -2403,7 +2403,7 @@ function ThresholdEditor({
|
|
|
2403
2403
|
}
|
|
2404
2404
|
),
|
|
2405
2405
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2406
|
-
|
|
2406
|
+
chunk5ETT54QS_js.FormInput,
|
|
2407
2407
|
{
|
|
2408
2408
|
label: "Threshold",
|
|
2409
2409
|
type: "number",
|
|
@@ -2420,7 +2420,7 @@ function RegexEditor({
|
|
|
2420
2420
|
}) {
|
|
2421
2421
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2422
2422
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2423
|
-
|
|
2423
|
+
chunk5ETT54QS_js.FormInput,
|
|
2424
2424
|
{
|
|
2425
2425
|
label: "Field",
|
|
2426
2426
|
value: value.field ?? "",
|
|
@@ -2429,7 +2429,7 @@ function RegexEditor({
|
|
|
2429
2429
|
}
|
|
2430
2430
|
),
|
|
2431
2431
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2432
|
-
|
|
2432
|
+
chunk5ETT54QS_js.FormInput,
|
|
2433
2433
|
{
|
|
2434
2434
|
label: "Pattern",
|
|
2435
2435
|
hint: "Rust regex syntax \u2014 `(?i)` etc. supported.",
|
|
@@ -2457,7 +2457,7 @@ function TimeWindowEditor({
|
|
|
2457
2457
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
2458
2458
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2459
2459
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2460
|
-
|
|
2460
|
+
chunk5ETT54QS_js.FormSelect,
|
|
2461
2461
|
{
|
|
2462
2462
|
label: "Timezone",
|
|
2463
2463
|
value: value.timezone ?? "UTC",
|
|
@@ -2466,7 +2466,7 @@ function TimeWindowEditor({
|
|
|
2466
2466
|
}
|
|
2467
2467
|
),
|
|
2468
2468
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2469
|
-
|
|
2469
|
+
chunk5ETT54QS_js.FormInput,
|
|
2470
2470
|
{
|
|
2471
2471
|
label: "Timestamp field (optional)",
|
|
2472
2472
|
hint: "Pulls a timestamp from the pool. Leave blank to use the run's wall-clock.",
|
|
@@ -2479,7 +2479,7 @@ function TimeWindowEditor({
|
|
|
2479
2479
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
2480
2480
|
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
2481
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2482
|
-
|
|
2482
|
+
chunk5ETT54QS_js.FormInput,
|
|
2483
2483
|
{
|
|
2484
2484
|
label: `Start (hour)`,
|
|
2485
2485
|
type: "number",
|
|
@@ -2490,7 +2490,7 @@ function TimeWindowEditor({
|
|
|
2490
2490
|
}
|
|
2491
2491
|
),
|
|
2492
2492
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2493
|
-
|
|
2493
|
+
chunk5ETT54QS_js.FormInput,
|
|
2494
2494
|
{
|
|
2495
2495
|
label: `End (hour)`,
|
|
2496
2496
|
type: "number",
|
|
@@ -2525,7 +2525,7 @@ function BooleanGroupEditor({
|
|
|
2525
2525
|
});
|
|
2526
2526
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
2527
2527
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2528
|
-
|
|
2528
|
+
chunk5ETT54QS_js.FormSelect,
|
|
2529
2529
|
{
|
|
2530
2530
|
label: "Combinator",
|
|
2531
2531
|
value: value.combinator ?? "and",
|
|
@@ -2581,7 +2581,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2581
2581
|
};
|
|
2582
2582
|
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
2583
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2584
|
-
|
|
2584
|
+
chunk5ETT54QS_js.FormSelect,
|
|
2585
2585
|
{
|
|
2586
2586
|
label: "Action type",
|
|
2587
2587
|
value: type,
|
|
@@ -2591,7 +2591,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2591
2591
|
),
|
|
2592
2592
|
type === "adjust_price" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2593
2593
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2594
|
-
|
|
2594
|
+
chunk5ETT54QS_js.FormInput,
|
|
2595
2595
|
{
|
|
2596
2596
|
label: "Multiplier",
|
|
2597
2597
|
type: "number",
|
|
@@ -2601,7 +2601,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2601
2601
|
}
|
|
2602
2602
|
),
|
|
2603
2603
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2604
|
-
|
|
2604
|
+
chunk5ETT54QS_js.FormInput,
|
|
2605
2605
|
{
|
|
2606
2606
|
label: "Reason code",
|
|
2607
2607
|
value: stringParam(params.reason),
|
|
@@ -2611,7 +2611,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2611
2611
|
)
|
|
2612
2612
|
] }),
|
|
2613
2613
|
type === "enforce_min_margin" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2614
|
-
|
|
2614
|
+
chunk5ETT54QS_js.FormInput,
|
|
2615
2615
|
{
|
|
2616
2616
|
label: "Floor (fraction, e.g. 0.08)",
|
|
2617
2617
|
type: "number",
|
|
@@ -2621,7 +2621,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2621
2621
|
}
|
|
2622
2622
|
),
|
|
2623
2623
|
type === "realign_to_competitor" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2624
|
-
|
|
2624
|
+
chunk5ETT54QS_js.FormInput,
|
|
2625
2625
|
{
|
|
2626
2626
|
label: "Tolerance (fraction)",
|
|
2627
2627
|
type: "number",
|
|
@@ -2631,7 +2631,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2631
2631
|
}
|
|
2632
2632
|
),
|
|
2633
2633
|
type === "request_manager_approval" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2634
|
-
|
|
2634
|
+
chunk5ETT54QS_js.FormInput,
|
|
2635
2635
|
{
|
|
2636
2636
|
label: "Approval limit (fraction)",
|
|
2637
2637
|
type: "number",
|
|
@@ -2641,7 +2641,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2641
2641
|
}
|
|
2642
2642
|
),
|
|
2643
2643
|
type === "round_to" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2644
|
-
|
|
2644
|
+
chunk5ETT54QS_js.FormInput,
|
|
2645
2645
|
{
|
|
2646
2646
|
label: "Step (e.g. 0.009)",
|
|
2647
2647
|
type: "number",
|
|
@@ -2652,7 +2652,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2652
2652
|
),
|
|
2653
2653
|
type === "alert" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2654
2654
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2655
|
-
|
|
2655
|
+
chunk5ETT54QS_js.FormInput,
|
|
2656
2656
|
{
|
|
2657
2657
|
label: "Channel",
|
|
2658
2658
|
value: stringParam(params.channel),
|
|
@@ -2661,7 +2661,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2661
2661
|
}
|
|
2662
2662
|
),
|
|
2663
2663
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2664
|
-
|
|
2664
|
+
chunk5ETT54QS_js.FormInput,
|
|
2665
2665
|
{
|
|
2666
2666
|
label: "Severity",
|
|
2667
2667
|
value: stringParam(params.severity),
|
|
@@ -2699,7 +2699,7 @@ function CustomParamsEditor({
|
|
|
2699
2699
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
2700
2700
|
entries.map(([key, value], index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[1fr_1fr_auto] items-end gap-2", children: [
|
|
2701
2701
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2702
|
-
|
|
2702
|
+
chunk5ETT54QS_js.FormInput,
|
|
2703
2703
|
{
|
|
2704
2704
|
label: "Key",
|
|
2705
2705
|
value: key,
|
|
@@ -2707,7 +2707,7 @@ function CustomParamsEditor({
|
|
|
2707
2707
|
}
|
|
2708
2708
|
),
|
|
2709
2709
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2710
|
-
|
|
2710
|
+
chunk5ETT54QS_js.FormInput,
|
|
2711
2711
|
{
|
|
2712
2712
|
label: "Value",
|
|
2713
2713
|
value: String(value ?? ""),
|
|
@@ -2746,9 +2746,9 @@ function RuleForm({ value, onChange }) {
|
|
|
2746
2746
|
);
|
|
2747
2747
|
const update = (key, v) => onChange({ ...value, [key]: v });
|
|
2748
2748
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
|
|
2749
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2749
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunk5ETT54QS_js.FormGrid, { children: [
|
|
2750
2750
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2751
|
-
|
|
2751
|
+
chunk5ETT54QS_js.FormInput,
|
|
2752
2752
|
{
|
|
2753
2753
|
label: "Name",
|
|
2754
2754
|
required: true,
|
|
@@ -2757,7 +2757,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2757
2757
|
}
|
|
2758
2758
|
),
|
|
2759
2759
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2760
|
-
|
|
2760
|
+
chunk5ETT54QS_js.FormInput,
|
|
2761
2761
|
{
|
|
2762
2762
|
label: "Priority",
|
|
2763
2763
|
type: "number",
|
|
@@ -2767,7 +2767,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2767
2767
|
}
|
|
2768
2768
|
),
|
|
2769
2769
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2770
|
-
|
|
2770
|
+
chunk5ETT54QS_js.FormSelect,
|
|
2771
2771
|
{
|
|
2772
2772
|
label: "Enabled",
|
|
2773
2773
|
value: value.enabled ? "true" : "false",
|
|
@@ -2779,7 +2779,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2779
2779
|
}
|
|
2780
2780
|
),
|
|
2781
2781
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2782
|
-
|
|
2782
|
+
chunk5ETT54QS_js.FormTextarea,
|
|
2783
2783
|
{
|
|
2784
2784
|
label: "Description",
|
|
2785
2785
|
rows: 2,
|
|
@@ -2826,7 +2826,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2826
2826
|
),
|
|
2827
2827
|
showAdvanced && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-3 grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2828
2828
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2829
|
-
|
|
2829
|
+
chunk5ETT54QS_js.FormInput,
|
|
2830
2830
|
{
|
|
2831
2831
|
label: "Valid from (ISO 8601)",
|
|
2832
2832
|
type: "datetime-local",
|
|
@@ -2835,7 +2835,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2835
2835
|
}
|
|
2836
2836
|
),
|
|
2837
2837
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2838
|
-
|
|
2838
|
+
chunk5ETT54QS_js.FormInput,
|
|
2839
2839
|
{
|
|
2840
2840
|
label: "Valid until (ISO 8601)",
|
|
2841
2841
|
type: "datetime-local",
|
|
@@ -2844,7 +2844,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2844
2844
|
}
|
|
2845
2845
|
),
|
|
2846
2846
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2847
|
-
|
|
2847
|
+
chunk5ETT54QS_js.FormSelect,
|
|
2848
2848
|
{
|
|
2849
2849
|
label: "Status",
|
|
2850
2850
|
value: value.status ?? "active",
|
|
@@ -2853,7 +2853,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2853
2853
|
}
|
|
2854
2854
|
),
|
|
2855
2855
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2856
|
-
|
|
2856
|
+
chunk5ETT54QS_js.FormInput,
|
|
2857
2857
|
{
|
|
2858
2858
|
label: "Tags (comma-separated)",
|
|
2859
2859
|
value: (value.tags ?? []).join(", "),
|
|
@@ -3040,8 +3040,8 @@ function CollapsibleSection({ title, icon, colorClass, defaultOpen = true, count
|
|
|
3040
3040
|
] });
|
|
3041
3041
|
}
|
|
3042
3042
|
function LogicNodeItemCard({ item, translationFunction }) {
|
|
3043
|
-
const IconComponent =
|
|
3044
|
-
const gradient =
|
|
3043
|
+
const IconComponent = chunkD5OTZGA2_js.LOGIC_ICON_MAP[item.nodeType];
|
|
3044
|
+
const gradient = chunkD5OTZGA2_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-gray-400 to-gray-500";
|
|
3045
3045
|
const defaultConfig = chunk72SWXOD5_js.createDefaultLogicNodeConfig(item.nodeType);
|
|
3046
3046
|
const configJson = defaultConfig ? JSON.stringify(defaultConfig) : void 0;
|
|
3047
3047
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -3061,7 +3061,7 @@ function LogicNodeItemCard({ item, translationFunction }) {
|
|
|
3061
3061
|
);
|
|
3062
3062
|
}
|
|
3063
3063
|
function NodePalette({ agents, tools, agentTools = [], rules, entities = [], modelProviders = [], onCreateAgent, onCreateTool, onCreateAgentTool, onCreateRule, onCreateDatasource, onConfigureProvider }) {
|
|
3064
|
-
const t =
|
|
3064
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
3065
3065
|
const [searchQuery, setSearchQuery] = react.useState("");
|
|
3066
3066
|
const normalizedQuery = searchQuery.toLowerCase().trim();
|
|
3067
3067
|
const filteredAgents = react.useMemo(
|
|
@@ -3112,7 +3112,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3112
3112
|
[entityTypes, normalizedQuery]
|
|
3113
3113
|
);
|
|
3114
3114
|
const filteredLogicItems = react.useMemo(() => {
|
|
3115
|
-
const visibleByDefault = LOGIC_NODE_ITEMS.filter((item) => !
|
|
3115
|
+
const visibleByDefault = LOGIC_NODE_ITEMS.filter((item) => !chunkD5OTZGA2_js.EXPERIMENTAL_NODE_TYPES.has(item.nodeType));
|
|
3116
3116
|
if (!normalizedQuery) return visibleByDefault;
|
|
3117
3117
|
return visibleByDefault.filter(
|
|
3118
3118
|
(item) => t(item.nameKey).toLowerCase().includes(normalizedQuery) || t(item.descriptionKey).toLowerCase().includes(normalizedQuery)
|
|
@@ -3248,7 +3248,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3248
3248
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: tool.category })
|
|
3249
3249
|
] }),
|
|
3250
3250
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3251
|
-
|
|
3251
|
+
chunk5ETT54QS_js.ToggleSwitch,
|
|
3252
3252
|
{
|
|
3253
3253
|
checked: Boolean(tool.enabled),
|
|
3254
3254
|
onChange: () => {
|
|
@@ -3289,7 +3289,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3289
3289
|
] })
|
|
3290
3290
|
] }),
|
|
3291
3291
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3292
|
-
|
|
3292
|
+
chunk5ETT54QS_js.ToggleSwitch,
|
|
3293
3293
|
{
|
|
3294
3294
|
checked: Boolean(rule.enabled),
|
|
3295
3295
|
onChange: () => {
|
|
@@ -3325,8 +3325,8 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3325
3325
|
limit: entity.defaultLimit
|
|
3326
3326
|
});
|
|
3327
3327
|
const dsLogo = getDatasourceLogo(entity.id);
|
|
3328
|
-
const EntityIcon =
|
|
3329
|
-
const entityGradient =
|
|
3328
|
+
const EntityIcon = chunkD5OTZGA2_js.getEntityIcon(entity.id);
|
|
3329
|
+
const entityGradient = chunkD5OTZGA2_js.getEntityGradient(entity.id);
|
|
3330
3330
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3331
3331
|
"div",
|
|
3332
3332
|
{
|
|
@@ -3346,7 +3346,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3346
3346
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3347
3347
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded-full bg-slate-500/15 px-1.5 py-0.5 text-[9px] font-medium text-slate-700 dark:bg-slate-500/20 dark:text-slate-300", children: "Read only" }),
|
|
3348
3348
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3349
|
-
|
|
3349
|
+
chunk5ETT54QS_js.ToggleSwitch,
|
|
3350
3350
|
{
|
|
3351
3351
|
checked: true,
|
|
3352
3352
|
onChange: () => {
|
|
@@ -3405,7 +3405,7 @@ function WorkflowListBar({
|
|
|
3405
3405
|
onDelete,
|
|
3406
3406
|
onConvertToSubworkflow
|
|
3407
3407
|
}) {
|
|
3408
|
-
const tWorkflow =
|
|
3408
|
+
const tWorkflow = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
3409
3409
|
if (isLoading) {
|
|
3410
3410
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 px-1 pb-3", children: [
|
|
3411
3411
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "shimmer h-10 w-40 rounded-xl" }),
|
|
@@ -3498,7 +3498,7 @@ function VersionHistoryPanel({
|
|
|
3498
3498
|
onRestore,
|
|
3499
3499
|
fetchVersions
|
|
3500
3500
|
}) {
|
|
3501
|
-
const translations =
|
|
3501
|
+
const translations = chunkY5VN4SPH_js.useTranslations("agents.workflow.versionHistory");
|
|
3502
3502
|
const [versions, setVersions] = react.useState([]);
|
|
3503
3503
|
const [isLoading, setIsLoading] = react.useState(false);
|
|
3504
3504
|
const [loadError, setLoadError] = react.useState(null);
|
|
@@ -3680,10 +3680,10 @@ function formatDuration2(durationMs) {
|
|
|
3680
3680
|
return `${seconds}s`;
|
|
3681
3681
|
}
|
|
3682
3682
|
function RunPanel({ open, onClose, onRun, onStop }) {
|
|
3683
|
-
const translations =
|
|
3684
|
-
const nodes =
|
|
3685
|
-
const isRunning =
|
|
3686
|
-
const nodeResults =
|
|
3683
|
+
const translations = chunkY5VN4SPH_js.useTranslations("agents.workflow.runPanel");
|
|
3684
|
+
const nodes = chunkD5OTZGA2_js.useWorkflowStore((state) => state.nodes);
|
|
3685
|
+
const isRunning = chunkD5OTZGA2_js.useWorkflowStore((state) => state.isRunning);
|
|
3686
|
+
const nodeResults = chunkD5OTZGA2_js.useWorkflowStore((state) => state.nodeResults);
|
|
3687
3687
|
const startNode = nodes.find((node) => node.type === "start");
|
|
3688
3688
|
const hasEndNode = nodes.some((node) => node.type === "end");
|
|
3689
3689
|
const hasValidStartConfig = Boolean(
|
|
@@ -4013,9 +4013,9 @@ function inferVariables(config, nodeType) {
|
|
|
4013
4013
|
return variables;
|
|
4014
4014
|
}
|
|
4015
4015
|
function VariableInspector({ open, onClose }) {
|
|
4016
|
-
const translations =
|
|
4017
|
-
const nodes =
|
|
4018
|
-
const edges =
|
|
4016
|
+
const translations = chunkY5VN4SPH_js.useTranslations("agents.workflow.variableInspector");
|
|
4017
|
+
const nodes = chunkD5OTZGA2_js.useWorkflowStore((state) => state.nodes);
|
|
4018
|
+
const edges = chunkD5OTZGA2_js.useWorkflowStore((state) => state.edges);
|
|
4019
4019
|
const [expandedNodes, setExpandedNodes] = react.useState(/* @__PURE__ */ new Set());
|
|
4020
4020
|
const toggleNodeExpansion = react.useCallback((nodeId) => {
|
|
4021
4021
|
setExpandedNodes((current) => {
|
|
@@ -4077,8 +4077,8 @@ function VariableInspector({ open, onClose }) {
|
|
|
4077
4077
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-gray-500 dark:text-gray-400", children: translations("noNodes") })
|
|
4078
4078
|
] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-gray-100 dark:divide-gray-800", children: nodeVariableEntries.map((entry) => {
|
|
4079
4079
|
const isExpanded = expandedNodes.has(entry.nodeId);
|
|
4080
|
-
const IconComponent =
|
|
4081
|
-
const gradient =
|
|
4080
|
+
const IconComponent = chunkD5OTZGA2_js.LOGIC_ICON_MAP[entry.nodeType];
|
|
4081
|
+
const gradient = chunkD5OTZGA2_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-gray-400 to-gray-500";
|
|
4082
4082
|
const inputVariables = entry.variables.filter((variable) => variable.direction === "input");
|
|
4083
4083
|
const outputVariables = entry.variables.filter((variable) => variable.direction === "output");
|
|
4084
4084
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": `variable-node-${entry.nodeId}`, children: [
|
|
@@ -4143,8 +4143,8 @@ function RunInputDialog({
|
|
|
4143
4143
|
onClose,
|
|
4144
4144
|
onRun
|
|
4145
4145
|
}) {
|
|
4146
|
-
const t =
|
|
4147
|
-
const nodes =
|
|
4146
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.runInputDialog");
|
|
4147
|
+
const nodes = chunkD5OTZGA2_js.useWorkflowStore((state) => state.nodes);
|
|
4148
4148
|
const [values, setValues] = react.useState({});
|
|
4149
4149
|
const inputVariableNames = react.useMemo(() => {
|
|
4150
4150
|
const storeStartNode = nodes.find((node) => node.type === "start");
|
|
@@ -4171,7 +4171,7 @@ function RunInputDialog({
|
|
|
4171
4171
|
}, [onClose]);
|
|
4172
4172
|
if (!open) return null;
|
|
4173
4173
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4174
|
-
|
|
4174
|
+
chunk5ETT54QS_js.GlassModal,
|
|
4175
4175
|
{
|
|
4176
4176
|
open,
|
|
4177
4177
|
onClose: handleClose,
|
|
@@ -4182,7 +4182,7 @@ function RunInputDialog({
|
|
|
4182
4182
|
/* @__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
4183
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300", children: variableName }),
|
|
4184
4184
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4185
|
-
|
|
4185
|
+
chunk5ETT54QS_js.Input,
|
|
4186
4186
|
{
|
|
4187
4187
|
value: values[variableName] ?? "",
|
|
4188
4188
|
onChange: (event) => handleValueChange(variableName, event.target.value),
|
|
@@ -4220,13 +4220,13 @@ function formatTimestamp2(timestamp) {
|
|
|
4220
4220
|
return date.toLocaleTimeString(void 0, { hour: "2-digit", minute: "2-digit", second: "2-digit" });
|
|
4221
4221
|
}
|
|
4222
4222
|
function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
|
|
4223
|
-
const t =
|
|
4223
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.previewPanel");
|
|
4224
4224
|
const [runs, setRuns] = react.useState([]);
|
|
4225
4225
|
const [isLoadingRuns, setIsLoadingRuns] = react.useState(false);
|
|
4226
4226
|
const [selectedRun, setSelectedRun] = react.useState(null);
|
|
4227
4227
|
const [selectedNode, setSelectedNode] = react.useState(null);
|
|
4228
|
-
const isRunning =
|
|
4229
|
-
const nodeResults =
|
|
4228
|
+
const isRunning = chunkD5OTZGA2_js.useWorkflowStore((state) => state.isRunning);
|
|
4229
|
+
const nodeResults = chunkD5OTZGA2_js.useWorkflowStore((state) => state.nodeResults);
|
|
4230
4230
|
const refreshRuns = react.useCallback(async () => {
|
|
4231
4231
|
setIsLoadingRuns(true);
|
|
4232
4232
|
try {
|
|
@@ -4404,7 +4404,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
|
|
|
4404
4404
|
onAutoSaveGraph(graph);
|
|
4405
4405
|
}, [onAutoSaveGraph, onGraphSnapshot]);
|
|
4406
4406
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4407
|
-
|
|
4407
|
+
chunkD5OTZGA2_js.Workspace,
|
|
4408
4408
|
{
|
|
4409
4409
|
...workspaceProps,
|
|
4410
4410
|
onGraphChange: handleGraphChange
|
|
@@ -4412,11 +4412,11 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
|
|
|
4412
4412
|
);
|
|
4413
4413
|
});
|
|
4414
4414
|
function DynamicIslandConfirm2(props) {
|
|
4415
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4415
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunk5ETT54QS_js.DynamicIslandConfirm, { ...props });
|
|
4416
4416
|
}
|
|
4417
4417
|
var JSON_PREVIEW_LINE_LIMIT = 50;
|
|
4418
4418
|
function DslExportModal({ open, onClose, workflow, graph }) {
|
|
4419
|
-
const translations =
|
|
4419
|
+
const translations = chunkY5VN4SPH_js.useTranslations("agents.workflow.dsl.export");
|
|
4420
4420
|
const [isCopied, setIsCopied] = react.useState(false);
|
|
4421
4421
|
const exportPayload = react.useMemo(() => ({
|
|
4422
4422
|
name: workflow.name,
|
|
@@ -4466,7 +4466,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
|
|
|
4466
4466
|
}, [jsonString, workflow.name, workflow.version]);
|
|
4467
4467
|
if (!open) return null;
|
|
4468
4468
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4469
|
-
|
|
4469
|
+
chunk5ETT54QS_js.GlassModal,
|
|
4470
4470
|
{
|
|
4471
4471
|
open,
|
|
4472
4472
|
onClose,
|
|
@@ -4621,7 +4621,7 @@ function validateWorkflowJson(jsonString) {
|
|
|
4621
4621
|
return { isValid: true, errors: [], graph, nodeCount: nodes.length, edgeCount: edges.length };
|
|
4622
4622
|
}
|
|
4623
4623
|
function DslImportModal({ open, onClose, onImport }) {
|
|
4624
|
-
const translations =
|
|
4624
|
+
const translations = chunkY5VN4SPH_js.useTranslations("agents.workflow.dsl.import");
|
|
4625
4625
|
const fileInputRef = react.useRef(null);
|
|
4626
4626
|
const [isDragActive, setIsDragActive] = react.useState(false);
|
|
4627
4627
|
const [validationResult, setValidationResult] = react.useState(null);
|
|
@@ -4684,7 +4684,7 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4684
4684
|
}, []);
|
|
4685
4685
|
if (!open) return null;
|
|
4686
4686
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4687
|
-
|
|
4687
|
+
chunk5ETT54QS_js.GlassModal,
|
|
4688
4688
|
{
|
|
4689
4689
|
open,
|
|
4690
4690
|
onClose,
|
|
@@ -4775,14 +4775,14 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4775
4775
|
}
|
|
4776
4776
|
|
|
4777
4777
|
// 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 = () =>
|
|
4778
|
+
var useCanUndo = () => chunkD5OTZGA2_js.useWorkflowStore((state) => state.past.length > 0);
|
|
4779
|
+
var useCanRedo = () => chunkD5OTZGA2_js.useWorkflowStore((state) => state.future.length > 0);
|
|
4780
|
+
var useHasCopied = () => chunkD5OTZGA2_js.useWorkflowStore((state) => state.clipboard !== null);
|
|
4781
|
+
var useContextMenu = () => chunkD5OTZGA2_js.useWorkflowStore((state) => state.contextMenu);
|
|
4782
|
+
var useEditingNodeId = () => chunkD5OTZGA2_js.useWorkflowStore((state) => state.editingNodeId);
|
|
4783
|
+
var useSelectedNodeCount = () => chunkD5OTZGA2_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
|
|
4784
|
+
var useIsRunning = () => chunkD5OTZGA2_js.useWorkflowStore((state) => state.isRunning);
|
|
4785
|
+
var useNodeResults = () => chunkD5OTZGA2_js.useWorkflowStore((state) => state.nodeResults);
|
|
4786
4786
|
var DEFAULT_MAX_HISTORY = 50;
|
|
4787
4787
|
function useUndoRedo(nodes, edges, setNodes, setEdges, maxHistory = DEFAULT_MAX_HISTORY) {
|
|
4788
4788
|
const pastRef = react.useRef([]);
|
|
@@ -5106,5 +5106,5 @@ exports.useNodeResults = useNodeResults;
|
|
|
5106
5106
|
exports.useSelectedNodeCount = useSelectedNodeCount;
|
|
5107
5107
|
exports.useSubworkflowStore = useSubworkflowStore;
|
|
5108
5108
|
exports.useUndoRedo = useUndoRedo;
|
|
5109
|
-
//# sourceMappingURL=chunk-
|
|
5110
|
-
//# sourceMappingURL=chunk-
|
|
5109
|
+
//# sourceMappingURL=chunk-MQDCUBVW.js.map
|
|
5110
|
+
//# sourceMappingURL=chunk-MQDCUBVW.js.map
|