@datatechsolutions/ui 2.11.35 → 2.11.37

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.
@@ -1,14 +1,14 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- require('../chunk-55H6WZQP.js');
5
- var chunk3GE3MBUZ_js = require('../chunk-3GE3MBUZ.js');
6
- var chunkBXVUUI2B_js = require('../chunk-BXVUUI2B.js');
7
- var chunkKEUOCEOO_js = require('../chunk-KEUOCEOO.js');
4
+ var chunkNFJCB4BB_js = require('../chunk-NFJCB4BB.js');
5
+ var chunk2IOPJ5BM_js = require('../chunk-2IOPJ5BM.js');
6
+ require('../chunk-UZ3CMNUJ.js');
8
7
  var chunkYXN2K77G_js = require('../chunk-YXN2K77G.js');
9
8
  require('../chunk-S7KHTUHA.js');
10
- require('../chunk-UZ3CMNUJ.js');
9
+ require('../chunk-55H6WZQP.js');
11
10
  var chunkP4YYEM4B_js = require('../chunk-P4YYEM4B.js');
11
+ var chunk3GE3MBUZ_js = require('../chunk-3GE3MBUZ.js');
12
12
  var chunkPWBWP5FJ_js = require('../chunk-PWBWP5FJ.js');
13
13
  var react = require('react');
14
14
  var outline = require('@heroicons/react/24/outline');
@@ -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 = chunkBXVUUI2B_js.getFrameworkMeta(selectedFramework);
86
+ const frameworkMeta = chunkNFJCB4BB_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" },
@@ -359,13 +359,13 @@ function AgentCapabilityCard({ elo, setElo, models, selectedModelId, setSelected
359
359
  ] });
360
360
  }
361
361
  function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFramework, setSelectedFramework, markDirty, connectedProviderTypes }) {
362
- const frameworkKeys = Object.keys(chunkBXVUUI2B_js.FRAMEWORK_META);
362
+ const frameworkKeys = Object.keys(chunkNFJCB4BB_js.FRAMEWORK_META);
363
363
  const hasProviderConstraints = connectedProviderTypes.length > 0;
364
- const compatibleModels = chunkBXVUUI2B_js.getCompatibleModels(models, selectedFramework);
364
+ const compatibleModels = chunkNFJCB4BB_js.getCompatibleModels(models, selectedFramework);
365
365
  const handleFrameworkChange = react.useCallback((newFramework) => {
366
366
  setSelectedFramework(newFramework);
367
- if (!chunkBXVUUI2B_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
368
- const compatible = chunkBXVUUI2B_js.getCompatibleModels(models, newFramework);
367
+ if (!chunkNFJCB4BB_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
368
+ const compatible = chunkNFJCB4BB_js.getCompatibleModels(models, newFramework);
369
369
  if (compatible.length > 0) {
370
370
  setSelectedModelId(compatible[0].id);
371
371
  }
@@ -376,10 +376,10 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
376
376
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
377
377
  /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-gray-500 dark:text-gray-400", children: t("agentDrawer.framework") }),
378
378
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1.5", children: frameworkKeys.map((key) => {
379
- const meta = chunkBXVUUI2B_js.FRAMEWORK_META[key];
379
+ const meta = chunkNFJCB4BB_js.FRAMEWORK_META[key];
380
380
  const isSelected = key === selectedFramework;
381
- const compatCount = chunkBXVUUI2B_js.getCompatibleModels(models, key).length;
382
- const isCompatibleWithProviders = !hasProviderConstraints || chunkBXVUUI2B_js.isFrameworkCompatibleWithProviders(key, connectedProviderTypes);
381
+ const compatCount = chunkNFJCB4BB_js.getCompatibleModels(models, key).length;
382
+ const isCompatibleWithProviders = !hasProviderConstraints || chunkNFJCB4BB_js.isFrameworkCompatibleWithProviders(key, connectedProviderTypes);
383
383
  return /* @__PURE__ */ jsxRuntime.jsxs(
384
384
  "button",
385
385
  {
@@ -411,7 +411,7 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
411
411
  ] }),
412
412
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-2", children: models.map((model) => {
413
413
  const isSelected = model.id === selectedModelId;
414
- const isCompatible = chunkBXVUUI2B_js.isModelCompatibleWithFramework(model.id, selectedFramework);
414
+ const isCompatible = chunkNFJCB4BB_js.isModelCompatibleWithFramework(model.id, selectedFramework);
415
415
  const { IconComponent, color, providerLabel } = getModelIcon(model.id);
416
416
  return /* @__PURE__ */ jsxRuntime.jsxs(
417
417
  "button",
@@ -510,7 +510,7 @@ function PromptTab({ agent, temperature, setTemperature, markDirty, t }) {
510
510
  ] });
511
511
  }
512
512
  function ResultsTab({ agentId, t }) {
513
- const nodeResults = chunkBXVUUI2B_js.useWorkflowStore((state) => state.nodeResults);
513
+ const nodeResults = chunkNFJCB4BB_js.useWorkflowStore((state) => state.nodeResults);
514
514
  const agentResult = react.useMemo(() => {
515
515
  return nodeResults[agentId] ?? null;
516
516
  }, [nodeResults, agentId]);
@@ -600,10 +600,10 @@ function ModelsTab({ modelProviders, selectedProviderId, onSelectProvider, model
600
600
  const providerModels = modelsByProvider.find((p) => p.provider.id === selectedProviderId);
601
601
  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") });
602
602
  const compatibleModels = providerModels.models.filter(
603
- (m) => chunkBXVUUI2B_js.isModelCompatibleWithFramework(m.id, agentFramework)
603
+ (m) => chunkNFJCB4BB_js.isModelCompatibleWithFramework(m.id, agentFramework)
604
604
  );
605
605
  const incompatibleModels = providerModels.models.filter(
606
- (m) => !chunkBXVUUI2B_js.isModelCompatibleWithFramework(m.id, agentFramework)
606
+ (m) => !chunkNFJCB4BB_js.isModelCompatibleWithFramework(m.id, agentFramework)
607
607
  );
608
608
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
609
609
  /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-gray-500 dark:text-gray-400", children: t("agentDrawer.selectModel") }),
@@ -676,7 +676,7 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
676
676
  ] }),
677
677
  tool.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: tool.description }),
678
678
  tool.compatibleFrameworks && tool.compatibleFrameworks.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-1 flex flex-wrap gap-0.5", children: tool.compatibleFrameworks.map((framework) => {
679
- const meta = chunkBXVUUI2B_js.getFrameworkMeta(framework);
679
+ const meta = chunkNFJCB4BB_js.getFrameworkMeta(framework);
680
680
  const isCurrentFw = framework === agentFramework;
