@datatechsolutions/ui 2.11.92 → 2.11.93
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/README.md +39 -58
- package/dist/astrlabe/contracts.d.mts +14 -3
- package/dist/astrlabe/contracts.d.ts +14 -3
- package/dist/astrlabe/index.d.mts +9 -3
- package/dist/astrlabe/index.d.ts +9 -3
- package/dist/astrlabe/index.js +118 -114
- package/dist/astrlabe/index.mjs +4 -4
- package/dist/astrlabe/utils.d.mts +1 -1
- package/dist/astrlabe/utils.d.ts +1 -1
- package/dist/astrlabe/utils.js +9 -9
- package/dist/astrlabe/utils.mjs +2 -2
- package/dist/astrlabe/workflow-canvas.d.mts +1 -1
- package/dist/astrlabe/workflow-canvas.d.ts +1 -1
- package/dist/astrlabe/workflow-canvas.js +3 -3
- package/dist/astrlabe/workflow-canvas.mjs +2 -2
- package/dist/{chunk-FUVJHNNI.js → chunk-3Z366CVM.js} +29 -29
- package/dist/{chunk-FUVJHNNI.js.map → chunk-3Z366CVM.js.map} +1 -1
- package/dist/{chunk-WNCPAWLC.mjs → chunk-5W7L7BT7.mjs} +13 -2
- package/dist/chunk-5W7L7BT7.mjs.map +1 -0
- package/dist/{chunk-C7BI5LQ6.js → chunk-C3H4FM4A.js} +13 -2
- package/dist/chunk-C3H4FM4A.js.map +1 -0
- package/dist/{chunk-SFVSDGNF.js → chunk-FZTOP6EE.js} +113 -55
- package/dist/chunk-FZTOP6EE.js.map +1 -0
- package/dist/{chunk-WI663467.mjs → chunk-GMZ3PTNK.mjs} +5 -5
- package/dist/{chunk-WI663467.mjs.map → chunk-GMZ3PTNK.mjs.map} +1 -1
- package/dist/{chunk-3PKG4KFY.mjs → chunk-HUGHELRM.mjs} +64 -7
- package/dist/chunk-HUGHELRM.mjs.map +1 -0
- package/dist/{chunk-5UU3RQRB.js → chunk-NJS2YC3J.js} +15 -2
- package/dist/chunk-NJS2YC3J.js.map +1 -0
- package/dist/{chunk-XXYDLYIT.js → chunk-NYQAEPC7.js} +138 -12
- package/dist/chunk-NYQAEPC7.js.map +1 -0
- package/dist/{chunk-RELMVNNR.mjs → chunk-OLXOBT42.mjs} +3 -3
- package/dist/{chunk-RELMVNNR.mjs.map → chunk-OLXOBT42.mjs.map} +1 -1
- package/dist/{chunk-MZAS6TG4.mjs → chunk-RXFAQFE7.mjs} +3 -3
- package/dist/{chunk-MZAS6TG4.mjs.map → chunk-RXFAQFE7.mjs.map} +1 -1
- package/dist/{chunk-DADFESAQ.js → chunk-SMKN4ZVB.js} +4 -4
- package/dist/{chunk-DADFESAQ.js.map → chunk-SMKN4ZVB.js.map} +1 -1
- package/dist/{chunk-TBPWMPZU.js → chunk-ST3GH5OM.js} +4 -4
- package/dist/{chunk-TBPWMPZU.js.map → chunk-ST3GH5OM.js.map} +1 -1
- package/dist/{chunk-3SUFSAP6.mjs → chunk-TEQYIK2B.mjs} +125 -7
- package/dist/chunk-TEQYIK2B.mjs.map +1 -0
- package/dist/{chunk-53SRKVKQ.mjs → chunk-U7XM3N7F.mjs} +15 -2
- package/dist/chunk-U7XM3N7F.mjs.map +1 -0
- package/dist/{index-AioB90qq.d.mts → index-CoB18TbG.d.ts} +9 -2
- package/dist/{index-D5ai0cGZ.d.ts → index-VI9gyJXl.d.mts} +9 -2
- package/dist/platform/agents-workspace.js +6 -6
- package/dist/platform/agents-workspace.mjs +5 -5
- package/dist/platform/index.d.mts +1 -1
- package/dist/platform/index.d.ts +1 -1
- package/dist/platform/index.js +17 -17
- package/dist/platform/index.mjs +8 -8
- package/dist/platform/pages/index.d.mts +3 -3
- package/dist/platform/pages/index.d.ts +3 -3
- package/dist/platform/pages/index.js +12 -12
- package/dist/platform/pages/index.mjs +6 -6
- package/dist/platform/workflow-api-client.d.mts +2 -2
- package/dist/platform/workflow-api-client.d.ts +2 -2
- package/dist/platform/workflow-canvas-shell.js +4 -4
- package/dist/platform/workflow-canvas-shell.mjs +3 -3
- package/dist/{workflow-api-client-zVtc8FIl.d.ts → workflow-api-client-DVLhcpUj.d.ts} +1 -1
- package/dist/{workflow-api-client-wLoap-tt.d.mts → workflow-api-client-DpBxHTHr.d.mts} +1 -1
- package/package.json +1 -1
- package/dist/chunk-3PKG4KFY.mjs.map +0 -1
- package/dist/chunk-3SUFSAP6.mjs.map +0 -1
- package/dist/chunk-53SRKVKQ.mjs.map +0 -1
- package/dist/chunk-5UU3RQRB.js.map +0 -1
- package/dist/chunk-C7BI5LQ6.js.map +0 -1
- package/dist/chunk-SFVSDGNF.js.map +0 -1
- package/dist/chunk-WNCPAWLC.mjs.map +0 -1
- package/dist/chunk-XXYDLYIT.js.map +0 -1
|
@@ -1,15 +1,57 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunkNYQAEPC7_js = require('./chunk-NYQAEPC7.js');
|
|
5
5
|
var chunkZKUYNCAG_js = require('./chunk-ZKUYNCAG.js');
|
|
6
6
|
var chunkYXN2K77G_js = require('./chunk-YXN2K77G.js');
|
|
7
|
-
var
|
|
7
|
+
var chunkC3H4FM4A_js = require('./chunk-C3H4FM4A.js');
|
|
8
8
|
var react = require('react');
|
|
9
|
+
var react$1 = require('@xyflow/react');
|
|
9
10
|
var outline = require('@heroicons/react/24/outline');
|
|
10
11
|
var jsxRuntime = require('react/jsx-runtime');
|
|
11
12
|
var zustand = require('zustand');
|
|
12
13
|
|
|
14
|
+
var S3WriteFlowNode = react.memo(function S3WriteFlowNode2({ id, data, selected }) {
|
|
15
|
+
const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
|
|
16
|
+
const { config, label, onDelete, onEdit } = data;
|
|
17
|
+
const isCompact = data.displayMode === "compact";
|
|
18
|
+
const keyPreview = config.key ? config.key.slice(0, 30) : "";
|
|
19
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
20
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkNYQAEPC7_js.NodeRunningIndicator, { nodeId: id }),
|
|
21
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkNYQAEPC7_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-cyan-500" }),
|
|
22
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
23
|
+
chunkNYQAEPC7_js.NodeInteractiveCard,
|
|
24
|
+
{
|
|
25
|
+
nodeId: id,
|
|
26
|
+
onEdit,
|
|
27
|
+
compact: isCompact,
|
|
28
|
+
selected,
|
|
29
|
+
nodeType: "s3_write",
|
|
30
|
+
children: [
|
|
31
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
32
|
+
chunkNYQAEPC7_js.NodeCardHeader,
|
|
33
|
+
{
|
|
34
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(chunkNYQAEPC7_js.NodeIconBubble, { tone: "s3_write", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CloudArrowUpIcon, { className: "h-5 w-5 text-white" }) }),
|
|
35
|
+
title: label,
|
|
36
|
+
description: t("s3WriteNodeDescription"),
|
|
37
|
+
compact: isCompact,
|
|
38
|
+
iconClassName: ""
|
|
39
|
+
}
|
|
40
|
+
),
|
|
41
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkNYQAEPC7_js.NodeCardMeta, { compact: isCompact, children: [
|
|
42
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
43
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkNYQAEPC7_js.NodeCardBadge, { tone: "s3_write", children: t("s3WriteNode") }),
|
|
44
|
+
config.bucket && /* @__PURE__ */ jsxRuntime.jsx(chunkNYQAEPC7_js.NodeCardBadge, { tone: "s3_write", soft: true, children: config.bucket }),
|
|
45
|
+
keyPreview && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: keyPreview })
|
|
46
|
+
] }),
|
|
47
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkNYQAEPC7_js.NodeCardDeleteAction, { nodeId: id, onDelete })
|
|
48
|
+
] })
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
),
|
|
52
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkNYQAEPC7_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-cyan-500" })
|
|
53
|
+
] });
|
|
54
|
+
});
|
|
13
55
|
function AnthropicModelIcon({ className }) {
|
|
14
56
|
return /* @__PURE__ */ jsxRuntime.jsx("svg", { role: "img", viewBox: "0 0 24 24", fill: "currentColor", className, "aria-label": "Anthropic", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M17.3041 3.541h-3.6718l6.696 16.918H24Zm-10.6082 0L0 20.459h3.7442l1.3693-3.5527h7.0052l1.3693 3.5528h3.7442L10.5363 3.5409Zm-.3712 10.2232 2.2914-5.9456 2.2914 5.9456Z" }) });
|
|
15
57
|
}
|
|
@@ -283,7 +325,7 @@ function OutputCard({ label, value }) {
|
|
|
283
325
|
function AgentProfileHeader({ agent, models, t, selectedModelId, setSelectedModelId, selectedFramework, temperature, setTemperature, elo, setElo, onChanged }) {
|
|
284
326
|
const modelName = models.find((model) => model.id === selectedModelId)?.name ?? selectedModelId ?? "\u2014";
|
|
285
327
|
const avatarUrl = agent.avatar;
|
|
286
|
-
const frameworkMeta =
|
|
328
|
+
const frameworkMeta = chunkNYQAEPC7_js.getFrameworkMeta(selectedFramework);
|
|
287
329
|
const tierInfo = getEloTier(elo);
|
|
288
330
|
const difficultyConfig = {
|
|
289
331
|
beginner: { color: "bg-cyan-100 text-cyan-700 dark:bg-cyan-900/30 dark:text-cyan-400", labelKey: "agentDrawer.tierBeginner" },
|
|
@@ -559,13 +601,13 @@ function AgentCapabilityCard({ elo, setElo, models, selectedModelId, setSelected
|
|
|
559
601
|
] });
|
|
560
602
|
}
|
|
561
603
|
function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFramework, setSelectedFramework, markDirty, connectedProviderTypes }) {
|
|
562
|
-
const frameworkKeys = Object.keys(
|
|
604
|
+
const frameworkKeys = Object.keys(chunkNYQAEPC7_js.FRAMEWORK_META);
|
|
563
605
|
const hasProviderConstraints = connectedProviderTypes.length > 0;
|
|
564
|
-
const compatibleModels =
|
|
606
|
+
const compatibleModels = chunkNYQAEPC7_js.getCompatibleModels(models, selectedFramework);
|
|
565
607
|
const handleFrameworkChange = react.useCallback((newFramework) => {
|
|
566
608
|
setSelectedFramework(newFramework);
|
|
567
|
-
if (!
|
|
568
|
-
const compatible =
|
|
609
|
+
if (!chunkNYQAEPC7_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
|
|
610
|
+
const compatible = chunkNYQAEPC7_js.getCompatibleModels(models, newFramework);
|
|
569
611
|
if (compatible.length > 0) {
|
|
570
612
|
setSelectedModelId(compatible[0].id);
|
|
571
613
|
}
|
|
@@ -576,10 +618,10 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
|
|
|
576
618
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
577
619
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-gray-500 dark:text-gray-400", children: t("agentDrawer.framework") }),
|
|
578
620
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1.5", children: frameworkKeys.map((key) => {
|
|
579
|
-
const meta =
|
|
621
|
+
const meta = chunkNYQAEPC7_js.FRAMEWORK_META[key];
|
|
580
622
|
const isSelected = key === selectedFramework;
|
|
581
|
-
const compatCount =
|
|
582
|
-
const isCompatibleWithProviders = !hasProviderConstraints ||
|
|
623
|
+
const compatCount = chunkNYQAEPC7_js.getCompatibleModels(models, key).length;
|
|
624
|
+
const isCompatibleWithProviders = !hasProviderConstraints || chunkNYQAEPC7_js.isFrameworkCompatibleWithProviders(key, connectedProviderTypes);
|
|
583
625
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
584
626
|
"button",
|
|
585
627
|
{
|
|
@@ -611,7 +653,7 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
|
|
|
611
653
|
] }),
|
|
612
654
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-2", children: models.map((model) => {
|
|
613
655
|
const isSelected = model.id === selectedModelId;
|
|
614
|
-
const isCompatible =
|
|
656
|
+
const isCompatible = chunkNYQAEPC7_js.isModelCompatibleWithFramework(model.id, selectedFramework);
|
|
615
657
|
const { IconComponent, color, providerLabel } = getModelIcon(model.id);
|
|
616
658
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
617
659
|
"button",
|
|
@@ -735,7 +777,7 @@ function PromptTab({
|
|
|
735
777
|
] });
|
|
736
778
|
}
|
|
737
779
|
function ResultsTab({ agentId, t }) {
|
|
738
|
-
const nodeResults =
|
|
780
|
+
const nodeResults = chunkNYQAEPC7_js.useWorkflowStore((state) => state.nodeResults);
|
|
739
781
|
const agentResult = react.useMemo(() => {
|
|
740
782
|
return nodeResults[agentId] ?? null;
|
|
741
783
|
}, [nodeResults, agentId]);
|
|
@@ -825,10 +867,10 @@ function ModelsTab({ modelProviders, selectedProviderId, onSelectProvider, model
|
|
|
825
867
|
const providerModels = modelsByProvider.find((p) => p.provider.id === selectedProviderId);
|
|
826
868
|
if (!providerModels || providerModels.models.length === 0) return /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-gray-400 dark:text-gray-500", children: t("agentDrawer.noModelsForProvider") });
|
|
827
869
|
const compatibleModels = providerModels.models.filter(
|
|
828
|
-
(m) =>
|
|
870
|
+
(m) => chunkNYQAEPC7_js.isModelCompatibleWithFramework(m.id, agentFramework)
|
|
829
871
|
);
|
|
830
872
|
const incompatibleModels = providerModels.models.filter(
|
|
831
|
-
(m) => !
|
|
873
|
+
(m) => !chunkNYQAEPC7_js.isModelCompatibleWithFramework(m.id, agentFramework)
|
|
832
874
|
);
|
|
833
875
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
834
876
|
/* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-gray-500 dark:text-gray-400", children: t("agentDrawer.selectModel") }),
|
|
@@ -901,7 +943,7 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
|
|
|
901
943
|
] }),
|
|
902
944
|
tool.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: tool.description }),
|
|
903
945
|
tool.compatibleFrameworks && tool.compatibleFrameworks.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-1 flex flex-wrap gap-0.5", children: tool.compatibleFrameworks.map((framework) => {
|
|
904
|
-
const meta =
|
|
946
|
+
const meta = chunkNYQAEPC7_js.getFrameworkMeta(framework);
|
|
905
947
|
const isCurrentFw = framework === agentFramework;
|
|
906
948
|
return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: `inline-flex items-center gap-0.5 rounded px-1.5 py-0.5 text-[8px] font-medium ${isCurrentFw ? meta.badgeColor : "bg-gray-100 text-gray-500 dark:bg-white/5 dark:text-gray-400"}`, children: [
|
|
907
949
|
/* @__PURE__ */ jsxRuntime.jsx(meta.IconComponent, { className: "h-2.5 w-2.5" }),
|
|
@@ -1077,9 +1119,9 @@ function AdvancedTab({
|
|
|
1077
1119
|
}
|
|
1078
1120
|
function AgentModal({ onSaved, onPersist }) {
|
|
1079
1121
|
const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
|
|
1080
|
-
const activeModal =
|
|
1081
|
-
const agentData =
|
|
1082
|
-
const closeModal =
|
|
1122
|
+
const activeModal = chunkNYQAEPC7_js.useModalStore((s) => s.activeModal);
|
|
1123
|
+
const agentData = chunkNYQAEPC7_js.useModalStore((s) => s.agentData);
|
|
1124
|
+
const closeModal = chunkNYQAEPC7_js.useModalStore((s) => s.closeModal);
|
|
1083
1125
|
const open = activeModal === "agent";
|
|
1084
1126
|
const agent = agentData?.agent ?? null;
|
|
1085
1127
|
const models = agentData?.models ?? [];
|
|
@@ -1429,7 +1471,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1429
1471
|
const markDirty = useSubworkflowStore((s) => s.markDirty);
|
|
1430
1472
|
const markSaved = useSubworkflowStore((s) => s.markSaved);
|
|
1431
1473
|
const closeModal = useSubworkflowStore((s) => s.closeModal);
|
|
1432
|
-
const agentBehind =
|
|
1474
|
+
const agentBehind = chunkNYQAEPC7_js.useModalStore((s) => s.activeModal === "agent" ? s.agentData?.agent?.name : null);
|
|
1433
1475
|
const isCreateMode = !tool?.toolId;
|
|
1434
1476
|
const initialGraph = react.useMemo(() => {
|
|
1435
1477
|
const config = tool?.config;
|
|
@@ -1458,9 +1500,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1458
1500
|
}, [tool, onSaved, name, category, description, timeoutMs, latestGraphRef, markSaved]);
|
|
1459
1501
|
if (!tool) return null;
|
|
1460
1502
|
const categoryKey = category ?? "external";
|
|
1461
|
-
const gradient = tool.color ??
|
|
1462
|
-
const categoryPill =
|
|
1463
|
-
const IconComponent =
|
|
1503
|
+
const gradient = tool.color ?? chunkNYQAEPC7_js.CATEGORY_COLORS[categoryKey] ?? chunkNYQAEPC7_js.CATEGORY_COLORS.external;
|
|
1504
|
+
const categoryPill = chunkNYQAEPC7_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunkNYQAEPC7_js.CATEGORY_PILL_COLORS.external;
|
|
1505
|
+
const IconComponent = chunkNYQAEPC7_js.ICON_MAP[tool.icon ?? ""] ?? outline.ArrowPathRoundedSquareIcon;
|
|
1464
1506
|
const graph = latestGraphRef.current;
|
|
1465
1507
|
const startNode = graph.nodes.find((n) => n.type === "start");
|
|
1466
1508
|
const endNode = graph.nodes.find((n) => n.type === "end");
|
|
@@ -1525,7 +1567,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1525
1567
|
{
|
|
1526
1568
|
type: "button",
|
|
1527
1569
|
onClick: () => setCategory(cat),
|
|
1528
|
-
className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${
|
|
1570
|
+
className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${chunkNYQAEPC7_js.CATEGORY_PILL_COLORS[cat] ?? chunkNYQAEPC7_js.CATEGORY_PILL_COLORS.external} ring-1 ring-current/20` : "bg-white/30 text-gray-500 hover:bg-white/50 dark:bg-white/5 dark:text-gray-400"}`,
|
|
1529
1571
|
children: cat
|
|
1530
1572
|
},
|
|
1531
1573
|
cat
|
|
@@ -1612,7 +1654,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1612
1654
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto" })
|
|
1613
1655
|
] }),
|
|
1614
1656
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1615
|
-
|
|
1657
|
+
chunkNYQAEPC7_js.WorkflowCanvas,
|
|
1616
1658
|
{
|
|
1617
1659
|
initialGraph,
|
|
1618
1660
|
agents: [],
|
|
@@ -1628,9 +1670,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
|
|
|
1628
1670
|
}
|
|
1629
1671
|
function PipelineSettingsModal({ onSave }) {
|
|
1630
1672
|
const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
|
|
1631
|
-
const activeModal =
|
|
1632
|
-
const data =
|
|
1633
|
-
const closeModal =
|
|
1673
|
+
const activeModal = chunkNYQAEPC7_js.useModalStore((s) => s.activeModal);
|
|
1674
|
+
const data = chunkNYQAEPC7_js.useModalStore((s) => s.pipelineSettingsData);
|
|
1675
|
+
const closeModal = chunkNYQAEPC7_js.useModalStore((s) => s.closeModal);
|
|
1634
1676
|
const open = activeModal === "pipeline-settings";
|
|
1635
1677
|
const [nameValue, setNameValue] = react.useState("");
|
|
1636
1678
|
const [descriptionValue, setDescriptionValue] = react.useState("");
|
|
@@ -2894,6 +2936,7 @@ var LOGIC_NODE_ITEMS = [
|
|
|
2894
2936
|
// Data Processing
|
|
2895
2937
|
{ nodeType: "code", nameKey: "codeNode", descriptionKey: "codeNodeDescription", subcategory: "data_processing" },
|
|
2896
2938
|
{ nodeType: "http_request", nameKey: "httpRequestNode", descriptionKey: "httpRequestNodeDescription", subcategory: "data_processing" },
|
|
2939
|
+
{ nodeType: "s3_write", nameKey: "s3WriteNode", descriptionKey: "s3WriteNodeDescription", subcategory: "data_processing" },
|
|
2897
2940
|
{ nodeType: "template_transform", nameKey: "templateTransformNode", descriptionKey: "templateTransformNodeDescription", subcategory: "data_processing" },
|
|
2898
2941
|
{ nodeType: "variable_assigner", nameKey: "variableAssignerNode", descriptionKey: "variableAssignerNodeDescription", subcategory: "data_processing" },
|
|
2899
2942
|
{ nodeType: "variable_aggregator", nameKey: "variableAggregatorNode", descriptionKey: "variableAggregatorNodeDescription", subcategory: "data_processing" },
|
|
@@ -2976,9 +3019,9 @@ function CollapsibleSection({ title, icon, colorClass, defaultOpen = true, count
|
|
|
2976
3019
|
] });
|
|
2977
3020
|
}
|
|
2978
3021
|
function LogicNodeItemCard({ item, translationFunction }) {
|
|
2979
|
-
const IconComponent =
|
|
2980
|
-
const gradient =
|
|
2981
|
-
const defaultConfig =
|
|
3022
|
+
const IconComponent = chunkNYQAEPC7_js.LOGIC_ICON_MAP[item.nodeType];
|
|
3023
|
+
const gradient = chunkNYQAEPC7_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-gray-400 to-gray-500";
|
|
3024
|
+
const defaultConfig = chunkC3H4FM4A_js.createDefaultLogicNodeConfig(item.nodeType);
|
|
2982
3025
|
const configJson = defaultConfig ? JSON.stringify(defaultConfig) : void 0;
|
|
2983
3026
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2984
3027
|
"div",
|
|
@@ -3048,7 +3091,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3048
3091
|
[entityTypes, normalizedQuery]
|
|
3049
3092
|
);
|
|
3050
3093
|
const filteredLogicItems = react.useMemo(() => {
|
|
3051
|
-
const visibleByDefault = LOGIC_NODE_ITEMS.filter((item) => !
|
|
3094
|
+
const visibleByDefault = LOGIC_NODE_ITEMS.filter((item) => !chunkNYQAEPC7_js.EXPERIMENTAL_NODE_TYPES.has(item.nodeType));
|
|
3052
3095
|
if (!normalizedQuery) return visibleByDefault;
|
|
3053
3096
|
return visibleByDefault.filter(
|
|
3054
3097
|
(item) => t(item.nameKey).toLowerCase().includes(normalizedQuery) || t(item.descriptionKey).toLowerCase().includes(normalizedQuery)
|
|
@@ -3112,7 +3155,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3112
3155
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
3113
3156
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs font-medium text-gray-900 dark:text-white", children: agent.name }),
|
|
3114
3157
|
(() => {
|
|
3115
|
-
const tier =
|
|
3158
|
+
const tier = chunkC3H4FM4A_js.getAgentTier(Number(agent.elo ?? 0));
|
|
3116
3159
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: `shrink-0 rounded-full px-1.5 py-px text-[8px] font-bold ${tier.pillColor}`, children: t(`agentDrawer.tier${tier.key.charAt(0).toUpperCase()}${tier.key.slice(1)}`) });
|
|
3117
3160
|
})()
|
|
3118
3161
|
] }),
|
|
@@ -3222,8 +3265,8 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
|
|
|
3222
3265
|
limit: entity.defaultLimit
|
|
3223
3266
|
});
|
|
3224
3267
|
const dsLogo = getDatasourceLogo(entity.id);
|
|
3225
|
-
const EntityIcon =
|
|
3226
|
-
const entityGradient =
|
|
3268
|
+
const EntityIcon = chunkNYQAEPC7_js.getEntityIcon(entity.id);
|
|
3269
|
+
const entityGradient = chunkNYQAEPC7_js.getEntityGradient(entity.id);
|
|
3227
3270
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3228
3271
|
"div",
|
|
3229
3272
|
{
|
|
@@ -3621,9 +3664,9 @@ function formatDuration3(durationMs) {
|
|
|
3621
3664
|
}
|
|
3622
3665
|
function RunPanel({ open, onClose, onRun, onStop }) {
|
|
3623
3666
|
const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.runPanel");
|
|
3624
|
-
const nodes =
|
|
3625
|
-
const isRunning =
|
|
3626
|
-
const nodeResults =
|
|
3667
|
+
const nodes = chunkNYQAEPC7_js.useWorkflowStore((state) => state.nodes);
|
|
3668
|
+
const isRunning = chunkNYQAEPC7_js.useWorkflowStore((state) => state.isRunning);
|
|
3669
|
+
const nodeResults = chunkNYQAEPC7_js.useWorkflowStore((state) => state.nodeResults);
|
|
3627
3670
|
const startNode = nodes.find((node) => node.type === "start");
|
|
3628
3671
|
const hasEndNode = nodes.some((node) => node.type === "end");
|
|
3629
3672
|
const hasValidStartConfig = Boolean(
|
|
@@ -3806,6 +3849,20 @@ function inferVariables(config, nodeType) {
|
|
|
3806
3849
|
variables.push({ name: "body", direction: "input", variableType: "string" });
|
|
3807
3850
|
}
|
|
3808
3851
|
break;
|
|
3852
|
+
case "s3_write":
|
|
3853
|
+
variables.push({ name: "key", direction: "input", variableType: "string" });
|
|
3854
|
+
if (config.sourceUrl) {
|
|
3855
|
+
variables.push({ name: "sourceUrl", direction: "input", variableType: "string" });
|
|
3856
|
+
}
|
|
3857
|
+
if (config.body) {
|
|
3858
|
+
variables.push({ name: "body", direction: "input", variableType: "string" });
|
|
3859
|
+
}
|
|
3860
|
+
variables.push({ name: "bucket", direction: "output", variableType: "string" });
|
|
3861
|
+
variables.push({ name: "key", direction: "output", variableType: "string" });
|
|
3862
|
+
variables.push({ name: "size", direction: "output", variableType: "number" });
|
|
3863
|
+
variables.push({ name: "etag", direction: "output", variableType: "string" });
|
|
3864
|
+
variables.push({ name: "contentType", direction: "output", variableType: "string" });
|
|
3865
|
+
break;
|
|
3809
3866
|
case "template_transform":
|
|
3810
3867
|
variables.push({ name: "template", direction: "input", variableType: "string" });
|
|
3811
3868
|
if (config.outputVariable) {
|
|
@@ -3911,8 +3968,8 @@ function inferVariables(config, nodeType) {
|
|
|
3911
3968
|
}
|
|
3912
3969
|
function VariableInspector({ open, onClose }) {
|
|
3913
3970
|
const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.variableInspector");
|
|
3914
|
-
const nodes =
|
|
3915
|
-
const edges =
|
|
3971
|
+
const nodes = chunkNYQAEPC7_js.useWorkflowStore((state) => state.nodes);
|
|
3972
|
+
const edges = chunkNYQAEPC7_js.useWorkflowStore((state) => state.edges);
|
|
3916
3973
|
const [expandedNodes, setExpandedNodes] = react.useState(/* @__PURE__ */ new Set());
|
|
3917
3974
|
const toggleNodeExpansion = react.useCallback((nodeId) => {
|
|
3918
3975
|
setExpandedNodes((current) => {
|
|
@@ -3974,8 +4031,8 @@ function VariableInspector({ open, onClose }) {
|
|
|
3974
4031
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-gray-500 dark:text-gray-400", children: translations("noNodes") })
|
|
3975
4032
|
] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-gray-100 dark:divide-gray-800", children: nodeVariableEntries.map((entry) => {
|
|
3976
4033
|
const isExpanded = expandedNodes.has(entry.nodeId);
|
|
3977
|
-
const IconComponent =
|
|
3978
|
-
const gradient =
|
|
4034
|
+
const IconComponent = chunkNYQAEPC7_js.LOGIC_ICON_MAP[entry.nodeType];
|
|
4035
|
+
const gradient = chunkNYQAEPC7_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-gray-400 to-gray-500";
|
|
3979
4036
|
const inputVariables = entry.variables.filter((variable) => variable.direction === "input");
|
|
3980
4037
|
const outputVariables = entry.variables.filter((variable) => variable.direction === "output");
|
|
3981
4038
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": `variable-node-${entry.nodeId}`, children: [
|
|
@@ -4041,7 +4098,7 @@ function RunInputDialog({
|
|
|
4041
4098
|
onRun
|
|
4042
4099
|
}) {
|
|
4043
4100
|
const t = chunkYXN2K77G_js.useTranslations("agents.workflow.runInputDialog");
|
|
4044
|
-
const nodes =
|
|
4101
|
+
const nodes = chunkNYQAEPC7_js.useWorkflowStore((state) => state.nodes);
|
|
4045
4102
|
const [values, setValues] = react.useState({});
|
|
4046
4103
|
const inputVariableNames = react.useMemo(() => {
|
|
4047
4104
|
const storeStartNode = nodes.find((node) => node.type === "start");
|
|
@@ -4122,8 +4179,8 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
|
|
|
4122
4179
|
const [isLoadingRuns, setIsLoadingRuns] = react.useState(false);
|
|
4123
4180
|
const [selectedRun, setSelectedRun] = react.useState(null);
|
|
4124
4181
|
const [selectedNode, setSelectedNode] = react.useState(null);
|
|
4125
|
-
const isRunning =
|
|
4126
|
-
const nodeResults =
|
|
4182
|
+
const isRunning = chunkNYQAEPC7_js.useWorkflowStore((state) => state.isRunning);
|
|
4183
|
+
const nodeResults = chunkNYQAEPC7_js.useWorkflowStore((state) => state.nodeResults);
|
|
4127
4184
|
const refreshRuns = react.useCallback(async () => {
|
|
4128
4185
|
setIsLoadingRuns(true);
|
|
4129
4186
|
try {
|
|
@@ -4279,7 +4336,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
|
|
|
4279
4336
|
onAutoSaveGraph(graph);
|
|
4280
4337
|
}, [onAutoSaveGraph, onGraphSnapshot]);
|
|
4281
4338
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4282
|
-
|
|
4339
|
+
chunkNYQAEPC7_js.Workspace,
|
|
4283
4340
|
{
|
|
4284
4341
|
...workspaceProps,
|
|
4285
4342
|
onGraphChange: handleGraphChange
|
|
@@ -4650,14 +4707,14 @@ function DslImportModal({ open, onClose, onImport }) {
|
|
|
4650
4707
|
}
|
|
4651
4708
|
|
|
4652
4709
|
// src/astrlabe/store/selectors.ts
|
|
4653
|
-
var useCanUndo = () =>
|
|
4654
|
-
var useCanRedo = () =>
|
|
4655
|
-
var useHasCopied = () =>
|
|
4656
|
-
var useContextMenu = () =>
|
|
4657
|
-
var useEditingNodeId = () =>
|
|
4658
|
-
var useSelectedNodeCount = () =>
|
|
4659
|
-
var useIsRunning = () =>
|
|
4660
|
-
var useNodeResults = () =>
|
|
4710
|
+
var useCanUndo = () => chunkNYQAEPC7_js.useWorkflowStore((state) => state.past.length > 0);
|
|
4711
|
+
var useCanRedo = () => chunkNYQAEPC7_js.useWorkflowStore((state) => state.future.length > 0);
|
|
4712
|
+
var useHasCopied = () => chunkNYQAEPC7_js.useWorkflowStore((state) => state.clipboard !== null);
|
|
4713
|
+
var useContextMenu = () => chunkNYQAEPC7_js.useWorkflowStore((state) => state.contextMenu);
|
|
4714
|
+
var useEditingNodeId = () => chunkNYQAEPC7_js.useWorkflowStore((state) => state.editingNodeId);
|
|
4715
|
+
var useSelectedNodeCount = () => chunkNYQAEPC7_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
|
|
4716
|
+
var useIsRunning = () => chunkNYQAEPC7_js.useWorkflowStore((state) => state.isRunning);
|
|
4717
|
+
var useNodeResults = () => chunkNYQAEPC7_js.useWorkflowStore((state) => state.nodeResults);
|
|
4661
4718
|
var DEFAULT_MAX_HISTORY = 50;
|
|
4662
4719
|
function useUndoRedo(nodes, edges, setNodes, setEdges, maxHistory = DEFAULT_MAX_HISTORY) {
|
|
4663
4720
|
const pastRef = react.useRef([]);
|
|
@@ -4955,6 +5012,7 @@ exports.RuleForm = RuleForm;
|
|
|
4955
5012
|
exports.RunInputDialog = RunInputDialog;
|
|
4956
5013
|
exports.RunPanel = RunPanel;
|
|
4957
5014
|
exports.RunReplayModal = RunReplayModal;
|
|
5015
|
+
exports.S3WriteFlowNode = S3WriteFlowNode;
|
|
4958
5016
|
exports.SaveStatusBadge = SaveStatusBadge;
|
|
4959
5017
|
exports.SubworkflowModal = SubworkflowModal;
|
|
4960
5018
|
exports.TIMEZONE_OPTIONS = TIMEZONE_OPTIONS;
|
|
@@ -4979,5 +5037,5 @@ exports.useNodeResults = useNodeResults;
|
|
|
4979
5037
|
exports.useSelectedNodeCount = useSelectedNodeCount;
|
|
4980
5038
|
exports.useSubworkflowStore = useSubworkflowStore;
|
|
4981
5039
|
exports.useUndoRedo = useUndoRedo;
|
|
4982
|
-
//# sourceMappingURL=chunk-
|
|
4983
|
-
//# sourceMappingURL=chunk-
|
|
5040
|
+
//# sourceMappingURL=chunk-FZTOP6EE.js.map
|
|
5041
|
+
//# sourceMappingURL=chunk-FZTOP6EE.js.map
|