@datatechsolutions/ui 2.11.93 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/astrlabe/contracts.d.mts +3 -3
- package/dist/astrlabe/contracts.d.ts +3 -3
- package/dist/astrlabe/index.js +108 -108
- package/dist/astrlabe/index.mjs +4 -4
- package/dist/astrlabe/workflow-canvas.js +4 -4
- package/dist/astrlabe/workflow-canvas.mjs +3 -3
- package/dist/brand/index.d.mts +1 -15
- package/dist/brand/index.d.ts +1 -15
- package/dist/brand/index.js +0 -14
- package/dist/brand/index.js.map +1 -1
- package/dist/brand/index.mjs +0 -14
- package/dist/brand/index.mjs.map +1 -1
- package/dist/{chunk-24QKSC74.js → chunk-3JJWPOK6.js} +6 -6
- package/dist/{chunk-24QKSC74.js.map → chunk-3JJWPOK6.js.map} +1 -1
- package/dist/{chunk-HGN5W56D.mjs → chunk-3ZUMJTDT.mjs} +3 -3
- package/dist/{chunk-HGN5W56D.mjs.map → chunk-3ZUMJTDT.mjs.map} +1 -1
- package/dist/{chunk-LKJZGFM4.mjs → chunk-5GDKCFM5.mjs} +3 -3
- package/dist/{chunk-LKJZGFM4.mjs.map → chunk-5GDKCFM5.mjs.map} +1 -1
- package/dist/{chunk-ZHUPYX4Q.mjs → chunk-5RM6NGZ6.mjs} +3 -3
- package/dist/{chunk-ZHUPYX4Q.mjs.map → chunk-5RM6NGZ6.mjs.map} +1 -1
- package/dist/{chunk-DB64YDV2.js → chunk-AOUUZ52N.js} +55 -55
- package/dist/{chunk-DB64YDV2.js.map → chunk-AOUUZ52N.js.map} +1 -1
- package/dist/{chunk-VGSWSQQU.mjs → chunk-B67DP7MI.mjs} +4 -4
- package/dist/{chunk-VGSWSQQU.mjs.map → chunk-B67DP7MI.mjs.map} +1 -1
- package/dist/{chunk-NYQAEPC7.js → chunk-EFOXN3LC.js} +159 -168
- package/dist/chunk-EFOXN3LC.js.map +1 -0
- package/dist/{chunk-ARVLVWUC.js → chunk-F54Q2YJY.js} +97 -15
- package/dist/chunk-F54Q2YJY.js.map +1 -0
- package/dist/{chunk-GMZ3PTNK.mjs → chunk-H2D2CRTD.mjs} +7 -7
- package/dist/{chunk-GMZ3PTNK.mjs.map → chunk-H2D2CRTD.mjs.map} +1 -1
- package/dist/{chunk-PTGPQJZJ.js → chunk-HDCUWUNH.js} +15 -15
- package/dist/{chunk-PTGPQJZJ.js.map → chunk-HDCUWUNH.js.map} +1 -1
- package/dist/{chunk-ZKUYNCAG.js → chunk-I2NZGVBG.js} +1595 -2140
- package/dist/chunk-I2NZGVBG.js.map +1 -0
- package/dist/{chunk-MLAXYDEU.mjs → chunk-IRPS5UCS.mjs} +3 -3
- package/dist/{chunk-MLAXYDEU.mjs.map → chunk-IRPS5UCS.mjs.map} +1 -1
- package/dist/{chunk-TEQYIK2B.mjs → chunk-IRT4T3CU.mjs} +92 -101
- package/dist/chunk-IRT4T3CU.mjs.map +1 -0
- package/dist/{chunk-A3BFURJB.mjs → chunk-JN6IL6OH.mjs} +1595 -2138
- package/dist/chunk-JN6IL6OH.mjs.map +1 -0
- package/dist/{chunk-NA57KK4O.js → chunk-JSNRCYSO.js} +4 -4
- package/dist/{chunk-NA57KK4O.js.map → chunk-JSNRCYSO.js.map} +1 -1
- package/dist/{chunk-XSBZNPUO.js → chunk-KR2X2WHJ.js} +53 -53
- package/dist/{chunk-XSBZNPUO.js.map → chunk-KR2X2WHJ.js.map} +1 -1
- package/dist/{chunk-YEWXDCCI.mjs → chunk-LEKZUS6N.mjs} +4 -4
- package/dist/{chunk-YEWXDCCI.mjs.map → chunk-LEKZUS6N.mjs.map} +1 -1
- package/dist/{chunk-6NAZVG2O.mjs → chunk-MVBIAXVN.mjs} +4 -4
- package/dist/{chunk-6NAZVG2O.mjs.map → chunk-MVBIAXVN.mjs.map} +1 -1
- package/dist/{chunk-4TY55HGO.mjs → chunk-OL73LBX5.mjs} +3 -3
- package/dist/{chunk-4TY55HGO.mjs.map → chunk-OL73LBX5.mjs.map} +1 -1
- package/dist/{chunk-HUGHELRM.mjs → chunk-QYA53LUF.mjs} +6 -6
- package/dist/chunk-QYA53LUF.mjs.map +1 -0
- package/dist/{chunk-DWFLIXES.mjs → chunk-R4TQWXNG.mjs} +3 -3
- package/dist/{chunk-DWFLIXES.mjs.map → chunk-R4TQWXNG.mjs.map} +1 -1
- package/dist/{chunk-SMKN4ZVB.js → chunk-RGI74SQH.js} +4 -4
- package/dist/{chunk-SMKN4ZVB.js.map → chunk-RGI74SQH.js.map} +1 -1
- package/dist/{chunk-FZTOP6EE.js → chunk-RL35XATZ.js} +141 -141
- package/dist/chunk-RL35XATZ.js.map +1 -0
- package/dist/{chunk-BUI7BCUN.js → chunk-RXZNACMI.js} +33 -33
- package/dist/{chunk-BUI7BCUN.js.map → chunk-RXZNACMI.js.map} +1 -1
- package/dist/{chunk-ST3GH5OM.js → chunk-SU3YPWFW.js} +26 -26
- package/dist/{chunk-ST3GH5OM.js.map → chunk-SU3YPWFW.js.map} +1 -1
- package/dist/{chunk-DIMLLLZR.js → chunk-TIJJHW2Z.js} +36 -36
- package/dist/{chunk-DIMLLLZR.js.map → chunk-TIJJHW2Z.js.map} +1 -1
- package/dist/{chunk-2RDGJXYZ.js → chunk-TVMLV675.js} +67 -67
- package/dist/{chunk-2RDGJXYZ.js.map → chunk-TVMLV675.js.map} +1 -1
- package/dist/{chunk-Y3WJAYOY.mjs → chunk-UDDZTTLO.mjs} +6 -6
- package/dist/chunk-UDDZTTLO.mjs.map +1 -0
- package/dist/{chunk-43GCSCQA.js → chunk-W5OEBO6E.js} +12 -12
- package/dist/chunk-W5OEBO6E.js.map +1 -0
- package/dist/{chunk-3Z366CVM.js → chunk-Y6AEE56Q.js} +67 -67
- package/dist/{chunk-3Z366CVM.js.map → chunk-Y6AEE56Q.js.map} +1 -1
- package/dist/{chunk-RXFAQFE7.mjs → chunk-YIB2YAM5.mjs} +3 -3
- package/dist/{chunk-RXFAQFE7.mjs.map → chunk-YIB2YAM5.mjs.map} +1 -1
- package/dist/{chunk-OLXOBT42.mjs → chunk-YV72JM4B.mjs} +4 -4
- package/dist/{chunk-OLXOBT42.mjs.map → chunk-YV72JM4B.mjs.map} +1 -1
- package/dist/{chunk-MEEFOZC4.js → chunk-ZM5MVWIT.js} +4 -4
- package/dist/{chunk-MEEFOZC4.js.map → chunk-ZM5MVWIT.js.map} +1 -1
- package/dist/{chunk-PU2KTO4O.mjs → chunk-ZV5EZXXO.mjs} +97 -15
- package/dist/chunk-ZV5EZXXO.mjs.map +1 -0
- package/dist/index.d.mts +8 -41
- package/dist/index.d.ts +8 -41
- package/dist/index.js +745 -753
- package/dist/index.mjs +2 -2
- package/dist/platform/admin/index.js +11 -11
- package/dist/platform/admin/index.mjs +5 -5
- package/dist/platform/agents-workspace.js +7 -7
- package/dist/platform/agents-workspace.mjs +6 -6
- package/dist/platform/app-shell.js +4 -4
- package/dist/platform/app-shell.mjs +3 -3
- package/dist/platform/auth/index.js +28 -28
- package/dist/platform/auth/index.mjs +5 -5
- package/dist/platform/billing/index.js +4 -4
- package/dist/platform/billing/index.mjs +3 -3
- package/dist/platform/impersonation/index.js +4 -4
- package/dist/platform/impersonation/index.mjs +3 -3
- package/dist/platform/index.d.mts +1 -1
- package/dist/platform/index.d.ts +1 -1
- package/dist/platform/index.js +99 -99
- package/dist/platform/index.js.map +1 -1
- package/dist/platform/index.mjs +19 -19
- package/dist/platform/index.mjs.map +1 -1
- package/dist/platform/pages/index.d.mts +4 -5
- package/dist/platform/pages/index.d.ts +4 -5
- package/dist/platform/pages/index.js +197 -197
- package/dist/platform/pages/index.js.map +1 -1
- package/dist/platform/pages/index.mjs +9 -9
- package/dist/platform/pages/index.mjs.map +1 -1
- package/dist/platform/settings/index.js +8 -8
- package/dist/platform/settings/index.mjs +7 -7
- package/dist/platform/telemetry/index.d.mts +51 -0
- package/dist/platform/telemetry/index.d.ts +51 -0
- package/dist/platform/telemetry/index.js +96 -0
- package/dist/platform/telemetry/index.js.map +1 -0
- package/dist/platform/telemetry/index.mjs +89 -0
- package/dist/platform/telemetry/index.mjs.map +1 -0
- 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 +61 -61
- package/dist/platform/workflow-api-client.mjs +1 -1
- package/dist/platform/workflow-canvas-shell.js +5 -5
- package/dist/platform/workflow-canvas-shell.mjs +4 -4
- package/dist/{workflow-api-client-DVLhcpUj.d.ts → workflow-api-client-BKD8OfP_.d.ts} +61 -30
- package/dist/{workflow-api-client-DpBxHTHr.d.mts → workflow-api-client-DoYj7nHz.d.mts} +61 -30
- package/package.json +7 -1
- package/dist/chunk-43GCSCQA.js.map +0 -1
- package/dist/chunk-A3BFURJB.mjs.map +0 -1
- package/dist/chunk-ARVLVWUC.js.map +0 -1
- package/dist/chunk-FZTOP6EE.js.map +0 -1
- package/dist/chunk-HUGHELRM.mjs.map +0 -1
- package/dist/chunk-NYQAEPC7.js.map +0 -1
- package/dist/chunk-PU2KTO4O.mjs.map +0 -1
- package/dist/chunk-TEQYIK2B.mjs.map +0 -1
- package/dist/chunk-Y3WJAYOY.mjs.map +0 -1
- package/dist/chunk-ZKUYNCAG.js.map +0 -1
- package/src/brand/logos/fuel-icon.svg +0 -32
- package/src/brand/logos/fuel-logo-dark.svg +0 -43
- package/src/brand/logos/fuel-logo.svg +0 -43
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
var
|
|
4
|
+
var chunkEFOXN3LC_js = require('./chunk-EFOXN3LC.js');
|
|
5
|
+
var chunkI2NZGVBG_js = require('./chunk-I2NZGVBG.js');
|
|
6
6
|
var chunkYXN2K77G_js = require('./chunk-YXN2K77G.js');
|
|
7
7
|
var chunkC3H4FM4A_js = require('./chunk-C3H4FM4A.js');
|
|
8
8
|
var react = require('react');
|
|
@@ -17,10 +17,10 @@ var S3WriteFlowNode = react.memo(function S3WriteFlowNode2({ id, data, selected
|
|
|
17
17
|
const isCompact = data.displayMode === "compact";
|
|
18
18
|
const keyPreview = config.key ? config.key.slice(0, 30) : "";
|
|
19
19
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
20
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
21
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
20
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEFOXN3LC_js.NodeRunningIndicator, { nodeId: id }),
|
|
21
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEFOXN3LC_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-cyan-500" }),
|
|
22
22
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
23
|
-
|
|
23
|
+
chunkEFOXN3LC_js.NodeInteractiveCard,
|
|
24
24
|
{
|
|
25
25
|
nodeId: id,
|
|
26
26
|
onEdit,
|
|
@@ -29,27 +29,27 @@ var S3WriteFlowNode = react.memo(function S3WriteFlowNode2({ id, data, selected
|
|
|
29
29
|
nodeType: "s3_write",
|
|
30
30
|
children: [
|
|
31
31
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
32
|
-
|
|
32
|
+
chunkEFOXN3LC_js.NodeCardHeader,
|
|
33
33
|
{
|
|
34
|
-
icon: /* @__PURE__ */ jsxRuntime.jsx(
|
|
34
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(chunkEFOXN3LC_js.NodeIconBubble, { tone: "s3_write", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CloudArrowUpIcon, { className: "h-5 w-5 text-white" }) }),
|
|
35
35
|
title: label,
|
|
36
36
|
description: t("s3WriteNodeDescription"),
|
|
37
37
|
compact: isCompact,
|
|
38
38
|
iconClassName: ""
|
|
39
39
|
}
|
|
40
40
|
),
|
|
41
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
41
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkEFOXN3LC_js.NodeCardMeta, { compact: isCompact, children: [
|
|
42
42
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
43
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
44
|
-
config.bucket && /* @__PURE__ */ jsxRuntime.jsx(
|
|
43
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEFOXN3LC_js.NodeCardBadge, { tone: "s3_write", children: t("s3WriteNode") }),
|
|
44
|
+
config.bucket && /* @__PURE__ */ jsxRuntime.jsx(chunkEFOXN3LC_js.NodeCardBadge, { tone: "s3_write", soft: true, children: config.bucket }),
|
|
45
45
|
keyPreview && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: keyPreview })
|
|
46
46
|
] }),
|
|
47
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
47
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEFOXN3LC_js.NodeCardDeleteAction, { nodeId: id, onDelete })
|
|
48
48
|
] })
|
|
49
49
|
]
|
|
50
50
|
}
|
|
51
51
|
),
|
|
52
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
52
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEFOXN3LC_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-cyan-500" })
|
|
53
53
|
] });
|
|
54
54
|
});
|
|
55
55
|
function AnthropicModelIcon({ className }) {
|
|
@@ -113,7 +113,7 @@ function OutputSchemaBuilder({ value, onChange, depth = 0 }) {
|
|
|
113
113
|
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: [
|
|
114
114
|
/* @__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." }),
|
|
115
115
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
116
|
-
|
|
116
|
+
chunkI2NZGVBG_js.Button,
|
|
117
117
|
{
|
|
118
118
|
type: "button",
|
|
119
119
|
outline: true,
|
|
@@ -177,7 +177,7 @@ function OutputSchemaBuilder({ value, onChange, depth = 0 }) {
|
|
|
177
177
|
},
|
|
178
178
|
index
|
|
179
179
|
)),
|
|
180
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
180
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkI2NZGVBG_js.Button, { type: "button", outline: true, onClick: addField, children: "+ Add field" })
|
|
181
181
|
] })
|
|
182
182
|
] });
|
|
183
183
|
}
|
|
@@ -200,7 +200,7 @@ function FieldEditor({
|
|
|
200
200
|
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: [
|
|
201
201
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[1fr_140px_auto_auto] items-end gap-2", children: [
|
|
202
202
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
203
|
-
|
|
203
|
+
chunkI2NZGVBG_js.FormInput,
|
|
204
204
|
{
|
|
205
205
|
label: "Name",
|
|
206
206
|
value: field.name,
|
|
@@ -209,7 +209,7 @@ function FieldEditor({
|
|
|
209
209
|
}
|
|
210
210
|
),
|
|
211
211
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
212
|
-
|
|
212
|
+
chunkI2NZGVBG_js.FormSelect,
|
|
213
213
|
{
|
|
214
214
|
label: "Type",
|
|
215
215
|
value: field.type,
|
|
@@ -229,10 +229,10 @@ function FieldEditor({
|
|
|
229
229
|
),
|
|
230
230
|
"Required"
|
|
231
231
|
] }),
|
|
232
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
232
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkI2NZGVBG_js.Button, { type: "button", plain: true, onClick: onRemove, children: "Remove" })
|
|
233
233
|
] }),
|
|
234
234
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
235
|
-
|
|
235
|
+
chunkI2NZGVBG_js.FormInput,
|
|
236
236
|
{
|
|
237
237
|
label: "Description (optional)",
|
|
238
238
|
value: field.description,
|
|
@@ -325,7 +325,7 @@ function OutputCard({ label, value }) {
|
|
|
325
325
|
function AgentProfileHeader({ agent, models, t, selectedModelId, setSelectedModelId, selectedFramework, temperature, setTemperature, elo, setElo, onChanged }) {
|
|
326
326
|
const modelName = models.find((model) => model.id === selectedModelId)?.name ?? selectedModelId ?? "\u2014";
|
|
327
327
|
const avatarUrl = agent.avatar;
|
|
328
|
-
const frameworkMeta =
|
|
328
|
+
const frameworkMeta = chunkEFOXN3LC_js.getFrameworkMeta(selectedFramework);
|
|
329
329
|
const tierInfo = getEloTier(elo);
|
|
330
330
|
const difficultyConfig = {
|
|
331
331
|
beginner: { color: "bg-cyan-100 text-cyan-700 dark:bg-cyan-900/30 dark:text-cyan-400", labelKey: "agentDrawer.tierBeginner" },
|
|
@@ -601,13 +601,13 @@ function AgentCapabilityCard({ elo, setElo, models, selectedModelId, setSelected
|
|
|
601
601
|
] });
|
|
602
602
|
}
|
|
603
603
|
function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFramework, setSelectedFramework, markDirty, connectedProviderTypes }) {
|
|
604
|
-
const frameworkKeys = Object.keys(
|
|
604
|
+
const frameworkKeys = Object.keys(chunkEFOXN3LC_js.FRAMEWORK_META);
|
|
605
605
|
const hasProviderConstraints = connectedProviderTypes.length > 0;
|
|
606
|
-
const compatibleModels =
|
|
606
|
+
const compatibleModels = chunkEFOXN3LC_js.getCompatibleModels(models, selectedFramework);
|
|
607
607
|
const handleFrameworkChange = react.useCallback((newFramework) => {
|
|
608
608
|
setSelectedFramework(newFramework);
|
|
609
|
-
if (!
|
|
610
|
-
const compatible =
|
|
609
|
+
if (!chunkEFOXN3LC_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
|
|
610
|
+
const compatible = chunkEFOXN3LC_js.getCompatibleModels(models, newFramework);
|
|
611
611
|
if (compatible.length > 0) {
|
|
612
612
|
setSelectedModelId(compatible[0].id);
|
|
613
613
|
}
|
|
@@ -618,10 +618,10 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
|
|
|
618
618
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
619
619
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-gray-500 dark:text-gray-400", children: t("agentDrawer.framework") }),
|
|
620
620
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1.5", children: frameworkKeys.map((key) => {
|
|
621
|
-
const meta =
|
|
621
|
+
const meta = chunkEFOXN3LC_js.FRAMEWORK_META[key];
|
|
622
622
|
const isSelected = key === selectedFramework;
|
|
623
|
-
const compatCount =
|
|
624
|
-
const isCompatibleWithProviders = !hasProviderConstraints ||
|
|
623
|
+
const compatCount = chunkEFOXN3LC_js.getCompatibleModels(models, key).length;
|
|
624
|
+
const isCompatibleWithProviders = !hasProviderConstraints || chunkEFOXN3LC_js.isFrameworkCompatibleWithProviders(key, connectedProviderTypes);
|
|
625
625
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
626
626
|
"button",
|
|
627
627
|
{
|
|
@@ -653,7 +653,7 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
|
|
|
653
653
|
] }),
|
|
654
654
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-2", children: models.map((model) => {
|
|
655
655
|
const isSelected = model.id === selectedModelId;
|
|
656
|
-
const isCompatible =
|
|
656
|
+
const isCompatible = chunkEFOXN3LC_js.isModelCompatibleWithFramework(model.id, selectedFramework);
|
|
657
657
|
const { IconComponent, color, providerLabel } = getModelIcon(model.id);
|
|
658
658
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
659
659
|
"button",
|
|
@@ -777,7 +777,7 @@ function PromptTab({
|
|
|
777
777
|
] });
|
|
778
778
|
}
|
|
779
779
|
function ResultsTab({ agentId, t }) {
|
|
780
|
-
const nodeResults =
|
|
780
|
+
const nodeResults = chunkEFOXN3LC_js.useWorkflowStore((state) => state.nodeResults);
|
|
781
781
|
const agentResult = react.useMemo(() => {
|
|
782
782
|
return nodeResults[agentId] ?? null;
|
|
783
783
|
}, [nodeResults, agentId]);
|
|
@@ -867,10 +867,10 @@ function ModelsTab({ modelProviders, selectedProviderId, onSelectProvider, model
|
|
|
867
867
|
const providerModels = modelsByProvider.find((p) => p.provider.id === selectedProviderId);
|
|
868
868
|
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") });
|
|
869
869
|
const compatibleModels = providerModels.models.filter(
|
|
870
|
-
(m) =>
|
|
870
|
+
(m) => chunkEFOXN3LC_js.isModelCompatibleWithFramework(m.id, agentFramework)
|
|
871
871
|
);
|
|
872
872
|
const incompatibleModels = providerModels.models.filter(
|
|
873
|
-
(m) => !
|
|
873
|
+
(m) => !chunkEFOXN3LC_js.isModelCompatibleWithFramework(m.id, agentFramework)
|
|
874
874
|
);
|
|
875
875
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
876
876
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-gray-500 dark:text-gray-400", children: t("agentDrawer.selectModel") }),
|
|
@@ -943,7 +943,7 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
|
|
|
943
943
|
] }),
|
|
944
944
|
tool.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: tool.description }),
|
|
945
945
|
tool.compatibleFrameworks && tool.compatibleFrameworks.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-1 flex flex-wrap gap-0.5", children: tool.compatibleFrameworks.map((framework) => {
|
|
946
|
-
const meta =
|
|
946
|
+
const meta = chunkEFOXN3LC_js.getFrameworkMeta(framework);
|
|
947
947
|
const isCurrentFw = framework === agentFramework;
|
|
948
948
|
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: [
|
|
949
949
|
/* @__PURE__ */ jsxRuntime.jsx(meta.IconComponent, { className: "h-2.5 w-2.5" }),
|
|
@@ -960,7 +960,7 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
|
|
|
960
960
|
event.stopPropagation();
|
|
961
961
|
},
|
|
962
962
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
963
|
-
|
|
963
|
+
chunkI2NZGVBG_js.ToggleSwitch,
|
|
964
964
|
{
|
|
965
965
|
checked: isEnabled,
|
|
966
966
|
onChange: () => onToggle(tool.agentToolId),
|
|
@@ -1119,9 +1119,9 @@ function AdvancedTab({
|
|
|
1119
1119
|
}
|
|
1120
1120
|
function AgentModal({ onSaved, onPersist }) {
|
|
1121
1121
|
const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
|
|
1122
|
-
const activeModal =
|
|
1123
|
-
const agentData =
|
|
1124
|
-
const closeModal =
|
|
1122
|
+
const activeModal = chunkEFOXN3LC_js.useModalStore((s) => s.activeModal);
|
|
1123
|
+
const agentData = chunkEFOXN3LC_js.useModalStore((s) => s.agentData);
|
|
1124
|
+
const closeModal = chunkEFOXN3LC_js.useModalStore((s) => s.closeModal);
|
|
1125
1125
|
const open = activeModal === "agent";
|
|
1126
1126
|
const agent = agentData?.agent ?? null;
|
|
1127
1127
|
const models = agentData?.models ?? [];
|
|
@@ -1283,7 +1283,7 @@ function AgentModal({ onSaved, onPersist }) {
|
|
|
1283
1283
|
)
|
|
1284
1284
|
] });
|
|
1285
1285
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1286
|
-
|
|
1286
|
+
chunkI2NZGVBG_js.GlassModal,
|
|
1287
1287
|
{
|
|
1288
1288
|
open,
|
|
1289
1289
|
onClose: handleClose,
|
|
@@ -1471,7 +1471,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1471
1471
|
const markDirty = useSubworkflowStore((s) => s.markDirty);
|
|
1472
1472
|
const markSaved = useSubworkflowStore((s) => s.markSaved);
|
|
1473
1473
|
const closeModal = useSubworkflowStore((s) => s.closeModal);
|
|
1474
|
-
const agentBehind =
|
|
1474
|
+
const agentBehind = chunkEFOXN3LC_js.useModalStore((s) => s.activeModal === "agent" ? s.agentData?.agent?.name : null);
|
|
1475
1475
|
const isCreateMode = !tool?.toolId;
|
|
1476
1476
|
const initialGraph = react.useMemo(() => {
|
|
1477
1477
|
const config = tool?.config;
|
|
@@ -1500,9 +1500,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1500
1500
|
}, [tool, onSaved, name, category, description, timeoutMs, latestGraphRef, markSaved]);
|
|
1501
1501
|
if (!tool) return null;
|
|
1502
1502
|
const categoryKey = category ?? "external";
|
|
1503
|
-
const gradient = tool.color ??
|
|
1504
|
-
const categoryPill =
|
|
1505
|
-
const IconComponent =
|
|
1503
|
+
const gradient = tool.color ?? chunkEFOXN3LC_js.CATEGORY_COLORS[categoryKey] ?? chunkEFOXN3LC_js.CATEGORY_COLORS.external;
|
|
1504
|
+
const categoryPill = chunkEFOXN3LC_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunkEFOXN3LC_js.CATEGORY_PILL_COLORS.external;
|
|
1505
|
+
const IconComponent = chunkEFOXN3LC_js.ICON_MAP[tool.icon ?? ""] ?? outline.ArrowPathRoundedSquareIcon;
|
|
1506
1506
|
const graph = latestGraphRef.current;
|
|
1507
1507
|
const startNode = graph.nodes.find((n) => n.type === "start");
|
|
1508
1508
|
const endNode = graph.nodes.find((n) => n.type === "end");
|
|
@@ -1535,7 +1535,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1535
1535
|
] })
|
|
1536
1536
|
] });
|
|
1537
1537
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1538
|
-
|
|
1538
|
+
chunkI2NZGVBG_js.GlassModal,
|
|
1539
1539
|
{
|
|
1540
1540
|
open,
|
|
1541
1541
|
onClose: closeModal,
|
|
@@ -1567,7 +1567,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1567
1567
|
{
|
|
1568
1568
|
type: "button",
|
|
1569
1569
|
onClick: () => setCategory(cat),
|
|
1570
|
-
className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${
|
|
1570
|
+
className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${chunkEFOXN3LC_js.CATEGORY_PILL_COLORS[cat] ?? chunkEFOXN3LC_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"}`,
|
|
1571
1571
|
children: cat
|
|
1572
1572
|
},
|
|
1573
1573
|
cat
|
|
@@ -1654,7 +1654,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1654
1654
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto" })
|
|
1655
1655
|
] }),
|
|
1656
1656
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1657
|
-
|
|
1657
|
+
chunkEFOXN3LC_js.WorkflowCanvas,
|
|
1658
1658
|
{
|
|
1659
1659
|
initialGraph,
|
|
1660
1660
|
agents: [],
|
|
@@ -1670,9 +1670,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1670
1670
|
}
|
|
1671
1671
|
function PipelineSettingsModal({ onSave }) {
|
|
1672
1672
|
const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
|
|
1673
|
-
const activeModal =
|
|
1674
|
-
const data =
|
|
1675
|
-
const closeModal =
|
|
1673
|
+
const activeModal = chunkEFOXN3LC_js.useModalStore((s) => s.activeModal);
|
|
1674
|
+
const data = chunkEFOXN3LC_js.useModalStore((s) => s.pipelineSettingsData);
|
|
1675
|
+
const closeModal = chunkEFOXN3LC_js.useModalStore((s) => s.closeModal);
|
|
1676
1676
|
const open = activeModal === "pipeline-settings";
|
|
1677
1677
|
const [nameValue, setNameValue] = react.useState("");
|
|
1678
1678
|
const [descriptionValue, setDescriptionValue] = react.useState("");
|
|
@@ -1734,7 +1734,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1734
1734
|
}
|
|
1735
1735
|
),
|
|
1736
1736
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1737
|
-
|
|
1737
|
+
chunkI2NZGVBG_js.Button,
|
|
1738
1738
|
{
|
|
1739
1739
|
type: "submit",
|
|
1740
1740
|
form: "pipeline-settings-form",
|
|
@@ -1749,7 +1749,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1749
1749
|
)
|
|
1750
1750
|
] });
|
|
1751
1751
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1752
|
-
|
|
1752
|
+
chunkI2NZGVBG_js.GlassModal,
|
|
1753
1753
|
{
|
|
1754
1754
|
open,
|
|
1755
1755
|
onClose: closeModal,
|
|
@@ -1763,7 +1763,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1763
1763
|
onSubmit: handleSubmit,
|
|
1764
1764
|
children: /* @__PURE__ */ jsxRuntime.jsxs("form", { id: "pipeline-settings-form", onSubmit: handleSubmit, className: "space-y-5", children: [
|
|
1765
1765
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1766
|
-
|
|
1766
|
+
chunkI2NZGVBG_js.FormInput,
|
|
1767
1767
|
{
|
|
1768
1768
|
label: t("pipelineName"),
|
|
1769
1769
|
value: nameValue,
|
|
@@ -1773,7 +1773,7 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1773
1773
|
}
|
|
1774
1774
|
),
|
|
1775
1775
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1776
|
-
|
|
1776
|
+
chunkI2NZGVBG_js.FormTextarea,
|
|
1777
1777
|
{
|
|
1778
1778
|
label: t("pipelineDescription"),
|
|
1779
1779
|
value: descriptionValue,
|
|
@@ -1784,12 +1784,12 @@ function PipelineSettingsModal({ onSave }) {
|
|
|
1784
1784
|
),
|
|
1785
1785
|
lifecycleAvailable && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1786
1786
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1787
|
-
|
|
1787
|
+
chunkI2NZGVBG_js.FormInput,
|
|
1788
1788
|
{
|
|
1789
1789
|
label: t("pipelineSlug", { _: "Slug" }),
|
|
1790
1790
|
value: slugValue,
|
|
1791
1791
|
onValueChange: setSlugValue,
|
|
1792
|
-
placeholder: "
|
|
1792
|
+
placeholder: "product-pricing",
|
|
1793
1793
|
hint: t("pipelineSlugHint", {
|
|
1794
1794
|
_: "URL-friendly identifier. Leave blank to use the auto-generated one."
|
|
1795
1795
|
})
|
|
@@ -1911,7 +1911,7 @@ function RunReplayModal({
|
|
|
1911
1911
|
}
|
|
1912
1912
|
),
|
|
1913
1913
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1914
|
-
|
|
1914
|
+
chunkI2NZGVBG_js.Button,
|
|
1915
1915
|
{
|
|
1916
1916
|
type: "submit",
|
|
1917
1917
|
form: "run-replay-form",
|
|
@@ -1926,7 +1926,7 @@ function RunReplayModal({
|
|
|
1926
1926
|
] })
|
|
1927
1927
|
] });
|
|
1928
1928
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1929
|
-
|
|
1929
|
+
chunkI2NZGVBG_js.GlassModal,
|
|
1930
1930
|
{
|
|
1931
1931
|
open,
|
|
1932
1932
|
onClose,
|
|
@@ -2000,7 +2000,7 @@ function RowEditor({
|
|
|
2000
2000
|
]
|
|
2001
2001
|
}
|
|
2002
2002
|
) : isJson ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2003
|
-
|
|
2003
|
+
chunkI2NZGVBG_js.FormTextarea,
|
|
2004
2004
|
{
|
|
2005
2005
|
value: row.value,
|
|
2006
2006
|
onValueChange: (v) => onChange({ value: v }),
|
|
@@ -2008,7 +2008,7 @@ function RowEditor({
|
|
|
2008
2008
|
className: "font-mono"
|
|
2009
2009
|
}
|
|
2010
2010
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
2011
|
-
|
|
2011
|
+
chunkI2NZGVBG_js.FormInput,
|
|
2012
2012
|
{
|
|
2013
2013
|
type: row.kind === "number" ? "number" : "text",
|
|
2014
2014
|
value: row.value,
|
|
@@ -2112,7 +2112,7 @@ function ExecutionTimelinePanel({
|
|
|
2112
2112
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate font-medium text-slate-900 dark:text-white", children: entry.nodeId }),
|
|
2113
2113
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs text-slate-500 dark:text-slate-400", children: entry.nodeType })
|
|
2114
2114
|
] }),
|
|
2115
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2115
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkI2NZGVBG_js.Badge, { color: meta.color, children: [
|
|
2116
2116
|
/* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "mr-1 h-3 w-3" }),
|
|
2117
2117
|
labels[entry.status]
|
|
2118
2118
|
] })
|
|
@@ -2142,7 +2142,7 @@ function NodeInspector({
|
|
|
2142
2142
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "truncate text-base font-semibold text-slate-900 dark:text-white", children: entry.nodeId }),
|
|
2143
2143
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: entry.nodeType })
|
|
2144
2144
|
] }),
|
|
2145
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2145
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkI2NZGVBG_js.Badge, { color: meta.color, children: labels[entry.status] })
|
|
2146
2146
|
] }),
|
|
2147
2147
|
/* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "grid grid-cols-2 gap-3 text-xs text-slate-500 dark:text-slate-400", children: [
|
|
2148
2148
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
@@ -2312,7 +2312,7 @@ function RuleConditionBuilder({ value, onChange, depth = 0 }) {
|
|
|
2312
2312
|
};
|
|
2313
2313
|
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: [
|
|
2314
2314
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2315
|
-
|
|
2315
|
+
chunkI2NZGVBG_js.FormSelect,
|
|
2316
2316
|
{
|
|
2317
2317
|
label: "Operator",
|
|
2318
2318
|
value: value.operator,
|
|
@@ -2335,17 +2335,17 @@ function SimpleEditor({
|
|
|
2335
2335
|
const isTruthy = value.operator === "truthy";
|
|
2336
2336
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2337
2337
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2338
|
-
|
|
2338
|
+
chunkI2NZGVBG_js.FormInput,
|
|
2339
2339
|
{
|
|
2340
2340
|
label: "Field",
|
|
2341
|
-
hint: "Dotted reference into the variable pool \u2014 e.g. `parse-pricing.margin`, `inputs.
|
|
2341
|
+
hint: "Dotted reference into the variable pool \u2014 e.g. `parse-pricing.margin`, `inputs.category`",
|
|
2342
2342
|
value: value.field ?? "",
|
|
2343
2343
|
onValueChange: (field) => onChange({ ...value, field }),
|
|
2344
2344
|
placeholder: "node.path"
|
|
2345
2345
|
}
|
|
2346
2346
|
),
|
|
2347
2347
|
!isTruthy && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2348
|
-
|
|
2348
|
+
chunkI2NZGVBG_js.FormInput,
|
|
2349
2349
|
{
|
|
2350
2350
|
label: "Value",
|
|
2351
2351
|
hint: "Literal. Numeric operators coerce via `as f64`.",
|
|
@@ -2361,7 +2361,7 @@ function ThresholdEditor({
|
|
|
2361
2361
|
}) {
|
|
2362
2362
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-3", children: [
|
|
2363
2363
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2364
|
-
|
|
2364
|
+
chunkI2NZGVBG_js.FormInput,
|
|
2365
2365
|
{
|
|
2366
2366
|
label: "Field",
|
|
2367
2367
|
value: value.field ?? "",
|
|
@@ -2370,7 +2370,7 @@ function ThresholdEditor({
|
|
|
2370
2370
|
}
|
|
2371
2371
|
),
|
|
2372
2372
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2373
|
-
|
|
2373
|
+
chunkI2NZGVBG_js.FormSelect,
|
|
2374
2374
|
{
|
|
2375
2375
|
label: "Direction",
|
|
2376
2376
|
value: value.comparison ?? "gte",
|
|
@@ -2384,7 +2384,7 @@ function ThresholdEditor({
|
|
|
2384
2384
|
}
|
|
2385
2385
|
),
|
|
2386
2386
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2387
|
-
|
|
2387
|
+
chunkI2NZGVBG_js.FormInput,
|
|
2388
2388
|
{
|
|
2389
2389
|
label: "Threshold",
|
|
2390
2390
|
type: "number",
|
|
@@ -2401,7 +2401,7 @@ function RegexEditor({
|
|
|
2401
2401
|
}) {
|
|
2402
2402
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2403
2403
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2404
|
-
|
|
2404
|
+
chunkI2NZGVBG_js.FormInput,
|
|
2405
2405
|
{
|
|
2406
2406
|
label: "Field",
|
|
2407
2407
|
value: value.field ?? "",
|
|
@@ -2410,7 +2410,7 @@ function RegexEditor({
|
|
|
2410
2410
|
}
|
|
2411
2411
|
),
|
|
2412
2412
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2413
|
-
|
|
2413
|
+
chunkI2NZGVBG_js.FormInput,
|
|
2414
2414
|
{
|
|
2415
2415
|
label: "Pattern",
|
|
2416
2416
|
hint: "Rust regex syntax \u2014 `(?i)` etc. supported.",
|
|
@@ -2438,7 +2438,7 @@ function TimeWindowEditor({
|
|
|
2438
2438
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
2439
2439
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2440
2440
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2441
|
-
|
|
2441
|
+
chunkI2NZGVBG_js.FormSelect,
|
|
2442
2442
|
{
|
|
2443
2443
|
label: "Timezone",
|
|
2444
2444
|
value: value.timezone ?? "UTC",
|
|
@@ -2447,7 +2447,7 @@ function TimeWindowEditor({
|
|
|
2447
2447
|
}
|
|
2448
2448
|
),
|
|
2449
2449
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2450
|
-
|
|
2450
|
+
chunkI2NZGVBG_js.FormInput,
|
|
2451
2451
|
{
|
|
2452
2452
|
label: "Timestamp field (optional)",
|
|
2453
2453
|
hint: "Pulls a timestamp from the pool. Leave blank to use the run's wall-clock.",
|
|
@@ -2460,7 +2460,7 @@ function TimeWindowEditor({
|
|
|
2460
2460
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
2461
2461
|
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: [
|
|
2462
2462
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2463
|
-
|
|
2463
|
+
chunkI2NZGVBG_js.FormInput,
|
|
2464
2464
|
{
|
|
2465
2465
|
label: `Start (hour)`,
|
|
2466
2466
|
type: "number",
|
|
@@ -2471,7 +2471,7 @@ function TimeWindowEditor({
|
|
|
2471
2471
|
}
|
|
2472
2472
|
),
|
|
2473
2473
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2474
|
-
|
|
2474
|
+
chunkI2NZGVBG_js.FormInput,
|
|
2475
2475
|
{
|
|
2476
2476
|
label: `End (hour)`,
|
|
2477
2477
|
type: "number",
|
|
@@ -2481,9 +2481,9 @@ function TimeWindowEditor({
|
|
|
2481
2481
|
onValueChange: (raw) => update(index, { endHour: clampHour(raw, 24) })
|
|
2482
2482
|
}
|
|
2483
2483
|
),
|
|
2484
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2484
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkI2NZGVBG_js.Button, { type: "button", plain: true, onClick: () => remove(index), children: "Remove" })
|
|
2485
2485
|
] }, index)),
|
|
2486
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2486
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkI2NZGVBG_js.Button, { type: "button", outline: true, onClick: add, children: "+ Add window" })
|
|
2487
2487
|
] })
|
|
2488
2488
|
] });
|
|
2489
2489
|
}
|
|
@@ -2506,7 +2506,7 @@ function BooleanGroupEditor({
|
|
|
2506
2506
|
});
|
|
2507
2507
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
2508
2508
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2509
|
-
|
|
2509
|
+
chunkI2NZGVBG_js.FormSelect,
|
|
2510
2510
|
{
|
|
2511
2511
|
label: "Combinator",
|
|
2512
2512
|
value: value.combinator ?? "and",
|
|
@@ -2524,9 +2524,9 @@ function BooleanGroupEditor({
|
|
|
2524
2524
|
depth
|
|
2525
2525
|
}
|
|
2526
2526
|
),
|
|
2527
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2 text-right", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2527
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2 text-right", children: /* @__PURE__ */ jsxRuntime.jsx(chunkI2NZGVBG_js.Button, { type: "button", plain: true, onClick: () => remove(index), children: "Remove operand" }) })
|
|
2528
2528
|
] }, index)),
|
|
2529
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2529
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkI2NZGVBG_js.Button, { type: "button", outline: true, onClick: add, children: "+ Add operand" })
|
|
2530
2530
|
] })
|
|
2531
2531
|
] });
|
|
2532
2532
|
}
|
|
@@ -2562,7 +2562,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2562
2562
|
};
|
|
2563
2563
|
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: [
|
|
2564
2564
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2565
|
-
|
|
2565
|
+
chunkI2NZGVBG_js.FormSelect,
|
|
2566
2566
|
{
|
|
2567
2567
|
label: "Action type",
|
|
2568
2568
|
value: type,
|
|
@@ -2572,7 +2572,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2572
2572
|
),
|
|
2573
2573
|
type === "adjust_price" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2574
2574
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2575
|
-
|
|
2575
|
+
chunkI2NZGVBG_js.FormInput,
|
|
2576
2576
|
{
|
|
2577
2577
|
label: "Multiplier",
|
|
2578
2578
|
type: "number",
|
|
@@ -2582,7 +2582,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2582
2582
|
}
|
|
2583
2583
|
),
|
|
2584
2584
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2585
|
-
|
|
2585
|
+
chunkI2NZGVBG_js.FormInput,
|
|
2586
2586
|
{
|
|
2587
2587
|
label: "Reason code",
|
|
2588
2588
|
value: stringParam(params.reason),
|
|
@@ -2592,7 +2592,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2592
2592
|
)
|
|
2593
2593
|
] }),
|
|
2594
2594
|
type === "enforce_min_margin" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2595
|
-
|
|
2595
|
+
chunkI2NZGVBG_js.FormInput,
|
|
2596
2596
|
{
|
|
2597
2597
|
label: "Floor (fraction, e.g. 0.08)",
|
|
2598
2598
|
type: "number",
|
|
@@ -2602,7 +2602,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2602
2602
|
}
|
|
2603
2603
|
),
|
|
2604
2604
|
type === "realign_to_competitor" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2605
|
-
|
|
2605
|
+
chunkI2NZGVBG_js.FormInput,
|
|
2606
2606
|
{
|
|
2607
2607
|
label: "Tolerance (fraction)",
|
|
2608
2608
|
type: "number",
|
|
@@ -2612,7 +2612,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2612
2612
|
}
|
|
2613
2613
|
),
|
|
2614
2614
|
type === "request_manager_approval" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2615
|
-
|
|
2615
|
+
chunkI2NZGVBG_js.FormInput,
|
|
2616
2616
|
{
|
|
2617
2617
|
label: "Approval limit (fraction)",
|
|
2618
2618
|
type: "number",
|
|
@@ -2622,7 +2622,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2622
2622
|
}
|
|
2623
2623
|
),
|
|
2624
2624
|
type === "round_to" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2625
|
-
|
|
2625
|
+
chunkI2NZGVBG_js.FormInput,
|
|
2626
2626
|
{
|
|
2627
2627
|
label: "Step (e.g. 0.009)",
|
|
2628
2628
|
type: "number",
|
|
@@ -2633,7 +2633,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2633
2633
|
),
|
|
2634
2634
|
type === "alert" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2635
2635
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2636
|
-
|
|
2636
|
+
chunkI2NZGVBG_js.FormInput,
|
|
2637
2637
|
{
|
|
2638
2638
|
label: "Channel",
|
|
2639
2639
|
value: stringParam(params.channel),
|
|
@@ -2642,7 +2642,7 @@ function RuleActionBuilder({ value, onChange }) {
|
|
|
2642
2642
|
}
|
|
2643
2643
|
),
|
|
2644
2644
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2645
|
-
|
|
2645
|
+
chunkI2NZGVBG_js.FormInput,
|
|
2646
2646
|
{
|
|
2647
2647
|
label: "Severity",
|
|
2648
2648
|
value: stringParam(params.severity),
|
|
@@ -2680,7 +2680,7 @@ function CustomParamsEditor({
|
|
|
2680
2680
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
2681
2681
|
entries.map(([key, value], index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[1fr_1fr_auto] items-end gap-2", children: [
|
|
2682
2682
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2683
|
-
|
|
2683
|
+
chunkI2NZGVBG_js.FormInput,
|
|
2684
2684
|
{
|
|
2685
2685
|
label: "Key",
|
|
2686
2686
|
value: key,
|
|
@@ -2688,16 +2688,16 @@ function CustomParamsEditor({
|
|
|
2688
2688
|
}
|
|
2689
2689
|
),
|
|
2690
2690
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2691
|
-
|
|
2691
|
+
chunkI2NZGVBG_js.FormInput,
|
|
2692
2692
|
{
|
|
2693
2693
|
label: "Value",
|
|
2694
2694
|
value: String(value ?? ""),
|
|
2695
2695
|
onValueChange: (raw) => update(index, key, raw)
|
|
2696
2696
|
}
|
|
2697
2697
|
),
|
|
2698
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2698
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkI2NZGVBG_js.Button, { type: "button", plain: true, onClick: () => remove(index), children: "Remove" })
|
|
2699
2699
|
] }, index)),
|
|
2700
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2700
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkI2NZGVBG_js.Button, { type: "button", outline: true, onClick: add, children: "+ Add param" })
|
|
2701
2701
|
] });
|
|
2702
2702
|
}
|
|
2703
2703
|
function numberParam(value, fallback) {
|
|
@@ -2727,9 +2727,9 @@ function RuleForm({ value, onChange }) {
|
|
|
2727
2727
|
);
|
|
2728
2728
|
const update = (key, v) => onChange({ ...value, [key]: v });
|
|
2729
2729
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
|
|
2730
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2730
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkI2NZGVBG_js.FormGrid, { children: [
|
|
2731
2731
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2732
|
-
|
|
2732
|
+
chunkI2NZGVBG_js.FormInput,
|
|
2733
2733
|
{
|
|
2734
2734
|
label: "Name",
|
|
2735
2735
|
required: true,
|
|
@@ -2738,7 +2738,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2738
2738
|
}
|
|
2739
2739
|
),
|
|
2740
2740
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2741
|
-
|
|
2741
|
+
chunkI2NZGVBG_js.FormInput,
|
|
2742
2742
|
{
|
|
2743
2743
|
label: "Priority",
|
|
2744
2744
|
type: "number",
|
|
@@ -2748,7 +2748,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2748
2748
|
}
|
|
2749
2749
|
),
|
|
2750
2750
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2751
|
-
|
|
2751
|
+
chunkI2NZGVBG_js.FormSelect,
|
|
2752
2752
|
{
|
|
2753
2753
|
label: "Enabled",
|
|
2754
2754
|
value: value.enabled ? "true" : "false",
|
|
@@ -2760,7 +2760,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2760
2760
|
}
|
|
2761
2761
|
),
|
|
2762
2762
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2763
|
-
|
|
2763
|
+
chunkI2NZGVBG_js.FormTextarea,
|
|
2764
2764
|
{
|
|
2765
2765
|
label: "Description",
|
|
2766
2766
|
rows: 2,
|
|
@@ -2772,7 +2772,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2772
2772
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
|
|
2773
2773
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
2774
2774
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-700 dark:text-slate-200", children: "Condition" }),
|
|
2775
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2775
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkI2NZGVBG_js.Badge, { color: "indigo", children: value.condition.operator })
|
|
2776
2776
|
] }),
|
|
2777
2777
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2778
2778
|
RuleConditionBuilder,
|
|
@@ -2785,7 +2785,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2785
2785
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
|
|
2786
2786
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
2787
2787
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-700 dark:text-slate-200", children: "Action on match" }),
|
|
2788
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2788
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkI2NZGVBG_js.Badge, { color: "fuchsia", children: value.action.type })
|
|
2789
2789
|
] }),
|
|
2790
2790
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2791
2791
|
RuleActionBuilder,
|
|
@@ -2807,7 +2807,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2807
2807
|
),
|
|
2808
2808
|
showAdvanced && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-3 grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
|
|
2809
2809
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2810
|
-
|
|
2810
|
+
chunkI2NZGVBG_js.FormInput,
|
|
2811
2811
|
{
|
|
2812
2812
|
label: "Valid from (ISO 8601)",
|
|
2813
2813
|
type: "datetime-local",
|
|
@@ -2816,7 +2816,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2816
2816
|
}
|
|
2817
2817
|
),
|
|
2818
2818
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2819
|
-
|
|
2819
|
+
chunkI2NZGVBG_js.FormInput,
|
|
2820
2820
|
{
|
|
2821
2821
|
label: "Valid until (ISO 8601)",
|
|
2822
2822
|
type: "datetime-local",
|
|
@@ -2825,7 +2825,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2825
2825
|
}
|
|
2826
2826
|
),
|
|
2827
2827
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2828
|
-
|
|
2828
|
+
chunkI2NZGVBG_js.FormSelect,
|
|
2829
2829
|
{
|
|
2830
2830
|
label: "Status",
|
|
2831
2831
|
value: value.status ?? "active",
|
|
@@ -2834,7 +2834,7 @@ function RuleForm({ value, onChange }) {
|
|
|
2834
2834
|
}
|
|
2835
2835
|
),
|
|
2836
2836
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2837
|
-
|
|
2837
|
+
chunkI2NZGVBG_js.FormInput,
|
|
2838
2838
|
{
|
|
2839
2839
|
label: "Tags (comma-separated)",
|
|
2840
2840
|
value: (value.tags ?? []).join(", "),
|
|
@@ -3019,8 +3019,8 @@ function CollapsibleSection({ title, icon, colorClass, defaultOpen = true, count
|
|
|
3019
3019
|
] });
|
|
3020
3020
|
}
|
|
3021
3021
|
function LogicNodeItemCard({ item, translationFunction }) {
|
|
3022
|
-
const IconComponent =
|
|
3023
|
-
const gradient =
|
|
3022
|
+
const IconComponent = chunkEFOXN3LC_js.LOGIC_ICON_MAP[item.nodeType];
|
|
3023
|
+
const gradient = chunkEFOXN3LC_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-gray-400 to-gray-500";
|
|
3024
3024
|
const defaultConfig = chunkC3H4FM4A_js.createDefaultLogicNodeConfig(item.nodeType);
|
|
3025
3025
|
const configJson = defaultConfig ? JSON.stringify(defaultConfig) : void 0;
|
|
3026
3026
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -3091,7 +3091,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3091
3091
|
[entityTypes, normalizedQuery]
|
|
3092
3092
|
);
|
|
3093
3093
|
const filteredLogicItems = react.useMemo(() => {
|
|
3094
|
-
const visibleByDefault = LOGIC_NODE_ITEMS.filter((item) => !
|
|
3094
|
+
const visibleByDefault = LOGIC_NODE_ITEMS.filter((item) => !chunkEFOXN3LC_js.EXPERIMENTAL_NODE_TYPES.has(item.nodeType));
|
|
3095
3095
|
if (!normalizedQuery) return visibleByDefault;
|
|
3096
3096
|
return visibleByDefault.filter(
|
|
3097
3097
|
(item) => t(item.nameKey).toLowerCase().includes(normalizedQuery) || t(item.descriptionKey).toLowerCase().includes(normalizedQuery)
|
|
@@ -3188,7 +3188,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3188
3188
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: tool.category })
|
|
3189
3189
|
] }),
|
|
3190
3190
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3191
|
-
|
|
3191
|
+
chunkI2NZGVBG_js.ToggleSwitch,
|
|
3192
3192
|
{
|
|
3193
3193
|
checked: Boolean(tool.enabled),
|
|
3194
3194
|
onChange: () => {
|
|
@@ -3229,7 +3229,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3229
3229
|
] })
|
|
3230
3230
|
] }),
|
|
3231
3231
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3232
|
-
|
|
3232
|
+
chunkI2NZGVBG_js.ToggleSwitch,
|
|
3233
3233
|
{
|
|
3234
3234
|
checked: Boolean(rule.enabled),
|
|
3235
3235
|
onChange: () => {
|
|
@@ -3265,8 +3265,8 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3265
3265
|
limit: entity.defaultLimit
|
|
3266
3266
|
});
|
|
3267
3267
|
const dsLogo = getDatasourceLogo(entity.id);
|
|
3268
|
-
const EntityIcon =
|
|
3269
|
-
const entityGradient =
|
|
3268
|
+
const EntityIcon = chunkEFOXN3LC_js.getEntityIcon(entity.id);
|
|
3269
|
+
const entityGradient = chunkEFOXN3LC_js.getEntityGradient(entity.id);
|
|
3270
3270
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3271
3271
|
"div",
|
|
3272
3272
|
{
|
|
@@ -3286,7 +3286,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3286
3286
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3287
3287
|
/* @__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" }),
|
|
3288
3288
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3289
|
-
|
|
3289
|
+
chunkI2NZGVBG_js.ToggleSwitch,
|
|
3290
3290
|
{
|
|
3291
3291
|
checked: true,
|
|
3292
3292
|
onChange: () => {
|
|
@@ -3664,9 +3664,9 @@ function formatDuration3(durationMs) {
|
|
|
3664
3664
|
}
|
|
3665
3665
|
function RunPanel({ open, onClose, onRun, onStop }) {
|
|
3666
3666
|
const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.runPanel");
|
|
3667
|
-
const nodes =
|
|
3668
|
-
const isRunning =
|
|
3669
|
-
const nodeResults =
|
|
3667
|
+
const nodes = chunkEFOXN3LC_js.useWorkflowStore((state) => state.nodes);
|
|
3668
|
+
const isRunning = chunkEFOXN3LC_js.useWorkflowStore((state) => state.isRunning);
|
|
3669
|
+
const nodeResults = chunkEFOXN3LC_js.useWorkflowStore((state) => state.nodeResults);
|
|
3670
3670
|
const startNode = nodes.find((node) => node.type === "start");
|
|
3671
3671
|
const hasEndNode = nodes.some((node) => node.type === "end");
|
|
3672
3672
|
const hasValidStartConfig = Boolean(
|
|
@@ -3968,8 +3968,8 @@ function inferVariables(config, nodeType) {
|
|
|
3968
3968
|
}
|
|
3969
3969
|
function VariableInspector({ open, onClose }) {
|
|
3970
3970
|
const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.variableInspector");
|
|
3971
|
-
const nodes =
|
|
3972
|
-
const edges =
|
|
3971
|
+
const nodes = chunkEFOXN3LC_js.useWorkflowStore((state) => state.nodes);
|
|
3972
|
+
const edges = chunkEFOXN3LC_js.useWorkflowStore((state) => state.edges);
|
|
3973
3973
|
const [expandedNodes, setExpandedNodes] = react.useState(/* @__PURE__ */ new Set());
|
|
3974
3974
|
const toggleNodeExpansion = react.useCallback((nodeId) => {
|
|
3975
3975
|
setExpandedNodes((current) => {
|
|
@@ -4031,8 +4031,8 @@ function VariableInspector({ open, onClose }) {
|
|
|
4031
4031
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-gray-500 dark:text-gray-400", children: translations("noNodes") })
|
|
4032
4032
|
] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-gray-100 dark:divide-gray-800", children: nodeVariableEntries.map((entry) => {
|
|
4033
4033
|
const isExpanded = expandedNodes.has(entry.nodeId);
|
|
4034
|
-
const IconComponent =
|
|
4035
|
-
const gradient =
|
|
4034
|
+
const IconComponent = chunkEFOXN3LC_js.LOGIC_ICON_MAP[entry.nodeType];
|
|
4035
|
+
const gradient = chunkEFOXN3LC_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-gray-400 to-gray-500";
|
|
4036
4036
|
const inputVariables = entry.variables.filter((variable) => variable.direction === "input");
|
|
4037
4037
|
const outputVariables = entry.variables.filter((variable) => variable.direction === "output");
|
|
4038
4038
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": `variable-node-${entry.nodeId}`, children: [
|
|
@@ -4098,7 +4098,7 @@ function RunInputDialog({
|
|
|
4098
4098
|
onRun
|
|
4099
4099
|
}) {
|
|
4100
4100
|
const t = chunkYXN2K77G_js.useTranslations("agents.workflow.runInputDialog");
|
|
4101
|
-
const nodes =
|
|
4101
|
+
const nodes = chunkEFOXN3LC_js.useWorkflowStore((state) => state.nodes);
|
|
4102
4102
|
const [values, setValues] = react.useState({});
|
|
4103
4103
|
const inputVariableNames = react.useMemo(() => {
|
|
4104
4104
|
const storeStartNode = nodes.find((node) => node.type === "start");
|
|
@@ -4125,7 +4125,7 @@ function RunInputDialog({
|
|
|
4125
4125
|
}, [onClose]);
|
|
4126
4126
|
if (!open) return null;
|
|
4127
4127
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4128
|
-
|
|
4128
|
+
chunkI2NZGVBG_js.GlassModal,
|
|
4129
4129
|
{
|
|
4130
4130
|
open,
|
|
4131
4131
|
onClose: handleClose,
|
|
@@ -4136,7 +4136,7 @@ function RunInputDialog({
|
|
|
4136
4136
|
/* @__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: [
|
|
4137
4137
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300", children: variableName }),
|
|
4138
4138
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4139
|
-
|
|
4139
|
+
chunkI2NZGVBG_js.Input,
|
|
4140
4140
|
{
|
|
4141
4141
|
value: values[variableName] ?? "",
|
|
4142
4142
|
onChange: (event) => handleValueChange(variableName, event.target.value),
|
|
@@ -4145,8 +4145,8 @@ function RunInputDialog({
|
|
|
4145
4145
|
)
|
|
4146
4146
|
] }, variableName)) }),
|
|
4147
4147
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-4 flex items-center justify-end gap-2", children: [
|
|
4148
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4149
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4148
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkI2NZGVBG_js.Button, { size: "sm", plain: true, onClick: handleClose, children: t("cancel") }),
|
|
4149
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkI2NZGVBG_js.Button, { size: "sm", gradient: true, onClick: handleSubmit, children: [
|
|
4150
4150
|
/* @__PURE__ */ jsxRuntime.jsx(outline.PlayIcon, { className: "h-3.5 w-3.5", "data-slot": "icon" }),
|
|
4151
4151
|
t("run")
|
|
4152
4152
|
] })
|
|
@@ -4179,8 +4179,8 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
|
|
|
4179
4179
|
const [isLoadingRuns, setIsLoadingRuns] = react.useState(false);
|
|
4180
4180
|
const [selectedRun, setSelectedRun] = react.useState(null);
|
|
4181
4181
|
const [selectedNode, setSelectedNode] = react.useState(null);
|
|
4182
|
-
const isRunning =
|
|
4183
|
-
const nodeResults =
|
|
4182
|
+
const isRunning = chunkEFOXN3LC_js.useWorkflowStore((state) => state.isRunning);
|
|
4183
|
+
const nodeResults = chunkEFOXN3LC_js.useWorkflowStore((state) => state.nodeResults);
|
|
4184
4184
|
const refreshRuns = react.useCallback(async () => {
|
|
4185
4185
|
setIsLoadingRuns(true);
|
|
4186
4186
|
try {
|
|
@@ -4336,7 +4336,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
|
|
|
4336
4336
|
onAutoSaveGraph(graph);
|
|
4337
4337
|
}, [onAutoSaveGraph, onGraphSnapshot]);
|
|
4338
4338
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4339
|
-
|
|
4339
|
+
chunkEFOXN3LC_js.Workspace,
|
|
4340
4340
|
{
|
|
4341
4341
|
...workspaceProps,
|
|
4342
4342
|
onGraphChange: handleGraphChange
|
|
@@ -4344,7 +4344,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
|
|
|
4344
4344
|
);
|
|
4345
4345
|
});
|
|
4346
4346
|
function DynamicIslandConfirm2(props) {
|
|
4347
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4347
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkI2NZGVBG_js.DynamicIslandConfirm, { ...props });
|
|
4348
4348
|
}
|
|
4349
4349
|
var JSON_PREVIEW_LINE_LIMIT = 50;
|
|
4350
4350
|
function DslExportModal({ open, onClose, workflow, graph }) {
|
|
@@ -4398,7 +4398,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
|
|
|
4398
4398
|
}, [jsonString, workflow.name, workflow.version]);
|
|
4399
4399
|
if (!open) return null;
|
|
4400
4400
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4401
|
-
|
|
4401
|
+
chunkI2NZGVBG_js.GlassModal,
|
|
4402
4402
|
{
|
|
4403
4403
|
open,
|
|
4404
4404
|
onClose,
|
|
@@ -4440,7 +4440,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
|
|
|
4440
4440
|
] }),
|
|
4441
4441
|
/* @__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: [
|
|
4442
4442
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4443
|
-
|
|
4443
|
+
chunkI2NZGVBG_js.Button,
|
|
4444
4444
|
{
|
|
4445
4445
|
type: "button",
|
|
4446
4446
|
onClick: handleCopyToClipboard,
|
|
@@ -4457,7 +4457,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
|
|
|
4457
4457
|
}
|
|
4458
4458
|
),
|
|
4459
4459
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4460
|
-
|
|
4460
|
+
chunkI2NZGVBG_js.Button,
|
|
4461
4461
|
{
|
|
4462
4462
|
type: "button",
|
|
4463
4463
|
onClick: handleDownloadJson,
|
|
@@ -4616,7 +4616,7 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4616
4616
|
}, []);
|
|
4617
4617
|
if (!open) return null;
|
|
4618
4618
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4619
|
-
|
|
4619
|
+
chunkI2NZGVBG_js.GlassModal,
|
|
4620
4620
|
{
|
|
4621
4621
|
open,
|
|
4622
4622
|
onClose,
|
|
@@ -4656,7 +4656,7 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4656
4656
|
) : /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": "import-validation-result", children: [
|
|
4657
4657
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4 flex items-center justify-between", children: [
|
|
4658
4658
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: fileName }),
|
|
4659
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4659
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkI2NZGVBG_js.Button, { type: "button", plain: true, size: "sm", onClick: handleReset, children: translations("chooseAnother") })
|
|
4660
4660
|
] }),
|
|
4661
4661
|
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: [
|
|
4662
4662
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
@@ -4684,9 +4684,9 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4684
4684
|
] })
|
|
4685
4685
|
] }) }),
|
|
4686
4686
|
/* @__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: [
|
|
4687
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4687
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkI2NZGVBG_js.Button, { type: "button", onClick: onClose, outline: true, size: "sm", "data-testid": "import-cancel-button", children: translations("cancel") }),
|
|
4688
4688
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4689
|
-
|
|
4689
|
+
chunkI2NZGVBG_js.Button,
|
|
4690
4690
|
{
|
|
4691
4691
|
type: "button",
|
|
4692
4692
|
onClick: handleImport,
|
|
@@ -4707,14 +4707,14 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4707
4707
|
}
|
|
4708
4708
|
|
|
4709
4709
|
// src/astrlabe/store/selectors.ts
|
|
4710
|
-
var useCanUndo = () =>
|
|
4711
|
-
var useCanRedo = () =>
|
|
4712
|
-
var useHasCopied = () =>
|
|
4713
|
-
var useContextMenu = () =>
|
|
4714
|
-
var useEditingNodeId = () =>
|
|
4715
|
-
var useSelectedNodeCount = () =>
|
|
4716
|
-
var useIsRunning = () =>
|
|
4717
|
-
var useNodeResults = () =>
|
|
4710
|
+
var useCanUndo = () => chunkEFOXN3LC_js.useWorkflowStore((state) => state.past.length > 0);
|
|
4711
|
+
var useCanRedo = () => chunkEFOXN3LC_js.useWorkflowStore((state) => state.future.length > 0);
|
|
4712
|
+
var useHasCopied = () => chunkEFOXN3LC_js.useWorkflowStore((state) => state.clipboard !== null);
|
|
4713
|
+
var useContextMenu = () => chunkEFOXN3LC_js.useWorkflowStore((state) => state.contextMenu);
|
|
4714
|
+
var useEditingNodeId = () => chunkEFOXN3LC_js.useWorkflowStore((state) => state.editingNodeId);
|
|
4715
|
+
var useSelectedNodeCount = () => chunkEFOXN3LC_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
|
|
4716
|
+
var useIsRunning = () => chunkEFOXN3LC_js.useWorkflowStore((state) => state.isRunning);
|
|
4717
|
+
var useNodeResults = () => chunkEFOXN3LC_js.useWorkflowStore((state) => state.nodeResults);
|
|
4718
4718
|
var DEFAULT_MAX_HISTORY = 50;
|
|
4719
4719
|
function useUndoRedo(nodes, edges, setNodes, setEdges, maxHistory = DEFAULT_MAX_HISTORY) {
|
|
4720
4720
|
const pastRef = react.useRef([]);
|
|
@@ -5037,5 +5037,5 @@ exports.useNodeResults = useNodeResults;
|
|
|
5037
5037
|
exports.useSelectedNodeCount = useSelectedNodeCount;
|
|
5038
5038
|
exports.useSubworkflowStore = useSubworkflowStore;
|
|
5039
5039
|
exports.useUndoRedo = useUndoRedo;
|
|
5040
|
-
//# sourceMappingURL=chunk-
|
|
5041
|
-
//# sourceMappingURL=chunk-
|
|
5040
|
+
//# sourceMappingURL=chunk-RL35XATZ.js.map
|
|
5041
|
+
//# sourceMappingURL=chunk-RL35XATZ.js.map
|