@datatechsolutions/ui 3.14.0 → 3.15.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/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-FHGWXWVZ.js → chunk-2JPS5OND.js} +45 -45
- package/dist/{chunk-FHGWXWVZ.js.map → chunk-2JPS5OND.js.map} +1 -1
- package/dist/{chunk-YFMMZHL5.js → chunk-2QZFKQP6.js} +26 -26
- package/dist/{chunk-YFMMZHL5.js.map → chunk-2QZFKQP6.js.map} +1 -1
- package/dist/{chunk-U7VMFQFN.mjs → chunk-3FOLXKVP.mjs} +4 -4
- package/dist/{chunk-U7VMFQFN.mjs.map → chunk-3FOLXKVP.mjs.map} +1 -1
- package/dist/{chunk-LJGPMMKB.js → chunk-435TRHC2.js} +72 -72
- package/dist/{chunk-LJGPMMKB.js.map → chunk-435TRHC2.js.map} +1 -1
- package/dist/{chunk-WE35EV7J.mjs → chunk-5QRU3KKV.mjs} +3 -3
- package/dist/{chunk-WE35EV7J.mjs.map → chunk-5QRU3KKV.mjs.map} +1 -1
- package/dist/{chunk-7SDB2VC2.js → chunk-6UUFPSAR.js} +4 -4
- package/dist/{chunk-7SDB2VC2.js.map → chunk-6UUFPSAR.js.map} +1 -1
- package/dist/{chunk-OTQXU4WG.mjs → chunk-7LIJTAIF.mjs} +8 -8
- package/dist/{chunk-OTQXU4WG.mjs.map → chunk-7LIJTAIF.mjs.map} +1 -1
- package/dist/{chunk-Q5TZTA6H.mjs → chunk-A5M7SPPG.mjs} +3 -3
- package/dist/{chunk-Q5TZTA6H.mjs.map → chunk-A5M7SPPG.mjs.map} +1 -1
- package/dist/{chunk-4HZ55YKZ.js → chunk-BN4BKFE2.js} +9 -9
- package/dist/{chunk-4HZ55YKZ.js.map → chunk-BN4BKFE2.js.map} +1 -1
- package/dist/{chunk-5SCZB5UI.js → chunk-C4UYEHPY.js} +84 -84
- package/dist/chunk-C4UYEHPY.js.map +1 -0
- package/dist/{chunk-AUCS2KF4.js → chunk-CPTHSYM2.js} +10 -10
- package/dist/{chunk-AUCS2KF4.js.map → chunk-CPTHSYM2.js.map} +1 -1
- package/dist/{chunk-PO66V2PN.mjs → chunk-EZVBRLQH.mjs} +3 -3
- package/dist/{chunk-PO66V2PN.mjs.map → chunk-EZVBRLQH.mjs.map} +1 -1
- package/dist/{chunk-T7DROKWJ.mjs → chunk-F3PQ5EFQ.mjs} +3 -3
- package/dist/{chunk-T7DROKWJ.mjs.map → chunk-F3PQ5EFQ.mjs.map} +1 -1
- package/dist/{chunk-ZE6U4N4Q.js → chunk-GD3YV46U.js} +36 -36
- package/dist/{chunk-ZE6U4N4Q.js.map → chunk-GD3YV46U.js.map} +1 -1
- package/dist/{chunk-5YCH7FHT.mjs → chunk-I6ULYJR4.mjs} +3 -3
- package/dist/{chunk-5YCH7FHT.mjs.map → chunk-I6ULYJR4.mjs.map} +1 -1
- package/dist/{chunk-Q2FUNDCP.mjs → chunk-JJUWZNJY.mjs} +3 -3
- package/dist/{chunk-Q2FUNDCP.mjs.map → chunk-JJUWZNJY.mjs.map} +1 -1
- package/dist/{chunk-ZIRD3X6G.js → chunk-KRS2CLPR.js} +139 -139
- package/dist/chunk-KRS2CLPR.js.map +1 -0
- package/dist/{chunk-FZUV7GNB.js → chunk-KZDABEML.js} +41 -41
- package/dist/{chunk-FZUV7GNB.js.map → chunk-KZDABEML.js.map} +1 -1
- package/dist/{chunk-33ZWFDVG.mjs → chunk-MSXJFWKD.mjs} +17 -17
- package/dist/chunk-MSXJFWKD.mjs.map +1 -0
- package/dist/{chunk-HQNIETHV.mjs → chunk-NNR44MM5.mjs} +7 -7
- package/dist/{chunk-HQNIETHV.mjs.map → chunk-NNR44MM5.mjs.map} +1 -1
- package/dist/{chunk-72XZ7DSF.js → chunk-NQCFGIWC.js} +13 -13
- package/dist/{chunk-72XZ7DSF.js.map → chunk-NQCFGIWC.js.map} +1 -1
- package/dist/{chunk-NIZSQJRW.js → chunk-OQM252SM.js} +30 -30
- package/dist/{chunk-NIZSQJRW.js.map → chunk-OQM252SM.js.map} +1 -1
- package/dist/{chunk-2II2NLAZ.js → chunk-PADXORD2.js} +34 -34
- package/dist/{chunk-2II2NLAZ.js.map → chunk-PADXORD2.js.map} +1 -1
- package/dist/{chunk-N6SGVUTR.mjs → chunk-PSS3E463.mjs} +3 -3
- package/dist/{chunk-N6SGVUTR.mjs.map → chunk-PSS3E463.mjs.map} +1 -1
- package/dist/{chunk-F4KHAKTP.mjs → chunk-QCGSE24W.mjs} +41 -41
- package/dist/{chunk-F4KHAKTP.mjs.map → chunk-QCGSE24W.mjs.map} +1 -1
- package/dist/{chunk-7NHJSD4A.mjs → chunk-RH6Z425K.mjs} +6 -6
- package/dist/{chunk-7NHJSD4A.mjs.map → chunk-RH6Z425K.mjs.map} +1 -1
- package/dist/{chunk-WTSMTLSP.mjs → chunk-SMUBE3RO.mjs} +11 -11
- package/dist/chunk-SMUBE3RO.mjs.map +1 -0
- package/dist/{chunk-PXGESUKI.js → chunk-WG26KW6D.js} +36 -36
- package/dist/{chunk-PXGESUKI.js.map → chunk-WG26KW6D.js.map} +1 -1
- package/dist/{chunk-NXWIT4YQ.mjs → chunk-WGS65S7S.mjs} +3 -3
- package/dist/{chunk-NXWIT4YQ.mjs.map → chunk-WGS65S7S.mjs.map} +1 -1
- package/dist/{chunk-4P72IJOM.js → chunk-XJJZ6DHE.js} +4 -4
- package/dist/{chunk-4P72IJOM.js.map → chunk-XJJZ6DHE.js.map} +1 -1
- package/dist/index.js +664 -664
- package/dist/index.mjs +2 -2
- 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.js +78 -78
- package/dist/platform/index.mjs +18 -18
- package/dist/platform/pages/index.js +1485 -1554
- package/dist/platform/pages/index.js.map +1 -1
- package/dist/platform/pages/index.mjs +1270 -1339
- package/dist/platform/pages/index.mjs.map +1 -1
- 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 +1 -1
- package/dist/chunk-33ZWFDVG.mjs.map +0 -1
- package/dist/chunk-5SCZB5UI.js.map +0 -1
- package/dist/chunk-WTSMTLSP.mjs.map +0 -1
- package/dist/chunk-ZIRD3X6G.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
var
|
|
4
|
+
var chunkC4UYEHPY_js = require('./chunk-C4UYEHPY.js');
|
|
5
|
+
var chunkKZDABEML_js = require('./chunk-KZDABEML.js');
|
|
6
6
|
var chunkY5VN4SPH_js = require('./chunk-Y5VN4SPH.js');
|
|
7
7
|
var chunkMXQ2EYG2_js = require('./chunk-MXQ2EYG2.js');
|
|
8
8
|
var chunk72SWXOD5_js = require('./chunk-72SWXOD5.js');
|
|
@@ -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(chunkC4UYEHPY_js.NodeRunningIndicator, { nodeId: id }),
|
|
45
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-slate-400 dark:!bg-slate-500" }),
|
|
46
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_js.WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-slate-400 dark:!bg-slate-500" }),
|
|
47
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_js.NodeCard, { variant: "error", nodeType: "model_provider", width: "w-[280px]", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
48
|
+
chunkC4UYEHPY_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(chunkC4UYEHPY_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-slate-500" }),
|
|
57
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_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(chunkC4UYEHPY_js.NodeRunningIndicator, { nodeId: id }),
|
|
67
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-slate-400 dark:!bg-slate-500" }),
|
|
68
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_js.WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-slate-400 dark:!bg-slate-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(chunkC4UYEHPY_js.NodeCard, { compact: isCompact, selected, nodeType: "model_provider", width: "w-[280px]", children: [
|
|
76
76
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
77
|
-
|
|
77
|
+
chunkC4UYEHPY_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(chunkC4UYEHPY_js.NodeCardMeta, { compact: isCompact, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [
|
|
86
86
|
/* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Badge, { color: "zinc", size: "xs", children: providerLabel }),
|
|
87
87
|
regionLabel && /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Badge, { color: "zinc", size: "xs", children: regionLabel }),
|
|
88
88
|
/* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Badge, { color: isConfigured ? "green" : "amber", size: "xs", children: isConfigured ? "Configured" : "Setup needed" }),
|
|
@@ -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(chunkC4UYEHPY_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-slate-500" }),
|
|
98
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_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(chunkC4UYEHPY_js.NodeRunningIndicator, { nodeId: id }),
|
|
108
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-cyan-500" }),
|
|
109
109
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
110
|
-
|
|
110
|
+
chunkC4UYEHPY_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
|
+
chunkC4UYEHPY_js.NodeCardHeader,
|
|
120
120
|
{
|
|
121
|
-
icon: /* @__PURE__ */ jsxRuntime.jsx(
|
|
121
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_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(chunkC4UYEHPY_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(chunkC4UYEHPY_js.NodeCardBadge, { tone: "s3_write", children: t("s3WriteNode") }),
|
|
131
|
+
config.bucket && /* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_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(chunkC4UYEHPY_js.NodeCardDeleteAction, { nodeId: id, onDelete })
|
|
135
135
|
] })
|
|
136
136
|
]
|
|
137
137
|
}
|
|
138
138
|
),
|
|
139
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
139
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_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
|
+
chunkKZDABEML_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
|
+
chunkKZDABEML_js.FormSelect,
|
|
300
300
|
{
|
|
301
301
|
label: "Type",
|
|
302
302
|
value: field.type,
|
|
@@ -319,7 +319,7 @@ function FieldEditor({
|
|
|
319
319
|
/* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Button, { type: "button", plain: true, onClick: onRemove, children: "Remove" })
|
|
320
320
|
] }),
|
|
321
321
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
322
|
-
|
|
322
|
+
chunkKZDABEML_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(chunkC4UYEHPY_js.FRAMEWORK_META);
|
|
616
616
|
const hasProviderConstraints = connectedProviderTypes.length > 0;
|
|
617
|
-
const compatibleModels =
|
|
617
|
+
const compatibleModels = chunkC4UYEHPY_js.getCompatibleModels(models, selectedFramework);
|
|
618
618
|
const handleFrameworkChange = react.useCallback((newFramework) => {
|
|
619
619
|
setSelectedFramework(newFramework);
|
|
620
|
-
if (!
|
|
621
|
-
const compatible =
|
|
620
|
+
if (!chunkC4UYEHPY_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
|
|
621
|
+
const compatible = chunkC4UYEHPY_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-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 = chunkC4UYEHPY_js.FRAMEWORK_META[key];
|
|
633
633
|
const isSelected = key === selectedFramework;
|
|
634
|
-
const compatCount =
|
|
635
|
-
const isCompatibleWithProviders = !hasProviderConstraints ||
|
|
634
|
+
const compatCount = chunkC4UYEHPY_js.getCompatibleModels(models, key).length;
|
|
635
|
+
const isCompatibleWithProviders = !hasProviderConstraints || chunkC4UYEHPY_js.isFrameworkCompatibleWithProviders(key, connectedProviderTypes);
|
|
636
636
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
637
637
|
"button",
|
|
638
638
|
{
|
|
@@ -664,10 +664,10 @@ 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 = chunkC4UYEHPY_js.isModelCompatibleWithFramework(model.id, selectedFramework);
|
|
668
668
|
const { IconComponent, color, providerLabel } = getModelIcon(model.id);
|
|
669
669
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
670
|
-
|
|
670
|
+
chunkKZDABEML_js.SelectionCard,
|
|
671
671
|
{
|
|
672
672
|
selected: isSelected,
|
|
673
673
|
onClick: () => {
|
|
@@ -818,7 +818,7 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
|
|
|
818
818
|
] }),
|
|
819
819
|
tool.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: tool.description }),
|
|
820
820
|
tool.compatibleFrameworks && tool.compatibleFrameworks.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-1 flex flex-wrap gap-0.5", children: tool.compatibleFrameworks.map((framework) => {
|
|
821
|
-
const meta =
|
|
821
|
+
const meta = chunkC4UYEHPY_js.getFrameworkMeta(framework);
|
|
822
822
|
const isCurrentFw = framework === agentFramework;
|
|
823
823
|
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: [
|
|
824
824
|
/* @__PURE__ */ jsxRuntime.jsx(meta.IconComponent, { className: "h-2.5 w-2.5" }),
|
|
@@ -835,7 +835,7 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
|
|
|
835
835
|
event.stopPropagation();
|
|
836
836
|
},
|
|
837
837
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
838
|
-
|
|
838
|
+
chunkKZDABEML_js.ToggleSwitch,
|
|
839
839
|
{
|
|
840
840
|
checked: isEnabled,
|
|
841
841
|
onChange: () => onToggle(tool.agentToolId),
|
|
@@ -883,7 +883,7 @@ function EngineTab({
|
|
|
883
883
|
const compatibleProviders = findCompatibleProviders(selectedModelId, modelProviders);
|
|
884
884
|
const configuredCompatible = compatibleProviders.filter((p) => p.configured);
|
|
885
885
|
const effectiveProvider = compatibleProviders.find((p) => p.id === selectedProviderId) ?? configuredCompatible[0] ?? compatibleProviders[0];
|
|
886
|
-
const frameworkMeta =
|
|
886
|
+
const frameworkMeta = chunkC4UYEHPY_js.getFrameworkMeta(selectedFramework);
|
|
887
887
|
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";
|
|
888
888
|
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: [
|
|
889
889
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 pb-3 pt-4", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1022,9 +1022,9 @@ function EngineTab({
|
|
|
1022
1022
|
}
|
|
1023
1023
|
function AgentModal({ onSaved, onPersist }) {
|
|
1024
1024
|
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
1025
|
-
const activeModal =
|
|
1026
|
-
const agentData =
|
|
1027
|
-
const closeModal =
|
|
1025
|
+
const activeModal = chunkC4UYEHPY_js.useModalStore((s) => s.activeModal);
|
|
1026
|
+
const agentData = chunkC4UYEHPY_js.useModalStore((s) => s.agentData);
|
|
1027
|
+
const closeModal = chunkC4UYEHPY_js.useModalStore((s) => s.closeModal);
|
|
1028
1028
|
const open = activeModal === "agent";
|
|
1029
1029
|
const agent = agentData?.agent ?? null;
|
|
1030
1030
|
const models = agentData?.models ?? [];
|
|
@@ -1172,7 +1172,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1172
1172
|
const fieldLabel = "text-[9px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400";
|
|
1173
1173
|
const avatarInitial = (displayName || agent.name).charAt(0).toUpperCase();
|
|
1174
1174
|
const avatarNode = /* @__PURE__ */ jsxRuntime.jsx(
|
|
1175
|
-
|
|
1175
|
+
chunkKZDABEML_js.Avatar,
|
|
1176
1176
|
{
|
|
1177
1177
|
src: effectiveAvatarUrl || void 0,
|
|
1178
1178
|
alt: displayName || agent.name,
|
|
@@ -1184,7 +1184,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1184
1184
|
const statusPill = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
1185
1185
|
/* @__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" }) }),
|
|
1186
1186
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1187
|
-
|
|
1187
|
+
chunkKZDABEML_js.ToggleSwitch,
|
|
1188
1188
|
{
|
|
1189
1189
|
size: "sm",
|
|
1190
1190
|
color: "green",
|
|
@@ -1198,7 +1198,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1198
1198
|
)
|
|
1199
1199
|
] });
|
|
1200
1200
|
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(
|
|
1201
|
-
|
|
1201
|
+
chunkKZDABEML_js.HeroBlock,
|
|
1202
1202
|
{
|
|
1203
1203
|
icon: avatarNode,
|
|
1204
1204
|
iconBackground: "none",
|
|
@@ -1261,7 +1261,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1261
1261
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `font-medium ${autosaveColor}`, children: autosaveLabel })
|
|
1262
1262
|
] });
|
|
1263
1263
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1264
|
-
|
|
1264
|
+
chunkKZDABEML_js.GlassModal,
|
|
1265
1265
|
{
|
|
1266
1266
|
open,
|
|
1267
1267
|
onClose: handleClose,
|
|
@@ -1278,7 +1278,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1278
1278
|
},
|
|
1279
1279
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
|
|
1280
1280
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1281
|
-
|
|
1281
|
+
chunkKZDABEML_js.SectionCard,
|
|
1282
1282
|
{
|
|
1283
1283
|
variant: "glass",
|
|
1284
1284
|
padded: false,
|
|
@@ -1318,7 +1318,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1318
1318
|
}
|
|
1319
1319
|
),
|
|
1320
1320
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1321
|
-
|
|
1321
|
+
chunkKZDABEML_js.SectionCard,
|
|
1322
1322
|
{
|
|
1323
1323
|
variant: "glass",
|
|
1324
1324
|
padded: false,
|
|
@@ -1346,7 +1346,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1346
1346
|
}
|
|
1347
1347
|
),
|
|
1348
1348
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1349
|
-
|
|
1349
|
+
chunkKZDABEML_js.SectionCard,
|
|
1350
1350
|
{
|
|
1351
1351
|
variant: "glass",
|
|
1352
1352
|
padded: false,
|
|
@@ -1469,7 +1469,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1469
1469
|
const markDirty = useSubworkflowStore((s) => s.markDirty);
|
|
1470
1470
|
const markSaved = useSubworkflowStore((s) => s.markSaved);
|
|
1471
1471
|
const closeModal = useSubworkflowStore((s) => s.closeModal);
|
|
1472
|
-
const agentBehind =
|
|
1472
|
+
const agentBehind = chunkC4UYEHPY_js.useModalStore((s) => s.activeModal === "agent" ? s.agentData?.agent?.name : null);
|
|
1473
1473
|
const isCreateMode = !tool?.toolId;
|
|
1474
1474
|
const initialGraph = react.useMemo(() => {
|
|
1475
1475
|
const config = tool?.config;
|
|
@@ -1498,9 +1498,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1498
1498
|
}, [tool, onSaved, name, category, description, timeoutMs, latestGraphRef, markSaved]);
|
|
1499
1499
|
if (!tool) return null;
|
|
1500
1500
|
const categoryKey = category ?? "external";
|
|
1501
|
-
const gradient = tool.color ??
|
|
1502
|
-
const categoryPill =
|
|
1503
|
-
const IconComponent =
|
|
1501
|
+
const gradient = tool.color ?? chunkC4UYEHPY_js.CATEGORY_COLORS[categoryKey] ?? chunkC4UYEHPY_js.CATEGORY_COLORS.external;
|
|
1502
|
+
const categoryPill = chunkC4UYEHPY_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunkC4UYEHPY_js.CATEGORY_PILL_COLORS.external;
|
|
1503
|
+
const IconComponent = chunkC4UYEHPY_js.ICON_MAP[tool.icon ?? ""] ?? outline.ArrowPathRoundedSquareIcon;
|
|
1504
1504
|
const graph = latestGraphRef.current;
|
|
1505
1505
|
const startNode = graph.nodes.find((n) => n.type === "start");
|
|
1506
1506
|
const endNode = graph.nodes.find((n) => n.type === "end");
|
|
@@ -1526,7 +1526,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1526
1526
|
] })
|
|
1527
1527
|
] });
|
|
1528
1528
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1529
|
-
|
|
1529
|
+
chunkKZDABEML_js.GlassModal,
|
|
1530
1530
|
{
|
|
1531
1531
|
open,
|
|
1532
1532
|
onClose: closeModal,
|
|
@@ -1558,7 +1558,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1558
1558
|
{
|
|
1559
1559
|
type: "button",
|
|
1560
1560
|
onClick: () => setCategory(cat),
|
|
1561
|
-
className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${
|
|
1561
|
+
className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${chunkC4UYEHPY_js.CATEGORY_PILL_COLORS[cat] ?? chunkC4UYEHPY_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"}`,
|
|
1562
1562
|
children: cat
|
|
1563
1563
|
},
|
|
1564
1564
|
cat
|
|
@@ -1646,7 +1646,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1646
1646
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto" })
|
|
1647
1647
|
] }),
|
|
1648
1648
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1649
|
-
|
|
1649
|
+
chunkC4UYEHPY_js.WorkflowCanvas,
|
|
1650
1650
|
{
|
|
1651
1651
|
initialGraph,
|
|
1652
1652
|
agents: [],
|
|
@@ -1662,9 +1662,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1662
1662
|
}
|
|
1663
1663
|
function PipelineSettingsModal({ onSave }) {
|
|
1664
1664
|
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
1665
|
-
const activeModal =
|
|
1666
|
-
const data =
|
|
1667
|
-
const closeModal =
|
|
1665
|
+
const activeModal = chunkC4UYEHPY_js.useModalStore((s) => s.activeModal);
|
|
1666
|
+
const data = chunkC4UYEHPY_js.useModalStore((s) => s.pipelineSettingsData);
|
|
1667
|
+
const closeModal = chunkC4UYEHPY_js.useModalStore((s) => s.closeModal);
|
|
1668
1668
|
const open = activeModal === "pipeline-settings";
|
|
1669
1669
|
const [nameValue, setNameValue] = react.useState("");
|
|
1670
1670
|
const [descriptionValue, setDescriptionValue] = react.useState("");
|
|
@@ -1734,7 +1734,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1734
1734
|
)
|
|
1735
1735
|
] });
|
|
1736
1736
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1737
|
-
|
|
1737
|
+
chunkKZDABEML_js.GlassModal,
|
|
1738
1738
|
{
|
|
1739
1739
|
open,
|
|
1740
1740
|
onClose: closeModal,
|
|
@@ -1757,7 +1757,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1757
1757
|
},
|
|
1758
1758
|
children: [
|
|
1759
1759
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1760
|
-
|
|
1760
|
+
chunkKZDABEML_js.FormInput,
|
|
1761
1761
|
{
|
|
1762
1762
|
label: t("pipelineName"),
|
|
1763
1763
|
value: nameValue,
|
|
@@ -1767,7 +1767,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1767
1767
|
}
|
|
1768
1768
|
),
|
|
1769
1769
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1770
|
-
|
|
1770
|
+
chunkKZDABEML_js.FormTextarea,
|
|
1771
1771
|
{
|
|
1772
1772
|
label: t("pipelineDescription"),
|
|
1773
1773
|
value: descriptionValue,
|
|
@@ -1778,7 +1778,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1778
1778
|
),
|
|
1779
1779
|
lifecycleAvailable && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1780
1780
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1781
|
-
|
|
1781
|
+
chunkKZDABEML_js.FormInput,
|
|
1782
1782
|
{
|
|
1783
1783
|
label: t("pipelineSlug", { _: "Slug" }),
|
|
1784
1784
|
value: slugValue,
|
|
@@ -1914,7 +1914,7 @@ function RunReplayModal({
|
|
|
1914
1914
|
] })
|
|
1915
1915
|
] });
|
|
1916
1916
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1917
|
-
|
|
1917
|
+
chunkKZDABEML_js.GlassModal,
|
|
1918
1918
|
{
|
|
1919
1919
|
open,
|
|
1920
1920
|
onClose,
|
|
@@ -1980,7 +1980,7 @@ function RowEditor({
|
|
|
1980
1980
|
]
|
|
1981
1981
|
}
|
|
1982
1982
|
) : isJson ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1983
|
-
|
|
1983
|
+
chunkKZDABEML_js.FormTextarea,
|
|
1984
1984
|
{
|
|
1985
1985
|
value: row.value,
|
|
1986
1986
|
onValueChange: (v) => onChange({ value: v }),
|
|
@@ -1988,7 +1988,7 @@ function RowEditor({
|
|
|
1988
1988
|
className: "font-mono"
|
|
1989
1989
|
}
|
|
1990
1990
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1991
|
-
|
|
1991
|
+
chunkKZDABEML_js.FormInput,
|
|
1992
1992
|
{
|
|
1993
1993
|
type: row.kind === "number" ? "number" : "text",
|
|
1994
1994
|
value: row.value,
|
|
@@ -2292,7 +2292,7 @@ function RuleConditionBuilder({ value, onChange, depth = 0 }) {
|
|
|
2292
2292
|
};
|
|
2293
2293
|
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: [
|
|
2294
2294
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2295
|
-
|
|
2295
|
+
chunkKZDABEML_js.FormSelect,
|
|
2296
2296
|
{
|
|
2297
2297
|
label: "Operator",
|
|
2298
2298
|
value: value.operator,
|
|
@@ -2315,7 +2315,7 @@ function SimpleEditor({
|
|
|
2315
2315
|
const isTruthy = value.operator === "truthy";
|
|
2316
2316
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2317
2317
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2318
|
-
|
|
2318
|
+
chunkKZDABEML_js.FormInput,
|
|
2319
2319
|
{
|
|
2320
2320
|
label: "Field",
|
|
2321
2321
|
hint: "Dotted reference into the variable pool \u2014 e.g. `parse-pricing.margin`, `inputs.category`",
|
|
@@ -2325,7 +2325,7 @@ function SimpleEditor({
|
|
|
2325
2325
|
}
|
|
2326
2326
|
),
|
|
2327
2327
|
!isTruthy && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2328
|
-
|
|
2328
|
+
chunkKZDABEML_js.FormInput,
|
|
2329
2329
|
{
|
|
2330
2330
|
label: "Value",
|
|
2331
2331
|
hint: "Literal. Numeric operators coerce via `as f64`.",
|
|
@@ -2341,7 +2341,7 @@ function ThresholdEditor({
|
|
|
2341
2341
|
}) {
|
|
2342
2342
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-3", children: [
|
|
2343
2343
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2344
|
-
|
|
2344
|
+
chunkKZDABEML_js.FormInput,
|
|
2345
2345
|
{
|
|
2346
2346
|
label: "Field",
|
|
2347
2347
|
value: value.field ?? "",
|
|
@@ -2350,7 +2350,7 @@ function ThresholdEditor({
|
|
|
2350
2350
|
}
|
|
2351
2351
|
),
|
|
2352
2352
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2353
|
-
|
|
2353
|
+
chunkKZDABEML_js.FormSelect,
|
|
2354
2354
|
{
|
|
2355
2355
|
label: "Direction",
|
|
2356
2356
|
value: value.comparison ?? "gte",
|
|
@@ -2364,7 +2364,7 @@ function ThresholdEditor({
|
|
|
2364
2364
|
}
|
|
2365
2365
|
),
|
|
2366
2366
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2367
|
-
|
|
2367
|
+
chunkKZDABEML_js.FormInput,
|
|
2368
2368
|
{
|
|
2369
2369
|
label: "Threshold",
|
|
2370
2370
|
type: "number",
|
|
@@ -2381,7 +2381,7 @@ function RegexEditor({
|
|
|
2381
2381
|
}) {
|
|
2382
2382
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2383
2383
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2384
|
-
|
|
2384
|
+
chunkKZDABEML_js.FormInput,
|
|
2385
2385
|
{
|
|
2386
2386
|
label: "Field",
|
|
2387
2387
|
value: value.field ?? "",
|
|
@@ -2390,7 +2390,7 @@ function RegexEditor({
|
|
|
2390
2390
|
}
|
|
2391
2391
|
),
|
|
2392
2392
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2393
|
-
|
|
2393
|
+
chunkKZDABEML_js.FormInput,
|
|
2394
2394
|
{
|
|
2395
2395
|
label: "Pattern",
|
|
2396
2396
|
hint: "Rust regex syntax \u2014 `(?i)` etc. supported.",
|
|
@@ -2418,7 +2418,7 @@ function TimeWindowEditor({
|
|
|
2418
2418
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
2419
2419
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2420
2420
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2421
|
-
|
|
2421
|
+
chunkKZDABEML_js.FormSelect,
|
|
2422
2422
|
{
|
|
2423
2423
|
label: "Timezone",
|
|
2424
2424
|
value: value.timezone ?? "UTC",
|
|
@@ -2427,7 +2427,7 @@ function TimeWindowEditor({
|
|
|
2427
2427
|
}
|
|
2428
2428
|
),
|
|
2429
2429
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2430
|
-
|
|
2430
|
+
chunkKZDABEML_js.FormInput,
|
|
2431
2431
|
{
|
|
2432
2432
|
label: "Timestamp field (optional)",
|
|
2433
2433
|
hint: "Pulls a timestamp from the pool. Leave blank to use the run's wall-clock.",
|
|
@@ -2440,7 +2440,7 @@ function TimeWindowEditor({
|
|
|
2440
2440
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
2441
2441
|
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: [
|
|
2442
2442
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2443
|
-
|
|
2443
|
+
chunkKZDABEML_js.FormInput,
|
|
2444
2444
|
{
|
|
2445
2445
|
label: `Start (hour)`,
|
|
2446
2446
|
type: "number",
|
|
@@ -2451,7 +2451,7 @@ function TimeWindowEditor({
|
|
|
2451
2451
|
}
|
|
2452
2452
|
),
|
|
2453
2453
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2454
|
-
|
|
2454
|
+
chunkKZDABEML_js.FormInput,
|
|
2455
2455
|
{
|
|
2456
2456
|
label: `End (hour)`,
|
|
2457
2457
|
type: "number",
|
|
@@ -2486,7 +2486,7 @@ function BooleanGroupEditor({
|
|
|
2486
2486
|
});
|
|
2487
2487
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
2488
2488
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2489
|
-
|
|
2489
|
+
chunkKZDABEML_js.FormSelect,
|
|
2490
2490
|
{
|
|
2491
2491
|
label: "Combinator",
|
|
2492
2492
|
value: value.combinator ?? "and",
|
|
@@ -2542,7 +2542,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2542
2542
|
};
|
|
2543
2543
|
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: [
|
|
2544
2544
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2545
|
-
|
|
2545
|
+
chunkKZDABEML_js.FormSelect,
|
|
2546
2546
|
{
|
|
2547
2547
|
label: "Action type",
|
|
2548
2548
|
value: type,
|
|
@@ -2552,7 +2552,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2552
2552
|
),
|
|
2553
2553
|
type === "adjust_price" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2554
2554
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2555
|
-
|
|
2555
|
+
chunkKZDABEML_js.FormInput,
|
|
2556
2556
|
{
|
|
2557
2557
|
label: "Multiplier",
|
|
2558
2558
|
type: "number",
|
|
@@ -2562,7 +2562,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2562
2562
|
}
|
|
2563
2563
|
),
|
|
2564
2564
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2565
|
-
|
|
2565
|
+
chunkKZDABEML_js.FormInput,
|
|
2566
2566
|
{
|
|
2567
2567
|
label: "Reason code",
|
|
2568
2568
|
value: stringParam(params.reason),
|
|
@@ -2572,7 +2572,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2572
2572
|
)
|
|
2573
2573
|
] }),
|
|
2574
2574
|
type === "enforce_min_margin" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2575
|
-
|
|
2575
|
+
chunkKZDABEML_js.FormInput,
|
|
2576
2576
|
{
|
|
2577
2577
|
label: "Floor (fraction, e.g. 0.08)",
|
|
2578
2578
|
type: "number",
|
|
@@ -2582,7 +2582,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2582
2582
|
}
|
|
2583
2583
|
),
|
|
2584
2584
|
type === "realign_to_competitor" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2585
|
-
|
|
2585
|
+
chunkKZDABEML_js.FormInput,
|
|
2586
2586
|
{
|
|
2587
2587
|
label: "Tolerance (fraction)",
|
|
2588
2588
|
type: "number",
|
|
@@ -2592,7 +2592,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2592
2592
|
}
|
|
2593
2593
|
),
|
|
2594
2594
|
type === "request_manager_approval" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2595
|
-
|
|
2595
|
+
chunkKZDABEML_js.FormInput,
|
|
2596
2596
|
{
|
|
2597
2597
|
label: "Approval limit (fraction)",
|
|
2598
2598
|
type: "number",
|
|
@@ -2602,7 +2602,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2602
2602
|
}
|
|
2603
2603
|
),
|
|
2604
2604
|
type === "round_to" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2605
|
-
|
|
2605
|
+
chunkKZDABEML_js.FormInput,
|
|
2606
2606
|
{
|
|
2607
2607
|
label: "Step (e.g. 0.009)",
|
|
2608
2608
|
type: "number",
|
|
@@ -2613,7 +2613,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2613
2613
|
),
|
|
2614
2614
|
type === "alert" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2615
2615
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2616
|
-
|
|
2616
|
+
chunkKZDABEML_js.FormInput,
|
|
2617
2617
|
{
|
|
2618
2618
|
label: "Channel",
|
|
2619
2619
|
value: stringParam(params.channel),
|
|
@@ -2622,7 +2622,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2622
2622
|
}
|
|
2623
2623
|
),
|
|
2624
2624
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2625
|
-
|
|
2625
|
+
chunkKZDABEML_js.FormInput,
|
|
2626
2626
|
{
|
|
2627
2627
|
label: "Severity",
|
|
2628
2628
|
value: stringParam(params.severity),
|
|
@@ -2660,7 +2660,7 @@ function CustomParamsEditor({
|
|
|
2660
2660
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
2661
2661
|
entries.map(([key, value], index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[1fr_1fr_auto] items-end gap-2", children: [
|
|
2662
2662
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2663
|
-
|
|
2663
|
+
chunkKZDABEML_js.FormInput,
|
|
2664
2664
|
{
|
|
2665
2665
|
label: "Key",
|
|
2666
2666
|
value: key,
|
|
@@ -2668,7 +2668,7 @@ function CustomParamsEditor({
|
|
|
2668
2668
|
}
|
|
2669
2669
|
),
|
|
2670
2670
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2671
|
-
|
|
2671
|
+
chunkKZDABEML_js.FormInput,
|
|
2672
2672
|
{
|
|
2673
2673
|
label: "Value",
|
|
2674
2674
|
value: String(value ?? ""),
|
|
@@ -2707,9 +2707,9 @@ function RuleForm({ value, onChange }) {
|
|
|
2707
2707
|
);
|
|
2708
2708
|
const update = (key, v) => onChange({ ...value, [key]: v });
|
|
2709
2709
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
|
|
2710
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2710
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkKZDABEML_js.FormGrid, { children: [
|
|
2711
2711
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2712
|
-
|
|
2712
|
+
chunkKZDABEML_js.FormInput,
|
|
2713
2713
|
{
|
|
2714
2714
|
label: "Name",
|
|
2715
2715
|
required: true,
|
|
@@ -2718,7 +2718,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2718
2718
|
}
|
|
2719
2719
|
),
|
|
2720
2720
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2721
|
-
|
|
2721
|
+
chunkKZDABEML_js.FormInput,
|
|
2722
2722
|
{
|
|
2723
2723
|
label: "Priority",
|
|
2724
2724
|
type: "number",
|
|
@@ -2728,7 +2728,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2728
2728
|
}
|
|
2729
2729
|
),
|
|
2730
2730
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2731
|
-
|
|
2731
|
+
chunkKZDABEML_js.FormSelect,
|
|
2732
2732
|
{
|
|
2733
2733
|
label: "Enabled",
|
|
2734
2734
|
value: value.enabled ? "true" : "false",
|
|
@@ -2740,7 +2740,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2740
2740
|
}
|
|
2741
2741
|
),
|
|
2742
2742
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2743
|
-
|
|
2743
|
+
chunkKZDABEML_js.FormTextarea,
|
|
2744
2744
|
{
|
|
2745
2745
|
label: "Description",
|
|
2746
2746
|
rows: 2,
|
|
@@ -2787,7 +2787,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2787
2787
|
),
|
|
2788
2788
|
showAdvanced && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-3 grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2789
2789
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2790
|
-
|
|
2790
|
+
chunkKZDABEML_js.FormInput,
|
|
2791
2791
|
{
|
|
2792
2792
|
label: "Valid from (ISO 8601)",
|
|
2793
2793
|
type: "datetime-local",
|
|
@@ -2796,7 +2796,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2796
2796
|
}
|
|
2797
2797
|
),
|
|
2798
2798
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2799
|
-
|
|
2799
|
+
chunkKZDABEML_js.FormInput,
|
|
2800
2800
|
{
|
|
2801
2801
|
label: "Valid until (ISO 8601)",
|
|
2802
2802
|
type: "datetime-local",
|
|
@@ -2805,7 +2805,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2805
2805
|
}
|
|
2806
2806
|
),
|
|
2807
2807
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2808
|
-
|
|
2808
|
+
chunkKZDABEML_js.FormSelect,
|
|
2809
2809
|
{
|
|
2810
2810
|
label: "Status",
|
|
2811
2811
|
value: value.status ?? "active",
|
|
@@ -2814,7 +2814,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2814
2814
|
}
|
|
2815
2815
|
),
|
|
2816
2816
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2817
|
-
|
|
2817
|
+
chunkKZDABEML_js.FormInput,
|
|
2818
2818
|
{
|
|
2819
2819
|
label: "Tags (comma-separated)",
|
|
2820
2820
|
value: (value.tags ?? []).join(", "),
|
|
@@ -3001,8 +3001,8 @@ function CollapsibleSection({ title, icon, colorClass, defaultOpen = true, count
|
|
|
3001
3001
|
] });
|
|
3002
3002
|
}
|
|
3003
3003
|
function LogicNodeItemCard({ item, translationFunction }) {
|
|
3004
|
-
const IconComponent =
|
|
3005
|
-
const gradient =
|
|
3004
|
+
const IconComponent = chunkC4UYEHPY_js.LOGIC_ICON_MAP[item.nodeType];
|
|
3005
|
+
const gradient = chunkC4UYEHPY_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-slate-400 to-slate-500";
|
|
3006
3006
|
const defaultConfig = chunk72SWXOD5_js.createDefaultLogicNodeConfig(item.nodeType);
|
|
3007
3007
|
const configJson = defaultConfig ? JSON.stringify(defaultConfig) : void 0;
|
|
3008
3008
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -3073,7 +3073,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3073
3073
|
[entityTypes, normalizedQuery]
|
|
3074
3074
|
);
|
|
3075
3075
|
const filteredLogicItems = react.useMemo(() => {
|
|
3076
|
-
const visibleByDefault = LOGIC_NODE_ITEMS.filter((item) => !
|
|
3076
|
+
const visibleByDefault = LOGIC_NODE_ITEMS.filter((item) => !chunkC4UYEHPY_js.EXPERIMENTAL_NODE_TYPES.has(item.nodeType));
|
|
3077
3077
|
if (!normalizedQuery) return visibleByDefault;
|
|
3078
3078
|
return visibleByDefault.filter(
|
|
3079
3079
|
(item) => t(item.nameKey).toLowerCase().includes(normalizedQuery) || t(item.descriptionKey).toLowerCase().includes(normalizedQuery)
|
|
@@ -3209,7 +3209,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3209
3209
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: tool.category })
|
|
3210
3210
|
] }),
|
|
3211
3211
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3212
|
-
|
|
3212
|
+
chunkKZDABEML_js.ToggleSwitch,
|
|
3213
3213
|
{
|
|
3214
3214
|
checked: Boolean(tool.enabled),
|
|
3215
3215
|
onChange: () => {
|
|
@@ -3250,7 +3250,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3250
3250
|
] })
|
|
3251
3251
|
] }),
|
|
3252
3252
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3253
|
-
|
|
3253
|
+
chunkKZDABEML_js.ToggleSwitch,
|
|
3254
3254
|
{
|
|
3255
3255
|
checked: Boolean(rule.enabled),
|
|
3256
3256
|
onChange: () => {
|
|
@@ -3286,8 +3286,8 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3286
3286
|
limit: entity.defaultLimit
|
|
3287
3287
|
});
|
|
3288
3288
|
const dsLogo = getDatasourceLogo(entity.id);
|
|
3289
|
-
const EntityIcon =
|
|
3290
|
-
const entityGradient =
|
|
3289
|
+
const EntityIcon = chunkC4UYEHPY_js.getEntityIcon(entity.id);
|
|
3290
|
+
const entityGradient = chunkC4UYEHPY_js.getEntityGradient(entity.id);
|
|
3291
3291
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3292
3292
|
"div",
|
|
3293
3293
|
{
|
|
@@ -3307,7 +3307,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3307
3307
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3308
3308
|
/* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Badge, { color: "zinc", size: "xs", children: "Read only" }),
|
|
3309
3309
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3310
|
-
|
|
3310
|
+
chunkKZDABEML_js.ToggleSwitch,
|
|
3311
3311
|
{
|
|
3312
3312
|
checked: true,
|
|
3313
3313
|
onChange: () => {
|
|
@@ -3393,14 +3393,14 @@ function WorkflowListBar({
|
|
|
3393
3393
|
children: [
|
|
3394
3394
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
|
|
3395
3395
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3396
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `truncate text-sm font-medium ${isActive ? "text-indigo-700 dark:text-indigo-300" : "text-
|
|
3396
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `truncate text-sm font-medium ${isActive ? "text-indigo-700 dark:text-indigo-300" : "text-slate-700 dark:text-slate-300"}`, children: workflow.name }),
|
|
3397
3397
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "shrink-0 rounded-full bg-slate-500/15 px-1.5 py-0.5 text-[10px] font-medium text-slate-700 dark:bg-slate-500/20 dark:text-slate-300", children: [
|
|
3398
3398
|
"v",
|
|
3399
3399
|
workflow.version
|
|
3400
3400
|
] }),
|
|
3401
3401
|
workflow.isDraft ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 rounded-full bg-amber-500/15 px-1.5 py-0.5 text-[10px] font-semibold text-amber-700 dark:bg-amber-500/20 dark:text-amber-300", children: tWorkflow("draftBadge") }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 rounded-full bg-emerald-500/15 px-1.5 py-0.5 text-[10px] font-semibold text-emerald-700 dark:bg-emerald-500/20 dark:text-emerald-300", children: tWorkflow("published") })
|
|
3402
3402
|
] }),
|
|
3403
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-[10px] text-
|
|
3403
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-[10px] text-slate-400 dark:text-slate-500", children: workflow.updatedAt ? formatRelativeTime(typeof workflow.updatedAt === "string" ? workflow.updatedAt : workflow.updatedAt.toISOString()) : "" })
|
|
3404
3404
|
] }),
|
|
3405
3405
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-0.5 opacity-0 transition-opacity group-hover:opacity-100", children: [
|
|
3406
3406
|
onConvertToSubworkflow && /* @__PURE__ */ jsxRuntime.jsx("div", { onClick: (event) => event.stopPropagation(), children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3436,7 +3436,7 @@ function WorkflowListBar({
|
|
|
3436
3436
|
{
|
|
3437
3437
|
type: "button",
|
|
3438
3438
|
onClick: onCreate,
|
|
3439
|
-
className: "liquid-surface flex shrink-0 items-center gap-1.5 rounded-xl !border-dashed px-3 py-2 text-xs font-medium text-
|
|
3439
|
+
className: "liquid-surface flex shrink-0 items-center gap-1.5 rounded-xl !border-dashed px-3 py-2 text-xs font-medium text-slate-500 transition-all hover:shadow-md hover:text-indigo-600 dark:text-slate-400 dark:hover:text-indigo-400",
|
|
3440
3440
|
children: [
|
|
3441
3441
|
/* @__PURE__ */ jsxRuntime.jsx(outline.PlusIcon, { className: "h-3.5 w-3.5" }),
|
|
3442
3442
|
tWorkflow("newWorkflow")
|
|
@@ -3632,9 +3632,9 @@ function formatDuration2(durationMs) {
|
|
|
3632
3632
|
}
|
|
3633
3633
|
function RunPanel({ open, onClose, onRun, onStop }) {
|
|
3634
3634
|
const translations = chunkY5VN4SPH_js.useTranslations("agents.workflow.runPanel");
|
|
3635
|
-
const nodes =
|
|
3636
|
-
const isRunning =
|
|
3637
|
-
const nodeResults =
|
|
3635
|
+
const nodes = chunkC4UYEHPY_js.useWorkflowStore((state) => state.nodes);
|
|
3636
|
+
const isRunning = chunkC4UYEHPY_js.useWorkflowStore((state) => state.isRunning);
|
|
3637
|
+
const nodeResults = chunkC4UYEHPY_js.useWorkflowStore((state) => state.nodeResults);
|
|
3638
3638
|
const startNode = nodes.find((node) => node.type === "start");
|
|
3639
3639
|
const hasEndNode = nodes.some((node) => node.type === "end");
|
|
3640
3640
|
const hasValidStartConfig = Boolean(
|
|
@@ -3968,8 +3968,8 @@ function inferVariables(config, nodeType) {
|
|
|
3968
3968
|
}
|
|
3969
3969
|
function VariableInspector({ open, onClose }) {
|
|
3970
3970
|
const translations = chunkY5VN4SPH_js.useTranslations("agents.workflow.variableInspector");
|
|
3971
|
-
const nodes =
|
|
3972
|
-
const edges =
|
|
3971
|
+
const nodes = chunkC4UYEHPY_js.useWorkflowStore((state) => state.nodes);
|
|
3972
|
+
const edges = chunkC4UYEHPY_js.useWorkflowStore((state) => state.edges);
|
|
3973
3973
|
const [expandedNodes, setExpandedNodes] = react.useState(/* @__PURE__ */ new Set());
|
|
3974
3974
|
const toggleNodeExpansion = react.useCallback((nodeId) => {
|
|
3975
3975
|
setExpandedNodes((current) => {
|
|
@@ -4032,8 +4032,8 @@ function VariableInspector({ open, onClose }) {
|
|
|
4032
4032
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-slate-500 dark:text-slate-400", children: translations("noNodes") })
|
|
4033
4033
|
] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-slate-100 dark:divide-slate-800", children: nodeVariableEntries.map((entry) => {
|
|
4034
4034
|
const isExpanded = expandedNodes.has(entry.nodeId);
|
|
4035
|
-
const IconComponent =
|
|
4036
|
-
const gradient =
|
|
4035
|
+
const IconComponent = chunkC4UYEHPY_js.LOGIC_ICON_MAP[entry.nodeType];
|
|
4036
|
+
const gradient = chunkC4UYEHPY_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-slate-400 to-slate-500";
|
|
4037
4037
|
const inputVariables = entry.variables.filter((variable) => variable.direction === "input");
|
|
4038
4038
|
const outputVariables = entry.variables.filter((variable) => variable.direction === "output");
|
|
4039
4039
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": `variable-node-${entry.nodeId}`, children: [
|
|
@@ -4099,7 +4099,7 @@ function RunInputDialog({
|
|
|
4099
4099
|
onRun
|
|
4100
4100
|
}) {
|
|
4101
4101
|
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.runInputDialog");
|
|
4102
|
-
const nodes =
|
|
4102
|
+
const nodes = chunkC4UYEHPY_js.useWorkflowStore((state) => state.nodes);
|
|
4103
4103
|
const [values, setValues] = react.useState({});
|
|
4104
4104
|
const inputVariableNames = react.useMemo(() => {
|
|
4105
4105
|
const storeStartNode = nodes.find((node) => node.type === "start");
|
|
@@ -4126,7 +4126,7 @@ function RunInputDialog({
|
|
|
4126
4126
|
}, [onClose]);
|
|
4127
4127
|
if (!open) return null;
|
|
4128
4128
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4129
|
-
|
|
4129
|
+
chunkKZDABEML_js.GlassModal,
|
|
4130
4130
|
{
|
|
4131
4131
|
open,
|
|
4132
4132
|
onClose: handleClose,
|
|
@@ -4137,7 +4137,7 @@ function RunInputDialog({
|
|
|
4137
4137
|
/* @__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: [
|
|
4138
4138
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300", children: variableName }),
|
|
4139
4139
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4140
|
-
|
|
4140
|
+
chunkKZDABEML_js.Input,
|
|
4141
4141
|
{
|
|
4142
4142
|
value: values[variableName] ?? "",
|
|
4143
4143
|
onChange: (event) => handleValueChange(variableName, event.target.value),
|
|
@@ -4180,8 +4180,8 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
|
|
|
4180
4180
|
const [isLoadingRuns, setIsLoadingRuns] = react.useState(false);
|
|
4181
4181
|
const [selectedRun, setSelectedRun] = react.useState(null);
|
|
4182
4182
|
const [selectedNode, setSelectedNode] = react.useState(null);
|
|
4183
|
-
const isRunning =
|
|
4184
|
-
const nodeResults =
|
|
4183
|
+
const isRunning = chunkC4UYEHPY_js.useWorkflowStore((state) => state.isRunning);
|
|
4184
|
+
const nodeResults = chunkC4UYEHPY_js.useWorkflowStore((state) => state.nodeResults);
|
|
4185
4185
|
const refreshRuns = react.useCallback(async () => {
|
|
4186
4186
|
setIsLoadingRuns(true);
|
|
4187
4187
|
try {
|
|
@@ -4360,7 +4360,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
|
|
|
4360
4360
|
onAutoSaveGraph(graph);
|
|
4361
4361
|
}, [onAutoSaveGraph, onGraphSnapshot]);
|
|
4362
4362
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4363
|
-
|
|
4363
|
+
chunkC4UYEHPY_js.Workspace,
|
|
4364
4364
|
{
|
|
4365
4365
|
...workspaceProps,
|
|
4366
4366
|
onGraphChange: handleGraphChange
|
|
@@ -4368,7 +4368,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
|
|
|
4368
4368
|
);
|
|
4369
4369
|
});
|
|
4370
4370
|
function DynamicIslandConfirm2(props) {
|
|
4371
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4371
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkKZDABEML_js.DynamicIslandConfirm, { ...props });
|
|
4372
4372
|
}
|
|
4373
4373
|
var JSON_PREVIEW_LINE_LIMIT = 50;
|
|
4374
4374
|
function DslExportModal({ open, onClose, workflow, graph }) {
|
|
@@ -4422,7 +4422,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
|
|
|
4422
4422
|
}, [jsonString, workflow.name, workflow.version]);
|
|
4423
4423
|
if (!open) return null;
|
|
4424
4424
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4425
|
-
|
|
4425
|
+
chunkKZDABEML_js.GlassModal,
|
|
4426
4426
|
{
|
|
4427
4427
|
open,
|
|
4428
4428
|
onClose,
|
|
@@ -4640,7 +4640,7 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4640
4640
|
}, []);
|
|
4641
4641
|
if (!open) return null;
|
|
4642
4642
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4643
|
-
|
|
4643
|
+
chunkKZDABEML_js.GlassModal,
|
|
4644
4644
|
{
|
|
4645
4645
|
open,
|
|
4646
4646
|
onClose,
|
|
@@ -4731,14 +4731,14 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4731
4731
|
}
|
|
4732
4732
|
|
|
4733
4733
|
// src/astrlabe/store/selectors.ts
|
|
4734
|
-
var useCanUndo = () =>
|
|
4735
|
-
var useCanRedo = () =>
|
|
4736
|
-
var useHasCopied = () =>
|
|
4737
|
-
var useContextMenu = () =>
|
|
4738
|
-
var useEditingNodeId = () =>
|
|
4739
|
-
var useSelectedNodeCount = () =>
|
|
4740
|
-
var useIsRunning = () =>
|
|
4741
|
-
var useNodeResults = () =>
|
|
4734
|
+
var useCanUndo = () => chunkC4UYEHPY_js.useWorkflowStore((state) => state.past.length > 0);
|
|
4735
|
+
var useCanRedo = () => chunkC4UYEHPY_js.useWorkflowStore((state) => state.future.length > 0);
|
|
4736
|
+
var useHasCopied = () => chunkC4UYEHPY_js.useWorkflowStore((state) => state.clipboard !== null);
|
|
4737
|
+
var useContextMenu = () => chunkC4UYEHPY_js.useWorkflowStore((state) => state.contextMenu);
|
|
4738
|
+
var useEditingNodeId = () => chunkC4UYEHPY_js.useWorkflowStore((state) => state.editingNodeId);
|
|
4739
|
+
var useSelectedNodeCount = () => chunkC4UYEHPY_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
|
|
4740
|
+
var useIsRunning = () => chunkC4UYEHPY_js.useWorkflowStore((state) => state.isRunning);
|
|
4741
|
+
var useNodeResults = () => chunkC4UYEHPY_js.useWorkflowStore((state) => state.nodeResults);
|
|
4742
4742
|
var DEFAULT_MAX_HISTORY = 50;
|
|
4743
4743
|
function useUndoRedo(nodes, edges, setNodes, setEdges, maxHistory = DEFAULT_MAX_HISTORY) {
|
|
4744
4744
|
const pastRef = react.useRef([]);
|
|
@@ -5062,5 +5062,5 @@ exports.useNodeResults = useNodeResults;
|
|
|
5062
5062
|
exports.useSelectedNodeCount = useSelectedNodeCount;
|
|
5063
5063
|
exports.useSubworkflowStore = useSubworkflowStore;
|
|
5064
5064
|
exports.useUndoRedo = useUndoRedo;
|
|
5065
|
-
//# sourceMappingURL=chunk-
|
|
5066
|
-
//# sourceMappingURL=chunk-
|
|
5065
|
+
//# sourceMappingURL=chunk-KRS2CLPR.js.map
|
|
5066
|
+
//# sourceMappingURL=chunk-KRS2CLPR.js.map
|