@datatechsolutions/ui 3.6.0 → 3.6.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/index.js +106 -106
- package/dist/astrlabe/index.mjs +2 -2
- package/dist/astrlabe/workflow-canvas.js +2 -2
- package/dist/astrlabe/workflow-canvas.mjs +1 -1
- package/dist/{chunk-I63NFWIA.mjs → chunk-3Z66NXEB.mjs} +3 -3
- package/dist/{chunk-I63NFWIA.mjs.map → chunk-3Z66NXEB.mjs.map} +1 -1
- package/dist/{chunk-XTXLRQ3H.mjs → chunk-4JDJRGAB.mjs} +27 -28
- package/dist/chunk-4JDJRGAB.mjs.map +1 -0
- package/dist/{chunk-WEZ722BS.mjs → chunk-5ZAZ2C7A.mjs} +4 -4
- package/dist/{chunk-WEZ722BS.mjs.map → chunk-5ZAZ2C7A.mjs.map} +1 -1
- package/dist/{chunk-UWSMHKOF.js → chunk-6ZMTJSQF.js} +78 -78
- package/dist/chunk-6ZMTJSQF.js.map +1 -0
- package/dist/{chunk-VPOIX2DY.js → chunk-DRORQGN2.js} +27 -27
- package/dist/{chunk-VPOIX2DY.js.map → chunk-DRORQGN2.js.map} +1 -1
- package/dist/{chunk-QTA5I6FC.mjs → chunk-KDFBN2L2.mjs} +34 -31
- package/dist/chunk-KDFBN2L2.mjs.map +1 -0
- package/dist/{chunk-QHP2MR2F.js → chunk-KEWRLEYV.js} +4 -4
- package/dist/{chunk-QHP2MR2F.js.map → chunk-KEWRLEYV.js.map} +1 -1
- package/dist/{chunk-DYWSG42B.mjs → chunk-MQNXKBFP.mjs} +8 -8
- package/dist/chunk-MQNXKBFP.mjs.map +1 -0
- package/dist/{chunk-3WXMBAGN.js → chunk-MUOTTGCX.js} +27 -28
- package/dist/chunk-MUOTTGCX.js.map +1 -0
- package/dist/{chunk-S7AV6XEY.js → chunk-SQZGQOKU.js} +32 -29
- package/dist/chunk-SQZGQOKU.js.map +1 -0
- package/dist/platform/agents-workspace.js +4 -4
- package/dist/platform/agents-workspace.mjs +3 -3
- package/dist/platform/index.js +15 -15
- package/dist/platform/index.mjs +6 -6
- package/dist/platform/pages/index.js +325 -320
- package/dist/platform/pages/index.js.map +1 -1
- package/dist/platform/pages/index.mjs +320 -315
- package/dist/platform/pages/index.mjs.map +1 -1
- package/dist/platform/workflow-canvas-shell.js +3 -3
- package/dist/platform/workflow-canvas-shell.mjs +2 -2
- package/package.json +1 -1
- package/dist/chunk-3WXMBAGN.js.map +0 -1
- package/dist/chunk-DYWSG42B.mjs.map +0 -1
- package/dist/chunk-QTA5I6FC.mjs.map +0 -1
- package/dist/chunk-S7AV6XEY.js.map +0 -1
- package/dist/chunk-UWSMHKOF.js.map +0 -1
- package/dist/chunk-XTXLRQ3H.mjs.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunkSQZGQOKU_js = require('./chunk-SQZGQOKU.js');
|
|
5
5
|
var chunkGCYYGSHU_js = require('./chunk-GCYYGSHU.js');
|
|
6
6
|
var chunkYXN2K77G_js = require('./chunk-YXN2K77G.js');
|
|
7
7
|
var chunk72SWXOD5_js = require('./chunk-72SWXOD5.js');
|
|
@@ -40,11 +40,11 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
|
|
|
40
40
|
const isCompact = data.displayMode === "compact";
|
|
41
41
|
if (!config) {
|
|
42
42
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
43
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
44
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
45
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
46
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
47
|
-
|
|
43
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkSQZGQOKU_js.NodeRunningIndicator, { nodeId: id }),
|
|
44
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkSQZGQOKU_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
|
|
45
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkSQZGQOKU_js.WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
|
|
46
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkSQZGQOKU_js.NodeCard, { variant: "error", nodeType: "model_provider", width: "w-[280px]", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
47
|
+
chunkSQZGQOKU_js.NodeCardHeader,
|
|
48
48
|
{
|
|
49
49
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.ExclamationTriangleIcon, { className: "h-6 w-6 text-white" }),
|
|
50
50
|
title: data.label || "Model Provider",
|
|
@@ -52,8 +52,8 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
|
|
|
52
52
|
iconClassName: "flex h-11 w-11 items-center justify-center rounded-xl bg-gradient-to-br from-amber-400 to-orange-500 shadow-lg"
|
|
53
53
|
}
|
|
54
54
|
) }),
|
|
55
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
56
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
55
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkSQZGQOKU_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-slate-500" }),
|
|
56
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkSQZGQOKU_js.WorkflowHandle, { type: "source", position: react$1.Position.Bottom, id: "bottom-out", colorClass: "!bg-slate-500" })
|
|
57
57
|
] });
|
|
58
58
|
}
|
|
59
59
|
const providerLabel = PROVIDER_TYPE_LABELS[config.providerType] ?? config.providerType;
|
|
@@ -62,18 +62,18 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
|
|
|
62
62
|
const isConfigured = !!(config.credentialRef || config.apiKeyRef);
|
|
63
63
|
const logo = PROVIDER_LOGOS[config.providerType];
|
|
64
64
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
65
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
66
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
67
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
65
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkSQZGQOKU_js.NodeRunningIndicator, { nodeId: id }),
|
|
66
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkSQZGQOKU_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
|
|
67
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkSQZGQOKU_js.WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
|
|
68
68
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
69
69
|
"button",
|
|
70
70
|
{
|
|
71
71
|
type: "button",
|
|
72
72
|
onClick: () => data.onEdit?.(id),
|
|
73
73
|
className: "w-full text-left",
|
|
74
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
74
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(chunkSQZGQOKU_js.NodeCard, { compact: isCompact, selected, nodeType: "model_provider", width: "w-[280px]", children: [
|
|
75
75
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
76
|
-
|
|
76
|
+
chunkSQZGQOKU_js.NodeCardHeader,
|
|
77
77
|
{
|
|
78
78
|
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" }),
|
|
79
79
|
title: displayName,
|
|
@@ -81,11 +81,11 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
|
|
|
81
81
|
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"}`
|
|
82
82
|
}
|
|
83
83
|
),
|
|
84
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
85
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
86
|
-
regionLabel && /* @__PURE__ */ jsxRuntime.jsx(
|
|
87
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
88
|
-
config.modelFilter && config.modelFilter.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
84
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkSQZGQOKU_js.NodeCardMeta, { compact: isCompact, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [
|
|
85
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Badge, { color: "zinc", size: "xs", children: providerLabel }),
|
|
86
|
+
regionLabel && /* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Badge, { color: "zinc", size: "xs", children: regionLabel }),
|
|
87
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkGCYYGSHU_js.Badge, { color: isConfigured ? "green" : "amber", size: "xs", children: isConfigured ? "Configured" : "Setup needed" }),
|
|
88
|
+
config.modelFilter && config.modelFilter.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(chunkGCYYGSHU_js.Badge, { color: "zinc", size: "xs", children: [
|
|
89
89
|
config.modelFilter.length,
|
|
90
90
|
" models"
|
|
91
91
|
] })
|
|
@@ -93,8 +93,8 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
|
|
|
93
93
|
] })
|
|
94
94
|
}
|
|
95
95
|
),
|
|
96
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
97
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
96
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkSQZGQOKU_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-slate-500" }),
|
|
97
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkSQZGQOKU_js.WorkflowHandle, { type: "source", position: react$1.Position.Bottom, id: "bottom-out", colorClass: "!bg-slate-500" })
|
|
98
98
|
] });
|
|
99
99
|
});
|
|
100
100
|
var S3WriteFlowNode = react.memo(function S3WriteFlowNode2({ id, data, selected }) {
|
|
@@ -103,10 +103,10 @@ var S3WriteFlowNode = react.memo(function S3WriteFlowNode2({ id, data, selected
|
|
|
103
103
|
const isCompact = data.displayMode === "compact";
|
|
104
104
|
const keyPreview = config.key ? config.key.slice(0, 30) : "";
|
|
105
105
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
106
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
107
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
106
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkSQZGQOKU_js.NodeRunningIndicator, { nodeId: id }),
|
|
107
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkSQZGQOKU_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-cyan-500" }),
|
|
108
108
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
109
|
-
|
|
109
|
+
chunkSQZGQOKU_js.NodeInteractiveCard,
|
|
110
110
|
{
|
|
111
111
|
nodeId: id,
|
|
112
112
|
onEdit,
|
|
@@ -115,27 +115,27 @@ var S3WriteFlowNode = react.memo(function S3WriteFlowNode2({ id, data, selected
|
|
|
115
115
|
nodeType: "s3_write",
|
|
116
116
|
children: [
|
|
117
117
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
118
|
-
|
|
118
|
+
chunkSQZGQOKU_js.NodeCardHeader,
|
|
119
119
|
{
|
|
120
|
-
icon: /* @__PURE__ */ jsxRuntime.jsx(
|
|
120
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(chunkSQZGQOKU_js.NodeIconBubble, { tone: "s3_write", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CloudArrowUpIcon, { className: "h-5 w-5 text-white" }) }),
|
|
121
121
|
title: label,
|
|
122
122
|
description: t("s3WriteNodeDescription"),
|
|
123
123
|
compact: isCompact,
|
|
124
124
|
iconClassName: ""
|
|
125
125
|
}
|
|
126
126
|
),
|
|
127
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
127
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkSQZGQOKU_js.NodeCardMeta, { compact: isCompact, children: [
|
|
128
128
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
129
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
130
|
-
config.bucket && /* @__PURE__ */ jsxRuntime.jsx(
|
|
129
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkSQZGQOKU_js.NodeCardBadge, { tone: "s3_write", children: t("s3WriteNode") }),
|
|
130
|
+
config.bucket && /* @__PURE__ */ jsxRuntime.jsx(chunkSQZGQOKU_js.NodeCardBadge, { tone: "s3_write", soft: true, children: config.bucket }),
|
|
131
131
|
keyPreview && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: keyPreview })
|
|
132
132
|
] }),
|
|
133
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
133
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkSQZGQOKU_js.NodeCardDeleteAction, { nodeId: id, onDelete })
|
|
134
134
|
] })
|
|
135
135
|
]
|
|
136
136
|
}
|
|
137
137
|
),
|
|
138
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
138
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkSQZGQOKU_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-cyan-500" })
|
|
139
139
|
] });
|
|
140
140
|
});
|
|
141
141
|
function AnthropicModelIcon({ className }) {
|
|
@@ -611,13 +611,13 @@ function AgentCapabilityCard({ elo, setElo, models, selectedModelId, setSelected
|
|
|
611
611
|
] });
|
|
612
612
|
}
|
|
613
613
|
function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFramework, setSelectedFramework, markDirty, connectedProviderTypes }) {
|
|
614
|
-
const frameworkKeys = Object.keys(
|
|
614
|
+
const frameworkKeys = Object.keys(chunkSQZGQOKU_js.FRAMEWORK_META);
|
|
615
615
|
const hasProviderConstraints = connectedProviderTypes.length > 0;
|
|
616
|
-
const compatibleModels =
|
|
616
|
+
const compatibleModels = chunkSQZGQOKU_js.getCompatibleModels(models, selectedFramework);
|
|
617
617
|
const handleFrameworkChange = react.useCallback((newFramework) => {
|
|
618
618
|
setSelectedFramework(newFramework);
|
|
619
|
-
if (!
|
|
620
|
-
const compatible =
|
|
619
|
+
if (!chunkSQZGQOKU_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
|
|
620
|
+
const compatible = chunkSQZGQOKU_js.getCompatibleModels(models, newFramework);
|
|
621
621
|
if (compatible.length > 0) {
|
|
622
622
|
setSelectedModelId(compatible[0].id);
|
|
623
623
|
}
|
|
@@ -628,10 +628,10 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
|
|
|
628
628
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
629
629
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-gray-500 dark:text-gray-400", children: t("agentDrawer.framework") }),
|
|
630
630
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1.5", children: frameworkKeys.map((key) => {
|
|
631
|
-
const meta =
|
|
631
|
+
const meta = chunkSQZGQOKU_js.FRAMEWORK_META[key];
|
|
632
632
|
const isSelected = key === selectedFramework;
|
|
633
|
-
const compatCount =
|
|
634
|
-
const isCompatibleWithProviders = !hasProviderConstraints ||
|
|
633
|
+
const compatCount = chunkSQZGQOKU_js.getCompatibleModels(models, key).length;
|
|
634
|
+
const isCompatibleWithProviders = !hasProviderConstraints || chunkSQZGQOKU_js.isFrameworkCompatibleWithProviders(key, connectedProviderTypes);
|
|
635
635
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
636
636
|
"button",
|
|
637
637
|
{
|
|
@@ -663,7 +663,7 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
|
|
|
663
663
|
] }),
|
|
664
664
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-2", children: models.map((model) => {
|
|
665
665
|
const isSelected = model.id === selectedModelId;
|
|
666
|
-
const isCompatible =
|
|
666
|
+
const isCompatible = chunkSQZGQOKU_js.isModelCompatibleWithFramework(model.id, selectedFramework);
|
|
667
667
|
const { IconComponent, color, providerLabel } = getModelIcon(model.id);
|
|
668
668
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
669
669
|
"button",
|
|
@@ -821,7 +821,7 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
|
|
|
821
821
|
] }),
|
|
822
822
|
tool.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: tool.description }),
|
|
823
823
|
tool.compatibleFrameworks && tool.compatibleFrameworks.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-1 flex flex-wrap gap-0.5", children: tool.compatibleFrameworks.map((framework) => {
|
|
824
|
-
const meta =
|
|
824
|
+
const meta = chunkSQZGQOKU_js.getFrameworkMeta(framework);
|
|
825
825
|
const isCurrentFw = framework === agentFramework;
|
|
826
826
|
return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: `inline-flex items-center gap-0.5 rounded px-1.5 py-0.5 text-[8px] font-medium ${isCurrentFw ? meta.badgeColor : "bg-gray-100 text-gray-500 dark:bg-white/5 dark:text-gray-400"}`, children: [
|
|
827
827
|
/* @__PURE__ */ jsxRuntime.jsx(meta.IconComponent, { className: "h-2.5 w-2.5" }),
|
|
@@ -886,7 +886,7 @@ function EngineTab({
|
|
|
886
886
|
const compatibleProviders = findCompatibleProviders(selectedModelId, modelProviders);
|
|
887
887
|
const configuredCompatible = compatibleProviders.filter((p) => p.configured);
|
|
888
888
|
const effectiveProvider = compatibleProviders.find((p) => p.id === selectedProviderId) ?? configuredCompatible[0] ?? compatibleProviders[0];
|
|
889
|
-
const frameworkMeta =
|
|
889
|
+
const frameworkMeta = chunkSQZGQOKU_js.getFrameworkMeta(selectedFramework);
|
|
890
890
|
const inputCard = "liquid-surface w-full rounded-lg px-3 py-1.5 text-sm text-gray-800 outline-none transition-colors focus:ring-1 focus:ring-indigo-300/40 dark:text-gray-200 dark:focus:ring-indigo-500/20";
|
|
891
891
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-5", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "overflow-hidden rounded-2xl border border-indigo-500/20 bg-gradient-to-b from-indigo-500/[0.04] via-violet-500/[0.03] to-purple-500/[0.04] dark:border-indigo-400/20 dark:from-indigo-500/[0.10] dark:via-violet-500/[0.06] dark:to-purple-500/[0.08]", children: [
|
|
892
892
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 pb-3 pt-4", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1030,9 +1030,9 @@ function EngineTab({
|
|
|
1030
1030
|
}
|
|
1031
1031
|
function AgentModal({ onSaved, onPersist }) {
|
|
1032
1032
|
const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
|
|
1033
|
-
const activeModal =
|
|
1034
|
-
const agentData =
|
|
1035
|
-
const closeModal =
|
|
1033
|
+
const activeModal = chunkSQZGQOKU_js.useModalStore((s) => s.activeModal);
|
|
1034
|
+
const agentData = chunkSQZGQOKU_js.useModalStore((s) => s.agentData);
|
|
1035
|
+
const closeModal = chunkSQZGQOKU_js.useModalStore((s) => s.closeModal);
|
|
1036
1036
|
const open = activeModal === "agent";
|
|
1037
1037
|
const agent = agentData?.agent ?? null;
|
|
1038
1038
|
const models = agentData?.models ?? [];
|
|
@@ -1477,7 +1477,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1477
1477
|
const markDirty = useSubworkflowStore((s) => s.markDirty);
|
|
1478
1478
|
const markSaved = useSubworkflowStore((s) => s.markSaved);
|
|
1479
1479
|
const closeModal = useSubworkflowStore((s) => s.closeModal);
|
|
1480
|
-
const agentBehind =
|
|
1480
|
+
const agentBehind = chunkSQZGQOKU_js.useModalStore((s) => s.activeModal === "agent" ? s.agentData?.agent?.name : null);
|
|
1481
1481
|
const isCreateMode = !tool?.toolId;
|
|
1482
1482
|
const initialGraph = react.useMemo(() => {
|
|
1483
1483
|
const config = tool?.config;
|
|
@@ -1506,9 +1506,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1506
1506
|
}, [tool, onSaved, name, category, description, timeoutMs, latestGraphRef, markSaved]);
|
|
1507
1507
|
if (!tool) return null;
|
|
1508
1508
|
const categoryKey = category ?? "external";
|
|
1509
|
-
const gradient = tool.color ??
|
|
1510
|
-
const categoryPill =
|
|
1511
|
-
const IconComponent =
|
|
1509
|
+
const gradient = tool.color ?? chunkSQZGQOKU_js.CATEGORY_COLORS[categoryKey] ?? chunkSQZGQOKU_js.CATEGORY_COLORS.external;
|
|
1510
|
+
const categoryPill = chunkSQZGQOKU_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunkSQZGQOKU_js.CATEGORY_PILL_COLORS.external;
|
|
1511
|
+
const IconComponent = chunkSQZGQOKU_js.ICON_MAP[tool.icon ?? ""] ?? outline.ArrowPathRoundedSquareIcon;
|
|
1512
1512
|
const graph = latestGraphRef.current;
|
|
1513
1513
|
const startNode = graph.nodes.find((n) => n.type === "start");
|
|
1514
1514
|
const endNode = graph.nodes.find((n) => n.type === "end");
|
|
@@ -1573,7 +1573,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1573
1573
|
{
|
|
1574
1574
|
type: "button",
|
|
1575
1575
|
onClick: () => setCategory(cat),
|
|
1576
|
-
className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${
|
|
1576
|
+
className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${chunkSQZGQOKU_js.CATEGORY_PILL_COLORS[cat] ?? chunkSQZGQOKU_js.CATEGORY_PILL_COLORS.external} ring-1 ring-current/20` : "bg-white/30 text-gray-500 hover:bg-white/50 dark:bg-white/5 dark:text-gray-400"}`,
|
|
1577
1577
|
children: cat
|
|
1578
1578
|
},
|
|
1579
1579
|
cat
|
|
@@ -1660,7 +1660,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1660
1660
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto" })
|
|
1661
1661
|
] }),
|
|
1662
1662
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1663
|
-
|
|
1663
|
+
chunkSQZGQOKU_js.WorkflowCanvas,
|
|
1664
1664
|
{
|
|
1665
1665
|
initialGraph,
|
|
1666
1666
|
agents: [],
|
|
@@ -1676,9 +1676,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1676
1676
|
}
|
|
1677
1677
|
function PipelineSettingsModal({ onSave }) {
|
|
1678
1678
|
const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
|
|
1679
|
-
const activeModal =
|
|
1680
|
-
const data =
|
|
1681
|
-
const closeModal =
|
|
1679
|
+
const activeModal = chunkSQZGQOKU_js.useModalStore((s) => s.activeModal);
|
|
1680
|
+
const data = chunkSQZGQOKU_js.useModalStore((s) => s.pipelineSettingsData);
|
|
1681
|
+
const closeModal = chunkSQZGQOKU_js.useModalStore((s) => s.closeModal);
|
|
1682
1682
|
const open = activeModal === "pipeline-settings";
|
|
1683
1683
|
const [nameValue, setNameValue] = react.useState("");
|
|
1684
1684
|
const [descriptionValue, setDescriptionValue] = react.useState("");
|
|
@@ -3027,8 +3027,8 @@ function CollapsibleSection({ title, icon, colorClass, defaultOpen = true, count
|
|
|
3027
3027
|
] });
|
|
3028
3028
|
}
|
|
3029
3029
|
function LogicNodeItemCard({ item, translationFunction }) {
|
|
3030
|
-
const IconComponent =
|
|
3031
|
-
const gradient =
|
|
3030
|
+
const IconComponent = chunkSQZGQOKU_js.LOGIC_ICON_MAP[item.nodeType];
|
|
3031
|
+
const gradient = chunkSQZGQOKU_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-gray-400 to-gray-500";
|
|
3032
3032
|
const defaultConfig = chunk72SWXOD5_js.createDefaultLogicNodeConfig(item.nodeType);
|
|
3033
3033
|
const configJson = defaultConfig ? JSON.stringify(defaultConfig) : void 0;
|
|
3034
3034
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -3099,7 +3099,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3099
3099
|
[entityTypes, normalizedQuery]
|
|
3100
3100
|
);
|
|
3101
3101
|
const filteredLogicItems = react.useMemo(() => {
|
|
3102
|
-
const visibleByDefault = LOGIC_NODE_ITEMS.filter((item) => !
|
|
3102
|
+
const visibleByDefault = LOGIC_NODE_ITEMS.filter((item) => !chunkSQZGQOKU_js.EXPERIMENTAL_NODE_TYPES.has(item.nodeType));
|
|
3103
3103
|
if (!normalizedQuery) return visibleByDefault;
|
|
3104
3104
|
return visibleByDefault.filter(
|
|
3105
3105
|
(item) => t(item.nameKey).toLowerCase().includes(normalizedQuery) || t(item.descriptionKey).toLowerCase().includes(normalizedQuery)
|
|
@@ -3312,8 +3312,8 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3312
3312
|
limit: entity.defaultLimit
|
|
3313
3313
|
});
|
|
3314
3314
|
const dsLogo = getDatasourceLogo(entity.id);
|
|
3315
|
-
const EntityIcon =
|
|
3316
|
-
const entityGradient =
|
|
3315
|
+
const EntityIcon = chunkSQZGQOKU_js.getEntityIcon(entity.id);
|
|
3316
|
+
const entityGradient = chunkSQZGQOKU_js.getEntityGradient(entity.id);
|
|
3317
3317
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3318
3318
|
"div",
|
|
3319
3319
|
{
|
|
@@ -3668,9 +3668,9 @@ function formatDuration2(durationMs) {
|
|
|
3668
3668
|
}
|
|
3669
3669
|
function RunPanel({ open, onClose, onRun, onStop }) {
|
|
3670
3670
|
const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.runPanel");
|
|
3671
|
-
const nodes =
|
|
3672
|
-
const isRunning =
|
|
3673
|
-
const nodeResults =
|
|
3671
|
+
const nodes = chunkSQZGQOKU_js.useWorkflowStore((state) => state.nodes);
|
|
3672
|
+
const isRunning = chunkSQZGQOKU_js.useWorkflowStore((state) => state.isRunning);
|
|
3673
|
+
const nodeResults = chunkSQZGQOKU_js.useWorkflowStore((state) => state.nodeResults);
|
|
3674
3674
|
const startNode = nodes.find((node) => node.type === "start");
|
|
3675
3675
|
const hasEndNode = nodes.some((node) => node.type === "end");
|
|
3676
3676
|
const hasValidStartConfig = Boolean(
|
|
@@ -4001,8 +4001,8 @@ function inferVariables(config, nodeType) {
|
|
|
4001
4001
|
}
|
|
4002
4002
|
function VariableInspector({ open, onClose }) {
|
|
4003
4003
|
const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.variableInspector");
|
|
4004
|
-
const nodes =
|
|
4005
|
-
const edges =
|
|
4004
|
+
const nodes = chunkSQZGQOKU_js.useWorkflowStore((state) => state.nodes);
|
|
4005
|
+
const edges = chunkSQZGQOKU_js.useWorkflowStore((state) => state.edges);
|
|
4006
4006
|
const [expandedNodes, setExpandedNodes] = react.useState(/* @__PURE__ */ new Set());
|
|
4007
4007
|
const toggleNodeExpansion = react.useCallback((nodeId) => {
|
|
4008
4008
|
setExpandedNodes((current) => {
|
|
@@ -4064,8 +4064,8 @@ function VariableInspector({ open, onClose }) {
|
|
|
4064
4064
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-gray-500 dark:text-gray-400", children: translations("noNodes") })
|
|
4065
4065
|
] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-gray-100 dark:divide-gray-800", children: nodeVariableEntries.map((entry) => {
|
|
4066
4066
|
const isExpanded = expandedNodes.has(entry.nodeId);
|
|
4067
|
-
const IconComponent =
|
|
4068
|
-
const gradient =
|
|
4067
|
+
const IconComponent = chunkSQZGQOKU_js.LOGIC_ICON_MAP[entry.nodeType];
|
|
4068
|
+
const gradient = chunkSQZGQOKU_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-gray-400 to-gray-500";
|
|
4069
4069
|
const inputVariables = entry.variables.filter((variable) => variable.direction === "input");
|
|
4070
4070
|
const outputVariables = entry.variables.filter((variable) => variable.direction === "output");
|
|
4071
4071
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": `variable-node-${entry.nodeId}`, children: [
|
|
@@ -4131,7 +4131,7 @@ function RunInputDialog({
|
|
|
4131
4131
|
onRun
|
|
4132
4132
|
}) {
|
|
4133
4133
|
const t = chunkYXN2K77G_js.useTranslations("agents.workflow.runInputDialog");
|
|
4134
|
-
const nodes =
|
|
4134
|
+
const nodes = chunkSQZGQOKU_js.useWorkflowStore((state) => state.nodes);
|
|
4135
4135
|
const [values, setValues] = react.useState({});
|
|
4136
4136
|
const inputVariableNames = react.useMemo(() => {
|
|
4137
4137
|
const storeStartNode = nodes.find((node) => node.type === "start");
|
|
@@ -4212,8 +4212,8 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
|
|
|
4212
4212
|
const [isLoadingRuns, setIsLoadingRuns] = react.useState(false);
|
|
4213
4213
|
const [selectedRun, setSelectedRun] = react.useState(null);
|
|
4214
4214
|
const [selectedNode, setSelectedNode] = react.useState(null);
|
|
4215
|
-
const isRunning =
|
|
4216
|
-
const nodeResults =
|
|
4215
|
+
const isRunning = chunkSQZGQOKU_js.useWorkflowStore((state) => state.isRunning);
|
|
4216
|
+
const nodeResults = chunkSQZGQOKU_js.useWorkflowStore((state) => state.nodeResults);
|
|
4217
4217
|
const refreshRuns = react.useCallback(async () => {
|
|
4218
4218
|
setIsLoadingRuns(true);
|
|
4219
4219
|
try {
|
|
@@ -4391,7 +4391,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
|
|
|
4391
4391
|
onAutoSaveGraph(graph);
|
|
4392
4392
|
}, [onAutoSaveGraph, onGraphSnapshot]);
|
|
4393
4393
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4394
|
-
|
|
4394
|
+
chunkSQZGQOKU_js.Workspace,
|
|
4395
4395
|
{
|
|
4396
4396
|
...workspaceProps,
|
|
4397
4397
|
onGraphChange: handleGraphChange
|
|
@@ -4762,14 +4762,14 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4762
4762
|
}
|
|
4763
4763
|
|
|
4764
4764
|
// src/astrlabe/store/selectors.ts
|
|
4765
|
-
var useCanUndo = () =>
|
|
4766
|
-
var useCanRedo = () =>
|
|
4767
|
-
var useHasCopied = () =>
|
|
4768
|
-
var useContextMenu = () =>
|
|
4769
|
-
var useEditingNodeId = () =>
|
|
4770
|
-
var useSelectedNodeCount = () =>
|
|
4771
|
-
var useIsRunning = () =>
|
|
4772
|
-
var useNodeResults = () =>
|
|
4765
|
+
var useCanUndo = () => chunkSQZGQOKU_js.useWorkflowStore((state) => state.past.length > 0);
|
|
4766
|
+
var useCanRedo = () => chunkSQZGQOKU_js.useWorkflowStore((state) => state.future.length > 0);
|
|
4767
|
+
var useHasCopied = () => chunkSQZGQOKU_js.useWorkflowStore((state) => state.clipboard !== null);
|
|
4768
|
+
var useContextMenu = () => chunkSQZGQOKU_js.useWorkflowStore((state) => state.contextMenu);
|
|
4769
|
+
var useEditingNodeId = () => chunkSQZGQOKU_js.useWorkflowStore((state) => state.editingNodeId);
|
|
4770
|
+
var useSelectedNodeCount = () => chunkSQZGQOKU_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
|
|
4771
|
+
var useIsRunning = () => chunkSQZGQOKU_js.useWorkflowStore((state) => state.isRunning);
|
|
4772
|
+
var useNodeResults = () => chunkSQZGQOKU_js.useWorkflowStore((state) => state.nodeResults);
|
|
4773
4773
|
var DEFAULT_MAX_HISTORY = 50;
|
|
4774
4774
|
function useUndoRedo(nodes, edges, setNodes, setEdges, maxHistory = DEFAULT_MAX_HISTORY) {
|
|
4775
4775
|
const pastRef = react.useRef([]);
|
|
@@ -5093,5 +5093,5 @@ exports.useNodeResults = useNodeResults;
|
|
|
5093
5093
|
exports.useSelectedNodeCount = useSelectedNodeCount;
|
|
5094
5094
|
exports.useSubworkflowStore = useSubworkflowStore;
|
|
5095
5095
|
exports.useUndoRedo = useUndoRedo;
|
|
5096
|
-
//# sourceMappingURL=chunk-
|
|
5097
|
-
//# sourceMappingURL=chunk-
|
|
5096
|
+
//# sourceMappingURL=chunk-6ZMTJSQF.js.map
|
|
5097
|
+
//# sourceMappingURL=chunk-6ZMTJSQF.js.map
|