681
681
  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: [
682
682
  /* @__PURE__ */ jsxRuntime.jsx(meta.IconComponent, { className: "h-2.5 w-2.5" }),
@@ -693,7 +693,7 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
693
693
  event.stopPropagation();
694
694
  },
695
695
  children: /* @__PURE__ */ jsxRuntime.jsx(
696
- chunkKEUOCEOO_js.ToggleSwitch,
696
+ chunk2IOPJ5BM_js.ToggleSwitch,
697
697
  {
698
698
  checked: isEnabled,
699
699
  onChange: () => onToggle(tool.agentToolId),
@@ -714,9 +714,9 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
714
714
  }
715
715
  function AgentModal({ onSaved }) {
716
716
  const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
717
- const activeModal = chunkBXVUUI2B_js.useModalStore((s) => s.activeModal);
718
- const agentData = chunkBXVUUI2B_js.useModalStore((s) => s.agentData);
719
- const closeModal = chunkBXVUUI2B_js.useModalStore((s) => s.closeModal);
717
+ const activeModal = chunkNFJCB4BB_js.useModalStore((s) => s.activeModal);
718
+ const agentData = chunkNFJCB4BB_js.useModalStore((s) => s.agentData);
719
+ const closeModal = chunkNFJCB4BB_js.useModalStore((s) => s.closeModal);
720
720
  const open = activeModal === "agent";
721
721
  const agent = agentData?.agent ?? null;
722
722
  const models = agentData?.models ?? [];
@@ -791,7 +791,7 @@ function AgentModal({ onSaved }) {
791
791
  )
792
792
  ] });
793
793
  return /* @__PURE__ */ jsxRuntime.jsxs(
794
- chunkKEUOCEOO_js.GlassModal,
794
+ chunk2IOPJ5BM_js.GlassModal,
795
795
  {
796
796
  open,
797
797
  onClose: handleClose,
@@ -943,7 +943,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
943
943
  const markDirty = useSubworkflowStore((s) => s.markDirty);
944
944
  const markSaved = useSubworkflowStore((s) => s.markSaved);
945
945
  const closeModal = useSubworkflowStore((s) => s.closeModal);
946
- const agentBehind = chunkBXVUUI2B_js.useModalStore((s) => s.activeModal === "agent" ? s.agentData?.agent?.name : null);
946
+ const agentBehind = chunkNFJCB4BB_js.useModalStore((s) => s.activeModal === "agent" ? s.agentData?.agent?.name : null);
947
947
  const isCreateMode = !tool?.toolId;
948
948
  const initialGraph = react.useMemo(() => {
949
949
  const config = tool?.config;
@@ -972,9 +972,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
972
972
  }, [tool, onSaved, name, category, description, timeoutMs, latestGraphRef, markSaved]);
973
973
  if (!tool) return null;
974
974
  const categoryKey = category ?? "external";
975
- const gradient = tool.color ?? chunkBXVUUI2B_js.CATEGORY_COLORS[categoryKey] ?? chunkBXVUUI2B_js.CATEGORY_COLORS.external;
976
- const categoryPill = chunkBXVUUI2B_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunkBXVUUI2B_js.CATEGORY_PILL_COLORS.external;
977
- const IconComponent = chunkBXVUUI2B_js.ICON_MAP[tool.icon ?? ""] ?? outline.ArrowPathRoundedSquareIcon;
975
+ const gradient = tool.color ?? chunkNFJCB4BB_js.CATEGORY_COLORS[categoryKey] ?? chunkNFJCB4BB_js.CATEGORY_COLORS.external;
976
+ const categoryPill = chunkNFJCB4BB_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunkNFJCB4BB_js.CATEGORY_PILL_COLORS.external;
977
+ const IconComponent = chunkNFJCB4BB_js.ICON_MAP[tool.icon ?? ""] ?? outline.ArrowPathRoundedSquareIcon;
978
978
  const graph = latestGraphRef.current;
979
979
  const startNode = graph.nodes.find((n) => n.type === "start");
980
980
  const endNode = graph.nodes.find((n) => n.type === "end");
@@ -1007,7 +1007,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1007
1007
  ] })
1008
1008
  ] });
