@datatechsolutions/ui 2.11.89 → 2.11.91
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 -106
- package/dist/astrlabe/index.mjs +5 -3
- package/dist/astrlabe/workflow-canvas.js +5 -3
- package/dist/astrlabe/workflow-canvas.mjs +4 -2
- package/dist/{chunk-G7DZU3NM.mjs → chunk-256TJHVO.mjs} +3 -3
- package/dist/{chunk-G7DZU3NM.mjs.map → chunk-256TJHVO.mjs.map} +1 -1
- package/dist/{chunk-D4TESEYK.mjs → chunk-36G7GAPU.mjs} +24 -7
- package/dist/chunk-36G7GAPU.mjs.map +1 -0
- package/dist/{chunk-NBCOVUQP.mjs → chunk-6OWD54HK.mjs} +3 -3
- package/dist/{chunk-NBCOVUQP.mjs.map → chunk-6OWD54HK.mjs.map} +1 -1
- package/dist/{chunk-5HXDJBVX.mjs → chunk-7JFAOHZ3.mjs} +4 -4
- package/dist/{chunk-5HXDJBVX.mjs.map → chunk-7JFAOHZ3.mjs.map} +1 -1
- package/dist/{chunk-SAYVWIMJ.js → chunk-AP7OWR6S.js} +4 -4
- package/dist/{chunk-SAYVWIMJ.js.map → chunk-AP7OWR6S.js.map} +1 -1
- package/dist/{chunk-URDQSUW6.js → chunk-B5NZVS4A.js} +67 -67
- package/dist/{chunk-URDQSUW6.js.map → chunk-B5NZVS4A.js.map} +1 -1
- package/dist/{chunk-UUHV5KHF.js → chunk-BVCS7RBR.js} +33 -33
- package/dist/{chunk-UUHV5KHF.js.map → chunk-BVCS7RBR.js.map} +1 -1
- package/dist/{chunk-X2KCCQPL.js → chunk-C7KAF363.js} +55 -55
- package/dist/{chunk-X2KCCQPL.js.map → chunk-C7KAF363.js.map} +1 -1
- package/dist/{chunk-HK6J6HQP.mjs → chunk-CBVRUJ7N.mjs} +11 -24
- package/dist/chunk-CBVRUJ7N.mjs.map +1 -0
- package/dist/{chunk-F4TOOARV.mjs → chunk-CG3P5Z5U.mjs} +3 -3
- package/dist/{chunk-F4TOOARV.mjs.map → chunk-CG3P5Z5U.mjs.map} +1 -1
- package/dist/{chunk-RV555OEO.mjs → chunk-E2ZGFN2H.mjs} +4 -4
- package/dist/{chunk-RV555OEO.mjs.map → chunk-E2ZGFN2H.mjs.map} +1 -1
- package/dist/{chunk-Q2MG7S2E.js → chunk-E32B2MVK.js} +15 -15
- package/dist/{chunk-Q2MG7S2E.js.map → chunk-E32B2MVK.js.map} +1 -1
- package/dist/{chunk-GEUGFYLO.mjs → chunk-FDSU7GPS.mjs} +3 -3
- package/dist/{chunk-GEUGFYLO.mjs.map → chunk-FDSU7GPS.mjs.map} +1 -1
- package/dist/{chunk-UVEPTYZC.js → chunk-GWRJ5L36.js} +12 -12
- package/dist/{chunk-UVEPTYZC.js.map → chunk-GWRJ5L36.js.map} +1 -1
- package/dist/{chunk-XOZMUCMF.mjs → chunk-HPIKJS5B.mjs} +3 -3
- package/dist/{chunk-XOZMUCMF.mjs.map → chunk-HPIKJS5B.mjs.map} +1 -1
- package/dist/{chunk-TOEMSC4P.mjs → chunk-IEWFVP42.mjs} +6 -6
- package/dist/{chunk-TOEMSC4P.mjs.map → chunk-IEWFVP42.mjs.map} +1 -1
- package/dist/{chunk-ZJQ5RLGK.mjs → chunk-J4QUCX27.mjs} +1177 -390
- package/dist/chunk-J4QUCX27.mjs.map +1 -0
- package/dist/{chunk-TLDVFFAK.mjs → chunk-KHAMY7MA.mjs} +3 -3
- package/dist/{chunk-TLDVFFAK.mjs.map → chunk-KHAMY7MA.mjs.map} +1 -1
- package/dist/{chunk-YXPHJ2BQ.js → chunk-L5VEY7G4.js} +13 -2
- package/dist/chunk-L5VEY7G4.js.map +1 -0
- package/dist/{chunk-2URBM4LA.js → chunk-MLAIUJYC.js} +6 -6
- package/dist/{chunk-2URBM4LA.js.map → chunk-MLAIUJYC.js.map} +1 -1
- package/dist/{chunk-64G2HBRQ.mjs → chunk-OE4Z4FKM.mjs} +13 -3
- package/dist/chunk-OE4Z4FKM.mjs.map +1 -0
- package/dist/{chunk-LBALE4JX.js → chunk-OQDWU6AE.js} +67 -67
- package/dist/{chunk-LBALE4JX.js.map → chunk-OQDWU6AE.js.map} +1 -1
- package/dist/{chunk-JUTOBBBI.mjs → chunk-Q7WGFPGK.mjs} +4 -4
- package/dist/{chunk-JUTOBBBI.mjs.map → chunk-Q7WGFPGK.mjs.map} +1 -1
- package/dist/{chunk-TZ62G5WM.js → chunk-R5KUEOPU.js} +84 -66
- package/dist/chunk-R5KUEOPU.js.map +1 -0
- package/dist/{chunk-3YVQXDKJ.js → chunk-SIBJRWUB.js} +4 -4
- package/dist/{chunk-3YVQXDKJ.js.map → chunk-SIBJRWUB.js.map} +1 -1
- package/dist/{chunk-ZARCUQA6.js → chunk-SOYGVHPZ.js} +53 -53
- package/dist/{chunk-ZARCUQA6.js.map → chunk-SOYGVHPZ.js.map} +1 -1
- package/dist/{chunk-4667D2ZT.mjs → chunk-U4BTEKZT.mjs} +3 -3
- package/dist/{chunk-4667D2ZT.mjs.map → chunk-U4BTEKZT.mjs.map} +1 -1
- package/dist/{chunk-NAQ32ZPG.mjs → chunk-URMZJ3WF.mjs} +7 -7
- package/dist/{chunk-NAQ32ZPG.mjs.map → chunk-URMZJ3WF.mjs.map} +1 -1
- package/dist/{chunk-SUHNSUMH.mjs → chunk-VPNZDLR6.mjs} +4 -4
- package/dist/{chunk-SUHNSUMH.mjs.map → chunk-VPNZDLR6.mjs.map} +1 -1
- package/dist/{chunk-SV4SMITM.js → chunk-WIKMIULO.js} +36 -36
- package/dist/{chunk-SV4SMITM.js.map → chunk-WIKMIULO.js.map} +1 -1
- package/dist/{chunk-K26RY4EQ.js → chunk-WY3YDQXK.js} +26 -26
- package/dist/{chunk-K26RY4EQ.js.map → chunk-WY3YDQXK.js.map} +1 -1
- package/dist/{chunk-ZHHRWC27.js → chunk-Y4DNREFH.js} +135 -148
- package/dist/chunk-Y4DNREFH.js.map +1 -0
- package/dist/{chunk-MXFEU7A6.js → chunk-YMGJ4FZZ.js} +4 -4
- package/dist/{chunk-MXFEU7A6.js.map → chunk-YMGJ4FZZ.js.map} +1 -1
- package/dist/{chunk-KNXAOJAK.js → chunk-YN4IEDE4.js} +1250 -461
- package/dist/chunk-YN4IEDE4.js.map +1 -0
- package/dist/index.d.mts +306 -2
- package/dist/index.d.ts +306 -2
- package/dist/index.js +754 -744
- package/dist/index.mjs +3 -1
- package/dist/platform/admin/index.js +12 -10
- package/dist/platform/admin/index.mjs +6 -4
- package/dist/platform/agents-workspace.js +8 -8
- package/dist/platform/agents-workspace.mjs +7 -7
- package/dist/platform/app-shell.js +5 -3
- package/dist/platform/app-shell.mjs +4 -2
- package/dist/platform/auth/index.js +29 -27
- package/dist/platform/auth/index.mjs +6 -4
- package/dist/platform/billing/index.js +5 -3
- package/dist/platform/billing/index.mjs +4 -2
- package/dist/platform/impersonation/index.js +5 -3
- package/dist/platform/impersonation/index.mjs +4 -2
- package/dist/platform/index.js +100 -100
- package/dist/platform/index.mjs +20 -20
- package/dist/platform/pages/index.d.mts +2 -2
- package/dist/platform/pages/index.d.ts +2 -2
- package/dist/platform/pages/index.js +197 -195
- package/dist/platform/pages/index.js.map +1 -1
- package/dist/platform/pages/index.mjs +9 -7
- package/dist/platform/pages/index.mjs.map +1 -1
- package/dist/platform/settings/index.js +9 -7
- package/dist/platform/settings/index.mjs +8 -6
- package/dist/platform/workflow-api-client.d.mts +1 -1
- package/dist/platform/workflow-api-client.d.ts +1 -1
- package/dist/platform/workflow-api-client.js +64 -60
- package/dist/platform/workflow-api-client.mjs +1 -1
- package/dist/platform/workflow-canvas-shell.js +6 -4
- package/dist/platform/workflow-canvas-shell.mjs +5 -3
- package/dist/{workflow-api-client-Dy1Ph8W-.d.ts → workflow-api-client-CXN5iaih.d.ts} +34 -2
- package/dist/{workflow-api-client-C8gPn_D1.d.mts → workflow-api-client-XU83zq0k.d.mts} +34 -2
- package/package.json +1 -1
- package/dist/chunk-64G2HBRQ.mjs.map +0 -1
- package/dist/chunk-D4TESEYK.mjs.map +0 -1
- package/dist/chunk-HK6J6HQP.mjs.map +0 -1
- package/dist/chunk-KNXAOJAK.js.map +0 -1
- package/dist/chunk-TZ62G5WM.js.map +0 -1
- package/dist/chunk-YXPHJ2BQ.js.map +0 -1
- package/dist/chunk-ZHHRWC27.js.map +0 -1
- package/dist/chunk-ZJQ5RLGK.mjs.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
var
|
|
4
|
+
var chunkR5KUEOPU_js = require('./chunk-R5KUEOPU.js');
|
|
5
|
+
var chunkYN4IEDE4_js = require('./chunk-YN4IEDE4.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
|
+
chunkYN4IEDE4_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(chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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(chunkYN4IEDE4_js.Button, { type: "button", plain: true, onClick: onRemove, children: "Remove" })
|
|
191
191
|
] }),
|
|
192
192
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
193
|
-
|
|
193
|
+
chunkYN4IEDE4_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 = chunkR5KUEOPU_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(chunkR5KUEOPU_js.FRAMEWORK_META);
|
|
563
563
|
const hasProviderConstraints = connectedProviderTypes.length > 0;
|
|
564
|
-
const compatibleModels =
|
|
564
|
+
const compatibleModels = chunkR5KUEOPU_js.getCompatibleModels(models, selectedFramework);
|
|
565
565
|
const handleFrameworkChange = react.useCallback((newFramework) => {
|
|
566
566
|
setSelectedFramework(newFramework);
|
|
567
|
-
if (!
|
|
568
|
-
const compatible =
|
|
567
|
+
if (!chunkR5KUEOPU_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
|
|
568
|
+
const compatible = chunkR5KUEOPU_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 = chunkR5KUEOPU_js.FRAMEWORK_META[key];
|
|
580
580
|
const isSelected = key === selectedFramework;
|
|
581
|
-
const compatCount =
|
|
582
|
-
const isCompatibleWithProviders = !hasProviderConstraints ||
|
|
581
|
+
const compatCount = chunkR5KUEOPU_js.getCompatibleModels(models, key).length;
|
|
582
|
+
const isCompatibleWithProviders = !hasProviderConstraints || chunkR5KUEOPU_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 = chunkR5KUEOPU_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 = chunkR5KUEOPU_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) => chunkR5KUEOPU_js.isModelCompatibleWithFramework(m.id, agentFramework)
|
|
829
829
|
);
|
|
830
830
|
const incompatibleModels = providerModels.models.filter(
|
|
831
|
-
(m) => !
|
|
831
|
+
(m) => !chunkR5KUEOPU_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 = chunkR5KUEOPU_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
|
+
chunkYN4IEDE4_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 = chunkR5KUEOPU_js.useModalStore((s) => s.activeModal);
|
|
1081
|
+
const agentData = chunkR5KUEOPU_js.useModalStore((s) => s.agentData);
|
|
1082
|
+
const closeModal = chunkR5KUEOPU_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
|
+
chunkYN4IEDE4_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 = chunkR5KUEOPU_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 ?? chunkR5KUEOPU_js.CATEGORY_COLORS[categoryKey] ?? chunkR5KUEOPU_js.CATEGORY_COLORS.external;
|
|
1462
|
+
const categoryPill = chunkR5KUEOPU_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunkR5KUEOPU_js.CATEGORY_PILL_COLORS.external;
|
|
1463
|
+
const IconComponent = chunkR5KUEOPU_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
|
+
chunkYN4IEDE4_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 ? `${chunkR5KUEOPU_js.CATEGORY_PILL_COLORS[cat] ?? chunkR5KUEOPU_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
|
+
chunkR5KUEOPU_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 = chunkR5KUEOPU_js.useModalStore((s) => s.activeModal);
|
|
1632
|
+
const data = chunkR5KUEOPU_js.useModalStore((s) => s.pipelineSettingsData);
|
|
1633
|
+
const closeModal = chunkR5KUEOPU_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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(chunkYN4IEDE4_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(chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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(chunkYN4IEDE4_js.Button, { type: "button", plain: true, onClick: () => remove(index), children: "Remove" })
|
|
2443
2443
|
] }, index)),
|
|
2444
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2444
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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(chunkYN4IEDE4_js.Button, { type: "button", plain: true, onClick: () => remove(index), children: "Remove operand" }) })
|
|
2486
2486
|
] }, index)),
|
|
2487
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2487
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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(chunkYN4IEDE4_js.Button, { type: "button", plain: true, onClick: () => remove(index), children: "Remove" })
|
|
2657
2657
|
] }, index)),
|
|
2658
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2658
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkYN4IEDE4_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(chunkYN4IEDE4_js.FormGrid, { children: [
|
|
2689
2689
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2690
|
-
|
|
2690
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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(chunkYN4IEDE4_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(chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_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
|
+
chunkYN4IEDE4_js.FormInput,
|
|
2796
2796
|
{
|
|
2797
2797
|
label: "Tags (comma-separated)",
|
|
2798
2798
|
value: (value.tags ?? []).join(", "),
|
|
@@ -2899,12 +2899,12 @@ var LOGIC_NODE_ITEMS = [
|
|
|
2899
2899
|
{ nodeType: "variable_aggregator", nameKey: "variableAggregatorNode", descriptionKey: "variableAggregatorNodeDescription", subcategory: "data_processing" },
|
|
2900
2900
|
{ nodeType: "list_operator", nameKey: "listOperatorNode", descriptionKey: "listOperatorNodeDescription", subcategory: "data_processing" },
|
|
2901
2901
|
// DocumentExtractor echoes its config today — pending a real
|
|
2902
|
-
// extractor implementation
|
|
2903
|
-
{ nodeType: "document_extractor", nameKey: "documentExtractorNode", descriptionKey: "documentExtractorNodeDescription", subcategory: "data_processing"
|
|
2902
|
+
// extractor implementation. Tagged via EXPERIMENTAL_NODE_TYPES.
|
|
2903
|
+
{ nodeType: "document_extractor", nameKey: "documentExtractorNode", descriptionKey: "documentExtractorNodeDescription", subcategory: "data_processing" },
|
|
2904
2904
|
{ nodeType: "datasource", nameKey: "datasourceNode", descriptionKey: "datasourceNodeDescription", subcategory: "data_processing" },
|
|
2905
2905
|
// AI/ML
|
|
2906
|
-
// KnowledgeBase is a stub (no vector store wired yet)
|
|
2907
|
-
{ nodeType: "knowledge_base", nameKey: "knowledgeBaseNode", descriptionKey: "knowledgeBaseNodeDescription", subcategory: "ai_ml"
|
|
2906
|
+
// KnowledgeBase is a stub (no vector store wired yet). Tagged via EXPERIMENTAL_NODE_TYPES.
|
|
2907
|
+
{ nodeType: "knowledge_base", nameKey: "knowledgeBaseNode", descriptionKey: "knowledgeBaseNodeDescription", subcategory: "ai_ml" },
|
|
2908
2908
|
{ nodeType: "answer", nameKey: "answerNode", descriptionKey: "answerNodeDescription", subcategory: "ai_ml" },
|
|
2909
2909
|
{ nodeType: "question_classifier", nameKey: "questionClassifierNode", descriptionKey: "questionClassifierNodeDescription", subcategory: "ai_ml" },
|
|
2910
2910
|
{ nodeType: "parameter_extractor", nameKey: "parameterExtractorNode", descriptionKey: "parameterExtractorNodeDescription", subcategory: "ai_ml" },
|
|
@@ -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 = chunkR5KUEOPU_js.LOGIC_ICON_MAP[item.nodeType];
|
|
2980
|
+
const gradient = chunkR5KUEOPU_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(
|
|
@@ -2999,7 +2999,6 @@ function LogicNodeItemCard({ item, translationFunction }) {
|
|
|
2999
2999
|
function NodePalette({ agents, tools, agentTools = [], rules, entities = [], modelProviders = [], onCreateAgent, onCreateTool, onCreateAgentTool, onCreateRule, onCreateDatasource, onConfigureProvider }) {
|
|
3000
3000
|
const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
|
|
3001
3001
|
const [searchQuery, setSearchQuery] = react.useState("");
|
|
3002
|
-
const [showExperimental, setShowExperimental] = react.useState(false);
|
|
3003
3002
|
const normalizedQuery = searchQuery.toLowerCase().trim();
|
|
3004
3003
|
const filteredAgents = react.useMemo(
|
|
3005
3004
|
() => normalizedQuery ? agents.filter(
|
|
@@ -3049,12 +3048,12 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3049
3048
|
[entityTypes, normalizedQuery]
|
|
3050
3049
|
);
|
|
3051
3050
|
const filteredLogicItems = react.useMemo(() => {
|
|
3052
|
-
const visibleByDefault =
|
|
3051
|
+
const visibleByDefault = LOGIC_NODE_ITEMS.filter((item) => !chunkR5KUEOPU_js.EXPERIMENTAL_NODE_TYPES.has(item.nodeType));
|
|
3053
3052
|
if (!normalizedQuery) return visibleByDefault;
|
|
3054
3053
|
return visibleByDefault.filter(
|
|
3055
3054
|
(item) => t(item.nameKey).toLowerCase().includes(normalizedQuery) || t(item.descriptionKey).toLowerCase().includes(normalizedQuery)
|
|
3056
3055
|
);
|
|
3057
|
-
}, [normalizedQuery,
|
|
3056
|
+
}, [normalizedQuery, t]);
|
|
3058
3057
|
const groupedLogicItems = react.useMemo(() => {
|
|
3059
3058
|
const groups = {
|
|
3060
3059
|
control_flow: [],
|
|
@@ -3087,19 +3086,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3087
3086
|
placeholder: t("searchPalette"),
|
|
3088
3087
|
className: "liquid-surface w-full rounded-lg px-2.5 py-1.5 text-[11px] text-gray-900 placeholder-gray-400 outline-none transition-colors focus:ring-1 focus:ring-indigo-300/40 dark:text-white dark:placeholder-gray-500 dark:focus:ring-indigo-500/20"
|
|
3089
3088
|
}
|
|
3090
|
-
) })
|
|
3091
|
-
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "mt-2 flex items-center gap-2 text-[10px] text-gray-500 dark:text-gray-400 select-none cursor-pointer", children: [
|
|
3092
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3093
|
-
"input",
|
|
3094
|
-
{
|
|
3095
|
-
type: "checkbox",
|
|
3096
|
-
checked: showExperimental,
|
|
3097
|
-
onChange: (event) => setShowExperimental(event.target.checked),
|
|
3098
|
-
className: "h-3 w-3 rounded border-gray-300 text-indigo-600 focus:ring-1 focus:ring-indigo-400/40 dark:border-gray-600"
|
|
3099
|
-
}
|
|
3100
|
-
),
|
|
3101
|
-
t("showExperimentalNodes", { _: "Show experimental" })
|
|
3102
|
-
] })
|
|
3089
|
+
) })
|
|
3103
3090
|
] }),
|
|
3104
3091
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3105
3092
|
CollapsibleSection,
|
|
@@ -3158,7 +3145,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3158
3145
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: tool.category })
|
|
3159
3146
|
] }),
|
|
3160
3147
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3161
|
-
|
|
3148
|
+
chunkYN4IEDE4_js.ToggleSwitch,
|
|
3162
3149
|
{
|
|
3163
3150
|
checked: Boolean(tool.enabled),
|
|
3164
3151
|
onChange: () => {
|
|
@@ -3199,7 +3186,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3199
3186
|
] })
|
|
3200
3187
|
] }),
|
|
3201
3188
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3202
|
-
|
|
3189
|
+
chunkYN4IEDE4_js.ToggleSwitch,
|
|
3203
3190
|
{
|
|
3204
3191
|
checked: Boolean(rule.enabled),
|
|
3205
3192
|
onChange: () => {
|
|
@@ -3235,8 +3222,8 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3235
3222
|
limit: entity.defaultLimit
|
|
3236
3223
|
});
|
|
3237
3224
|
const dsLogo = getDatasourceLogo(entity.id);
|
|
3238
|
-
const EntityIcon =
|
|
3239
|
-
const entityGradient =
|
|
3225
|
+
const EntityIcon = chunkR5KUEOPU_js.getEntityIcon(entity.id);
|
|
3226
|
+
const entityGradient = chunkR5KUEOPU_js.getEntityGradient(entity.id);
|
|
3240
3227
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3241
3228
|
"div",
|
|
3242
3229
|
{
|
|
@@ -3256,7 +3243,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3256
3243
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3257
3244
|
/* @__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
3245
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3259
|
-
|
|
3246
|
+
chunkYN4IEDE4_js.ToggleSwitch,
|
|
3260
3247
|
{
|
|
3261
3248
|
checked: true,
|
|
3262
3249
|
onChange: () => {
|
|
@@ -3634,9 +3621,9 @@ function formatDuration3(durationMs) {
|
|
|
3634
3621
|
}
|
|
3635
3622
|
function RunPanel({ open, onClose, onRun, onStop }) {
|
|
3636
3623
|
const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.runPanel");
|
|
3637
|
-
const nodes =
|
|
3638
|
-
const isRunning =
|
|
3639
|
-
const nodeResults =
|
|
3624
|
+
const nodes = chunkR5KUEOPU_js.useWorkflowStore((state) => state.nodes);
|
|
3625
|
+
const isRunning = chunkR5KUEOPU_js.useWorkflowStore((state) => state.isRunning);
|
|
3626
|
+
const nodeResults = chunkR5KUEOPU_js.useWorkflowStore((state) => state.nodeResults);
|
|
3640
3627
|
const startNode = nodes.find((node) => node.type === "start");
|
|
3641
3628
|
const hasEndNode = nodes.some((node) => node.type === "end");
|
|
3642
3629
|
const hasValidStartConfig = Boolean(
|
|
@@ -3924,8 +3911,8 @@ function inferVariables(config, nodeType) {
|
|
|
3924
3911
|
}
|
|
3925
3912
|
function VariableInspector({ open, onClose }) {
|
|
3926
3913
|
const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.variableInspector");
|
|
3927
|
-
const nodes =
|
|
3928
|
-
const edges =
|
|
3914
|
+
const nodes = chunkR5KUEOPU_js.useWorkflowStore((state) => state.nodes);
|
|
3915
|
+
const edges = chunkR5KUEOPU_js.useWorkflowStore((state) => state.edges);
|
|
3929
3916
|
const [expandedNodes, setExpandedNodes] = react.useState(/* @__PURE__ */ new Set());
|
|
3930
3917
|
const toggleNodeExpansion = react.useCallback((nodeId) => {
|
|
3931
3918
|
setExpandedNodes((current) => {
|
|
@@ -3987,8 +3974,8 @@ function VariableInspector({ open, onClose }) {
|
|
|
3987
3974
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-gray-500 dark:text-gray-400", children: translations("noNodes") })
|
|
3988
3975
|
] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-gray-100 dark:divide-gray-800", children: nodeVariableEntries.map((entry) => {
|
|
3989
3976
|
const isExpanded = expandedNodes.has(entry.nodeId);
|
|
3990
|
-
const IconComponent =
|
|
3991
|
-
const gradient =
|
|
3977
|
+
const IconComponent = chunkR5KUEOPU_js.LOGIC_ICON_MAP[entry.nodeType];
|
|
3978
|
+
const gradient = chunkR5KUEOPU_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-gray-400 to-gray-500";
|
|
3992
3979
|
const inputVariables = entry.variables.filter((variable) => variable.direction === "input");
|
|
3993
3980
|
const outputVariables = entry.variables.filter((variable) => variable.direction === "output");
|
|
3994
3981
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": `variable-node-${entry.nodeId}`, children: [
|
|
@@ -4054,7 +4041,7 @@ function RunInputDialog({
|
|
|
4054
4041
|
onRun
|
|
4055
4042
|
}) {
|
|
4056
4043
|
const t = chunkYXN2K77G_js.useTranslations("agents.workflow.runInputDialog");
|
|
4057
|
-
const nodes =
|
|
4044
|
+
const nodes = chunkR5KUEOPU_js.useWorkflowStore((state) => state.nodes);
|
|
4058
4045
|
const [values, setValues] = react.useState({});
|
|
4059
4046
|
const inputVariableNames = react.useMemo(() => {
|
|
4060
4047
|
const storeStartNode = nodes.find((node) => node.type === "start");
|
|
@@ -4081,7 +4068,7 @@ function RunInputDialog({
|
|
|
4081
4068
|
}, [onClose]);
|
|
4082
4069
|
if (!open) return null;
|
|
4083
4070
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4084
|
-
|
|
4071
|
+
chunkYN4IEDE4_js.GlassModal,
|
|
4085
4072
|
{
|
|
4086
4073
|
open,
|
|
4087
4074
|
onClose: handleClose,
|
|
@@ -4092,7 +4079,7 @@ function RunInputDialog({
|
|
|
4092
4079
|
/* @__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
4080
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300", children: variableName }),
|
|
4094
4081
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4095
|
-
|
|
4082
|
+
chunkYN4IEDE4_js.Input,
|
|
4096
4083
|
{
|
|
4097
4084
|
value: values[variableName] ?? "",
|
|
4098
4085
|
onChange: (event) => handleValueChange(variableName, event.target.value),
|
|
@@ -4101,8 +4088,8 @@ function RunInputDialog({
|
|
|
4101
4088
|
)
|
|
4102
4089
|
] }, variableName)) }),
|
|
4103
4090
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-4 flex items-center justify-end gap-2", children: [
|
|
4104
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4105
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4091
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkYN4IEDE4_js.Button, { size: "sm", plain: true, onClick: handleClose, children: t("cancel") }),
|
|
4092
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkYN4IEDE4_js.Button, { size: "sm", gradient: true, onClick: handleSubmit, children: [
|
|
4106
4093
|
/* @__PURE__ */ jsxRuntime.jsx(outline.PlayIcon, { className: "h-3.5 w-3.5", "data-slot": "icon" }),
|
|
4107
4094
|
t("run")
|
|
4108
4095
|
] })
|
|
@@ -4135,8 +4122,8 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
|
|
|
4135
4122
|
const [isLoadingRuns, setIsLoadingRuns] = react.useState(false);
|
|
4136
4123
|
const [selectedRun, setSelectedRun] = react.useState(null);
|
|
4137
4124
|
const [selectedNode, setSelectedNode] = react.useState(null);
|
|
4138
|
-
const isRunning =
|
|
4139
|
-
const nodeResults =
|
|
4125
|
+
const isRunning = chunkR5KUEOPU_js.useWorkflowStore((state) => state.isRunning);
|
|
4126
|
+
const nodeResults = chunkR5KUEOPU_js.useWorkflowStore((state) => state.nodeResults);
|
|
4140
4127
|
const refreshRuns = react.useCallback(async () => {
|
|
4141
4128
|
setIsLoadingRuns(true);
|
|
4142
4129
|
try {
|
|
@@ -4292,7 +4279,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
|
|
|
4292
4279
|
onAutoSaveGraph(graph);
|
|
4293
4280
|
}, [onAutoSaveGraph, onGraphSnapshot]);
|
|
4294
4281
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4295
|
-
|
|
4282
|
+
chunkR5KUEOPU_js.Workspace,
|
|
4296
4283
|
{
|
|
4297
4284
|
...workspaceProps,
|
|
4298
4285
|
onGraphChange: handleGraphChange
|
|
@@ -4300,7 +4287,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
|
|
|
4300
4287
|
);
|
|
4301
4288
|
});
|
|
4302
4289
|
function DynamicIslandConfirm2(props) {
|
|
4303
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4290
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkYN4IEDE4_js.DynamicIslandConfirm, { ...props });
|
|
4304
4291
|
}
|
|
4305
4292
|
var JSON_PREVIEW_LINE_LIMIT = 50;
|
|
4306
4293
|
function DslExportModal({ open, onClose, workflow, graph }) {
|
|
@@ -4354,7 +4341,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
|
|
|
4354
4341
|
}, [jsonString, workflow.name, workflow.version]);
|
|
4355
4342
|
if (!open) return null;
|
|
4356
4343
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4357
|
-
|
|
4344
|
+
chunkYN4IEDE4_js.GlassModal,
|
|
4358
4345
|
{
|
|
4359
4346
|
open,
|
|
4360
4347
|
onClose,
|
|
@@ -4396,7 +4383,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
|
|
|
4396
4383
|
] }),
|
|
4397
4384
|
/* @__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
4385
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4399
|
-
|
|
4386
|
+
chunkYN4IEDE4_js.Button,
|
|
4400
4387
|
{
|
|
4401
4388
|
type: "button",
|
|
4402
4389
|
onClick: handleCopyToClipboard,
|
|
@@ -4413,7 +4400,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
|
|
|
4413
4400
|
}
|
|
4414
4401
|
),
|
|
4415
4402
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4416
|
-
|
|
4403
|
+
chunkYN4IEDE4_js.Button,
|
|
4417
4404
|
{
|
|
4418
4405
|
type: "button",
|
|
4419
4406
|
onClick: handleDownloadJson,
|
|
@@ -4572,7 +4559,7 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4572
4559
|
}, []);
|
|
4573
4560
|
if (!open) return null;
|
|
4574
4561
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4575
|
-
|
|
4562
|
+
chunkYN4IEDE4_js.GlassModal,
|
|
4576
4563
|
{
|
|
4577
4564
|
open,
|
|
4578
4565
|
onClose,
|
|
@@ -4612,7 +4599,7 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4612
4599
|
) : /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": "import-validation-result", children: [
|
|
4613
4600
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4 flex items-center justify-between", children: [
|
|
4614
4601
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: fileName }),
|
|
4615
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4602
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkYN4IEDE4_js.Button, { type: "button", plain: true, size: "sm", onClick: handleReset, children: translations("chooseAnother") })
|
|
4616
4603
|
] }),
|
|
4617
4604
|
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
4605
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
@@ -4640,9 +4627,9 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4640
4627
|
] })
|
|
4641
4628
|
] }) }),
|
|
4642
4629
|
/* @__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(
|
|
4630
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkYN4IEDE4_js.Button, { type: "button", onClick: onClose, outline: true, size: "sm", "data-testid": "import-cancel-button", children: translations("cancel") }),
|
|
4644
4631
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4645
|
-
|
|
4632
|
+
chunkYN4IEDE4_js.Button,
|
|
4646
4633
|
{
|
|
4647
4634
|
type: "button",
|
|
4648
4635
|
onClick: handleImport,
|
|
@@ -4663,14 +4650,14 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4663
4650
|
}
|
|
4664
4651
|
|
|
4665
4652
|
// 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 = () =>
|
|
4653
|
+
var useCanUndo = () => chunkR5KUEOPU_js.useWorkflowStore((state) => state.past.length > 0);
|
|
4654
|
+
var useCanRedo = () => chunkR5KUEOPU_js.useWorkflowStore((state) => state.future.length > 0);
|
|
4655
|
+
var useHasCopied = () => chunkR5KUEOPU_js.useWorkflowStore((state) => state.clipboard !== null);
|
|
4656
|
+
var useContextMenu = () => chunkR5KUEOPU_js.useWorkflowStore((state) => state.contextMenu);
|
|
4657
|
+
var useEditingNodeId = () => chunkR5KUEOPU_js.useWorkflowStore((state) => state.editingNodeId);
|
|
4658
|
+
var useSelectedNodeCount = () => chunkR5KUEOPU_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
|
|
4659
|
+
var useIsRunning = () => chunkR5KUEOPU_js.useWorkflowStore((state) => state.isRunning);
|
|
4660
|
+
var useNodeResults = () => chunkR5KUEOPU_js.useWorkflowStore((state) => state.nodeResults);
|
|
4674
4661
|
var DEFAULT_MAX_HISTORY = 50;
|
|
4675
4662
|
function useUndoRedo(nodes, edges, setNodes, setEdges, maxHistory = DEFAULT_MAX_HISTORY) {
|
|
4676
4663
|
const pastRef = react.useRef([]);
|
|
@@ -4992,5 +4979,5 @@ exports.useNodeResults = useNodeResults;
|
|
|
4992
4979
|
exports.useSelectedNodeCount = useSelectedNodeCount;
|
|
4993
4980
|
exports.useSubworkflowStore = useSubworkflowStore;
|
|
4994
4981
|
exports.useUndoRedo = useUndoRedo;
|
|
4995
|
-
//# sourceMappingURL=chunk-
|
|
4996
|
-
//# sourceMappingURL=chunk-
|
|
4982
|
+
//# sourceMappingURL=chunk-Y4DNREFH.js.map
|
|
4983
|
+
//# sourceMappingURL=chunk-Y4DNREFH.js.map
|