@datatechsolutions/ui 3.12.1 → 3.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/astrlabe/graph-node.js +6 -6
- package/dist/astrlabe/graph-node.mjs +2 -2
- package/dist/astrlabe/index.js +114 -114
- package/dist/astrlabe/index.mjs +6 -6
- package/dist/astrlabe/workflow-canvas.js +6 -6
- package/dist/astrlabe/workflow-canvas.mjs +5 -5
- package/dist/{chunk-BPMYNE7S.mjs → chunk-3VCSMSJB.mjs} +6 -6
- package/dist/{chunk-BPMYNE7S.mjs.map → chunk-3VCSMSJB.mjs.map} +1 -1
- package/dist/{chunk-OM5NNUD2.mjs → chunk-4MNKVDTJ.mjs} +9 -8
- package/dist/chunk-4MNKVDTJ.mjs.map +1 -0
- package/dist/{chunk-PIIY2Z2O.mjs → chunk-4QCO4CBC.mjs} +4 -4
- package/dist/{chunk-PIIY2Z2O.mjs.map → chunk-4QCO4CBC.mjs.map} +1 -1
- package/dist/{chunk-4D23CQZM.mjs → chunk-4VEQJAXJ.mjs} +6 -6
- package/dist/{chunk-4D23CQZM.mjs.map → chunk-4VEQJAXJ.mjs.map} +1 -1
- package/dist/{chunk-FKRIQYRG.js → chunk-4Z5NZINA.js} +431 -481
- package/dist/chunk-4Z5NZINA.js.map +1 -0
- package/dist/{chunk-Z75CEP4V.js → chunk-54T5F65C.js} +29 -29
- package/dist/{chunk-Z75CEP4V.js.map → chunk-54T5F65C.js.map} +1 -1
- package/dist/{chunk-V3UZCOZI.js → chunk-7IAWXG43.js} +35 -35
- package/dist/{chunk-V3UZCOZI.js.map → chunk-7IAWXG43.js.map} +1 -1
- package/dist/{chunk-PLEWG2L7.js → chunk-AC54BNSK.js} +15 -15
- package/dist/{chunk-PLEWG2L7.js.map → chunk-AC54BNSK.js.map} +1 -1
- package/dist/{chunk-ID55ABBB.js → chunk-B3TA74C4.js} +100 -100
- package/dist/chunk-B3TA74C4.js.map +1 -0
- package/dist/{chunk-5OZTI7TR.js → chunk-CKY2QIRR.js} +6 -6
- package/dist/{chunk-5OZTI7TR.js.map → chunk-CKY2QIRR.js.map} +1 -1
- package/dist/{chunk-EZQ2D47U.js → chunk-CVEI4RQP.js} +4 -4
- package/dist/{chunk-EZQ2D47U.js.map → chunk-CVEI4RQP.js.map} +1 -1
- package/dist/{chunk-NK4H3JWN.mjs → chunk-DJHNSBIR.mjs} +63 -100
- package/dist/chunk-DJHNSBIR.mjs.map +1 -0
- package/dist/{chunk-P4RVGMZL.js → chunk-DTFU3ZTD.js} +5 -33
- package/dist/chunk-DTFU3ZTD.js.map +1 -0
- package/dist/{chunk-BHOT22QL.js → chunk-EBARYRSA.js} +2 -2
- package/dist/{chunk-BHOT22QL.js.map → chunk-EBARYRSA.js.map} +1 -1
- package/dist/{chunk-QGLGQXJE.js → chunk-FV42SSLP.js} +10 -10
- package/dist/chunk-FV42SSLP.js.map +1 -0
- package/dist/{chunk-RT264BD4.mjs → chunk-M4KRQXOT.mjs} +4 -4
- package/dist/{chunk-RT264BD4.mjs.map → chunk-M4KRQXOT.mjs.map} +1 -1
- package/dist/{chunk-WR55H7DH.mjs → chunk-O4RZCDP2.mjs} +2 -2
- package/dist/{chunk-WR55H7DH.mjs.map → chunk-O4RZCDP2.mjs.map} +1 -1
- package/dist/{chunk-VYU2FYDE.js → chunk-PM7A5I3X.js} +146 -183
- package/dist/chunk-PM7A5I3X.js.map +1 -0
- package/dist/{chunk-TDNBO3V7.js → chunk-Q7QPHZOV.js} +74 -74
- package/dist/{chunk-TDNBO3V7.js.map → chunk-Q7QPHZOV.js.map} +1 -1
- package/dist/{chunk-OW5LSEHU.mjs → chunk-QEACOJXX.mjs} +74 -74
- package/dist/chunk-QEACOJXX.mjs.map +1 -0
- package/dist/{chunk-N5GQIT7A.mjs → chunk-RMPXGEFL.mjs} +11 -10
- package/dist/chunk-RMPXGEFL.mjs.map +1 -0
- package/dist/{chunk-QSCWV47U.js → chunk-RPNMDGRA.js} +50 -50
- package/dist/chunk-RPNMDGRA.js.map +1 -0
- package/dist/{chunk-5TLKFOEL.mjs → chunk-RSCRIDMW.mjs} +275 -313
- package/dist/chunk-RSCRIDMW.mjs.map +1 -0
- package/dist/{chunk-XGAPZT4J.js → chunk-RUZPOHJW.js} +48 -47
- package/dist/chunk-RUZPOHJW.js.map +1 -0
- package/dist/{chunk-ULKZGM2T.js → chunk-RWZ2PLMQ.js} +177 -177
- package/dist/chunk-RWZ2PLMQ.js.map +1 -0
- package/dist/{chunk-UVFWKDRO.mjs → chunk-SCGICCQM.mjs} +15 -15
- package/dist/chunk-SCGICCQM.mjs.map +1 -0
- package/dist/{chunk-EDI46QA7.mjs → chunk-TRNDFSM6.mjs} +274 -324
- package/dist/chunk-TRNDFSM6.mjs.map +1 -0
- package/dist/{chunk-LRNVB7MO.js → chunk-ULSG4JLR.js} +6 -6
- package/dist/{chunk-LRNVB7MO.js.map → chunk-ULSG4JLR.js.map} +1 -1
- package/dist/{chunk-MFF37C24.js → chunk-UPWJRCAD.js} +445 -483
- package/dist/chunk-UPWJRCAD.js.map +1 -0
- package/dist/{chunk-RBH723MG.mjs → chunk-UUTTS3VV.mjs} +45 -45
- package/dist/chunk-UUTTS3VV.mjs.map +1 -0
- package/dist/{chunk-MYHBXIO2.js → chunk-VCL5LDS5.js} +42 -41
- package/dist/chunk-VCL5LDS5.js.map +1 -0
- package/dist/{chunk-PLTLRL2V.mjs → chunk-VPRAESA7.mjs} +3 -3
- package/dist/{chunk-PLTLRL2V.mjs.map → chunk-VPRAESA7.mjs.map} +1 -1
- package/dist/{chunk-HTODLUKG.js → chunk-VWZ53TE2.js} +12 -12
- package/dist/{chunk-HTODLUKG.js.map → chunk-VWZ53TE2.js.map} +1 -1
- package/dist/{chunk-3VYD7QL2.mjs → chunk-WX44DAQD.mjs} +9 -9
- package/dist/chunk-WX44DAQD.mjs.map +1 -0
- package/dist/{chunk-DJ33CSGJ.mjs → chunk-XYMHIZ3K.mjs} +5 -33
- package/dist/chunk-XYMHIZ3K.mjs.map +1 -0
- package/dist/{chunk-YXN2K77G.js → chunk-Y5VN4SPH.js} +26 -3
- package/dist/chunk-Y5VN4SPH.js.map +1 -0
- package/dist/{chunk-NQGLSM46.mjs → chunk-Y65X2NHF.mjs} +4 -4
- package/dist/{chunk-NQGLSM46.mjs.map → chunk-Y65X2NHF.mjs.map} +1 -1
- package/dist/{chunk-YYNGXKUE.mjs → chunk-YHD6SJIN.mjs} +15 -15
- package/dist/{chunk-YYNGXKUE.mjs.map → chunk-YHD6SJIN.mjs.map} +1 -1
- package/dist/{chunk-7VJ7CMMT.mjs → chunk-ZEFNBGYI.mjs} +26 -3
- package/dist/chunk-ZEFNBGYI.mjs.map +1 -0
- package/dist/{chunk-WLNY3GVM.mjs → chunk-ZPV7X4ZE.mjs} +7 -7
- package/dist/{chunk-WLNY3GVM.mjs.map → chunk-ZPV7X4ZE.mjs.map} +1 -1
- package/dist/index.js +709 -709
- package/dist/index.mjs +3 -3
- package/dist/lib/i18n-context.d.mts +12 -4
- package/dist/lib/i18n-context.d.ts +12 -4
- package/dist/lib/i18n-context.js +6 -6
- package/dist/lib/i18n-context.mjs +1 -1
- package/dist/platform/admin/index.js +12 -12
- package/dist/platform/admin/index.mjs +6 -6
- package/dist/platform/agents-workspace.js +9 -9
- package/dist/platform/agents-workspace.mjs +8 -8
- package/dist/platform/app-shell.js +5 -5
- package/dist/platform/app-shell.mjs +4 -4
- package/dist/platform/auth/index.js +29 -29
- package/dist/platform/auth/index.mjs +6 -6
- package/dist/platform/billing/index.js +7 -7
- package/dist/platform/billing/index.mjs +5 -5
- package/dist/platform/impersonation/index.js +5 -5
- package/dist/platform/impersonation/index.mjs +4 -4
- package/dist/platform/index.d.mts +1 -1
- package/dist/platform/index.d.ts +1 -1
- package/dist/platform/index.js +112 -112
- package/dist/platform/index.js.map +1 -1
- package/dist/platform/index.mjs +30 -30
- package/dist/platform/index.mjs.map +1 -1
- package/dist/platform/pages/index.d.mts +12 -2
- package/dist/platform/pages/index.d.ts +12 -2
- package/dist/platform/pages/index.js +451 -450
- package/dist/platform/pages/index.js.map +1 -1
- package/dist/platform/pages/index.mjs +51 -50
- package/dist/platform/pages/index.mjs.map +1 -1
- package/dist/platform/settings/index.js +9 -9
- package/dist/platform/settings/index.mjs +8 -8
- package/dist/platform/workflow-canvas-shell.js +7 -7
- package/dist/platform/workflow-canvas-shell.mjs +6 -6
- package/package.json +2 -1
- package/dist/chunk-3VYD7QL2.mjs.map +0 -1
- package/dist/chunk-5TLKFOEL.mjs.map +0 -1
- package/dist/chunk-7VJ7CMMT.mjs.map +0 -1
- package/dist/chunk-DJ33CSGJ.mjs.map +0 -1
- package/dist/chunk-EDI46QA7.mjs.map +0 -1
- package/dist/chunk-FKRIQYRG.js.map +0 -1
- package/dist/chunk-ID55ABBB.js.map +0 -1
- package/dist/chunk-MFF37C24.js.map +0 -1
- package/dist/chunk-MYHBXIO2.js.map +0 -1
- package/dist/chunk-N5GQIT7A.mjs.map +0 -1
- package/dist/chunk-NK4H3JWN.mjs.map +0 -1
- package/dist/chunk-OM5NNUD2.mjs.map +0 -1
- package/dist/chunk-OW5LSEHU.mjs.map +0 -1
- package/dist/chunk-P4RVGMZL.js.map +0 -1
- package/dist/chunk-QGLGQXJE.js.map +0 -1
- package/dist/chunk-QSCWV47U.js.map +0 -1
- package/dist/chunk-RBH723MG.mjs.map +0 -1
- package/dist/chunk-ULKZGM2T.js.map +0 -1
- package/dist/chunk-UVFWKDRO.mjs.map +0 -1
- package/dist/chunk-VYU2FYDE.js.map +0 -1
- package/dist/chunk-XGAPZT4J.js.map +0 -1
- package/dist/chunk-YXN2K77G.js.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
4
|
+
var chunkRWZ2PLMQ_js = require('./chunk-RWZ2PLMQ.js');
|
|
5
|
+
var chunkY5VN4SPH_js = require('./chunk-Y5VN4SPH.js');
|
|
6
|
+
var chunkCVEI4RQP_js = require('./chunk-CVEI4RQP.js');
|
|
7
|
+
var chunkEBARYRSA_js = require('./chunk-EBARYRSA.js');
|
|
8
8
|
var chunk72SWXOD5_js = require('./chunk-72SWXOD5.js');
|
|
9
9
|
var react = require('react');
|
|
10
10
|
var react$1 = require('@xyflow/react');
|
|
@@ -589,7 +589,7 @@ var INSERTABLE_NODES = [
|
|
|
589
589
|
{ nodeType: "speech_transcriber", nameKey: "speechTranscriberNode", subcategory: "AI" }
|
|
590
590
|
];
|
|
591
591
|
function EdgeInsertPopupComponent({ position, onSelect, onClose }) {
|
|
592
|
-
const tWorkflow =
|
|
592
|
+
const tWorkflow = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
593
593
|
const [searchQuery, setSearchQuery] = react.useState("");
|
|
594
594
|
const popupRef = react.useRef(null);
|
|
595
595
|
const inputRef = react.useRef(null);
|
|
@@ -752,7 +752,7 @@ function ConditionalEdgeComponent({
|
|
|
752
752
|
transform: `translate(-50%, -50%) translate(${labelX}px,${labelY}px)`
|
|
753
753
|
},
|
|
754
754
|
"data-testid": `edge-label-${id}`,
|
|
755
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
755
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: labelColor, size: "xs", children: label })
|
|
756
756
|
}
|
|
757
757
|
),
|
|
758
758
|
showControls && !showInsertPopup && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -896,10 +896,10 @@ var DraggableCommandBar = react.memo(function DraggableCommandBar2({
|
|
|
896
896
|
document.addEventListener("keydown", handleKeyDown);
|
|
897
897
|
return () => document.removeEventListener("keydown", handleKeyDown);
|
|
898
898
|
}, [showShortcuts, onCloseShortcuts]);
|
|
899
|
-
const buttonClassName = "rounded-lg p-1.5 text-
|
|
899
|
+
const buttonClassName = "rounded-lg p-1.5 text-slate-600 transition-colors hover:bg-white/40 active:bg-white/60 dark:text-slate-400 dark:hover:bg-white/10 dark:active:bg-white/15";
|
|
900
900
|
const activeButtonClassName = "rounded-lg p-1.5 transition-colors hover:bg-white/40 dark:hover:bg-white/10 text-indigo-600 dark:text-indigo-400";
|
|
901
|
-
const inactiveButtonClassName = "rounded-lg p-1.5 transition-colors hover:bg-white/40 dark:hover:bg-white/10 text-
|
|
902
|
-
const dividerClassName = "mx-0.5 h-4 w-px bg-
|
|
901
|
+
const inactiveButtonClassName = "rounded-lg p-1.5 transition-colors hover:bg-white/40 dark:hover:bg-white/10 text-slate-400 dark:text-slate-500";
|
|
902
|
+
const dividerClassName = "mx-0.5 h-4 w-px bg-slate-400/30 dark:bg-white/10";
|
|
903
903
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
904
904
|
"div",
|
|
905
905
|
{
|
|
@@ -919,7 +919,7 @@ var DraggableCommandBar = react.memo(function DraggableCommandBar2({
|
|
|
919
919
|
{
|
|
920
920
|
className: `${GLASS_CLASS} flex items-center gap-0.5 rounded-2xl px-2 py-1.5`,
|
|
921
921
|
children: [
|
|
922
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mr-0.5 flex cursor-grab items-center px-0.5 active:cursor-grabbing", children: /* @__PURE__ */ jsxRuntime.jsx(outline.Bars2Icon, { className: "h-3.5 w-3.5 text-
|
|
922
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mr-0.5 flex cursor-grab items-center px-0.5 active:cursor-grabbing", children: /* @__PURE__ */ jsxRuntime.jsx(outline.Bars2Icon, { className: "h-3.5 w-3.5 text-slate-400/70 dark:text-slate-500/70" }) }),
|
|
923
923
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
924
924
|
"button",
|
|
925
925
|
{
|
|
@@ -1046,7 +1046,7 @@ var DraggableCommandBar = react.memo(function DraggableCommandBar2({
|
|
|
1046
1046
|
onClick: (event) => event.stopPropagation(),
|
|
1047
1047
|
onPointerDown: (event) => event.stopPropagation(),
|
|
1048
1048
|
children: [
|
|
1049
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-[10px] font-semibold uppercase tracking-wider text-
|
|
1049
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-[10px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400", children: tWorkflow("shortcuts") }),
|
|
1050
1050
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1.5", children: [
|
|
1051
1051
|
{ keys: "V", label: tWorkflow("pointerMode") },
|
|
1052
1052
|
{ keys: "H", label: tWorkflow("handMode") },
|
|
@@ -1068,11 +1068,11 @@ var DraggableCommandBar = react.memo(function DraggableCommandBar2({
|
|
|
1068
1068
|
{ keys: "G", label: tWorkflow("toggleDots") },
|
|
1069
1069
|
{ keys: "M", label: tWorkflow("toggleMinimap") }
|
|
1070
1070
|
].map((shortcut) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
|
|
1071
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[11px] text-
|
|
1071
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[11px] text-slate-600 dark:text-slate-300", children: shortcut.label }),
|
|
1072
1072
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex items-center gap-0.5", children: shortcut.keys.split(" ").map((key) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1073
1073
|
"kbd",
|
|
1074
1074
|
{
|
|
1075
|
-
className: "inline-flex min-w-[20px] items-center justify-center rounded-md bg-white/60 px-1.5 py-0.5 text-[10px] font-medium text-
|
|
1075
|
+
className: "inline-flex min-w-[20px] items-center justify-center rounded-md bg-white/60 px-1.5 py-0.5 text-[10px] font-medium text-slate-500 shadow-sm ring-1 ring-inset ring-slate-300/40 dark:bg-white/10 dark:text-slate-400 dark:ring-white/10",
|
|
1076
1076
|
children: key
|
|
1077
1077
|
},
|
|
1078
1078
|
key
|
|
@@ -1200,24 +1200,24 @@ function getDatasourceLogo(datasourceId, dialect) {
|
|
|
1200
1200
|
}
|
|
1201
1201
|
return null;
|
|
1202
1202
|
}
|
|
1203
|
-
var
|
|
1204
|
-
string: "
|
|
1205
|
-
varchar: "
|
|
1206
|
-
text: "
|
|
1207
|
-
integer: "
|
|
1208
|
-
int: "
|
|
1209
|
-
bigint: "
|
|
1210
|
-
number: "
|
|
1211
|
-
decimal: "
|
|
1212
|
-
float: "
|
|
1213
|
-
boolean: "
|
|
1214
|
-
date: "
|
|
1215
|
-
timestamp: "
|
|
1216
|
-
datetime: "
|
|
1217
|
-
json: "
|
|
1218
|
-
jsonb: "
|
|
1219
|
-
uuid: "
|
|
1220
|
-
array: "
|
|
1203
|
+
var TYPE_BADGE_COLORS = {
|
|
1204
|
+
string: "zinc",
|
|
1205
|
+
varchar: "zinc",
|
|
1206
|
+
text: "zinc",
|
|
1207
|
+
integer: "blue",
|
|
1208
|
+
int: "blue",
|
|
1209
|
+
bigint: "blue",
|
|
1210
|
+
number: "blue",
|
|
1211
|
+
decimal: "indigo",
|
|
1212
|
+
float: "indigo",
|
|
1213
|
+
boolean: "emerald",
|
|
1214
|
+
date: "amber",
|
|
1215
|
+
timestamp: "amber",
|
|
1216
|
+
datetime: "amber",
|
|
1217
|
+
json: "violet",
|
|
1218
|
+
jsonb: "violet",
|
|
1219
|
+
uuid: "teal",
|
|
1220
|
+
array: "pink"
|
|
1221
1221
|
};
|
|
1222
1222
|
var SIDEBAR_SECTIONS = [
|
|
1223
1223
|
{ id: "connection", label: "Connection", icon: outline.CircleStackIcon },
|
|
@@ -1237,7 +1237,7 @@ function DatasourceNodeConfigForm({
|
|
|
1237
1237
|
onLoadSchema,
|
|
1238
1238
|
readOnly = false
|
|
1239
1239
|
}) {
|
|
1240
|
-
const t =
|
|
1240
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.datasourceNodeConfig");
|
|
1241
1241
|
const [activeSectionId, setActiveSectionId] = react.useState("connection");
|
|
1242
1242
|
const [selectedDatasourceId, setSelectedDatasourceId] = react.useState(config.datasourceId ?? "");
|
|
1243
1243
|
const [selectedTable, setSelectedTable] = react.useState(config.table ?? "");
|
|
@@ -1373,7 +1373,7 @@ function DatasourceNodeConfigForm({
|
|
|
1373
1373
|
switch (activeSectionId) {
|
|
1374
1374
|
case "connection":
|
|
1375
1375
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
1376
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-
|
|
1376
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: t("datasourceHelp") }),
|
|
1377
1377
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-2", children: datasources.map((datasource) => {
|
|
1378
1378
|
const isSelected = datasource.id === selectedDatasourceId;
|
|
1379
1379
|
const logo2 = getDatasourceLogo(datasource.id, datasource.dialect);
|
|
@@ -1388,12 +1388,12 @@ function DatasourceNodeConfigForm({
|
|
|
1388
1388
|
}
|
|
1389
1389
|
},
|
|
1390
1390
|
disabled: readOnly && datasource.id !== selectedDatasourceId,
|
|
1391
|
-
className: `flex items-center gap-3 rounded-xl
|
|
1391
|
+
className: `flex items-center gap-3 rounded-xl px-3 py-2.5 text-left transition-all focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 ${isSelected ? "border border-cyan-500/50 bg-cyan-500/5 ring-1 ring-cyan-500/20 dark:border-cyan-400/40 dark:bg-cyan-400/5" : "liquid-surface hover:shadow-sm"}`,
|
|
1392
1392
|
children: [
|
|
1393
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center", children: logo2 ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo2, alt: datasource.dialect, className: "h-7 w-7" }) : /* @__PURE__ */ jsxRuntime.jsx(outline.ServerStackIcon, { className: "h-6 w-6 text-
|
|
1393
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center", children: logo2 ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo2, alt: datasource.dialect, className: "h-7 w-7" }) : /* @__PURE__ */ jsxRuntime.jsx(outline.ServerStackIcon, { className: "h-6 w-6 text-slate-400" }) }),
|
|
1394
1394
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
1395
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-semibold text-
|
|
1396
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-
|
|
1395
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-semibold text-slate-900 dark:text-white", children: datasource.name }),
|
|
1396
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: datasource.dialect })
|
|
1397
1397
|
] }),
|
|
1398
1398
|
isSelected && /* @__PURE__ */ jsxRuntime.jsx(outline.CheckIcon, { className: "h-4 w-4 shrink-0 text-cyan-500 dark:text-cyan-400" })
|
|
1399
1399
|
]
|
|
@@ -1404,10 +1404,10 @@ function DatasourceNodeConfigForm({
|
|
|
1404
1404
|
] });
|
|
1405
1405
|
case "table":
|
|
1406
1406
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
1407
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-
|
|
1408
|
-
!selectedDatasourceId ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "py-8 text-center text-xs text-
|
|
1409
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 border-b border-
|
|
1410
|
-
/* @__PURE__ */ jsxRuntime.jsx(outline.MagnifyingGlassIcon, { className: "h-3.5 w-3.5 text-
|
|
1407
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: t("tableHelp") }),
|
|
1408
|
+
!selectedDatasourceId ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "py-8 text-center text-xs text-slate-400", children: t("selectDatasource") }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-surface rounded-xl border border-white/30 dark:border-white/10", children: [
|
|
1409
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 border-b border-slate-200/50 px-3 py-2 dark:border-white/5", children: [
|
|
1410
|
+
/* @__PURE__ */ jsxRuntime.jsx(outline.MagnifyingGlassIcon, { className: "h-3.5 w-3.5 text-slate-400" }),
|
|
1411
1411
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1412
1412
|
"input",
|
|
1413
1413
|
{
|
|
@@ -1415,13 +1415,13 @@ function DatasourceNodeConfigForm({
|
|
|
1415
1415
|
value: tableSearch,
|
|
1416
1416
|
onChange: (event) => setTableSearch(event.target.value),
|
|
1417
1417
|
placeholder: t("selectTable"),
|
|
1418
|
-
className: "flex-1 bg-transparent text-xs text-
|
|
1418
|
+
className: "flex-1 bg-transparent text-xs text-slate-900 outline-none placeholder:text-slate-400 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:text-white dark:placeholder:text-slate-500"
|
|
1419
1419
|
}
|
|
1420
1420
|
),
|
|
1421
|
-
availableTables.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-
|
|
1421
|
+
availableTables.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-slate-400", children: availableTables.length })
|
|
1422
1422
|
] }),
|
|
1423
1423
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-h-64 overflow-y-auto p-1", children: [
|
|
1424
|
-
filteredTables.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-3 py-6 text-center text-[10px] text-
|
|
1424
|
+
filteredTables.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-3 py-6 text-center text-[10px] text-slate-400", children: t("noColumnsAvailable") }),
|
|
1425
1425
|
filteredTables.map((table) => {
|
|
1426
1426
|
const isSelected = table === selectedTable;
|
|
1427
1427
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -1434,9 +1434,9 @@ function DatasourceNodeConfigForm({
|
|
|
1434
1434
|
setActiveSectionId("columns");
|
|
1435
1435
|
}
|
|
1436
1436
|
},
|
|
1437
|
-
className: `flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-xs transition-colors ${isSelected ? "bg-cyan-500/10 font-semibold text-cyan-700 dark:text-cyan-300" : "text-
|
|
1437
|
+
className: `flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-xs transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 ${isSelected ? "bg-cyan-500/10 font-semibold text-cyan-700 dark:text-cyan-300" : "text-slate-700 hover:bg-slate-100/60 dark:text-slate-300 dark:hover:bg-white/5"}`,
|
|
1438
1438
|
children: [
|
|
1439
|
-
/* @__PURE__ */ jsxRuntime.jsx(outline.TableCellsIcon, { className: "h-3.5 w-3.5 shrink-0 text-
|
|
1439
|
+
/* @__PURE__ */ jsxRuntime.jsx(outline.TableCellsIcon, { className: "h-3.5 w-3.5 shrink-0 text-slate-400" }),
|
|
1440
1440
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: table }),
|
|
1441
1441
|
isSelected && /* @__PURE__ */ jsxRuntime.jsx(outline.CheckIcon, { className: "ml-auto h-3.5 w-3.5 shrink-0 text-cyan-500" })
|
|
1442
1442
|
]
|
|
@@ -1450,7 +1450,7 @@ function DatasourceNodeConfigForm({
|
|
|
1450
1450
|
case "columns":
|
|
1451
1451
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
1452
1452
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
|
|
1453
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-xs text-
|
|
1453
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: [
|
|
1454
1454
|
selectedColumns.length,
|
|
1455
1455
|
"/",
|
|
1456
1456
|
availableColumns.length,
|
|
@@ -1462,14 +1462,14 @@ function DatasourceNodeConfigForm({
|
|
|
1462
1462
|
type: "button",
|
|
1463
1463
|
onClick: () => setSelectedColumns(allSelected ? [] : [...allColumnNames]),
|
|
1464
1464
|
disabled: availableColumns.length === 0,
|
|
1465
|
-
className: "text-[10px] font-semibold text-cyan-600 hover:text-cyan-700 disabled:opacity-40 dark:text-cyan-400",
|
|
1465
|
+
className: "text-[10px] font-semibold text-cyan-600 hover:text-cyan-700 disabled:opacity-40 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:text-cyan-400",
|
|
1466
1466
|
children: allSelected ? t("deselectAll") : t("selectAll")
|
|
1467
1467
|
}
|
|
1468
1468
|
)
|
|
1469
1469
|
] }),
|
|
1470
|
-
!selectedTable ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "py-8 text-center text-xs text-
|
|
1471
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 border-b border-
|
|
1472
|
-
/* @__PURE__ */ jsxRuntime.jsx(outline.MagnifyingGlassIcon, { className: "h-3.5 w-3.5 text-
|
|
1470
|
+
!selectedTable ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "py-8 text-center text-xs text-slate-400", children: t("selectTable") }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-surface rounded-xl border border-white/30 dark:border-white/10", children: [
|
|
1471
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 border-b border-slate-200/50 px-3 py-2 dark:border-white/5", children: [
|
|
1472
|
+
/* @__PURE__ */ jsxRuntime.jsx(outline.MagnifyingGlassIcon, { className: "h-3.5 w-3.5 text-slate-400" }),
|
|
1473
1473
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1474
1474
|
"input",
|
|
1475
1475
|
{
|
|
@@ -1477,15 +1477,15 @@ function DatasourceNodeConfigForm({
|
|
|
1477
1477
|
value: columnSearch,
|
|
1478
1478
|
onChange: (event) => setColumnSearch(event.target.value),
|
|
1479
1479
|
placeholder: "Search columns...",
|
|
1480
|
-
className: "flex-1 bg-transparent text-xs text-
|
|
1480
|
+
className: "flex-1 bg-transparent text-xs text-slate-900 outline-none placeholder:text-slate-400 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:text-white dark:placeholder:text-slate-500"
|
|
1481
1481
|
}
|
|
1482
1482
|
)
|
|
1483
1483
|
] }),
|
|
1484
1484
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-h-64 overflow-y-auto p-1", children: [
|
|
1485
|
-
filteredColumns.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-3 py-6 text-center text-[10px] text-
|
|
1485
|
+
filteredColumns.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-3 py-6 text-center text-[10px] text-slate-400", children: t("noColumnsAvailable") }),
|
|
1486
1486
|
filteredColumns.map((column) => {
|
|
1487
1487
|
const isSelected = selectedColumns.includes(column.name);
|
|
1488
|
-
const
|
|
1488
|
+
const typeBadgeColor = TYPE_BADGE_COLORS[column.type.toLowerCase()] ?? TYPE_BADGE_COLORS.string;
|
|
1489
1489
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1490
1490
|
"button",
|
|
1491
1491
|
{
|
|
@@ -1493,14 +1493,14 @@ function DatasourceNodeConfigForm({
|
|
|
1493
1493
|
onClick: () => {
|
|
1494
1494
|
if (!readOnly) handleToggleColumn(column.name);
|
|
1495
1495
|
},
|
|
1496
|
-
className: `flex w-full items-center gap-2 rounded-lg px-3 py-1.5 text-left transition-colors ${isSelected ? "bg-cyan-500/8 dark:bg-cyan-400/5" : "hover:bg-
|
|
1496
|
+
className: `flex w-full items-center gap-2 rounded-lg px-3 py-1.5 text-left transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 ${isSelected ? "bg-cyan-500/8 dark:bg-cyan-400/5" : "hover:bg-slate-100/60 dark:hover:bg-white/5"}`,
|
|
1497
1497
|
children: [
|
|
1498
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-4 w-4 shrink-0 items-center justify-center rounded border transition-colors ${isSelected ? "border-cyan-500 bg-cyan-500 dark:border-cyan-400 dark:bg-cyan-400" : "border-
|
|
1499
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex-1 truncate text-xs text-
|
|
1498
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-4 w-4 shrink-0 items-center justify-center rounded border transition-colors ${isSelected ? "border-cyan-500 bg-cyan-500 dark:border-cyan-400 dark:bg-cyan-400" : "border-slate-300 dark:border-slate-600"}`, children: isSelected && /* @__PURE__ */ jsxRuntime.jsx(outline.CheckIcon, { className: "h-2.5 w-2.5 text-white" }) }),
|
|
1499
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex-1 truncate text-xs text-slate-900 dark:text-white", children: [
|
|
1500
1500
|
column.name,
|
|
1501
|
-
column.nullable && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-1 text-[9px] text-
|
|
1501
|
+
column.nullable && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-1 text-[9px] text-slate-400", children: "?" })
|
|
1502
1502
|
] }),
|
|
1503
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1503
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: typeBadgeColor, size: "xs", children: column.type })
|
|
1504
1504
|
]
|
|
1505
1505
|
},
|
|
1506
1506
|
column.name
|
|
@@ -1512,13 +1512,13 @@ function DatasourceNodeConfigForm({
|
|
|
1512
1512
|
case "filters":
|
|
1513
1513
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
1514
1514
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
|
|
1515
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-
|
|
1515
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: t("filtersHelp") }),
|
|
1516
1516
|
!readOnly && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1517
1517
|
"button",
|
|
1518
1518
|
{
|
|
1519
1519
|
type: "button",
|
|
1520
1520
|
onClick: handleAddFilter,
|
|
1521
|
-
className: "flex items-center gap-1 text-[10px] font-semibold text-cyan-600 hover:text-cyan-700 dark:text-cyan-400",
|
|
1521
|
+
className: "flex items-center gap-1 text-[10px] font-semibold text-cyan-600 hover:text-cyan-700 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:text-cyan-400",
|
|
1522
1522
|
children: [
|
|
1523
1523
|
/* @__PURE__ */ jsxRuntime.jsx(outline.PlusIcon, { className: "h-3 w-3" }),
|
|
1524
1524
|
t("addFilter")
|
|
@@ -1527,14 +1527,14 @@ function DatasourceNodeConfigForm({
|
|
|
1527
1527
|
)
|
|
1528
1528
|
] }),
|
|
1529
1529
|
filterEntries.length === 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-2 py-8", children: [
|
|
1530
|
-
/* @__PURE__ */ jsxRuntime.jsx(outline.FunnelIcon, { className: "h-8 w-8 text-
|
|
1531
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-
|
|
1530
|
+
/* @__PURE__ */ jsxRuntime.jsx(outline.FunnelIcon, { className: "h-8 w-8 text-slate-300 dark:text-slate-600" }),
|
|
1531
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-400", children: "No filters configured" }),
|
|
1532
1532
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1533
1533
|
"button",
|
|
1534
1534
|
{
|
|
1535
1535
|
type: "button",
|
|
1536
1536
|
onClick: handleAddFilter,
|
|
1537
|
-
className: "flex items-center gap-1 rounded-lg bg-cyan-500/10 px-3 py-1.5 text-[10px] font-semibold text-cyan-600 hover:bg-cyan-500/15 dark:text-cyan-400",
|
|
1537
|
+
className: "flex items-center gap-1 rounded-lg bg-cyan-500/10 px-3 py-1.5 text-[10px] font-semibold text-cyan-600 hover:bg-cyan-500/15 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:text-cyan-400",
|
|
1538
1538
|
children: [
|
|
1539
1539
|
/* @__PURE__ */ jsxRuntime.jsx(outline.PlusIcon, { className: "h-3 w-3" }),
|
|
1540
1540
|
t("addFilter")
|
|
@@ -1544,14 +1544,15 @@ function DatasourceNodeConfigForm({
|
|
|
1544
1544
|
] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-2", children: filterEntries.map((row, index) => {
|
|
1545
1545
|
const currentOp = row.op ?? "eq";
|
|
1546
1546
|
const valueDisplay = Array.isArray(row.value) ? row.value.map(String).join(", ") : row.value == null ? "" : String(row.value);
|
|
1547
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 rounded-xl
|
|
1547
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-surface flex items-center gap-2 rounded-xl px-3 py-2", children: [
|
|
1548
1548
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1549
1549
|
"select",
|
|
1550
1550
|
{
|
|
1551
1551
|
value: row.column,
|
|
1552
1552
|
onChange: (event) => handleUpdateFilterColumn(index, event.target.value),
|
|
1553
1553
|
disabled: readOnly,
|
|
1554
|
-
|
|
1554
|
+
"aria-label": t("columnName"),
|
|
1555
|
+
className: "w-[28%] rounded bg-transparent text-xs text-slate-900 outline-none focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 disabled:opacity-60 dark:text-white",
|
|
1555
1556
|
children: [
|
|
1556
1557
|
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "", children: t("columnName") }),
|
|
1557
1558
|
availableColumns.map((column) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: column.name, children: column.name }, column.name))
|
|
@@ -1564,7 +1565,8 @@ function DatasourceNodeConfigForm({
|
|
|
1564
1565
|
value: currentOp,
|
|
1565
1566
|
onChange: (event) => handleUpdateFilterOp(index, event.target.value),
|
|
1566
1567
|
disabled: readOnly,
|
|
1567
|
-
|
|
1568
|
+
"aria-label": t("filterOperator", { _: "Filter operator" }),
|
|
1569
|
+
className: "w-[18%] rounded bg-white/40 px-1 text-center text-[10px] font-semibold uppercase text-slate-700 outline-none backdrop-blur-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 disabled:opacity-60 dark:bg-white/[0.04] dark:text-slate-200",
|
|
1568
1570
|
title: t("filterOperator", { _: "Filter operator" }),
|
|
1569
1571
|
children: [
|
|
1570
1572
|
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "eq", children: "= (eq)" }),
|
|
@@ -1586,7 +1588,7 @@ function DatasourceNodeConfigForm({
|
|
|
1586
1588
|
onChange: (event) => handleUpdateFilterValue(index, event.target.value),
|
|
1587
1589
|
placeholder: currentOp === "in" ? "comma-separated, e.g. SP, RJ, MG" : t("variableReference"),
|
|
1588
1590
|
readOnly,
|
|
1589
|
-
className: "flex-1 bg-transparent text-xs text-
|
|
1591
|
+
className: "flex-1 bg-transparent text-xs text-slate-900 outline-none placeholder:text-slate-400 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:text-white dark:placeholder:text-slate-500"
|
|
1590
1592
|
}
|
|
1591
1593
|
),
|
|
1592
1594
|
!readOnly && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1594,7 +1596,7 @@ function DatasourceNodeConfigForm({
|
|
|
1594
1596
|
{
|
|
1595
1597
|
type: "button",
|
|
1596
1598
|
onClick: () => handleRemoveFilter(index),
|
|
1597
|
-
className: "shrink-0 rounded-md p-1 text-
|
|
1599
|
+
className: "shrink-0 rounded-md p-1 text-slate-400 transition-colors hover:bg-red-50 hover:text-red-500 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:hover:bg-red-900/20",
|
|
1598
1600
|
children: /* @__PURE__ */ jsxRuntime.jsx(outline.XMarkIcon, { className: "h-3 w-3" })
|
|
1599
1601
|
}
|
|
1600
1602
|
)
|
|
@@ -1604,10 +1606,10 @@ function DatasourceNodeConfigForm({
|
|
|
1604
1606
|
case "output":
|
|
1605
1607
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
|
|
1606
1608
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
1607
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1.5 block text-xs font-medium text-
|
|
1608
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-[10px] text-
|
|
1609
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 rounded-xl
|
|
1610
|
-
/* @__PURE__ */ jsxRuntime.jsx(outline.VariableIcon, { className: "h-4 w-4 text-
|
|
1609
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1.5 block text-xs font-medium text-slate-700 dark:text-slate-300", children: t("outputVariableLabel") }),
|
|
1610
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-[10px] text-slate-500 dark:text-slate-400", children: t("outputVariableHelp") }),
|
|
1611
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "liquid-surface flex items-center gap-2 rounded-xl px-3 py-2.5", children: [
|
|
1612
|
+
/* @__PURE__ */ jsxRuntime.jsx(outline.VariableIcon, { className: "h-4 w-4 text-slate-400" }),
|
|
1611
1613
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1612
1614
|
"input",
|
|
1613
1615
|
{
|
|
@@ -1616,14 +1618,14 @@ function DatasourceNodeConfigForm({
|
|
|
1616
1618
|
onChange: (event) => setOutputVariable(event.target.value),
|
|
1617
1619
|
placeholder: "datasourceResult",
|
|
1618
1620
|
readOnly,
|
|
1619
|
-
className: "flex-1 bg-transparent text-sm text-
|
|
1621
|
+
className: "flex-1 bg-transparent text-sm text-slate-900 outline-none placeholder:text-slate-400 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:text-white dark:placeholder:text-slate-500"
|
|
1620
1622
|
}
|
|
1621
1623
|
)
|
|
1622
1624
|
] })
|
|
1623
1625
|
] }),
|
|
1624
1626
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
1625
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1.5 block text-xs font-medium text-
|
|
1626
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-[10px] text-
|
|
1627
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1.5 block text-xs font-medium text-slate-700 dark:text-slate-300", children: t("limitLabel") }),
|
|
1628
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-[10px] text-slate-500 dark:text-slate-400", children: t("limitHelp") }),
|
|
1627
1629
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1628
1630
|
"input",
|
|
1629
1631
|
{
|
|
@@ -1633,15 +1635,15 @@ function DatasourceNodeConfigForm({
|
|
|
1633
1635
|
min: 1,
|
|
1634
1636
|
max: 1e4,
|
|
1635
1637
|
readOnly,
|
|
1636
|
-
className: "w-32 rounded-xl
|
|
1638
|
+
className: "liquid-surface w-32 rounded-xl px-3 py-2.5 text-sm text-slate-900 outline-none focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:text-white"
|
|
1637
1639
|
}
|
|
1638
1640
|
)
|
|
1639
1641
|
] }),
|
|
1640
1642
|
selectedDatasource && selectedTable && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-xl border border-cyan-500/20 bg-cyan-500/5 p-3 dark:border-cyan-400/15 dark:bg-cyan-400/5", children: [
|
|
1641
1643
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[10px] font-semibold uppercase tracking-wider text-cyan-600 dark:text-cyan-400 mb-2", children: "Summary" }),
|
|
1642
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1 text-xs text-
|
|
1644
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1 text-xs text-slate-600 dark:text-slate-300", children: [
|
|
1643
1645
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
|
|
1644
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
1646
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-400", children: "Source:" }),
|
|
1645
1647
|
" ",
|
|
1646
1648
|
selectedDatasource.name,
|
|
1647
1649
|
" (",
|
|
@@ -1649,29 +1651,29 @@ function DatasourceNodeConfigForm({
|
|
|
1649
1651
|
")"
|
|
1650
1652
|
] }),
|
|
1651
1653
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
|
|
1652
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
1654
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-400", children: "Table:" }),
|
|
1653
1655
|
" ",
|
|
1654
1656
|
selectedTable
|
|
1655
1657
|
] }),
|
|
1656
1658
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
|
|
1657
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
1659
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-400", children: "Columns:" }),
|
|
1658
1660
|
" ",
|
|
1659
1661
|
selectedColumns.length,
|
|
1660
1662
|
" of ",
|
|
1661
1663
|
availableColumns.length
|
|
1662
1664
|
] }),
|
|
1663
1665
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
|
|
1664
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
1666
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-400", children: "Filters:" }),
|
|
1665
1667
|
" ",
|
|
1666
1668
|
filterEntries.length
|
|
1667
1669
|
] }),
|
|
1668
1670
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
|
|
1669
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
1671
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-400", children: "Limit:" }),
|
|
1670
1672
|
" ",
|
|
1671
1673
|
limit
|
|
1672
1674
|
] }),
|
|
1673
1675
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
|
|
1674
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
1676
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-slate-400", children: "Output:" }),
|
|
1675
1677
|
" ",
|
|
1676
1678
|
outputVariable || "\u2014"
|
|
1677
1679
|
] })
|
|
@@ -1684,7 +1686,7 @@ function DatasourceNodeConfigForm({
|
|
|
1684
1686
|
}
|
|
1685
1687
|
const logo = getDatasourceLogo(selectedDatasourceId, selectedDatasource?.dialect);
|
|
1686
1688
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1687
|
-
|
|
1689
|
+
chunkRWZ2PLMQ_js.GlassModal,
|
|
1688
1690
|
{
|
|
1689
1691
|
open,
|
|
1690
1692
|
onClose: onCancel,
|
|
@@ -1699,8 +1701,8 @@ function DatasourceNodeConfigForm({
|
|
|
1699
1701
|
onSectionChange: setActiveSectionId
|
|
1700
1702
|
},
|
|
1701
1703
|
footer: readOnly ? void 0 : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-end gap-2 px-6 py-3", children: [
|
|
1702
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1703
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1704
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { outline: true, onClick: onCancel, children: t("cancel") }),
|
|
1705
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { color: "cyan", onClick: handleSave, disabled: !canSave, children: t("save") })
|
|
1704
1706
|
] }),
|
|
1705
1707
|
children: renderSection()
|
|
1706
1708
|
}
|
|
@@ -1911,23 +1913,23 @@ function NodeInteractiveCard({
|
|
|
1911
1913
|
);
|
|
1912
1914
|
}
|
|
1913
1915
|
function NodeIconBubble({ tone, children }) {
|
|
1914
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1916
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkCVEI4RQP_js.GraphNodeIconBubble, { className: `bg-gradient-to-br ${LOGIC_NODE_GRADIENTS[tone]}`, children });
|
|
1915
1917
|
}
|
|
1916
1918
|
function NodeCardHeader({ icon, title, description, compact = false, iconClassName }) {
|
|
1917
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1919
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkCVEI4RQP_js.GraphNodeHeader, { icon, title, description, compact, iconClassName });
|
|
1918
1920
|
}
|
|
1919
1921
|
function NodeCardMeta({ compact = false, children }) {
|
|
1920
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1922
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkCVEI4RQP_js.GraphNodeMeta, { compact, children });
|
|
1921
1923
|
}
|
|
1922
1924
|
function NodeCardBadge({ children, className, tone, soft = false }) {
|
|
1923
1925
|
if (tone) {
|
|
1924
1926
|
const toneClass = soft ? LOGIC_NODE_BADGE_SOFT_COLORS[tone] : LOGIC_NODE_BADGE_COLORS[tone];
|
|
1925
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1927
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkCVEI4RQP_js.GraphNodeBadge, { className: `inline-flex items-center rounded-full px-2 py-0.5 text-[10px] ${soft ? "font-medium" : "font-semibold"} ${toneClass}`, children });
|
|
1926
1928
|
}
|
|
1927
1929
|
if (className) {
|
|
1928
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1930
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkCVEI4RQP_js.GraphNodeBadge, { className, children });
|
|
1929
1931
|
}
|
|
1930
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1932
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", children });
|
|
1931
1933
|
}
|
|
1932
1934
|
function NodeCardDeleteAction({ nodeId, onDelete }) {
|
|
1933
1935
|
if (!onDelete) return null;
|
|
@@ -2060,14 +2062,14 @@ function NodeRunningIndicatorComponent({ nodeId }) {
|
|
|
2060
2062
|
}
|
|
2061
2063
|
var NodeRunningIndicator = react.memo(NodeRunningIndicatorComponent);
|
|
2062
2064
|
var AgentFlowNode = react.memo(function AgentFlowNode2({ id, data, selected }) {
|
|
2063
|
-
const t =
|
|
2065
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents");
|
|
2064
2066
|
const isCompact = data.displayMode === "compact";
|
|
2065
2067
|
if (!data.agent?.name) {
|
|
2066
2068
|
const agentLabel = data.label;
|
|
2067
2069
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2068
2070
|
/* @__PURE__ */ jsxRuntime.jsx(NodeRunningIndicator, { nodeId: id }),
|
|
2069
|
-
/* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-
|
|
2070
|
-
/* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-
|
|
2071
|
+
/* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-slate-400 dark:!bg-slate-500" }),
|
|
2072
|
+
/* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-slate-400 dark:!bg-slate-500" }),
|
|
2071
2073
|
/* @__PURE__ */ jsxRuntime.jsx(NodeCard, { variant: "error", nodeType: "agent", width: "w-[320px]", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2072
2074
|
NodeCardHeader,
|
|
2073
2075
|
{
|
|
@@ -2085,41 +2087,41 @@ var AgentFlowNode = react.memo(function AgentFlowNode2({ id, data, selected }) {
|
|
|
2085
2087
|
const frameworkMeta = getFrameworkMeta(data.agent.framework);
|
|
2086
2088
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2087
2089
|
/* @__PURE__ */ jsxRuntime.jsx(NodeRunningIndicator, { nodeId: id }),
|
|
2088
|
-
/* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-
|
|
2089
|
-
/* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-
|
|
2090
|
+
/* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-slate-400 dark:!bg-slate-500" }),
|
|
2091
|
+
/* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-slate-400 dark:!bg-slate-500" }),
|
|
2090
2092
|
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", onClick: () => data.onSelect(agentId), className: "w-full text-left", children: /* @__PURE__ */ jsxRuntime.jsxs(NodeCard, { compact: isCompact, selected, nodeType: "agent", width: "w-[320px]", children: [
|
|
2091
2093
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
2092
2094
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex-shrink-0", children: [
|
|
2093
|
-
data.agent.avatar ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: data.agent.avatar, alt: data.agent.name, className: "h-11 w-11 rounded-full bg-white shadow-sm ring-1 ring-
|
|
2094
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute -bottom-0.5 -right-0.5 flex h-4 w-4 items-center justify-center rounded-full bg-indigo-500 ring-2 ring-white dark:ring-
|
|
2095
|
+
data.agent.avatar ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: data.agent.avatar, alt: data.agent.name, className: "h-11 w-11 rounded-full bg-white shadow-sm ring-1 ring-slate-200/50 dark:bg-slate-800 dark:ring-white/10" }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-full bg-gradient-to-br from-indigo-500/25 to-purple-500/25 ring-1 ring-indigo-500/30", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-6 w-6 text-indigo-500 dark:text-indigo-300" }) }),
|
|
2096
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute -bottom-0.5 -right-0.5 flex h-4 w-4 items-center justify-center rounded-full bg-indigo-500 ring-2 ring-white dark:ring-slate-900", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-2.5 w-2.5 text-white" }) })
|
|
2095
2097
|
] }),
|
|
2096
2098
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
2097
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "truncate text-sm font-semibold text-
|
|
2098
|
-
!isCompact && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs text-
|
|
2099
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "truncate text-sm font-semibold text-slate-900 dark:text-white", children: data.agent.name }),
|
|
2100
|
+
!isCompact && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs text-slate-500 dark:text-slate-400", children: data.agent.role })
|
|
2099
2101
|
] })
|
|
2100
2102
|
] }),
|
|
2101
2103
|
/* @__PURE__ */ jsxRuntime.jsx(NodeCardMeta, { compact: isCompact, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [
|
|
2102
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2104
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "indigo", size: "xs", children: "Agent" }),
|
|
2103
2105
|
(() => {
|
|
2104
2106
|
const tier = chunk72SWXOD5_js.getAgentTier(Number(data.agent.elo ?? 0));
|
|
2105
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2107
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", className: tier.pillColor, children: tier.key });
|
|
2106
2108
|
})(),
|
|
2107
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2108
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2109
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2109
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", className: frameworkMeta.badgeColor, icon: /* @__PURE__ */ jsxRuntime.jsx(frameworkMeta.IconComponent, { className: "h-3 w-3" }), children: frameworkMeta.label }),
|
|
2110
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "blue", size: "xs", children: data.agent.modelId }),
|
|
2111
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", children: [
|
|
2110
2112
|
"T: ",
|
|
2111
2113
|
data.agent.temperature
|
|
2112
2114
|
] }),
|
|
2113
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2115
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", children: [
|
|
2114
2116
|
"v",
|
|
2115
2117
|
data.agent.activePromptVersion
|
|
2116
2118
|
] }),
|
|
2117
2119
|
data.agentTools && data.agentTools.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2118
2120
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full" }),
|
|
2119
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full items-center gap-1 border-t border-
|
|
2121
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full items-center gap-1 border-t border-slate-200/20 pt-1 dark:border-white/5", children: [
|
|
2120
2122
|
/* @__PURE__ */ jsxRuntime.jsx(outline.CommandLineIcon, { className: "h-3 w-3 shrink-0 text-amber-500 dark:text-amber-400" }),
|
|
2121
2123
|
data.agentTools.slice(0, 3).map((tool) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2122
|
-
|
|
2124
|
+
chunkEBARYRSA_js.Badge,
|
|
2123
2125
|
{
|
|
2124
2126
|
color: tool.enabled ? "amber" : "zinc",
|
|
2125
2127
|
size: "xs",
|
|
@@ -2128,7 +2130,7 @@ var AgentFlowNode = react.memo(function AgentFlowNode2({ id, data, selected }) {
|
|
|
2128
2130
|
},
|
|
2129
2131
|
tool.id
|
|
2130
2132
|
)),
|
|
2131
|
-
data.agentTools.length > 3 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[9px] text-
|
|
2133
|
+
data.agentTools.length > 3 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[9px] text-slate-400 dark:text-slate-500", children: [
|
|
2132
2134
|
"+",
|
|
2133
2135
|
data.agentTools.length - 3
|
|
2134
2136
|
] })
|
|
@@ -2173,7 +2175,7 @@ var CATEGORY_PILL = {
|
|
|
2173
2175
|
custom: "bg-amber-500/15 text-amber-700 dark:bg-amber-500/20 dark:text-amber-300"
|
|
2174
2176
|
};
|
|
2175
2177
|
var AgentToolFlowNode = react.memo(function AgentToolFlowNode2({ id, data, selected }) {
|
|
2176
|
-
const t =
|
|
2178
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
2177
2179
|
const { agentTool, onRemoveFromCanvas } = data;
|
|
2178
2180
|
const isCompact = data.displayMode === "compact";
|
|
2179
2181
|
if (!agentTool?.name) {
|
|
@@ -2216,7 +2218,7 @@ var AgentToolFlowNode = react.memo(function AgentToolFlowNode2({ id, data, selec
|
|
|
2216
2218
|
event.stopPropagation();
|
|
2217
2219
|
},
|
|
2218
2220
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2219
|
-
|
|
2221
|
+
chunkRWZ2PLMQ_js.ToggleSwitch,
|
|
2220
2222
|
{
|
|
2221
2223
|
checked: Boolean(agentTool.enabled),
|
|
2222
2224
|
onChange: () => data.onToggle?.(agentTool),
|
|
@@ -2229,9 +2231,9 @@ var AgentToolFlowNode = react.memo(function AgentToolFlowNode2({ id, data, selec
|
|
|
2229
2231
|
)
|
|
2230
2232
|
] }),
|
|
2231
2233
|
/* @__PURE__ */ jsxRuntime.jsx(NodeCardMeta, { compact: isCompact, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [
|
|
2232
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2233
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2234
|
-
agentTool.parameters && agentTool.parameters.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2234
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "amber", size: "xs", children: t("agentToolNode") }),
|
|
2235
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", className: pill, children: category }),
|
|
2236
|
+
agentTool.parameters && agentTool.parameters.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", children: [
|
|
2235
2237
|
agentTool.parameters.length,
|
|
2236
2238
|
" params"
|
|
2237
2239
|
] }),
|
|
@@ -2256,7 +2258,7 @@ var AgentToolFlowNode = react.memo(function AgentToolFlowNode2({ id, data, selec
|
|
|
2256
2258
|
] });
|
|
2257
2259
|
});
|
|
2258
2260
|
var ToolFlowNode = react.memo(function ToolFlowNode2({ id, data, selected }) {
|
|
2259
|
-
const t =
|
|
2261
|
+
const t = chunkY5VN4SPH_js.useTranslations("admin.tools");
|
|
2260
2262
|
const { tool, onRemoveFromCanvas } = data;
|
|
2261
2263
|
const isCompact = data.displayMode === "compact";
|
|
2262
2264
|
if (!tool?.name) {
|
|
@@ -2299,7 +2301,7 @@ var ToolFlowNode = react.memo(function ToolFlowNode2({ id, data, selected }) {
|
|
|
2299
2301
|
const categoryPill = CATEGORY_PILL_COLORS[categoryKey] ?? CATEGORY_PILL_COLORS.external;
|
|
2300
2302
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2301
2303
|
/* @__PURE__ */ jsxRuntime.jsx(NodeRunningIndicator, { nodeId: id }),
|
|
2302
|
-
/* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-
|
|
2304
|
+
/* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-slate-400 dark:!bg-slate-500" }),
|
|
2303
2305
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2304
2306
|
"button",
|
|
2305
2307
|
{
|
|
@@ -2311,8 +2313,8 @@ var ToolFlowNode = react.memo(function ToolFlowNode2({ id, data, selected }) {
|
|
|
2311
2313
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
2312
2314
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-10 w-10 items-center justify-center rounded-xl bg-gradient-to-br ${gradient} shadow-lg`, children: /* @__PURE__ */ jsxRuntime.jsx(IconComponent, { className: "h-5 w-5 text-white" }) }),
|
|
2313
2315
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
2314
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-
|
|
2315
|
-
!isCompact && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 line-clamp-1 text-xs text-
|
|
2316
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: tool.name }),
|
|
2317
|
+
!isCompact && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 line-clamp-1 text-xs text-slate-500 dark:text-slate-400", children: String(tool.description ?? "") })
|
|
2316
2318
|
] })
|
|
2317
2319
|
] }),
|
|
2318
2320
|
onToggle && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2324,7 +2326,7 @@ var ToolFlowNode = react.memo(function ToolFlowNode2({ id, data, selected }) {
|
|
|
2324
2326
|
event.preventDefault();
|
|
2325
2327
|
},
|
|
2326
2328
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2327
|
-
|
|
2329
|
+
chunkRWZ2PLMQ_js.ToggleSwitch,
|
|
2328
2330
|
{
|
|
2329
2331
|
checked: Boolean(tool.enabled),
|
|
2330
2332
|
onChange: () => onToggle(tool),
|
|
@@ -2338,9 +2340,9 @@ var ToolFlowNode = react.memo(function ToolFlowNode2({ id, data, selected }) {
|
|
|
2338
2340
|
] }),
|
|
2339
2341
|
/* @__PURE__ */ jsxRuntime.jsxs(NodeCardMeta, { compact: isCompact, children: [
|
|
2340
2342
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
2341
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2342
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2343
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-
|
|
2343
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "teal", size: "xs", children: t("nodeType") }),
|
|
2344
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", className: categoryPill, children: tool.category }),
|
|
2345
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: [
|
|
2344
2346
|
String(tool.timeoutMs ?? ""),
|
|
2345
2347
|
"ms"
|
|
2346
2348
|
] })
|
|
@@ -2368,7 +2370,7 @@ var ToolFlowNode = react.memo(function ToolFlowNode2({ id, data, selected }) {
|
|
|
2368
2370
|
] });
|
|
2369
2371
|
});
|
|
2370
2372
|
var RuleFlowNode = react.memo(function RuleFlowNode2({ id, data, selected }) {
|
|
2371
|
-
const t =
|
|
2373
|
+
const t = chunkY5VN4SPH_js.useTranslations("admin.rules");
|
|
2372
2374
|
const { rule, onRemoveFromCanvas } = data;
|
|
2373
2375
|
const isCompact = data.displayMode === "compact";
|
|
2374
2376
|
if (!rule?.action) {
|
|
@@ -2390,18 +2392,18 @@ var RuleFlowNode = react.memo(function RuleFlowNode2({ id, data, selected }) {
|
|
|
2390
2392
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
2391
2393
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-xl bg-gradient-to-br from-violet-400 to-purple-500 shadow-lg", children: /* @__PURE__ */ jsxRuntime.jsx(outline.ScaleIcon, { className: "h-5 w-5 text-white" }) }),
|
|
2392
2394
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
2393
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-
|
|
2394
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs text-
|
|
2395
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: ruleLabel || t("ruleEngine") }),
|
|
2396
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs text-slate-500 dark:text-slate-400", children: t("ruleEngineDescription") })
|
|
2395
2397
|
] })
|
|
2396
2398
|
] }),
|
|
2397
2399
|
!isCompact && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 flex items-center justify-between", children: [
|
|
2398
2400
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
2399
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2400
|
-
contextVariableCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-
|
|
2401
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "violet", size: "xs", children: t("ruleEngine") }),
|
|
2402
|
+
contextVariableCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: [
|
|
2401
2403
|
contextVariableCount,
|
|
2402
2404
|
" vars"
|
|
2403
2405
|
] }),
|
|
2404
|
-
ruleConfig.outputVariable && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-
|
|
2406
|
+
ruleConfig.outputVariable && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: [
|
|
2405
2407
|
"\u2192 ",
|
|
2406
2408
|
ruleConfig.outputVariable
|
|
2407
2409
|
] })
|
|
@@ -2434,7 +2436,7 @@ var RuleFlowNode = react.memo(function RuleFlowNode2({ id, data, selected }) {
|
|
|
2434
2436
|
/* @__PURE__ */ jsxRuntime.jsx(NodeCard, { variant: "error", nodeType: "rule", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
2435
2437
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-xl bg-gradient-to-br from-amber-400 to-orange-500 shadow-lg", children: /* @__PURE__ */ jsxRuntime.jsx(outline.ExclamationTriangleIcon, { className: "h-5 w-5 text-white" }) }),
|
|
2436
2438
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
2437
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-
|
|
2439
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: ruleLabel || t("nodeType") }),
|
|
2438
2440
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs text-amber-600 dark:text-amber-400", children: t("ruleNotFound") })
|
|
2439
2441
|
] })
|
|
2440
2442
|
] }) }),
|
|
@@ -2463,8 +2465,8 @@ var RuleFlowNode = react.memo(function RuleFlowNode2({ id, data, selected }) {
|
|
|
2463
2465
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
2464
2466
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-10 w-10 items-center justify-center rounded-xl bg-gradient-to-br ${gradient} shadow-lg`, children: /* @__PURE__ */ jsxRuntime.jsx(outline.AdjustmentsHorizontalIcon, { className: "h-5 w-5 text-white" }) }),
|
|
2465
2467
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
2466
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-
|
|
2467
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs font-medium text-
|
|
2468
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: rule.name }),
|
|
2469
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs font-medium text-slate-600 dark:text-slate-300", children: adjustmentDisplay })
|
|
2468
2470
|
] })
|
|
2469
2471
|
] }),
|
|
2470
2472
|
onToggle && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2476,7 +2478,7 @@ var RuleFlowNode = react.memo(function RuleFlowNode2({ id, data, selected }) {
|
|
|
2476
2478
|
event.preventDefault();
|
|
2477
2479
|
},
|
|
2478
2480
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2479
|
-
|
|
2481
|
+
chunkRWZ2PLMQ_js.ToggleSwitch,
|
|
2480
2482
|
{
|
|
2481
2483
|
checked: Boolean(rule.enabled),
|
|
2482
2484
|
onChange: () => onToggle(rule),
|
|
@@ -2490,13 +2492,13 @@ var RuleFlowNode = react.memo(function RuleFlowNode2({ id, data, selected }) {
|
|
|
2490
2492
|
] }),
|
|
2491
2493
|
!isCompact && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 flex items-center justify-between", children: [
|
|
2492
2494
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
2493
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2494
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2495
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-
|
|
2495
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "violet", size: "xs", children: t("nodeType") }),
|
|
2496
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", className: typePill, children: adjustmentType }),
|
|
2497
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: [
|
|
2496
2498
|
"P",
|
|
2497
2499
|
String(rule.priority ?? "")
|
|
2498
2500
|
] }),
|
|
2499
|
-
Array.isArray(rule.condition?.categories) && rule.condition.categories.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-
|
|
2501
|
+
Array.isArray(rule.condition?.categories) && rule.condition.categories.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: [
|
|
2500
2502
|
rule.condition.categories.length,
|
|
2501
2503
|
" categories"
|
|
2502
2504
|
] })
|
|
@@ -2524,7 +2526,7 @@ var RuleFlowNode = react.memo(function RuleFlowNode2({ id, data, selected }) {
|
|
|
2524
2526
|
] });
|
|
2525
2527
|
});
|
|
2526
2528
|
var EntityFlowNode = react.memo(function EntityFlowNode2({ id, data, selected }) {
|
|
2527
|
-
const t =
|
|
2529
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
2528
2530
|
const { config, label, onEdit, onRemoveFromCanvas } = data;
|
|
2529
2531
|
const isCompact = data.displayMode === "compact";
|
|
2530
2532
|
if (!config || config.type !== "entity") {
|
|
@@ -2563,20 +2565,20 @@ var EntityFlowNode = react.memo(function EntityFlowNode2({ id, data, selected })
|
|
|
2563
2565
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3", children: [
|
|
2564
2566
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-10 w-10 items-center justify-center rounded-xl bg-gradient-to-br ${gradient} shadow-lg`, children: /* @__PURE__ */ jsxRuntime.jsx(EntityIcon, { className: "h-5 w-5 text-white" }) }),
|
|
2565
2567
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
2566
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-
|
|
2567
|
-
!isCompact && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs text-
|
|
2568
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm font-semibold text-slate-900 dark:text-white", children: label }),
|
|
2569
|
+
!isCompact && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs text-slate-500 dark:text-slate-400", children: data.entity?.label ?? config.entityMasterId })
|
|
2568
2570
|
] })
|
|
2569
2571
|
] }),
|
|
2570
2572
|
/* @__PURE__ */ jsxRuntime.jsxs(NodeCardMeta, { compact: isCompact, children: [
|
|
2571
2573
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
2572
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2573
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2574
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", className: badgeColor, children: t("entityNodeType") }),
|
|
2575
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", className: badgeColor, children: [
|
|
2574
2576
|
fieldCount,
|
|
2575
2577
|
" ",
|
|
2576
2578
|
t("entityFields")
|
|
2577
2579
|
] }),
|
|
2578
|
-
config.limit > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-
|
|
2579
|
-
filterCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-
|
|
2580
|
+
config.limit > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: t("entityLimit", { count: config.limit }) }),
|
|
2581
|
+
filterCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-slate-400 dark:text-slate-500", children: [
|
|
2580
2582
|
filterCount,
|
|
2581
2583
|
" ",
|
|
2582
2584
|
t("entityFilters")
|
|
@@ -2605,7 +2607,7 @@ var EntityFlowNode = react.memo(function EntityFlowNode2({ id, data, selected })
|
|
|
2605
2607
|
] });
|
|
2606
2608
|
});
|
|
2607
2609
|
var StartFlowNode = react.memo(function StartFlowNode2({ id, data, selected }) {
|
|
2608
|
-
const t =
|
|
2610
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
2609
2611
|
const { config, label, onDelete, onEdit } = data;
|
|
2610
2612
|
const isCompact = data.displayMode === "compact";
|
|
2611
2613
|
const variableCount = config?.inputVariables?.length ?? 0;
|
|
@@ -2649,7 +2651,7 @@ var StartFlowNode = react.memo(function StartFlowNode2({ id, data, selected }) {
|
|
|
2649
2651
|
] });
|
|
2650
2652
|
});
|
|
2651
2653
|
var EndFlowNode = react.memo(function EndFlowNode2({ id, data, selected }) {
|
|
2652
|
-
const t =
|
|
2654
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
2653
2655
|
const { config, label, onDelete, onEdit } = data;
|
|
2654
2656
|
const isCompact = data.displayMode === "compact";
|
|
2655
2657
|
const variableCount = config?.outputVariables?.length ?? 0;
|
|
@@ -2693,7 +2695,7 @@ var EndFlowNode = react.memo(function EndFlowNode2({ id, data, selected }) {
|
|
|
2693
2695
|
] });
|
|
2694
2696
|
});
|
|
2695
2697
|
var IfElseFlowNode = react.memo(function IfElseFlowNode2({ id, data, selected }) {
|
|
2696
|
-
const t =
|
|
2698
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
2697
2699
|
const { config, label, onDelete, onEdit } = data;
|
|
2698
2700
|
const isCompact = data.displayMode === "compact";
|
|
2699
2701
|
const conditionCount = config?.conditions?.length ?? 0;
|
|
@@ -2731,8 +2733,8 @@ var IfElseFlowNode = react.memo(function IfElseFlowNode2({ id, data, selected })
|
|
|
2731
2733
|
] }),
|
|
2732
2734
|
/* @__PURE__ */ jsxRuntime.jsx(NodeCardDeleteAction, { nodeId: id, onDelete })
|
|
2733
2735
|
] }),
|
|
2734
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute -right-12 top-1/2 -translate-y-1/2", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2735
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute bottom-[-1.9rem] left-1/2 -translate-x-1/2", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2736
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute -right-12 top-1/2 -translate-y-1/2", children: /* @__PURE__ */ jsxRuntime.jsx(chunkRWZ2PLMQ_js.StatusBadge, { status: "success", label: t("ifBranchLabel"), size: "sm" }) }),
|
|
2737
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute bottom-[-1.9rem] left-1/2 -translate-x-1/2", children: /* @__PURE__ */ jsxRuntime.jsx(chunkRWZ2PLMQ_js.StatusBadge, { status: "error", label: t("elseBranchLabel"), size: "sm" }) })
|
|
2736
2738
|
]
|
|
2737
2739
|
}
|
|
2738
2740
|
),
|
|
@@ -2741,7 +2743,7 @@ var IfElseFlowNode = react.memo(function IfElseFlowNode2({ id, data, selected })
|
|
|
2741
2743
|
] });
|
|
2742
2744
|
});
|
|
2743
2745
|
var CodeFlowNode = react.memo(function CodeFlowNode2({ id, data, selected }) {
|
|
2744
|
-
const t =
|
|
2746
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
2745
2747
|
const { config, label, onDelete, onEdit } = data;
|
|
2746
2748
|
const isCompact = data.displayMode === "compact";
|
|
2747
2749
|
const isScripted = "language" in config;
|
|
@@ -2787,7 +2789,7 @@ var CodeFlowNode = react.memo(function CodeFlowNode2({ id, data, selected }) {
|
|
|
2787
2789
|
] });
|
|
2788
2790
|
});
|
|
2789
2791
|
var HttpRequestFlowNode = react.memo(function HttpRequestFlowNode2({ id, data, selected }) {
|
|
2790
|
-
const t =
|
|
2792
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
2791
2793
|
const { config, label, onDelete, onEdit } = data;
|
|
2792
2794
|
const isCompact = data.displayMode === "compact";
|
|
2793
2795
|
const urlPreview = config.url ? config.url.slice(0, 30) : "";
|
|
@@ -2828,7 +2830,7 @@ var HttpRequestFlowNode = react.memo(function HttpRequestFlowNode2({ id, data, s
|
|
|
2828
2830
|
] });
|
|
2829
2831
|
});
|
|
2830
2832
|
var TemplateTransformFlowNode = react.memo(function TemplateTransformFlowNode2({ id, data, selected }) {
|
|
2831
|
-
const t =
|
|
2833
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
2832
2834
|
const { config, label, onDelete, onEdit } = data;
|
|
2833
2835
|
const isCompact = data.displayMode === "compact";
|
|
2834
2836
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
@@ -2867,7 +2869,7 @@ var TemplateTransformFlowNode = react.memo(function TemplateTransformFlowNode2({
|
|
|
2867
2869
|
] });
|
|
2868
2870
|
});
|
|
2869
2871
|
var IterationFlowNode = react.memo(function IterationFlowNode2({ id, data, selected }) {
|
|
2870
|
-
const t =
|
|
2872
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
2871
2873
|
const { config, label, onDelete, onEdit } = data;
|
|
2872
2874
|
const isCompact = data.displayMode === "compact";
|
|
2873
2875
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
@@ -2912,7 +2914,7 @@ var IterationFlowNode = react.memo(function IterationFlowNode2({ id, data, selec
|
|
|
2912
2914
|
] });
|
|
2913
2915
|
});
|
|
2914
2916
|
var KnowledgeBaseFlowNode = react.memo(function KnowledgeBaseFlowNode2({ id, data, selected }) {
|
|
2915
|
-
const t =
|
|
2917
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
2916
2918
|
const { config, label, onDelete, onEdit } = data;
|
|
2917
2919
|
const isCompact = data.displayMode === "compact";
|
|
2918
2920
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
@@ -2960,7 +2962,7 @@ var KnowledgeBaseFlowNode = react.memo(function KnowledgeBaseFlowNode2({ id, dat
|
|
|
2960
2962
|
] });
|
|
2961
2963
|
});
|
|
2962
2964
|
var AnswerFlowNode = react.memo(function AnswerFlowNode2({ id, data, selected }) {
|
|
2963
|
-
const t =
|
|
2965
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
2964
2966
|
const { config, label, onDelete, onEdit } = data;
|
|
2965
2967
|
const isCompact = data.displayMode === "compact";
|
|
2966
2968
|
const variableCount = config?.outputVariables?.length ?? 0;
|
|
@@ -3004,7 +3006,7 @@ var AnswerFlowNode = react.memo(function AnswerFlowNode2({ id, data, selected })
|
|
|
3004
3006
|
] });
|
|
3005
3007
|
});
|
|
3006
3008
|
var QuestionClassifierFlowNode = react.memo(function QuestionClassifierFlowNode2({ id, data, selected }) {
|
|
3007
|
-
const t =
|
|
3009
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
3008
3010
|
const { config, label, onDelete, onEdit } = data;
|
|
3009
3011
|
const isCompact = data.displayMode === "compact";
|
|
3010
3012
|
const categoryCount = config?.categories?.length ?? 0;
|
|
@@ -3059,7 +3061,7 @@ var QuestionClassifierFlowNode = react.memo(function QuestionClassifierFlowNode2
|
|
|
3059
3061
|
] });
|
|
3060
3062
|
});
|
|
3061
3063
|
var ParameterExtractorFlowNode = react.memo(function ParameterExtractorFlowNode2({ id, data, selected }) {
|
|
3062
|
-
const t =
|
|
3064
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
3063
3065
|
const { config, label, onDelete, onEdit } = data;
|
|
3064
3066
|
const isCompact = data.displayMode === "compact";
|
|
3065
3067
|
const parameterCount = config?.parameters?.length ?? 0;
|
|
@@ -3104,7 +3106,7 @@ var ParameterExtractorFlowNode = react.memo(function ParameterExtractorFlowNode2
|
|
|
3104
3106
|
] });
|
|
3105
3107
|
});
|
|
3106
3108
|
var VariableAssignerFlowNode = react.memo(function VariableAssignerFlowNode2({ id, data, selected }) {
|
|
3107
|
-
const t =
|
|
3109
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
3108
3110
|
const { config, label, onDelete, onEdit } = data;
|
|
3109
3111
|
const isCompact = data.displayMode === "compact";
|
|
3110
3112
|
const assignmentCount = config?.assignments?.length ?? 0;
|
|
@@ -3149,7 +3151,7 @@ var VariableAssignerFlowNode = react.memo(function VariableAssignerFlowNode2({ i
|
|
|
3149
3151
|
] });
|
|
3150
3152
|
});
|
|
3151
3153
|
var VariableAggregatorFlowNode = react.memo(function VariableAggregatorFlowNode2({ id, data, selected }) {
|
|
3152
|
-
const t =
|
|
3154
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
3153
3155
|
const { config, label, onDelete, onEdit } = data;
|
|
3154
3156
|
const isCompact = data.displayMode === "compact";
|
|
3155
3157
|
const inputCount = config?.inputVariables?.length ?? 1;
|
|
@@ -3194,7 +3196,7 @@ var VariableAggregatorFlowNode = react.memo(function VariableAggregatorFlowNode2
|
|
|
3194
3196
|
] });
|
|
3195
3197
|
});
|
|
3196
3198
|
var DocumentExtractorFlowNode = react.memo(function DocumentExtractorFlowNode2({ id, data, selected }) {
|
|
3197
|
-
const t =
|
|
3199
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
3198
3200
|
const { config, label, onDelete, onEdit } = data;
|
|
3199
3201
|
const isCompact = data.displayMode === "compact";
|
|
3200
3202
|
const extractionMode = config.extractionMode;
|
|
@@ -3235,7 +3237,7 @@ var DocumentExtractorFlowNode = react.memo(function DocumentExtractorFlowNode2({
|
|
|
3235
3237
|
] });
|
|
3236
3238
|
});
|
|
3237
3239
|
var ListOperatorFlowNode = react.memo(function ListOperatorFlowNode2({ id, data, selected }) {
|
|
3238
|
-
const t =
|
|
3240
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
3239
3241
|
const { config, label, onDelete, onEdit } = data;
|
|
3240
3242
|
const isCompact = data.displayMode === "compact";
|
|
3241
3243
|
const operationName = config.operation;
|
|
@@ -3276,7 +3278,7 @@ var ListOperatorFlowNode = react.memo(function ListOperatorFlowNode2({ id, data,
|
|
|
3276
3278
|
] });
|
|
3277
3279
|
});
|
|
3278
3280
|
var IterationStartFlowNode = react.memo(function IterationStartFlowNode2({ id, data, selected }) {
|
|
3279
|
-
const t =
|
|
3281
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
3280
3282
|
const { config, label, onDelete, onEdit } = data;
|
|
3281
3283
|
const isCompact = data.displayMode === "compact";
|
|
3282
3284
|
const iteratorVariable = config.iteratorVariable;
|
|
@@ -3338,7 +3340,7 @@ var NOTE_ICON_COLORS = {
|
|
|
3338
3340
|
purple: "text-purple-600 dark:text-purple-400"
|
|
3339
3341
|
};
|
|
3340
3342
|
var NoteFlowNode = react.memo(function NoteFlowNode2({ data, selected }) {
|
|
3341
|
-
const t =
|
|
3343
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
3342
3344
|
const { config } = data;
|
|
3343
3345
|
const [isEditing, setIsEditing] = react.useState(false);
|
|
3344
3346
|
const [noteText, setNoteText] = react.useState(config.text);
|
|
@@ -3432,7 +3434,7 @@ function getDatasourceLogo2(datasourceId, dialect) {
|
|
|
3432
3434
|
return null;
|
|
3433
3435
|
}
|
|
3434
3436
|
var DatasourceFlowNode = react.memo(function DatasourceFlowNode2({ id, data, selected }) {
|
|
3435
|
-
const t =
|
|
3437
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
3436
3438
|
const { config, label, datasource, readOnly = false, onEdit, onRemoveFromCanvas } = data;
|
|
3437
3439
|
const isCompact = data.displayMode === "compact";
|
|
3438
3440
|
if (!config || config.type !== "datasource") {
|
|
@@ -3476,7 +3478,7 @@ var DatasourceFlowNode = react.memo(function DatasourceFlowNode2({ id, data, sel
|
|
|
3476
3478
|
event.preventDefault();
|
|
3477
3479
|
},
|
|
3478
3480
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3479
|
-
|
|
3481
|
+
chunkRWZ2PLMQ_js.ToggleSwitch,
|
|
3480
3482
|
{
|
|
3481
3483
|
checked: true,
|
|
3482
3484
|
onChange: () => {
|
|
@@ -3492,8 +3494,8 @@ var DatasourceFlowNode = react.memo(function DatasourceFlowNode2({ id, data, sel
|
|
|
3492
3494
|
] }),
|
|
3493
3495
|
/* @__PURE__ */ jsxRuntime.jsxs(NodeCardMeta, { compact: isCompact, children: [
|
|
3494
3496
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
3495
|
-
config.dialect && /* @__PURE__ */ jsxRuntime.jsx(
|
|
3496
|
-
readOnly && /* @__PURE__ */ jsxRuntime.jsx(
|
|
3497
|
+
config.dialect && /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "cyan", size: "xs", children: config.dialect }),
|
|
3498
|
+
readOnly && /* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", children: "sample" }),
|
|
3497
3499
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-gray-400 dark:text-gray-500", children: [
|
|
3498
3500
|
columnCount > 0 ? `${columnCount} cols` : null,
|
|
3499
3501
|
filterCount > 0 ? `${filterCount} filters` : null,
|
|
@@ -3585,7 +3587,7 @@ var GROUP_COLORS = {
|
|
|
3585
3587
|
}
|
|
3586
3588
|
};
|
|
3587
3589
|
var GroupFlowNode = react.memo(function GroupFlowNode2({ id, data, selected }) {
|
|
3588
|
-
const translations =
|
|
3590
|
+
const translations = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
3589
3591
|
const { config, label, onEdit, onToggleExpand, onRemoveFromCanvas } = data;
|
|
3590
3592
|
const colorScheme = GROUP_COLORS[config.color] ?? GROUP_COLORS.slate;
|
|
3591
3593
|
const handleToggleExpand = react.useCallback(
|
|
@@ -3622,7 +3624,7 @@ var GroupFlowNode = react.memo(function GroupFlowNode2({ id, data, selected }) {
|
|
|
3622
3624
|
] })
|
|
3623
3625
|
] }),
|
|
3624
3626
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 flex items-center justify-between", children: [
|
|
3625
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3627
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Badge, { color: "zinc", size: "xs", className: colorScheme.text, children: translations("groupNode") }),
|
|
3626
3628
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
|
|
3627
3629
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3628
3630
|
"button",
|
|
@@ -3667,7 +3669,6 @@ var GroupFlowNode = react.memo(function GroupFlowNode2({ id, data, selected }) {
|
|
|
3667
3669
|
"div",
|
|
3668
3670
|
{
|
|
3669
3671
|
className: `group relative h-full w-full overflow-hidden rounded-xl border liquid-surface ${getNodeStateClass(selected, void 0, colorScheme.border)} transition-all`,
|
|
3670
|
-
style: { minWidth: config.width, minHeight: config.height },
|
|
3671
3672
|
children: [
|
|
3672
3673
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3673
3674
|
"div",
|
|
@@ -3784,7 +3785,7 @@ var SpeechTranscriberFlowNode = react.memo(function SpeechTranscriberFlowNode2({
|
|
|
3784
3785
|
/* @__PURE__ */ jsxRuntime.jsx(NodeCardBadge, { tone: "speech_transcriber", children: "Whisper" }),
|
|
3785
3786
|
/* @__PURE__ */ jsxRuntime.jsx(NodeCardBadge, { tone: "speech_transcriber", soft: true, children: model }),
|
|
3786
3787
|
/* @__PURE__ */ jsxRuntime.jsx(NodeCardBadge, { tone: "speech_transcriber", soft: true, children: language }),
|
|
3787
|
-
audioRefPreview && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-[10px] text-
|
|
3788
|
+
audioRefPreview && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: audioRefPreview })
|
|
3788
3789
|
] }),
|
|
3789
3790
|
/* @__PURE__ */ jsxRuntime.jsx(NodeCardDeleteAction, { nodeId: id, onDelete })
|
|
3790
3791
|
] })
|
|
@@ -3795,7 +3796,7 @@ var SpeechTranscriberFlowNode = react.memo(function SpeechTranscriberFlowNode2({
|
|
|
3795
3796
|
] });
|
|
3796
3797
|
});
|
|
3797
3798
|
var DashboardOutputFlowNode = react.memo(function DashboardOutputFlowNode2({ id, data, selected }) {
|
|
3798
|
-
const t =
|
|
3799
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
3799
3800
|
const { config, label, onDelete, onEdit } = data;
|
|
3800
3801
|
const isCompact = data.displayMode === "compact";
|
|
3801
3802
|
const source = config?.dashboardFrom ? `\u2190 ${config.dashboardFrom}` : config?.dashboard ? "inline" : "unset";
|
|
@@ -3841,9 +3842,9 @@ function ConfigFormActions({
|
|
|
3841
3842
|
onSave,
|
|
3842
3843
|
saveDisabled = false
|
|
3843
3844
|
}) {
|
|
3844
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-end gap-2 border-t border-
|
|
3845
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3846
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3845
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-end gap-2 border-t border-slate-200 pt-4 dark:border-slate-700", children: [
|
|
3846
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { type: "button", outline: true, onClick: onCancel, children: cancelLabel }),
|
|
3847
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { type: "button", onClick: onSave, disabled: saveDisabled, children: saveLabel })
|
|
3847
3848
|
] });
|
|
3848
3849
|
}
|
|
3849
3850
|
var COLOR_CLASSES = {
|
|
@@ -3920,7 +3921,7 @@ function VariableListEditor({
|
|
|
3920
3921
|
}
|
|
3921
3922
|
}, [handleAdd]);
|
|
3922
3923
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
3923
|
-
label && /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-
|
|
3924
|
+
label && /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-slate-500 dark:text-slate-400", children: label }),
|
|
3924
3925
|
variables.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 space-y-1", children: variables.map((variable, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3925
3926
|
"div",
|
|
3926
3927
|
{
|
|
@@ -3933,17 +3934,19 @@ function VariableListEditor({
|
|
|
3933
3934
|
type: "text",
|
|
3934
3935
|
value: variable,
|
|
3935
3936
|
onChange: (event) => handleEdit(index, event.target.value),
|
|
3936
|
-
className: `flex-1 rounded-md border-0 bg-transparent px-1 py-0.5 text-sm font-medium text-
|
|
3937
|
+
className: `flex-1 rounded-md border-0 bg-transparent px-1 py-0.5 text-sm font-medium text-slate-900 outline-none ${colors.input} focus:ring-1 dark:text-white`
|
|
3937
3938
|
}
|
|
3938
|
-
) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 text-sm font-medium text-
|
|
3939
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 text-sm font-medium text-slate-900 dark:text-white", children: variable }),
|
|
3939
3940
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3940
|
-
|
|
3941
|
+
chunkEBARYRSA_js.IconButton,
|
|
3941
3942
|
{
|
|
3942
|
-
|
|
3943
|
+
label: `Remove ${variable}`,
|
|
3944
|
+
variant: "ghost",
|
|
3945
|
+
size: "sm",
|
|
3946
|
+
destructive: true,
|
|
3943
3947
|
onClick: () => handleRemove(index),
|
|
3944
|
-
|
|
3945
|
-
"
|
|
3946
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(outline.XMarkIcon, { className: "h-3.5 w-3.5" })
|
|
3948
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.XMarkIcon, { className: "h-3.5 w-3.5" }),
|
|
3949
|
+
className: "shrink-0 opacity-0 transition-opacity group-hover:opacity-100"
|
|
3947
3950
|
}
|
|
3948
3951
|
)
|
|
3949
3952
|
]
|
|
@@ -3960,7 +3963,7 @@ function VariableListEditor({
|
|
|
3960
3963
|
onChange: (event) => setNewVariable(event.target.value),
|
|
3961
3964
|
onKeyDown: handleKeyDown,
|
|
3962
3965
|
placeholder,
|
|
3963
|
-
className: "flex-1 rounded-lg border border-
|
|
3966
|
+
className: "flex-1 rounded-lg border border-slate-200/50 bg-white/40 backdrop-blur-sm px-3 py-1.5 text-sm text-slate-700 outline-none transition-colors placeholder:text-slate-400 focus:border-slate-300 focus:ring-1 focus:ring-slate-300/30 dark:border-white/10 dark:bg-white/[0.04] dark:text-slate-300 dark:placeholder:text-slate-600"
|
|
3964
3967
|
}
|
|
3965
3968
|
),
|
|
3966
3969
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -3977,18 +3980,18 @@ function VariableListEditor({
|
|
|
3977
3980
|
}
|
|
3978
3981
|
)
|
|
3979
3982
|
] }),
|
|
3980
|
-
variables.length === 0 && !canAdd && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-
|
|
3983
|
+
variables.length === 0 && !canAdd && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-400 dark:text-slate-500", children: "No variables defined" })
|
|
3981
3984
|
] });
|
|
3982
3985
|
}
|
|
3983
3986
|
function StartNodeConfigForm({ config, onSave, onCancel }) {
|
|
3984
|
-
const t =
|
|
3987
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.startNodeConfig");
|
|
3985
3988
|
const [inputVariables, setInputVariables] = react.useState([...config.inputVariables]);
|
|
3986
3989
|
const handleSave = () => {
|
|
3987
3990
|
onSave({ ...config, inputVariables });
|
|
3988
3991
|
};
|
|
3989
3992
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
3990
3993
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
3991
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs text-
|
|
3994
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs text-slate-500 dark:text-slate-400", children: t("inputVariablesHelp") }),
|
|
3992
3995
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3993
3996
|
VariableListEditor,
|
|
3994
3997
|
{
|
|
@@ -4013,14 +4016,14 @@ function StartNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4013
4016
|
] });
|
|
4014
4017
|
}
|
|
4015
4018
|
function EndNodeConfigForm({ config, onSave, onCancel }) {
|
|
4016
|
-
const t =
|
|
4019
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.endNodeConfig");
|
|
4017
4020
|
const [outputVariables, setOutputVariables] = react.useState([...config.outputVariables]);
|
|
4018
4021
|
const handleSave = () => {
|
|
4019
4022
|
onSave({ ...config, outputVariables });
|
|
4020
4023
|
};
|
|
4021
4024
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
4022
4025
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4023
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs text-
|
|
4026
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs text-slate-500 dark:text-slate-400", children: t("outputVariablesHelp") }),
|
|
4024
4027
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4025
4028
|
VariableListEditor,
|
|
4026
4029
|
{
|
|
@@ -4054,7 +4057,7 @@ var OPERATOR_OPTIONS = [
|
|
|
4054
4057
|
{ value: "is_not_empty", labelKey: "operatorIsNotEmpty" }
|
|
4055
4058
|
];
|
|
4056
4059
|
function IfElseNodeConfigForm({ config, onSave, onCancel }) {
|
|
4057
|
-
const t =
|
|
4060
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.ifElseNodeConfig");
|
|
4058
4061
|
const [conditions, setConditions] = react.useState(
|
|
4059
4062
|
config.conditions.map((condition) => ({
|
|
4060
4063
|
variable: condition.variable,
|
|
@@ -4088,9 +4091,9 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4088
4091
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
4089
4092
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4090
4093
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3 flex items-center justify-between", children: [
|
|
4091
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-
|
|
4094
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-slate-700 dark:text-slate-300", children: t("conditionsLabel") }),
|
|
4092
4095
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4093
|
-
|
|
4096
|
+
chunkEBARYRSA_js.Button,
|
|
4094
4097
|
{
|
|
4095
4098
|
type: "button",
|
|
4096
4099
|
onClick: handleAddCondition,
|
|
@@ -4098,10 +4101,10 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4098
4101
|
}
|
|
4099
4102
|
)
|
|
4100
4103
|
] }),
|
|
4101
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: conditions.map((condition, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2 rounded-lg
|
|
4104
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: conditions.map((condition, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2 rounded-lg bg-white/40 backdrop-blur-sm p-3 dark:bg-white/[0.04]", children: [
|
|
4102
4105
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid flex-1 grid-cols-3 gap-2", children: [
|
|
4103
4106
|
/* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4104
|
-
|
|
4107
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
4105
4108
|
{
|
|
4106
4109
|
type: "text",
|
|
4107
4110
|
label: t("variableLabel"),
|
|
@@ -4112,7 +4115,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4112
4115
|
}
|
|
4113
4116
|
) }),
|
|
4114
4117
|
/* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4115
|
-
|
|
4118
|
+
chunkRWZ2PLMQ_js.FormSelect,
|
|
4116
4119
|
{
|
|
4117
4120
|
label: t("operatorLabel"),
|
|
4118
4121
|
value: condition.operator,
|
|
@@ -4122,7 +4125,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4122
4125
|
}
|
|
4123
4126
|
) }),
|
|
4124
4127
|
/* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4125
|
-
|
|
4128
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
4126
4129
|
{
|
|
4127
4130
|
type: "text",
|
|
4128
4131
|
label: t("valueLabel"),
|
|
@@ -4134,7 +4137,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4134
4137
|
) })
|
|
4135
4138
|
] }),
|
|
4136
4139
|
conditions.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4137
|
-
|
|
4140
|
+
chunkEBARYRSA_js.IconButton,
|
|
4138
4141
|
{
|
|
4139
4142
|
onClick: () => handleRemoveCondition(index),
|
|
4140
4143
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "h-4 w-4" }),
|
|
@@ -4147,7 +4150,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4147
4150
|
] }, index)) })
|
|
4148
4151
|
] }),
|
|
4149
4152
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4150
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-
|
|
4153
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("logicalOperatorLabel") }),
|
|
4151
4154
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
|
|
4152
4155
|
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-2 cursor-pointer", children: [
|
|
4153
4156
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4161,7 +4164,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4161
4164
|
className: "text-indigo-600 focus:ring-indigo-400"
|
|
4162
4165
|
}
|
|
4163
4166
|
),
|
|
4164
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-
|
|
4167
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-slate-700 dark:text-slate-300", children: "AND" })
|
|
4165
4168
|
] }),
|
|
4166
4169
|
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-2 cursor-pointer", children: [
|
|
4167
4170
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4175,7 +4178,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4175
4178
|
className: "text-indigo-600 focus:ring-indigo-400"
|
|
4176
4179
|
}
|
|
4177
4180
|
),
|
|
4178
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-
|
|
4181
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-slate-700 dark:text-slate-300", children: "OR" })
|
|
4179
4182
|
] })
|
|
4180
4183
|
] })
|
|
4181
4184
|
] }),
|
|
@@ -4207,7 +4210,7 @@ function hasOperation(config) {
|
|
|
4207
4210
|
return "operation" in config && typeof config.operation === "string";
|
|
4208
4211
|
}
|
|
4209
4212
|
function CodeNodeConfigForm({ config, onSave, onCancel }) {
|
|
4210
|
-
const t =
|
|
4213
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.codeNodeConfig");
|
|
4211
4214
|
const initialMode = hasOperation(config) ? "operation" : "scripted";
|
|
4212
4215
|
const [mode, setMode] = react.useState(initialMode);
|
|
4213
4216
|
const [language, setLanguage] = react.useState(
|
|
@@ -4265,17 +4268,17 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4265
4268
|
}
|
|
4266
4269
|
onSave(next);
|
|
4267
4270
|
};
|
|
4268
|
-
const labelClass = "mb-1 block text-xs font-medium text-
|
|
4269
|
-
const inputClass = "w-full rounded-lg border border-
|
|
4271
|
+
const labelClass = "mb-1 block text-xs font-medium text-slate-700 dark:text-slate-300";
|
|
4272
|
+
const inputClass = "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500";
|
|
4270
4273
|
const textareaClass = `${inputClass} font-mono text-xs`;
|
|
4271
4274
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
4272
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2 rounded-lg bg-
|
|
4275
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2 rounded-lg bg-white/40 dark:bg-white/[0.04] backdrop-blur-sm p-1 text-sm", children: [
|
|
4273
4276
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4274
4277
|
"button",
|
|
4275
4278
|
{
|
|
4276
4279
|
type: "button",
|
|
4277
4280
|
onClick: () => setMode("operation"),
|
|
4278
|
-
className: `flex-1 rounded-md px-3 py-1.5 font-medium transition ${mode === "operation" ? "bg-white text-indigo-600 shadow-sm dark:bg-
|
|
4281
|
+
className: `flex-1 rounded-md px-3 py-1.5 font-medium transition ${mode === "operation" ? "bg-white text-indigo-600 shadow-sm dark:bg-slate-900 dark:text-indigo-400" : "text-slate-600 dark:text-slate-400"}`,
|
|
4279
4282
|
children: t("modeOperation", { _: "Operation" })
|
|
4280
4283
|
}
|
|
4281
4284
|
),
|
|
@@ -4284,7 +4287,7 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4284
4287
|
{
|
|
4285
4288
|
type: "button",
|
|
4286
4289
|
onClick: () => setMode("scripted"),
|
|
4287
|
-
className: `flex-1 rounded-md px-3 py-1.5 font-medium transition ${mode === "scripted" ? "bg-white text-indigo-600 shadow-sm dark:bg-
|
|
4290
|
+
className: `flex-1 rounded-md px-3 py-1.5 font-medium transition ${mode === "scripted" ? "bg-white text-indigo-600 shadow-sm dark:bg-slate-900 dark:text-indigo-400" : "text-slate-600 dark:text-slate-400"}`,
|
|
4288
4291
|
children: t("modeScripted", { _: "Scripted" })
|
|
4289
4292
|
}
|
|
4290
4293
|
)
|
|
@@ -4328,7 +4331,7 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4328
4331
|
children: OPERATION_OPTIONS.map((o) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: o.value, children: o.label }, o.value))
|
|
4329
4332
|
}
|
|
4330
4333
|
),
|
|
4331
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[11px] text-
|
|
4334
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[11px] text-slate-500 dark:text-slate-400", children: selectedOpHelp })
|
|
4332
4335
|
] }),
|
|
4333
4336
|
operation !== "return" && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4334
4337
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: labelClass, children: "from" }),
|
|
@@ -4342,7 +4345,7 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4342
4345
|
className: inputClass
|
|
4343
4346
|
}
|
|
4344
4347
|
),
|
|
4345
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[11px] text-
|
|
4348
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[11px] text-slate-500 dark:text-slate-400", children: "Dotted reference into the variable pool. Leave blank to read the sole incoming edge." })
|
|
4346
4349
|
] }),
|
|
4347
4350
|
(operation === "return" || operation === "merge") && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4348
4351
|
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: labelClass, children: [
|
|
@@ -4372,7 +4375,7 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4372
4375
|
className: inputClass
|
|
4373
4376
|
}
|
|
4374
4377
|
),
|
|
4375
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[11px] text-
|
|
4378
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[11px] text-slate-500 dark:text-slate-400", children: "Comma-separated keys to project." })
|
|
4376
4379
|
] }),
|
|
4377
4380
|
operation === "regex_extract" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
4378
4381
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
@@ -4401,7 +4404,7 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4401
4404
|
className: inputClass
|
|
4402
4405
|
}
|
|
4403
4406
|
),
|
|
4404
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[11px] text-
|
|
4407
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[11px] text-slate-500 dark:text-slate-400", children: "i, m, s, x, U, R (g is implicit)." })
|
|
4405
4408
|
] }),
|
|
4406
4409
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4407
4410
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: labelClass, children: "group" }),
|
|
@@ -4415,18 +4418,18 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4415
4418
|
className: inputClass
|
|
4416
4419
|
}
|
|
4417
4420
|
),
|
|
4418
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[11px] text-
|
|
4421
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[11px] text-slate-500 dark:text-slate-400", children: "0 = whole match, 1 = first capture group (default)." })
|
|
4419
4422
|
] })
|
|
4420
4423
|
] })
|
|
4421
4424
|
] }),
|
|
4422
|
-
operation === "xml_titles" && /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-2 text-sm text-
|
|
4425
|
+
operation === "xml_titles" && /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-2 text-sm text-slate-700 dark:text-slate-300", children: [
|
|
4423
4426
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4424
4427
|
"input",
|
|
4425
4428
|
{
|
|
4426
4429
|
type: "checkbox",
|
|
4427
4430
|
checked: keepChannel,
|
|
4428
4431
|
onChange: (event) => setKeepChannel(event.target.checked),
|
|
4429
|
-
className: "h-4 w-4 rounded border-
|
|
4432
|
+
className: "h-4 w-4 rounded border-slate-300 text-indigo-600 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600"
|
|
4430
4433
|
}
|
|
4431
4434
|
),
|
|
4432
4435
|
"Keep channel/feed title (default: drop the first `<title>`)."
|
|
@@ -4443,7 +4446,7 @@ function CodeNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4443
4446
|
className: inputClass
|
|
4444
4447
|
}
|
|
4445
4448
|
),
|
|
4446
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "mt-1 text-[11px] text-
|
|
4449
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "mt-1 text-[11px] text-slate-500 dark:text-slate-400", children: [
|
|
4447
4450
|
"Defaults to `",
|
|
4448
4451
|
operation === "regex_extract" ? "matches" : "titles",
|
|
4449
4452
|
"` if left blank."
|
|
@@ -4475,7 +4478,7 @@ function entriesToHeaders(entries) {
|
|
|
4475
4478
|
return headers;
|
|
4476
4479
|
}
|
|
4477
4480
|
function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
|
|
4478
|
-
const t =
|
|
4481
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.httpRequestNodeConfig");
|
|
4479
4482
|
const [method, setMethod] = react.useState(config.method);
|
|
4480
4483
|
const [url, setUrl] = react.useState(config.url);
|
|
4481
4484
|
const [headerEntries, setHeaderEntries] = react.useState(headersToEntries(config.headers));
|
|
@@ -4506,7 +4509,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4506
4509
|
};
|
|
4507
4510
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
4508
4511
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4509
|
-
|
|
4512
|
+
chunkRWZ2PLMQ_js.FormSelect,
|
|
4510
4513
|
{
|
|
4511
4514
|
label: t("methodLabel"),
|
|
4512
4515
|
value: method,
|
|
@@ -4515,7 +4518,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4515
4518
|
}
|
|
4516
4519
|
),
|
|
4517
4520
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4518
|
-
|
|
4521
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
4519
4522
|
{
|
|
4520
4523
|
type: "text",
|
|
4521
4524
|
label: t("urlLabel"),
|
|
@@ -4526,9 +4529,9 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4526
4529
|
),
|
|
4527
4530
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4528
4531
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
4529
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-
|
|
4532
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-slate-700 dark:text-slate-300", children: t("headersLabel") }),
|
|
4530
4533
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4531
|
-
|
|
4534
|
+
chunkEBARYRSA_js.Button,
|
|
4532
4535
|
{
|
|
4533
4536
|
type: "button",
|
|
4534
4537
|
onClick: handleAddHeader,
|
|
@@ -4538,7 +4541,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4538
4541
|
] }),
|
|
4539
4542
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-2", children: headerEntries.map((entry, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
4540
4543
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4541
|
-
|
|
4544
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
4542
4545
|
{
|
|
4543
4546
|
type: "text",
|
|
4544
4547
|
value: entry.key,
|
|
@@ -4548,7 +4551,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4548
4551
|
}
|
|
4549
4552
|
),
|
|
4550
4553
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4551
|
-
|
|
4554
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
4552
4555
|
{
|
|
4553
4556
|
type: "text",
|
|
4554
4557
|
value: entry.value,
|
|
@@ -4558,7 +4561,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4558
4561
|
}
|
|
4559
4562
|
),
|
|
4560
4563
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4561
|
-
|
|
4564
|
+
chunkEBARYRSA_js.IconButton,
|
|
4562
4565
|
{
|
|
4563
4566
|
onClick: () => handleRemoveHeader(index),
|
|
4564
4567
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "h-4 w-4" }),
|
|
@@ -4570,7 +4573,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4570
4573
|
] }, index)) })
|
|
4571
4574
|
] }),
|
|
4572
4575
|
method !== "GET" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4573
|
-
|
|
4576
|
+
chunkRWZ2PLMQ_js.FormTextarea,
|
|
4574
4577
|
{
|
|
4575
4578
|
label: t("bodyLabel"),
|
|
4576
4579
|
value: body,
|
|
@@ -4581,7 +4584,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4581
4584
|
}
|
|
4582
4585
|
),
|
|
4583
4586
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4584
|
-
|
|
4587
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
4585
4588
|
{
|
|
4586
4589
|
type: "number",
|
|
4587
4590
|
label: t("timeoutLabel"),
|
|
@@ -4593,7 +4596,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4593
4596
|
}
|
|
4594
4597
|
),
|
|
4595
4598
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4596
|
-
|
|
4599
|
+
chunkRWZ2PLMQ_js.FormSelect,
|
|
4597
4600
|
{
|
|
4598
4601
|
label: t("parseResponseLabel"),
|
|
4599
4602
|
value: parseResponse,
|
|
@@ -4616,7 +4619,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4616
4619
|
] });
|
|
4617
4620
|
}
|
|
4618
4621
|
function S3WriteNodeConfigForm({ config, onSave, onCancel }) {
|
|
4619
|
-
const t =
|
|
4622
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.s3WriteNodeConfig");
|
|
4620
4623
|
const [bucket, setBucket] = react.useState(config.bucket ?? "");
|
|
4621
4624
|
const [key, setKey] = react.useState(config.key ?? "");
|
|
4622
4625
|
const [sourceUrl, setSourceUrl] = react.useState(config.sourceUrl ?? "");
|
|
@@ -4638,7 +4641,7 @@ function S3WriteNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4638
4641
|
};
|
|
4639
4642
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
4640
4643
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4641
|
-
|
|
4644
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
4642
4645
|
{
|
|
4643
4646
|
type: "text",
|
|
4644
4647
|
label: t("bucketLabel"),
|
|
@@ -4648,7 +4651,7 @@ function S3WriteNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4648
4651
|
}
|
|
4649
4652
|
),
|
|
4650
4653
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4651
|
-
|
|
4654
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
4652
4655
|
{
|
|
4653
4656
|
type: "text",
|
|
4654
4657
|
label: t("keyLabel"),
|
|
@@ -4659,7 +4662,7 @@ function S3WriteNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4659
4662
|
),
|
|
4660
4663
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-lg border border-cyan-200/40 bg-cyan-50/40 px-3 py-2 text-[11px] text-cyan-900 dark:border-cyan-500/30 dark:bg-cyan-500/10 dark:text-cyan-100", children: t("sourceOrBodyHint") }),
|
|
4661
4664
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4662
|
-
|
|
4665
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
4663
4666
|
{
|
|
4664
4667
|
type: "text",
|
|
4665
4668
|
label: t("sourceUrlLabel"),
|
|
@@ -4669,7 +4672,7 @@ function S3WriteNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4669
4672
|
}
|
|
4670
4673
|
),
|
|
4671
4674
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4672
|
-
|
|
4675
|
+
chunkRWZ2PLMQ_js.FormTextarea,
|
|
4673
4676
|
{
|
|
4674
4677
|
label: t("bodyLabel"),
|
|
4675
4678
|
value: body,
|
|
@@ -4680,7 +4683,7 @@ function S3WriteNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4680
4683
|
}
|
|
4681
4684
|
),
|
|
4682
4685
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4683
|
-
|
|
4686
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
4684
4687
|
{
|
|
4685
4688
|
type: "text",
|
|
4686
4689
|
label: t("contentTypeLabel"),
|
|
@@ -4690,7 +4693,7 @@ function S3WriteNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4690
4693
|
}
|
|
4691
4694
|
),
|
|
4692
4695
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4693
|
-
|
|
4696
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
4694
4697
|
{
|
|
4695
4698
|
type: "number",
|
|
4696
4699
|
label: t("timeoutLabel"),
|
|
@@ -4701,7 +4704,7 @@ function S3WriteNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4701
4704
|
}
|
|
4702
4705
|
),
|
|
4703
4706
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4704
|
-
|
|
4707
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
4705
4708
|
{
|
|
4706
4709
|
type: "text",
|
|
4707
4710
|
label: t("connectionIdLabel"),
|
|
@@ -4722,7 +4725,7 @@ function S3WriteNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4722
4725
|
] });
|
|
4723
4726
|
}
|
|
4724
4727
|
function TemplateTransformNodeConfigForm({ config, onSave, onCancel }) {
|
|
4725
|
-
const t =
|
|
4728
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.templateTransformNodeConfig");
|
|
4726
4729
|
const [template, setTemplate] = react.useState(config.template);
|
|
4727
4730
|
const [outputVariable, setOutputVariable] = react.useState(config.outputVariable);
|
|
4728
4731
|
const handleSave = () => {
|
|
@@ -4730,7 +4733,7 @@ function TemplateTransformNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4730
4733
|
};
|
|
4731
4734
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
4732
4735
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4733
|
-
|
|
4736
|
+
chunkRWZ2PLMQ_js.FormTextarea,
|
|
4734
4737
|
{
|
|
4735
4738
|
label: t("templateLabel"),
|
|
4736
4739
|
value: template,
|
|
@@ -4741,7 +4744,7 @@ function TemplateTransformNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4741
4744
|
}
|
|
4742
4745
|
),
|
|
4743
4746
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4744
|
-
|
|
4747
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
4745
4748
|
{
|
|
4746
4749
|
type: "text",
|
|
4747
4750
|
label: t("outputVariableLabel"),
|
|
@@ -4762,7 +4765,7 @@ function TemplateTransformNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4762
4765
|
] });
|
|
4763
4766
|
}
|
|
4764
4767
|
function IterationNodeConfigForm({ config, onSave, onCancel }) {
|
|
4765
|
-
const t =
|
|
4768
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.iterationNodeConfig");
|
|
4766
4769
|
const [iteratorVariable, setIteratorVariable] = react.useState(config.iteratorVariable);
|
|
4767
4770
|
const [maxIterations, setMaxIterations] = react.useState(config.maxIterations);
|
|
4768
4771
|
const handleSave = () => {
|
|
@@ -4770,7 +4773,7 @@ function IterationNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4770
4773
|
};
|
|
4771
4774
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
4772
4775
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4773
|
-
|
|
4776
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
4774
4777
|
{
|
|
4775
4778
|
type: "text",
|
|
4776
4779
|
label: t("iteratorVariableLabel"),
|
|
@@ -4780,7 +4783,7 @@ function IterationNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4780
4783
|
}
|
|
4781
4784
|
),
|
|
4782
4785
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4783
|
-
|
|
4786
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
4784
4787
|
{
|
|
4785
4788
|
type: "number",
|
|
4786
4789
|
label: t("maxIterationsLabel"),
|
|
@@ -4802,7 +4805,7 @@ function IterationNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4802
4805
|
] });
|
|
4803
4806
|
}
|
|
4804
4807
|
function KnowledgeBaseNodeConfigForm({ config, onSave, onCancel }) {
|
|
4805
|
-
const t =
|
|
4808
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.knowledgeBaseNodeConfig");
|
|
4806
4809
|
const [sourceId, setSourceId] = react.useState(config.sourceId);
|
|
4807
4810
|
const [topK, setTopK] = react.useState(config.topK);
|
|
4808
4811
|
const [similarityThreshold, setSimilarityThreshold] = react.useState(config.similarityThreshold);
|
|
@@ -4811,7 +4814,7 @@ function KnowledgeBaseNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4811
4814
|
};
|
|
4812
4815
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
4813
4816
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4814
|
-
|
|
4817
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
4815
4818
|
{
|
|
4816
4819
|
type: "text",
|
|
4817
4820
|
label: t("sourceIdLabel"),
|
|
@@ -4821,7 +4824,7 @@ function KnowledgeBaseNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4821
4824
|
}
|
|
4822
4825
|
),
|
|
4823
4826
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4824
|
-
|
|
4827
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
4825
4828
|
{
|
|
4826
4829
|
type: "number",
|
|
4827
4830
|
label: t("topKLabel"),
|
|
@@ -4832,7 +4835,7 @@ function KnowledgeBaseNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4832
4835
|
}
|
|
4833
4836
|
),
|
|
4834
4837
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4835
|
-
|
|
4838
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
4836
4839
|
{
|
|
4837
4840
|
type: "number",
|
|
4838
4841
|
label: t("similarityThresholdLabel"),
|
|
@@ -4855,7 +4858,7 @@ function KnowledgeBaseNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4855
4858
|
] });
|
|
4856
4859
|
}
|
|
4857
4860
|
function AnswerNodeConfigForm({ config, onSave, onCancel }) {
|
|
4858
|
-
const t =
|
|
4861
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.answerNodeConfig");
|
|
4859
4862
|
const [outputTemplate, setOutputTemplate] = react.useState(config.outputTemplate);
|
|
4860
4863
|
const [outputVariables, setOutputVariables] = react.useState([...config.outputVariables]);
|
|
4861
4864
|
const handleSave = () => {
|
|
@@ -4863,7 +4866,7 @@ function AnswerNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4863
4866
|
};
|
|
4864
4867
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
4865
4868
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4866
|
-
|
|
4869
|
+
chunkRWZ2PLMQ_js.FormTextarea,
|
|
4867
4870
|
{
|
|
4868
4871
|
label: t("outputTemplateLabel"),
|
|
4869
4872
|
hint: t("outputTemplateHelp"),
|
|
@@ -4897,7 +4900,7 @@ function AnswerNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4897
4900
|
] });
|
|
4898
4901
|
}
|
|
4899
4902
|
function QuestionClassifierNodeConfigForm({ config, onSave, onCancel }) {
|
|
4900
|
-
const t =
|
|
4903
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.questionClassifierNodeConfig");
|
|
4901
4904
|
const [modelId, setModelId] = react.useState(config.modelId);
|
|
4902
4905
|
const [instructions, setInstructions] = react.useState(config.instructions);
|
|
4903
4906
|
const [categories, setCategories] = react.useState(
|
|
@@ -4929,7 +4932,7 @@ function QuestionClassifierNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4929
4932
|
};
|
|
4930
4933
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
4931
4934
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4932
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-
|
|
4935
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("modelIdLabel") }),
|
|
4933
4936
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4934
4937
|
"input",
|
|
4935
4938
|
{
|
|
@@ -4937,12 +4940,12 @@ function QuestionClassifierNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4937
4940
|
value: modelId,
|
|
4938
4941
|
onChange: (event) => setModelId(event.target.value),
|
|
4939
4942
|
placeholder: t("modelIdPlaceholder"),
|
|
4940
|
-
className: "w-full rounded-lg border border-
|
|
4943
|
+
className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
|
|
4941
4944
|
}
|
|
4942
4945
|
)
|
|
4943
4946
|
] }),
|
|
4944
4947
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4945
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-
|
|
4948
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("instructionsLabel") }),
|
|
4946
4949
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4947
4950
|
"textarea",
|
|
4948
4951
|
{
|
|
@@ -4950,34 +4953,27 @@ function QuestionClassifierNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4950
4953
|
onChange: (event) => setInstructions(event.target.value),
|
|
4951
4954
|
placeholder: t("instructionsPlaceholder"),
|
|
4952
4955
|
rows: 4,
|
|
4953
|
-
className: "w-full rounded-lg border border-
|
|
4956
|
+
className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
|
|
4954
4957
|
}
|
|
4955
4958
|
)
|
|
4956
4959
|
] }),
|
|
4957
4960
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4958
4961
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3 flex items-center justify-between", children: [
|
|
4959
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-
|
|
4960
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4961
|
-
"button",
|
|
4962
|
-
{
|
|
4963
|
-
type: "button",
|
|
4964
|
-
onClick: handleAddCategory,
|
|
4965
|
-
className: "text-sm text-indigo-600 hover:text-indigo-700 dark:text-indigo-400",
|
|
4966
|
-
children: t("addCategory")
|
|
4967
|
-
}
|
|
4968
|
-
)
|
|
4962
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-slate-700 dark:text-slate-300", children: t("categoriesLabel") }),
|
|
4963
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { type: "button", plain: true, size: "sm", onClick: handleAddCategory, children: t("addCategory") })
|
|
4969
4964
|
] }),
|
|
4970
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: categories.map((category, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg
|
|
4965
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: categories.map((category, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg bg-white/40 backdrop-blur-sm p-3 dark:bg-white/[0.04]", children: [
|
|
4971
4966
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
4972
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-medium text-
|
|
4967
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-medium text-slate-500 dark:text-slate-400", children: t("categoryIndex", { index: index + 1 }) }),
|
|
4973
4968
|
categories.length > 2 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4974
|
-
|
|
4969
|
+
chunkEBARYRSA_js.IconButton,
|
|
4975
4970
|
{
|
|
4976
|
-
|
|
4971
|
+
label: t("removeCategory"),
|
|
4972
|
+
variant: "ghost",
|
|
4973
|
+
size: "sm",
|
|
4974
|
+
destructive: true,
|
|
4977
4975
|
onClick: () => handleRemoveCategory(index),
|
|
4978
|
-
className: "
|
|
4979
|
-
"aria-label": t("removeCategory"),
|
|
4980
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "h-4 w-4" })
|
|
4976
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "h-4 w-4" })
|
|
4981
4977
|
}
|
|
4982
4978
|
)
|
|
4983
4979
|
] }),
|
|
@@ -4989,7 +4985,7 @@ function QuestionClassifierNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4989
4985
|
value: category.name,
|
|
4990
4986
|
onChange: (event) => handleCategoryChange(index, "name", event.target.value),
|
|
4991
4987
|
placeholder: t("categoryNamePlaceholder"),
|
|
4992
|
-
className: "w-full rounded-lg border border-
|
|
4988
|
+
className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
|
|
4993
4989
|
}
|
|
4994
4990
|
),
|
|
4995
4991
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4999,37 +4995,26 @@ function QuestionClassifierNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4999
4995
|
value: category.description,
|
|
5000
4996
|
onChange: (event) => handleCategoryChange(index, "description", event.target.value),
|
|
5001
4997
|
placeholder: t("categoryDescriptionPlaceholder"),
|
|
5002
|
-
className: "w-full rounded-lg border border-
|
|
4998
|
+
className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
|
|
5003
4999
|
}
|
|
5004
5000
|
)
|
|
5005
5001
|
] })
|
|
5006
5002
|
] }, category.id)) })
|
|
5007
5003
|
] }),
|
|
5008
|
-
/* @__PURE__ */ jsxRuntime.
|
|
5009
|
-
|
|
5010
|
-
|
|
5011
|
-
|
|
5012
|
-
|
|
5013
|
-
|
|
5014
|
-
|
|
5015
|
-
|
|
5016
|
-
|
|
5017
|
-
),
|
|
5018
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5019
|
-
"button",
|
|
5020
|
-
{
|
|
5021
|
-
type: "button",
|
|
5022
|
-
onClick: handleSave,
|
|
5023
|
-
className: "rounded-lg bg-indigo-600 px-4 py-2 text-sm font-medium text-white hover:bg-indigo-700 dark:bg-indigo-500 dark:hover:bg-indigo-600",
|
|
5024
|
-
children: t("save")
|
|
5025
|
-
}
|
|
5026
|
-
)
|
|
5027
|
-
] })
|
|
5004
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5005
|
+
ConfigFormActions,
|
|
5006
|
+
{
|
|
5007
|
+
cancelLabel: t("cancel"),
|
|
5008
|
+
saveLabel: t("save"),
|
|
5009
|
+
onCancel,
|
|
5010
|
+
onSave: handleSave
|
|
5011
|
+
}
|
|
5012
|
+
)
|
|
5028
5013
|
] });
|
|
5029
5014
|
}
|
|
5030
5015
|
var PARAMETER_TYPES = ["string", "number", "boolean", "array"];
|
|
5031
5016
|
function ParameterExtractorNodeConfigForm({ config, onSave, onCancel }) {
|
|
5032
|
-
const t =
|
|
5017
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.parameterExtractorNodeConfig");
|
|
5033
5018
|
const [modelId, setModelId] = react.useState(config.modelId);
|
|
5034
5019
|
const [parameters, setParameters] = react.useState(
|
|
5035
5020
|
config.parameters.map((parameter) => ({ ...parameter }))
|
|
@@ -5059,7 +5044,7 @@ function ParameterExtractorNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5059
5044
|
};
|
|
5060
5045
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
5061
5046
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
5062
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-
|
|
5047
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("modelIdLabel") }),
|
|
5063
5048
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5064
5049
|
"input",
|
|
5065
5050
|
{
|
|
@@ -5067,37 +5052,30 @@ function ParameterExtractorNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5067
5052
|
value: modelId,
|
|
5068
5053
|
onChange: (event) => setModelId(event.target.value),
|
|
5069
5054
|
placeholder: t("modelIdPlaceholder"),
|
|
5070
|
-
className: "w-full rounded-lg border border-
|
|
5055
|
+
className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
|
|
5071
5056
|
}
|
|
5072
5057
|
)
|
|
5073
5058
|
] }),
|
|
5074
5059
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
5075
5060
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3 flex items-center justify-between", children: [
|
|
5076
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-
|
|
5077
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5078
|
-
"button",
|
|
5079
|
-
{
|
|
5080
|
-
type: "button",
|
|
5081
|
-
onClick: handleAddParameter,
|
|
5082
|
-
className: "text-sm text-indigo-600 hover:text-indigo-700 dark:text-indigo-400",
|
|
5083
|
-
children: t("addParameter")
|
|
5084
|
-
}
|
|
5085
|
-
)
|
|
5061
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-slate-700 dark:text-slate-300", children: t("parametersLabel") }),
|
|
5062
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { type: "button", plain: true, size: "sm", onClick: handleAddParameter, children: t("addParameter") })
|
|
5086
5063
|
] }),
|
|
5087
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: parameters.map((parameter, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg
|
|
5064
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: parameters.map((parameter, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg liquid-surface p-3", children: [
|
|
5088
5065
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 flex items-center justify-end", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
5089
|
-
|
|
5066
|
+
chunkEBARYRSA_js.IconButton,
|
|
5090
5067
|
{
|
|
5091
|
-
|
|
5068
|
+
label: t("removeParameter"),
|
|
5069
|
+
variant: "ghost",
|
|
5070
|
+
size: "sm",
|
|
5071
|
+
destructive: true,
|
|
5092
5072
|
onClick: () => handleRemoveParameter(index),
|
|
5093
|
-
className: "
|
|
5094
|
-
"aria-label": t("removeParameter"),
|
|
5095
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "h-4 w-4" })
|
|
5073
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "h-4 w-4" })
|
|
5096
5074
|
}
|
|
5097
5075
|
) }),
|
|
5098
5076
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-2", children: [
|
|
5099
5077
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
5100
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs text-
|
|
5078
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs text-slate-500 dark:text-slate-400", children: t("parameterNameLabel") }),
|
|
5101
5079
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5102
5080
|
"input",
|
|
5103
5081
|
{
|
|
@@ -5105,25 +5083,25 @@ function ParameterExtractorNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5105
5083
|
value: parameter.name,
|
|
5106
5084
|
onChange: (event) => handleParameterChange(index, "name", event.target.value),
|
|
5107
5085
|
placeholder: t("parameterNamePlaceholder"),
|
|
5108
|
-
className: "w-full rounded-lg border border-
|
|
5086
|
+
className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
|
|
5109
5087
|
}
|
|
5110
5088
|
)
|
|
5111
5089
|
] }),
|
|
5112
5090
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
5113
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs text-
|
|
5091
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs text-slate-500 dark:text-slate-400", children: t("parameterTypeLabel") }),
|
|
5114
5092
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5115
5093
|
"select",
|
|
5116
5094
|
{
|
|
5117
5095
|
value: parameter.type,
|
|
5118
5096
|
onChange: (event) => handleParameterChange(index, "type", event.target.value),
|
|
5119
|
-
className: "w-full rounded-lg border border-
|
|
5097
|
+
className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500",
|
|
5120
5098
|
children: PARAMETER_TYPES.map((parameterType) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: parameterType, children: parameterType }, parameterType))
|
|
5121
5099
|
}
|
|
5122
5100
|
)
|
|
5123
5101
|
] })
|
|
5124
5102
|
] }),
|
|
5125
5103
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2", children: [
|
|
5126
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs text-
|
|
5104
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs text-slate-500 dark:text-slate-400", children: t("parameterDescriptionLabel") }),
|
|
5127
5105
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5128
5106
|
"input",
|
|
5129
5107
|
{
|
|
@@ -5131,7 +5109,7 @@ function ParameterExtractorNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5131
5109
|
value: parameter.description,
|
|
5132
5110
|
onChange: (event) => handleParameterChange(index, "description", event.target.value),
|
|
5133
5111
|
placeholder: t("parameterDescriptionPlaceholder"),
|
|
5134
|
-
className: "w-full rounded-lg border border-
|
|
5112
|
+
className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
|
|
5135
5113
|
}
|
|
5136
5114
|
)
|
|
5137
5115
|
] }),
|
|
@@ -5142,37 +5120,26 @@ function ParameterExtractorNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5142
5120
|
type: "checkbox",
|
|
5143
5121
|
checked: parameter.required,
|
|
5144
5122
|
onChange: (event) => handleParameterChange(index, "required", event.target.checked),
|
|
5145
|
-
className: "rounded border-
|
|
5123
|
+
className: "rounded border-slate-300 text-indigo-600 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600"
|
|
5146
5124
|
}
|
|
5147
5125
|
),
|
|
5148
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-
|
|
5126
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-slate-700 dark:text-slate-300", children: t("parameterRequiredLabel") })
|
|
5149
5127
|
] }) })
|
|
5150
5128
|
] }, index)) })
|
|
5151
5129
|
] }),
|
|
5152
|
-
/* @__PURE__ */ jsxRuntime.
|
|
5153
|
-
|
|
5154
|
-
|
|
5155
|
-
|
|
5156
|
-
|
|
5157
|
-
|
|
5158
|
-
|
|
5159
|
-
|
|
5160
|
-
|
|
5161
|
-
),
|
|
5162
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5163
|
-
"button",
|
|
5164
|
-
{
|
|
5165
|
-
type: "button",
|
|
5166
|
-
onClick: handleSave,
|
|
5167
|
-
className: "rounded-lg bg-indigo-600 px-4 py-2 text-sm font-medium text-white hover:bg-indigo-700 dark:bg-indigo-500 dark:hover:bg-indigo-600",
|
|
5168
|
-
children: t("save")
|
|
5169
|
-
}
|
|
5170
|
-
)
|
|
5171
|
-
] })
|
|
5130
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5131
|
+
ConfigFormActions,
|
|
5132
|
+
{
|
|
5133
|
+
cancelLabel: t("cancel"),
|
|
5134
|
+
saveLabel: t("save"),
|
|
5135
|
+
onCancel,
|
|
5136
|
+
onSave: handleSave
|
|
5137
|
+
}
|
|
5138
|
+
)
|
|
5172
5139
|
] });
|
|
5173
5140
|
}
|
|
5174
5141
|
function VariableAssignerNodeConfigForm({ config, onSave, onCancel }) {
|
|
5175
|
-
const t =
|
|
5142
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.variableAssignerNodeConfig");
|
|
5176
5143
|
const [assignments, setAssignments] = react.useState(
|
|
5177
5144
|
config.assignments.map((assignment) => ({ ...assignment }))
|
|
5178
5145
|
);
|
|
@@ -5199,21 +5166,13 @@ function VariableAssignerNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5199
5166
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
5200
5167
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
5201
5168
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3 flex items-center justify-between", children: [
|
|
5202
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-
|
|
5203
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5204
|
-
"button",
|
|
5205
|
-
{
|
|
5206
|
-
type: "button",
|
|
5207
|
-
onClick: handleAddAssignment,
|
|
5208
|
-
className: "text-sm text-indigo-600 hover:text-indigo-700 dark:text-indigo-400",
|
|
5209
|
-
children: t("addAssignment")
|
|
5210
|
-
}
|
|
5211
|
-
)
|
|
5169
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-slate-700 dark:text-slate-300", children: t("assignmentsLabel") }),
|
|
5170
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkEBARYRSA_js.Button, { type: "button", plain: true, size: "sm", onClick: handleAddAssignment, children: t("addAssignment") })
|
|
5212
5171
|
] }),
|
|
5213
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: assignments.map((assignment, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2 rounded-lg
|
|
5172
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: assignments.map((assignment, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2 rounded-lg bg-white/40 backdrop-blur-sm p-3 dark:bg-white/[0.04]", children: [
|
|
5214
5173
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid flex-1 grid-cols-2 gap-2", children: [
|
|
5215
5174
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
5216
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs text-
|
|
5175
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs text-slate-500 dark:text-slate-400", children: t("targetLabel") }),
|
|
5217
5176
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5218
5177
|
"input",
|
|
5219
5178
|
{
|
|
@@ -5221,12 +5180,12 @@ function VariableAssignerNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5221
5180
|
value: assignment.target,
|
|
5222
5181
|
onChange: (event) => handleAssignmentChange(index, "target", event.target.value),
|
|
5223
5182
|
placeholder: t("targetPlaceholder"),
|
|
5224
|
-
className: "w-full rounded-lg border border-
|
|
5183
|
+
className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
|
|
5225
5184
|
}
|
|
5226
5185
|
)
|
|
5227
5186
|
] }),
|
|
5228
5187
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
5229
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs text-
|
|
5188
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs text-slate-500 dark:text-slate-400", children: t("sourceLabel") }),
|
|
5230
5189
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5231
5190
|
"input",
|
|
5232
5191
|
{
|
|
@@ -5234,48 +5193,39 @@ function VariableAssignerNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5234
5193
|
value: assignment.source,
|
|
5235
5194
|
onChange: (event) => handleAssignmentChange(index, "source", event.target.value),
|
|
5236
5195
|
placeholder: t("sourcePlaceholder"),
|
|
5237
|
-
className: "w-full rounded-lg border border-
|
|
5196
|
+
className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
|
|
5238
5197
|
}
|
|
5239
5198
|
)
|
|
5240
5199
|
] })
|
|
5241
5200
|
] }),
|
|
5242
5201
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5243
|
-
|
|
5202
|
+
chunkEBARYRSA_js.IconButton,
|
|
5244
5203
|
{
|
|
5245
|
-
|
|
5204
|
+
label: t("removeAssignment"),
|
|
5205
|
+
variant: "ghost",
|
|
5206
|
+
size: "sm",
|
|
5207
|
+
destructive: true,
|
|
5208
|
+
className: "mt-5",
|
|
5246
5209
|
onClick: () => handleRemoveAssignment(index),
|
|
5247
|
-
|
|
5248
|
-
"aria-label": t("removeAssignment"),
|
|
5249
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "h-4 w-4" })
|
|
5210
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "h-4 w-4" })
|
|
5250
5211
|
}
|
|
5251
5212
|
)
|
|
5252
5213
|
] }, index)) })
|
|
5253
5214
|
] }),
|
|
5254
|
-
/* @__PURE__ */ jsxRuntime.
|
|
5255
|
-
|
|
5256
|
-
|
|
5257
|
-
|
|
5258
|
-
|
|
5259
|
-
|
|
5260
|
-
|
|
5261
|
-
|
|
5262
|
-
|
|
5263
|
-
),
|
|
5264
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5265
|
-
"button",
|
|
5266
|
-
{
|
|
5267
|
-
type: "button",
|
|
5268
|
-
onClick: handleSave,
|
|
5269
|
-
className: "rounded-lg bg-indigo-600 px-4 py-2 text-sm font-medium text-white hover:bg-indigo-700 dark:bg-indigo-500 dark:hover:bg-indigo-600",
|
|
5270
|
-
children: t("save")
|
|
5271
|
-
}
|
|
5272
|
-
)
|
|
5273
|
-
] })
|
|
5215
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5216
|
+
ConfigFormActions,
|
|
5217
|
+
{
|
|
5218
|
+
cancelLabel: t("cancel"),
|
|
5219
|
+
saveLabel: t("save"),
|
|
5220
|
+
onCancel,
|
|
5221
|
+
onSave: handleSave
|
|
5222
|
+
}
|
|
5223
|
+
)
|
|
5274
5224
|
] });
|
|
5275
5225
|
}
|
|
5276
5226
|
var AGGREGATION_MODES = ["array", "object", "concatenate"];
|
|
5277
5227
|
function VariableAggregatorNodeConfigForm({ config, onSave, onCancel }) {
|
|
5278
|
-
const t =
|
|
5228
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.variableAggregatorNodeConfig");
|
|
5279
5229
|
const [inputVariables, setInputVariables] = react.useState([...config.inputVariables]);
|
|
5280
5230
|
const [outputVariable, setOutputVariable] = react.useState(config.outputVariable);
|
|
5281
5231
|
const [aggregationMode, setAggregationMode] = react.useState(config.aggregationMode);
|
|
@@ -5297,7 +5247,7 @@ function VariableAggregatorNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5297
5247
|
}
|
|
5298
5248
|
),
|
|
5299
5249
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5300
|
-
|
|
5250
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
5301
5251
|
{
|
|
5302
5252
|
type: "text",
|
|
5303
5253
|
label: t("outputVariableLabel"),
|
|
@@ -5307,7 +5257,7 @@ function VariableAggregatorNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5307
5257
|
}
|
|
5308
5258
|
),
|
|
5309
5259
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5310
|
-
|
|
5260
|
+
chunkRWZ2PLMQ_js.FormSelect,
|
|
5311
5261
|
{
|
|
5312
5262
|
label: t("aggregationModeLabel"),
|
|
5313
5263
|
value: aggregationMode,
|
|
@@ -5332,7 +5282,7 @@ function VariableAggregatorNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5332
5282
|
}
|
|
5333
5283
|
var EXTRACTION_MODES = ["text", "table", "structured"];
|
|
5334
5284
|
function DocumentExtractorNodeConfigForm({ config, onSave, onCancel }) {
|
|
5335
|
-
const t =
|
|
5285
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.documentExtractorNodeConfig");
|
|
5336
5286
|
const [extractionMode, setExtractionMode] = react.useState(config.extractionMode);
|
|
5337
5287
|
const [outputVariable, setOutputVariable] = react.useState(config.outputVariable);
|
|
5338
5288
|
const handleSave = () => {
|
|
@@ -5340,7 +5290,7 @@ function DocumentExtractorNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5340
5290
|
};
|
|
5341
5291
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
5342
5292
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5343
|
-
|
|
5293
|
+
chunkRWZ2PLMQ_js.FormSelect,
|
|
5344
5294
|
{
|
|
5345
5295
|
label: t("extractionModeLabel"),
|
|
5346
5296
|
value: extractionMode,
|
|
@@ -5349,7 +5299,7 @@ function DocumentExtractorNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5349
5299
|
}
|
|
5350
5300
|
),
|
|
5351
5301
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5352
|
-
|
|
5302
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
5353
5303
|
{
|
|
5354
5304
|
type: "text",
|
|
5355
5305
|
label: t("outputVariableLabel"),
|
|
@@ -5372,7 +5322,7 @@ function DocumentExtractorNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5372
5322
|
var OPERATION_OPTIONS2 = ["filter", "map", "sort", "limit", "deduplicate", "flatten"];
|
|
5373
5323
|
var SORT_ORDER_OPTIONS = ["asc", "desc"];
|
|
5374
5324
|
function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
|
|
5375
|
-
const t =
|
|
5325
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.listOperatorNodeConfig");
|
|
5376
5326
|
const [operation, setOperation] = react.useState(config.operation);
|
|
5377
5327
|
const [inputVariable, setInputVariable] = react.useState(config.inputVariable);
|
|
5378
5328
|
const [outputVariable, setOutputVariable] = react.useState(config.outputVariable);
|
|
@@ -5404,19 +5354,19 @@ function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5404
5354
|
};
|
|
5405
5355
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
5406
5356
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
5407
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-
|
|
5357
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("operationLabel") }),
|
|
5408
5358
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5409
5359
|
"select",
|
|
5410
5360
|
{
|
|
5411
5361
|
value: operation,
|
|
5412
5362
|
onChange: (event) => setOperation(event.target.value),
|
|
5413
|
-
className: "w-full rounded-lg border border-
|
|
5363
|
+
className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500",
|
|
5414
5364
|
children: OPERATION_OPTIONS2.map((operationOption) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: operationOption, children: t(`operation_${operationOption}`) }, operationOption))
|
|
5415
5365
|
}
|
|
5416
5366
|
)
|
|
5417
5367
|
] }),
|
|
5418
5368
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
5419
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-
|
|
5369
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("inputVariableLabel") }),
|
|
5420
5370
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5421
5371
|
"input",
|
|
5422
5372
|
{
|
|
@@ -5424,12 +5374,12 @@ function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5424
5374
|
value: inputVariable,
|
|
5425
5375
|
onChange: (event) => setInputVariable(event.target.value),
|
|
5426
5376
|
placeholder: t("inputVariablePlaceholder"),
|
|
5427
|
-
className: "w-full rounded-lg border border-
|
|
5377
|
+
className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
|
|
5428
5378
|
}
|
|
5429
5379
|
)
|
|
5430
5380
|
] }),
|
|
5431
5381
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
5432
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-
|
|
5382
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("outputVariableLabel") }),
|
|
5433
5383
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5434
5384
|
"input",
|
|
5435
5385
|
{
|
|
@@ -5437,12 +5387,12 @@ function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5437
5387
|
value: outputVariable,
|
|
5438
5388
|
onChange: (event) => setOutputVariable(event.target.value),
|
|
5439
5389
|
placeholder: t("outputVariablePlaceholder"),
|
|
5440
|
-
className: "w-full rounded-lg border border-
|
|
5390
|
+
className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
|
|
5441
5391
|
}
|
|
5442
5392
|
)
|
|
5443
5393
|
] }),
|
|
5444
5394
|
showConditionField && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
5445
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-
|
|
5395
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("conditionLabel") }),
|
|
5446
5396
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5447
5397
|
"input",
|
|
5448
5398
|
{
|
|
@@ -5450,13 +5400,13 @@ function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5450
5400
|
value: condition,
|
|
5451
5401
|
onChange: (event) => setCondition(event.target.value),
|
|
5452
5402
|
placeholder: t("conditionPlaceholder"),
|
|
5453
|
-
className: "w-full rounded-lg border border-
|
|
5403
|
+
className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
|
|
5454
5404
|
}
|
|
5455
5405
|
)
|
|
5456
5406
|
] }),
|
|
5457
5407
|
showSortFields && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
5458
5408
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
5459
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-
|
|
5409
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("sortKeyLabel") }),
|
|
5460
5410
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5461
5411
|
"input",
|
|
5462
5412
|
{
|
|
@@ -5464,25 +5414,25 @@ function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5464
5414
|
value: sortKey,
|
|
5465
5415
|
onChange: (event) => setSortKey(event.target.value),
|
|
5466
5416
|
placeholder: t("sortKeyPlaceholder"),
|
|
5467
|
-
className: "w-full rounded-lg border border-
|
|
5417
|
+
className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
|
|
5468
5418
|
}
|
|
5469
5419
|
)
|
|
5470
5420
|
] }),
|
|
5471
5421
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
5472
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-
|
|
5422
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("sortOrderLabel") }),
|
|
5473
5423
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5474
5424
|
"select",
|
|
5475
5425
|
{
|
|
5476
5426
|
value: sortOrder,
|
|
5477
5427
|
onChange: (event) => setSortOrder(event.target.value),
|
|
5478
|
-
className: "w-full rounded-lg border border-
|
|
5428
|
+
className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500",
|
|
5479
5429
|
children: SORT_ORDER_OPTIONS.map((order) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: order, children: t(`sortOrder_${order}`) }, order))
|
|
5480
5430
|
}
|
|
5481
5431
|
)
|
|
5482
5432
|
] })
|
|
5483
5433
|
] }),
|
|
5484
5434
|
showLimitField && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
5485
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-
|
|
5435
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("limitCountLabel") }),
|
|
5486
5436
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5487
5437
|
"input",
|
|
5488
5438
|
{
|
|
@@ -5490,17 +5440,17 @@ function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5490
5440
|
value: limitCount,
|
|
5491
5441
|
onChange: (event) => setLimitCount(Number(event.target.value)),
|
|
5492
5442
|
min: 1,
|
|
5493
|
-
className: "w-full rounded-lg border border-
|
|
5443
|
+
className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
|
|
5494
5444
|
}
|
|
5495
5445
|
)
|
|
5496
5446
|
] }),
|
|
5497
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-end gap-2 pt-4
|
|
5447
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-end gap-2 pt-4 liquid-divider border-t", children: [
|
|
5498
5448
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5499
5449
|
"button",
|
|
5500
5450
|
{
|
|
5501
5451
|
type: "button",
|
|
5502
5452
|
onClick: onCancel,
|
|
5503
|
-
className: "rounded-lg border border-
|
|
5453
|
+
className: "rounded-lg border border-slate-300 px-4 py-2 text-sm font-medium text-slate-700 hover:bg-white/40 dark:border-slate-600 dark:text-slate-300 dark:hover:bg-white/[0.04]",
|
|
5504
5454
|
children: t("cancel")
|
|
5505
5455
|
}
|
|
5506
5456
|
),
|
|
@@ -5517,7 +5467,7 @@ function ListOperatorNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5517
5467
|
] });
|
|
5518
5468
|
}
|
|
5519
5469
|
function IterationStartNodeConfigForm({ config, onSave, onCancel }) {
|
|
5520
|
-
const t =
|
|
5470
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.iterationStartNodeConfig");
|
|
5521
5471
|
const [iteratorVariable, setIteratorVariable] = react.useState(config.iteratorVariable);
|
|
5522
5472
|
const [itemVariable, setItemVariable] = react.useState(config.itemVariable);
|
|
5523
5473
|
const [indexVariable, setIndexVariable] = react.useState(config.indexVariable);
|
|
@@ -5526,7 +5476,7 @@ function IterationStartNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5526
5476
|
};
|
|
5527
5477
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
5528
5478
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5529
|
-
|
|
5479
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
5530
5480
|
{
|
|
5531
5481
|
type: "text",
|
|
5532
5482
|
label: t("iteratorVariableLabel"),
|
|
@@ -5536,7 +5486,7 @@ function IterationStartNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5536
5486
|
}
|
|
5537
5487
|
),
|
|
5538
5488
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5539
|
-
|
|
5489
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
5540
5490
|
{
|
|
5541
5491
|
type: "text",
|
|
5542
5492
|
label: t("itemVariableLabel"),
|
|
@@ -5546,7 +5496,7 @@ function IterationStartNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5546
5496
|
}
|
|
5547
5497
|
),
|
|
5548
5498
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5549
|
-
|
|
5499
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
5550
5500
|
{
|
|
5551
5501
|
type: "text",
|
|
5552
5502
|
label: t("indexVariableLabel"),
|
|
@@ -5575,7 +5525,7 @@ var FIELD_TYPE_BADGE_COLORS = {
|
|
|
5575
5525
|
array: "bg-teal-500/15 text-teal-700 dark:bg-teal-500/20 dark:text-teal-300"
|
|
5576
5526
|
};
|
|
5577
5527
|
function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
|
|
5578
|
-
const t =
|
|
5528
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.entityNodeConfig");
|
|
5579
5529
|
const [selectedFields, setSelectedFields] = react.useState([...config.selectedFields]);
|
|
5580
5530
|
const [outputVariable, setOutputVariable] = react.useState(config.outputVariable);
|
|
5581
5531
|
const [limit, setLimit] = react.useState(config.limit);
|
|
@@ -5641,7 +5591,7 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
|
|
|
5641
5591
|
const filterEntries = Object.entries(filterVariables);
|
|
5642
5592
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
|
|
5643
5593
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
5644
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-
|
|
5594
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("entityTypeLabel") }),
|
|
5645
5595
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
5646
5596
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-6 w-6 items-center justify-center rounded-md bg-gradient-to-br ${gradient}`, children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[10px] text-white font-bold", children: (entityDefinition?.label ?? config.entityMasterId ?? "?").charAt(0).toUpperCase() }) }),
|
|
5647
5597
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium ${badgeColor}`, children: entityDefinition?.label ?? config.entityMasterId ?? t("entityTypeLabel") })
|
|
@@ -5649,8 +5599,8 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
|
|
|
5649
5599
|
!entityDefinition && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-xs text-amber-600 dark:text-amber-400", children: t("entityNotConfigured") })
|
|
5650
5600
|
] }),
|
|
5651
5601
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
5652
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-
|
|
5653
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs text-
|
|
5602
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("outputVariableLabel") }),
|
|
5603
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs text-slate-500 dark:text-slate-400", children: t("outputVariableHelp") }),
|
|
5654
5604
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5655
5605
|
"input",
|
|
5656
5606
|
{
|
|
@@ -5658,13 +5608,13 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
|
|
|
5658
5608
|
value: outputVariable,
|
|
5659
5609
|
onChange: (event) => setOutputVariable(event.target.value),
|
|
5660
5610
|
placeholder: `${(entityDefinition?.label ?? "entity").replace(/\s+/g, "")}Data`,
|
|
5661
|
-
className: "w-full rounded-lg border border-
|
|
5611
|
+
className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
|
|
5662
5612
|
}
|
|
5663
5613
|
)
|
|
5664
5614
|
] }),
|
|
5665
5615
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
5666
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-
|
|
5667
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs text-
|
|
5616
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300", children: t("limitLabel") }),
|
|
5617
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs text-slate-500 dark:text-slate-400", children: t("limitHelp") }),
|
|
5668
5618
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5669
5619
|
"input",
|
|
5670
5620
|
{
|
|
@@ -5673,13 +5623,13 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
|
|
|
5673
5623
|
onChange: (event) => setLimit(Math.max(1, Number.parseInt(event.target.value, 10) || 1)),
|
|
5674
5624
|
min: 1,
|
|
5675
5625
|
max: 1e3,
|
|
5676
|
-
className: "w-32 rounded-lg border border-
|
|
5626
|
+
className: "w-32 rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white"
|
|
5677
5627
|
}
|
|
5678
5628
|
)
|
|
5679
5629
|
] }),
|
|
5680
5630
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
5681
5631
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
5682
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-
|
|
5632
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-slate-700 dark:text-slate-300", children: t("fieldsLabel") }),
|
|
5683
5633
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5684
5634
|
"button",
|
|
5685
5635
|
{
|
|
@@ -5691,15 +5641,15 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
|
|
|
5691
5641
|
)
|
|
5692
5642
|
] }),
|
|
5693
5643
|
selectedFields.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs text-amber-600 dark:text-amber-400", children: t("noFieldsSelected") }),
|
|
5694
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-h-48 space-y-1 overflow-y-auto rounded-lg border border-
|
|
5695
|
-
availableFields.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-2 py-2 text-xs text-
|
|
5644
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-h-48 space-y-1 overflow-y-auto rounded-lg border border-slate-200 p-2 dark:border-slate-700", children: [
|
|
5645
|
+
availableFields.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-2 py-2 text-xs text-slate-500 dark:text-slate-400", children: t("noFieldsSelected") }),
|
|
5696
5646
|
availableFields.map((field) => {
|
|
5697
5647
|
const isSelected = selectedFields.includes(field.name);
|
|
5698
5648
|
const typeBadgeColor = FIELD_TYPE_BADGE_COLORS[field.type] ?? FIELD_TYPE_BADGE_COLORS.string;
|
|
5699
5649
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5700
5650
|
"label",
|
|
5701
5651
|
{
|
|
5702
|
-
className: `flex cursor-pointer items-center gap-2 rounded-md px-2 py-1.5 transition-colors ${isSelected ? "bg-indigo-50 dark:bg-indigo-500/10" : "hover:bg-
|
|
5652
|
+
className: `flex cursor-pointer items-center gap-2 rounded-md px-2 py-1.5 transition-colors ${isSelected ? "bg-indigo-50 dark:bg-indigo-500/10" : "hover:bg-white/40 dark:hover:bg-white/[0.04]"}`,
|
|
5703
5653
|
children: [
|
|
5704
5654
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5705
5655
|
"input",
|
|
@@ -5707,10 +5657,10 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
|
|
|
5707
5657
|
type: "checkbox",
|
|
5708
5658
|
checked: isSelected,
|
|
5709
5659
|
onChange: () => handleToggleField(field.name),
|
|
5710
|
-
className: "h-3.5 w-3.5 rounded border-
|
|
5660
|
+
className: "h-3.5 w-3.5 rounded border-slate-300 text-indigo-600 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600"
|
|
5711
5661
|
}
|
|
5712
5662
|
),
|
|
5713
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 text-xs font-medium text-
|
|
5663
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 text-xs font-medium text-slate-900 dark:text-white", children: field.name }),
|
|
5714
5664
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `rounded-full px-1.5 py-0.5 text-[9px] font-medium ${typeBadgeColor}`, children: field.type })
|
|
5715
5665
|
]
|
|
5716
5666
|
},
|
|
@@ -5721,7 +5671,7 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
|
|
|
5721
5671
|
] }),
|
|
5722
5672
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
5723
5673
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-1 flex items-center justify-between", children: [
|
|
5724
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-
|
|
5674
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-slate-700 dark:text-slate-300", children: t("filtersLabel") }),
|
|
5725
5675
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5726
5676
|
"button",
|
|
5727
5677
|
{
|
|
@@ -5735,7 +5685,7 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
|
|
|
5735
5685
|
}
|
|
5736
5686
|
)
|
|
5737
5687
|
] }),
|
|
5738
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs text-
|
|
5688
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs text-slate-500 dark:text-slate-400", children: t("filtersHelp") }),
|
|
5739
5689
|
filterEntries.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-2", children: filterEntries.map(([variableName, fieldName], index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
5740
5690
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5741
5691
|
"input",
|
|
@@ -5744,16 +5694,16 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
|
|
|
5744
5694
|
value: variableName,
|
|
5745
5695
|
onChange: (event) => handleUpdateFilterVariable(variableName, event.target.value),
|
|
5746
5696
|
placeholder: t("variableName"),
|
|
5747
|
-
className: "flex-1 rounded-lg border border-
|
|
5697
|
+
className: "flex-1 rounded-lg border border-slate-300 bg-white px-2 py-1.5 text-xs text-slate-900 placeholder-slate-400 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white dark:placeholder-slate-500"
|
|
5748
5698
|
}
|
|
5749
5699
|
),
|
|
5750
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-
|
|
5700
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-slate-400", children: "\u2192" }),
|
|
5751
5701
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5752
5702
|
"select",
|
|
5753
5703
|
{
|
|
5754
5704
|
value: fieldName,
|
|
5755
5705
|
onChange: (event) => handleUpdateFilterField(variableName, event.target.value),
|
|
5756
|
-
className: "flex-1 rounded-lg border border-
|
|
5706
|
+
className: "flex-1 rounded-lg border border-slate-300 bg-white px-2 py-1.5 text-xs text-slate-900 outline-none focus:border-indigo-400 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white",
|
|
5757
5707
|
children: [
|
|
5758
5708
|
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "", children: t("fieldName") }),
|
|
5759
5709
|
availableFields.map((field) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: field.name, children: field.name }, field.name))
|
|
@@ -5771,13 +5721,13 @@ function EntityNodeConfigForm({ config, entities = [], onSave, onCancel }) {
|
|
|
5771
5721
|
)
|
|
5772
5722
|
] }, index)) })
|
|
5773
5723
|
] }),
|
|
5774
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-end gap-2
|
|
5724
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-end gap-2 liquid-divider border-t pt-4", children: [
|
|
5775
5725
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5776
5726
|
"button",
|
|
5777
5727
|
{
|
|
5778
5728
|
type: "button",
|
|
5779
5729
|
onClick: onCancel,
|
|
5780
|
-
className: "rounded-lg border border-
|
|
5730
|
+
className: "rounded-lg border border-slate-300 px-4 py-2 text-sm font-medium text-slate-700 hover:bg-white/40 dark:border-slate-600 dark:text-slate-300 dark:hover:bg-white/[0.04]",
|
|
5781
5731
|
children: t("cancel")
|
|
5782
5732
|
}
|
|
5783
5733
|
),
|
|
@@ -5802,7 +5752,7 @@ var GROUP_COLOR_OPTIONS = [
|
|
|
5802
5752
|
{ value: "slate", ring: "ring-slate-500", fill: "bg-slate-500" }
|
|
5803
5753
|
];
|
|
5804
5754
|
function GroupNodeConfigForm({ config, onSave, onCancel }) {
|
|
5805
|
-
const translations =
|
|
5755
|
+
const translations = chunkY5VN4SPH_js.useTranslations("agents.workflow.groupNodeConfig");
|
|
5806
5756
|
const [formLabel, setFormLabel] = react.useState(config.label);
|
|
5807
5757
|
const [description, setDescription] = react.useState(config.description ?? "");
|
|
5808
5758
|
const [color, setColor] = react.useState(config.color);
|
|
@@ -5818,7 +5768,7 @@ function GroupNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5818
5768
|
};
|
|
5819
5769
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
5820
5770
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5821
|
-
|
|
5771
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
5822
5772
|
{
|
|
5823
5773
|
type: "text",
|
|
5824
5774
|
label: translations("labelField"),
|
|
@@ -5828,7 +5778,7 @@ function GroupNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5828
5778
|
}
|
|
5829
5779
|
),
|
|
5830
5780
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5831
|
-
|
|
5781
|
+
chunkRWZ2PLMQ_js.FormTextarea,
|
|
5832
5782
|
{
|
|
5833
5783
|
label: translations("descriptionField"),
|
|
5834
5784
|
value: description,
|
|
@@ -5838,7 +5788,7 @@ function GroupNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5838
5788
|
}
|
|
5839
5789
|
),
|
|
5840
5790
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
5841
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-sm font-medium text-
|
|
5791
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-sm font-medium text-slate-700 dark:text-slate-300", children: translations("colorField") }),
|
|
5842
5792
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-3", children: GROUP_COLOR_OPTIONS.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
5843
5793
|
"button",
|
|
5844
5794
|
{
|
|
@@ -5863,7 +5813,7 @@ function GroupNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5863
5813
|
] });
|
|
5864
5814
|
}
|
|
5865
5815
|
function RuleNodeConfigForm({ config, onSave, onCancel, availableRules }) {
|
|
5866
|
-
const t =
|
|
5816
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.ruleNodeConfig");
|
|
5867
5817
|
const [ruleId, setRuleId] = react.useState(config.ruleId ?? "");
|
|
5868
5818
|
const [priority, setPriority] = react.useState(config.priority ?? 1);
|
|
5869
5819
|
const [enabled, setEnabled] = react.useState(config.enabled ?? true);
|
|
@@ -5873,20 +5823,20 @@ function RuleNodeConfigForm({ config, onSave, onCancel, availableRules }) {
|
|
|
5873
5823
|
};
|
|
5874
5824
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
5875
5825
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
5876
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-
|
|
5826
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-slate-700 dark:text-slate-300", children: t("ruleIdLabel", { _: "Rule" }) }),
|
|
5877
5827
|
availableRules && availableRules.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5878
5828
|
"select",
|
|
5879
5829
|
{
|
|
5880
5830
|
value: ruleId,
|
|
5881
5831
|
onChange: (event) => setRuleId(event.target.value),
|
|
5882
|
-
className: "w-full rounded-lg border border-
|
|
5832
|
+
className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600 dark:bg-slate-800 dark:text-white",
|
|
5883
5833
|
children: [
|
|
5884
5834
|
/* @__PURE__ */ jsxRuntime.jsx("option", { value: "", children: t("rulePickPrompt", { _: "Choose a rule\u2026" }) }),
|
|
5885
5835
|
availableRules.map((rule) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: rule.ruleId, children: rule.name ? `${rule.name} (${rule.ruleId})` : rule.ruleId }, rule.ruleId))
|
|
5886
5836
|
]
|
|
5887
5837
|
}
|
|
5888
5838
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
5889
|
-
|
|
5839
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
5890
5840
|
{
|
|
5891
5841
|
type: "text",
|
|
5892
5842
|
value: ruleId,
|
|
@@ -5894,7 +5844,7 @@ function RuleNodeConfigForm({ config, onSave, onCancel, availableRules }) {
|
|
|
5894
5844
|
placeholder: "e.g. peak_hours"
|
|
5895
5845
|
}
|
|
5896
5846
|
),
|
|
5897
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "mt-1 text-[11px] text-
|
|
5847
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "mt-1 text-[11px] text-slate-500 dark:text-slate-400", children: [
|
|
5898
5848
|
"References an ",
|
|
5899
5849
|
/* @__PURE__ */ jsxRuntime.jsx("code", { children: "astrlabe.agent_rules.rule_id" }),
|
|
5900
5850
|
" row in this organization."
|
|
@@ -5902,7 +5852,7 @@ function RuleNodeConfigForm({ config, onSave, onCancel, availableRules }) {
|
|
|
5902
5852
|
] }),
|
|
5903
5853
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-3", children: [
|
|
5904
5854
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5905
|
-
|
|
5855
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
5906
5856
|
{
|
|
5907
5857
|
type: "number",
|
|
5908
5858
|
label: t("priorityLabel", { _: "Priority" }),
|
|
@@ -5911,14 +5861,14 @@ function RuleNodeConfigForm({ config, onSave, onCancel, availableRules }) {
|
|
|
5911
5861
|
min: 0
|
|
5912
5862
|
}
|
|
5913
5863
|
),
|
|
5914
|
-
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-end gap-2 pb-2 text-sm text-
|
|
5864
|
+
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-end gap-2 pb-2 text-sm text-slate-700 dark:text-slate-300", children: [
|
|
5915
5865
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5916
5866
|
"input",
|
|
5917
5867
|
{
|
|
5918
5868
|
type: "checkbox",
|
|
5919
5869
|
checked: enabled,
|
|
5920
5870
|
onChange: (event) => setEnabled(event.target.checked),
|
|
5921
|
-
className: "h-4 w-4 rounded border-
|
|
5871
|
+
className: "h-4 w-4 rounded border-slate-300 text-indigo-600 focus:ring-indigo-500/70 focus:ring-offset-1 dark:border-slate-600"
|
|
5922
5872
|
}
|
|
5923
5873
|
),
|
|
5924
5874
|
t("enabledLabel", { _: "Enabled" })
|
|
@@ -5942,7 +5892,7 @@ function AgentNodeConfigForm({
|
|
|
5942
5892
|
availableAgents,
|
|
5943
5893
|
availableConnections
|
|
5944
5894
|
}) {
|
|
5945
|
-
const t =
|
|
5895
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.agentNodeConfig");
|
|
5946
5896
|
const [agentId, setAgentId] = react.useState(config.agentId ?? "");
|
|
5947
5897
|
const [connectionId, setConnectionId] = react.useState(config.connectionId ?? "");
|
|
5948
5898
|
const [modelId, setModelId] = react.useState(config.modelId ?? "");
|
|
@@ -5974,7 +5924,7 @@ function AgentNodeConfigForm({
|
|
|
5974
5924
|
}));
|
|
5975
5925
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
5976
5926
|
agentOptions.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
5977
|
-
|
|
5927
|
+
chunkRWZ2PLMQ_js.FormSelect,
|
|
5978
5928
|
{
|
|
5979
5929
|
label: t("agentLabel", { _: "Agent" }),
|
|
5980
5930
|
value: agentId,
|
|
@@ -5982,7 +5932,7 @@ function AgentNodeConfigForm({
|
|
|
5982
5932
|
options: [{ value: "", label: t("agentPickPrompt", { _: "Choose an agent\u2026" }) }, ...agentOptions]
|
|
5983
5933
|
}
|
|
5984
5934
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
5985
|
-
|
|
5935
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
5986
5936
|
{
|
|
5987
5937
|
type: "text",
|
|
5988
5938
|
label: t("agentIdLabel", { _: "Agent ID" }),
|
|
@@ -5992,7 +5942,7 @@ function AgentNodeConfigForm({
|
|
|
5992
5942
|
}
|
|
5993
5943
|
),
|
|
5994
5944
|
connOptions.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
5995
|
-
|
|
5945
|
+
chunkRWZ2PLMQ_js.FormSelect,
|
|
5996
5946
|
{
|
|
5997
5947
|
label: t("connectionLabel", { _: "Model provider connection" }),
|
|
5998
5948
|
value: connectionId,
|
|
@@ -6000,7 +5950,7 @@ function AgentNodeConfigForm({
|
|
|
6000
5950
|
options: [{ value: "", label: t("connectionPickPrompt", { _: "Inline model (no connection)" }) }, ...connOptions]
|
|
6001
5951
|
}
|
|
6002
5952
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
6003
|
-
|
|
5953
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
6004
5954
|
{
|
|
6005
5955
|
type: "text",
|
|
6006
5956
|
label: t("connectionIdLabel", { _: "Connection ID" }),
|
|
@@ -6010,7 +5960,7 @@ function AgentNodeConfigForm({
|
|
|
6010
5960
|
}
|
|
6011
5961
|
),
|
|
6012
5962
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6013
|
-
|
|
5963
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
6014
5964
|
{
|
|
6015
5965
|
type: "text",
|
|
6016
5966
|
label: t("modelIdLabel", { _: "Model override (optional)" }),
|
|
@@ -6020,7 +5970,7 @@ function AgentNodeConfigForm({
|
|
|
6020
5970
|
}
|
|
6021
5971
|
),
|
|
6022
5972
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6023
|
-
|
|
5973
|
+
chunkRWZ2PLMQ_js.FormTextarea,
|
|
6024
5974
|
{
|
|
6025
5975
|
label: t("systemPromptLabel", { _: "System prompt" }),
|
|
6026
5976
|
value: systemPrompt,
|
|
@@ -6030,7 +5980,7 @@ function AgentNodeConfigForm({
|
|
|
6030
5980
|
}
|
|
6031
5981
|
),
|
|
6032
5982
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6033
|
-
|
|
5983
|
+
chunkRWZ2PLMQ_js.FormTextarea,
|
|
6034
5984
|
{
|
|
6035
5985
|
label: t("userPromptLabel", { _: "User prompt" }),
|
|
6036
5986
|
value: userPrompt,
|
|
@@ -6041,7 +5991,7 @@ function AgentNodeConfigForm({
|
|
|
6041
5991
|
),
|
|
6042
5992
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-3", children: [
|
|
6043
5993
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6044
|
-
|
|
5994
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
6045
5995
|
{
|
|
6046
5996
|
type: "number",
|
|
6047
5997
|
label: t("maxTokensLabel", { _: "Max output tokens" }),
|
|
@@ -6053,7 +6003,7 @@ function AgentNodeConfigForm({
|
|
|
6053
6003
|
}
|
|
6054
6004
|
),
|
|
6055
6005
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6056
|
-
|
|
6006
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
6057
6007
|
{
|
|
6058
6008
|
type: "number",
|
|
6059
6009
|
label: t("temperatureLabel", { _: "Temperature" }),
|
|
@@ -6078,7 +6028,7 @@ function AgentNodeConfigForm({
|
|
|
6078
6028
|
}
|
|
6079
6029
|
var AUDIO_FORMATS = ["auto", "mp3", "wav", "m4a", "webm", "ogg", "flac", "mp4", "mpga"];
|
|
6080
6030
|
function AudioInputNodeConfigForm({ config, onSave, onCancel }) {
|
|
6081
|
-
const t =
|
|
6031
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.audioInputNodeConfig");
|
|
6082
6032
|
const [url, setUrl] = react.useState(config.url ?? "");
|
|
6083
6033
|
const [format, setFormat] = react.useState(config.format && config.format.length > 0 ? config.format : "auto");
|
|
6084
6034
|
const handleSave = () => {
|
|
@@ -6090,7 +6040,7 @@ function AudioInputNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
6090
6040
|
};
|
|
6091
6041
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
6092
6042
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6093
|
-
|
|
6043
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
6094
6044
|
{
|
|
6095
6045
|
type: "text",
|
|
6096
6046
|
label: t("urlLabel"),
|
|
@@ -6100,7 +6050,7 @@ function AudioInputNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
6100
6050
|
}
|
|
6101
6051
|
),
|
|
6102
6052
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6103
|
-
|
|
6053
|
+
chunkRWZ2PLMQ_js.FormSelect,
|
|
6104
6054
|
{
|
|
6105
6055
|
label: t("formatLabel"),
|
|
6106
6056
|
value: format,
|
|
@@ -6125,7 +6075,7 @@ var RESPONSE_FORMATS = [
|
|
|
6125
6075
|
"text"
|
|
6126
6076
|
];
|
|
6127
6077
|
function SpeechTranscriberNodeConfigForm({ config, onSave, onCancel }) {
|
|
6128
|
-
const t =
|
|
6078
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.speechTranscriberNodeConfig");
|
|
6129
6079
|
const [audioUrl, setAudioUrl] = react.useState(config.audioUrl ?? "");
|
|
6130
6080
|
const [model, setModel] = react.useState(config.model ?? "whisper-1");
|
|
6131
6081
|
const [language, setLanguage] = react.useState(config.language ?? "");
|
|
@@ -6149,7 +6099,7 @@ function SpeechTranscriberNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
6149
6099
|
};
|
|
6150
6100
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
6151
6101
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6152
|
-
|
|
6102
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
6153
6103
|
{
|
|
6154
6104
|
type: "text",
|
|
6155
6105
|
label: t("audioUrlLabel"),
|
|
@@ -6159,7 +6109,7 @@ function SpeechTranscriberNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
6159
6109
|
}
|
|
6160
6110
|
),
|
|
6161
6111
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6162
|
-
|
|
6112
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
6163
6113
|
{
|
|
6164
6114
|
type: "text",
|
|
6165
6115
|
label: t("modelLabel"),
|
|
@@ -6169,7 +6119,7 @@ function SpeechTranscriberNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
6169
6119
|
}
|
|
6170
6120
|
),
|
|
6171
6121
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6172
|
-
|
|
6122
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
6173
6123
|
{
|
|
6174
6124
|
type: "text",
|
|
6175
6125
|
label: t("languageLabel"),
|
|
@@ -6179,7 +6129,7 @@ function SpeechTranscriberNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
6179
6129
|
}
|
|
6180
6130
|
),
|
|
6181
6131
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6182
|
-
|
|
6132
|
+
chunkRWZ2PLMQ_js.FormTextarea,
|
|
6183
6133
|
{
|
|
6184
6134
|
label: t("promptLabel"),
|
|
6185
6135
|
value: prompt,
|
|
@@ -6189,7 +6139,7 @@ function SpeechTranscriberNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
6189
6139
|
}
|
|
6190
6140
|
),
|
|
6191
6141
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6192
|
-
|
|
6142
|
+
chunkRWZ2PLMQ_js.FormSelect,
|
|
6193
6143
|
{
|
|
6194
6144
|
label: t("responseFormatLabel"),
|
|
6195
6145
|
value: responseFormat,
|
|
@@ -6198,7 +6148,7 @@ function SpeechTranscriberNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
6198
6148
|
}
|
|
6199
6149
|
),
|
|
6200
6150
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6201
|
-
|
|
6151
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
6202
6152
|
{
|
|
6203
6153
|
type: "text",
|
|
6204
6154
|
label: t("endpointLabel"),
|
|
@@ -6208,7 +6158,7 @@ function SpeechTranscriberNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
6208
6158
|
}
|
|
6209
6159
|
),
|
|
6210
6160
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6211
|
-
|
|
6161
|
+
chunkRWZ2PLMQ_js.FormInput,
|
|
6212
6162
|
{
|
|
6213
6163
|
type: "number",
|
|
6214
6164
|
label: t("timeoutLabel"),
|
|
@@ -6231,7 +6181,7 @@ function SpeechTranscriberNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
6231
6181
|
] });
|
|
6232
6182
|
}
|
|
6233
6183
|
function DashboardOutputNodeConfigForm({ config, onSave, onCancel }) {
|
|
6234
|
-
const t =
|
|
6184
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.dashboardOutputNodeConfig");
|
|
6235
6185
|
const initialMode = config.dashboard ? "inline" : "reference";
|
|
6236
6186
|
const [mode, setMode] = react.useState(initialMode);
|
|
6237
6187
|
const [dashboardFrom, setDashboardFrom] = react.useState(config.dashboardFrom ?? "");
|
|
@@ -6254,14 +6204,14 @@ function DashboardOutputNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
6254
6204
|
}
|
|
6255
6205
|
};
|
|
6256
6206
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
6257
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-
|
|
6207
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: t("description") }),
|
|
6258
6208
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
|
|
6259
6209
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6260
6210
|
"button",
|
|
6261
6211
|
{
|
|
6262
6212
|
type: "button",
|
|
6263
6213
|
onClick: () => setMode("reference"),
|
|
6264
|
-
className: `flex-1 rounded-lg border px-3 py-2 text-xs font-medium transition-colors ${mode === "reference" ? "border-fuchsia-500 bg-fuchsia-500/10 text-fuchsia-700 dark:text-fuchsia-300" : "border-
|
|
6214
|
+
className: `flex-1 rounded-lg border px-3 py-2 text-xs font-medium transition-colors ${mode === "reference" ? "border-fuchsia-500 bg-fuchsia-500/10 text-fuchsia-700 dark:text-fuchsia-300" : "border-slate-200 bg-white text-slate-600 hover:border-fuchsia-300 dark:border-white/10 dark:bg-white/5 dark:text-slate-300"}`,
|
|
6265
6215
|
children: t("modeReference")
|
|
6266
6216
|
}
|
|
6267
6217
|
),
|
|
@@ -6270,13 +6220,13 @@ function DashboardOutputNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
6270
6220
|
{
|
|
6271
6221
|
type: "button",
|
|
6272
6222
|
onClick: () => setMode("inline"),
|
|
6273
|
-
className: `flex-1 rounded-lg border px-3 py-2 text-xs font-medium transition-colors ${mode === "inline" ? "border-fuchsia-500 bg-fuchsia-500/10 text-fuchsia-700 dark:text-fuchsia-300" : "border-
|
|
6223
|
+
className: `flex-1 rounded-lg border px-3 py-2 text-xs font-medium transition-colors ${mode === "inline" ? "border-fuchsia-500 bg-fuchsia-500/10 text-fuchsia-700 dark:text-fuchsia-300" : "border-slate-200 bg-white text-slate-600 hover:border-fuchsia-300 dark:border-white/10 dark:bg-white/5 dark:text-slate-300"}`,
|
|
6274
6224
|
children: t("modeInline")
|
|
6275
6225
|
}
|
|
6276
6226
|
)
|
|
6277
6227
|
] }),
|
|
6278
6228
|
mode === "reference" ? /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
6279
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-
|
|
6229
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-slate-700 dark:text-slate-300", children: t("referenceLabel") }),
|
|
6280
6230
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6281
6231
|
"input",
|
|
6282
6232
|
{
|
|
@@ -6284,12 +6234,12 @@ function DashboardOutputNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
6284
6234
|
value: dashboardFrom,
|
|
6285
6235
|
onChange: (event) => setDashboardFrom(event.target.value),
|
|
6286
6236
|
placeholder: t("referencePlaceholder"),
|
|
6287
|
-
className: "w-full rounded-lg border border-
|
|
6237
|
+
className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm font-mono text-slate-900 placeholder:text-slate-400 focus:border-fuchsia-500 focus:outline-none focus:ring-1 focus:ring-fuchsia-500 dark:border-white/10 dark:bg-white/5 dark:text-white"
|
|
6288
6238
|
}
|
|
6289
6239
|
),
|
|
6290
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[10px] text-
|
|
6240
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[10px] text-slate-500 dark:text-slate-400", children: t("referenceHelp") })
|
|
6291
6241
|
] }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
6292
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-
|
|
6242
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-slate-700 dark:text-slate-300", children: t("inlineLabel") }),
|
|
6293
6243
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6294
6244
|
"textarea",
|
|
6295
6245
|
{
|
|
@@ -6297,14 +6247,14 @@ function DashboardOutputNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
6297
6247
|
onChange: (event) => setInlineJson(event.target.value),
|
|
6298
6248
|
placeholder: '{\\n "kpis": [],\\n "charts": [],\\n "tables": []\\n}',
|
|
6299
6249
|
rows: 12,
|
|
6300
|
-
className: "w-full rounded-lg border border-
|
|
6250
|
+
className: "w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-xs font-mono text-slate-900 placeholder:text-slate-400 focus:border-fuchsia-500 focus:outline-none focus:ring-1 focus:ring-fuchsia-500 dark:border-white/10 dark:bg-white/5 dark:text-white"
|
|
6301
6251
|
}
|
|
6302
6252
|
),
|
|
6303
6253
|
parseError ? /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "mt-1 text-[10px] font-medium text-red-600 dark:text-red-400", children: [
|
|
6304
6254
|
t("parseError"),
|
|
6305
6255
|
": ",
|
|
6306
6256
|
parseError
|
|
6307
|
-
] }) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[10px] text-
|
|
6257
|
+
] }) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[10px] text-slate-500 dark:text-slate-400", children: t("inlineHelp") })
|
|
6308
6258
|
] }),
|
|
6309
6259
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6310
6260
|
ConfigFormActions,
|
|
@@ -6345,7 +6295,7 @@ var NODE_TITLE_KEYS = {
|
|
|
6345
6295
|
dashboard_output: "dashboardOutputNodeConfig"
|
|
6346
6296
|
};
|
|
6347
6297
|
function LogicNodeModal({ onSave, entities = [], datasources = [], onLoadTables, onLoadSchema }) {
|
|
6348
|
-
const t =
|
|
6298
|
+
const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
6349
6299
|
const activeModal = useModalStore((s) => s.activeModal);
|
|
6350
6300
|
const logicNodeData = useModalStore((s) => s.logicNodeData);
|
|
6351
6301
|
const closeModal = useModalStore((s) => s.closeModal);
|
|
@@ -6423,7 +6373,7 @@ function LogicNodeModal({ onSave, entities = [], datasources = [], onLoadTables,
|
|
|
6423
6373
|
};
|
|
6424
6374
|
const isExperimental = isExperimentalNodeType(config.type);
|
|
6425
6375
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6426
|
-
|
|
6376
|
+
chunkRWZ2PLMQ_js.GlassModal,
|
|
6427
6377
|
{
|
|
6428
6378
|
open,
|
|
6429
6379
|
onClose: closeModal,
|
|
@@ -6449,7 +6399,7 @@ function LogicNodeModal({ onSave, entities = [], datasources = [], onLoadTables,
|
|
|
6449
6399
|
);
|
|
6450
6400
|
}
|
|
6451
6401
|
function NodeContextMenu({ position, targetId, onClose, onEdit, onDuplicate, onCopy, onDelete }) {
|
|
6452
|
-
const translations =
|
|
6402
|
+
const translations = chunkY5VN4SPH_js.useTranslations("agents.workflow.contextMenu");
|
|
6453
6403
|
const entries = [
|
|
6454
6404
|
{
|
|
6455
6405
|
key: "edit",
|
|
@@ -6494,7 +6444,7 @@ function NodeContextMenu({ position, targetId, onClose, onEdit, onDuplicate, onC
|
|
|
6494
6444
|
}
|
|
6495
6445
|
];
|
|
6496
6446
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6497
|
-
|
|
6447
|
+
chunkRWZ2PLMQ_js.ContextMenu,
|
|
6498
6448
|
{
|
|
6499
6449
|
position,
|
|
6500
6450
|
onClose,
|
|
@@ -6505,7 +6455,7 @@ function NodeContextMenu({ position, targetId, onClose, onEdit, onDuplicate, onC
|
|
|
6505
6455
|
);
|
|
6506
6456
|
}
|
|
6507
6457
|
function PanelContextMenu({ position, onClose, onPaste, onSelectAll, onFitView, onAddNote, flowPosition, hasClipboardContent }) {
|
|
6508
|
-
const translations =
|
|
6458
|
+
const translations = chunkY5VN4SPH_js.useTranslations("agents.workflow.contextMenu");
|
|
6509
6459
|
const entries = [
|
|
6510
6460
|
{
|
|
6511
6461
|
key: "paste",
|
|
@@ -6551,7 +6501,7 @@ function PanelContextMenu({ position, onClose, onPaste, onSelectAll, onFitView,
|
|
|
6551
6501
|
}
|
|
6552
6502
|
];
|
|
6553
6503
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6554
|
-
|
|
6504
|
+
chunkRWZ2PLMQ_js.ContextMenu,
|
|
6555
6505
|
{
|
|
6556
6506
|
position,
|
|
6557
6507
|
onClose,
|
|
@@ -6571,7 +6521,7 @@ function SelectionContextMenu({
|
|
|
6571
6521
|
onAlign,
|
|
6572
6522
|
onDistribute
|
|
6573
6523
|
}) {
|
|
6574
|
-
const translations =
|
|
6524
|
+
const translations = chunkY5VN4SPH_js.useTranslations("agents.workflow.contextMenu");
|
|
6575
6525
|
const entries = [
|
|
6576
6526
|
{
|
|
6577
6527
|
key: "copy",
|
|
@@ -6698,7 +6648,7 @@ function SelectionContextMenu({
|
|
|
6698
6648
|
}
|
|
6699
6649
|
];
|
|
6700
6650
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6701
|
-
|
|
6651
|
+
chunkRWZ2PLMQ_js.ContextMenu,
|
|
6702
6652
|
{
|
|
6703
6653
|
position,
|
|
6704
6654
|
onClose,
|
|
@@ -6880,7 +6830,7 @@ function WorkflowCanvasInner({
|
|
|
6880
6830
|
renderLogicNodeModal: _renderLogicNodeModal
|
|
6881
6831
|
}) {
|
|
6882
6832
|
const { screenToFlowPosition, getNode, toObject, fitView, zoomIn, zoomOut, zoomTo } = react$1.useReactFlow();
|
|
6883
|
-
const tWorkflow =
|
|
6833
|
+
const tWorkflow = chunkY5VN4SPH_js.useTranslations("agents.workflow");
|
|
6884
6834
|
const sortedAgents = react.useMemo(() => [...agents].sort((agentA, agentB) => (agentA.order ?? 0) - (agentB.order ?? 0)), [agents]);
|
|
6885
6835
|
const [selectedAgentId, setSelectedAgentId] = react.useState(null);
|
|
6886
6836
|
const openAgentModalAction = useModalStore((s) => s.openAgentModal);
|
|
@@ -8571,7 +8521,7 @@ function Workspace({
|
|
|
8571
8521
|
const resolvedModels = canvasProps.models ?? bootstrapModels;
|
|
8572
8522
|
const resolvedTools = canvasProps.tools ?? bootstrapTools;
|
|
8573
8523
|
const resolvedRules = canvasProps.rules ?? bootstrapRules;
|
|
8574
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: className ?? "h-full w-full", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
8524
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: className ?? "h-full w-full", children: /* @__PURE__ */ jsxRuntime.jsx(chunkY5VN4SPH_js.I18nProvider, { value: chunkY5VN4SPH_js.createI18nFromMessages(locale, messages), children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
8575
8525
|
WorkflowCanvas,
|
|
8576
8526
|
{
|
|
8577
8527
|
...canvasProps,
|
|
@@ -8656,5 +8606,5 @@ exports.useModalStore = useModalStore;
|
|
|
8656
8606
|
exports.useWorkflowBuilderClient = useWorkflowBuilderClient;
|
|
8657
8607
|
exports.useWorkflowBuilderClientOptional = useWorkflowBuilderClientOptional;
|
|
8658
8608
|
exports.useWorkflowStore = useWorkflowStore;
|
|
8659
|
-
//# sourceMappingURL=chunk-
|
|
8660
|
-
//# sourceMappingURL=chunk-
|
|
8609
|
+
//# sourceMappingURL=chunk-4Z5NZINA.js.map
|
|
8610
|
+
//# sourceMappingURL=chunk-4Z5NZINA.js.map
|