1009
1009
  return /* @__PURE__ */ jsxRuntime.jsx(
1010
- chunkKEUOCEOO_js.GlassModal,
1010
+ chunk2IOPJ5BM_js.GlassModal,
1011
1011
  {
1012
1012
  open,
1013
1013
  onClose: closeModal,
@@ -1039,7 +1039,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1039
1039
  {
1040
1040
  type: "button",
1041
1041
  onClick: () => setCategory(cat),
1042
- className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${chunkBXVUUI2B_js.CATEGORY_PILL_COLORS[cat] ?? chunkBXVUUI2B_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"}`,
1042
+ className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${chunkNFJCB4BB_js.CATEGORY_PILL_COLORS[cat] ?? chunkNFJCB4BB_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"}`,
1043
1043
  children: cat
1044
1044
  },
1045
1045
  cat
@@ -1126,7 +1126,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1126
1126
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto" })
1127
1127
  ] }),
1128
1128
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
1129
- chunkBXVUUI2B_js.WorkflowCanvas,
1129
+ chunkNFJCB4BB_js.WorkflowCanvas,
1130
1130
  {
1131
1131
  initialGraph,
1132
1132
  agents: [],
@@ -1163,7 +1163,7 @@ function WorkspaceModal({
1163
1163
  }) {
1164
1164
  const resolvedSize = LEGACY_WIDTH_MAP[maxWidth] ?? maxWidth;
1165
1165
  return /* @__PURE__ */ jsxRuntime.jsxs(
1166
- chunkKEUOCEOO_js.GlassModal,
1166
+ chunk2IOPJ5BM_js.GlassModal,
1167
1167
  {
1168
1168
  open,
1169
1169
  onClose,
@@ -1184,9 +1184,9 @@ function WorkspaceModal({
1184
1184
  }
1185
1185
  function PipelineSettingsModal({ onSave }) {
1186
1186
  const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
1187
- const activeModal = chunkBXVUUI2B_js.useModalStore((s) => s.activeModal);
1188
- const data = chunkBXVUUI2B_js.useModalStore((s) => s.pipelineSettingsData);
1189
- const closeModal = chunkBXVUUI2B_js.useModalStore((s) => s.closeModal);
1187
+ const activeModal = chunkNFJCB4BB_js.useModalStore((s) => s.activeModal);
1188
+ const data = chunkNFJCB4BB_js.useModalStore((s) => s.pipelineSettingsData);
1189
+ const closeModal = chunkNFJCB4BB_js.useModalStore((s) => s.closeModal);
1190
1190
  const open = activeModal === "pipeline-settings";
1191
1191
  const [nameValue, setNameValue] = react.useState("");
1192
1192
  const [descriptionValue, setDescriptionValue] = react.useState("");
@@ -1221,7 +1221,7 @@ function PipelineSettingsModal({ onSave }) {
1221
1221
  }
1222
1222
  ),
1223
1223
  /* @__PURE__ */ jsxRuntime.jsxs(
1224
- chunkKEUOCEOO_js.Button,
1224
+ chunk2IOPJ5BM_js.Button,
1225
1225
  {
1226
1226
  type: "submit",
1227
1227
  form: "pipeline-settings-form",
@@ -1236,7 +1236,7 @@ function PipelineSettingsModal({ onSave }) {
1236
1236
  )
1237
1237
  ] });
1238
1238
  return /* @__PURE__ */ jsxRuntime.jsx(
1239
- chunkKEUOCEOO_js.GlassModal,
1239
+ chunk2IOPJ5BM_js.GlassModal,
1240
1240
  {
1241
1241
  open,
1242
1242
  onClose: closeModal,
@@ -1250,7 +1250,7 @@ function PipelineSettingsModal({ onSave }) {
1250
1250
  onSubmit: handleSubmit,
1251
1251
  children: /* @__PURE__ */ jsxRuntime.jsxs("form", { id: "pipeline-settings-form", onSubmit: handleSubmit, className: "space-y-6", children: [
1252
1252
  /* @__PURE__ */ jsxRuntime.jsx(
1253
- chunkKEUOCEOO_js.FormInput,
1253
+ chunk2IOPJ5BM_js.FormInput,
1254
1254
  {
1255
1255
  label: t("pipelineName"),
1256
1256
  value: nameValue,
@@ -1260,7 +1260,7 @@ function PipelineSettingsModal({ onSave }) {
1260
1260
  }
1261
1261
  ),
1262
1262
  /* @__PURE__ */ jsxRuntime.jsx(
1263
- chunkKEUOCEOO_js.FormTextarea,
1263
+ chunk2IOPJ5BM_js.FormTextarea,
1264
1264
  {
1265
1265
  label: t("pipelineDescription"),
1266
1266
  value: descriptionValue,
@@ -1395,8 +1395,8 @@ function CollapsibleSection({ title, icon, colorClass, defaultOpen = true, count
1395
1395
  ] });
1396
1396
  }
1397
1397
  function LogicNodeItemCard({ item, translationFunction }) {
1398
- const IconComponent = chunkBXVUUI2B_js.LOGIC_ICON_MAP[item.nodeType];
1399
- const gradient = chunkBXVUUI2B_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-gray-400 to-gray-500";
1398
+ const IconComponent = chunkNFJCB4BB_js.LOGIC_ICON_MAP[item.nodeType];
1399
+ const gradient = chunkNFJCB4BB_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-gray-400 to-gray-500";
1400
1400
  const defaultConfig = chunkPWBWP5FJ_js.createDefaultLogicNodeConfig(item.nodeType);
1401
1401
  const configJson = defaultConfig ? JSON.stringify(defaultConfig) : void 0;
1402
1402
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -1562,7 +1562,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
1562
1562
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: tool.category })
1563
1563
  ] }),
1564
1564
  /* @__PURE__ */ jsxRuntime.jsx(
1565
- chunkKEUOCEOO_js.ToggleSwitch,
1565
+ chunk2IOPJ5BM_js.ToggleSwitch,
1566
1566
  {
1567
1567
  checked: Boolean(tool.enabled),
1568
1568
  onChange: () => {
@@ -1603,7 +1603,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
1603
1603
  ] })
1604
1604
  ] }),
1605
1605
  /* @__PURE__ */ jsxRuntime.jsx(
1606
- chunkKEUOCEOO_js.ToggleSwitch,
1606
+ chunk2IOPJ5BM_js.ToggleSwitch,
1607
1607
  {
1608
1608
  checked: Boolean(rule.enabled),
1609
1609
  onChange: () => {
@@ -1639,8 +1639,8 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
1639
1639
  limit: entity.defaultLimit
1640
1640
  });
1641
1641
  const dsLogo = getDatasourceLogo(entity.id);
1642
- const EntityIcon = chunkBXVUUI2B_js.getEntityIcon(entity.id);
1643
- const entityGradient = chunkBXVUUI2B_js.getEntityGradient(entity.id);
1642
+ const EntityIcon = chunkNFJCB4BB_js.getEntityIcon(entity.id);
1643
+ const entityGradient = chunkNFJCB4BB_js.getEntityGradient(entity.id);
1644
1644
  return /* @__PURE__ */ jsxRuntime.jsxs(
1645
1645
  "div",
1646
1646
  {
@@ -1660,7 +1660,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
1660
1660
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
1661
1661
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded-full bg-slate-100 px-1.5 py-0.5 text-[9px] font-medium text-slate-600 dark:bg-white/10 dark:text-slate-300", children: "Read only" }),
1662
1662
  /* @__PURE__ */ jsxRuntime.jsx(
1663
- chunkKEUOCEOO_js.ToggleSwitch,
1663
+ chunk2IOPJ5BM_js.ToggleSwitch,
1664
1664
  {
1665
1665
  checked: true,
1666
1666
  onChange: () => {
@@ -2037,9 +2037,9 @@ function formatDuration2(durationMs) {
2037
2037
  }
2038
2038
  function RunPanel({ open, onClose, onRun, onStop }) {
2039
2039
  const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.runPanel");
2040
- const nodes = chunkBXVUUI2B_js.useWorkflowStore((state) => state.nodes);
2041
- const isRunning = chunkBXVUUI2B_js.useWorkflowStore((state) => state.isRunning);
2042
- const nodeResults = chunkBXVUUI2B_js.useWorkflowStore((state) => state.nodeResults);
2040
+ const nodes = chunkNFJCB4BB_js.useWorkflowStore((state) => state.nodes);
2041
+ const isRunning = chunkNFJCB4BB_js.useWorkflowStore((state) => state.isRunning);
2042
+ const nodeResults = chunkNFJCB4BB_js.useWorkflowStore((state) => state.nodeResults);
2043
2043
  const startNode = nodes.find((node) => node.type === "start");
2044
2044
  const hasEndNode = nodes.some((node) => node.type === "end");
2045
2045
  const hasValidStartConfig = Boolean(
@@ -2324,8 +2324,8 @@ function inferVariables(config, nodeType) {
2324
2324
  }
2325
2325
  function VariableInspector({ open, onClose }) {
2326
2326
  const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.variableInspector");
2327
- const nodes = chunkBXVUUI2B_js.useWorkflowStore((state) => state.nodes);
2328
- const edges = chunkBXVUUI2B_js.useWorkflowStore((state) => state.edges);
2327
+ const nodes = chunkNFJCB4BB_js.useWorkflowStore((state) => state.nodes);
2328
+ const edges = chunkNFJCB4BB_js.useWorkflowStore((state) => state.edges);
2329
2329
  const [expandedNodes, setExpandedNodes] = react.useState(/* @__PURE__ */ new Set());
2330
2330
  const toggleNodeExpansion = react.useCallback((nodeId) => {
2331
2331
  setExpandedNodes((current) => {
@@ -2387,8 +2387,8 @@ function VariableInspector({ open, onClose }) {
2387
2387
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-gray-500 dark:text-gray-400", children: translations("noNodes") })
2388
2388
  ] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-gray-100 dark:divide-gray-800", children: nodeVariableEntries.map((entry) => {
2389
2389
  const isExpanded = expandedNodes.has(entry.nodeId);
2390
- const IconComponent = chunkBXVUUI2B_js.LOGIC_ICON_MAP[entry.nodeType];
2391
- const gradient = chunkBXVUUI2B_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-gray-400 to-gray-500";
2390
+ const IconComponent = chunkNFJCB4BB_js.LOGIC_ICON_MAP[entry.nodeType];
2391
+ const gradient = chunkNFJCB4BB_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-gray-400 to-gray-500";
2392
2392
  const inputVariables = entry.variables.filter((variable) => variable.direction === "input");
2393
2393
  const outputVariables = entry.variables.filter((variable) => variable.direction === "output");
2394
2394
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": `variable-node-${entry.nodeId}`, children: [
@@ -2454,7 +2454,7 @@ function RunInputDialog({
2454
2454
  onRun
2455
2455
  }) {
2456
2456
  const t = chunkYXN2K77G_js.useTranslations("agents.workflow.runInputDialog");
2457
- const nodes = chunkBXVUUI2B_js.useWorkflowStore((state) => state.nodes);
2457
+ const nodes = chunkNFJCB4BB_js.useWorkflowStore((state) => state.nodes);
2458
2458
  const [values, setValues] = react.useState({});
2459
2459
  const inputVariableNames = react.useMemo(() => {
2460
2460
  const storeStartNode = nodes.find((node) => node.type === "start");
@@ -2481,7 +2481,7 @@ function RunInputDialog({
2481
2481
  }, [onClose]);
2482
2482
  if (!open) return null;
2483
2483
  return /* @__PURE__ */ jsxRuntime.jsxs(
2484
- chunkKEUOCEOO_js.GlassModal,
2484
+ chunk2IOPJ5BM_js.GlassModal,
2485
2485
  {
2486
2486
  open,
2487
2487
  onClose: handleClose,
@@ -2492,7 +2492,7 @@ function RunInputDialog({
2492
2492
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: inputVariableNames.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-center text-sm text-gray-500 dark:text-gray-400", children: t("noInputs") }) : inputVariableNames.map((variableName) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
2493
2493
  /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300", children: variableName }),
2494
2494
  /* @__PURE__ */ jsxRuntime.jsx(
2495
- chunkKEUOCEOO_js.Input,
2495
+ chunk2IOPJ5BM_js.Input,
2496
2496
  {
2497
2497
  value: values[variableName] ?? "",
2498
2498
  onChange: (event) => handleValueChange(variableName, event.target.value),
@@ -2501,8 +2501,8 @@ function RunInputDialog({
2501
2501
  )
2502
2502
  ] }, variableName)) }),
2503
2503
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-4 flex items-center justify-end gap-2", children: [
2504
- /* @__PURE__ */ jsxRuntime.jsx(chunkKEUOCEOO_js.Button, { size: "sm", plain: true, onClick: handleClose, children: t("cancel") }),
2505
- /* @__PURE__ */ jsxRuntime.jsxs(chunkKEUOCEOO_js.Button, { size: "sm", gradient: true, onClick: handleSubmit, children: [
2504
+ /* @__PURE__ */ jsxRuntime.jsx(chunk2IOPJ5BM_js.Button, { size: "sm", plain: true, onClick: handleClose, children: t("cancel") }),
2505
+ /* @__PURE__ */ jsxRuntime.jsxs(chunk2IOPJ5BM_js.Button, { size: "sm", gradient: true, onClick: handleSubmit, children: [
2506
2506
  /* @__PURE__ */ jsxRuntime.jsx(outline.PlayIcon, { className: "h-3.5 w-3.5", "data-slot": "icon" }),
2507
2507
  t("run")
2508
2508
  ] })
@@ -2535,8 +2535,8 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
2535
2535
  const [isLoadingRuns, setIsLoadingRuns] = react.useState(false);
2536
2536
  const [selectedRun, setSelectedRun] = react.useState(null);
2537
2537
  const [selectedNode, setSelectedNode] = react.useState(null);
2538
- const isRunning = chunkBXVUUI2B_js.useWorkflowStore((state) => state.isRunning);
2539
- const nodeResults = chunkBXVUUI2B_js.useWorkflowStore((state) => state.nodeResults);
2538
+ const isRunning = chunkNFJCB4BB_js.useWorkflowStore((state) => state.isRunning);
2539
+ const nodeResults = chunkNFJCB4BB_js.useWorkflowStore((state) => state.nodeResults);
2540
2540
  const refreshRuns = react.useCallback(async () => {
2541
2541
  setIsLoadingRuns(true);
2542
2542
  try {
@@ -2692,7 +2692,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
2692
2692
  onAutoSaveGraph(graph);
2693
2693
  }, [onAutoSaveGraph, onGraphSnapshot]);
2694
2694
  return /* @__PURE__ */ jsxRuntime.jsx(
2695
- chunkBXVUUI2B_js.Workspace,
2695
+ chunkNFJCB4BB_js.Workspace,
2696
2696
  {
2697
2697
  ...workspaceProps,
2698
2698
  onGraphChange: handleGraphChange
@@ -2700,7 +2700,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
2700
2700
  );
2701
2701
  });
2702
2702
  function DynamicIslandConfirm2(props) {
2703
- return /* @__PURE__ */ jsxRuntime.jsx(chunkKEUOCEOO_js.DynamicIslandConfirm, { ...props });
2703
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk2IOPJ5BM_js.DynamicIslandConfirm, { ...props });
2704
2704
  }
2705
2705
  var JSON_PREVIEW_LINE_LIMIT = 50;
2706
2706
  function DslExportModal({ open, onClose, workflow, graph }) {
@@ -2754,7 +2754,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
2754
2754
  }, [jsonString, workflow.name, workflow.version]);
2755
2755
  if (!open) return null;
2756
2756
  return /* @__PURE__ */ jsxRuntime.jsx(
2757
- chunkKEUOCEOO_js.GlassModal,
2757
+ chunk2IOPJ5BM_js.GlassModal,
2758
2758
  {
2759
2759
  open,
2760
2760
  onClose,
@@ -2796,7 +2796,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
2796
2796
  ] }),
2797
2797
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-end gap-3 border-t border-gray-200 px-1 py-4 dark:border-gray-700", children: [
2798
2798
  /* @__PURE__ */ jsxRuntime.jsx(
2799
- chunkKEUOCEOO_js.Button,
2799
+ chunk2IOPJ5BM_js.Button,
2800
2800
  {
2801
2801
  type: "button",
2802
2802
  onClick: handleCopyToClipboard,
@@ -2813,7 +2813,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
2813
2813
  }
2814
2814
  ),
2815
2815
  /* @__PURE__ */ jsxRuntime.jsxs(
2816
- chunkKEUOCEOO_js.Button,
2816
+ chunk2IOPJ5BM_js.Button,
2817
2817
  {
2818
2818
  type: "button",
2819
2819
  onClick: handleDownloadJson,
@@ -2972,7 +2972,7 @@ function DslImportModal({ open, onClose, onImport }) {
2972
2972
  }, []);
2973
2973
  if (!open) return null;
2974
2974
  return /* @__PURE__ */ jsxRuntime.jsx(
2975
- chunkKEUOCEOO_js.GlassModal,
2975
+ chunk2IOPJ5BM_js.GlassModal,
2976
2976
  {
2977
2977
  open,
2978
2978
  onClose,
@@ -3012,7 +3012,7 @@ function DslImportModal({ open, onClose, onImport }) {
3012
3012
  ) : /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": "import-validation-result", children: [
3013
3013
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4 flex items-center justify-between", children: [
3014
3014
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: fileName }),
3015
- /* @__PURE__ */ jsxRuntime.jsx(chunkKEUOCEOO_js.Button, { type: "button", plain: true, size: "sm", onClick: handleReset, children: translations("chooseAnother") })
3015
+ /* @__PURE__ */ jsxRuntime.jsx(chunk2IOPJ5BM_js.Button, { type: "button", plain: true, size: "sm", onClick: handleReset, children: translations("chooseAnother") })
3016
3016
  ] }),
3017
3017
  validationResult.isValid ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-lg border border-green-200 bg-green-50 p-4 dark:border-green-800 dark:bg-green-900/20", children: [
3018
3018
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
@@ -3040,9 +3040,9 @@ function DslImportModal({ open, onClose, onImport }) {
3040
3040
  ] })
3041
3041
  ] }) }),
3042
3042
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-end gap-3 border-t border-gray-200 px-1 py-4 dark:border-gray-700", children: [
3043
- /* @__PURE__ */ jsxRuntime.jsx(chunkKEUOCEOO_js.Button, { type: "button", onClick: onClose, outline: true, size: "sm", "data-testid": "import-cancel-button", children: translations("cancel") }),
3043
+ /* @__PURE__ */ jsxRuntime.jsx(chunk2IOPJ5BM_js.Button, { type: "button", onClick: onClose, outline: true, size: "sm", "data-testid": "import-cancel-button", children: translations("cancel") }),
3044
3044
  /* @__PURE__ */ jsxRuntime.jsxs(
3045
- chunkKEUOCEOO_js.Button,
3045
+ chunk2IOPJ5BM_js.Button,
3046
3046
  {
3047
3047
  type: "button",
3048
3048
  onClick: handleImport,
@@ -3063,14 +3063,14 @@ function DslImportModal({ open, onClose, onImport }) {
3063
3063
  }
3064
3064
 
3065
3065
  // src/astrlabe/store/selectors.ts
3066
- var useCanUndo = () => chunkBXVUUI2B_js.useWorkflowStore((state) => state.past.length > 0);
3067
- var useCanRedo = () => chunkBXVUUI2B_js.useWorkflowStore((state) => state.future.length > 0);
3068
- var useHasCopied = () => chunkBXVUUI2B_js.useWorkflowStore((state) => state.clipboard !== null);
3069
- var useContextMenu = () => chunkBXVUUI2B_js.useWorkflowStore((state) => state.contextMenu);
3070
- var useEditingNodeId = () => chunkBXVUUI2B_js.useWorkflowStore((state) => state.editingNodeId);
3071
- var useSelectedNodeCount = () => chunkBXVUUI2B_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
3072
- var useIsRunning = () => chunkBXVUUI2B_js.useWorkflowStore((state) => state.isRunning);
3073
- var useNodeResults = () => chunkBXVUUI2B_js.useWorkflowStore((state) => state.nodeResults);
3066
+ var useCanUndo = () => chunkNFJCB4BB_js.useWorkflowStore((state) => state.past.length > 0);
3067
+ var useCanRedo = () => chunkNFJCB4BB_js.useWorkflowStore((state) => state.future.length > 0);
3068
+ var useHasCopied = () => chunkNFJCB4BB_js.useWorkflowStore((state) => state.clipboard !== null);
3069
+ var useContextMenu = () => chunkNFJCB4BB_js.useWorkflowStore((state) => state.contextMenu);
3070
+ var useEditingNodeId = () => chunkNFJCB4BB_js.useWorkflowStore((state) => state.editingNodeId);
3071
+ var useSelectedNodeCount = () => chunkNFJCB4BB_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
3072
+ var useIsRunning = () => chunkNFJCB4BB_js.useWorkflowStore((state) => state.isRunning);
3073
+ var useNodeResults = () => chunkNFJCB4BB_js.useWorkflowStore((state) => state.nodeResults);
3074
3074
  var DEFAULT_MAX_HISTORY = 50;
3075
3075
  function useUndoRedo(nodes, edges, setNodes, setEdges, maxHistory = DEFAULT_MAX_HISTORY) {
3076
3076
  const pastRef = react.useRef([]);
@@ -3348,249 +3348,241 @@ function useHelpLines() {
3348
3348
  };
3349
3349
  }
3350
3350
 
3351
- Object.defineProperty(exports, "topologicalSortAgents", {
3352
- enumerable: true,
3353
- get: function () { return chunk3GE3MBUZ_js.topologicalSortAgents; }
3354
- });
3355
- Object.defineProperty(exports, "validateWorkflowGraph", {
3356
- enumerable: true,
3357
- get: function () { return chunk3GE3MBUZ_js.validateWorkflowGraph; }
3358
- });
3359
3351
  Object.defineProperty(exports, "AgentFlowNode", {
3360
3352
  enumerable: true,
3361
- get: function () { return chunkBXVUUI2B_js.AgentFlowNode; }
3353
+ get: function () { return chunkNFJCB4BB_js.AgentFlowNode; }
3362
3354
  });
3363
3355
  Object.defineProperty(exports, "AgentToolFlowNode", {
3364
3356
  enumerable: true,
3365
- get: function () { return chunkBXVUUI2B_js.AgentToolFlowNode; }
3357
+ get: function () { return chunkNFJCB4BB_js.AgentToolFlowNode; }
3366
3358
  });
3367
3359
  Object.defineProperty(exports, "AnswerFlowNode", {
3368
3360
  enumerable: true,
3369
- get: function () { return chunkBXVUUI2B_js.AnswerFlowNode; }
3361
+ get: function () { return chunkNFJCB4BB_js.AnswerFlowNode; }
3370
3362
  });
3371
3363
  Object.defineProperty(exports, "AnthropicIcon", {
3372
3364
  enumerable: true,
3373
- get: function () { return chunkBXVUUI2B_js.AnthropicIcon; }
3365
+ get: function () { return chunkNFJCB4BB_js.AnthropicIcon; }
3374
3366
  });
3375
3367
  Object.defineProperty(exports, "CodeFlowNode", {
3376
3368
  enumerable: true,
3377
- get: function () { return chunkBXVUUI2B_js.CodeFlowNode; }
3369
+ get: function () { return chunkNFJCB4BB_js.CodeFlowNode; }
3378
3370
  });
3379
3371
  Object.defineProperty(exports, "CrewAIIcon", {
3380
3372
  enumerable: true,
3381
- get: function () { return chunkBXVUUI2B_js.CrewAIIcon; }
3373
+ get: function () { return chunkNFJCB4BB_js.CrewAIIcon; }
3382
3374
  });
3383
3375
  Object.defineProperty(exports, "DocumentExtractorFlowNode", {
3384
3376
  enumerable: true,
3385
- get: function () { return chunkBXVUUI2B_js.DocumentExtractorFlowNode; }
3377
+ get: function () { return chunkNFJCB4BB_js.DocumentExtractorFlowNode; }
3386
3378
  });
3387
3379
  Object.defineProperty(exports, "EndFlowNode", {
3388
3380
  enumerable: true,
3389
- get: function () { return chunkBXVUUI2B_js.EndFlowNode; }
3381
+ get: function () { return chunkNFJCB4BB_js.EndFlowNode; }
3390
3382
  });
3391
3383
  Object.defineProperty(exports, "EntityFlowNode", {
3392
3384
  enumerable: true,
3393
- get: function () { return chunkBXVUUI2B_js.EntityFlowNode; }
3385
+ get: function () { return chunkNFJCB4BB_js.EntityFlowNode; }
3394
3386
  });
3395
3387
  Object.defineProperty(exports, "FRAMEWORK_META", {
3396
3388
  enumerable: true,
3397
- get: function () { return chunkBXVUUI2B_js.FRAMEWORK_META; }
3389
+ get: function () { return chunkNFJCB4BB_js.FRAMEWORK_META; }
3398
3390
  });
3399
3391
  Object.defineProperty(exports, "GoogleADKIcon", {
3400
3392
  enumerable: true,
3401
- get: function () { return chunkBXVUUI2B_js.GoogleADKIcon; }
3393
+ get: function () { return chunkNFJCB4BB_js.GoogleADKIcon; }
3402
3394
  });
3403
3395
  Object.defineProperty(exports, "GroupFlowNode", {
3404
3396
  enumerable: true,
3405
- get: function () { return chunkBXVUUI2B_js.GroupFlowNode; }
3397
+ get: function () { return chunkNFJCB4BB_js.GroupFlowNode; }
3406
3398
  });
3407
3399
  Object.defineProperty(exports, "HttpRequestFlowNode", {
3408
3400
  enumerable: true,
3409
- get: function () { return chunkBXVUUI2B_js.HttpRequestFlowNode; }
3401
+ get: function () { return chunkNFJCB4BB_js.HttpRequestFlowNode; }
3410
3402
  });
3411
3403
  Object.defineProperty(exports, "IfElseFlowNode", {
3412
3404
  enumerable: true,
3413
- get: function () { return chunkBXVUUI2B_js.IfElseFlowNode; }
3405
+ get: function () { return chunkNFJCB4BB_js.IfElseFlowNode; }
3414
3406
  });
3415
3407
  Object.defineProperty(exports, "IterationFlowNode", {
3416
3408
  enumerable: true,
3417
- get: function () { return chunkBXVUUI2B_js.IterationFlowNode; }
3409
+ get: function () { return chunkNFJCB4BB_js.IterationFlowNode; }
3418
3410
  });
3419
3411
  Object.defineProperty(exports, "IterationStartFlowNode", {
3420
3412
  enumerable: true,
3421
- get: function () { return chunkBXVUUI2B_js.IterationStartFlowNode; }
3413
+ get: function () { return chunkNFJCB4BB_js.IterationStartFlowNode; }
3422
3414
  });
3423
3415
  Object.defineProperty(exports, "KnowledgeBaseFlowNode", {
3424
3416
  enumerable: true,
3425
- get: function () { return chunkBXVUUI2B_js.KnowledgeBaseFlowNode; }
3417
+ get: function () { return chunkNFJCB4BB_js.KnowledgeBaseFlowNode; }
3426
3418
  });
3427
3419
  Object.defineProperty(exports, "LOGIC_ICON_MAP", {
3428
3420
  enumerable: true,
3429
- get: function () { return chunkBXVUUI2B_js.LOGIC_ICON_MAP; }
3421
+ get: function () { return chunkNFJCB4BB_js.LOGIC_ICON_MAP; }
3430
3422
  });
3431
3423
  Object.defineProperty(exports, "LOGIC_NODE_BADGE_COLORS", {
3432
3424
  enumerable: true,
3433
- get: function () { return chunkBXVUUI2B_js.LOGIC_NODE_BADGE_COLORS; }
3425
+ get: function () { return chunkNFJCB4BB_js.LOGIC_NODE_BADGE_COLORS; }
3434
3426
  });
3435
3427
  Object.defineProperty(exports, "LOGIC_NODE_GRADIENTS", {
3436
3428
  enumerable: true,
3437
- get: function () { return chunkBXVUUI2B_js.LOGIC_NODE_GRADIENTS; }
3429
+ get: function () { return chunkNFJCB4BB_js.LOGIC_NODE_GRADIENTS; }
3438
3430
  });
3439
3431
  Object.defineProperty(exports, "LOGIC_NODE_HANDLE_COLORS", {
3440
3432
  enumerable: true,
3441
- get: function () { return chunkBXVUUI2B_js.LOGIC_NODE_HANDLE_COLORS; }
3433
+ get: function () { return chunkNFJCB4BB_js.LOGIC_NODE_HANDLE_COLORS; }
3442
3434
  });
3443
3435
  Object.defineProperty(exports, "LangChainIcon", {
3444
3436
  enumerable: true,
3445
- get: function () { return chunkBXVUUI2B_js.LangChainIcon; }
3437
+ get: function () { return chunkNFJCB4BB_js.LangChainIcon; }
3446
3438
  });
3447
3439
  Object.defineProperty(exports, "ListOperatorFlowNode", {
3448
3440
  enumerable: true,
3449
- get: function () { return chunkBXVUUI2B_js.ListOperatorFlowNode; }
3441
+ get: function () { return chunkNFJCB4BB_js.ListOperatorFlowNode; }
3450
3442
  });
3451
3443
  Object.defineProperty(exports, "LogicNodeModal", {
3452
3444
  enumerable: true,
3453
- get: function () { return chunkBXVUUI2B_js.LogicNodeModal; }
3445
+ get: function () { return chunkNFJCB4BB_js.LogicNodeModal; }
3454
3446
  });
3455
3447
  Object.defineProperty(exports, "MINIMAP_NODE_COLORS", {
3456
3448
  enumerable: true,
3457
- get: function () { return chunkBXVUUI2B_js.MINIMAP_NODE_COLORS; }
3449
+ get: function () { return chunkNFJCB4BB_js.MINIMAP_NODE_COLORS; }
3458
3450
  });
3459
3451
  Object.defineProperty(exports, "ModelProviderFlowNode", {
3460
3452
  enumerable: true,
3461
- get: function () { return chunkBXVUUI2B_js.ModelProviderFlowNode; }
3453
+ get: function () { return chunkNFJCB4BB_js.ModelProviderFlowNode; }
3462
3454
  });
3463
3455
  Object.defineProperty(exports, "NODE_EXECUTION_ACCENT_COLORS", {
3464
3456
  enumerable: true,
3465
- get: function () { return chunkBXVUUI2B_js.NODE_EXECUTION_ACCENT_COLORS; }
3457
+ get: function () { return chunkNFJCB4BB_js.NODE_EXECUTION_ACCENT_COLORS; }
3466
3458
  });
3467
3459
  Object.defineProperty(exports, "NodeCard", {
3468
3460
  enumerable: true,
3469
- get: function () { return chunkBXVUUI2B_js.NodeCard; }
3461
+ get: function () { return chunkNFJCB4BB_js.NodeCard; }
3470
3462
  });
3471
3463
  Object.defineProperty(exports, "NodeContextMenu", {
3472
3464
  enumerable: true,
3473
- get: function () { return chunkBXVUUI2B_js.NodeContextMenu; }
3465
+ get: function () { return chunkNFJCB4BB_js.NodeContextMenu; }
3474
3466
  });
3475
3467
  Object.defineProperty(exports, "NoteFlowNode", {
3476
3468
  enumerable: true,
3477
- get: function () { return chunkBXVUUI2B_js.NoteFlowNode; }
3469
+ get: function () { return chunkNFJCB4BB_js.NoteFlowNode; }
3478
3470
  });
3479
3471
  Object.defineProperty(exports, "OpenAIIcon", {
3480
3472
  enumerable: true,
3481
- get: function () { return chunkBXVUUI2B_js.OpenAIIcon; }
3473
+ get: function () { return chunkNFJCB4BB_js.OpenAIIcon; }
3482
3474
  });
3483
3475
  Object.defineProperty(exports, "PanelContextMenu", {
3484
3476
  enumerable: true,
3485
- get: function () { return chunkBXVUUI2B_js.PanelContextMenu; }
3477
+ get: function () { return chunkNFJCB4BB_js.PanelContextMenu; }
3486
3478
  });
3487
3479
  Object.defineProperty(exports, "ParameterExtractorFlowNode", {
3488
3480
  enumerable: true,
3489
- get: function () { return chunkBXVUUI2B_js.ParameterExtractorFlowNode; }
3481
+ get: function () { return chunkNFJCB4BB_js.ParameterExtractorFlowNode; }
3490
3482
  });
3491
3483
  Object.defineProperty(exports, "QuestionClassifierFlowNode", {
3492
3484
  enumerable: true,
3493
- get: function () { return chunkBXVUUI2B_js.QuestionClassifierFlowNode; }
3485
+ get: function () { return chunkNFJCB4BB_js.QuestionClassifierFlowNode; }
3494
3486
  });
3495
3487
  Object.defineProperty(exports, "RuleFlowNode", {
3496
3488
  enumerable: true,
3497
- get: function () { return chunkBXVUUI2B_js.RuleFlowNode; }
3489
+ get: function () { return chunkNFJCB4BB_js.RuleFlowNode; }
3498
3490
  });
3499
3491
  Object.defineProperty(exports, "SelectionContextMenu", {
3500
3492
  enumerable: true,
3501
- get: function () { return chunkBXVUUI2B_js.SelectionContextMenu; }
3493
+ get: function () { return chunkNFJCB4BB_js.SelectionContextMenu; }
3502
3494
  });
3503
3495
  Object.defineProperty(exports, "StartFlowNode", {
3504
3496
  enumerable: true,
3505
- get: function () { return chunkBXVUUI2B_js.StartFlowNode; }
3497
+ get: function () { return chunkNFJCB4BB_js.StartFlowNode; }
3506
3498
  });
3507
3499
  Object.defineProperty(exports, "StrandsIcon", {
3508
3500
  enumerable: true,
3509
- get: function () { return chunkBXVUUI2B_js.StrandsIcon; }
3501
+ get: function () { return chunkNFJCB4BB_js.StrandsIcon; }
3510
3502
  });
3511
3503
  Object.defineProperty(exports, "TemplateTransformFlowNode", {
3512
3504
  enumerable: true,
3513
- get: function () { return chunkBXVUUI2B_js.TemplateTransformFlowNode; }
3505
+ get: function () { return chunkNFJCB4BB_js.TemplateTransformFlowNode; }
3514
3506
  });
3515
3507
  Object.defineProperty(exports, "ToolFlowNode", {
3516
3508
  enumerable: true,
3517
- get: function () { return chunkBXVUUI2B_js.ToolFlowNode; }
3509
+ get: function () { return chunkNFJCB4BB_js.ToolFlowNode; }
3518
3510
  });
3519
3511
  Object.defineProperty(exports, "VariableAggregatorFlowNode", {
3520
3512
  enumerable: true,
3521
- get: function () { return chunkBXVUUI2B_js.VariableAggregatorFlowNode; }
3513
+ get: function () { return chunkNFJCB4BB_js.VariableAggregatorFlowNode; }
3522
3514
  });
3523
3515
  Object.defineProperty(exports, "VariableAssignerFlowNode", {
3524
3516
  enumerable: true,
3525
- get: function () { return chunkBXVUUI2B_js.VariableAssignerFlowNode; }
3517
+ get: function () { return chunkNFJCB4BB_js.VariableAssignerFlowNode; }
3526
3518
  });
3527
3519
  Object.defineProperty(exports, "WorkflowBuilderProvider", {
3528
3520
  enumerable: true,
3529
- get: function () { return chunkBXVUUI2B_js.WorkflowBuilderProvider; }
3521
+ get: function () { return chunkNFJCB4BB_js.WorkflowBuilderProvider; }
3530
3522
  });
3531
3523
  Object.defineProperty(exports, "Workspace", {
3532
3524
  enumerable: true,
3533
- get: function () { return chunkBXVUUI2B_js.Workspace; }
3525
+ get: function () { return chunkNFJCB4BB_js.Workspace; }
3534
3526
  });
3535
3527
  Object.defineProperty(exports, "getCompatibleModels", {
3536
3528
  enumerable: true,
3537
- get: function () { return chunkBXVUUI2B_js.getCompatibleModels; }
3529
+ get: function () { return chunkNFJCB4BB_js.getCompatibleModels; }
3538
3530
  });
3539
3531
  Object.defineProperty(exports, "getDefaultFrameworkForModel", {
3540
3532
  enumerable: true,
3541
- get: function () { return chunkBXVUUI2B_js.getDefaultFrameworkForModel; }
3533
+ get: function () { return chunkNFJCB4BB_js.getDefaultFrameworkForModel; }
3542
3534
  });
3543
3535
  Object.defineProperty(exports, "getEntityBadgeColor", {
3544
3536
  enumerable: true,
3545
- get: function () { return chunkBXVUUI2B_js.getEntityBadgeColor; }
3537
+ get: function () { return chunkNFJCB4BB_js.getEntityBadgeColor; }
3546
3538
  });
3547
3539
  Object.defineProperty(exports, "getEntityGradient", {
3548
3540
  enumerable: true,
3549
- get: function () { return chunkBXVUUI2B_js.getEntityGradient; }
3541
+ get: function () { return chunkNFJCB4BB_js.getEntityGradient; }
3550
3542
  });
3551
3543
  Object.defineProperty(exports, "getEntityHandleColor", {
3552
3544
  enumerable: true,
3553
- get: function () { return chunkBXVUUI2B_js.getEntityHandleColor; }
3545
+ get: function () { return chunkNFJCB4BB_js.getEntityHandleColor; }
3554
3546
  });
3555
3547
  Object.defineProperty(exports, "getEntityIcon", {
3556
3548
  enumerable: true,
3557
- get: function () { return chunkBXVUUI2B_js.getEntityIcon; }
3549
+ get: function () { return chunkNFJCB4BB_js.getEntityIcon; }
3558
3550
  });
3559
3551
  Object.defineProperty(exports, "getEntityMinimapColor", {
3560
3552
  enumerable: true,
3561
- get: function () { return chunkBXVUUI2B_js.getEntityMinimapColor; }
3553
+ get: function () { return chunkNFJCB4BB_js.getEntityMinimapColor; }
3562
3554
  });
3563
3555
  Object.defineProperty(exports, "getFrameworkMeta", {
3564
3556
  enumerable: true,
3565
- get: function () { return chunkBXVUUI2B_js.getFrameworkMeta; }
3557
+ get: function () { return chunkNFJCB4BB_js.getFrameworkMeta; }
3566
3558
  });
3567
3559
  Object.defineProperty(exports, "getNodeExecutionAccent", {
3568
3560
  enumerable: true,
3569
- get: function () { return chunkBXVUUI2B_js.getNodeExecutionAccent; }
3561
+ get: function () { return chunkNFJCB4BB_js.getNodeExecutionAccent; }
3570
3562
  });
3571
3563
  Object.defineProperty(exports, "getNodeExecutionAccentRgb", {
3572
3564
  enumerable: true,
3573
- get: function () { return chunkBXVUUI2B_js.getNodeExecutionAccentRgb; }
3565
+ get: function () { return chunkNFJCB4BB_js.getNodeExecutionAccentRgb; }
3574
3566
  });
3575
3567
  Object.defineProperty(exports, "isModelCompatibleWithFramework", {
3576
3568
  enumerable: true,
3577
- get: function () { return chunkBXVUUI2B_js.isModelCompatibleWithFramework; }
3569
+ get: function () { return chunkNFJCB4BB_js.isModelCompatibleWithFramework; }
3578
3570
  });
3579
3571
  Object.defineProperty(exports, "useModalStore", {
3580
3572
  enumerable: true,
3581
- get: function () { return chunkBXVUUI2B_js.useModalStore; }
3573
+ get: function () { return chunkNFJCB4BB_js.useModalStore; }
3582
3574
  });
3583
3575
  Object.defineProperty(exports, "useWorkflowBuilderClient", {
3584
3576
  enumerable: true,
3585
- get: function () { return chunkBXVUUI2B_js.useWorkflowBuilderClient; }
3577
+ get: function () { return chunkNFJCB4BB_js.useWorkflowBuilderClient; }
3586
3578
  });
3587
3579
  Object.defineProperty(exports, "useWorkflowBuilderClientOptional", {
3588
3580
  enumerable: true,
3589
- get: function () { return chunkBXVUUI2B_js.useWorkflowBuilderClientOptional; }
3581
+ get: function () { return chunkNFJCB4BB_js.useWorkflowBuilderClientOptional; }
3590
3582
  });
3591
3583
  Object.defineProperty(exports, "useWorkflowStore", {
3592
3584
  enumerable: true,
3593
- get: function () { return chunkBXVUUI2B_js.useWorkflowStore; }
3585
+ get: function () { return chunkNFJCB4BB_js.useWorkflowStore; }
3594
3586
  });
3595
3587
  Object.defineProperty(exports, "GraphNodeBadge", {
3596
3588
  enumerable: true,
@@ -3608,6 +3600,14 @@ Object.defineProperty(exports, "GraphNodeMeta", {
3608
3600
  enumerable: true,
3609
3601
  get: function () { return chunkP4YYEM4B_js.GraphNodeMeta; }
3610
3602
  });
3603
+ Object.defineProperty(exports, "topologicalSortAgents", {
3604
+ enumerable: true,
3605
+ get: function () { return chunk3GE3MBUZ_js.topologicalSortAgents; }
3606
+ });
3607
+ Object.defineProperty(exports, "validateWorkflowGraph", {
3608
+ enumerable: true,
3609
+ get: function () { return chunk3GE3MBUZ_js.validateWorkflowGraph; }
3610
+ });
3611
3611
  Object.defineProperty(exports, "applyDagreLayout", {
3612
3612
  enumerable: true,
3613
3613
  get: function () { return chunkPWBWP5FJ_js.applyDagreLayout; }