@datatechsolutions/ui 2.11.38 → 2.11.41

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
- var chunkTE4XMF4F_js = require('../chunk-TE4XMF4F.js');
4
+ require('../chunk-55H6WZQP.js');
5
+ var chunk3GE3MBUZ_js = require('../chunk-3GE3MBUZ.js');
6
+ var chunkXFYGRDN3_js = require('../chunk-XFYGRDN3.js');
5
7
  var chunk2IOPJ5BM_js = require('../chunk-2IOPJ5BM.js');
6
8
  require('../chunk-UZ3CMNUJ.js');
7
9
  var chunkYXN2K77G_js = require('../chunk-YXN2K77G.js');
8
10
  require('../chunk-S7KHTUHA.js');
9
- require('../chunk-55H6WZQP.js');
10
11
  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 = chunkTE4XMF4F_js.getFrameworkMeta(selectedFramework);
86
+ const frameworkMeta = chunkXFYGRDN3_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(chunkTE4XMF4F_js.FRAMEWORK_META);
362
+ const frameworkKeys = Object.keys(chunkXFYGRDN3_js.FRAMEWORK_META);
363
363
  const hasProviderConstraints = connectedProviderTypes.length > 0;
364
- const compatibleModels = chunkTE4XMF4F_js.getCompatibleModels(models, selectedFramework);
364
+ const compatibleModels = chunkXFYGRDN3_js.getCompatibleModels(models, selectedFramework);
365
365
  const handleFrameworkChange = react.useCallback((newFramework) => {
366
366
  setSelectedFramework(newFramework);
367
- if (!chunkTE4XMF4F_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
368
- const compatible = chunkTE4XMF4F_js.getCompatibleModels(models, newFramework);
367
+ if (!chunkXFYGRDN3_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
368
+ const compatible = chunkXFYGRDN3_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 = chunkTE4XMF4F_js.FRAMEWORK_META[key];
379
+ const meta = chunkXFYGRDN3_js.FRAMEWORK_META[key];
380
380
  const isSelected = key === selectedFramework;
381
- const compatCount = chunkTE4XMF4F_js.getCompatibleModels(models, key).length;
382
- const isCompatibleWithProviders = !hasProviderConstraints || chunkTE4XMF4F_js.isFrameworkCompatibleWithProviders(key, connectedProviderTypes);
381
+ const compatCount = chunkXFYGRDN3_js.getCompatibleModels(models, key).length;
382
+ const isCompatibleWithProviders = !hasProviderConstraints || chunkXFYGRDN3_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 = chunkTE4XMF4F_js.isModelCompatibleWithFramework(model.id, selectedFramework);
414
+ const isCompatible = chunkXFYGRDN3_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 = chunkTE4XMF4F_js.useWorkflowStore((state) => state.nodeResults);
513
+ const nodeResults = chunkXFYGRDN3_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) => chunkTE4XMF4F_js.isModelCompatibleWithFramework(m.id, agentFramework)
603
+ (m) => chunkXFYGRDN3_js.isModelCompatibleWithFramework(m.id, agentFramework)
604
604
  );
605
605
  const incompatibleModels = providerModels.models.filter(
606
- (m) => !chunkTE4XMF4F_js.isModelCompatibleWithFramework(m.id, agentFramework)
606
+ (m) => !chunkXFYGRDN3_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 = chunkTE4XMF4F_js.getFrameworkMeta(framework);
679
+ const meta = chunkXFYGRDN3_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" }),
@@ -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 = chunkTE4XMF4F_js.useModalStore((s) => s.activeModal);
718
- const agentData = chunkTE4XMF4F_js.useModalStore((s) => s.agentData);
719
- const closeModal = chunkTE4XMF4F_js.useModalStore((s) => s.closeModal);
717
+ const activeModal = chunkXFYGRDN3_js.useModalStore((s) => s.activeModal);
718
+ const agentData = chunkXFYGRDN3_js.useModalStore((s) => s.agentData);
719
+ const closeModal = chunkXFYGRDN3_js.useModalStore((s) => s.closeModal);
720
720
  const open = activeModal === "agent";
721
721
  const agent = agentData?.agent ?? null;
722
722
  const models = agentData?.models ?? [];
@@ -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 = chunkTE4XMF4F_js.useModalStore((s) => s.activeModal === "agent" ? s.agentData?.agent?.name : null);
946
+ const agentBehind = chunkXFYGRDN3_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 ?? chunkTE4XMF4F_js.CATEGORY_COLORS[categoryKey] ?? chunkTE4XMF4F_js.CATEGORY_COLORS.external;
976
- const categoryPill = chunkTE4XMF4F_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunkTE4XMF4F_js.CATEGORY_PILL_COLORS.external;
977
- const IconComponent = chunkTE4XMF4F_js.ICON_MAP[tool.icon ?? ""] ?? outline.ArrowPathRoundedSquareIcon;
975
+ const gradient = tool.color ?? chunkXFYGRDN3_js.CATEGORY_COLORS[categoryKey] ?? chunkXFYGRDN3_js.CATEGORY_COLORS.external;
976
+ const categoryPill = chunkXFYGRDN3_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunkXFYGRDN3_js.CATEGORY_PILL_COLORS.external;
977
+ const IconComponent = chunkXFYGRDN3_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");
@@ -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 ? `${chunkTE4XMF4F_js.CATEGORY_PILL_COLORS[cat] ?? chunkTE4XMF4F_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 ? `${chunkXFYGRDN3_js.CATEGORY_PILL_COLORS[cat] ?? chunkXFYGRDN3_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
- chunkTE4XMF4F_js.WorkflowCanvas,
1129
+ chunkXFYGRDN3_js.WorkflowCanvas,
1130
1130
  {
1131
1131
  initialGraph,
1132
1132
  agents: [],
@@ -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 = chunkTE4XMF4F_js.useModalStore((s) => s.activeModal);
1188
- const data = chunkTE4XMF4F_js.useModalStore((s) => s.pipelineSettingsData);
1189
- const closeModal = chunkTE4XMF4F_js.useModalStore((s) => s.closeModal);
1187
+ const activeModal = chunkXFYGRDN3_js.useModalStore((s) => s.activeModal);
1188
+ const data = chunkXFYGRDN3_js.useModalStore((s) => s.pipelineSettingsData);
1189
+ const closeModal = chunkXFYGRDN3_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("");
@@ -1273,17 +1273,16 @@ function PipelineSettingsModal({ onSave }) {
1273
1273
  }
1274
1274
  );
1275
1275
  }
1276
- var SI2 = (slug, color) => `https://cdn.simpleicons.org/${slug}/${color}`;
1277
1276
  var DATASOURCE_LOGOS = {
1278
- bigquery: "https://www.svgrepo.com/show/375546/bigquery.svg",
1279
- postgres: "https://www.svgrepo.com/show/354200/postgresql.svg",
1280
- snowflake: "https://www.svgrepo.com/show/354381/snowflake-icon.svg",
1281
- mongodb: "https://www.svgrepo.com/show/373845/mongo.svg",
1282
- redis: "https://www.svgrepo.com/show/354272/redis.svg",
1283
- mysql: "https://www.svgrepo.com/show/373848/mysql.svg",
1284
- clickhouse: SI2("clickhouse", "FFCC01"),
1285
- elasticsearch: "https://www.svgrepo.com/show/353735/elasticsearch.svg",
1286
- duckdb: SI2("duckdb", "FFF000")
1277
+ bigquery: "/logos/datasources/bigquery.svg",
1278
+ postgres: "/logos/datasources/postgres.svg",
1279
+ snowflake: "/logos/datasources/snowflake.svg",
1280
+ mongodb: "/logos/datasources/mongodb.svg",
1281
+ redis: "/logos/datasources/redis.svg",
1282
+ mysql: "/logos/datasources/mysql.svg",
1283
+ clickhouse: "/logos/datasources/clickhouse.svg",
1284
+ elasticsearch: "/logos/datasources/elasticsearch.svg",
1285
+ duckdb: "/logos/datasources/duckdb.svg"
1287
1286
  };
1288
1287
  function getDatasourceLogo(entityId) {
1289
1288
  const lower = entityId.toLowerCase();
@@ -1293,11 +1292,11 @@ function getDatasourceLogo(entityId) {
1293
1292
  return null;
1294
1293
  }
1295
1294
  var PROVIDER_LOGOS2 = {
1296
- anthropic: SI2("anthropic", "D4A27F"),
1297
- amazon: "https://www.svgrepo.com/show/448266/aws.svg",
1298
- google: SI2("googlegemini", "8E75B2"),
1299
- openai: "https://www.svgrepo.com/show/306500/openai.svg",
1300
- meta: SI2("meta", "0668E1")
1295
+ anthropic: "/logos/providers/anthropic.svg",
1296
+ amazon: "/logos/providers/aws.svg",
1297
+ google: "/logos/providers/google-gemini.svg",
1298
+ openai: "/logos/providers/openai.svg",
1299
+ meta: "/logos/providers/meta.svg"
1301
1300
  };
1302
1301
  function onDragStart(event, nodeType, entityId, label, config) {
1303
1302
  event.dataTransfer.setData("nodeType", nodeType);
@@ -1395,8 +1394,8 @@ function CollapsibleSection({ title, icon, colorClass, defaultOpen = true, count
1395
1394
  ] });
1396
1395
  }
1397
1396
  function LogicNodeItemCard({ item, translationFunction }) {
1398
- const IconComponent = chunkTE4XMF4F_js.LOGIC_ICON_MAP[item.nodeType];
1399
- const gradient = chunkTE4XMF4F_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-gray-400 to-gray-500";
1397
+ const IconComponent = chunkXFYGRDN3_js.LOGIC_ICON_MAP[item.nodeType];
1398
+ const gradient = chunkXFYGRDN3_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-gray-400 to-gray-500";
1400
1399
  const defaultConfig = chunkPWBWP5FJ_js.createDefaultLogicNodeConfig(item.nodeType);
1401
1400
  const configJson = defaultConfig ? JSON.stringify(defaultConfig) : void 0;
1402
1401
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -1639,8 +1638,8 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
1639
1638
  limit: entity.defaultLimit
1640
1639
  });
1641
1640
  const dsLogo = getDatasourceLogo(entity.id);
1642
- const EntityIcon = chunkTE4XMF4F_js.getEntityIcon(entity.id);
1643
- const entityGradient = chunkTE4XMF4F_js.getEntityGradient(entity.id);
1641
+ const EntityIcon = chunkXFYGRDN3_js.getEntityIcon(entity.id);
1642
+ const entityGradient = chunkXFYGRDN3_js.getEntityGradient(entity.id);
1644
1643
  return /* @__PURE__ */ jsxRuntime.jsxs(
1645
1644
  "div",
1646
1645
  {
@@ -2037,9 +2036,9 @@ function formatDuration2(durationMs) {
2037
2036
  }
2038
2037
  function RunPanel({ open, onClose, onRun, onStop }) {
2039
2038
  const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.runPanel");
2040
- const nodes = chunkTE4XMF4F_js.useWorkflowStore((state) => state.nodes);
2041
- const isRunning = chunkTE4XMF4F_js.useWorkflowStore((state) => state.isRunning);
2042
- const nodeResults = chunkTE4XMF4F_js.useWorkflowStore((state) => state.nodeResults);
2039
+ const nodes = chunkXFYGRDN3_js.useWorkflowStore((state) => state.nodes);
2040
+ const isRunning = chunkXFYGRDN3_js.useWorkflowStore((state) => state.isRunning);
2041
+ const nodeResults = chunkXFYGRDN3_js.useWorkflowStore((state) => state.nodeResults);
2043
2042
  const startNode = nodes.find((node) => node.type === "start");
2044
2043
  const hasEndNode = nodes.some((node) => node.type === "end");
2045
2044
  const hasValidStartConfig = Boolean(
@@ -2324,8 +2323,8 @@ function inferVariables(config, nodeType) {
2324
2323
  }
2325
2324
  function VariableInspector({ open, onClose }) {
2326
2325
  const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.variableInspector");
2327
- const nodes = chunkTE4XMF4F_js.useWorkflowStore((state) => state.nodes);
2328
- const edges = chunkTE4XMF4F_js.useWorkflowStore((state) => state.edges);
2326
+ const nodes = chunkXFYGRDN3_js.useWorkflowStore((state) => state.nodes);
2327
+ const edges = chunkXFYGRDN3_js.useWorkflowStore((state) => state.edges);
2329
2328
  const [expandedNodes, setExpandedNodes] = react.useState(/* @__PURE__ */ new Set());
2330
2329
  const toggleNodeExpansion = react.useCallback((nodeId) => {
2331
2330
  setExpandedNodes((current) => {
@@ -2387,8 +2386,8 @@ function VariableInspector({ open, onClose }) {
2387
2386
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-gray-500 dark:text-gray-400", children: translations("noNodes") })
2388
2387
  ] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-gray-100 dark:divide-gray-800", children: nodeVariableEntries.map((entry) => {
2389
2388
  const isExpanded = expandedNodes.has(entry.nodeId);
2390
- const IconComponent = chunkTE4XMF4F_js.LOGIC_ICON_MAP[entry.nodeType];
2391
- const gradient = chunkTE4XMF4F_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-gray-400 to-gray-500";
2389
+ const IconComponent = chunkXFYGRDN3_js.LOGIC_ICON_MAP[entry.nodeType];
2390
+ const gradient = chunkXFYGRDN3_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-gray-400 to-gray-500";
2392
2391
  const inputVariables = entry.variables.filter((variable) => variable.direction === "input");
2393
2392
  const outputVariables = entry.variables.filter((variable) => variable.direction === "output");
2394
2393
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": `variable-node-${entry.nodeId}`, children: [
@@ -2454,7 +2453,7 @@ function RunInputDialog({
2454
2453
  onRun
2455
2454
  }) {
2456
2455
  const t = chunkYXN2K77G_js.useTranslations("agents.workflow.runInputDialog");
2457
- const nodes = chunkTE4XMF4F_js.useWorkflowStore((state) => state.nodes);
2456
+ const nodes = chunkXFYGRDN3_js.useWorkflowStore((state) => state.nodes);
2458
2457
  const [values, setValues] = react.useState({});
2459
2458
  const inputVariableNames = react.useMemo(() => {
2460
2459
  const storeStartNode = nodes.find((node) => node.type === "start");
@@ -2535,8 +2534,8 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
2535
2534
  const [isLoadingRuns, setIsLoadingRuns] = react.useState(false);
2536
2535
  const [selectedRun, setSelectedRun] = react.useState(null);
2537
2536
  const [selectedNode, setSelectedNode] = react.useState(null);
2538
- const isRunning = chunkTE4XMF4F_js.useWorkflowStore((state) => state.isRunning);
2539
- const nodeResults = chunkTE4XMF4F_js.useWorkflowStore((state) => state.nodeResults);
2537
+ const isRunning = chunkXFYGRDN3_js.useWorkflowStore((state) => state.isRunning);
2538
+ const nodeResults = chunkXFYGRDN3_js.useWorkflowStore((state) => state.nodeResults);
2540
2539
  const refreshRuns = react.useCallback(async () => {
2541
2540
  setIsLoadingRuns(true);
2542
2541
  try {
@@ -2692,7 +2691,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
2692
2691
  onAutoSaveGraph(graph);
2693
2692
  }, [onAutoSaveGraph, onGraphSnapshot]);
2694
2693
  return /* @__PURE__ */ jsxRuntime.jsx(
2695
- chunkTE4XMF4F_js.Workspace,
2694
+ chunkXFYGRDN3_js.Workspace,
2696
2695
  {
2697
2696
  ...workspaceProps,
2698
2697
  onGraphChange: handleGraphChange
@@ -3063,14 +3062,14 @@ function DslImportModal({ open, onClose, onImport }) {
3063
3062
  }
3064
3063
 
3065
3064
  // src/astrlabe/store/selectors.ts
3066
- var useCanUndo = () => chunkTE4XMF4F_js.useWorkflowStore((state) => state.past.length > 0);
3067
- var useCanRedo = () => chunkTE4XMF4F_js.useWorkflowStore((state) => state.future.length > 0);
3068
- var useHasCopied = () => chunkTE4XMF4F_js.useWorkflowStore((state) => state.clipboard !== null);
3069
- var useContextMenu = () => chunkTE4XMF4F_js.useWorkflowStore((state) => state.contextMenu);
3070
- var useEditingNodeId = () => chunkTE4XMF4F_js.useWorkflowStore((state) => state.editingNodeId);
3071
- var useSelectedNodeCount = () => chunkTE4XMF4F_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
3072
- var useIsRunning = () => chunkTE4XMF4F_js.useWorkflowStore((state) => state.isRunning);
3073
- var useNodeResults = () => chunkTE4XMF4F_js.useWorkflowStore((state) => state.nodeResults);
3065
+ var useCanUndo = () => chunkXFYGRDN3_js.useWorkflowStore((state) => state.past.length > 0);
3066
+ var useCanRedo = () => chunkXFYGRDN3_js.useWorkflowStore((state) => state.future.length > 0);
3067
+ var useHasCopied = () => chunkXFYGRDN3_js.useWorkflowStore((state) => state.clipboard !== null);
3068
+ var useContextMenu = () => chunkXFYGRDN3_js.useWorkflowStore((state) => state.contextMenu);
3069
+ var useEditingNodeId = () => chunkXFYGRDN3_js.useWorkflowStore((state) => state.editingNodeId);
3070
+ var useSelectedNodeCount = () => chunkXFYGRDN3_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
3071
+ var useIsRunning = () => chunkXFYGRDN3_js.useWorkflowStore((state) => state.isRunning);
3072
+ var useNodeResults = () => chunkXFYGRDN3_js.useWorkflowStore((state) => state.nodeResults);
3074
3073
  var DEFAULT_MAX_HISTORY = 50;
3075
3074
  function useUndoRedo(nodes, edges, setNodes, setEdges, maxHistory = DEFAULT_MAX_HISTORY) {
3076
3075
  const pastRef = react.useRef([]);
@@ -3348,241 +3347,249 @@ function useHelpLines() {
3348
3347
  };
3349
3348
  }
3350
3349
 
3350
+ Object.defineProperty(exports, "topologicalSortAgents", {
3351
+ enumerable: true,
3352
+ get: function () { return chunk3GE3MBUZ_js.topologicalSortAgents; }
3353
+ });
3354
+ Object.defineProperty(exports, "validateWorkflowGraph", {
3355
+ enumerable: true,
3356
+ get: function () { return chunk3GE3MBUZ_js.validateWorkflowGraph; }
3357
+ });
3351
3358
  Object.defineProperty(exports, "AgentFlowNode", {
3352
3359
  enumerable: true,
3353
- get: function () { return chunkTE4XMF4F_js.AgentFlowNode; }
3360
+ get: function () { return chunkXFYGRDN3_js.AgentFlowNode; }
3354
3361
  });
3355
3362
  Object.defineProperty(exports, "AgentToolFlowNode", {
3356
3363
  enumerable: true,
3357
- get: function () { return chunkTE4XMF4F_js.AgentToolFlowNode; }
3364
+ get: function () { return chunkXFYGRDN3_js.AgentToolFlowNode; }
3358
3365
  });
3359
3366
  Object.defineProperty(exports, "AnswerFlowNode", {
3360
3367
  enumerable: true,
3361
- get: function () { return chunkTE4XMF4F_js.AnswerFlowNode; }
3368
+ get: function () { return chunkXFYGRDN3_js.AnswerFlowNode; }
3362
3369
  });
3363
3370
  Object.defineProperty(exports, "AnthropicIcon", {
3364
3371
  enumerable: true,
3365
- get: function () { return chunkTE4XMF4F_js.AnthropicIcon; }
3372
+ get: function () { return chunkXFYGRDN3_js.AnthropicIcon; }
3366
3373
  });
3367
3374
  Object.defineProperty(exports, "CodeFlowNode", {
3368
3375
  enumerable: true,
3369
- get: function () { return chunkTE4XMF4F_js.CodeFlowNode; }
3376
+ get: function () { return chunkXFYGRDN3_js.CodeFlowNode; }
3370
3377
  });
3371
3378
  Object.defineProperty(exports, "CrewAIIcon", {
3372
3379
  enumerable: true,
3373
- get: function () { return chunkTE4XMF4F_js.CrewAIIcon; }
3380
+ get: function () { return chunkXFYGRDN3_js.CrewAIIcon; }
3374
3381
  });
3375
3382
  Object.defineProperty(exports, "DocumentExtractorFlowNode", {
3376
3383
  enumerable: true,
3377
- get: function () { return chunkTE4XMF4F_js.DocumentExtractorFlowNode; }
3384
+ get: function () { return chunkXFYGRDN3_js.DocumentExtractorFlowNode; }
3378
3385
  });
3379
3386
  Object.defineProperty(exports, "EndFlowNode", {
3380
3387
  enumerable: true,
3381
- get: function () { return chunkTE4XMF4F_js.EndFlowNode; }
3388
+ get: function () { return chunkXFYGRDN3_js.EndFlowNode; }
3382
3389
  });
3383
3390
  Object.defineProperty(exports, "EntityFlowNode", {
3384
3391
  enumerable: true,
3385
- get: function () { return chunkTE4XMF4F_js.EntityFlowNode; }
3392
+ get: function () { return chunkXFYGRDN3_js.EntityFlowNode; }
3386
3393
  });
3387
3394
  Object.defineProperty(exports, "FRAMEWORK_META", {
3388
3395
  enumerable: true,
3389
- get: function () { return chunkTE4XMF4F_js.FRAMEWORK_META; }
3396
+ get: function () { return chunkXFYGRDN3_js.FRAMEWORK_META; }
3390
3397
  });
3391
3398
  Object.defineProperty(exports, "GoogleADKIcon", {
3392
3399
  enumerable: true,
3393
- get: function () { return chunkTE4XMF4F_js.GoogleADKIcon; }
3400
+ get: function () { return chunkXFYGRDN3_js.GoogleADKIcon; }
3394
3401
  });
3395
3402
  Object.defineProperty(exports, "GroupFlowNode", {
3396
3403
  enumerable: true,
3397
- get: function () { return chunkTE4XMF4F_js.GroupFlowNode; }
3404
+ get: function () { return chunkXFYGRDN3_js.GroupFlowNode; }
3398
3405
  });
3399
3406
  Object.defineProperty(exports, "HttpRequestFlowNode", {
3400
3407
  enumerable: true,
3401
- get: function () { return chunkTE4XMF4F_js.HttpRequestFlowNode; }
3408
+ get: function () { return chunkXFYGRDN3_js.HttpRequestFlowNode; }
3402
3409
  });
3403
3410
  Object.defineProperty(exports, "IfElseFlowNode", {
3404
3411
  enumerable: true,
3405
- get: function () { return chunkTE4XMF4F_js.IfElseFlowNode; }
3412
+ get: function () { return chunkXFYGRDN3_js.IfElseFlowNode; }
3406
3413
  });
3407
3414
  Object.defineProperty(exports, "IterationFlowNode", {
3408
3415
  enumerable: true,
3409
- get: function () { return chunkTE4XMF4F_js.IterationFlowNode; }
3416
+ get: function () { return chunkXFYGRDN3_js.IterationFlowNode; }
3410
3417
  });
3411
3418
  Object.defineProperty(exports, "IterationStartFlowNode", {
3412
3419
  enumerable: true,
3413
- get: function () { return chunkTE4XMF4F_js.IterationStartFlowNode; }
3420
+ get: function () { return chunkXFYGRDN3_js.IterationStartFlowNode; }
3414
3421
  });
3415
3422
  Object.defineProperty(exports, "KnowledgeBaseFlowNode", {
3416
3423
  enumerable: true,
3417
- get: function () { return chunkTE4XMF4F_js.KnowledgeBaseFlowNode; }
3424
+ get: function () { return chunkXFYGRDN3_js.KnowledgeBaseFlowNode; }
3418
3425
  });
3419
3426
  Object.defineProperty(exports, "LOGIC_ICON_MAP", {
3420
3427
  enumerable: true,
3421
- get: function () { return chunkTE4XMF4F_js.LOGIC_ICON_MAP; }
3428
+ get: function () { return chunkXFYGRDN3_js.LOGIC_ICON_MAP; }
3422
3429
  });
3423
3430
  Object.defineProperty(exports, "LOGIC_NODE_BADGE_COLORS", {
3424
3431
  enumerable: true,
3425
- get: function () { return chunkTE4XMF4F_js.LOGIC_NODE_BADGE_COLORS; }
3432
+ get: function () { return chunkXFYGRDN3_js.LOGIC_NODE_BADGE_COLORS; }
3426
3433
  });
3427
3434
  Object.defineProperty(exports, "LOGIC_NODE_GRADIENTS", {
3428
3435
  enumerable: true,
3429
- get: function () { return chunkTE4XMF4F_js.LOGIC_NODE_GRADIENTS; }
3436
+ get: function () { return chunkXFYGRDN3_js.LOGIC_NODE_GRADIENTS; }
3430
3437
  });
3431
3438
  Object.defineProperty(exports, "LOGIC_NODE_HANDLE_COLORS", {
3432
3439
  enumerable: true,
3433
- get: function () { return chunkTE4XMF4F_js.LOGIC_NODE_HANDLE_COLORS; }
3440
+ get: function () { return chunkXFYGRDN3_js.LOGIC_NODE_HANDLE_COLORS; }
3434
3441
  });
3435
3442
  Object.defineProperty(exports, "LangChainIcon", {
3436
3443
  enumerable: true,
3437
- get: function () { return chunkTE4XMF4F_js.LangChainIcon; }
3444
+ get: function () { return chunkXFYGRDN3_js.LangChainIcon; }
3438
3445
  });
3439
3446
  Object.defineProperty(exports, "ListOperatorFlowNode", {
3440
3447
  enumerable: true,
3441
- get: function () { return chunkTE4XMF4F_js.ListOperatorFlowNode; }
3448
+ get: function () { return chunkXFYGRDN3_js.ListOperatorFlowNode; }
3442
3449
  });
3443
3450
  Object.defineProperty(exports, "LogicNodeModal", {
3444
3451
  enumerable: true,
3445
- get: function () { return chunkTE4XMF4F_js.LogicNodeModal; }
3452
+ get: function () { return chunkXFYGRDN3_js.LogicNodeModal; }
3446
3453
  });
3447
3454
  Object.defineProperty(exports, "MINIMAP_NODE_COLORS", {
3448
3455
  enumerable: true,
3449
- get: function () { return chunkTE4XMF4F_js.MINIMAP_NODE_COLORS; }
3456
+ get: function () { return chunkXFYGRDN3_js.MINIMAP_NODE_COLORS; }
3450
3457
  });
3451
3458
  Object.defineProperty(exports, "ModelProviderFlowNode", {
3452
3459
  enumerable: true,
3453
- get: function () { return chunkTE4XMF4F_js.ModelProviderFlowNode; }
3460
+ get: function () { return chunkXFYGRDN3_js.ModelProviderFlowNode; }
3454
3461
  });
3455
3462
  Object.defineProperty(exports, "NODE_EXECUTION_ACCENT_COLORS", {
3456
3463
  enumerable: true,
3457
- get: function () { return chunkTE4XMF4F_js.NODE_EXECUTION_ACCENT_COLORS; }
3464
+ get: function () { return chunkXFYGRDN3_js.NODE_EXECUTION_ACCENT_COLORS; }
3458
3465
  });
3459
3466
  Object.defineProperty(exports, "NodeCard", {
3460
3467
  enumerable: true,
3461
- get: function () { return chunkTE4XMF4F_js.NodeCard; }
3468
+ get: function () { return chunkXFYGRDN3_js.NodeCard; }
3462
3469
  });
3463
3470
  Object.defineProperty(exports, "NodeContextMenu", {
3464
3471
  enumerable: true,
3465
- get: function () { return chunkTE4XMF4F_js.NodeContextMenu; }
3472
+ get: function () { return chunkXFYGRDN3_js.NodeContextMenu; }
3466
3473
  });
3467
3474
  Object.defineProperty(exports, "NoteFlowNode", {
3468
3475
  enumerable: true,
3469
- get: function () { return chunkTE4XMF4F_js.NoteFlowNode; }
3476
+ get: function () { return chunkXFYGRDN3_js.NoteFlowNode; }
3470
3477
  });
3471
3478
  Object.defineProperty(exports, "OpenAIIcon", {
3472
3479
  enumerable: true,
3473
- get: function () { return chunkTE4XMF4F_js.OpenAIIcon; }
3480
+ get: function () { return chunkXFYGRDN3_js.OpenAIIcon; }
3474
3481
  });
3475
3482
  Object.defineProperty(exports, "PanelContextMenu", {
3476
3483
  enumerable: true,
3477
- get: function () { return chunkTE4XMF4F_js.PanelContextMenu; }
3484
+ get: function () { return chunkXFYGRDN3_js.PanelContextMenu; }
3478
3485
  });
3479
3486
  Object.defineProperty(exports, "ParameterExtractorFlowNode", {
3480
3487
  enumerable: true,
3481
- get: function () { return chunkTE4XMF4F_js.ParameterExtractorFlowNode; }
3488
+ get: function () { return chunkXFYGRDN3_js.ParameterExtractorFlowNode; }
3482
3489
  });
3483
3490
  Object.defineProperty(exports, "QuestionClassifierFlowNode", {
3484
3491
  enumerable: true,
3485
- get: function () { return chunkTE4XMF4F_js.QuestionClassifierFlowNode; }
3492
+ get: function () { return chunkXFYGRDN3_js.QuestionClassifierFlowNode; }
3486
3493
  });
3487
3494
  Object.defineProperty(exports, "RuleFlowNode", {
3488
3495
  enumerable: true,
3489
- get: function () { return chunkTE4XMF4F_js.RuleFlowNode; }
3496
+ get: function () { return chunkXFYGRDN3_js.RuleFlowNode; }
3490
3497
  });
3491
3498
  Object.defineProperty(exports, "SelectionContextMenu", {
3492
3499
  enumerable: true,
3493
- get: function () { return chunkTE4XMF4F_js.SelectionContextMenu; }
3500
+ get: function () { return chunkXFYGRDN3_js.SelectionContextMenu; }
3494
3501
  });
3495
3502
  Object.defineProperty(exports, "StartFlowNode", {
3496
3503
  enumerable: true,
3497
- get: function () { return chunkTE4XMF4F_js.StartFlowNode; }
3504
+ get: function () { return chunkXFYGRDN3_js.StartFlowNode; }
3498
3505
  });
3499
3506
  Object.defineProperty(exports, "StrandsIcon", {
3500
3507
  enumerable: true,
3501
- get: function () { return chunkTE4XMF4F_js.StrandsIcon; }
3508
+ get: function () { return chunkXFYGRDN3_js.StrandsIcon; }
3502
3509
  });
3503
3510
  Object.defineProperty(exports, "TemplateTransformFlowNode", {
3504
3511
  enumerable: true,
3505
- get: function () { return chunkTE4XMF4F_js.TemplateTransformFlowNode; }
3512
+ get: function () { return chunkXFYGRDN3_js.TemplateTransformFlowNode; }
3506
3513
  });
3507
3514
  Object.defineProperty(exports, "ToolFlowNode", {
3508
3515
  enumerable: true,
3509
- get: function () { return chunkTE4XMF4F_js.ToolFlowNode; }
3516
+ get: function () { return chunkXFYGRDN3_js.ToolFlowNode; }
3510
3517
  });
3511
3518
  Object.defineProperty(exports, "VariableAggregatorFlowNode", {
3512
3519
  enumerable: true,
3513
- get: function () { return chunkTE4XMF4F_js.VariableAggregatorFlowNode; }
3520
+ get: function () { return chunkXFYGRDN3_js.VariableAggregatorFlowNode; }
3514
3521
  });
3515
3522
  Object.defineProperty(exports, "VariableAssignerFlowNode", {
3516
3523
  enumerable: true,
3517
- get: function () { return chunkTE4XMF4F_js.VariableAssignerFlowNode; }
3524
+ get: function () { return chunkXFYGRDN3_js.VariableAssignerFlowNode; }
3518
3525
  });
3519
3526
  Object.defineProperty(exports, "WorkflowBuilderProvider", {
3520
3527
  enumerable: true,
3521
- get: function () { return chunkTE4XMF4F_js.WorkflowBuilderProvider; }
3528
+ get: function () { return chunkXFYGRDN3_js.WorkflowBuilderProvider; }
3522
3529
  });
3523
3530
  Object.defineProperty(exports, "Workspace", {
3524
3531
  enumerable: true,
3525
- get: function () { return chunkTE4XMF4F_js.Workspace; }
3532
+ get: function () { return chunkXFYGRDN3_js.Workspace; }
3526
3533
  });
3527
3534
  Object.defineProperty(exports, "getCompatibleModels", {
3528
3535
  enumerable: true,
3529
- get: function () { return chunkTE4XMF4F_js.getCompatibleModels; }
3536
+ get: function () { return chunkXFYGRDN3_js.getCompatibleModels; }
3530
3537
  });
3531
3538
  Object.defineProperty(exports, "getDefaultFrameworkForModel", {
3532
3539
  enumerable: true,
3533
- get: function () { return chunkTE4XMF4F_js.getDefaultFrameworkForModel; }
3540
+ get: function () { return chunkXFYGRDN3_js.getDefaultFrameworkForModel; }
3534
3541
  });
3535
3542
  Object.defineProperty(exports, "getEntityBadgeColor", {
3536
3543
  enumerable: true,
3537
- get: function () { return chunkTE4XMF4F_js.getEntityBadgeColor; }
3544
+ get: function () { return chunkXFYGRDN3_js.getEntityBadgeColor; }
3538
3545
  });
3539
3546
  Object.defineProperty(exports, "getEntityGradient", {
3540
3547
  enumerable: true,
3541
- get: function () { return chunkTE4XMF4F_js.getEntityGradient; }
3548
+ get: function () { return chunkXFYGRDN3_js.getEntityGradient; }
3542
3549
  });
3543
3550
  Object.defineProperty(exports, "getEntityHandleColor", {
3544
3551
  enumerable: true,
3545
- get: function () { return chunkTE4XMF4F_js.getEntityHandleColor; }
3552
+ get: function () { return chunkXFYGRDN3_js.getEntityHandleColor; }
3546
3553
  });
3547
3554
  Object.defineProperty(exports, "getEntityIcon", {
3548
3555
  enumerable: true,
3549
- get: function () { return chunkTE4XMF4F_js.getEntityIcon; }
3556
+ get: function () { return chunkXFYGRDN3_js.getEntityIcon; }
3550
3557
  });
3551
3558
  Object.defineProperty(exports, "getEntityMinimapColor", {
3552
3559
  enumerable: true,
3553
- get: function () { return chunkTE4XMF4F_js.getEntityMinimapColor; }
3560
+ get: function () { return chunkXFYGRDN3_js.getEntityMinimapColor; }
3554
3561
  });
3555
3562
  Object.defineProperty(exports, "getFrameworkMeta", {
3556
3563
  enumerable: true,
3557
- get: function () { return chunkTE4XMF4F_js.getFrameworkMeta; }
3564
+ get: function () { return chunkXFYGRDN3_js.getFrameworkMeta; }
3558
3565
  });
3559
3566
  Object.defineProperty(exports, "getNodeExecutionAccent", {
3560
3567
  enumerable: true,
3561
- get: function () { return chunkTE4XMF4F_js.getNodeExecutionAccent; }
3568
+ get: function () { return chunkXFYGRDN3_js.getNodeExecutionAccent; }
3562
3569
  });
3563
3570
  Object.defineProperty(exports, "getNodeExecutionAccentRgb", {
3564
3571
  enumerable: true,
3565
- get: function () { return chunkTE4XMF4F_js.getNodeExecutionAccentRgb; }
3572
+ get: function () { return chunkXFYGRDN3_js.getNodeExecutionAccentRgb; }
3566
3573
  });
3567
3574
  Object.defineProperty(exports, "isModelCompatibleWithFramework", {
3568
3575
  enumerable: true,
3569
- get: function () { return chunkTE4XMF4F_js.isModelCompatibleWithFramework; }
3576
+ get: function () { return chunkXFYGRDN3_js.isModelCompatibleWithFramework; }
3570
3577
  });
3571
3578
  Object.defineProperty(exports, "useModalStore", {
3572
3579
  enumerable: true,
3573
- get: function () { return chunkTE4XMF4F_js.useModalStore; }
3580
+ get: function () { return chunkXFYGRDN3_js.useModalStore; }
3574
3581
  });
3575
3582
  Object.defineProperty(exports, "useWorkflowBuilderClient", {
3576
3583
  enumerable: true,
3577
- get: function () { return chunkTE4XMF4F_js.useWorkflowBuilderClient; }
3584
+ get: function () { return chunkXFYGRDN3_js.useWorkflowBuilderClient; }
3578
3585
  });
3579
3586
  Object.defineProperty(exports, "useWorkflowBuilderClientOptional", {
3580
3587
  enumerable: true,
3581
- get: function () { return chunkTE4XMF4F_js.useWorkflowBuilderClientOptional; }
3588
+ get: function () { return chunkXFYGRDN3_js.useWorkflowBuilderClientOptional; }
3582
3589
  });
3583
3590
  Object.defineProperty(exports, "useWorkflowStore", {
3584
3591
  enumerable: true,
3585
- get: function () { return chunkTE4XMF4F_js.useWorkflowStore; }
3592
+ get: function () { return chunkXFYGRDN3_js.useWorkflowStore; }
3586
3593
  });
3587
3594
  Object.defineProperty(exports, "GraphNodeBadge", {
3588
3595
  enumerable: true,
@@ -3600,14 +3607,6 @@ Object.defineProperty(exports, "GraphNodeMeta", {
3600
3607
  enumerable: true,
3601
3608
  get: function () { return chunkP4YYEM4B_js.GraphNodeMeta; }
3602
3609
  });
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
3610
  Object.defineProperty(exports, "applyDagreLayout", {
3612
3611
  enumerable: true,
3613
3612
  get: function () { return chunkPWBWP5FJ_js.applyDagreLayout; }