@datatechsolutions/ui 3.3.0 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/astrlabe/index.js +113 -113
- 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/brand/index.js +0 -14
- package/dist/brand/index.js.map +1 -1
- package/dist/brand/index.mjs +0 -14
- package/dist/brand/index.mjs.map +1 -1
- package/dist/{chunk-2WXRRQM3.mjs → chunk-2MJAHST4.mjs} +554 -516
- package/dist/chunk-2MJAHST4.mjs.map +1 -0
- package/dist/{chunk-FAGDZEKM.js → chunk-2OZZH2IO.js} +2 -2
- package/dist/chunk-2OZZH2IO.js.map +1 -0
- package/dist/{chunk-SYNVNTLJ.mjs → chunk-3AY5HIQ6.mjs} +2 -2
- package/dist/chunk-3AY5HIQ6.mjs.map +1 -0
- package/dist/{chunk-O6M3KDGT.mjs → chunk-3OLYSMI5.mjs} +41 -7
- package/dist/chunk-3OLYSMI5.mjs.map +1 -0
- package/dist/{chunk-GIQXB3BG.mjs → chunk-4PFU6A2B.mjs} +3 -3
- package/dist/{chunk-GIQXB3BG.mjs.map → chunk-4PFU6A2B.mjs.map} +1 -1
- package/dist/{chunk-3ZUMJTDT.mjs → chunk-5BEVTOZV.mjs} +4 -5
- package/dist/{chunk-3JJWPOK6.js.map → chunk-5BEVTOZV.mjs.map} +1 -1
- package/dist/{chunk-3JJWPOK6.js → chunk-5I7F7KZ6.js} +10 -11
- package/dist/chunk-5I7F7KZ6.js.map +1 -0
- package/dist/{chunk-BR2GAZKG.mjs → chunk-6V3DUBOZ.mjs} +7 -7
- package/dist/{chunk-BR2GAZKG.mjs.map → chunk-6V3DUBOZ.mjs.map} +1 -1
- package/dist/{chunk-5GDKCFM5.mjs → chunk-6W7VTZG6.mjs} +3 -3
- package/dist/{chunk-5GDKCFM5.mjs.map → chunk-6W7VTZG6.mjs.map} +1 -1
- package/dist/{chunk-IJAKZHXX.js → chunk-74MHWEDC.js} +684 -645
- package/dist/chunk-74MHWEDC.js.map +1 -0
- package/dist/{chunk-IRPS5UCS.mjs → chunk-7CEZB3ZD.mjs} +3 -3
- package/dist/{chunk-IRPS5UCS.mjs.map → chunk-7CEZB3ZD.mjs.map} +1 -1
- package/dist/{chunk-UDDZTTLO.mjs → chunk-7UHV6A4C.mjs} +6 -7
- package/dist/chunk-7UHV6A4C.mjs.map +1 -0
- package/dist/{chunk-ZM5MVWIT.js → chunk-A7FI4K7Z.js} +5 -6
- package/dist/chunk-A7FI4K7Z.js.map +1 -0
- package/dist/{chunk-MWPTSBAI.js → chunk-AVM53A3Y.js} +63 -29
- package/dist/chunk-AVM53A3Y.js.map +1 -0
- package/dist/{chunk-I2NZGVBG.js → chunk-AWDH6WNA.js} +1214 -5396
- package/dist/chunk-AWDH6WNA.js.map +1 -0
- package/dist/{chunk-ZJPNP2YW.mjs → chunk-BUDZNAKL.mjs} +2 -2
- package/dist/chunk-BUDZNAKL.mjs.map +1 -0
- package/dist/{chunk-OCELRSLO.js → chunk-BVXATTTA.js} +4 -4
- package/dist/{chunk-OCELRSLO.js.map → chunk-BVXATTTA.js.map} +1 -1
- package/dist/{chunk-W5OEBO6E.js → chunk-C4NRF2G2.js} +13 -14
- package/dist/chunk-C4NRF2G2.js.map +1 -0
- package/dist/{chunk-JSNRCYSO.js → chunk-CY2MBKVG.js} +4 -4
- package/dist/{chunk-JSNRCYSO.js.map → chunk-CY2MBKVG.js.map} +1 -1
- package/dist/{chunk-ZL6C2ZAF.js → chunk-FK3WDELF.js} +67 -67
- package/dist/{chunk-ZL6C2ZAF.js.map → chunk-FK3WDELF.js.map} +1 -1
- package/dist/{chunk-MVBIAXVN.mjs → chunk-IOEQ2GET.mjs} +14 -11
- package/dist/chunk-IOEQ2GET.mjs.map +1 -0
- package/dist/{chunk-AOUUZ52N.js → chunk-NCDBNGIB.js} +85 -86
- package/dist/chunk-NCDBNGIB.js.map +1 -0
- package/dist/{chunk-B67DP7MI.mjs → chunk-NJ5RVWLA.mjs} +4 -4
- package/dist/{chunk-B67DP7MI.mjs.map → chunk-NJ5RVWLA.mjs.map} +1 -1
- package/dist/{chunk-HDCUWUNH.js → chunk-NKXQYFS7.js} +28 -27
- package/dist/chunk-NKXQYFS7.js.map +1 -0
- package/dist/{chunk-JN6IL6OH.mjs → chunk-NOHHZ6FM.mjs} +1171 -5316
- package/dist/chunk-NOHHZ6FM.mjs.map +1 -0
- package/dist/{chunk-PCYL4MII.mjs → chunk-OASC7NYV.mjs} +156 -314
- package/dist/chunk-OASC7NYV.mjs.map +1 -0
- package/dist/{chunk-RXZNACMI.js → chunk-P43PX75J.js} +33 -33
- package/dist/{chunk-RXZNACMI.js.map → chunk-P43PX75J.js.map} +1 -1
- package/dist/{chunk-OL73LBX5.mjs → chunk-QLFSJ6HK.mjs} +3 -4
- package/dist/chunk-QLFSJ6HK.mjs.map +1 -0
- package/dist/{chunk-LEKZUS6N.mjs → chunk-QPSHM2JQ.mjs} +4 -5
- package/dist/chunk-QPSHM2JQ.mjs.map +1 -0
- package/dist/{chunk-NJFRJ6YD.js → chunk-QSMPKL27.js} +225 -384
- package/dist/chunk-QSMPKL27.js.map +1 -0
- package/dist/{chunk-ZV5EZXXO.mjs → chunk-RHRJXK5R.mjs} +3 -3
- package/dist/{chunk-ZV5EZXXO.mjs.map → chunk-RHRJXK5R.mjs.map} +1 -1
- package/dist/{chunk-F54Q2YJY.js → chunk-SY4MUT5V.js} +7 -7
- package/dist/{chunk-F54Q2YJY.js.map → chunk-SY4MUT5V.js.map} +1 -1
- package/dist/{chunk-5RM6NGZ6.mjs → chunk-UHMAKUON.mjs} +3 -3
- package/dist/{chunk-5RM6NGZ6.mjs.map → chunk-UHMAKUON.mjs.map} +1 -1
- package/dist/{chunk-TIJJHW2Z.js → chunk-V5VBYOF5.js} +36 -36
- package/dist/{chunk-TIJJHW2Z.js.map → chunk-V5VBYOF5.js.map} +1 -1
- package/dist/{chunk-KR2X2WHJ.js → chunk-VMGNQFRO.js} +53 -53
- package/dist/{chunk-KR2X2WHJ.js.map → chunk-VMGNQFRO.js.map} +1 -1
- package/dist/{chunk-HZ4LOVHM.js → chunk-VY52Y5GC.js} +2 -2
- package/dist/chunk-VY52Y5GC.js.map +1 -0
- package/dist/{chunk-TVMLV675.js → chunk-Z7VY5M4T.js} +98 -95
- package/dist/chunk-Z7VY5M4T.js.map +1 -0
- package/dist/{chunk-R4TQWXNG.mjs → chunk-ZM2Q2SMC.mjs} +6 -5
- package/dist/chunk-ZM2Q2SMC.mjs.map +1 -0
- package/dist/index.js +744 -904
- package/dist/index.mjs +4 -4
- package/dist/platform/admin/index.js +13 -13
- package/dist/platform/admin/index.mjs +7 -7
- package/dist/platform/agents-workspace.js +9 -9
- package/dist/platform/agents-workspace.mjs +8 -8
- package/dist/platform/app-shell.js +6 -6
- package/dist/platform/app-shell.mjs +5 -5
- package/dist/platform/auth/index.js +30 -30
- package/dist/platform/auth/index.mjs +7 -7
- package/dist/platform/billing/index.js +6 -6
- package/dist/platform/billing/index.mjs +5 -5
- package/dist/platform/impersonation/index.js +6 -6
- package/dist/platform/impersonation/index.mjs +5 -5
- package/dist/platform/index.js +102 -4812
- package/dist/platform/index.js.map +1 -1
- package/dist/platform/index.mjs +24 -4729
- package/dist/platform/index.mjs.map +1 -1
- package/dist/platform/pages/index.js +320 -204
- package/dist/platform/pages/index.js.map +1 -1
- package/dist/platform/pages/index.mjs +146 -30
- package/dist/platform/pages/index.mjs.map +1 -1
- package/dist/platform/rbac.js +2 -2
- package/dist/platform/rbac.mjs +1 -1
- package/dist/platform/settings/index.js +10 -10
- package/dist/platform/settings/index.mjs +9 -9
- package/dist/platform/utils/index.js +3 -3
- package/dist/platform/utils/index.js.map +1 -1
- package/dist/platform/utils/index.mjs +1 -1
- package/dist/platform/utils/index.mjs.map +1 -1
- package/dist/platform/workflow-api-client.js +62 -62
- package/dist/platform/workflow-api-client.mjs +2 -2
- package/dist/platform/workflow-canvas-shell.js +7 -7
- package/dist/platform/workflow-canvas-shell.mjs +6 -6
- package/package.json +15 -5
- package/src/styles/liquid-glass.css +283 -2
- package/dist/astrlabe/contracts.d.mts +0 -517
- package/dist/astrlabe/contracts.d.ts +0 -517
- package/dist/astrlabe/graph-node.d.mts +0 -28
- package/dist/astrlabe/graph-node.d.ts +0 -28
- package/dist/astrlabe/index.d.mts +0 -751
- package/dist/astrlabe/index.d.ts +0 -751
- package/dist/astrlabe/utils.d.mts +0 -60
- package/dist/astrlabe/utils.d.ts +0 -60
- package/dist/astrlabe/workflow-canvas.d.mts +0 -69
- package/dist/astrlabe/workflow-canvas.d.ts +0 -69
- package/dist/astrlabe/workflow-preview-canvas.d.mts +0 -10
- package/dist/astrlabe/workflow-preview-canvas.d.ts +0 -10
- package/dist/billing-panel-DsHhhJqG.d.mts +0 -18
- package/dist/billing-panel-DsHhhJqG.d.ts +0 -18
- package/dist/brand/index.d.mts +0 -85
- package/dist/brand/index.d.ts +0 -85
- package/dist/chunk-2WXRRQM3.mjs.map +0 -1
- package/dist/chunk-3ZUMJTDT.mjs.map +0 -1
- package/dist/chunk-AOUUZ52N.js.map +0 -1
- package/dist/chunk-FAGDZEKM.js.map +0 -1
- package/dist/chunk-HDCUWUNH.js.map +0 -1
- package/dist/chunk-HZ4LOVHM.js.map +0 -1
- package/dist/chunk-I2NZGVBG.js.map +0 -1
- package/dist/chunk-IJAKZHXX.js.map +0 -1
- package/dist/chunk-JN6IL6OH.mjs.map +0 -1
- package/dist/chunk-LEKZUS6N.mjs.map +0 -1
- package/dist/chunk-MVBIAXVN.mjs.map +0 -1
- package/dist/chunk-MWPTSBAI.js.map +0 -1
- package/dist/chunk-NJFRJ6YD.js.map +0 -1
- package/dist/chunk-O6M3KDGT.mjs.map +0 -1
- package/dist/chunk-OL73LBX5.mjs.map +0 -1
- package/dist/chunk-PCYL4MII.mjs.map +0 -1
- package/dist/chunk-R4TQWXNG.mjs.map +0 -1
- package/dist/chunk-SYNVNTLJ.mjs.map +0 -1
- package/dist/chunk-TVMLV675.js.map +0 -1
- package/dist/chunk-UDDZTTLO.mjs.map +0 -1
- package/dist/chunk-W5OEBO6E.js.map +0 -1
- package/dist/chunk-ZJPNP2YW.mjs.map +0 -1
- package/dist/chunk-ZM5MVWIT.js.map +0 -1
- package/dist/dynamic-island-confirm-BKsZkAEP.d.mts +0 -17
- package/dist/dynamic-island-confirm-BKsZkAEP.d.ts +0 -17
- package/dist/index-CoB18TbG.d.ts +0 -215
- package/dist/index-VI9gyJXl.d.mts +0 -215
- package/dist/index.d.mts +0 -5412
- package/dist/index.d.ts +0 -5412
- package/dist/layout-engine-YZcVr20M.d.mts +0 -19
- package/dist/layout-engine-YZcVr20M.d.ts +0 -19
- package/dist/lib/i18n-context.d.mts +0 -36
- package/dist/lib/i18n-context.d.ts +0 -36
- package/dist/lib/router-context.d.mts +0 -35
- package/dist/lib/router-context.d.ts +0 -35
- package/dist/navigation-BiWVffAN.d.mts +0 -49
- package/dist/navigation-BiWVffAN.d.ts +0 -49
- package/dist/platform/admin/index.d.mts +0 -17
- package/dist/platform/admin/index.d.ts +0 -17
- package/dist/platform/agents-workspace.d.mts +0 -19
- package/dist/platform/agents-workspace.d.ts +0 -19
- package/dist/platform/app-shell.d.mts +0 -58
- package/dist/platform/app-shell.d.ts +0 -58
- package/dist/platform/auth/index.d.mts +0 -73
- package/dist/platform/auth/index.d.ts +0 -73
- package/dist/platform/billing/index.d.mts +0 -29
- package/dist/platform/billing/index.d.ts +0 -29
- package/dist/platform/impersonation/index.d.mts +0 -19
- package/dist/platform/impersonation/index.d.ts +0 -19
- package/dist/platform/index.d.mts +0 -224
- package/dist/platform/index.d.ts +0 -224
- package/dist/platform/pages/index.d.mts +0 -432
- package/dist/platform/pages/index.d.ts +0 -432
- package/dist/platform/rbac.d.mts +0 -41
- package/dist/platform/rbac.d.ts +0 -41
- package/dist/platform/settings/index.d.mts +0 -31
- package/dist/platform/settings/index.d.ts +0 -31
- package/dist/platform/telemetry/index.d.mts +0 -51
- package/dist/platform/telemetry/index.d.ts +0 -51
- package/dist/platform/utils/index.d.mts +0 -32
- package/dist/platform/utils/index.d.ts +0 -32
- package/dist/platform/windsock-admin-client.d.mts +0 -57
- package/dist/platform/windsock-admin-client.d.ts +0 -57
- package/dist/platform/workflow-api-client.d.mts +0 -6
- package/dist/platform/workflow-api-client.d.ts +0 -6
- package/dist/platform/workflow-canvas-shell.d.mts +0 -18
- package/dist/platform/workflow-canvas-shell.d.ts +0 -18
- package/dist/rule-form-BYJzyork.d.mts +0 -128
- package/dist/rule-form-BYJzyork.d.ts +0 -128
- package/dist/workflow-api-client-BKD8OfP_.d.ts +0 -468
- package/dist/workflow-api-client-DoYj7nHz.d.mts +0 -468
- package/dist/workflow-store-o17I6L6A.d.ts +0 -79
- package/dist/workflow-store-ppVHdMZi.d.mts +0 -79
- package/src/brand/logos/kori-icon.svg +0 -45
- package/src/brand/logos/kori-logo-dark.svg +0 -40
- package/src/brand/logos/kori-logo.svg +0 -43
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunkAWDH6WNA_js = require('./chunk-AWDH6WNA.js');
|
|
5
5
|
var chunkYXN2K77G_js = require('./chunk-YXN2K77G.js');
|
|
6
|
-
var chunkF54Q2YJY_js = require('./chunk-F54Q2YJY.js');
|
|
7
6
|
var chunkP4YYEM4B_js = require('./chunk-P4YYEM4B.js');
|
|
8
7
|
var chunk72SWXOD5_js = require('./chunk-72SWXOD5.js');
|
|
9
8
|
var react = require('react');
|
|
@@ -1704,7 +1703,7 @@ function DatasourceNodeConfigForm({
|
|
|
1704
1703
|
}
|
|
1705
1704
|
const logo = getDatasourceLogo(selectedDatasourceId, selectedDatasource?.dialect);
|
|
1706
1705
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1707
|
-
|
|
1706
|
+
chunkAWDH6WNA_js.GlassModal,
|
|
1708
1707
|
{
|
|
1709
1708
|
open,
|
|
1710
1709
|
onClose: onCancel,
|
|
@@ -1719,8 +1718,8 @@ function DatasourceNodeConfigForm({
|
|
|
1719
1718
|
onSectionChange: setActiveSectionId
|
|
1720
1719
|
},
|
|
1721
1720
|
footer: readOnly ? void 0 : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-end gap-2 px-6 py-3", children: [
|
|
1722
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1723
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1721
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkAWDH6WNA_js.Button, { outline: true, onClick: onCancel, children: t("cancel") }),
|
|
1722
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkAWDH6WNA_js.Button, { color: "cyan", onClick: handleSave, disabled: !canSave, children: t("save") })
|
|
1724
1723
|
] }),
|
|
1725
1724
|
children: renderSection()
|
|
1726
1725
|
}
|
|
@@ -2058,7 +2057,7 @@ function NodeRunningIndicatorComponent({ nodeId }) {
|
|
|
2058
2057
|
borderColor: `rgba(${accentRgb}, 0.55)`,
|
|
2059
2058
|
boxShadow: `0 0 0 1px rgba(${accentRgb}, 0.16), 0 6px 16px rgba(${accentRgb}, 0.18)`
|
|
2060
2059
|
},
|
|
2061
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs("svg", { className: "h-3 w-3 animate-spin", style: { color: accentColor }, viewBox: "0 0 24 24", fill: "none", children: [
|
|
2060
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("svg", { className: "h-3 w-3 animate-spin motion-reduce:animate-none", style: { color: accentColor }, viewBox: "0 0 24 24", fill: "none", children: [
|
|
2062
2061
|
/* @__PURE__ */ jsxRuntime.jsx("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }),
|
|
2063
2062
|
/* @__PURE__ */ jsxRuntime.jsx("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" })
|
|
2064
2063
|
] })
|
|
@@ -2227,7 +2226,7 @@ var AgentToolFlowNode = react.memo(function AgentToolFlowNode2({ id, data, selec
|
|
|
2227
2226
|
event.stopPropagation();
|
|
2228
2227
|
},
|
|
2229
2228
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2230
|
-
|
|
2229
|
+
chunkAWDH6WNA_js.ToggleSwitch,
|
|
2231
2230
|
{
|
|
2232
2231
|
checked: Boolean(agentTool.enabled),
|
|
2233
2232
|
onChange: () => data.onToggle?.(agentTool),
|
|
@@ -2335,7 +2334,7 @@ var ToolFlowNode = react.memo(function ToolFlowNode2({ id, data, selected }) {
|
|
|
2335
2334
|
event.preventDefault();
|
|
2336
2335
|
},
|
|
2337
2336
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2338
|
-
|
|
2337
|
+
chunkAWDH6WNA_js.ToggleSwitch,
|
|
2339
2338
|
{
|
|
2340
2339
|
checked: Boolean(tool.enabled),
|
|
2341
2340
|
onChange: () => onToggle(tool),
|
|
@@ -2487,7 +2486,7 @@ var RuleFlowNode = react.memo(function RuleFlowNode2({ id, data, selected }) {
|
|
|
2487
2486
|
event.preventDefault();
|
|
2488
2487
|
},
|
|
2489
2488
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2490
|
-
|
|
2489
|
+
chunkAWDH6WNA_js.ToggleSwitch,
|
|
2491
2490
|
{
|
|
2492
2491
|
checked: Boolean(rule.enabled),
|
|
2493
2492
|
onChange: () => onToggle(rule),
|
|
@@ -3487,7 +3486,7 @@ var DatasourceFlowNode = react.memo(function DatasourceFlowNode2({ id, data, sel
|
|
|
3487
3486
|
event.preventDefault();
|
|
3488
3487
|
},
|
|
3489
3488
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3490
|
-
|
|
3489
|
+
chunkAWDH6WNA_js.ToggleSwitch,
|
|
3491
3490
|
{
|
|
3492
3491
|
checked: true,
|
|
3493
3492
|
onChange: () => {
|
|
@@ -3543,92 +3542,6 @@ var DatasourceFlowNode = react.memo(function DatasourceFlowNode2({ id, data, sel
|
|
|
3543
3542
|
/* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-cyan-400" })
|
|
3544
3543
|
] });
|
|
3545
3544
|
});
|
|
3546
|
-
var SI = (slug, color) => `https://cdn.simpleicons.org/${slug}/${color}`;
|
|
3547
|
-
var PROVIDER_LOGOS = {
|
|
3548
|
-
aws_bedrock: "https://www.svgrepo.com/show/448266/aws.svg",
|
|
3549
|
-
openai_api: "https://www.svgrepo.com/show/306500/openai.svg",
|
|
3550
|
-
google_vertex: SI("googlegemini", "8E75B2"),
|
|
3551
|
-
azure_openai: SI("microsoftazure", "0078D4"),
|
|
3552
|
-
anthropic_api: SI("anthropic", "D4A27F"),
|
|
3553
|
-
groq: SI("groq", "000000"),
|
|
3554
|
-
mistral: SI("mistralai", "FF7000"),
|
|
3555
|
-
huggingface: SI("huggingface", "FFD21E"),
|
|
3556
|
-
ollama: SI("ollama", "FFFFFF")
|
|
3557
|
-
};
|
|
3558
|
-
var PROVIDER_TYPE_LABELS = {
|
|
3559
|
-
aws_bedrock: "AWS Bedrock",
|
|
3560
|
-
openai_api: "OpenAI API",
|
|
3561
|
-
google_vertex: "Google Vertex AI",
|
|
3562
|
-
azure_openai: "Azure OpenAI",
|
|
3563
|
-
anthropic_api: "Anthropic API",
|
|
3564
|
-
groq: "Groq Cloud",
|
|
3565
|
-
mistral: "Mistral AI",
|
|
3566
|
-
huggingface: "Hugging Face",
|
|
3567
|
-
ollama: "Ollama (Local)",
|
|
3568
|
-
custom: "Custom"
|
|
3569
|
-
};
|
|
3570
|
-
var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, data, selected }) {
|
|
3571
|
-
const config = data.config;
|
|
3572
|
-
const isCompact = data.displayMode === "compact";
|
|
3573
|
-
if (!config) {
|
|
3574
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
3575
|
-
/* @__PURE__ */ jsxRuntime.jsx(NodeRunningIndicator, { nodeId: id }),
|
|
3576
|
-
/* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
|
|
3577
|
-
/* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
|
|
3578
|
-
/* @__PURE__ */ jsxRuntime.jsx(NodeCard, { variant: "error", nodeType: "model_provider", width: "w-[280px]", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3579
|
-
NodeCardHeader,
|
|
3580
|
-
{
|
|
3581
|
-
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.ExclamationTriangleIcon, { className: "h-6 w-6 text-white" }),
|
|
3582
|
-
title: data.label || "Model Provider",
|
|
3583
|
-
description: "Not configured",
|
|
3584
|
-
iconClassName: "flex h-11 w-11 items-center justify-center rounded-xl bg-gradient-to-br from-amber-400 to-orange-500 shadow-lg"
|
|
3585
|
-
}
|
|
3586
|
-
) }),
|
|
3587
|
-
/* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-slate-500" }),
|
|
3588
|
-
/* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "source", position: react$1.Position.Bottom, id: "bottom-out", colorClass: "!bg-slate-500" })
|
|
3589
|
-
] });
|
|
3590
|
-
}
|
|
3591
|
-
const providerLabel = PROVIDER_TYPE_LABELS[config.providerType] ?? config.providerType;
|
|
3592
|
-
const displayName = config.name || providerLabel;
|
|
3593
|
-
const regionLabel = config.region ? config.region : void 0;
|
|
3594
|
-
const isConfigured = !!(config.credentialRef || config.apiKeyRef);
|
|
3595
|
-
const logo = PROVIDER_LOGOS[config.providerType];
|
|
3596
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
3597
|
-
/* @__PURE__ */ jsxRuntime.jsx(NodeRunningIndicator, { nodeId: id }),
|
|
3598
|
-
/* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
|
|
3599
|
-
/* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
|
|
3600
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3601
|
-
"button",
|
|
3602
|
-
{
|
|
3603
|
-
type: "button",
|
|
3604
|
-
onClick: () => data.onEdit?.(id),
|
|
3605
|
-
className: "w-full text-left",
|
|
3606
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(NodeCard, { compact: isCompact, selected, nodeType: "model_provider", width: "w-[280px]", children: [
|
|
3607
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3608
|
-
NodeCardHeader,
|
|
3609
|
-
{
|
|
3610
|
-
icon: logo ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo, alt: providerLabel, className: "h-6 w-6 object-contain", loading: "lazy" }) : /* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-6 w-6 text-white" }),
|
|
3611
|
-
title: displayName,
|
|
3612
|
-
description: providerLabel,
|
|
3613
|
-
iconClassName: `flex h-11 w-11 items-center justify-center rounded-xl shadow-lg ${logo ? "bg-white/10 dark:bg-white/5 p-2" : "bg-gradient-to-br from-slate-600 to-slate-700 p-1.5"}`
|
|
3614
|
-
}
|
|
3615
|
-
),
|
|
3616
|
-
/* @__PURE__ */ jsxRuntime.jsx(NodeCardMeta, { compact: isCompact, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [
|
|
3617
|
-
/* @__PURE__ */ jsxRuntime.jsx(NodeCardBadge, { className: "rounded-full bg-slate-100 px-2 py-0.5 text-[10px] font-semibold text-slate-700 dark:bg-slate-500/20 dark:text-slate-300", children: providerLabel }),
|
|
3618
|
-
regionLabel && /* @__PURE__ */ jsxRuntime.jsx(NodeCardBadge, { className: "rounded-full bg-gray-100 px-2 py-0.5 text-[10px] font-medium text-gray-600 dark:bg-white/10 dark:text-gray-300", children: regionLabel }),
|
|
3619
|
-
/* @__PURE__ */ jsxRuntime.jsx(NodeCardBadge, { className: `rounded-full px-2 py-0.5 text-[10px] font-medium ${isConfigured ? "bg-green-100 text-green-700 dark:bg-green-500/20 dark:text-green-300" : "bg-amber-100 text-amber-700 dark:bg-amber-500/20 dark:text-amber-300"}`, children: isConfigured ? "Configured" : "Setup needed" }),
|
|
3620
|
-
config.modelFilter && config.modelFilter.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(NodeCardBadge, { className: "rounded-full bg-gray-100 px-2 py-0.5 text-[10px] font-medium text-gray-600 dark:bg-white/10 dark:text-gray-300", children: [
|
|
3621
|
-
config.modelFilter.length,
|
|
3622
|
-
" models"
|
|
3623
|
-
] })
|
|
3624
|
-
] }) })
|
|
3625
|
-
] })
|
|
3626
|
-
}
|
|
3627
|
-
),
|
|
3628
|
-
/* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-slate-500" }),
|
|
3629
|
-
/* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "source", position: react$1.Position.Bottom, id: "bottom-out", colorClass: "!bg-slate-500" })
|
|
3630
|
-
] });
|
|
3631
|
-
});
|
|
3632
3545
|
var GROUP_COLORS = {
|
|
3633
3546
|
indigo: {
|
|
3634
3547
|
border: "border-indigo-300/50 dark:border-indigo-600/50",
|
|
@@ -3891,6 +3804,46 @@ var SpeechTranscriberFlowNode = react.memo(function SpeechTranscriberFlowNode2({
|
|
|
3891
3804
|
/* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-violet-500" })
|
|
3892
3805
|
] });
|
|
3893
3806
|
});
|
|
3807
|
+
var DashboardOutputFlowNode = react.memo(function DashboardOutputFlowNode2({ id, data, selected }) {
|
|
3808
|
+
const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
|
|
3809
|
+
const { config, label, onDelete, onEdit } = data;
|
|
3810
|
+
const isCompact = data.displayMode === "compact";
|
|
3811
|
+
const source = config?.dashboardFrom ? `\u2190 ${config.dashboardFrom}` : config?.dashboard ? "inline" : "unset";
|
|
3812
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
3813
|
+
/* @__PURE__ */ jsxRuntime.jsx(NodeRunningIndicator, { nodeId: id }),
|
|
3814
|
+
/* @__PURE__ */ jsxRuntime.jsx(WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-fuchsia-500" }),
|
|
3815
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3816
|
+
NodeInteractiveCard,
|
|
3817
|
+
{
|
|
3818
|
+
nodeId: id,
|
|
3819
|
+
onEdit,
|
|
3820
|
+
compact: isCompact,
|
|
3821
|
+
selected,
|
|
3822
|
+
nodeType: "dashboard_output",
|
|
3823
|
+
width: "w-[260px]",
|
|
3824
|
+
children: [
|
|
3825
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3826
|
+
NodeCardHeader,
|
|
3827
|
+
{
|
|
3828
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(NodeIconBubble, { tone: "dashboard_output", children: /* @__PURE__ */ jsxRuntime.jsx(outline.ChartBarIcon, { className: "h-5 w-5 text-white" }) }),
|
|
3829
|
+
title: label,
|
|
3830
|
+
description: t("dashboardOutputNodeDescription"),
|
|
3831
|
+
compact: isCompact,
|
|
3832
|
+
iconClassName: ""
|
|
3833
|
+
}
|
|
3834
|
+
),
|
|
3835
|
+
/* @__PURE__ */ jsxRuntime.jsxs(NodeCardMeta, { compact: isCompact, children: [
|
|
3836
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3837
|
+
/* @__PURE__ */ jsxRuntime.jsx(NodeCardBadge, { tone: "dashboard_output", children: t("dashboardOutputNode") }),
|
|
3838
|
+
/* @__PURE__ */ jsxRuntime.jsx(NodeCardBadge, { tone: "dashboard_output", soft: true, children: source })
|
|
3839
|
+
] }),
|
|
3840
|
+
/* @__PURE__ */ jsxRuntime.jsx(NodeCardDeleteAction, { nodeId: id, onDelete })
|
|
3841
|
+
] })
|
|
3842
|
+
]
|
|
3843
|
+
}
|
|
3844
|
+
)
|
|
3845
|
+
] });
|
|
3846
|
+
});
|
|
3894
3847
|
function ConfigFormActions({
|
|
3895
3848
|
cancelLabel,
|
|
3896
3849
|
saveLabel,
|
|
@@ -3899,8 +3852,8 @@ function ConfigFormActions({
|
|
|
3899
3852
|
saveDisabled = false
|
|
3900
3853
|
}) {
|
|
3901
3854
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-end gap-2 border-t border-gray-200 pt-4 dark:border-gray-700", children: [
|
|
3902
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3903
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3855
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkAWDH6WNA_js.Button, { type: "button", outline: true, onClick: onCancel, children: cancelLabel }),
|
|
3856
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkAWDH6WNA_js.Button, { type: "button", onClick: onSave, disabled: saveDisabled, children: saveLabel })
|
|
3904
3857
|
] });
|
|
3905
3858
|
}
|
|
3906
3859
|
var COLOR_CLASSES = {
|
|
@@ -4147,7 +4100,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4147
4100
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3 flex items-center justify-between", children: [
|
|
4148
4101
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t("conditionsLabel") }),
|
|
4149
4102
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4150
|
-
|
|
4103
|
+
chunkAWDH6WNA_js.Button,
|
|
4151
4104
|
{
|
|
4152
4105
|
type: "button",
|
|
4153
4106
|
onClick: handleAddCondition,
|
|
@@ -4158,7 +4111,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4158
4111
|
/* @__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 border border-gray-200 bg-gray-50 p-3 dark:border-gray-700 dark:bg-gray-800/50", children: [
|
|
4159
4112
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid flex-1 grid-cols-3 gap-2", children: [
|
|
4160
4113
|
/* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4161
|
-
|
|
4114
|
+
chunkAWDH6WNA_js.FormInput,
|
|
4162
4115
|
{
|
|
4163
4116
|
type: "text",
|
|
4164
4117
|
label: t("variableLabel"),
|
|
@@ -4169,7 +4122,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4169
4122
|
}
|
|
4170
4123
|
) }),
|
|
4171
4124
|
/* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4172
|
-
|
|
4125
|
+
chunkAWDH6WNA_js.FormSelect,
|
|
4173
4126
|
{
|
|
4174
4127
|
label: t("operatorLabel"),
|
|
4175
4128
|
value: condition.operator,
|
|
@@ -4179,7 +4132,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4179
4132
|
}
|
|
4180
4133
|
) }),
|
|
4181
4134
|
/* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4182
|
-
|
|
4135
|
+
chunkAWDH6WNA_js.FormInput,
|
|
4183
4136
|
{
|
|
4184
4137
|
type: "text",
|
|
4185
4138
|
label: t("valueLabel"),
|
|
@@ -4191,7 +4144,7 @@ function IfElseNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4191
4144
|
) })
|
|
4192
4145
|
] }),
|
|
4193
4146
|
conditions.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4194
|
-
|
|
4147
|
+
chunkAWDH6WNA_js.IconButton,
|
|
4195
4148
|
{
|
|
4196
4149
|
onClick: () => handleRemoveCondition(index),
|
|
4197
4150
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "h-4 w-4" }),
|
|
@@ -4563,7 +4516,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4563
4516
|
};
|
|
4564
4517
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
4565
4518
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4566
|
-
|
|
4519
|
+
chunkAWDH6WNA_js.FormSelect,
|
|
4567
4520
|
{
|
|
4568
4521
|
label: t("methodLabel"),
|
|
4569
4522
|
value: method,
|
|
@@ -4572,7 +4525,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4572
4525
|
}
|
|
4573
4526
|
),
|
|
4574
4527
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4575
|
-
|
|
4528
|
+
chunkAWDH6WNA_js.FormInput,
|
|
4576
4529
|
{
|
|
4577
4530
|
type: "text",
|
|
4578
4531
|
label: t("urlLabel"),
|
|
@@ -4585,7 +4538,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4585
4538
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
4586
4539
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: t("headersLabel") }),
|
|
4587
4540
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4588
|
-
|
|
4541
|
+
chunkAWDH6WNA_js.Button,
|
|
4589
4542
|
{
|
|
4590
4543
|
type: "button",
|
|
4591
4544
|
onClick: handleAddHeader,
|
|
@@ -4595,7 +4548,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4595
4548
|
] }),
|
|
4596
4549
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-2", children: headerEntries.map((entry, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
4597
4550
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4598
|
-
|
|
4551
|
+
chunkAWDH6WNA_js.FormInput,
|
|
4599
4552
|
{
|
|
4600
4553
|
type: "text",
|
|
4601
4554
|
value: entry.key,
|
|
@@ -4605,7 +4558,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4605
4558
|
}
|
|
4606
4559
|
),
|
|
4607
4560
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4608
|
-
|
|
4561
|
+
chunkAWDH6WNA_js.FormInput,
|
|
4609
4562
|
{
|
|
4610
4563
|
type: "text",
|
|
4611
4564
|
value: entry.value,
|
|
@@ -4615,7 +4568,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4615
4568
|
}
|
|
4616
4569
|
),
|
|
4617
4570
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4618
|
-
|
|
4571
|
+
chunkAWDH6WNA_js.IconButton,
|
|
4619
4572
|
{
|
|
4620
4573
|
onClick: () => handleRemoveHeader(index),
|
|
4621
4574
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "h-4 w-4" }),
|
|
@@ -4627,7 +4580,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4627
4580
|
] }, index)) })
|
|
4628
4581
|
] }),
|
|
4629
4582
|
method !== "GET" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
4630
|
-
|
|
4583
|
+
chunkAWDH6WNA_js.FormTextarea,
|
|
4631
4584
|
{
|
|
4632
4585
|
label: t("bodyLabel"),
|
|
4633
4586
|
value: body,
|
|
@@ -4638,7 +4591,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4638
4591
|
}
|
|
4639
4592
|
),
|
|
4640
4593
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4641
|
-
|
|
4594
|
+
chunkAWDH6WNA_js.FormInput,
|
|
4642
4595
|
{
|
|
4643
4596
|
type: "number",
|
|
4644
4597
|
label: t("timeoutLabel"),
|
|
@@ -4650,7 +4603,7 @@ function HttpRequestNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4650
4603
|
}
|
|
4651
4604
|
),
|
|
4652
4605
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4653
|
-
|
|
4606
|
+
chunkAWDH6WNA_js.FormSelect,
|
|
4654
4607
|
{
|
|
4655
4608
|
label: t("parseResponseLabel"),
|
|
4656
4609
|
value: parseResponse,
|
|
@@ -4695,7 +4648,7 @@ function S3WriteNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4695
4648
|
};
|
|
4696
4649
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
4697
4650
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4698
|
-
|
|
4651
|
+
chunkAWDH6WNA_js.FormInput,
|
|
4699
4652
|
{
|
|
4700
4653
|
type: "text",
|
|
4701
4654
|
label: t("bucketLabel"),
|
|
@@ -4705,7 +4658,7 @@ function S3WriteNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4705
4658
|
}
|
|
4706
4659
|
),
|
|
4707
4660
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4708
|
-
|
|
4661
|
+
chunkAWDH6WNA_js.FormInput,
|
|
4709
4662
|
{
|
|
4710
4663
|
type: "text",
|
|
4711
4664
|
label: t("keyLabel"),
|
|
@@ -4716,7 +4669,7 @@ function S3WriteNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4716
4669
|
),
|
|
4717
4670
|
/* @__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") }),
|
|
4718
4671
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4719
|
-
|
|
4672
|
+
chunkAWDH6WNA_js.FormInput,
|
|
4720
4673
|
{
|
|
4721
4674
|
type: "text",
|
|
4722
4675
|
label: t("sourceUrlLabel"),
|
|
@@ -4726,7 +4679,7 @@ function S3WriteNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4726
4679
|
}
|
|
4727
4680
|
),
|
|
4728
4681
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4729
|
-
|
|
4682
|
+
chunkAWDH6WNA_js.FormTextarea,
|
|
4730
4683
|
{
|
|
4731
4684
|
label: t("bodyLabel"),
|
|
4732
4685
|
value: body,
|
|
@@ -4737,7 +4690,7 @@ function S3WriteNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4737
4690
|
}
|
|
4738
4691
|
),
|
|
4739
4692
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4740
|
-
|
|
4693
|
+
chunkAWDH6WNA_js.FormInput,
|
|
4741
4694
|
{
|
|
4742
4695
|
type: "text",
|
|
4743
4696
|
label: t("contentTypeLabel"),
|
|
@@ -4747,7 +4700,7 @@ function S3WriteNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4747
4700
|
}
|
|
4748
4701
|
),
|
|
4749
4702
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4750
|
-
|
|
4703
|
+
chunkAWDH6WNA_js.FormInput,
|
|
4751
4704
|
{
|
|
4752
4705
|
type: "number",
|
|
4753
4706
|
label: t("timeoutLabel"),
|
|
@@ -4758,7 +4711,7 @@ function S3WriteNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4758
4711
|
}
|
|
4759
4712
|
),
|
|
4760
4713
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4761
|
-
|
|
4714
|
+
chunkAWDH6WNA_js.FormInput,
|
|
4762
4715
|
{
|
|
4763
4716
|
type: "text",
|
|
4764
4717
|
label: t("connectionIdLabel"),
|
|
@@ -4787,7 +4740,7 @@ function TemplateTransformNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4787
4740
|
};
|
|
4788
4741
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
4789
4742
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4790
|
-
|
|
4743
|
+
chunkAWDH6WNA_js.FormTextarea,
|
|
4791
4744
|
{
|
|
4792
4745
|
label: t("templateLabel"),
|
|
4793
4746
|
value: template,
|
|
@@ -4798,7 +4751,7 @@ function TemplateTransformNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4798
4751
|
}
|
|
4799
4752
|
),
|
|
4800
4753
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4801
|
-
|
|
4754
|
+
chunkAWDH6WNA_js.FormInput,
|
|
4802
4755
|
{
|
|
4803
4756
|
type: "text",
|
|
4804
4757
|
label: t("outputVariableLabel"),
|
|
@@ -4827,7 +4780,7 @@ function IterationNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4827
4780
|
};
|
|
4828
4781
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
4829
4782
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4830
|
-
|
|
4783
|
+
chunkAWDH6WNA_js.FormInput,
|
|
4831
4784
|
{
|
|
4832
4785
|
type: "text",
|
|
4833
4786
|
label: t("iteratorVariableLabel"),
|
|
@@ -4837,7 +4790,7 @@ function IterationNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4837
4790
|
}
|
|
4838
4791
|
),
|
|
4839
4792
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4840
|
-
|
|
4793
|
+
chunkAWDH6WNA_js.FormInput,
|
|
4841
4794
|
{
|
|
4842
4795
|
type: "number",
|
|
4843
4796
|
label: t("maxIterationsLabel"),
|
|
@@ -4868,7 +4821,7 @@ function KnowledgeBaseNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4868
4821
|
};
|
|
4869
4822
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
4870
4823
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4871
|
-
|
|
4824
|
+
chunkAWDH6WNA_js.FormInput,
|
|
4872
4825
|
{
|
|
4873
4826
|
type: "text",
|
|
4874
4827
|
label: t("sourceIdLabel"),
|
|
@@ -4878,7 +4831,7 @@ function KnowledgeBaseNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4878
4831
|
}
|
|
4879
4832
|
),
|
|
4880
4833
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4881
|
-
|
|
4834
|
+
chunkAWDH6WNA_js.FormInput,
|
|
4882
4835
|
{
|
|
4883
4836
|
type: "number",
|
|
4884
4837
|
label: t("topKLabel"),
|
|
@@ -4889,7 +4842,7 @@ function KnowledgeBaseNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4889
4842
|
}
|
|
4890
4843
|
),
|
|
4891
4844
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4892
|
-
|
|
4845
|
+
chunkAWDH6WNA_js.FormInput,
|
|
4893
4846
|
{
|
|
4894
4847
|
type: "number",
|
|
4895
4848
|
label: t("similarityThresholdLabel"),
|
|
@@ -4920,7 +4873,7 @@ function AnswerNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
4920
4873
|
};
|
|
4921
4874
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
4922
4875
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4923
|
-
|
|
4876
|
+
chunkAWDH6WNA_js.FormTextarea,
|
|
4924
4877
|
{
|
|
4925
4878
|
label: t("outputTemplateLabel"),
|
|
4926
4879
|
hint: t("outputTemplateHelp"),
|
|
@@ -5354,7 +5307,7 @@ function VariableAggregatorNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5354
5307
|
}
|
|
5355
5308
|
),
|
|
5356
5309
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5357
|
-
|
|
5310
|
+
chunkAWDH6WNA_js.FormInput,
|
|
5358
5311
|
{
|
|
5359
5312
|
type: "text",
|
|
5360
5313
|
label: t("outputVariableLabel"),
|
|
@@ -5364,7 +5317,7 @@ function VariableAggregatorNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5364
5317
|
}
|
|
5365
5318
|
),
|
|
5366
5319
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5367
|
-
|
|
5320
|
+
chunkAWDH6WNA_js.FormSelect,
|
|
5368
5321
|
{
|
|
5369
5322
|
label: t("aggregationModeLabel"),
|
|
5370
5323
|
value: aggregationMode,
|
|
@@ -5397,7 +5350,7 @@ function DocumentExtractorNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5397
5350
|
};
|
|
5398
5351
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
5399
5352
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5400
|
-
|
|
5353
|
+
chunkAWDH6WNA_js.FormSelect,
|
|
5401
5354
|
{
|
|
5402
5355
|
label: t("extractionModeLabel"),
|
|
5403
5356
|
value: extractionMode,
|
|
@@ -5406,7 +5359,7 @@ function DocumentExtractorNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5406
5359
|
}
|
|
5407
5360
|
),
|
|
5408
5361
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5409
|
-
|
|
5362
|
+
chunkAWDH6WNA_js.FormInput,
|
|
5410
5363
|
{
|
|
5411
5364
|
type: "text",
|
|
5412
5365
|
label: t("outputVariableLabel"),
|
|
@@ -5583,7 +5536,7 @@ function IterationStartNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5583
5536
|
};
|
|
5584
5537
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
5585
5538
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5586
|
-
|
|
5539
|
+
chunkAWDH6WNA_js.FormInput,
|
|
5587
5540
|
{
|
|
5588
5541
|
type: "text",
|
|
5589
5542
|
label: t("iteratorVariableLabel"),
|
|
@@ -5593,7 +5546,7 @@ function IterationStartNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5593
5546
|
}
|
|
5594
5547
|
),
|
|
5595
5548
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5596
|
-
|
|
5549
|
+
chunkAWDH6WNA_js.FormInput,
|
|
5597
5550
|
{
|
|
5598
5551
|
type: "text",
|
|
5599
5552
|
label: t("itemVariableLabel"),
|
|
@@ -5603,7 +5556,7 @@ function IterationStartNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5603
5556
|
}
|
|
5604
5557
|
),
|
|
5605
5558
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5606
|
-
|
|
5559
|
+
chunkAWDH6WNA_js.FormInput,
|
|
5607
5560
|
{
|
|
5608
5561
|
type: "text",
|
|
5609
5562
|
label: t("indexVariableLabel"),
|
|
@@ -5875,7 +5828,7 @@ function GroupNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5875
5828
|
};
|
|
5876
5829
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
5877
5830
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5878
|
-
|
|
5831
|
+
chunkAWDH6WNA_js.FormInput,
|
|
5879
5832
|
{
|
|
5880
5833
|
type: "text",
|
|
5881
5834
|
label: translations("labelField"),
|
|
@@ -5885,7 +5838,7 @@ function GroupNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5885
5838
|
}
|
|
5886
5839
|
),
|
|
5887
5840
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5888
|
-
|
|
5841
|
+
chunkAWDH6WNA_js.FormTextarea,
|
|
5889
5842
|
{
|
|
5890
5843
|
label: translations("descriptionField"),
|
|
5891
5844
|
value: description,
|
|
@@ -5919,215 +5872,6 @@ function GroupNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
5919
5872
|
)
|
|
5920
5873
|
] });
|
|
5921
5874
|
}
|
|
5922
|
-
var catalogCache = null;
|
|
5923
|
-
var catalogPromise = null;
|
|
5924
|
-
async function loadCatalog() {
|
|
5925
|
-
if (catalogCache) return catalogCache;
|
|
5926
|
-
if (!catalogPromise) {
|
|
5927
|
-
catalogPromise = chunkF54Q2YJY_js.listModelProviderCatalog().then((rows) => {
|
|
5928
|
-
catalogCache = rows;
|
|
5929
|
-
return rows;
|
|
5930
|
-
});
|
|
5931
|
-
}
|
|
5932
|
-
return catalogPromise;
|
|
5933
|
-
}
|
|
5934
|
-
var ENDPOINT_SLUGS = /* @__PURE__ */ new Set(["custom", "azure_openai", "ollama"]);
|
|
5935
|
-
function ModelProviderNodeConfigForm({ config, onSave, onCancel }) {
|
|
5936
|
-
const t = chunkYXN2K77G_js.useTranslations("agents.workflow.modelProviderNodeConfig");
|
|
5937
|
-
const [catalog, setCatalog] = react.useState(catalogCache);
|
|
5938
|
-
const [catalogError, setCatalogError] = react.useState(null);
|
|
5939
|
-
const [providerType, setProviderType] = react.useState(config.providerType);
|
|
5940
|
-
const [name, setName] = react.useState(config.name ?? "");
|
|
5941
|
-
const [region, setRegion] = react.useState(config.region ?? "");
|
|
5942
|
-
const [endpoint, setEndpoint] = react.useState(config.endpoint ?? "");
|
|
5943
|
-
const [credentialRef, setCredentialRef] = react.useState(config.credentialRef ?? "");
|
|
5944
|
-
const [apiKeyRef, setApiKeyRef] = react.useState(config.apiKeyRef ?? "");
|
|
5945
|
-
const [selectedFamilies, setSelectedFamilies] = react.useState(/* @__PURE__ */ new Set());
|
|
5946
|
-
react.useEffect(() => {
|
|
5947
|
-
let cancelled = false;
|
|
5948
|
-
if (catalog) return;
|
|
5949
|
-
void loadCatalog().then((rows) => {
|
|
5950
|
-
if (cancelled) return;
|
|
5951
|
-
setCatalog(rows);
|
|
5952
|
-
}).catch((error) => {
|
|
5953
|
-
if (cancelled) return;
|
|
5954
|
-
const message = error instanceof Error ? error.message : "Failed to load provider catalog";
|
|
5955
|
-
setCatalogError(message);
|
|
5956
|
-
});
|
|
5957
|
-
return () => {
|
|
5958
|
-
cancelled = true;
|
|
5959
|
-
};
|
|
5960
|
-
}, [catalog]);
|
|
5961
|
-
const currentProvider = react.useMemo(() => {
|
|
5962
|
-
if (!catalog) return void 0;
|
|
5963
|
-
return catalog.find((entry) => entry.slug === providerType);
|
|
5964
|
-
}, [catalog, providerType]);
|
|
5965
|
-
const families = currentProvider?.families ?? [];
|
|
5966
|
-
const regions = Array.isArray(currentProvider?.regions) ? currentProvider.regions : [];
|
|
5967
|
-
const showRegion = regions.length > 0;
|
|
5968
|
-
const showEndpoint = ENDPOINT_SLUGS.has(providerType);
|
|
5969
|
-
const authType = currentProvider?.authType ?? null;
|
|
5970
|
-
const showApiKey = authType === "api_key";
|
|
5971
|
-
const showCredentialRef = authType === "iam_role";
|
|
5972
|
-
react.useEffect(() => {
|
|
5973
|
-
if (!currentProvider) return;
|
|
5974
|
-
setSelectedFamilies((previous) => {
|
|
5975
|
-
if (previous.size > 0) return previous;
|
|
5976
|
-
const filter = new Set(config.modelFilter ?? []);
|
|
5977
|
-
const next = /* @__PURE__ */ new Set();
|
|
5978
|
-
for (const family of currentProvider.families) {
|
|
5979
|
-
if (filter.size === 0 || family.modelIds.some((id) => filter.has(id))) {
|
|
5980
|
-
next.add(family.id);
|
|
5981
|
-
}
|
|
5982
|
-
}
|
|
5983
|
-
return next;
|
|
5984
|
-
});
|
|
5985
|
-
}, [currentProvider, config.modelFilter]);
|
|
5986
|
-
const handleToggleFamily = (familyId) => {
|
|
5987
|
-
setSelectedFamilies((previous) => {
|
|
5988
|
-
const next = new Set(previous);
|
|
5989
|
-
if (next.has(familyId)) next.delete(familyId);
|
|
5990
|
-
else next.add(familyId);
|
|
5991
|
-
return next;
|
|
5992
|
-
});
|
|
5993
|
-
};
|
|
5994
|
-
const handleProviderChange = (value) => {
|
|
5995
|
-
const newType = value;
|
|
5996
|
-
setProviderType(newType);
|
|
5997
|
-
setRegion("");
|
|
5998
|
-
const next = catalog?.find((entry) => entry.slug === newType);
|
|
5999
|
-
setSelectedFamilies(new Set((next?.families ?? []).map((family) => family.id)));
|
|
6000
|
-
};
|
|
6001
|
-
const handleSave = () => {
|
|
6002
|
-
const modelFilter = families.filter((family) => selectedFamilies.has(family.id)).flatMap((family) => family.modelIds);
|
|
6003
|
-
onSave({
|
|
6004
|
-
...config,
|
|
6005
|
-
providerType,
|
|
6006
|
-
name: name.trim() || void 0,
|
|
6007
|
-
region: region || void 0,
|
|
6008
|
-
endpoint: endpoint.trim() || void 0,
|
|
6009
|
-
credentialRef: credentialRef.trim() || void 0,
|
|
6010
|
-
apiKeyRef: apiKeyRef.trim() || void 0,
|
|
6011
|
-
modelFilter
|
|
6012
|
-
});
|
|
6013
|
-
};
|
|
6014
|
-
if (catalogError) {
|
|
6015
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
6016
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-lg border border-red-200 bg-red-50 p-3 text-sm text-red-900 dark:border-red-500/30 dark:bg-red-500/10 dark:text-red-200", children: catalogError }),
|
|
6017
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6018
|
-
ConfigFormActions,
|
|
6019
|
-
{
|
|
6020
|
-
cancelLabel: t("cancel"),
|
|
6021
|
-
saveLabel: t("save"),
|
|
6022
|
-
onCancel,
|
|
6023
|
-
onSave: handleSave,
|
|
6024
|
-
saveDisabled: true
|
|
6025
|
-
}
|
|
6026
|
-
)
|
|
6027
|
-
] });
|
|
6028
|
-
}
|
|
6029
|
-
if (!catalog) {
|
|
6030
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-4 h-32" });
|
|
6031
|
-
}
|
|
6032
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
6033
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6034
|
-
chunkI2NZGVBG_js.FormInput,
|
|
6035
|
-
{
|
|
6036
|
-
type: "text",
|
|
6037
|
-
label: t("nameLabel"),
|
|
6038
|
-
value: name,
|
|
6039
|
-
onValueChange: setName,
|
|
6040
|
-
placeholder: t("namePlaceholder")
|
|
6041
|
-
}
|
|
6042
|
-
),
|
|
6043
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6044
|
-
chunkI2NZGVBG_js.FormSelect,
|
|
6045
|
-
{
|
|
6046
|
-
label: t("providerTypeLabel"),
|
|
6047
|
-
value: providerType,
|
|
6048
|
-
onValueChange: handleProviderChange,
|
|
6049
|
-
options: catalog.filter((entry) => entry.enabled).map((entry) => ({ value: entry.slug, label: entry.name }))
|
|
6050
|
-
}
|
|
6051
|
-
),
|
|
6052
|
-
showRegion && /* @__PURE__ */ jsxRuntime.jsx(
|
|
6053
|
-
chunkI2NZGVBG_js.FormSelect,
|
|
6054
|
-
{
|
|
6055
|
-
label: t("regionLabel"),
|
|
6056
|
-
value: region,
|
|
6057
|
-
onValueChange: setRegion,
|
|
6058
|
-
options: [
|
|
6059
|
-
{ value: "", label: t("selectRegion") },
|
|
6060
|
-
...regions.map((value) => ({ value, label: value }))
|
|
6061
|
-
]
|
|
6062
|
-
}
|
|
6063
|
-
),
|
|
6064
|
-
showEndpoint && /* @__PURE__ */ jsxRuntime.jsx(
|
|
6065
|
-
chunkI2NZGVBG_js.FormInput,
|
|
6066
|
-
{
|
|
6067
|
-
type: "text",
|
|
6068
|
-
label: t("endpointLabel"),
|
|
6069
|
-
value: endpoint,
|
|
6070
|
-
onValueChange: setEndpoint,
|
|
6071
|
-
placeholder: providerType === "ollama" ? "http://localhost:11434" : t("endpointPlaceholder")
|
|
6072
|
-
}
|
|
6073
|
-
),
|
|
6074
|
-
showApiKey && /* @__PURE__ */ jsxRuntime.jsx(
|
|
6075
|
-
chunkI2NZGVBG_js.FormInput,
|
|
6076
|
-
{
|
|
6077
|
-
type: "password",
|
|
6078
|
-
label: t("apiKeyLabel"),
|
|
6079
|
-
value: apiKeyRef,
|
|
6080
|
-
onValueChange: setApiKeyRef,
|
|
6081
|
-
placeholder: t("apiKeyPlaceholder")
|
|
6082
|
-
}
|
|
6083
|
-
),
|
|
6084
|
-
showCredentialRef && /* @__PURE__ */ jsxRuntime.jsx(
|
|
6085
|
-
chunkI2NZGVBG_js.FormInput,
|
|
6086
|
-
{
|
|
6087
|
-
type: "text",
|
|
6088
|
-
label: t("credentialRefLabel"),
|
|
6089
|
-
value: credentialRef,
|
|
6090
|
-
onValueChange: setCredentialRef,
|
|
6091
|
-
placeholder: providerType === "aws_bedrock" ? "arn:aws:iam::role/bedrock-role" : t("credentialRefPlaceholder")
|
|
6092
|
-
}
|
|
6093
|
-
),
|
|
6094
|
-
families.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
6095
|
-
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300", children: t("modelFamiliesLabel") }),
|
|
6096
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1.5", children: families.map((family) => {
|
|
6097
|
-
const isSelected = selectedFamilies.has(family.id);
|
|
6098
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6099
|
-
"button",
|
|
6100
|
-
{
|
|
6101
|
-
type: "button",
|
|
6102
|
-
onClick: () => handleToggleFamily(family.id),
|
|
6103
|
-
className: `flex w-full items-center gap-3 rounded-lg border px-3 py-2 text-left transition-all ${isSelected ? "border-indigo-500/30 bg-indigo-50/50 dark:border-indigo-400/20 dark:bg-indigo-500/5" : "border-gray-200/50 hover:border-gray-300 dark:border-white/10 dark:hover:border-white/20"}`,
|
|
6104
|
-
children: [
|
|
6105
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-4 w-4 shrink-0 items-center justify-center rounded ${isSelected ? "bg-indigo-500 text-white" : "border border-gray-300 dark:border-gray-600"}`, children: isSelected && /* @__PURE__ */ jsxRuntime.jsx("svg", { className: "h-3 w-3", viewBox: "0 0 20 20", fill: "currentColor", children: /* @__PURE__ */ jsxRuntime.jsx("path", { fillRule: "evenodd", d: "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z", clipRule: "evenodd" }) }) }),
|
|
6106
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
6107
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-medium text-gray-900 dark:text-white", children: family.name }),
|
|
6108
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-2 text-[10px] text-gray-400 dark:text-gray-500", children: [
|
|
6109
|
-
family.modelIds.length,
|
|
6110
|
-
" models"
|
|
6111
|
-
] })
|
|
6112
|
-
] })
|
|
6113
|
-
]
|
|
6114
|
-
},
|
|
6115
|
-
family.id
|
|
6116
|
-
);
|
|
6117
|
-
}) })
|
|
6118
|
-
] }),
|
|
6119
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6120
|
-
ConfigFormActions,
|
|
6121
|
-
{
|
|
6122
|
-
cancelLabel: t("cancel"),
|
|
6123
|
-
saveLabel: t("save"),
|
|
6124
|
-
onCancel,
|
|
6125
|
-
onSave: handleSave,
|
|
6126
|
-
saveDisabled: !providerType
|
|
6127
|
-
}
|
|
6128
|
-
)
|
|
6129
|
-
] });
|
|
6130
|
-
}
|
|
6131
5875
|
function RuleNodeConfigForm({ config, onSave, onCancel, availableRules }) {
|
|
6132
5876
|
const t = chunkYXN2K77G_js.useTranslations("agents.workflow.ruleNodeConfig");
|
|
6133
5877
|
const [ruleId, setRuleId] = react.useState(config.ruleId ?? "");
|
|
@@ -6152,7 +5896,7 @@ function RuleNodeConfigForm({ config, onSave, onCancel, availableRules }) {
|
|
|
6152
5896
|
]
|
|
6153
5897
|
}
|
|
6154
5898
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
6155
|
-
|
|
5899
|
+
chunkAWDH6WNA_js.FormInput,
|
|
6156
5900
|
{
|
|
6157
5901
|
type: "text",
|
|
6158
5902
|
value: ruleId,
|
|
@@ -6168,7 +5912,7 @@ function RuleNodeConfigForm({ config, onSave, onCancel, availableRules }) {
|
|
|
6168
5912
|
] }),
|
|
6169
5913
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-3", children: [
|
|
6170
5914
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6171
|
-
|
|
5915
|
+
chunkAWDH6WNA_js.FormInput,
|
|
6172
5916
|
{
|
|
6173
5917
|
type: "number",
|
|
6174
5918
|
label: t("priorityLabel", { _: "Priority" }),
|
|
@@ -6240,7 +5984,7 @@ function AgentNodeConfigForm({
|
|
|
6240
5984
|
}));
|
|
6241
5985
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
6242
5986
|
agentOptions.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
6243
|
-
|
|
5987
|
+
chunkAWDH6WNA_js.FormSelect,
|
|
6244
5988
|
{
|
|
6245
5989
|
label: t("agentLabel", { _: "Agent" }),
|
|
6246
5990
|
value: agentId,
|
|
@@ -6248,7 +5992,7 @@ function AgentNodeConfigForm({
|
|
|
6248
5992
|
options: [{ value: "", label: t("agentPickPrompt", { _: "Choose an agent\u2026" }) }, ...agentOptions]
|
|
6249
5993
|
}
|
|
6250
5994
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
6251
|
-
|
|
5995
|
+
chunkAWDH6WNA_js.FormInput,
|
|
6252
5996
|
{
|
|
6253
5997
|
type: "text",
|
|
6254
5998
|
label: t("agentIdLabel", { _: "Agent ID" }),
|
|
@@ -6258,7 +6002,7 @@ function AgentNodeConfigForm({
|
|
|
6258
6002
|
}
|
|
6259
6003
|
),
|
|
6260
6004
|
connOptions.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
6261
|
-
|
|
6005
|
+
chunkAWDH6WNA_js.FormSelect,
|
|
6262
6006
|
{
|
|
6263
6007
|
label: t("connectionLabel", { _: "Model provider connection" }),
|
|
6264
6008
|
value: connectionId,
|
|
@@ -6266,7 +6010,7 @@ function AgentNodeConfigForm({
|
|
|
6266
6010
|
options: [{ value: "", label: t("connectionPickPrompt", { _: "Inline model (no connection)" }) }, ...connOptions]
|
|
6267
6011
|
}
|
|
6268
6012
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
6269
|
-
|
|
6013
|
+
chunkAWDH6WNA_js.FormInput,
|
|
6270
6014
|
{
|
|
6271
6015
|
type: "text",
|
|
6272
6016
|
label: t("connectionIdLabel", { _: "Connection ID" }),
|
|
@@ -6276,7 +6020,7 @@ function AgentNodeConfigForm({
|
|
|
6276
6020
|
}
|
|
6277
6021
|
),
|
|
6278
6022
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6279
|
-
|
|
6023
|
+
chunkAWDH6WNA_js.FormInput,
|
|
6280
6024
|
{
|
|
6281
6025
|
type: "text",
|
|
6282
6026
|
label: t("modelIdLabel", { _: "Model override (optional)" }),
|
|
@@ -6286,7 +6030,7 @@ function AgentNodeConfigForm({
|
|
|
6286
6030
|
}
|
|
6287
6031
|
),
|
|
6288
6032
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6289
|
-
|
|
6033
|
+
chunkAWDH6WNA_js.FormTextarea,
|
|
6290
6034
|
{
|
|
6291
6035
|
label: t("systemPromptLabel", { _: "System prompt" }),
|
|
6292
6036
|
value: systemPrompt,
|
|
@@ -6296,7 +6040,7 @@ function AgentNodeConfigForm({
|
|
|
6296
6040
|
}
|
|
6297
6041
|
),
|
|
6298
6042
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6299
|
-
|
|
6043
|
+
chunkAWDH6WNA_js.FormTextarea,
|
|
6300
6044
|
{
|
|
6301
6045
|
label: t("userPromptLabel", { _: "User prompt" }),
|
|
6302
6046
|
value: userPrompt,
|
|
@@ -6307,7 +6051,7 @@ function AgentNodeConfigForm({
|
|
|
6307
6051
|
),
|
|
6308
6052
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-3", children: [
|
|
6309
6053
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6310
|
-
|
|
6054
|
+
chunkAWDH6WNA_js.FormInput,
|
|
6311
6055
|
{
|
|
6312
6056
|
type: "number",
|
|
6313
6057
|
label: t("maxTokensLabel", { _: "Max output tokens" }),
|
|
@@ -6319,7 +6063,7 @@ function AgentNodeConfigForm({
|
|
|
6319
6063
|
}
|
|
6320
6064
|
),
|
|
6321
6065
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6322
|
-
|
|
6066
|
+
chunkAWDH6WNA_js.FormInput,
|
|
6323
6067
|
{
|
|
6324
6068
|
type: "number",
|
|
6325
6069
|
label: t("temperatureLabel", { _: "Temperature" }),
|
|
@@ -6356,7 +6100,7 @@ function AudioInputNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
6356
6100
|
};
|
|
6357
6101
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
6358
6102
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6359
|
-
|
|
6103
|
+
chunkAWDH6WNA_js.FormInput,
|
|
6360
6104
|
{
|
|
6361
6105
|
type: "text",
|
|
6362
6106
|
label: t("urlLabel"),
|
|
@@ -6366,7 +6110,7 @@ function AudioInputNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
6366
6110
|
}
|
|
6367
6111
|
),
|
|
6368
6112
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6369
|
-
|
|
6113
|
+
chunkAWDH6WNA_js.FormSelect,
|
|
6370
6114
|
{
|
|
6371
6115
|
label: t("formatLabel"),
|
|
6372
6116
|
value: format,
|
|
@@ -6415,7 +6159,7 @@ function SpeechTranscriberNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
6415
6159
|
};
|
|
6416
6160
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
6417
6161
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6418
|
-
|
|
6162
|
+
chunkAWDH6WNA_js.FormInput,
|
|
6419
6163
|
{
|
|
6420
6164
|
type: "text",
|
|
6421
6165
|
label: t("audioUrlLabel"),
|
|
@@ -6425,7 +6169,7 @@ function SpeechTranscriberNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
6425
6169
|
}
|
|
6426
6170
|
),
|
|
6427
6171
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6428
|
-
|
|
6172
|
+
chunkAWDH6WNA_js.FormInput,
|
|
6429
6173
|
{
|
|
6430
6174
|
type: "text",
|
|
6431
6175
|
label: t("modelLabel"),
|
|
@@ -6435,7 +6179,7 @@ function SpeechTranscriberNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
6435
6179
|
}
|
|
6436
6180
|
),
|
|
6437
6181
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6438
|
-
|
|
6182
|
+
chunkAWDH6WNA_js.FormInput,
|
|
6439
6183
|
{
|
|
6440
6184
|
type: "text",
|
|
6441
6185
|
label: t("languageLabel"),
|
|
@@ -6445,7 +6189,7 @@ function SpeechTranscriberNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
6445
6189
|
}
|
|
6446
6190
|
),
|
|
6447
6191
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6448
|
-
|
|
6192
|
+
chunkAWDH6WNA_js.FormTextarea,
|
|
6449
6193
|
{
|
|
6450
6194
|
label: t("promptLabel"),
|
|
6451
6195
|
value: prompt,
|
|
@@ -6455,7 +6199,7 @@ function SpeechTranscriberNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
6455
6199
|
}
|
|
6456
6200
|
),
|
|
6457
6201
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6458
|
-
|
|
6202
|
+
chunkAWDH6WNA_js.FormSelect,
|
|
6459
6203
|
{
|
|
6460
6204
|
label: t("responseFormatLabel"),
|
|
6461
6205
|
value: responseFormat,
|
|
@@ -6464,7 +6208,7 @@ function SpeechTranscriberNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
6464
6208
|
}
|
|
6465
6209
|
),
|
|
6466
6210
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6467
|
-
|
|
6211
|
+
chunkAWDH6WNA_js.FormInput,
|
|
6468
6212
|
{
|
|
6469
6213
|
type: "text",
|
|
6470
6214
|
label: t("endpointLabel"),
|
|
@@ -6474,7 +6218,7 @@ function SpeechTranscriberNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
6474
6218
|
}
|
|
6475
6219
|
),
|
|
6476
6220
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6477
|
-
|
|
6221
|
+
chunkAWDH6WNA_js.FormInput,
|
|
6478
6222
|
{
|
|
6479
6223
|
type: "number",
|
|
6480
6224
|
label: t("timeoutLabel"),
|
|
@@ -6496,6 +6240,93 @@ function SpeechTranscriberNodeConfigForm({ config, onSave, onCancel }) {
|
|
|
6496
6240
|
)
|
|
6497
6241
|
] });
|
|
6498
6242
|
}
|
|
6243
|
+
function DashboardOutputNodeConfigForm({ config, onSave, onCancel }) {
|
|
6244
|
+
const t = chunkYXN2K77G_js.useTranslations("agents.workflow.dashboardOutputNodeConfig");
|
|
6245
|
+
const initialMode = config.dashboard ? "inline" : "reference";
|
|
6246
|
+
const [mode, setMode] = react.useState(initialMode);
|
|
6247
|
+
const [dashboardFrom, setDashboardFrom] = react.useState(config.dashboardFrom ?? "");
|
|
6248
|
+
const [inlineJson, setInlineJson] = react.useState(
|
|
6249
|
+
config.dashboard ? JSON.stringify(config.dashboard, null, 2) : ""
|
|
6250
|
+
);
|
|
6251
|
+
const [parseError, setParseError] = react.useState(null);
|
|
6252
|
+
const handleSave = () => {
|
|
6253
|
+
if (mode === "reference") {
|
|
6254
|
+
const trimmed = dashboardFrom.trim();
|
|
6255
|
+
onSave({ type: "dashboard_output", dashboardFrom: trimmed });
|
|
6256
|
+
return;
|
|
6257
|
+
}
|
|
6258
|
+
try {
|
|
6259
|
+
const parsed = inlineJson.trim() ? JSON.parse(inlineJson) : {};
|
|
6260
|
+
setParseError(null);
|
|
6261
|
+
onSave({ type: "dashboard_output", dashboard: parsed });
|
|
6262
|
+
} catch (error) {
|
|
6263
|
+
setParseError(error instanceof Error ? error.message : String(error));
|
|
6264
|
+
}
|
|
6265
|
+
};
|
|
6266
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
6267
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: t("description") }),
|
|
6268
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
|
|
6269
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6270
|
+
"button",
|
|
6271
|
+
{
|
|
6272
|
+
type: "button",
|
|
6273
|
+
onClick: () => setMode("reference"),
|
|
6274
|
+
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-gray-200 bg-white text-gray-600 hover:border-fuchsia-300 dark:border-white/10 dark:bg-white/5 dark:text-gray-300"}`,
|
|
6275
|
+
children: t("modeReference")
|
|
6276
|
+
}
|
|
6277
|
+
),
|
|
6278
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6279
|
+
"button",
|
|
6280
|
+
{
|
|
6281
|
+
type: "button",
|
|
6282
|
+
onClick: () => setMode("inline"),
|
|
6283
|
+
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-gray-200 bg-white text-gray-600 hover:border-fuchsia-300 dark:border-white/10 dark:bg-white/5 dark:text-gray-300"}`,
|
|
6284
|
+
children: t("modeInline")
|
|
6285
|
+
}
|
|
6286
|
+
)
|
|
6287
|
+
] }),
|
|
6288
|
+
mode === "reference" ? /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
6289
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300", children: t("referenceLabel") }),
|
|
6290
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6291
|
+
"input",
|
|
6292
|
+
{
|
|
6293
|
+
type: "text",
|
|
6294
|
+
value: dashboardFrom,
|
|
6295
|
+
onChange: (event) => setDashboardFrom(event.target.value),
|
|
6296
|
+
placeholder: t("referencePlaceholder"),
|
|
6297
|
+
className: "w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-sm font-mono text-gray-900 placeholder:text-gray-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"
|
|
6298
|
+
}
|
|
6299
|
+
),
|
|
6300
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[10px] text-gray-500 dark:text-gray-400", children: t("referenceHelp") })
|
|
6301
|
+
] }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
6302
|
+
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300", children: t("inlineLabel") }),
|
|
6303
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6304
|
+
"textarea",
|
|
6305
|
+
{
|
|
6306
|
+
value: inlineJson,
|
|
6307
|
+
onChange: (event) => setInlineJson(event.target.value),
|
|
6308
|
+
placeholder: '{\\n "kpis": [],\\n "charts": [],\\n "tables": []\\n}',
|
|
6309
|
+
rows: 12,
|
|
6310
|
+
className: "w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-xs font-mono text-gray-900 placeholder:text-gray-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"
|
|
6311
|
+
}
|
|
6312
|
+
),
|
|
6313
|
+
parseError ? /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "mt-1 text-[10px] font-medium text-red-600 dark:text-red-400", children: [
|
|
6314
|
+
t("parseError"),
|
|
6315
|
+
": ",
|
|
6316
|
+
parseError
|
|
6317
|
+
] }) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-[10px] text-gray-500 dark:text-gray-400", children: t("inlineHelp") })
|
|
6318
|
+
] }),
|
|
6319
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6320
|
+
ConfigFormActions,
|
|
6321
|
+
{
|
|
6322
|
+
cancelLabel: t("cancel"),
|
|
6323
|
+
saveLabel: t("save"),
|
|
6324
|
+
onCancel,
|
|
6325
|
+
onSave: handleSave
|
|
6326
|
+
}
|
|
6327
|
+
)
|
|
6328
|
+
] });
|
|
6329
|
+
}
|
|
6499
6330
|
var NODE_TITLE_KEYS = {
|
|
6500
6331
|
start: "startNodeConfig",
|
|
6501
6332
|
end: "endNodeConfig",
|
|
@@ -6517,11 +6348,11 @@ var NODE_TITLE_KEYS = {
|
|
|
6517
6348
|
entity: "entityNodeConfig",
|
|
6518
6349
|
datasource: "datasourceNodeConfig",
|
|
6519
6350
|
group: "groupNodeConfig",
|
|
6520
|
-
model_provider: "modelProviderNodeConfig",
|
|
6521
6351
|
rule: "ruleNodeConfig",
|
|
6522
6352
|
agent: "agentNodeConfig",
|
|
6523
6353
|
audio_input: "audioInputNodeConfig",
|
|
6524
|
-
speech_transcriber: "speechTranscriberNodeConfig"
|
|
6354
|
+
speech_transcriber: "speechTranscriberNodeConfig",
|
|
6355
|
+
dashboard_output: "dashboardOutputNodeConfig"
|
|
6525
6356
|
};
|
|
6526
6357
|
function LogicNodeModal({ onSave, entities = [], datasources = [], onLoadTables, onLoadSchema }) {
|
|
6527
6358
|
const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
|
|
@@ -6582,8 +6413,10 @@ function LogicNodeModal({ onSave, entities = [], datasources = [], onLoadTables,
|
|
|
6582
6413
|
return /* @__PURE__ */ jsxRuntime.jsx(EntityNodeConfigForm, { config, entities, onSave: handleSave, onCancel: closeModal });
|
|
6583
6414
|
case "group":
|
|
6584
6415
|
return /* @__PURE__ */ jsxRuntime.jsx(GroupNodeConfigForm, { config, onSave: handleSave, onCancel: closeModal });
|
|
6585
|
-
|
|
6586
|
-
|
|
6416
|
+
// model_provider was removed from the canvas — providers are
|
|
6417
|
+
// now account-level credentials configured in Settings, not
|
|
6418
|
+
// draggable nodes. Any legacy graph that still has a
|
|
6419
|
+
// model_provider node falls through to default → no edit form.
|
|
6587
6420
|
case "rule":
|
|
6588
6421
|
return /* @__PURE__ */ jsxRuntime.jsx(RuleNodeConfigForm, { config, onSave: handleSave, onCancel: closeModal });
|
|
6589
6422
|
case "agent":
|
|
@@ -6592,13 +6425,15 @@ function LogicNodeModal({ onSave, entities = [], datasources = [], onLoadTables,
|
|
|
6592
6425
|
return /* @__PURE__ */ jsxRuntime.jsx(AudioInputNodeConfigForm, { config, onSave: handleSave, onCancel: closeModal });
|
|
6593
6426
|
case "speech_transcriber":
|
|
6594
6427
|
return /* @__PURE__ */ jsxRuntime.jsx(SpeechTranscriberNodeConfigForm, { config, onSave: handleSave, onCancel: closeModal });
|
|
6428
|
+
case "dashboard_output":
|
|
6429
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DashboardOutputNodeConfigForm, { config, onSave: handleSave, onCancel: closeModal });
|
|
6595
6430
|
default:
|
|
6596
6431
|
return null;
|
|
6597
6432
|
}
|
|
6598
6433
|
};
|
|
6599
6434
|
const isExperimental = isExperimentalNodeType(config.type);
|
|
6600
6435
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6601
|
-
|
|
6436
|
+
chunkAWDH6WNA_js.GlassModal,
|
|
6602
6437
|
{
|
|
6603
6438
|
open,
|
|
6604
6439
|
onClose: closeModal,
|
|
@@ -6669,7 +6504,7 @@ function NodeContextMenu({ position, targetId, onClose, onEdit, onDuplicate, onC
|
|
|
6669
6504
|
}
|
|
6670
6505
|
];
|
|
6671
6506
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6672
|
-
|
|
6507
|
+
chunkAWDH6WNA_js.ContextMenu,
|
|
6673
6508
|
{
|
|
6674
6509
|
position,
|
|
6675
6510
|
onClose,
|
|
@@ -6726,7 +6561,7 @@ function PanelContextMenu({ position, onClose, onPaste, onSelectAll, onFitView,
|
|
|
6726
6561
|
}
|
|
6727
6562
|
];
|
|
6728
6563
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6729
|
-
|
|
6564
|
+
chunkAWDH6WNA_js.ContextMenu,
|
|
6730
6565
|
{
|
|
6731
6566
|
position,
|
|
6732
6567
|
onClose,
|
|
@@ -6873,7 +6708,7 @@ function SelectionContextMenu({
|
|
|
6873
6708
|
}
|
|
6874
6709
|
];
|
|
6875
6710
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6876
|
-
|
|
6711
|
+
chunkAWDH6WNA_js.ContextMenu,
|
|
6877
6712
|
{
|
|
6878
6713
|
position,
|
|
6879
6714
|
onClose,
|
|
@@ -6974,10 +6809,14 @@ var BUILT_IN_NODE_TYPES = {
|
|
|
6974
6809
|
iteration_start: IterationStartFlowNode,
|
|
6975
6810
|
note: NoteFlowNode,
|
|
6976
6811
|
datasource: DatasourceFlowNode,
|
|
6977
|
-
model_provider
|
|
6812
|
+
// model_provider removed from canvas — providers are now
|
|
6813
|
+
// account-level credentials (configured in Settings), not draggable
|
|
6814
|
+
// nodes. Agents reference the provider via the `Models` tab in the
|
|
6815
|
+
// agent modal. See agent-modal.tsx + n8n/Dify patterns.
|
|
6978
6816
|
group: GroupFlowNode,
|
|
6979
6817
|
audio_input: AudioInputFlowNode,
|
|
6980
|
-
speech_transcriber: SpeechTranscriberFlowNode
|
|
6818
|
+
speech_transcriber: SpeechTranscriberFlowNode,
|
|
6819
|
+
dashboard_output: DashboardOutputFlowNode
|
|
6981
6820
|
};
|
|
6982
6821
|
var ALL_LOGIC_NODE_TYPES = [
|
|
6983
6822
|
"start",
|
|
@@ -7002,10 +6841,10 @@ var ALL_LOGIC_NODE_TYPES = [
|
|
|
7002
6841
|
"rule",
|
|
7003
6842
|
"entity",
|
|
7004
6843
|
"datasource",
|
|
7005
|
-
"model_provider",
|
|
7006
6844
|
"group",
|
|
7007
6845
|
"audio_input",
|
|
7008
|
-
"speech_transcriber"
|
|
6846
|
+
"speech_transcriber",
|
|
6847
|
+
"dashboard_output"
|
|
7009
6848
|
];
|
|
7010
6849
|
function isLogicNodeType(nodeType) {
|
|
7011
6850
|
return ALL_LOGIC_NODE_TYPES.includes(nodeType);
|
|
@@ -7029,6 +6868,7 @@ var AUTO_SAVE_DEBOUNCE_MS = 2e3;
|
|
|
7029
6868
|
function WorkflowCanvasInner({
|
|
7030
6869
|
agents,
|
|
7031
6870
|
models,
|
|
6871
|
+
modelProviders = [],
|
|
7032
6872
|
tools,
|
|
7033
6873
|
agentTools = [],
|
|
7034
6874
|
rules,
|
|
@@ -7063,7 +6903,9 @@ function WorkflowCanvasInner({
|
|
|
7063
6903
|
openAgentModalAction(
|
|
7064
6904
|
{ agentId: "", name: "", order: 0, enabled: true, temperature: 0.7, maxTokens: 4096 },
|
|
7065
6905
|
models,
|
|
7066
|
-
true
|
|
6906
|
+
true,
|
|
6907
|
+
agentTools,
|
|
6908
|
+
modelProviders
|
|
7067
6909
|
);
|
|
7068
6910
|
}
|
|
7069
6911
|
}, [isCreatingAgent]);
|
|
@@ -7210,7 +7052,7 @@ function WorkflowCanvasInner({
|
|
|
7210
7052
|
providerName: models.find((m) => m.id === agent.modelId)?.provider,
|
|
7211
7053
|
onSelect: () => {
|
|
7212
7054
|
setSelectedAgentId(agent.agentId);
|
|
7213
|
-
openAgentModalAction(agent, models, false, agentTools);
|
|
7055
|
+
openAgentModalAction(agent, models, false, agentTools, modelProviders);
|
|
7214
7056
|
},
|
|
7215
7057
|
onRemoveFromCanvas: handleRemoveNodeFromCanvas
|
|
7216
7058
|
}
|
|
@@ -7593,7 +7435,7 @@ function WorkflowCanvasInner({
|
|
|
7593
7435
|
const agent = targetNode.data?.agent;
|
|
7594
7436
|
if (agent) {
|
|
7595
7437
|
setSelectedAgentId(agent.agentId ?? agent.id ?? null);
|
|
7596
|
-
openAgentModalAction(agent, models, false, agentTools);
|
|
7438
|
+
openAgentModalAction(agent, models, false, agentTools, modelProviders);
|
|
7597
7439
|
}
|
|
7598
7440
|
} else if (targetNode.type === "tool") {
|
|
7599
7441
|
const tool = targetNode.data?.tool;
|
|
@@ -8092,7 +7934,7 @@ function WorkflowCanvasInner({
|
|
|
8092
7934
|
selected: false,
|
|
8093
7935
|
onSelect: () => {
|
|
8094
7936
|
setSelectedAgentId(agent.agentId);
|
|
8095
|
-
openAgentModalAction(agent, models, false, agentTools);
|
|
7937
|
+
openAgentModalAction(agent, models, false, agentTools, modelProviders);
|
|
8096
7938
|
},
|
|
8097
7939
|
onRemoveFromCanvas: handleRemoveNodeFromCanvas
|
|
8098
7940
|
}
|
|
@@ -8781,7 +8623,6 @@ exports.LangChainIcon = LangChainIcon;
|
|
|
8781
8623
|
exports.ListOperatorFlowNode = ListOperatorFlowNode;
|
|
8782
8624
|
exports.LogicNodeModal = LogicNodeModal;
|
|
8783
8625
|
exports.MINIMAP_NODE_COLORS = MINIMAP_NODE_COLORS;
|
|
8784
|
-
exports.ModelProviderFlowNode = ModelProviderFlowNode;
|
|
8785
8626
|
exports.NODE_EXECUTION_ACCENT_COLORS = NODE_EXECUTION_ACCENT_COLORS;
|
|
8786
8627
|
exports.NodeCard = NodeCard;
|
|
8787
8628
|
exports.NodeCardBadge = NodeCardBadge;
|
|
@@ -8825,5 +8666,5 @@ exports.useModalStore = useModalStore;
|
|
|
8825
8666
|
exports.useWorkflowBuilderClient = useWorkflowBuilderClient;
|
|
8826
8667
|
exports.useWorkflowBuilderClientOptional = useWorkflowBuilderClientOptional;
|
|
8827
8668
|
exports.useWorkflowStore = useWorkflowStore;
|
|
8828
|
-
//# sourceMappingURL=chunk-
|
|
8829
|
-
//# sourceMappingURL=chunk-
|
|
8669
|
+
//# sourceMappingURL=chunk-QSMPKL27.js.map
|
|
8670
|
+
//# sourceMappingURL=chunk-QSMPKL27.js.map
|