@datatechsolutions/ui 2.11.7 → 2.11.9

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.
@@ -3,7 +3,7 @@
3
3
 
4
4
  require('../chunk-55H6WZQP.js');
5
5
  var chunk3GE3MBUZ_js = require('../chunk-3GE3MBUZ.js');
6
- var chunkTKLALDY4_js = require('../chunk-TKLALDY4.js');
6
+ var chunkLFWRE3A3_js = require('../chunk-LFWRE3A3.js');
7
7
  var chunk4XID6LOC_js = require('../chunk-4XID6LOC.js');
8
8
  require('../chunk-S7KHTUHA.js');
9
9
  require('../chunk-UZ3CMNUJ.js');
@@ -83,7 +83,7 @@ function OutputCard({ label, value }) {
83
83
  function AgentProfileHeader({ agent, models, t, selectedModelId, setSelectedModelId, selectedFramework, temperature, setTemperature, elo, setElo, onChanged }) {
84
84
  const modelName = models.find((model) => model.id === selectedModelId)?.name ?? selectedModelId ?? "\u2014";
85
85
  const avatarUrl = agent.avatar;
86
- const frameworkMeta = chunkTKLALDY4_js.getFrameworkMeta(selectedFramework);
86
+ const frameworkMeta = chunkLFWRE3A3_js.getFrameworkMeta(selectedFramework);
87
87
  const tierInfo = getEloTier(elo);
88
88
  const difficultyConfig = {
89
89
  beginner: { color: "bg-cyan-100 text-cyan-700 dark:bg-cyan-900/30 dark:text-cyan-400", labelKey: "agentDrawer.tierBeginner" },
@@ -375,12 +375,12 @@ function ConfigTab({ agent, models, t, selectedModelId, setSelectedModelId, sele
375
375
  const isPrecise = temperature <= 0.3;
376
376
  const isBalanced = temperature > 0.3 && temperature <= 0.7;
377
377
  const isCreative = temperature > 0.7;
378
- const frameworkKeys = Object.keys(chunkTKLALDY4_js.FRAMEWORK_META);
379
- const compatibleModels = chunkTKLALDY4_js.getCompatibleModels(models, selectedFramework);
378
+ const frameworkKeys = Object.keys(chunkLFWRE3A3_js.FRAMEWORK_META);
379
+ const compatibleModels = chunkLFWRE3A3_js.getCompatibleModels(models, selectedFramework);
380
380
  const handleFrameworkChange = react.useCallback((newFramework) => {
381
381
  setSelectedFramework(newFramework);
382
- if (!chunkTKLALDY4_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
383
- const compatible = chunkTKLALDY4_js.getCompatibleModels(models, newFramework);
382
+ if (!chunkLFWRE3A3_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
383
+ const compatible = chunkLFWRE3A3_js.getCompatibleModels(models, newFramework);
384
384
  if (compatible.length > 0) {
385
385
  setSelectedModelId(compatible[0].id);
386
386
  }
@@ -391,9 +391,9 @@ function ConfigTab({ agent, models, t, selectedModelId, setSelectedModelId, sele
391
391
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
392
392
  /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-gray-500 dark:text-gray-400", children: t("agentDrawer.framework") }),
393
393
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1.5", children: frameworkKeys.map((key) => {
394
- const meta = chunkTKLALDY4_js.FRAMEWORK_META[key];
394
+ const meta = chunkLFWRE3A3_js.FRAMEWORK_META[key];
395
395
  const isSelected = key === selectedFramework;
396
- const compatCount = chunkTKLALDY4_js.getCompatibleModels(models, key).length;
396
+ const compatCount = chunkLFWRE3A3_js.getCompatibleModels(models, key).length;
397
397
  return /* @__PURE__ */ jsxRuntime.jsxs(
398
398
  "button",
399
399
  {
@@ -423,7 +423,7 @@ function ConfigTab({ agent, models, t, selectedModelId, setSelectedModelId, sele
423
423
  ] }),
424
424
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-2", children: models.map((model) => {
425
425
  const isSelected = model.id === selectedModelId;
426
- const isCompatible = chunkTKLALDY4_js.isModelCompatibleWithFramework(model.id, selectedFramework);
426
+ const isCompatible = chunkLFWRE3A3_js.isModelCompatibleWithFramework(model.id, selectedFramework);
427
427
  const { IconComponent, color, providerLabel } = getModelIcon(model.id);
428
428
  return /* @__PURE__ */ jsxRuntime.jsxs(
429
429
  "button",
@@ -520,7 +520,7 @@ function ConfigTab({ agent, models, t, selectedModelId, setSelectedModelId, sele
520
520
  ] });
521
521
  }
522
522
  function ResultsTab({ agentId, t }) {
523
- const nodeResults = chunkTKLALDY4_js.useWorkflowStore((state) => state.nodeResults);
523
+ const nodeResults = chunkLFWRE3A3_js.useWorkflowStore((state) => state.nodeResults);
524
524
  const agentResult = react.useMemo(() => {
525
525
  return nodeResults[agentId] ?? null;
526
526
  }, [nodeResults, agentId]);
@@ -549,9 +549,9 @@ function ResultsTab({ agentId, t }) {
549
549
  }
550
550
  function AgentModal({ onSaved }) {
551
551
  const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
552
- const activeModal = chunkTKLALDY4_js.useModalStore((s) => s.activeModal);
553
- const agentData = chunkTKLALDY4_js.useModalStore((s) => s.agentData);
554
- const closeModal = chunkTKLALDY4_js.useModalStore((s) => s.closeModal);
552
+ const activeModal = chunkLFWRE3A3_js.useModalStore((s) => s.activeModal);
553
+ const agentData = chunkLFWRE3A3_js.useModalStore((s) => s.agentData);
554
+ const closeModal = chunkLFWRE3A3_js.useModalStore((s) => s.closeModal);
555
555
  const open = activeModal === "agent";
556
556
  const agent = agentData?.agent ?? null;
557
557
  const models = agentData?.models ?? [];
@@ -743,6 +743,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
743
743
  const markDirty = useSubworkflowStore((s) => s.markDirty);
744
744
  const markSaved = useSubworkflowStore((s) => s.markSaved);
745
745
  const closeModal = useSubworkflowStore((s) => s.closeModal);
746
+ const agentBehind = chunkLFWRE3A3_js.useModalStore((s) => s.activeModal === "agent" ? s.agentData?.agent?.name : null);
746
747
  const isCreateMode = !tool?.toolId;
747
748
  const initialGraph = react.useMemo(() => {
748
749
  const config = tool?.config;
@@ -771,9 +772,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
771
772
  }, [tool, onSaved, name, category, description, timeoutMs, latestGraphRef, markSaved]);
772
773
  if (!tool) return null;
773
774
  const categoryKey = category ?? "external";
774
- const gradient = tool.color ?? chunkTKLALDY4_js.CATEGORY_COLORS[categoryKey] ?? chunkTKLALDY4_js.CATEGORY_COLORS.external;
775
- const categoryPill = chunkTKLALDY4_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunkTKLALDY4_js.CATEGORY_PILL_COLORS.external;
776
- const IconComponent = chunkTKLALDY4_js.ICON_MAP[tool.icon ?? ""] ?? outline.ArrowPathRoundedSquareIcon;
775
+ const gradient = tool.color ?? chunkLFWRE3A3_js.CATEGORY_COLORS[categoryKey] ?? chunkLFWRE3A3_js.CATEGORY_COLORS.external;
776
+ const categoryPill = chunkLFWRE3A3_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunkLFWRE3A3_js.CATEGORY_PILL_COLORS.external;
777
+ const IconComponent = chunkLFWRE3A3_js.ICON_MAP[tool.icon ?? ""] ?? outline.ArrowPathRoundedSquareIcon;
777
778
  const graph = latestGraphRef.current;
778
779
  const startNode = graph.nodes.find((n) => n.type === "start");
779
780
  const endNode = graph.nodes.find((n) => n.type === "end");
@@ -811,12 +812,13 @@ function SubworkflowModal({ onSaved, onMaximize }) {
811
812
  open,
812
813
  onClose: closeModal,
813
814
  title: isCreateMode ? t("subworkflowDrawer.createTitle") : name,
814
- subtitle: t("subworkflowDrawer.subworkflow"),
815
+ subtitle: agentBehind ? `${agentBehind} \u2192 ${t("subworkflowDrawer.subworkflow")}` : t("subworkflowDrawer.subworkflow"),
815
816
  label: isCreateMode ? t("subworkflowDrawer.new") : t("subworkflowDrawer.edit"),
816
817
  gradient: "from-teal-500 to-cyan-600",
817
818
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.ArrowPathRoundedSquareIcon, { className: "h-6 w-6 text-white" }),
818
819
  maxWidth: "6xl",
819
820
  footer,
821
+ zIndex: agentBehind ? "z-[60]" : "z-50",
820
822
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-[80vh] min-h-[600px]", children: [
821
823
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-72 flex-shrink-0 flex-col overflow-y-auto border-r border-white/10", children: [
822
824
  isCreateMode ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-b border-white/10 bg-gradient-to-br from-teal-500/15 via-cyan-500/8 to-transparent px-4 py-4 dark:from-teal-500/8 dark:via-cyan-500/4", children: [
@@ -837,7 +839,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
837
839
  {
838
840
  type: "button",
839
841
  onClick: () => setCategory(cat),
840
- className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${chunkTKLALDY4_js.CATEGORY_PILL_COLORS[cat] ?? chunkTKLALDY4_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"}`,
842
+ className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${chunkLFWRE3A3_js.CATEGORY_PILL_COLORS[cat] ?? chunkLFWRE3A3_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"}`,
841
843
  children: cat
842
844
  },
843
845
  cat
@@ -924,7 +926,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
924
926
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto" })
925
927
  ] }),
926
928
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
927
- chunkTKLALDY4_js.WorkflowCanvas,
929
+ chunkLFWRE3A3_js.WorkflowCanvas,
928
930
  {
929
931
  initialGraph,
930
932
  agents: [],
@@ -950,9 +952,12 @@ function WorkspaceModal({
950
952
  onClose,
951
953
  title,
952
954
  subtitle,
955
+ label,
953
956
  icon,
954
957
  gradient = "from-gray-400 to-gray-500",
955
958
  maxWidth = "2xl",
959
+ headerActions,
960
+ footer,
956
961
  tabs,
957
962
  children
958
963
  }) {
@@ -964,9 +969,12 @@ function WorkspaceModal({
964
969
  onClose,
965
970
  title,
966
971
  subtitle,
972
+ label,
967
973
  icon,
968
974
  gradient,
969
975
  maxWidth: resolvedSize,
976
+ headerActions,
977
+ footer,
970
978
  children: [
971
979
  tabs,
972
980
  children
@@ -976,9 +984,9 @@ function WorkspaceModal({
976
984
  }
977
985
  function PipelineSettingsModal({ onSave }) {
978
986
  const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
979
- const activeModal = chunkTKLALDY4_js.useModalStore((s) => s.activeModal);
980
- const data = chunkTKLALDY4_js.useModalStore((s) => s.pipelineSettingsData);
981
- const closeModal = chunkTKLALDY4_js.useModalStore((s) => s.closeModal);
987
+ const activeModal = chunkLFWRE3A3_js.useModalStore((s) => s.activeModal);
988
+ const data = chunkLFWRE3A3_js.useModalStore((s) => s.pipelineSettingsData);
989
+ const closeModal = chunkLFWRE3A3_js.useModalStore((s) => s.closeModal);
982
990
  const open = activeModal === "pipeline-settings";
983
991
  const [nameValue, setNameValue] = react.useState("");
984
992
  const [descriptionValue, setDescriptionValue] = react.useState("");
@@ -1161,8 +1169,8 @@ function CollapsibleSection({ title, icon, colorClass, defaultOpen = true, count
1161
1169
  ] });
1162
1170
  }
1163
1171
  function LogicNodeItemCard({ item, translationFunction }) {
1164
- const IconComponent = chunkTKLALDY4_js.LOGIC_ICON_MAP[item.nodeType];
1165
- const gradient = chunkTKLALDY4_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-gray-400 to-gray-500";
1172
+ const IconComponent = chunkLFWRE3A3_js.LOGIC_ICON_MAP[item.nodeType];
1173
+ const gradient = chunkLFWRE3A3_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-gray-400 to-gray-500";
1166
1174
  const defaultConfig = chunkPWBWP5FJ_js.createDefaultLogicNodeConfig(item.nodeType);
1167
1175
  const configJson = defaultConfig ? JSON.stringify(defaultConfig) : void 0;
1168
1176
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -1402,8 +1410,8 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], onC
1402
1410
  outputVariable: `${entity.label.replace(/\s+/g, "")}Data`,
1403
1411
  limit: entity.defaultLimit
1404
1412
  });
1405
- const EntityIcon = chunkTKLALDY4_js.getEntityIcon(entity.id);
1406
- const entityGradient = chunkTKLALDY4_js.getEntityGradient(entity.id);
1413
+ const EntityIcon = chunkLFWRE3A3_js.getEntityIcon(entity.id);
1414
+ const entityGradient = chunkLFWRE3A3_js.getEntityGradient(entity.id);
1407
1415
  return /* @__PURE__ */ jsxRuntime.jsxs(
1408
1416
  "div",
1409
1417
  {
@@ -1742,9 +1750,9 @@ function formatDuration2(durationMs) {
1742
1750
  }
1743
1751
  function RunPanel({ open, onClose, onRun, onStop }) {
1744
1752
  const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.runPanel");
1745
- const nodes = chunkTKLALDY4_js.useWorkflowStore((state) => state.nodes);
1746
- const isRunning = chunkTKLALDY4_js.useWorkflowStore((state) => state.isRunning);
1747
- const nodeResults = chunkTKLALDY4_js.useWorkflowStore((state) => state.nodeResults);
1753
+ const nodes = chunkLFWRE3A3_js.useWorkflowStore((state) => state.nodes);
1754
+ const isRunning = chunkLFWRE3A3_js.useWorkflowStore((state) => state.isRunning);
1755
+ const nodeResults = chunkLFWRE3A3_js.useWorkflowStore((state) => state.nodeResults);
1748
1756
  const startNode = nodes.find((node) => node.type === "start");
1749
1757
  const hasEndNode = nodes.some((node) => node.type === "end");
1750
1758
  const hasValidStartConfig = Boolean(
@@ -2029,8 +2037,8 @@ function inferVariables(config, nodeType) {
2029
2037
  }
2030
2038
  function VariableInspector({ open, onClose }) {
2031
2039
  const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.variableInspector");
2032
- const nodes = chunkTKLALDY4_js.useWorkflowStore((state) => state.nodes);
2033
- const edges = chunkTKLALDY4_js.useWorkflowStore((state) => state.edges);
2040
+ const nodes = chunkLFWRE3A3_js.useWorkflowStore((state) => state.nodes);
2041
+ const edges = chunkLFWRE3A3_js.useWorkflowStore((state) => state.edges);
2034
2042
  const [expandedNodes, setExpandedNodes] = react.useState(/* @__PURE__ */ new Set());
2035
2043
  const toggleNodeExpansion = react.useCallback((nodeId) => {
2036
2044
  setExpandedNodes((current) => {
@@ -2092,8 +2100,8 @@ function VariableInspector({ open, onClose }) {
2092
2100
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-gray-500 dark:text-gray-400", children: translations("noNodes") })
2093
2101
  ] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-gray-100 dark:divide-gray-800", children: nodeVariableEntries.map((entry) => {
2094
2102
  const isExpanded = expandedNodes.has(entry.nodeId);
2095
- const IconComponent = chunkTKLALDY4_js.LOGIC_ICON_MAP[entry.nodeType];
2096
- const gradient = chunkTKLALDY4_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-gray-400 to-gray-500";
2103
+ const IconComponent = chunkLFWRE3A3_js.LOGIC_ICON_MAP[entry.nodeType];
2104
+ const gradient = chunkLFWRE3A3_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-gray-400 to-gray-500";
2097
2105
  const inputVariables = entry.variables.filter((variable) => variable.direction === "input");
2098
2106
  const outputVariables = entry.variables.filter((variable) => variable.direction === "output");
2099
2107
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": `variable-node-${entry.nodeId}`, children: [
@@ -2159,7 +2167,7 @@ function RunInputDialog({
2159
2167
  onRun
2160
2168
  }) {
2161
2169
  const t = chunkYXN2K77G_js.useTranslations("agents.workflow.runInputDialog");
2162
- const nodes = chunkTKLALDY4_js.useWorkflowStore((state) => state.nodes);
2170
+ const nodes = chunkLFWRE3A3_js.useWorkflowStore((state) => state.nodes);
2163
2171
  const [values, setValues] = react.useState({});
2164
2172
  const inputVariableNames = react.useMemo(() => {
2165
2173
  const storeStartNode = nodes.find((node) => node.type === "start");
@@ -2241,8 +2249,8 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
2241
2249
  const [isLoadingRuns, setIsLoadingRuns] = react.useState(false);
2242
2250
  const [selectedRun, setSelectedRun] = react.useState(null);
2243
2251
  const [selectedNode, setSelectedNode] = react.useState(null);
2244
- const isRunning = chunkTKLALDY4_js.useWorkflowStore((state) => state.isRunning);
2245
- const nodeResults = chunkTKLALDY4_js.useWorkflowStore((state) => state.nodeResults);
2252
+ const isRunning = chunkLFWRE3A3_js.useWorkflowStore((state) => state.isRunning);
2253
+ const nodeResults = chunkLFWRE3A3_js.useWorkflowStore((state) => state.nodeResults);
2246
2254
  const refreshRuns = react.useCallback(async () => {
2247
2255
  setIsLoadingRuns(true);
2248
2256
  try {
@@ -2398,7 +2406,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
2398
2406
  onAutoSaveGraph(graph);
2399
2407
  }, [onAutoSaveGraph, onGraphSnapshot]);
2400
2408
  return /* @__PURE__ */ jsxRuntime.jsx(
2401
- chunkTKLALDY4_js.Workspace,
2409
+ chunkLFWRE3A3_js.Workspace,
2402
2410
  {
2403
2411
  ...workspaceProps,
2404
2412
  onGraphChange: handleGraphChange
@@ -2512,7 +2520,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
2512
2520
  "data-testid": "export-copy-button",
2513
2521
  children: isCopied ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2514
2522
  /* @__PURE__ */ jsxRuntime.jsx(outline.CheckIcon, { className: "h-4 w-4 text-green-500" }),
2515
- translations("copied")
2523
+ /* @__PURE__ */ jsxRuntime.jsx("span", { role: "status", "aria-live": "polite", children: translations("copied") })
2516
2524
  ] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2517
2525
  /* @__PURE__ */ jsxRuntime.jsx(outline.ClipboardDocumentIcon, { className: "h-4 w-4" }),
2518
2526
  translations("copyToClipboard")
@@ -2697,6 +2705,9 @@ function DslImportModal({ open, onClose, onImport }) {
2697
2705
  onClick: handleClickUpload,
2698
2706
  className: `cursor-pointer rounded-xl border-2 border-dashed p-8 text-center transition-colors duration-200 ${isDragActive ? "border-blue-400 bg-blue-50 dark:border-blue-500 dark:bg-blue-500/10" : "border-gray-300 hover:border-gray-400 dark:border-gray-600 dark:hover:border-gray-500"}`,
2699
2707
  "data-testid": "import-dropzone",
2708
+ role: "button",
2709
+ tabIndex: 0,
2710
+ "aria-label": translations("dropzone"),
2700
2711
  children: [
2701
2712
  /* @__PURE__ */ jsxRuntime.jsx(outline.ArrowUpTrayIcon, { className: "mx-auto h-10 w-10 text-gray-400 dark:text-gray-500" }),
2702
2713
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-3 text-sm font-medium text-gray-700 dark:text-gray-300", children: translations("dropzone") }),
@@ -2736,7 +2747,7 @@ function DslImportModal({ open, onClose, onImport }) {
2736
2747
  validationResult.edgeCount
2737
2748
  ] })
2738
2749
  ] })
2739
- ] }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg border border-red-200 bg-red-50 p-4 dark:border-red-800 dark:bg-red-900/20", children: [
2750
+ ] }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { role: "alert", className: "rounded-lg border border-red-200 bg-red-50 p-4 dark:border-red-800 dark:bg-red-900/20", children: [
2740
2751
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
2741
2752
  /* @__PURE__ */ jsxRuntime.jsx(outline.ExclamationTriangleIcon, { className: "h-5 w-5 text-red-500" }),
2742
2753
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium text-red-700 dark:text-red-400", children: translations("validationFailed") })
@@ -2768,14 +2779,14 @@ function DslImportModal({ open, onClose, onImport }) {
2768
2779
  }
2769
2780
 
2770
2781
  // src/astrlabe/store/selectors.ts
2771
- var useCanUndo = () => chunkTKLALDY4_js.useWorkflowStore((state) => state.past.length > 0);
2772
- var useCanRedo = () => chunkTKLALDY4_js.useWorkflowStore((state) => state.future.length > 0);
2773
- var useHasCopied = () => chunkTKLALDY4_js.useWorkflowStore((state) => state.clipboard !== null);
2774
- var useContextMenu = () => chunkTKLALDY4_js.useWorkflowStore((state) => state.contextMenu);
2775
- var useEditingNodeId = () => chunkTKLALDY4_js.useWorkflowStore((state) => state.editingNodeId);
2776
- var useSelectedNodeCount = () => chunkTKLALDY4_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
2777
- var useIsRunning = () => chunkTKLALDY4_js.useWorkflowStore((state) => state.isRunning);
2778
- var useNodeResults = () => chunkTKLALDY4_js.useWorkflowStore((state) => state.nodeResults);
2782
+ var useCanUndo = () => chunkLFWRE3A3_js.useWorkflowStore((state) => state.past.length > 0);
2783
+ var useCanRedo = () => chunkLFWRE3A3_js.useWorkflowStore((state) => state.future.length > 0);
2784
+ var useHasCopied = () => chunkLFWRE3A3_js.useWorkflowStore((state) => state.clipboard !== null);
2785
+ var useContextMenu = () => chunkLFWRE3A3_js.useWorkflowStore((state) => state.contextMenu);
2786
+ var useEditingNodeId = () => chunkLFWRE3A3_js.useWorkflowStore((state) => state.editingNodeId);
2787
+ var useSelectedNodeCount = () => chunkLFWRE3A3_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
2788
+ var useIsRunning = () => chunkLFWRE3A3_js.useWorkflowStore((state) => state.isRunning);
2789
+ var useNodeResults = () => chunkLFWRE3A3_js.useWorkflowStore((state) => state.nodeResults);
2779
2790
  var DEFAULT_MAX_HISTORY = 50;
2780
2791
  function useUndoRedo(nodes, edges, setNodes, setEdges, maxHistory = DEFAULT_MAX_HISTORY) {
2781
2792
  const pastRef = react.useRef([]);
@@ -3063,223 +3074,223 @@ Object.defineProperty(exports, "validateWorkflowGraph", {
3063
3074
  });
3064
3075
  Object.defineProperty(exports, "AgentFlowNode", {
3065
3076
  enumerable: true,
3066
- get: function () { return chunkTKLALDY4_js.AgentFlowNode; }
3077
+ get: function () { return chunkLFWRE3A3_js.AgentFlowNode; }
3067
3078
  });
3068
3079
  Object.defineProperty(exports, "AgentToolFlowNode", {
3069
3080
  enumerable: true,
3070
- get: function () { return chunkTKLALDY4_js.AgentToolFlowNode; }
3081
+ get: function () { return chunkLFWRE3A3_js.AgentToolFlowNode; }
3071
3082
  });
3072
3083
  Object.defineProperty(exports, "AnswerFlowNode", {
3073
3084
  enumerable: true,
3074
- get: function () { return chunkTKLALDY4_js.AnswerFlowNode; }
3085
+ get: function () { return chunkLFWRE3A3_js.AnswerFlowNode; }
3075
3086
  });
3076
3087
  Object.defineProperty(exports, "AnthropicIcon", {
3077
3088
  enumerable: true,
3078
- get: function () { return chunkTKLALDY4_js.AnthropicIcon; }
3089
+ get: function () { return chunkLFWRE3A3_js.AnthropicIcon; }
3079
3090
  });
3080
3091
  Object.defineProperty(exports, "CodeFlowNode", {
3081
3092
  enumerable: true,
3082
- get: function () { return chunkTKLALDY4_js.CodeFlowNode; }
3093
+ get: function () { return chunkLFWRE3A3_js.CodeFlowNode; }
3083
3094
  });
3084
3095
  Object.defineProperty(exports, "CrewAIIcon", {
3085
3096
  enumerable: true,
3086
- get: function () { return chunkTKLALDY4_js.CrewAIIcon; }
3097
+ get: function () { return chunkLFWRE3A3_js.CrewAIIcon; }
3087
3098
  });
3088
3099
  Object.defineProperty(exports, "DocumentExtractorFlowNode", {
3089
3100
  enumerable: true,
3090
- get: function () { return chunkTKLALDY4_js.DocumentExtractorFlowNode; }
3101
+ get: function () { return chunkLFWRE3A3_js.DocumentExtractorFlowNode; }
3091
3102
  });
3092
3103
  Object.defineProperty(exports, "EndFlowNode", {
3093
3104
  enumerable: true,
3094
- get: function () { return chunkTKLALDY4_js.EndFlowNode; }
3105
+ get: function () { return chunkLFWRE3A3_js.EndFlowNode; }
3095
3106
  });
3096
3107
  Object.defineProperty(exports, "EntityFlowNode", {
3097
3108
  enumerable: true,
3098
- get: function () { return chunkTKLALDY4_js.EntityFlowNode; }
3109
+ get: function () { return chunkLFWRE3A3_js.EntityFlowNode; }
3099
3110
  });
3100
3111
  Object.defineProperty(exports, "FRAMEWORK_META", {
3101
3112
  enumerable: true,
3102
- get: function () { return chunkTKLALDY4_js.FRAMEWORK_META; }
3113
+ get: function () { return chunkLFWRE3A3_js.FRAMEWORK_META; }
3103
3114
  });
3104
3115
  Object.defineProperty(exports, "GoogleADKIcon", {
3105
3116
  enumerable: true,
3106
- get: function () { return chunkTKLALDY4_js.GoogleADKIcon; }
3117
+ get: function () { return chunkLFWRE3A3_js.GoogleADKIcon; }
3107
3118
  });
3108
3119
  Object.defineProperty(exports, "GroupFlowNode", {
3109
3120
  enumerable: true,
3110
- get: function () { return chunkTKLALDY4_js.GroupFlowNode; }
3121
+ get: function () { return chunkLFWRE3A3_js.GroupFlowNode; }
3111
3122
  });
3112
3123
  Object.defineProperty(exports, "HttpRequestFlowNode", {
3113
3124
  enumerable: true,
3114
- get: function () { return chunkTKLALDY4_js.HttpRequestFlowNode; }
3125
+ get: function () { return chunkLFWRE3A3_js.HttpRequestFlowNode; }
3115
3126
  });
3116
3127
  Object.defineProperty(exports, "IfElseFlowNode", {
3117
3128
  enumerable: true,
3118
- get: function () { return chunkTKLALDY4_js.IfElseFlowNode; }
3129
+ get: function () { return chunkLFWRE3A3_js.IfElseFlowNode; }
3119
3130
  });
3120
3131
  Object.defineProperty(exports, "IterationFlowNode", {
3121
3132
  enumerable: true,
3122
- get: function () { return chunkTKLALDY4_js.IterationFlowNode; }
3133
+ get: function () { return chunkLFWRE3A3_js.IterationFlowNode; }
3123
3134
  });
3124
3135
  Object.defineProperty(exports, "IterationStartFlowNode", {
3125
3136
  enumerable: true,
3126
- get: function () { return chunkTKLALDY4_js.IterationStartFlowNode; }
3137
+ get: function () { return chunkLFWRE3A3_js.IterationStartFlowNode; }
3127
3138
  });
3128
3139
  Object.defineProperty(exports, "KnowledgeBaseFlowNode", {
3129
3140
  enumerable: true,
3130
- get: function () { return chunkTKLALDY4_js.KnowledgeBaseFlowNode; }
3141
+ get: function () { return chunkLFWRE3A3_js.KnowledgeBaseFlowNode; }
3131
3142
  });
3132
3143
  Object.defineProperty(exports, "LOGIC_ICON_MAP", {
3133
3144
  enumerable: true,
3134
- get: function () { return chunkTKLALDY4_js.LOGIC_ICON_MAP; }
3145
+ get: function () { return chunkLFWRE3A3_js.LOGIC_ICON_MAP; }
3135
3146
  });
3136
3147
  Object.defineProperty(exports, "LOGIC_NODE_BADGE_COLORS", {
3137
3148
  enumerable: true,
3138
- get: function () { return chunkTKLALDY4_js.LOGIC_NODE_BADGE_COLORS; }
3149
+ get: function () { return chunkLFWRE3A3_js.LOGIC_NODE_BADGE_COLORS; }
3139
3150
  });
3140
3151
  Object.defineProperty(exports, "LOGIC_NODE_GRADIENTS", {
3141
3152
  enumerable: true,
3142
- get: function () { return chunkTKLALDY4_js.LOGIC_NODE_GRADIENTS; }
3153
+ get: function () { return chunkLFWRE3A3_js.LOGIC_NODE_GRADIENTS; }
3143
3154
  });
3144
3155
  Object.defineProperty(exports, "LOGIC_NODE_HANDLE_COLORS", {
3145
3156
  enumerable: true,
3146
- get: function () { return chunkTKLALDY4_js.LOGIC_NODE_HANDLE_COLORS; }
3157
+ get: function () { return chunkLFWRE3A3_js.LOGIC_NODE_HANDLE_COLORS; }
3147
3158
  });
3148
3159
  Object.defineProperty(exports, "LangChainIcon", {
3149
3160
  enumerable: true,
3150
- get: function () { return chunkTKLALDY4_js.LangChainIcon; }
3161
+ get: function () { return chunkLFWRE3A3_js.LangChainIcon; }
3151
3162
  });
3152
3163
  Object.defineProperty(exports, "ListOperatorFlowNode", {
3153
3164
  enumerable: true,
3154
- get: function () { return chunkTKLALDY4_js.ListOperatorFlowNode; }
3165
+ get: function () { return chunkLFWRE3A3_js.ListOperatorFlowNode; }
3155
3166
  });
3156
3167
  Object.defineProperty(exports, "LogicNodeModal", {
3157
3168
  enumerable: true,
3158
- get: function () { return chunkTKLALDY4_js.LogicNodeModal; }
3169
+ get: function () { return chunkLFWRE3A3_js.LogicNodeModal; }
3159
3170
  });
3160
3171
  Object.defineProperty(exports, "MINIMAP_NODE_COLORS", {
3161
3172
  enumerable: true,
3162
- get: function () { return chunkTKLALDY4_js.MINIMAP_NODE_COLORS; }
3173
+ get: function () { return chunkLFWRE3A3_js.MINIMAP_NODE_COLORS; }
3163
3174
  });
3164
3175
  Object.defineProperty(exports, "NodeCard", {
3165
3176
  enumerable: true,
3166
- get: function () { return chunkTKLALDY4_js.NodeCard; }
3177
+ get: function () { return chunkLFWRE3A3_js.NodeCard; }
3167
3178
  });
3168
3179
  Object.defineProperty(exports, "NodeContextMenu", {
3169
3180
  enumerable: true,
3170
- get: function () { return chunkTKLALDY4_js.NodeContextMenu; }
3181
+ get: function () { return chunkLFWRE3A3_js.NodeContextMenu; }
3171
3182
  });
3172
3183
  Object.defineProperty(exports, "NoteFlowNode", {
3173
3184
  enumerable: true,
3174
- get: function () { return chunkTKLALDY4_js.NoteFlowNode; }
3185
+ get: function () { return chunkLFWRE3A3_js.NoteFlowNode; }
3175
3186
  });
3176
3187
  Object.defineProperty(exports, "OpenAIIcon", {
3177
3188
  enumerable: true,
3178
- get: function () { return chunkTKLALDY4_js.OpenAIIcon; }
3189
+ get: function () { return chunkLFWRE3A3_js.OpenAIIcon; }
3179
3190
  });
3180
3191
  Object.defineProperty(exports, "PanelContextMenu", {
3181
3192
  enumerable: true,
3182
- get: function () { return chunkTKLALDY4_js.PanelContextMenu; }
3193
+ get: function () { return chunkLFWRE3A3_js.PanelContextMenu; }
3183
3194
  });
3184
3195
  Object.defineProperty(exports, "ParameterExtractorFlowNode", {
3185
3196
  enumerable: true,
3186
- get: function () { return chunkTKLALDY4_js.ParameterExtractorFlowNode; }
3197
+ get: function () { return chunkLFWRE3A3_js.ParameterExtractorFlowNode; }
3187
3198
  });
3188
3199
  Object.defineProperty(exports, "QuestionClassifierFlowNode", {
3189
3200
  enumerable: true,
3190
- get: function () { return chunkTKLALDY4_js.QuestionClassifierFlowNode; }
3201
+ get: function () { return chunkLFWRE3A3_js.QuestionClassifierFlowNode; }
3191
3202
  });
3192
3203
  Object.defineProperty(exports, "RuleFlowNode", {
3193
3204
  enumerable: true,
3194
- get: function () { return chunkTKLALDY4_js.RuleFlowNode; }
3205
+ get: function () { return chunkLFWRE3A3_js.RuleFlowNode; }
3195
3206
  });
3196
3207
  Object.defineProperty(exports, "SelectionContextMenu", {
3197
3208
  enumerable: true,
3198
- get: function () { return chunkTKLALDY4_js.SelectionContextMenu; }
3209
+ get: function () { return chunkLFWRE3A3_js.SelectionContextMenu; }
3199
3210
  });
3200
3211
  Object.defineProperty(exports, "StartFlowNode", {
3201
3212
  enumerable: true,
3202
- get: function () { return chunkTKLALDY4_js.StartFlowNode; }
3213
+ get: function () { return chunkLFWRE3A3_js.StartFlowNode; }
3203
3214
  });
3204
3215
  Object.defineProperty(exports, "StrandsIcon", {
3205
3216
  enumerable: true,
3206
- get: function () { return chunkTKLALDY4_js.StrandsIcon; }
3217
+ get: function () { return chunkLFWRE3A3_js.StrandsIcon; }
3207
3218
  });
3208
3219
  Object.defineProperty(exports, "TemplateTransformFlowNode", {
3209
3220
  enumerable: true,
3210
- get: function () { return chunkTKLALDY4_js.TemplateTransformFlowNode; }
3221
+ get: function () { return chunkLFWRE3A3_js.TemplateTransformFlowNode; }
3211
3222
  });
3212
3223
  Object.defineProperty(exports, "ToolFlowNode", {
3213
3224
  enumerable: true,
3214
- get: function () { return chunkTKLALDY4_js.ToolFlowNode; }
3225
+ get: function () { return chunkLFWRE3A3_js.ToolFlowNode; }
3215
3226
  });
3216
3227
  Object.defineProperty(exports, "VariableAggregatorFlowNode", {
3217
3228
  enumerable: true,
3218
- get: function () { return chunkTKLALDY4_js.VariableAggregatorFlowNode; }
3229
+ get: function () { return chunkLFWRE3A3_js.VariableAggregatorFlowNode; }
3219
3230
  });
3220
3231
  Object.defineProperty(exports, "VariableAssignerFlowNode", {
3221
3232
  enumerable: true,
3222
- get: function () { return chunkTKLALDY4_js.VariableAssignerFlowNode; }
3233
+ get: function () { return chunkLFWRE3A3_js.VariableAssignerFlowNode; }
3223
3234
  });
3224
3235
  Object.defineProperty(exports, "WorkflowBuilderProvider", {
3225
3236
  enumerable: true,
3226
- get: function () { return chunkTKLALDY4_js.WorkflowBuilderProvider; }
3237
+ get: function () { return chunkLFWRE3A3_js.WorkflowBuilderProvider; }
3227
3238
  });
3228
3239
  Object.defineProperty(exports, "Workspace", {
3229
3240
  enumerable: true,
3230
- get: function () { return chunkTKLALDY4_js.Workspace; }
3241
+ get: function () { return chunkLFWRE3A3_js.Workspace; }
3231
3242
  });
3232
3243
  Object.defineProperty(exports, "getCompatibleModels", {
3233
3244
  enumerable: true,
3234
- get: function () { return chunkTKLALDY4_js.getCompatibleModels; }
3245
+ get: function () { return chunkLFWRE3A3_js.getCompatibleModels; }
3235
3246
  });
3236
3247
  Object.defineProperty(exports, "getDefaultFrameworkForModel", {
3237
3248
  enumerable: true,
3238
- get: function () { return chunkTKLALDY4_js.getDefaultFrameworkForModel; }
3249
+ get: function () { return chunkLFWRE3A3_js.getDefaultFrameworkForModel; }
3239
3250
  });
3240
3251
  Object.defineProperty(exports, "getEntityBadgeColor", {
3241
3252
  enumerable: true,
3242
- get: function () { return chunkTKLALDY4_js.getEntityBadgeColor; }
3253
+ get: function () { return chunkLFWRE3A3_js.getEntityBadgeColor; }
3243
3254
  });
3244
3255
  Object.defineProperty(exports, "getEntityGradient", {
3245
3256
  enumerable: true,
3246
- get: function () { return chunkTKLALDY4_js.getEntityGradient; }
3257
+ get: function () { return chunkLFWRE3A3_js.getEntityGradient; }
3247
3258
  });
3248
3259
  Object.defineProperty(exports, "getEntityHandleColor", {
3249
3260
  enumerable: true,
3250
- get: function () { return chunkTKLALDY4_js.getEntityHandleColor; }
3261
+ get: function () { return chunkLFWRE3A3_js.getEntityHandleColor; }
3251
3262
  });
3252
3263
  Object.defineProperty(exports, "getEntityIcon", {
3253
3264
  enumerable: true,
3254
- get: function () { return chunkTKLALDY4_js.getEntityIcon; }
3265
+ get: function () { return chunkLFWRE3A3_js.getEntityIcon; }
3255
3266
  });
3256
3267
  Object.defineProperty(exports, "getEntityMinimapColor", {
3257
3268
  enumerable: true,
3258
- get: function () { return chunkTKLALDY4_js.getEntityMinimapColor; }
3269
+ get: function () { return chunkLFWRE3A3_js.getEntityMinimapColor; }
3259
3270
  });
3260
3271
  Object.defineProperty(exports, "getFrameworkMeta", {
3261
3272
  enumerable: true,
3262
- get: function () { return chunkTKLALDY4_js.getFrameworkMeta; }
3273
+ get: function () { return chunkLFWRE3A3_js.getFrameworkMeta; }
3263
3274
  });
3264
3275
  Object.defineProperty(exports, "isModelCompatibleWithFramework", {
3265
3276
  enumerable: true,
3266
- get: function () { return chunkTKLALDY4_js.isModelCompatibleWithFramework; }
3277
+ get: function () { return chunkLFWRE3A3_js.isModelCompatibleWithFramework; }
3267
3278
  });
3268
3279
  Object.defineProperty(exports, "useModalStore", {
3269
3280
  enumerable: true,
3270
- get: function () { return chunkTKLALDY4_js.useModalStore; }
3281
+ get: function () { return chunkLFWRE3A3_js.useModalStore; }
3271
3282
  });
3272
3283
  Object.defineProperty(exports, "useWorkflowBuilderClient", {
3273
3284
  enumerable: true,
3274
- get: function () { return chunkTKLALDY4_js.useWorkflowBuilderClient; }
3285
+ get: function () { return chunkLFWRE3A3_js.useWorkflowBuilderClient; }
3275
3286
  });
3276
3287
  Object.defineProperty(exports, "useWorkflowBuilderClientOptional", {
3277
3288
  enumerable: true,
3278
- get: function () { return chunkTKLALDY4_js.useWorkflowBuilderClientOptional; }
3289
+ get: function () { return chunkLFWRE3A3_js.useWorkflowBuilderClientOptional; }
3279
3290
  });
3280
3291
  Object.defineProperty(exports, "useWorkflowStore", {
3281
3292
  enumerable: true,
3282
- get: function () { return chunkTKLALDY4_js.useWorkflowStore; }
3293
+ get: function () { return chunkLFWRE3A3_js.useWorkflowStore; }
3283
3294
  });
3284
3295
  Object.defineProperty(exports, "GraphNodeBadge", {
3285
3296
  enumerable: true,