@datatechsolutions/ui 2.11.83 → 2.11.84
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.d.mts +3 -52
- package/dist/astrlabe/index.d.ts +3 -52
- package/dist/astrlabe/index.js +107 -107
- 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-3T2WGL47.js +44 -0
- package/dist/chunk-3T2WGL47.js.map +1 -0
- package/dist/{chunk-UVGMKHWH.mjs → chunk-63AL2RN5.mjs} +4 -4
- package/dist/{chunk-UVGMKHWH.mjs.map → chunk-63AL2RN5.mjs.map} +1 -1
- package/dist/chunk-64G2HBRQ.mjs +481 -0
- package/dist/chunk-64G2HBRQ.mjs.map +1 -0
- package/dist/{chunk-J3OYJ44D.mjs → chunk-BH2AU3LG.mjs} +3 -3
- package/dist/{chunk-J3OYJ44D.mjs.map → chunk-BH2AU3LG.mjs.map} +1 -1
- package/dist/chunk-CCRBT7TA.mjs +941 -0
- package/dist/chunk-CCRBT7TA.mjs.map +1 -0
- package/dist/chunk-CHLJUSXX.mjs +128 -0
- package/dist/chunk-CHLJUSXX.mjs.map +1 -0
- package/dist/chunk-CXIQWPBH.js +214 -0
- package/dist/chunk-CXIQWPBH.js.map +1 -0
- package/dist/chunk-EDE36MKE.mjs +412 -0
- package/dist/chunk-EDE36MKE.mjs.map +1 -0
- package/dist/{chunk-M7P2TQ6X.js → chunk-EFREXNZB.js} +64 -64
- package/dist/{chunk-M7P2TQ6X.js.map → chunk-EFREXNZB.js.map} +1 -1
- package/dist/chunk-FAGDZEKM.js +23 -0
- package/dist/chunk-FAGDZEKM.js.map +1 -0
- package/dist/{chunk-TUEYBNWL.js → chunk-GV6WJCEB.js} +3 -3
- package/dist/{chunk-TUEYBNWL.js.map → chunk-GV6WJCEB.js.map} +1 -1
- package/dist/chunk-HU3EAHFO.mjs +20 -0
- package/dist/chunk-HU3EAHFO.mjs.map +1 -0
- package/dist/{chunk-LLFU42KC.mjs → chunk-I6WYV2AN.mjs} +3 -3
- package/dist/{chunk-LLFU42KC.mjs.map → chunk-I6WYV2AN.mjs.map} +1 -1
- package/dist/chunk-JJWFMKZY.js +132 -0
- package/dist/chunk-JJWFMKZY.js.map +1 -0
- package/dist/{chunk-JFWZHROG.js → chunk-L6FVIWAJ.js} +128 -128
- package/dist/{chunk-JFWZHROG.js.map → chunk-L6FVIWAJ.js.map} +1 -1
- package/dist/chunk-MNQEZL7B.mjs +210 -0
- package/dist/chunk-MNQEZL7B.mjs.map +1 -0
- package/dist/chunk-SGJ24J2Q.js +943 -0
- package/dist/chunk-SGJ24J2Q.js.map +1 -0
- package/dist/chunk-SW6TVAIJ.js +418 -0
- package/dist/chunk-SW6TVAIJ.js.map +1 -0
- package/dist/chunk-SYNVNTLJ.mjs +20 -0
- package/dist/chunk-SYNVNTLJ.mjs.map +1 -0
- package/dist/chunk-UQXVCVAN.mjs +41 -0
- package/dist/chunk-UQXVCVAN.mjs.map +1 -0
- package/dist/chunk-WGELLCOZ.js +22 -0
- package/dist/chunk-WGELLCOZ.js.map +1 -0
- package/dist/chunk-YXPHJ2BQ.js +541 -0
- package/dist/chunk-YXPHJ2BQ.js.map +1 -0
- package/dist/index.d.mts +3 -47
- package/dist/index.d.ts +3 -47
- package/dist/index.js +765 -765
- package/dist/index.mjs +2 -2
- package/dist/navigation-BiWVffAN.d.mts +49 -0
- package/dist/navigation-BiWVffAN.d.ts +49 -0
- package/dist/platform/agents-workspace.d.mts +19 -0
- package/dist/platform/agents-workspace.d.ts +19 -0
- package/dist/platform/agents-workspace.js +26 -0
- package/dist/platform/agents-workspace.js.map +1 -0
- package/dist/platform/agents-workspace.mjs +17 -0
- package/dist/platform/agents-workspace.mjs.map +1 -0
- package/dist/platform/app-shell.d.mts +58 -0
- package/dist/platform/app-shell.d.ts +58 -0
- package/dist/platform/app-shell.js +17 -0
- package/dist/platform/app-shell.js.map +1 -0
- package/dist/platform/app-shell.mjs +8 -0
- package/dist/platform/app-shell.mjs.map +1 -0
- package/dist/platform/index.d.mts +100 -3
- package/dist/platform/index.d.ts +100 -3
- package/dist/platform/index.js +499 -28
- package/dist/platform/index.js.map +1 -1
- package/dist/platform/index.mjs +472 -27
- package/dist/platform/index.mjs.map +1 -1
- package/dist/platform/pages/index.d.mts +243 -82
- package/dist/platform/pages/index.d.ts +243 -82
- package/dist/platform/pages/index.js +886 -614
- package/dist/platform/pages/index.js.map +1 -1
- package/dist/platform/pages/index.mjs +756 -511
- package/dist/platform/pages/index.mjs.map +1 -1
- package/dist/platform/utils/index.js +18 -56
- package/dist/platform/utils/index.js.map +1 -1
- package/dist/platform/utils/index.mjs +3 -53
- package/dist/platform/utils/index.mjs.map +1 -1
- package/dist/platform/workflow-api-client.d.mts +6 -0
- package/dist/platform/workflow-api-client.d.ts +6 -0
- package/dist/platform/workflow-api-client.js +246 -0
- package/dist/platform/workflow-api-client.js.map +1 -0
- package/dist/platform/workflow-api-client.mjs +5 -0
- package/dist/platform/workflow-api-client.mjs.map +1 -0
- package/dist/platform/workflow-canvas-shell.d.mts +18 -0
- package/dist/platform/workflow-canvas-shell.d.ts +18 -0
- package/dist/platform/workflow-canvas-shell.js +20 -0
- package/dist/platform/workflow-canvas-shell.js.map +1 -0
- package/dist/platform/workflow-canvas-shell.mjs +11 -0
- package/dist/platform/workflow-canvas-shell.mjs.map +1 -0
- package/dist/{rule-form-F5jBOeqk.d.mts → rule-form-BYJzyork.d.mts} +50 -1
- package/dist/{rule-form-F5jBOeqk.d.ts → rule-form-BYJzyork.d.ts} +50 -1
- package/dist/workflow-api-client-C8gPn_D1.d.mts +386 -0
- package/dist/workflow-api-client-Dy1Ph8W-.d.ts +386 -0
- package/package.json +21 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
var
|
|
4
|
+
var chunkEFREXNZB_js = require('./chunk-EFREXNZB.js');
|
|
5
|
+
var chunkGV6WJCEB_js = require('./chunk-GV6WJCEB.js');
|
|
6
6
|
var chunkYXN2K77G_js = require('./chunk-YXN2K77G.js');
|
|
7
7
|
var chunkC7BI5LQ6_js = require('./chunk-C7BI5LQ6.js');
|
|
8
8
|
var react = require('react');
|
|
@@ -71,7 +71,7 @@ function OutputSchemaBuilder({ value, onChange, depth = 0 }) {
|
|
|
71
71
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-xl border border-dashed border-slate-300 bg-slate-50/40 p-4 text-center dark:border-slate-700 dark:bg-slate-900/30", children: [
|
|
72
72
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-3 text-xs text-slate-500 dark:text-slate-400", children: "No schema yet \u2014 agent text is exposed as a raw string. Add a schema to enforce structured output." }),
|
|
73
73
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
74
|
-
|
|
74
|
+
chunkGV6WJCEB_js.Button,
|
|
75
75
|
{
|
|
76
76
|
type: "button",
|
|
77
77
|
outline: true,
|
|
@@ -135,7 +135,7 @@ function OutputSchemaBuilder({ value, onChange, depth = 0 }) {
|
|
|
135
135
|
},
|
|
136
136
|
index
|
|
137
137
|
)),
|
|
138
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
138
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkGV6WJCEB_js.Button, { type: "button", outline: true, onClick: addField, children: "+ Add field" })
|
|
139
139
|
] })
|
|
140
140
|
] });
|
|
141
141
|
}
|
|
@@ -158,7 +158,7 @@ function FieldEditor({
|
|
|
158
158
|
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: [
|
|
159
159
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[1fr_140px_auto_auto] items-end gap-2", children: [
|
|
160
160
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
161
|
-
|
|
161
|
+
chunkGV6WJCEB_js.FormInput,
|
|
162
162
|
{
|
|
163
163
|
label: "Name",
|
|
164
164
|
value: field.name,
|
|
@@ -167,7 +167,7 @@ function FieldEditor({
|
|
|
167
167
|
}
|
|
168
168
|
),
|
|
169
169
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
170
|
-
|
|
170
|
+
chunkGV6WJCEB_js.FormSelect,
|
|
171
171
|
{
|
|
172
172
|
label: "Type",
|
|
173
173
|
value: field.type,
|
|
@@ -187,10 +187,10 @@ function FieldEditor({
|
|
|
187
187
|
),
|
|
188
188
|
"Required"
|
|
189
189
|
] }),
|
|
190
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
190
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkGV6WJCEB_js.Button, { type: "button", plain: true, onClick: onRemove, children: "Remove" })
|
|
191
191
|
] }),
|
|
192
192
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
193
|
-
|
|
193
|
+
chunkGV6WJCEB_js.FormInput,
|
|
194
194
|
{
|
|
195
195
|
label: "Description (optional)",
|
|
196
196
|
value: field.description,
|
|
@@ -283,7 +283,7 @@ function OutputCard({ label, value }) {
|
|
|
283
283
|
function AgentProfileHeader({ agent, models, t, selectedModelId, setSelectedModelId, selectedFramework, temperature, setTemperature, elo, setElo, onChanged }) {
|
|
284
284
|
const modelName = models.find((model) => model.id === selectedModelId)?.name ?? selectedModelId ?? "\u2014";
|
|
285
285
|
const avatarUrl = agent.avatar;
|
|
286
|
-
const frameworkMeta =
|
|
286
|
+
const frameworkMeta = chunkEFREXNZB_js.getFrameworkMeta(selectedFramework);
|
|
287
287
|
const tierInfo = getEloTier(elo);
|
|
288
288
|
const difficultyConfig = {
|
|
289
289
|
beginner: { color: "bg-cyan-100 text-cyan-700 dark:bg-cyan-900/30 dark:text-cyan-400", labelKey: "agentDrawer.tierBeginner" },
|
|
@@ -559,13 +559,13 @@ function AgentCapabilityCard({ elo, setElo, models, selectedModelId, setSelected
|
|
|
559
559
|
] });
|
|
560
560
|
}
|
|
561
561
|
function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFramework, setSelectedFramework, markDirty, connectedProviderTypes }) {
|
|
562
|
-
const frameworkKeys = Object.keys(
|
|
562
|
+
const frameworkKeys = Object.keys(chunkEFREXNZB_js.FRAMEWORK_META);
|
|
563
563
|
const hasProviderConstraints = connectedProviderTypes.length > 0;
|
|
564
|
-
const compatibleModels =
|
|
564
|
+
const compatibleModels = chunkEFREXNZB_js.getCompatibleModels(models, selectedFramework);
|
|
565
565
|
const handleFrameworkChange = react.useCallback((newFramework) => {
|
|
566
566
|
setSelectedFramework(newFramework);
|
|
567
|
-
if (!
|
|
568
|
-
const compatible =
|
|
567
|
+
if (!chunkEFREXNZB_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
|
|
568
|
+
const compatible = chunkEFREXNZB_js.getCompatibleModels(models, newFramework);
|
|
569
569
|
if (compatible.length > 0) {
|
|
570
570
|
setSelectedModelId(compatible[0].id);
|
|
571
571
|
}
|
|
@@ -576,10 +576,10 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
|
|
|
576
576
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
577
577
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-gray-500 dark:text-gray-400", children: t("agentDrawer.framework") }),
|
|
578
578
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1.5", children: frameworkKeys.map((key) => {
|
|
579
|
-
const meta =
|
|
579
|
+
const meta = chunkEFREXNZB_js.FRAMEWORK_META[key];
|
|
580
580
|
const isSelected = key === selectedFramework;
|
|
581
|
-
const compatCount =
|
|
582
|
-
const isCompatibleWithProviders = !hasProviderConstraints ||
|
|
581
|
+
const compatCount = chunkEFREXNZB_js.getCompatibleModels(models, key).length;
|
|
582
|
+
const isCompatibleWithProviders = !hasProviderConstraints || chunkEFREXNZB_js.isFrameworkCompatibleWithProviders(key, connectedProviderTypes);
|
|
583
583
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
584
584
|
"button",
|
|
585
585
|
{
|
|
@@ -611,7 +611,7 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
|
|
|
611
611
|
] }),
|
|
612
612
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-2", children: models.map((model) => {
|
|
613
613
|
const isSelected = model.id === selectedModelId;
|
|
614
|
-
const isCompatible =
|
|
614
|
+
const isCompatible = chunkEFREXNZB_js.isModelCompatibleWithFramework(model.id, selectedFramework);
|
|
615
615
|
const { IconComponent, color, providerLabel } = getModelIcon(model.id);
|
|
616
616
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
617
617
|
"button",
|
|
@@ -735,7 +735,7 @@ function PromptTab({
|
|
|
735
735
|
] });
|
|
736
736
|
}
|
|
737
737
|
function ResultsTab({ agentId, t }) {
|
|
738
|
-
const nodeResults =
|
|
738
|
+
const nodeResults = chunkEFREXNZB_js.useWorkflowStore((state) => state.nodeResults);
|
|
739
739
|
const agentResult = react.useMemo(() => {
|
|
740
740
|
return nodeResults[agentId] ?? null;
|
|
741
741
|
}, [nodeResults, agentId]);
|
|
@@ -825,10 +825,10 @@ function ModelsTab({ modelProviders, selectedProviderId, onSelectProvider, model
|
|
|
825
825
|
const providerModels = modelsByProvider.find((p) => p.provider.id === selectedProviderId);
|
|
826
826
|
if (!providerModels || providerModels.models.length === 0) return /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-gray-400 dark:text-gray-500", children: t("agentDrawer.noModelsForProvider") });
|
|
827
827
|
const compatibleModels = providerModels.models.filter(
|
|
828
|
-
(m) =>
|
|
828
|
+
(m) => chunkEFREXNZB_js.isModelCompatibleWithFramework(m.id, agentFramework)
|
|
829
829
|
);
|
|
830
830
|
const incompatibleModels = providerModels.models.filter(
|
|
831
|
-
(m) => !
|
|
831
|
+
(m) => !chunkEFREXNZB_js.isModelCompatibleWithFramework(m.id, agentFramework)
|
|
832
832
|
);
|
|
833
833
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
834
834
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-gray-500 dark:text-gray-400", children: t("agentDrawer.selectModel") }),
|
|
@@ -901,7 +901,7 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
|
|
|
901
901
|
] }),
|
|
902
902
|
tool.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: tool.description }),
|
|
903
903
|
tool.compatibleFrameworks && tool.compatibleFrameworks.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-1 flex flex-wrap gap-0.5", children: tool.compatibleFrameworks.map((framework) => {
|
|
904
|
-
const meta =
|
|
904
|
+
const meta = chunkEFREXNZB_js.getFrameworkMeta(framework);
|
|
905
905
|
const isCurrentFw = framework === agentFramework;
|
|
906
906
|
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: [
|
|
907
907
|
/* @__PURE__ */ jsxRuntime.jsx(meta.IconComponent, { className: "h-2.5 w-2.5" }),
|
|
@@ -918,7 +918,7 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
|
|
|
918
918
|
event.stopPropagation();
|
|
919
919
|
},
|
|
920
920
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
921
|
-
|
|
921
|
+
chunkGV6WJCEB_js.ToggleSwitch,
|
|
922
922
|
{
|
|
923
923
|
checked: isEnabled,
|
|
924
924
|
onChange: () => onToggle(tool.agentToolId),
|
|
@@ -1077,9 +1077,9 @@ function AdvancedTab({
|
|
|
1077
1077
|
}
|
|
1078
1078
|
function AgentModal({ onSaved, onPersist }) {
|
|
1079
1079
|
const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
|
|
1080
|
-
const activeModal =
|
|
1081
|
-
const agentData =
|
|
1082
|
-
const closeModal =
|
|
1080
|
+
const activeModal = chunkEFREXNZB_js.useModalStore((s) => s.activeModal);
|
|
1081
|
+
const agentData = chunkEFREXNZB_js.useModalStore((s) => s.agentData);
|
|
1082
|
+
const closeModal = chunkEFREXNZB_js.useModalStore((s) => s.closeModal);
|
|
1083
1083
|
const open = activeModal === "agent";
|
|
1084
1084
|
const agent = agentData?.agent ?? null;
|
|
1085
1085
|
const models = agentData?.models ?? [];
|
|
@@ -1241,7 +1241,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1241
1241
|
)
|
|
1242
1242
|
] });
|
|
1243
1243
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1244
|
-
|
|
1244
|
+
chunkGV6WJCEB_js.GlassModal,
|
|
1245
1245
|
{
|
|
1246
1246
|
open,
|
|
1247
1247
|
onClose: handleClose,
|
|
@@ -1429,7 +1429,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1429
1429
|
const markDirty = useSubworkflowStore((s) => s.markDirty);
|
|
1430
1430
|
const markSaved = useSubworkflowStore((s) => s.markSaved);
|
|
1431
1431
|
const closeModal = useSubworkflowStore((s) => s.closeModal);
|
|
1432
|
-
const agentBehind =
|
|
1432
|
+
const agentBehind = chunkEFREXNZB_js.useModalStore((s) => s.activeModal === "agent" ? s.agentData?.agent?.name : null);
|
|
1433
1433
|
const isCreateMode = !tool?.toolId;
|
|
1434
1434
|
const initialGraph = react.useMemo(() => {
|
|
1435
1435
|
const config = tool?.config;
|
|
@@ -1458,9 +1458,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1458
1458
|
}, [tool, onSaved, name, category, description, timeoutMs, latestGraphRef, markSaved]);
|
|
1459
1459
|
if (!tool) return null;
|
|
1460
1460
|
const categoryKey = category ?? "external";
|
|
1461
|
-
const gradient = tool.color ??
|
|
1462
|
-
const categoryPill =
|
|
1463
|
-
const IconComponent =
|
|
1461
|
+
const gradient = tool.color ?? chunkEFREXNZB_js.CATEGORY_COLORS[categoryKey] ?? chunkEFREXNZB_js.CATEGORY_COLORS.external;
|
|
1462
|
+
const categoryPill = chunkEFREXNZB_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunkEFREXNZB_js.CATEGORY_PILL_COLORS.external;
|
|
1463
|
+
const IconComponent = chunkEFREXNZB_js.ICON_MAP[tool.icon ?? ""] ?? outline.ArrowPathRoundedSquareIcon;
|
|
1464
1464
|
const graph = latestGraphRef.current;
|
|
1465
1465
|
const startNode = graph.nodes.find((n) => n.type === "start");
|
|
1466
1466
|
const endNode = graph.nodes.find((n) => n.type === "end");
|
|
@@ -1493,7 +1493,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1493
1493
|
] })
|
|
1494
1494
|
] });
|
|
1495
1495
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1496
|
-
|
|
1496
|
+
chunkGV6WJCEB_js.GlassModal,
|
|
1497
1497
|
{
|
|
1498
1498
|
open,
|
|
1499
1499
|
onClose: closeModal,
|
|
@@ -1525,7 +1525,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1525
1525
|
{
|
|
1526
1526
|
type: "button",
|
|
1527
1527
|
onClick: () => setCategory(cat),
|
|
1528
|
-
className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${
|
|
1528
|
+
className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${chunkEFREXNZB_js.CATEGORY_PILL_COLORS[cat] ?? chunkEFREXNZB_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"}`,
|
|
1529
1529
|
children: cat
|
|
1530
1530
|
},
|
|
1531
1531
|
cat
|
|
@@ -1612,7 +1612,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1612
1612
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto" })
|
|
1613
1613
|
] }),
|
|
1614
1614
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1615
|
-
|
|
1615
|
+
chunkEFREXNZB_js.WorkflowCanvas,
|
|
1616
1616
|
{
|
|
1617
1617
|
initialGraph,
|
|
1618
1618
|
agents: [],
|
|
@@ -1628,9 +1628,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1628
1628
|
}
|
|
1629
1629
|
function PipelineSettingsModal({ onSave }) {
|
|
1630
1630
|
const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
|
|
1631
|
-
const activeModal =
|
|
1632
|
-
const data =
|
|
1633
|
-
const closeModal =
|
|
1631
|
+
const activeModal = chunkEFREXNZB_js.useModalStore((s) => s.activeModal);
|
|
1632
|
+
const data = chunkEFREXNZB_js.useModalStore((s) => s.pipelineSettingsData);
|
|
1633
|
+
const closeModal = chunkEFREXNZB_js.useModalStore((s) => s.closeModal);
|
|
1634
1634
|
const open = activeModal === "pipeline-settings";
|
|
1635
1635
|
const [nameValue, setNameValue] = react.useState("");
|
|
1636
1636
|
const [descriptionValue, setDescriptionValue] = react.useState("");
|
|
@@ -1692,7 +1692,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1692
1692
|
}
|
|
1693
1693
|
),
|
|
1694
1694
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1695
|
-
|
|
1695
|
+
chunkGV6WJCEB_js.Button,
|
|
1696
1696
|
{
|
|
1697
1697
|
type: "submit",
|
|
1698
1698
|
form: "pipeline-settings-form",
|
|
@@ -1707,7 +1707,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1707
1707
|
)
|
|
1708
1708
|
] });
|
|
1709
1709
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1710
|
-
|
|
1710
|
+
chunkGV6WJCEB_js.GlassModal,
|
|
1711
1711
|
{
|
|
1712
1712
|
open,
|
|
1713
1713
|
onClose: closeModal,
|
|
@@ -1721,7 +1721,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1721
1721
|
onSubmit: handleSubmit,
|
|
1722
1722
|
children: /* @__PURE__ */ jsxRuntime.jsxs("form", { id: "pipeline-settings-form", onSubmit: handleSubmit, className: "space-y-5", children: [
|
|
1723
1723
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1724
|
-
|
|
1724
|
+
chunkGV6WJCEB_js.FormInput,
|
|
1725
1725
|
{
|
|
1726
1726
|
label: t("pipelineName"),
|
|
1727
1727
|
value: nameValue,
|
|
@@ -1731,7 +1731,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1731
1731
|
}
|
|
1732
1732
|
),
|
|
1733
1733
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1734
|
-
|
|
1734
|
+
chunkGV6WJCEB_js.FormTextarea,
|
|
1735
1735
|
{
|
|
1736
1736
|
label: t("pipelineDescription"),
|
|
1737
1737
|
value: descriptionValue,
|
|
@@ -1742,7 +1742,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1742
1742
|
),
|
|
1743
1743
|
lifecycleAvailable && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1744
1744
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1745
|
-
|
|
1745
|
+
chunkGV6WJCEB_js.FormInput,
|
|
1746
1746
|
{
|
|
1747
1747
|
label: t("pipelineSlug", { _: "Slug" }),
|
|
1748
1748
|
value: slugValue,
|
|
@@ -1869,7 +1869,7 @@ function RunReplayModal({
|
|
|
1869
1869
|
}
|
|
1870
1870
|
),
|
|
1871
1871
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1872
|
-
|
|
1872
|
+
chunkGV6WJCEB_js.Button,
|
|
1873
1873
|
{
|
|
1874
1874
|
type: "submit",
|
|
1875
1875
|
form: "run-replay-form",
|
|
@@ -1884,7 +1884,7 @@ function RunReplayModal({
|
|
|
1884
1884
|
] })
|
|
1885
1885
|
] });
|
|
1886
1886
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1887
|
-
|
|
1887
|
+
chunkGV6WJCEB_js.GlassModal,
|
|
1888
1888
|
{
|
|
1889
1889
|
open,
|
|
1890
1890
|
onClose,
|
|
@@ -1958,7 +1958,7 @@ function RowEditor({
|
|
|
1958
1958
|
]
|
|
1959
1959
|
}
|
|
1960
1960
|
) : isJson ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1961
|
-
|
|
1961
|
+
chunkGV6WJCEB_js.FormTextarea,
|
|
1962
1962
|
{
|
|
1963
1963
|
value: row.value,
|
|
1964
1964
|
onValueChange: (v) => onChange({ value: v }),
|
|
@@ -1966,7 +1966,7 @@ function RowEditor({
|
|
|
1966
1966
|
className: "font-mono"
|
|
1967
1967
|
}
|
|
1968
1968
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1969
|
-
|
|
1969
|
+
chunkGV6WJCEB_js.FormInput,
|
|
1970
1970
|
{
|
|
1971
1971
|
type: row.kind === "number" ? "number" : "text",
|
|
1972
1972
|
value: row.value,
|
|
@@ -2070,7 +2070,7 @@ function ExecutionTimelinePanel({
|
|
|
2070
2070
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate font-medium text-slate-900 dark:text-white", children: entry.nodeId }),
|
|
2071
2071
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs text-slate-500 dark:text-slate-400", children: entry.nodeType })
|
|
2072
2072
|
] }),
|
|
2073
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2073
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkGV6WJCEB_js.Badge, { color: meta.color, children: [
|
|
2074
2074
|
/* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "mr-1 h-3 w-3" }),
|
|
2075
2075
|
labels[entry.status]
|
|
2076
2076
|
] })
|
|
@@ -2100,7 +2100,7 @@ function NodeInspector({
|
|
|
2100
2100
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "truncate text-base font-semibold text-slate-900 dark:text-white", children: entry.nodeId }),
|
|
2101
2101
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: entry.nodeType })
|
|
2102
2102
|
] }),
|
|
2103
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2103
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkGV6WJCEB_js.Badge, { color: meta.color, children: labels[entry.status] })
|
|
2104
2104
|
] }),
|
|
2105
2105
|
/* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "grid grid-cols-2 gap-3 text-xs text-slate-500 dark:text-slate-400", children: [
|
|
2106
2106
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
@@ -2270,7 +2270,7 @@ function RuleConditionBuilder({ value, onChange, depth = 0 }) {
|
|
|
2270
2270
|
};
|
|
2271
2271
|
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: [
|
|
2272
2272
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2273
|
-
|
|
2273
|
+
chunkGV6WJCEB_js.FormSelect,
|
|
2274
2274
|
{
|
|
2275
2275
|
label: "Operator",
|
|
2276
2276
|
value: value.operator,
|
|
@@ -2293,7 +2293,7 @@ function SimpleEditor({
|
|
|
2293
2293
|
const isTruthy = value.operator === "truthy";
|
|
2294
2294
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2295
2295
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2296
|
-
|
|
2296
|
+
chunkGV6WJCEB_js.FormInput,
|
|
2297
2297
|
{
|
|
2298
2298
|
label: "Field",
|
|
2299
2299
|
hint: "Dotted reference into the variable pool \u2014 e.g. `parse-pricing.margin`, `inputs.fuelType`",
|
|
@@ -2303,7 +2303,7 @@ function SimpleEditor({
|
|
|
2303
2303
|
}
|
|
2304
2304
|
),
|
|
2305
2305
|
!isTruthy && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2306
|
-
|
|
2306
|
+
chunkGV6WJCEB_js.FormInput,
|
|
2307
2307
|
{
|
|
2308
2308
|
label: "Value",
|
|
2309
2309
|
hint: "Literal. Numeric operators coerce via `as f64`.",
|
|
@@ -2319,7 +2319,7 @@ function ThresholdEditor({
|
|
|
2319
2319
|
}) {
|
|
2320
2320
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-3", children: [
|
|
2321
2321
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2322
|
-
|
|
2322
|
+
chunkGV6WJCEB_js.FormInput,
|
|
2323
2323
|
{
|
|
2324
2324
|
label: "Field",
|
|
2325
2325
|
value: value.field ?? "",
|
|
@@ -2328,7 +2328,7 @@ function ThresholdEditor({
|
|
|
2328
2328
|
}
|
|
2329
2329
|
),
|
|
2330
2330
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2331
|
-
|
|
2331
|
+
chunkGV6WJCEB_js.FormSelect,
|
|
2332
2332
|
{
|
|
2333
2333
|
label: "Direction",
|
|
2334
2334
|
value: value.comparison ?? "gte",
|
|
@@ -2342,7 +2342,7 @@ function ThresholdEditor({
|
|
|
2342
2342
|
}
|
|
2343
2343
|
),
|
|
2344
2344
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2345
|
-
|
|
2345
|
+
chunkGV6WJCEB_js.FormInput,
|
|
2346
2346
|
{
|
|
2347
2347
|
label: "Threshold",
|
|
2348
2348
|
type: "number",
|
|
@@ -2359,7 +2359,7 @@ function RegexEditor({
|
|
|
2359
2359
|
}) {
|
|
2360
2360
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2361
2361
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2362
|
-
|
|
2362
|
+
chunkGV6WJCEB_js.FormInput,
|
|
2363
2363
|
{
|
|
2364
2364
|
label: "Field",
|
|
2365
2365
|
value: value.field ?? "",
|
|
@@ -2368,7 +2368,7 @@ function RegexEditor({
|
|
|
2368
2368
|
}
|
|
2369
2369
|
),
|
|
2370
2370
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2371
|
-
|
|
2371
|
+
chunkGV6WJCEB_js.FormInput,
|
|
2372
2372
|
{
|
|
2373
2373
|
label: "Pattern",
|
|
2374
2374
|
hint: "Rust regex syntax \u2014 `(?i)` etc. supported.",
|
|
@@ -2396,7 +2396,7 @@ function TimeWindowEditor({
|
|
|
2396
2396
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
2397
2397
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2398
2398
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2399
|
-
|
|
2399
|
+
chunkGV6WJCEB_js.FormSelect,
|
|
2400
2400
|
{
|
|
2401
2401
|
label: "Timezone",
|
|
2402
2402
|
value: value.timezone ?? "UTC",
|
|
@@ -2405,7 +2405,7 @@ function TimeWindowEditor({
|
|
|
2405
2405
|
}
|
|
2406
2406
|
),
|
|
2407
2407
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2408
|
-
|
|
2408
|
+
chunkGV6WJCEB_js.FormInput,
|
|
2409
2409
|
{
|
|
2410
2410
|
label: "Timestamp field (optional)",
|
|
2411
2411
|
hint: "Pulls a timestamp from the pool. Leave blank to use the run's wall-clock.",
|
|
@@ -2418,7 +2418,7 @@ function TimeWindowEditor({
|
|
|
2418
2418
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
2419
2419
|
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: [
|
|
2420
2420
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2421
|
-
|
|
2421
|
+
chunkGV6WJCEB_js.FormInput,
|
|
2422
2422
|
{
|
|
2423
2423
|
label: `Start (hour)`,
|
|
2424
2424
|
type: "number",
|
|
@@ -2429,7 +2429,7 @@ function TimeWindowEditor({
|
|
|
2429
2429
|
}
|
|
2430
2430
|
),
|
|
2431
2431
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2432
|
-
|
|
2432
|
+
chunkGV6WJCEB_js.FormInput,
|
|
2433
2433
|
{
|
|
2434
2434
|
label: `End (hour)`,
|
|
2435
2435
|
type: "number",
|
|
@@ -2439,9 +2439,9 @@ function TimeWindowEditor({
|
|
|
2439
2439
|
onValueChange: (raw) => update(index, { endHour: clampHour(raw, 24) })
|
|
2440
2440
|
}
|
|
2441
2441
|
),
|
|
2442
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2442
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkGV6WJCEB_js.Button, { type: "button", plain: true, onClick: () => remove(index), children: "Remove" })
|
|
2443
2443
|
] }, index)),
|
|
2444
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2444
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkGV6WJCEB_js.Button, { type: "button", outline: true, onClick: add, children: "+ Add window" })
|
|
2445
2445
|
] })
|
|
2446
2446
|
] });
|
|
2447
2447
|
}
|
|
@@ -2464,7 +2464,7 @@ function BooleanGroupEditor({
|
|
|
2464
2464
|
});
|
|
2465
2465
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
2466
2466
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2467
|
-
|
|
2467
|
+
chunkGV6WJCEB_js.FormSelect,
|
|
2468
2468
|
{
|
|
2469
2469
|
label: "Combinator",
|
|
2470
2470
|
value: value.combinator ?? "and",
|
|
@@ -2482,9 +2482,9 @@ function BooleanGroupEditor({
|
|
|
2482
2482
|
depth
|
|
2483
2483
|
}
|
|
2484
2484
|
),
|
|
2485
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2 text-right", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2485
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2 text-right", children: /* @__PURE__ */ jsxRuntime.jsx(chunkGV6WJCEB_js.Button, { type: "button", plain: true, onClick: () => remove(index), children: "Remove operand" }) })
|
|
2486
2486
|
] }, index)),
|
|
2487
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2487
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkGV6WJCEB_js.Button, { type: "button", outline: true, onClick: add, children: "+ Add operand" })
|
|
2488
2488
|
] })
|
|
2489
2489
|
] });
|
|
2490
2490
|
}
|
|
@@ -2520,7 +2520,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2520
2520
|
};
|
|
2521
2521
|
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: [
|
|
2522
2522
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2523
|
-
|
|
2523
|
+
chunkGV6WJCEB_js.FormSelect,
|
|
2524
2524
|
{
|
|
2525
2525
|
label: "Action type",
|
|
2526
2526
|
value: type,
|
|
@@ -2530,7 +2530,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2530
2530
|
),
|
|
2531
2531
|
type === "adjust_price" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2532
2532
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2533
|
-
|
|
2533
|
+
chunkGV6WJCEB_js.FormInput,
|
|
2534
2534
|
{
|
|
2535
2535
|
label: "Multiplier",
|
|
2536
2536
|
type: "number",
|
|
@@ -2540,7 +2540,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2540
2540
|
}
|
|
2541
2541
|
),
|
|
2542
2542
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2543
|
-
|
|
2543
|
+
chunkGV6WJCEB_js.FormInput,
|
|
2544
2544
|
{
|
|
2545
2545
|
label: "Reason code",
|
|
2546
2546
|
value: stringParam(params.reason),
|
|
@@ -2550,7 +2550,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2550
2550
|
)
|
|
2551
2551
|
] }),
|
|
2552
2552
|
type === "enforce_min_margin" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2553
|
-
|
|
2553
|
+
chunkGV6WJCEB_js.FormInput,
|
|
2554
2554
|
{
|
|
2555
2555
|
label: "Floor (fraction, e.g. 0.08)",
|
|
2556
2556
|
type: "number",
|
|
@@ -2560,7 +2560,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2560
2560
|
}
|
|
2561
2561
|
),
|
|
2562
2562
|
type === "realign_to_competitor" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2563
|
-
|
|
2563
|
+
chunkGV6WJCEB_js.FormInput,
|
|
2564
2564
|
{
|
|
2565
2565
|
label: "Tolerance (fraction)",
|
|
2566
2566
|
type: "number",
|
|
@@ -2570,7 +2570,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2570
2570
|
}
|
|
2571
2571
|
),
|
|
2572
2572
|
type === "request_manager_approval" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2573
|
-
|
|
2573
|
+
chunkGV6WJCEB_js.FormInput,
|
|
2574
2574
|
{
|
|
2575
2575
|
label: "Approval limit (fraction)",
|
|
2576
2576
|
type: "number",
|
|
@@ -2580,7 +2580,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2580
2580
|
}
|
|
2581
2581
|
),
|
|
2582
2582
|
type === "round_to" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2583
|
-
|
|
2583
|
+
chunkGV6WJCEB_js.FormInput,
|
|
2584
2584
|
{
|
|
2585
2585
|
label: "Step (e.g. 0.009)",
|
|
2586
2586
|
type: "number",
|
|
@@ -2591,7 +2591,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2591
2591
|
),
|
|
2592
2592
|
type === "alert" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2593
2593
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2594
|
-
|
|
2594
|
+
chunkGV6WJCEB_js.FormInput,
|
|
2595
2595
|
{
|
|
2596
2596
|
label: "Channel",
|
|
2597
2597
|
value: stringParam(params.channel),
|
|
@@ -2600,7 +2600,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2600
2600
|
}
|
|
2601
2601
|
),
|
|
2602
2602
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2603
|
-
|
|
2603
|
+
chunkGV6WJCEB_js.FormInput,
|
|
2604
2604
|
{
|
|
2605
2605
|
label: "Severity",
|
|
2606
2606
|
value: stringParam(params.severity),
|
|
@@ -2638,7 +2638,7 @@ function CustomParamsEditor({
|
|
|
2638
2638
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
2639
2639
|
entries.map(([key, value], index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[1fr_1fr_auto] items-end gap-2", children: [
|
|
2640
2640
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2641
|
-
|
|
2641
|
+
chunkGV6WJCEB_js.FormInput,
|
|
2642
2642
|
{
|
|
2643
2643
|
label: "Key",
|
|
2644
2644
|
value: key,
|
|
@@ -2646,16 +2646,16 @@ function CustomParamsEditor({
|
|
|
2646
2646
|
}
|
|
2647
2647
|
),
|
|
2648
2648
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2649
|
-
|
|
2649
|
+
chunkGV6WJCEB_js.FormInput,
|
|
2650
2650
|
{
|
|
2651
2651
|
label: "Value",
|
|
2652
2652
|
value: String(value ?? ""),
|
|
2653
2653
|
onValueChange: (raw) => update(index, key, raw)
|
|
2654
2654
|
}
|
|
2655
2655
|
),
|
|
2656
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2656
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkGV6WJCEB_js.Button, { type: "button", plain: true, onClick: () => remove(index), children: "Remove" })
|
|
2657
2657
|
] }, index)),
|
|
2658
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2658
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkGV6WJCEB_js.Button, { type: "button", outline: true, onClick: add, children: "+ Add param" })
|
|
2659
2659
|
] });
|
|
2660
2660
|
}
|
|
2661
2661
|
function numberParam(value, fallback) {
|
|
@@ -2685,9 +2685,9 @@ function RuleForm({ value, onChange }) {
|
|
|
2685
2685
|
);
|
|
2686
2686
|
const update = (key, v) => onChange({ ...value, [key]: v });
|
|
2687
2687
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
|
|
2688
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2688
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkGV6WJCEB_js.FormGrid, { children: [
|
|
2689
2689
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2690
|
-
|
|
2690
|
+
chunkGV6WJCEB_js.FormInput,
|
|
2691
2691
|
{
|
|
2692
2692
|
label: "Name",
|
|
2693
2693
|
required: true,
|
|
@@ -2696,7 +2696,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2696
2696
|
}
|
|
2697
2697
|
),
|
|
2698
2698
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2699
|
-
|
|
2699
|
+
chunkGV6WJCEB_js.FormInput,
|
|
2700
2700
|
{
|
|
2701
2701
|
label: "Priority",
|
|
2702
2702
|
type: "number",
|
|
@@ -2706,7 +2706,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2706
2706
|
}
|
|
2707
2707
|
),
|
|
2708
2708
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2709
|
-
|
|
2709
|
+
chunkGV6WJCEB_js.FormSelect,
|
|
2710
2710
|
{
|
|
2711
2711
|
label: "Enabled",
|
|
2712
2712
|
value: value.enabled ? "true" : "false",
|
|
@@ -2718,7 +2718,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2718
2718
|
}
|
|
2719
2719
|
),
|
|
2720
2720
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2721
|
-
|
|
2721
|
+
chunkGV6WJCEB_js.FormTextarea,
|
|
2722
2722
|
{
|
|
2723
2723
|
label: "Description",
|
|
2724
2724
|
rows: 2,
|
|
@@ -2730,7 +2730,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2730
2730
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
|
|
2731
2731
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
2732
2732
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-700 dark:text-slate-200", children: "Condition" }),
|
|
2733
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2733
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkGV6WJCEB_js.Badge, { color: "indigo", children: value.condition.operator })
|
|
2734
2734
|
] }),
|
|
2735
2735
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2736
2736
|
RuleConditionBuilder,
|
|
@@ -2743,7 +2743,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2743
2743
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
|
|
2744
2744
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
2745
2745
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-700 dark:text-slate-200", children: "Action on match" }),
|
|
2746
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2746
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkGV6WJCEB_js.Badge, { color: "fuchsia", children: value.action.type })
|
|
2747
2747
|
] }),
|
|
2748
2748
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2749
2749
|
RuleActionBuilder,
|
|
@@ -2765,7 +2765,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2765
2765
|
),
|
|
2766
2766
|
showAdvanced && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-3 grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2767
2767
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2768
|
-
|
|
2768
|
+
chunkGV6WJCEB_js.FormInput,
|
|
2769
2769
|
{
|
|
2770
2770
|
label: "Valid from (ISO 8601)",
|
|
2771
2771
|
type: "datetime-local",
|
|
@@ -2774,7 +2774,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2774
2774
|
}
|
|
2775
2775
|
),
|
|
2776
2776
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2777
|
-
|
|
2777
|
+
chunkGV6WJCEB_js.FormInput,
|
|
2778
2778
|
{
|
|
2779
2779
|
label: "Valid until (ISO 8601)",
|
|
2780
2780
|
type: "datetime-local",
|
|
@@ -2783,7 +2783,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2783
2783
|
}
|
|
2784
2784
|
),
|
|
2785
2785
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2786
|
-
|
|
2786
|
+
chunkGV6WJCEB_js.FormSelect,
|
|
2787
2787
|
{
|
|
2788
2788
|
label: "Status",
|
|
2789
2789
|
value: value.status ?? "active",
|
|
@@ -2792,7 +2792,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2792
2792
|
}
|
|
2793
2793
|
),
|
|
2794
2794
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2795
|
-
|
|
2795
|
+
chunkGV6WJCEB_js.FormInput,
|
|
2796
2796
|
{
|
|
2797
2797
|
label: "Tags (comma-separated)",
|
|
2798
2798
|
value: (value.tags ?? []).join(", "),
|
|
@@ -2976,8 +2976,8 @@ function CollapsibleSection({ title, icon, colorClass, defaultOpen = true, count
|
|
|
2976
2976
|
] });
|
|
2977
2977
|
}
|
|
2978
2978
|
function LogicNodeItemCard({ item, translationFunction }) {
|
|
2979
|
-
const IconComponent =
|
|
2980
|
-
const gradient =
|
|
2979
|
+
const IconComponent = chunkEFREXNZB_js.LOGIC_ICON_MAP[item.nodeType];
|
|
2980
|
+
const gradient = chunkEFREXNZB_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-gray-400 to-gray-500";
|
|
2981
2981
|
const defaultConfig = chunkC7BI5LQ6_js.createDefaultLogicNodeConfig(item.nodeType);
|
|
2982
2982
|
const configJson = defaultConfig ? JSON.stringify(defaultConfig) : void 0;
|
|
2983
2983
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -3158,7 +3158,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3158
3158
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: tool.category })
|
|
3159
3159
|
] }),
|
|
3160
3160
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3161
|
-
|
|
3161
|
+
chunkGV6WJCEB_js.ToggleSwitch,
|
|
3162
3162
|
{
|
|
3163
3163
|
checked: Boolean(tool.enabled),
|
|
3164
3164
|
onChange: () => {
|
|
@@ -3199,7 +3199,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3199
3199
|
] })
|
|
3200
3200
|
] }),
|
|
3201
3201
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3202
|
-
|
|
3202
|
+
chunkGV6WJCEB_js.ToggleSwitch,
|
|
3203
3203
|
{
|
|
3204
3204
|
checked: Boolean(rule.enabled),
|
|
3205
3205
|
onChange: () => {
|
|
@@ -3235,8 +3235,8 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3235
3235
|
limit: entity.defaultLimit
|
|
3236
3236
|
});
|
|
3237
3237
|
const dsLogo = getDatasourceLogo(entity.id);
|
|
3238
|
-
const EntityIcon =
|
|
3239
|
-
const entityGradient =
|
|
3238
|
+
const EntityIcon = chunkEFREXNZB_js.getEntityIcon(entity.id);
|
|
3239
|
+
const entityGradient = chunkEFREXNZB_js.getEntityGradient(entity.id);
|
|
3240
3240
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3241
3241
|
"div",
|
|
3242
3242
|
{
|
|
@@ -3256,7 +3256,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3256
3256
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3257
3257
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded-full bg-slate-100 px-1.5 py-0.5 text-[9px] font-medium text-slate-600 dark:bg-white/10 dark:text-slate-300", children: "Read only" }),
|
|
3258
3258
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3259
|
-
|
|
3259
|
+
chunkGV6WJCEB_js.ToggleSwitch,
|
|
3260
3260
|
{
|
|
3261
3261
|
checked: true,
|
|
3262
3262
|
onChange: () => {
|
|
@@ -3634,9 +3634,9 @@ function formatDuration3(durationMs) {
|
|
|
3634
3634
|
}
|
|
3635
3635
|
function RunPanel({ open, onClose, onRun, onStop }) {
|
|
3636
3636
|
const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.runPanel");
|
|
3637
|
-
const nodes =
|
|
3638
|
-
const isRunning =
|
|
3639
|
-
const nodeResults =
|
|
3637
|
+
const nodes = chunkEFREXNZB_js.useWorkflowStore((state) => state.nodes);
|
|
3638
|
+
const isRunning = chunkEFREXNZB_js.useWorkflowStore((state) => state.isRunning);
|
|
3639
|
+
const nodeResults = chunkEFREXNZB_js.useWorkflowStore((state) => state.nodeResults);
|
|
3640
3640
|
const startNode = nodes.find((node) => node.type === "start");
|
|
3641
3641
|
const hasEndNode = nodes.some((node) => node.type === "end");
|
|
3642
3642
|
const hasValidStartConfig = Boolean(
|
|
@@ -3924,8 +3924,8 @@ function inferVariables(config, nodeType) {
|
|
|
3924
3924
|
}
|
|
3925
3925
|
function VariableInspector({ open, onClose }) {
|
|
3926
3926
|
const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.variableInspector");
|
|
3927
|
-
const nodes =
|
|
3928
|
-
const edges =
|
|
3927
|
+
const nodes = chunkEFREXNZB_js.useWorkflowStore((state) => state.nodes);
|
|
3928
|
+
const edges = chunkEFREXNZB_js.useWorkflowStore((state) => state.edges);
|
|
3929
3929
|
const [expandedNodes, setExpandedNodes] = react.useState(/* @__PURE__ */ new Set());
|
|
3930
3930
|
const toggleNodeExpansion = react.useCallback((nodeId) => {
|
|
3931
3931
|
setExpandedNodes((current) => {
|
|
@@ -3987,8 +3987,8 @@ function VariableInspector({ open, onClose }) {
|
|
|
3987
3987
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-gray-500 dark:text-gray-400", children: translations("noNodes") })
|
|
3988
3988
|
] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-gray-100 dark:divide-gray-800", children: nodeVariableEntries.map((entry) => {
|
|
3989
3989
|
const isExpanded = expandedNodes.has(entry.nodeId);
|
|
3990
|
-
const IconComponent =
|
|
3991
|
-
const gradient =
|
|
3990
|
+
const IconComponent = chunkEFREXNZB_js.LOGIC_ICON_MAP[entry.nodeType];
|
|
3991
|
+
const gradient = chunkEFREXNZB_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-gray-400 to-gray-500";
|
|
3992
3992
|
const inputVariables = entry.variables.filter((variable) => variable.direction === "input");
|
|
3993
3993
|
const outputVariables = entry.variables.filter((variable) => variable.direction === "output");
|
|
3994
3994
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": `variable-node-${entry.nodeId}`, children: [
|
|
@@ -4054,7 +4054,7 @@ function RunInputDialog({
|
|
|
4054
4054
|
onRun
|
|
4055
4055
|
}) {
|
|
4056
4056
|
const t = chunkYXN2K77G_js.useTranslations("agents.workflow.runInputDialog");
|
|
4057
|
-
const nodes =
|
|
4057
|
+
const nodes = chunkEFREXNZB_js.useWorkflowStore((state) => state.nodes);
|
|
4058
4058
|
const [values, setValues] = react.useState({});
|
|
4059
4059
|
const inputVariableNames = react.useMemo(() => {
|
|
4060
4060
|
const storeStartNode = nodes.find((node) => node.type === "start");
|
|
@@ -4081,7 +4081,7 @@ function RunInputDialog({
|
|
|
4081
4081
|
}, [onClose]);
|
|
4082
4082
|
if (!open) return null;
|
|
4083
4083
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4084
|
-
|
|
4084
|
+
chunkGV6WJCEB_js.GlassModal,
|
|
4085
4085
|
{
|
|
4086
4086
|
open,
|
|
4087
4087
|
onClose: handleClose,
|
|
@@ -4092,7 +4092,7 @@ function RunInputDialog({
|
|
|
4092
4092
|
/* @__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: [
|
|
4093
4093
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300", children: variableName }),
|
|
4094
4094
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4095
|
-
|
|
4095
|
+
chunkGV6WJCEB_js.Input,
|
|
4096
4096
|
{
|
|
4097
4097
|
value: values[variableName] ?? "",
|
|
4098
4098
|
onChange: (event) => handleValueChange(variableName, event.target.value),
|
|
@@ -4101,8 +4101,8 @@ function RunInputDialog({
|
|
|
4101
4101
|
)
|
|
4102
4102
|
] }, variableName)) }),
|
|
4103
4103
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-4 flex items-center justify-end gap-2", children: [
|
|
4104
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4105
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4104
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkGV6WJCEB_js.Button, { size: "sm", plain: true, onClick: handleClose, children: t("cancel") }),
|
|
4105
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkGV6WJCEB_js.Button, { size: "sm", gradient: true, onClick: handleSubmit, children: [
|
|
4106
4106
|
/* @__PURE__ */ jsxRuntime.jsx(outline.PlayIcon, { className: "h-3.5 w-3.5", "data-slot": "icon" }),
|
|
4107
4107
|
t("run")
|
|
4108
4108
|
] })
|
|
@@ -4135,8 +4135,8 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
|
|
|
4135
4135
|
const [isLoadingRuns, setIsLoadingRuns] = react.useState(false);
|
|
4136
4136
|
const [selectedRun, setSelectedRun] = react.useState(null);
|
|
4137
4137
|
const [selectedNode, setSelectedNode] = react.useState(null);
|
|
4138
|
-
const isRunning =
|
|
4139
|
-
const nodeResults =
|
|
4138
|
+
const isRunning = chunkEFREXNZB_js.useWorkflowStore((state) => state.isRunning);
|
|
4139
|
+
const nodeResults = chunkEFREXNZB_js.useWorkflowStore((state) => state.nodeResults);
|
|
4140
4140
|
const refreshRuns = react.useCallback(async () => {
|
|
4141
4141
|
setIsLoadingRuns(true);
|
|
4142
4142
|
try {
|
|
@@ -4292,7 +4292,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
|
|
|
4292
4292
|
onAutoSaveGraph(graph);
|
|
4293
4293
|
}, [onAutoSaveGraph, onGraphSnapshot]);
|
|
4294
4294
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4295
|
-
|
|
4295
|
+
chunkEFREXNZB_js.Workspace,
|
|
4296
4296
|
{
|
|
4297
4297
|
...workspaceProps,
|
|
4298
4298
|
onGraphChange: handleGraphChange
|
|
@@ -4300,7 +4300,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
|
|
|
4300
4300
|
);
|
|
4301
4301
|
});
|
|
4302
4302
|
function DynamicIslandConfirm2(props) {
|
|
4303
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4303
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkGV6WJCEB_js.DynamicIslandConfirm, { ...props });
|
|
4304
4304
|
}
|
|
4305
4305
|
var JSON_PREVIEW_LINE_LIMIT = 50;
|
|
4306
4306
|
function DslExportModal({ open, onClose, workflow, graph }) {
|
|
@@ -4354,7 +4354,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
|
|
|
4354
4354
|
}, [jsonString, workflow.name, workflow.version]);
|
|
4355
4355
|
if (!open) return null;
|
|
4356
4356
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4357
|
-
|
|
4357
|
+
chunkGV6WJCEB_js.GlassModal,
|
|
4358
4358
|
{
|
|
4359
4359
|
open,
|
|
4360
4360
|
onClose,
|
|
@@ -4396,7 +4396,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
|
|
|
4396
4396
|
] }),
|
|
4397
4397
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-end gap-3 border-t border-gray-200 px-1 py-4 dark:border-gray-700", children: [
|
|
4398
4398
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4399
|
-
|
|
4399
|
+
chunkGV6WJCEB_js.Button,
|
|
4400
4400
|
{
|
|
4401
4401
|
type: "button",
|
|
4402
4402
|
onClick: handleCopyToClipboard,
|
|
@@ -4413,7 +4413,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
|
|
|
4413
4413
|
}
|
|
4414
4414
|
),
|
|
4415
4415
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4416
|
-
|
|
4416
|
+
chunkGV6WJCEB_js.Button,
|
|
4417
4417
|
{
|
|
4418
4418
|
type: "button",
|
|
4419
4419
|
onClick: handleDownloadJson,
|
|
@@ -4572,7 +4572,7 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4572
4572
|
}, []);
|
|
4573
4573
|
if (!open) return null;
|
|
4574
4574
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4575
|
-
|
|
4575
|
+
chunkGV6WJCEB_js.GlassModal,
|
|
4576
4576
|
{
|
|
4577
4577
|
open,
|
|
4578
4578
|
onClose,
|
|
@@ -4612,7 +4612,7 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4612
4612
|
) : /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": "import-validation-result", children: [
|
|
4613
4613
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4 flex items-center justify-between", children: [
|
|
4614
4614
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: fileName }),
|
|
4615
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4615
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkGV6WJCEB_js.Button, { type: "button", plain: true, size: "sm", onClick: handleReset, children: translations("chooseAnother") })
|
|
4616
4616
|
] }),
|
|
4617
4617
|
validationResult.isValid ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg border border-green-200 bg-green-50 p-4 dark:border-green-800 dark:bg-green-900/20", children: [
|
|
4618
4618
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
@@ -4640,9 +4640,9 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4640
4640
|
] })
|
|
4641
4641
|
] }) }),
|
|
4642
4642
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-end gap-3 border-t border-gray-200 px-1 py-4 dark:border-gray-700", children: [
|
|
4643
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4643
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkGV6WJCEB_js.Button, { type: "button", onClick: onClose, outline: true, size: "sm", "data-testid": "import-cancel-button", children: translations("cancel") }),
|
|
4644
4644
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4645
|
-
|
|
4645
|
+
chunkGV6WJCEB_js.Button,
|
|
4646
4646
|
{
|
|
4647
4647
|
type: "button",
|
|
4648
4648
|
onClick: handleImport,
|
|
@@ -4663,14 +4663,14 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4663
4663
|
}
|
|
4664
4664
|
|
|
4665
4665
|
// src/astrlabe/store/selectors.ts
|
|
4666
|
-
var useCanUndo = () =>
|
|
4667
|
-
var useCanRedo = () =>
|
|
4668
|
-
var useHasCopied = () =>
|
|
4669
|
-
var useContextMenu = () =>
|
|
4670
|
-
var useEditingNodeId = () =>
|
|
4671
|
-
var useSelectedNodeCount = () =>
|
|
4672
|
-
var useIsRunning = () =>
|
|
4673
|
-
var useNodeResults = () =>
|
|
4666
|
+
var useCanUndo = () => chunkEFREXNZB_js.useWorkflowStore((state) => state.past.length > 0);
|
|
4667
|
+
var useCanRedo = () => chunkEFREXNZB_js.useWorkflowStore((state) => state.future.length > 0);
|
|
4668
|
+
var useHasCopied = () => chunkEFREXNZB_js.useWorkflowStore((state) => state.clipboard !== null);
|
|
4669
|
+
var useContextMenu = () => chunkEFREXNZB_js.useWorkflowStore((state) => state.contextMenu);
|
|
4670
|
+
var useEditingNodeId = () => chunkEFREXNZB_js.useWorkflowStore((state) => state.editingNodeId);
|
|
4671
|
+
var useSelectedNodeCount = () => chunkEFREXNZB_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
|
|
4672
|
+
var useIsRunning = () => chunkEFREXNZB_js.useWorkflowStore((state) => state.isRunning);
|
|
4673
|
+
var useNodeResults = () => chunkEFREXNZB_js.useWorkflowStore((state) => state.nodeResults);
|
|
4674
4674
|
var DEFAULT_MAX_HISTORY = 50;
|
|
4675
4675
|
function useUndoRedo(nodes, edges, setNodes, setEdges, maxHistory = DEFAULT_MAX_HISTORY) {
|
|
4676
4676
|
const pastRef = react.useRef([]);
|
|
@@ -4992,5 +4992,5 @@ exports.useNodeResults = useNodeResults;
|
|
|
4992
4992
|
exports.useSelectedNodeCount = useSelectedNodeCount;
|
|
4993
4993
|
exports.useSubworkflowStore = useSubworkflowStore;
|
|
4994
4994
|
exports.useUndoRedo = useUndoRedo;
|
|
4995
|
-
//# sourceMappingURL=chunk-
|
|
4996
|
-
//# sourceMappingURL=chunk-
|
|
4995
|
+
//# sourceMappingURL=chunk-L6FVIWAJ.js.map
|
|
4996
|
+
//# sourceMappingURL=chunk-L6FVIWAJ.js.map
|