@datatechsolutions/ui 2.11.13 → 2.11.15

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 chunkRUH6YJXW_js = require('../chunk-RUH6YJXW.js');
6
+ var chunkWB5CWGXD_js = require('../chunk-WB5CWGXD.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 = chunkRUH6YJXW_js.getFrameworkMeta(selectedFramework);
86
+ const frameworkMeta = chunkWB5CWGXD_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(chunkRUH6YJXW_js.FRAMEWORK_META);
379
- const compatibleModels = chunkRUH6YJXW_js.getCompatibleModels(models, selectedFramework);
378
+ const frameworkKeys = Object.keys(chunkWB5CWGXD_js.FRAMEWORK_META);
379
+ const compatibleModels = chunkWB5CWGXD_js.getCompatibleModels(models, selectedFramework);
380
380
  const handleFrameworkChange = react.useCallback((newFramework) => {
381
381
  setSelectedFramework(newFramework);
382
- if (!chunkRUH6YJXW_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
383
- const compatible = chunkRUH6YJXW_js.getCompatibleModels(models, newFramework);
382
+ if (!chunkWB5CWGXD_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
383
+ const compatible = chunkWB5CWGXD_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 = chunkRUH6YJXW_js.FRAMEWORK_META[key];
394
+ const meta = chunkWB5CWGXD_js.FRAMEWORK_META[key];
395
395
  const isSelected = key === selectedFramework;
396
- const compatCount = chunkRUH6YJXW_js.getCompatibleModels(models, key).length;
396
+ const compatCount = chunkWB5CWGXD_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 = chunkRUH6YJXW_js.isModelCompatibleWithFramework(model.id, selectedFramework);
426
+ const isCompatible = chunkWB5CWGXD_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 = chunkRUH6YJXW_js.useWorkflowStore((state) => state.nodeResults);
523
+ const nodeResults = chunkWB5CWGXD_js.useWorkflowStore((state) => state.nodeResults);
524
524
  const agentResult = react.useMemo(() => {
525
525
  return nodeResults[agentId] ?? null;
526
526
  }, [nodeResults, agentId]);
@@ -580,9 +580,9 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, t }) {
580
580
  }
581
581
  function AgentModal({ onSaved }) {
582
582
  const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
583
- const activeModal = chunkRUH6YJXW_js.useModalStore((s) => s.activeModal);
584
- const agentData = chunkRUH6YJXW_js.useModalStore((s) => s.agentData);
585
- const closeModal = chunkRUH6YJXW_js.useModalStore((s) => s.closeModal);
583
+ const activeModal = chunkWB5CWGXD_js.useModalStore((s) => s.activeModal);
584
+ const agentData = chunkWB5CWGXD_js.useModalStore((s) => s.agentData);
585
+ const closeModal = chunkWB5CWGXD_js.useModalStore((s) => s.closeModal);
586
586
  const open = activeModal === "agent";
587
587
  const agent = agentData?.agent ?? null;
588
588
  const models = agentData?.models ?? [];
@@ -793,7 +793,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
793
793
  const markDirty = useSubworkflowStore((s) => s.markDirty);
794
794
  const markSaved = useSubworkflowStore((s) => s.markSaved);
795
795
  const closeModal = useSubworkflowStore((s) => s.closeModal);
796
- const agentBehind = chunkRUH6YJXW_js.useModalStore((s) => s.activeModal === "agent" ? s.agentData?.agent?.name : null);
796
+ const agentBehind = chunkWB5CWGXD_js.useModalStore((s) => s.activeModal === "agent" ? s.agentData?.agent?.name : null);
797
797
  const isCreateMode = !tool?.toolId;
798
798
  const initialGraph = react.useMemo(() => {
799
799
  const config = tool?.config;
@@ -822,9 +822,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
822
822
  }, [tool, onSaved, name, category, description, timeoutMs, latestGraphRef, markSaved]);
823
823
  if (!tool) return null;
824
824
  const categoryKey = category ?? "external";
825
- const gradient = tool.color ?? chunkRUH6YJXW_js.CATEGORY_COLORS[categoryKey] ?? chunkRUH6YJXW_js.CATEGORY_COLORS.external;
826
- const categoryPill = chunkRUH6YJXW_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunkRUH6YJXW_js.CATEGORY_PILL_COLORS.external;
827
- const IconComponent = chunkRUH6YJXW_js.ICON_MAP[tool.icon ?? ""] ?? outline.ArrowPathRoundedSquareIcon;
825
+ const gradient = tool.color ?? chunkWB5CWGXD_js.CATEGORY_COLORS[categoryKey] ?? chunkWB5CWGXD_js.CATEGORY_COLORS.external;
826
+ const categoryPill = chunkWB5CWGXD_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunkWB5CWGXD_js.CATEGORY_PILL_COLORS.external;
827
+ const IconComponent = chunkWB5CWGXD_js.ICON_MAP[tool.icon ?? ""] ?? outline.ArrowPathRoundedSquareIcon;
828
828
  const graph = latestGraphRef.current;
829
829
  const startNode = graph.nodes.find((n) => n.type === "start");
830
830
  const endNode = graph.nodes.find((n) => n.type === "end");
@@ -889,7 +889,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
889
889
  {
890
890
  type: "button",
891
891
  onClick: () => setCategory(cat),
892
- className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${chunkRUH6YJXW_js.CATEGORY_PILL_COLORS[cat] ?? chunkRUH6YJXW_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"}`,
892
+ className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${chunkWB5CWGXD_js.CATEGORY_PILL_COLORS[cat] ?? chunkWB5CWGXD_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"}`,
893
893
  children: cat
894
894
  },
895
895
  cat
@@ -976,7 +976,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
976
976
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto" })
977
977
  ] }),
978
978
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
979
- chunkRUH6YJXW_js.WorkflowCanvas,
979
+ chunkWB5CWGXD_js.WorkflowCanvas,
980
980
  {
981
981
  initialGraph,
982
982
  agents: [],
@@ -1034,9 +1034,9 @@ function WorkspaceModal({
1034
1034
  }
1035
1035
  function PipelineSettingsModal({ onSave }) {
1036
1036
  const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
1037
- const activeModal = chunkRUH6YJXW_js.useModalStore((s) => s.activeModal);
1038
- const data = chunkRUH6YJXW_js.useModalStore((s) => s.pipelineSettingsData);
1039
- const closeModal = chunkRUH6YJXW_js.useModalStore((s) => s.closeModal);
1037
+ const activeModal = chunkWB5CWGXD_js.useModalStore((s) => s.activeModal);
1038
+ const data = chunkWB5CWGXD_js.useModalStore((s) => s.pipelineSettingsData);
1039
+ const closeModal = chunkWB5CWGXD_js.useModalStore((s) => s.closeModal);
1040
1040
  const open = activeModal === "pipeline-settings";
1041
1041
  const [nameValue, setNameValue] = react.useState("");
1042
1042
  const [descriptionValue, setDescriptionValue] = react.useState("");
@@ -1245,8 +1245,8 @@ function CollapsibleSection({ title, icon, colorClass, defaultOpen = true, count
1245
1245
  ] });
1246
1246
  }
1247
1247
  function LogicNodeItemCard({ item, translationFunction }) {
1248
- const IconComponent = chunkRUH6YJXW_js.LOGIC_ICON_MAP[item.nodeType];
1249
- const gradient = chunkRUH6YJXW_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-gray-400 to-gray-500";
1248
+ const IconComponent = chunkWB5CWGXD_js.LOGIC_ICON_MAP[item.nodeType];
1249
+ const gradient = chunkWB5CWGXD_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-gray-400 to-gray-500";
1250
1250
  const defaultConfig = chunkPWBWP5FJ_js.createDefaultLogicNodeConfig(item.nodeType);
1251
1251
  const configJson = defaultConfig ? JSON.stringify(defaultConfig) : void 0;
1252
1252
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -1404,7 +1404,16 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
1404
1404
  className: "liquid-surface group flex items-center gap-2 rounded-lg px-3 py-1.5 transition-all cursor-grab hover:shadow-md active:cursor-grabbing",
1405
1405
  children: [
1406
1406
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-5 w-5 items-center justify-center rounded-md bg-gradient-to-br from-amber-400 to-orange-500 shadow-sm", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CommandLineIcon, { className: "h-3 w-3 text-white" }) }),
1407
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[11px] font-medium text-gray-900 dark:text-white", children: agentTool.name }) }),
1407
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
1408
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[11px] font-medium text-gray-900 dark:text-white", children: agentTool.name }),
1409
+ agentTool.compatibleFrameworks && agentTool.compatibleFrameworks.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-0.5 flex flex-wrap gap-0.5", children: agentTool.compatibleFrameworks.map((framework) => {
1410
+ const meta = chunkWB5CWGXD_js.getFrameworkMeta(framework);
1411
+ return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: `inline-flex items-center gap-0.5 rounded px-1 py-px text-[8px] font-medium ${meta.badgeColor}`, children: [
1412
+ /* @__PURE__ */ jsxRuntime.jsx(meta.IconComponent, { className: "h-2 w-2" }),
1413
+ meta.label
1414
+ ] }, framework);
1415
+ }) })
1416
+ ] }),
1408
1417
  !agentTool.enabled && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded-full bg-gray-100 px-1.5 py-0.5 text-[8px] font-medium text-gray-500 dark:bg-white/10 dark:text-gray-400", children: "off" })
1409
1418
  ]
1410
1419
  },
@@ -1490,8 +1499,8 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
1490
1499
  limit: entity.defaultLimit
1491
1500
  });
1492
1501
  const dsLogo = getDatasourceLogo(entity.id);
1493
- const EntityIcon = chunkRUH6YJXW_js.getEntityIcon(entity.id);
1494
- const entityGradient = chunkRUH6YJXW_js.getEntityGradient(entity.id);
1502
+ const EntityIcon = chunkWB5CWGXD_js.getEntityIcon(entity.id);
1503
+ const entityGradient = chunkWB5CWGXD_js.getEntityGradient(entity.id);
1495
1504
  return /* @__PURE__ */ jsxRuntime.jsxs(
1496
1505
  "div",
1497
1506
  {
@@ -1527,8 +1536,18 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
1527
1536
  return /* @__PURE__ */ jsxRuntime.jsxs(
1528
1537
  "div",
1529
1538
  {
1530
- className: "liquid-surface group flex items-center gap-2 rounded-lg px-3 py-2 transition-all cursor-pointer hover:shadow-md",
1539
+ draggable: true,
1540
+ onDragStart: (event) => {
1541
+ const defaultConfig = JSON.stringify({
1542
+ type: "model_provider",
1543
+ providerType: provider.provider === "amazon" ? "aws_bedrock" : provider.provider === "google" ? "google_vertex" : provider.provider === "meta" ? "custom" : `${provider.provider}_api`,
1544
+ name: provider.name,
1545
+ modelFilter: []
1546
+ });
1547
+ onDragStart(event, "model_provider", provider.id, provider.name, defaultConfig);
1548
+ },
1531
1549
  onClick: () => onConfigureProvider?.(provider.id),
1550
+ className: "liquid-surface group flex items-center gap-2 rounded-lg px-3 py-2 transition-all cursor-grab hover:shadow-md active:cursor-grabbing",
1532
1551
  role: "button",
1533
1552
  tabIndex: 0,
1534
1553
  children: [
@@ -1863,9 +1882,9 @@ function formatDuration2(durationMs) {
1863
1882
  }
1864
1883
  function RunPanel({ open, onClose, onRun, onStop }) {
1865
1884
  const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.runPanel");
1866
- const nodes = chunkRUH6YJXW_js.useWorkflowStore((state) => state.nodes);
1867
- const isRunning = chunkRUH6YJXW_js.useWorkflowStore((state) => state.isRunning);
1868
- const nodeResults = chunkRUH6YJXW_js.useWorkflowStore((state) => state.nodeResults);
1885
+ const nodes = chunkWB5CWGXD_js.useWorkflowStore((state) => state.nodes);
1886
+ const isRunning = chunkWB5CWGXD_js.useWorkflowStore((state) => state.isRunning);
1887
+ const nodeResults = chunkWB5CWGXD_js.useWorkflowStore((state) => state.nodeResults);
1869
1888
  const startNode = nodes.find((node) => node.type === "start");
1870
1889
  const hasEndNode = nodes.some((node) => node.type === "end");
1871
1890
  const hasValidStartConfig = Boolean(
@@ -2150,8 +2169,8 @@ function inferVariables(config, nodeType) {
2150
2169
  }
2151
2170
  function VariableInspector({ open, onClose }) {
2152
2171
  const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.variableInspector");
2153
- const nodes = chunkRUH6YJXW_js.useWorkflowStore((state) => state.nodes);
2154
- const edges = chunkRUH6YJXW_js.useWorkflowStore((state) => state.edges);
2172
+ const nodes = chunkWB5CWGXD_js.useWorkflowStore((state) => state.nodes);
2173
+ const edges = chunkWB5CWGXD_js.useWorkflowStore((state) => state.edges);
2155
2174
  const [expandedNodes, setExpandedNodes] = react.useState(/* @__PURE__ */ new Set());
2156
2175
  const toggleNodeExpansion = react.useCallback((nodeId) => {
2157
2176
  setExpandedNodes((current) => {
@@ -2213,8 +2232,8 @@ function VariableInspector({ open, onClose }) {
2213
2232
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-gray-500 dark:text-gray-400", children: translations("noNodes") })
2214
2233
  ] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-gray-100 dark:divide-gray-800", children: nodeVariableEntries.map((entry) => {
2215
2234
  const isExpanded = expandedNodes.has(entry.nodeId);
2216
- const IconComponent = chunkRUH6YJXW_js.LOGIC_ICON_MAP[entry.nodeType];
2217
- const gradient = chunkRUH6YJXW_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-gray-400 to-gray-500";
2235
+ const IconComponent = chunkWB5CWGXD_js.LOGIC_ICON_MAP[entry.nodeType];
2236
+ const gradient = chunkWB5CWGXD_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-gray-400 to-gray-500";
2218
2237
  const inputVariables = entry.variables.filter((variable) => variable.direction === "input");
2219
2238
  const outputVariables = entry.variables.filter((variable) => variable.direction === "output");
2220
2239
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": `variable-node-${entry.nodeId}`, children: [
@@ -2280,7 +2299,7 @@ function RunInputDialog({
2280
2299
  onRun
2281
2300
  }) {
2282
2301
  const t = chunkYXN2K77G_js.useTranslations("agents.workflow.runInputDialog");
2283
- const nodes = chunkRUH6YJXW_js.useWorkflowStore((state) => state.nodes);
2302
+ const nodes = chunkWB5CWGXD_js.useWorkflowStore((state) => state.nodes);
2284
2303
  const [values, setValues] = react.useState({});
2285
2304
  const inputVariableNames = react.useMemo(() => {
2286
2305
  const storeStartNode = nodes.find((node) => node.type === "start");
@@ -2362,8 +2381,8 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
2362
2381
  const [isLoadingRuns, setIsLoadingRuns] = react.useState(false);
2363
2382
  const [selectedRun, setSelectedRun] = react.useState(null);
2364
2383
  const [selectedNode, setSelectedNode] = react.useState(null);
2365
- const isRunning = chunkRUH6YJXW_js.useWorkflowStore((state) => state.isRunning);
2366
- const nodeResults = chunkRUH6YJXW_js.useWorkflowStore((state) => state.nodeResults);
2384
+ const isRunning = chunkWB5CWGXD_js.useWorkflowStore((state) => state.isRunning);
2385
+ const nodeResults = chunkWB5CWGXD_js.useWorkflowStore((state) => state.nodeResults);
2367
2386
  const refreshRuns = react.useCallback(async () => {
2368
2387
  setIsLoadingRuns(true);
2369
2388
  try {
@@ -2519,7 +2538,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
2519
2538
  onAutoSaveGraph(graph);
2520
2539
  }, [onAutoSaveGraph, onGraphSnapshot]);
2521
2540
  return /* @__PURE__ */ jsxRuntime.jsx(
2522
- chunkRUH6YJXW_js.Workspace,
2541
+ chunkWB5CWGXD_js.Workspace,
2523
2542
  {
2524
2543
  ...workspaceProps,
2525
2544
  onGraphChange: handleGraphChange
@@ -2892,14 +2911,14 @@ function DslImportModal({ open, onClose, onImport }) {
2892
2911
  }
2893
2912
 
2894
2913
  // src/astrlabe/store/selectors.ts
2895
- var useCanUndo = () => chunkRUH6YJXW_js.useWorkflowStore((state) => state.past.length > 0);
2896
- var useCanRedo = () => chunkRUH6YJXW_js.useWorkflowStore((state) => state.future.length > 0);
2897
- var useHasCopied = () => chunkRUH6YJXW_js.useWorkflowStore((state) => state.clipboard !== null);
2898
- var useContextMenu = () => chunkRUH6YJXW_js.useWorkflowStore((state) => state.contextMenu);
2899
- var useEditingNodeId = () => chunkRUH6YJXW_js.useWorkflowStore((state) => state.editingNodeId);
2900
- var useSelectedNodeCount = () => chunkRUH6YJXW_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
2901
- var useIsRunning = () => chunkRUH6YJXW_js.useWorkflowStore((state) => state.isRunning);
2902
- var useNodeResults = () => chunkRUH6YJXW_js.useWorkflowStore((state) => state.nodeResults);
2914
+ var useCanUndo = () => chunkWB5CWGXD_js.useWorkflowStore((state) => state.past.length > 0);
2915
+ var useCanRedo = () => chunkWB5CWGXD_js.useWorkflowStore((state) => state.future.length > 0);
2916
+ var useHasCopied = () => chunkWB5CWGXD_js.useWorkflowStore((state) => state.clipboard !== null);
2917
+ var useContextMenu = () => chunkWB5CWGXD_js.useWorkflowStore((state) => state.contextMenu);
2918
+ var useEditingNodeId = () => chunkWB5CWGXD_js.useWorkflowStore((state) => state.editingNodeId);
2919
+ var useSelectedNodeCount = () => chunkWB5CWGXD_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
2920
+ var useIsRunning = () => chunkWB5CWGXD_js.useWorkflowStore((state) => state.isRunning);
2921
+ var useNodeResults = () => chunkWB5CWGXD_js.useWorkflowStore((state) => state.nodeResults);
2903
2922
  var DEFAULT_MAX_HISTORY = 50;
2904
2923
  function useUndoRedo(nodes, edges, setNodes, setEdges, maxHistory = DEFAULT_MAX_HISTORY) {
2905
2924
  const pastRef = react.useRef([]);
@@ -3187,223 +3206,227 @@ Object.defineProperty(exports, "validateWorkflowGraph", {
3187
3206
  });
3188
3207
  Object.defineProperty(exports, "AgentFlowNode", {
3189
3208
  enumerable: true,
3190
- get: function () { return chunkRUH6YJXW_js.AgentFlowNode; }
3209
+ get: function () { return chunkWB5CWGXD_js.AgentFlowNode; }
3191
3210
  });
3192
3211
  Object.defineProperty(exports, "AgentToolFlowNode", {
3193
3212
  enumerable: true,
3194
- get: function () { return chunkRUH6YJXW_js.AgentToolFlowNode; }
3213
+ get: function () { return chunkWB5CWGXD_js.AgentToolFlowNode; }
3195
3214
  });
3196
3215
  Object.defineProperty(exports, "AnswerFlowNode", {
3197
3216
  enumerable: true,
3198
- get: function () { return chunkRUH6YJXW_js.AnswerFlowNode; }
3217
+ get: function () { return chunkWB5CWGXD_js.AnswerFlowNode; }
3199
3218
  });
3200
3219
  Object.defineProperty(exports, "AnthropicIcon", {
3201
3220
  enumerable: true,
3202
- get: function () { return chunkRUH6YJXW_js.AnthropicIcon; }
3221
+ get: function () { return chunkWB5CWGXD_js.AnthropicIcon; }
3203
3222
  });
3204
3223
  Object.defineProperty(exports, "CodeFlowNode", {
3205
3224
  enumerable: true,
3206
- get: function () { return chunkRUH6YJXW_js.CodeFlowNode; }
3225
+ get: function () { return chunkWB5CWGXD_js.CodeFlowNode; }
3207
3226
  });
3208
3227
  Object.defineProperty(exports, "CrewAIIcon", {
3209
3228
  enumerable: true,
3210
- get: function () { return chunkRUH6YJXW_js.CrewAIIcon; }
3229
+ get: function () { return chunkWB5CWGXD_js.CrewAIIcon; }
3211
3230
  });
3212
3231
  Object.defineProperty(exports, "DocumentExtractorFlowNode", {
3213
3232
  enumerable: true,
3214
- get: function () { return chunkRUH6YJXW_js.DocumentExtractorFlowNode; }
3233
+ get: function () { return chunkWB5CWGXD_js.DocumentExtractorFlowNode; }
3215
3234
  });
3216
3235
  Object.defineProperty(exports, "EndFlowNode", {
3217
3236
  enumerable: true,
3218
- get: function () { return chunkRUH6YJXW_js.EndFlowNode; }
3237
+ get: function () { return chunkWB5CWGXD_js.EndFlowNode; }
3219
3238
  });
3220
3239
  Object.defineProperty(exports, "EntityFlowNode", {
3221
3240
  enumerable: true,
3222
- get: function () { return chunkRUH6YJXW_js.EntityFlowNode; }
3241
+ get: function () { return chunkWB5CWGXD_js.EntityFlowNode; }
3223
3242
  });
3224
3243
  Object.defineProperty(exports, "FRAMEWORK_META", {
3225
3244
  enumerable: true,
3226
- get: function () { return chunkRUH6YJXW_js.FRAMEWORK_META; }
3245
+ get: function () { return chunkWB5CWGXD_js.FRAMEWORK_META; }
3227
3246
  });
3228
3247
  Object.defineProperty(exports, "GoogleADKIcon", {
3229
3248
  enumerable: true,
3230
- get: function () { return chunkRUH6YJXW_js.GoogleADKIcon; }
3249
+ get: function () { return chunkWB5CWGXD_js.GoogleADKIcon; }
3231
3250
  });
3232
3251
  Object.defineProperty(exports, "GroupFlowNode", {
3233
3252
  enumerable: true,
3234
- get: function () { return chunkRUH6YJXW_js.GroupFlowNode; }
3253
+ get: function () { return chunkWB5CWGXD_js.GroupFlowNode; }
3235
3254
  });
3236
3255
  Object.defineProperty(exports, "HttpRequestFlowNode", {
3237
3256
  enumerable: true,
3238
- get: function () { return chunkRUH6YJXW_js.HttpRequestFlowNode; }
3257
+ get: function () { return chunkWB5CWGXD_js.HttpRequestFlowNode; }
3239
3258
  });
3240
3259
  Object.defineProperty(exports, "IfElseFlowNode", {
3241
3260
  enumerable: true,
3242
- get: function () { return chunkRUH6YJXW_js.IfElseFlowNode; }
3261
+ get: function () { return chunkWB5CWGXD_js.IfElseFlowNode; }
3243
3262
  });
3244
3263
  Object.defineProperty(exports, "IterationFlowNode", {
3245
3264
  enumerable: true,
3246
- get: function () { return chunkRUH6YJXW_js.IterationFlowNode; }
3265
+ get: function () { return chunkWB5CWGXD_js.IterationFlowNode; }
3247
3266
  });
3248
3267
  Object.defineProperty(exports, "IterationStartFlowNode", {
3249
3268
  enumerable: true,
3250
- get: function () { return chunkRUH6YJXW_js.IterationStartFlowNode; }
3269
+ get: function () { return chunkWB5CWGXD_js.IterationStartFlowNode; }
3251
3270
  });
3252
3271
  Object.defineProperty(exports, "KnowledgeBaseFlowNode", {
3253
3272
  enumerable: true,
3254
- get: function () { return chunkRUH6YJXW_js.KnowledgeBaseFlowNode; }
3273
+ get: function () { return chunkWB5CWGXD_js.KnowledgeBaseFlowNode; }
3255
3274
  });
3256
3275
  Object.defineProperty(exports, "LOGIC_ICON_MAP", {
3257
3276
  enumerable: true,
3258
- get: function () { return chunkRUH6YJXW_js.LOGIC_ICON_MAP; }
3277
+ get: function () { return chunkWB5CWGXD_js.LOGIC_ICON_MAP; }
3259
3278
  });
3260
3279
  Object.defineProperty(exports, "LOGIC_NODE_BADGE_COLORS", {
3261
3280
  enumerable: true,
3262
- get: function () { return chunkRUH6YJXW_js.LOGIC_NODE_BADGE_COLORS; }
3281
+ get: function () { return chunkWB5CWGXD_js.LOGIC_NODE_BADGE_COLORS; }
3263
3282
  });
3264
3283
  Object.defineProperty(exports, "LOGIC_NODE_GRADIENTS", {
3265
3284
  enumerable: true,
3266
- get: function () { return chunkRUH6YJXW_js.LOGIC_NODE_GRADIENTS; }
3285
+ get: function () { return chunkWB5CWGXD_js.LOGIC_NODE_GRADIENTS; }
3267
3286
  });
3268
3287
  Object.defineProperty(exports, "LOGIC_NODE_HANDLE_COLORS", {
3269
3288
  enumerable: true,
3270
- get: function () { return chunkRUH6YJXW_js.LOGIC_NODE_HANDLE_COLORS; }
3289
+ get: function () { return chunkWB5CWGXD_js.LOGIC_NODE_HANDLE_COLORS; }
3271
3290
  });
3272
3291
  Object.defineProperty(exports, "LangChainIcon", {
3273
3292
  enumerable: true,
3274
- get: function () { return chunkRUH6YJXW_js.LangChainIcon; }
3293
+ get: function () { return chunkWB5CWGXD_js.LangChainIcon; }
3275
3294
  });
3276
3295
  Object.defineProperty(exports, "ListOperatorFlowNode", {
3277
3296
  enumerable: true,
3278
- get: function () { return chunkRUH6YJXW_js.ListOperatorFlowNode; }
3297
+ get: function () { return chunkWB5CWGXD_js.ListOperatorFlowNode; }
3279
3298
  });
3280
3299
  Object.defineProperty(exports, "LogicNodeModal", {
3281
3300
  enumerable: true,
3282
- get: function () { return chunkRUH6YJXW_js.LogicNodeModal; }
3301
+ get: function () { return chunkWB5CWGXD_js.LogicNodeModal; }
3283
3302
  });
3284
3303
  Object.defineProperty(exports, "MINIMAP_NODE_COLORS", {
3285
3304
  enumerable: true,
3286
- get: function () { return chunkRUH6YJXW_js.MINIMAP_NODE_COLORS; }
3305
+ get: function () { return chunkWB5CWGXD_js.MINIMAP_NODE_COLORS; }
3306
+ });
3307
+ Object.defineProperty(exports, "ModelProviderFlowNode", {
3308
+ enumerable: true,
3309
+ get: function () { return chunkWB5CWGXD_js.ModelProviderFlowNode; }
3287
3310
  });
3288
3311
  Object.defineProperty(exports, "NodeCard", {
3289
3312
  enumerable: true,
3290
- get: function () { return chunkRUH6YJXW_js.NodeCard; }
3313
+ get: function () { return chunkWB5CWGXD_js.NodeCard; }
3291
3314
  });
3292
3315
  Object.defineProperty(exports, "NodeContextMenu", {
3293
3316
  enumerable: true,
3294
- get: function () { return chunkRUH6YJXW_js.NodeContextMenu; }
3317
+ get: function () { return chunkWB5CWGXD_js.NodeContextMenu; }
3295
3318
  });
3296
3319
  Object.defineProperty(exports, "NoteFlowNode", {
3297
3320
  enumerable: true,
3298
- get: function () { return chunkRUH6YJXW_js.NoteFlowNode; }
3321
+ get: function () { return chunkWB5CWGXD_js.NoteFlowNode; }
3299
3322
  });
3300
3323
  Object.defineProperty(exports, "OpenAIIcon", {
3301
3324
  enumerable: true,
3302
- get: function () { return chunkRUH6YJXW_js.OpenAIIcon; }
3325
+ get: function () { return chunkWB5CWGXD_js.OpenAIIcon; }
3303
3326
  });
3304
3327
  Object.defineProperty(exports, "PanelContextMenu", {
3305
3328
  enumerable: true,
3306
- get: function () { return chunkRUH6YJXW_js.PanelContextMenu; }
3329
+ get: function () { return chunkWB5CWGXD_js.PanelContextMenu; }
3307
3330
  });
3308
3331
  Object.defineProperty(exports, "ParameterExtractorFlowNode", {
3309
3332
  enumerable: true,
3310
- get: function () { return chunkRUH6YJXW_js.ParameterExtractorFlowNode; }
3333
+ get: function () { return chunkWB5CWGXD_js.ParameterExtractorFlowNode; }
3311
3334
  });
3312
3335
  Object.defineProperty(exports, "QuestionClassifierFlowNode", {
3313
3336
  enumerable: true,
3314
- get: function () { return chunkRUH6YJXW_js.QuestionClassifierFlowNode; }
3337
+ get: function () { return chunkWB5CWGXD_js.QuestionClassifierFlowNode; }
3315
3338
  });
3316
3339
  Object.defineProperty(exports, "RuleFlowNode", {
3317
3340
  enumerable: true,
3318
- get: function () { return chunkRUH6YJXW_js.RuleFlowNode; }
3341
+ get: function () { return chunkWB5CWGXD_js.RuleFlowNode; }
3319
3342
  });
3320
3343
  Object.defineProperty(exports, "SelectionContextMenu", {
3321
3344
  enumerable: true,
3322
- get: function () { return chunkRUH6YJXW_js.SelectionContextMenu; }
3345
+ get: function () { return chunkWB5CWGXD_js.SelectionContextMenu; }
3323
3346
  });
3324
3347
  Object.defineProperty(exports, "StartFlowNode", {
3325
3348
  enumerable: true,
3326
- get: function () { return chunkRUH6YJXW_js.StartFlowNode; }
3349
+ get: function () { return chunkWB5CWGXD_js.StartFlowNode; }
3327
3350
  });
3328
3351
  Object.defineProperty(exports, "StrandsIcon", {
3329
3352
  enumerable: true,
3330
- get: function () { return chunkRUH6YJXW_js.StrandsIcon; }
3353
+ get: function () { return chunkWB5CWGXD_js.StrandsIcon; }
3331
3354
  });
3332
3355
  Object.defineProperty(exports, "TemplateTransformFlowNode", {
3333
3356
  enumerable: true,
3334
- get: function () { return chunkRUH6YJXW_js.TemplateTransformFlowNode; }
3357
+ get: function () { return chunkWB5CWGXD_js.TemplateTransformFlowNode; }
3335
3358
  });
3336
3359
  Object.defineProperty(exports, "ToolFlowNode", {
3337
3360
  enumerable: true,
3338
- get: function () { return chunkRUH6YJXW_js.ToolFlowNode; }
3361
+ get: function () { return chunkWB5CWGXD_js.ToolFlowNode; }
3339
3362
  });
3340
3363
  Object.defineProperty(exports, "VariableAggregatorFlowNode", {
3341
3364
  enumerable: true,
3342
- get: function () { return chunkRUH6YJXW_js.VariableAggregatorFlowNode; }
3365
+ get: function () { return chunkWB5CWGXD_js.VariableAggregatorFlowNode; }
3343
3366
  });
3344
3367
  Object.defineProperty(exports, "VariableAssignerFlowNode", {
3345
3368
  enumerable: true,
3346
- get: function () { return chunkRUH6YJXW_js.VariableAssignerFlowNode; }
3369
+ get: function () { return chunkWB5CWGXD_js.VariableAssignerFlowNode; }
3347
3370
  });
3348
3371
  Object.defineProperty(exports, "WorkflowBuilderProvider", {
3349
3372
  enumerable: true,
3350
- get: function () { return chunkRUH6YJXW_js.WorkflowBuilderProvider; }
3373
+ get: function () { return chunkWB5CWGXD_js.WorkflowBuilderProvider; }
3351
3374
  });
3352
3375
  Object.defineProperty(exports, "Workspace", {
3353
3376
  enumerable: true,
3354
- get: function () { return chunkRUH6YJXW_js.Workspace; }
3377
+ get: function () { return chunkWB5CWGXD_js.Workspace; }
3355
3378
  });
3356
3379
  Object.defineProperty(exports, "getCompatibleModels", {
3357
3380
  enumerable: true,
3358
- get: function () { return chunkRUH6YJXW_js.getCompatibleModels; }
3381
+ get: function () { return chunkWB5CWGXD_js.getCompatibleModels; }
3359
3382
  });
3360
3383
  Object.defineProperty(exports, "getDefaultFrameworkForModel", {
3361
3384
  enumerable: true,
3362
- get: function () { return chunkRUH6YJXW_js.getDefaultFrameworkForModel; }
3385
+ get: function () { return chunkWB5CWGXD_js.getDefaultFrameworkForModel; }
3363
3386
  });
3364
3387
  Object.defineProperty(exports, "getEntityBadgeColor", {
3365
3388
  enumerable: true,
3366
- get: function () { return chunkRUH6YJXW_js.getEntityBadgeColor; }
3389
+ get: function () { return chunkWB5CWGXD_js.getEntityBadgeColor; }
3367
3390
  });
3368
3391
  Object.defineProperty(exports, "getEntityGradient", {
3369
3392
  enumerable: true,
3370
- get: function () { return chunkRUH6YJXW_js.getEntityGradient; }
3393
+ get: function () { return chunkWB5CWGXD_js.getEntityGradient; }
3371
3394
  });
3372
3395
  Object.defineProperty(exports, "getEntityHandleColor", {
3373
3396
  enumerable: true,
3374
- get: function () { return chunkRUH6YJXW_js.getEntityHandleColor; }
3397
+ get: function () { return chunkWB5CWGXD_js.getEntityHandleColor; }
3375
3398
  });
3376
3399
  Object.defineProperty(exports, "getEntityIcon", {
3377
3400
  enumerable: true,
3378
- get: function () { return chunkRUH6YJXW_js.getEntityIcon; }
3401
+ get: function () { return chunkWB5CWGXD_js.getEntityIcon; }
3379
3402
  });
3380
3403
  Object.defineProperty(exports, "getEntityMinimapColor", {
3381
3404
  enumerable: true,
3382
- get: function () { return chunkRUH6YJXW_js.getEntityMinimapColor; }
3405
+ get: function () { return chunkWB5CWGXD_js.getEntityMinimapColor; }
3383
3406
  });
3384
3407
  Object.defineProperty(exports, "getFrameworkMeta", {
3385
3408
  enumerable: true,
3386
- get: function () { return chunkRUH6YJXW_js.getFrameworkMeta; }
3409
+ get: function () { return chunkWB5CWGXD_js.getFrameworkMeta; }
3387
3410
  });
3388
3411
  Object.defineProperty(exports, "isModelCompatibleWithFramework", {
3389
3412
  enumerable: true,
3390
- get: function () { return chunkRUH6YJXW_js.isModelCompatibleWithFramework; }
3413
+ get: function () { return chunkWB5CWGXD_js.isModelCompatibleWithFramework; }
3391
3414
  });
3392
3415
  Object.defineProperty(exports, "useModalStore", {
3393
3416
  enumerable: true,
3394
- get: function () { return chunkRUH6YJXW_js.useModalStore; }
3417
+ get: function () { return chunkWB5CWGXD_js.useModalStore; }
3395
3418
  });
3396
3419
  Object.defineProperty(exports, "useWorkflowBuilderClient", {
3397
3420
  enumerable: true,
3398
- get: function () { return chunkRUH6YJXW_js.useWorkflowBuilderClient; }
3421
+ get: function () { return chunkWB5CWGXD_js.useWorkflowBuilderClient; }
3399
3422
  });
3400
3423
  Object.defineProperty(exports, "useWorkflowBuilderClientOptional", {
3401
3424
  enumerable: true,
3402
- get: function () { return chunkRUH6YJXW_js.useWorkflowBuilderClientOptional; }
3425
+ get: function () { return chunkWB5CWGXD_js.useWorkflowBuilderClientOptional; }
3403
3426
  });
3404
3427
  Object.defineProperty(exports, "useWorkflowStore", {
3405
3428
  enumerable: true,
3406
- get: function () { return chunkRUH6YJXW_js.useWorkflowStore; }
3429
+ get: function () { return chunkWB5CWGXD_js.useWorkflowStore; }
3407
3430
  });
3408
3431
  Object.defineProperty(exports, "GraphNodeBadge", {
3409
3432
  enumerable: true,