@datatechsolutions/ui 2.11.19 → 2.11.21

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,13 +3,13 @@
3
3
 
4
4
  require('../chunk-55H6WZQP.js');
5
5
  var chunk3GE3MBUZ_js = require('../chunk-3GE3MBUZ.js');
6
- var chunk4X7ITYP2_js = require('../chunk-4X7ITYP2.js');
7
- var chunk4XID6LOC_js = require('../chunk-4XID6LOC.js');
8
- require('../chunk-S7KHTUHA.js');
6
+ var chunkE6ALKSGA_js = require('../chunk-E6ALKSGA.js');
7
+ var chunk6N5UGKD7_js = require('../chunk-6N5UGKD7.js');
9
8
  require('../chunk-UZ3CMNUJ.js');
9
+ var chunkYXN2K77G_js = require('../chunk-YXN2K77G.js');
10
+ require('../chunk-S7KHTUHA.js');
10
11
  var chunkP4YYEM4B_js = require('../chunk-P4YYEM4B.js');
11
12
  var chunkPWBWP5FJ_js = require('../chunk-PWBWP5FJ.js');
12
- var chunkYXN2K77G_js = require('../chunk-YXN2K77G.js');
13
13
  var react = require('react');
14
14
  var outline = require('@heroicons/react/24/outline');
15
15
  var jsxRuntime = require('react/jsx-runtime');
@@ -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 = chunk4X7ITYP2_js.getFrameworkMeta(selectedFramework);
86
+ const frameworkMeta = chunkE6ALKSGA_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" },
@@ -358,13 +358,14 @@ function AgentCapabilityCard({ elo, setElo, models, selectedModelId, setSelected
358
358
  ] })
359
359
  ] });
360
360
  }
361
- function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFramework, setSelectedFramework, markDirty }) {
362
- const frameworkKeys = Object.keys(chunk4X7ITYP2_js.FRAMEWORK_META);
363
- const compatibleModels = chunk4X7ITYP2_js.getCompatibleModels(models, selectedFramework);
361
+ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFramework, setSelectedFramework, markDirty, connectedProviderTypes }) {
362
+ const frameworkKeys = Object.keys(chunkE6ALKSGA_js.FRAMEWORK_META);
363
+ const hasProviderConstraints = connectedProviderTypes.length > 0;
364
+ const compatibleModels = chunkE6ALKSGA_js.getCompatibleModels(models, selectedFramework);
364
365
  const handleFrameworkChange = react.useCallback((newFramework) => {
365
366
  setSelectedFramework(newFramework);
366
- if (!chunk4X7ITYP2_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
367
- const compatible = chunk4X7ITYP2_js.getCompatibleModels(models, newFramework);
367
+ if (!chunkE6ALKSGA_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
368
+ const compatible = chunkE6ALKSGA_js.getCompatibleModels(models, newFramework);
368
369
  if (compatible.length > 0) {
369
370
  setSelectedModelId(compatible[0].id);
370
371
  }
@@ -375,15 +376,18 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
375
376
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
376
377
  /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-gray-500 dark:text-gray-400", children: t("agentDrawer.framework") }),
377
378
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1.5", children: frameworkKeys.map((key) => {
378
- const meta = chunk4X7ITYP2_js.FRAMEWORK_META[key];
379
+ const meta = chunkE6ALKSGA_js.FRAMEWORK_META[key];
379
380
  const isSelected = key === selectedFramework;
380
- const compatCount = chunk4X7ITYP2_js.getCompatibleModels(models, key).length;
381
+ const compatCount = chunkE6ALKSGA_js.getCompatibleModels(models, key).length;
382
+ const isCompatibleWithProviders = !hasProviderConstraints || chunkE6ALKSGA_js.isFrameworkCompatibleWithProviders(key, connectedProviderTypes);
381
383
  return /* @__PURE__ */ jsxRuntime.jsxs(
382
384
  "button",
383
385
  {
384
386
  type: "button",
385
387
  onClick: () => handleFrameworkChange(key),
386
- className: `inline-flex items-center gap-1.5 rounded-full px-3 py-1.5 text-[10px] font-semibold transition-all ${isSelected ? `${meta.badgeColor} ring-1 ring-current/20` : "bg-gray-100 text-gray-500 hover:bg-gray-200 dark:bg-white/5 dark:text-gray-400 dark:hover:bg-white/10"}`,
388
+ disabled: !isCompatibleWithProviders,
389
+ className: `inline-flex items-center gap-1.5 rounded-full px-3 py-1.5 text-[10px] font-semibold transition-all ${!isCompatibleWithProviders ? "cursor-not-allowed bg-gray-100 text-gray-400 opacity-40 dark:bg-white/5 dark:text-gray-500" : isSelected ? `${meta.badgeColor} ring-1 ring-current/20` : "bg-gray-100 text-gray-500 hover:bg-gray-200 dark:bg-white/5 dark:text-gray-400 dark:hover:bg-white/10"}`,
390
+ title: !isCompatibleWithProviders ? t("agentDrawer.frameworkIncompatible") : void 0,
387
391
  children: [
388
392
  /* @__PURE__ */ jsxRuntime.jsx(meta.IconComponent, { className: "h-3.5 w-3.5" }),
389
393
  meta.label,
@@ -407,7 +411,7 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
407
411
  ] }),
408
412
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-2", children: models.map((model) => {
409
413
  const isSelected = model.id === selectedModelId;
410
- const isCompatible = chunk4X7ITYP2_js.isModelCompatibleWithFramework(model.id, selectedFramework);
414
+ const isCompatible = chunkE6ALKSGA_js.isModelCompatibleWithFramework(model.id, selectedFramework);
411
415
  const { IconComponent, color, providerLabel } = getModelIcon(model.id);
412
416
  return /* @__PURE__ */ jsxRuntime.jsxs(
413
417
  "button",
@@ -506,7 +510,7 @@ function PromptTab({ agent, temperature, setTemperature, markDirty, t }) {
506
510
  ] });
507
511
  }
508
512
  function ResultsTab({ agentId, t }) {
509
- const nodeResults = chunk4X7ITYP2_js.useWorkflowStore((state) => state.nodeResults);
513
+ const nodeResults = chunkE6ALKSGA_js.useWorkflowStore((state) => state.nodeResults);
510
514
  const agentResult = react.useMemo(() => {
511
515
  return nodeResults[agentId] ?? null;
512
516
  }, [nodeResults, agentId]);
@@ -596,10 +600,10 @@ function ModelsTab({ modelProviders, selectedProviderId, onSelectProvider, model
596
600
  const providerModels = modelsByProvider.find((p) => p.provider.id === selectedProviderId);
597
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") });
598
602
  const compatibleModels = providerModels.models.filter(
599
- (m) => chunk4X7ITYP2_js.isModelCompatibleWithFramework(m.id, agentFramework)
603
+ (m) => chunkE6ALKSGA_js.isModelCompatibleWithFramework(m.id, agentFramework)
600
604
  );
601
605
  const incompatibleModels = providerModels.models.filter(
602
- (m) => !chunk4X7ITYP2_js.isModelCompatibleWithFramework(m.id, agentFramework)
606
+ (m) => !chunkE6ALKSGA_js.isModelCompatibleWithFramework(m.id, agentFramework)
603
607
  );
604
608
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
605
609
  /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-gray-500 dark:text-gray-400", children: t("agentDrawer.selectModel") }),
@@ -672,7 +676,7 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
672
676
  ] }),
673
677
  tool.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: tool.description }),
674
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) => {
675
- const meta = chunk4X7ITYP2_js.getFrameworkMeta(framework);
679
+ const meta = chunkE6ALKSGA_js.getFrameworkMeta(framework);
676
680
  const isCurrentFw = framework === agentFramework;
677
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: [
678
682
  /* @__PURE__ */ jsxRuntime.jsx(meta.IconComponent, { className: "h-2.5 w-2.5" }),
@@ -690,9 +694,9 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
690
694
  }
691
695
  function AgentModal({ onSaved }) {
692
696
  const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
693
- const activeModal = chunk4X7ITYP2_js.useModalStore((s) => s.activeModal);
694
- const agentData = chunk4X7ITYP2_js.useModalStore((s) => s.agentData);
695
- const closeModal = chunk4X7ITYP2_js.useModalStore((s) => s.closeModal);
697
+ const activeModal = chunkE6ALKSGA_js.useModalStore((s) => s.activeModal);
698
+ const agentData = chunkE6ALKSGA_js.useModalStore((s) => s.agentData);
699
+ const closeModal = chunkE6ALKSGA_js.useModalStore((s) => s.closeModal);
696
700
  const open = activeModal === "agent";
697
701
  const agent = agentData?.agent ?? null;
698
702
  const models = agentData?.models ?? [];
@@ -767,7 +771,7 @@ function AgentModal({ onSaved }) {
767
771
  )
768
772
  ] });
769
773
  return /* @__PURE__ */ jsxRuntime.jsxs(
770
- chunk4XID6LOC_js.SettingsDialog,
774
+ chunk6N5UGKD7_js.SettingsDialog,
771
775
  {
772
776
  open,
773
777
  onClose: handleClose,
@@ -785,7 +789,7 @@ function AgentModal({ onSaved }) {
785
789
  sidebarFooter,
786
790
  children: [
787
791
  activeTab === "profile" && /* @__PURE__ */ jsxRuntime.jsx(AgentProfileHeader, { agent, models, t, selectedModelId, setSelectedModelId, selectedFramework, temperature, setTemperature, elo, setElo, onChanged: markDirty }),
788
- activeTab === "framework" && /* @__PURE__ */ jsxRuntime.jsx(ConfigTab, { models, t, selectedModelId, setSelectedModelId, selectedFramework, setSelectedFramework: (fw) => setSelectedFramework(fw), markDirty }),
792
+ activeTab === "framework" && /* @__PURE__ */ jsxRuntime.jsx(ConfigTab, { models, t, selectedModelId, setSelectedModelId, selectedFramework, setSelectedFramework: (fw) => setSelectedFramework(fw), markDirty, connectedProviderTypes: availableModelProviders.map((p) => p.provider) }),
789
793
  activeTab === "prompt" && /* @__PURE__ */ jsxRuntime.jsx(PromptTab, { agent, temperature, setTemperature, markDirty, t }),
790
794
  activeTab === "tools" && /* @__PURE__ */ jsxRuntime.jsx(ToolsTab, { agentTools: availableAgentTools, enabledToolIds, onToggle: handleToggleTool, agentFramework: selectedFramework, t }),
791
795
  activeTab === "models" && /* @__PURE__ */ jsxRuntime.jsx(
@@ -914,7 +918,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
914
918
  const markDirty = useSubworkflowStore((s) => s.markDirty);
915
919
  const markSaved = useSubworkflowStore((s) => s.markSaved);
916
920
  const closeModal = useSubworkflowStore((s) => s.closeModal);
917
- const agentBehind = chunk4X7ITYP2_js.useModalStore((s) => s.activeModal === "agent" ? s.agentData?.agent?.name : null);
921
+ const agentBehind = chunkE6ALKSGA_js.useModalStore((s) => s.activeModal === "agent" ? s.agentData?.agent?.name : null);
918
922
  const isCreateMode = !tool?.toolId;
919
923
  const initialGraph = react.useMemo(() => {
920
924
  const config = tool?.config;
@@ -943,9 +947,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
943
947
  }, [tool, onSaved, name, category, description, timeoutMs, latestGraphRef, markSaved]);
944
948
  if (!tool) return null;
945
949
  const categoryKey = category ?? "external";
946
- const gradient = tool.color ?? chunk4X7ITYP2_js.CATEGORY_COLORS[categoryKey] ?? chunk4X7ITYP2_js.CATEGORY_COLORS.external;
947
- const categoryPill = chunk4X7ITYP2_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunk4X7ITYP2_js.CATEGORY_PILL_COLORS.external;
948
- const IconComponent = chunk4X7ITYP2_js.ICON_MAP[tool.icon ?? ""] ?? outline.ArrowPathRoundedSquareIcon;
950
+ const gradient = tool.color ?? chunkE6ALKSGA_js.CATEGORY_COLORS[categoryKey] ?? chunkE6ALKSGA_js.CATEGORY_COLORS.external;
951
+ const categoryPill = chunkE6ALKSGA_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunkE6ALKSGA_js.CATEGORY_PILL_COLORS.external;
952
+ const IconComponent = chunkE6ALKSGA_js.ICON_MAP[tool.icon ?? ""] ?? outline.ArrowPathRoundedSquareIcon;
949
953
  const graph = latestGraphRef.current;
950
954
  const startNode = graph.nodes.find((n) => n.type === "start");
951
955
  const endNode = graph.nodes.find((n) => n.type === "end");
@@ -978,7 +982,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
978
982
  ] })
979
983
  ] });
980
984
  return /* @__PURE__ */ jsxRuntime.jsx(
981
- chunk4XID6LOC_js.GlassModalShell,
985
+ chunk6N5UGKD7_js.GlassModalShell,
982
986
  {
983
987
  open,
984
988
  onClose: closeModal,
@@ -1010,7 +1014,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1010
1014
  {
1011
1015
  type: "button",
1012
1016
  onClick: () => setCategory(cat),
1013
- className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${chunk4X7ITYP2_js.CATEGORY_PILL_COLORS[cat] ?? chunk4X7ITYP2_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"}`,
1017
+ className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${chunkE6ALKSGA_js.CATEGORY_PILL_COLORS[cat] ?? chunkE6ALKSGA_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"}`,
1014
1018
  children: cat
1015
1019
  },
1016
1020
  cat
@@ -1097,7 +1101,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1097
1101
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto" })
1098
1102
  ] }),
1099
1103
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
1100
- chunk4X7ITYP2_js.WorkflowCanvas,
1104
+ chunkE6ALKSGA_js.WorkflowCanvas,
1101
1105
  {
1102
1106
  initialGraph,
1103
1107
  agents: [],
@@ -1134,7 +1138,7 @@ function WorkspaceModal({
1134
1138
  }) {
1135
1139
  const resolvedSize = LEGACY_WIDTH_MAP[maxWidth] ?? maxWidth;
1136
1140
  return /* @__PURE__ */ jsxRuntime.jsxs(
1137
- chunk4XID6LOC_js.GlassModalShell,
1141
+ chunk6N5UGKD7_js.GlassModalShell,
1138
1142
  {
1139
1143
  open,
1140
1144
  onClose,
@@ -1155,9 +1159,9 @@ function WorkspaceModal({
1155
1159
  }
1156
1160
  function PipelineSettingsModal({ onSave }) {
1157
1161
  const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
1158
- const activeModal = chunk4X7ITYP2_js.useModalStore((s) => s.activeModal);
1159
- const data = chunk4X7ITYP2_js.useModalStore((s) => s.pipelineSettingsData);
1160
- const closeModal = chunk4X7ITYP2_js.useModalStore((s) => s.closeModal);
1162
+ const activeModal = chunkE6ALKSGA_js.useModalStore((s) => s.activeModal);
1163
+ const data = chunkE6ALKSGA_js.useModalStore((s) => s.pipelineSettingsData);
1164
+ const closeModal = chunkE6ALKSGA_js.useModalStore((s) => s.closeModal);
1161
1165
  const open = activeModal === "pipeline-settings";
1162
1166
  const [nameValue, setNameValue] = react.useState("");
1163
1167
  const [descriptionValue, setDescriptionValue] = react.useState("");
@@ -1192,7 +1196,7 @@ function PipelineSettingsModal({ onSave }) {
1192
1196
  }
1193
1197
  ),
1194
1198
  /* @__PURE__ */ jsxRuntime.jsxs(
1195
- chunk4XID6LOC_js.Button,
1199
+ chunk6N5UGKD7_js.Button,
1196
1200
  {
1197
1201
  type: "submit",
1198
1202
  form: "pipeline-settings-form",
@@ -1207,7 +1211,7 @@ function PipelineSettingsModal({ onSave }) {
1207
1211
  )
1208
1212
  ] });
1209
1213
  return /* @__PURE__ */ jsxRuntime.jsx(
1210
- chunk4XID6LOC_js.GlassModalShell,
1214
+ chunk6N5UGKD7_js.GlassModalShell,
1211
1215
  {
1212
1216
  open,
1213
1217
  onClose: closeModal,
@@ -1221,7 +1225,7 @@ function PipelineSettingsModal({ onSave }) {
1221
1225
  onSubmit: handleSubmit,
1222
1226
  children: /* @__PURE__ */ jsxRuntime.jsxs("form", { id: "pipeline-settings-form", onSubmit: handleSubmit, className: "space-y-6", children: [
1223
1227
  /* @__PURE__ */ jsxRuntime.jsx(
1224
- chunk4XID6LOC_js.FormInput,
1228
+ chunk6N5UGKD7_js.FormInput,
1225
1229
  {
1226
1230
  label: t("pipelineName"),
1227
1231
  value: nameValue,
@@ -1231,7 +1235,7 @@ function PipelineSettingsModal({ onSave }) {
1231
1235
  }
1232
1236
  ),
1233
1237
  /* @__PURE__ */ jsxRuntime.jsx(
1234
- chunk4XID6LOC_js.FormTextarea,
1238
+ chunk6N5UGKD7_js.FormTextarea,
1235
1239
  {
1236
1240
  label: t("pipelineDescription"),
1237
1241
  value: descriptionValue,
@@ -1366,8 +1370,8 @@ function CollapsibleSection({ title, icon, colorClass, defaultOpen = true, count
1366
1370
  ] });
1367
1371
  }
1368
1372
  function LogicNodeItemCard({ item, translationFunction }) {
1369
- const IconComponent = chunk4X7ITYP2_js.LOGIC_ICON_MAP[item.nodeType];
1370
- const gradient = chunk4X7ITYP2_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-gray-400 to-gray-500";
1373
+ const IconComponent = chunkE6ALKSGA_js.LOGIC_ICON_MAP[item.nodeType];
1374
+ const gradient = chunkE6ALKSGA_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-gray-400 to-gray-500";
1371
1375
  const defaultConfig = chunkPWBWP5FJ_js.createDefaultLogicNodeConfig(item.nodeType);
1372
1376
  const configJson = defaultConfig ? JSON.stringify(defaultConfig) : void 0;
1373
1377
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -1588,8 +1592,8 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
1588
1592
  limit: entity.defaultLimit
1589
1593
  });
1590
1594
  const dsLogo = getDatasourceLogo(entity.id);
1591
- const EntityIcon = chunk4X7ITYP2_js.getEntityIcon(entity.id);
1592
- const entityGradient = chunk4X7ITYP2_js.getEntityGradient(entity.id);
1595
+ const EntityIcon = chunkE6ALKSGA_js.getEntityIcon(entity.id);
1596
+ const entityGradient = chunkE6ALKSGA_js.getEntityGradient(entity.id);
1593
1597
  return /* @__PURE__ */ jsxRuntime.jsxs(
1594
1598
  "div",
1595
1599
  {
@@ -1616,9 +1620,9 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
1616
1620
  filteredProviders.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
1617
1621
  CollapsibleSection,
1618
1622
  {
1619
- title: t("modelProvidersSection"),
1623
+ title: t("connectionsSection"),
1620
1624
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-3 w-3" }),
1621
- colorClass: "text-rose-600 dark:text-rose-400",
1625
+ colorClass: "text-slate-600 dark:text-slate-400",
1622
1626
  count: filteredProviders.length,
1623
1627
  children: filteredProviders.map((provider) => {
1624
1628
  const providerLogo = PROVIDER_LOGOS2[provider.provider];
@@ -1971,9 +1975,9 @@ function formatDuration2(durationMs) {
1971
1975
  }
1972
1976
  function RunPanel({ open, onClose, onRun, onStop }) {
1973
1977
  const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.runPanel");
1974
- const nodes = chunk4X7ITYP2_js.useWorkflowStore((state) => state.nodes);
1975
- const isRunning = chunk4X7ITYP2_js.useWorkflowStore((state) => state.isRunning);
1976
- const nodeResults = chunk4X7ITYP2_js.useWorkflowStore((state) => state.nodeResults);
1978
+ const nodes = chunkE6ALKSGA_js.useWorkflowStore((state) => state.nodes);
1979
+ const isRunning = chunkE6ALKSGA_js.useWorkflowStore((state) => state.isRunning);
1980
+ const nodeResults = chunkE6ALKSGA_js.useWorkflowStore((state) => state.nodeResults);
1977
1981
  const startNode = nodes.find((node) => node.type === "start");
1978
1982
  const hasEndNode = nodes.some((node) => node.type === "end");
1979
1983
  const hasValidStartConfig = Boolean(
@@ -2258,8 +2262,8 @@ function inferVariables(config, nodeType) {
2258
2262
  }
2259
2263
  function VariableInspector({ open, onClose }) {
2260
2264
  const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.variableInspector");
2261
- const nodes = chunk4X7ITYP2_js.useWorkflowStore((state) => state.nodes);
2262
- const edges = chunk4X7ITYP2_js.useWorkflowStore((state) => state.edges);
2265
+ const nodes = chunkE6ALKSGA_js.useWorkflowStore((state) => state.nodes);
2266
+ const edges = chunkE6ALKSGA_js.useWorkflowStore((state) => state.edges);
2263
2267
  const [expandedNodes, setExpandedNodes] = react.useState(/* @__PURE__ */ new Set());
2264
2268
  const toggleNodeExpansion = react.useCallback((nodeId) => {
2265
2269
  setExpandedNodes((current) => {
@@ -2321,8 +2325,8 @@ function VariableInspector({ open, onClose }) {
2321
2325
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-gray-500 dark:text-gray-400", children: translations("noNodes") })
2322
2326
  ] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-gray-100 dark:divide-gray-800", children: nodeVariableEntries.map((entry) => {
2323
2327
  const isExpanded = expandedNodes.has(entry.nodeId);
2324
- const IconComponent = chunk4X7ITYP2_js.LOGIC_ICON_MAP[entry.nodeType];
2325
- const gradient = chunk4X7ITYP2_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-gray-400 to-gray-500";
2328
+ const IconComponent = chunkE6ALKSGA_js.LOGIC_ICON_MAP[entry.nodeType];
2329
+ const gradient = chunkE6ALKSGA_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-gray-400 to-gray-500";
2326
2330
  const inputVariables = entry.variables.filter((variable) => variable.direction === "input");
2327
2331
  const outputVariables = entry.variables.filter((variable) => variable.direction === "output");
2328
2332
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": `variable-node-${entry.nodeId}`, children: [
@@ -2388,7 +2392,7 @@ function RunInputDialog({
2388
2392
  onRun
2389
2393
  }) {
2390
2394
  const t = chunkYXN2K77G_js.useTranslations("agents.workflow.runInputDialog");
2391
- const nodes = chunk4X7ITYP2_js.useWorkflowStore((state) => state.nodes);
2395
+ const nodes = chunkE6ALKSGA_js.useWorkflowStore((state) => state.nodes);
2392
2396
  const [values, setValues] = react.useState({});
2393
2397
  const inputVariableNames = react.useMemo(() => {
2394
2398
  const storeStartNode = nodes.find((node) => node.type === "start");
@@ -2415,7 +2419,7 @@ function RunInputDialog({
2415
2419
  }, [onClose]);
2416
2420
  if (!open) return null;
2417
2421
  return /* @__PURE__ */ jsxRuntime.jsxs(
2418
- chunk4XID6LOC_js.GlassFormModal,
2422
+ chunk6N5UGKD7_js.GlassFormModal,
2419
2423
  {
2420
2424
  open,
2421
2425
  onClose: handleClose,
@@ -2427,7 +2431,7 @@ function RunInputDialog({
2427
2431
  /* @__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: [
2428
2432
  /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300", children: variableName }),
2429
2433
  /* @__PURE__ */ jsxRuntime.jsx(
2430
- chunk4XID6LOC_js.Input,
2434
+ chunk6N5UGKD7_js.Input,
2431
2435
  {
2432
2436
  value: values[variableName] ?? "",
2433
2437
  onChange: (event) => handleValueChange(variableName, event.target.value),
@@ -2436,8 +2440,8 @@ function RunInputDialog({
2436
2440
  )
2437
2441
  ] }, variableName)) }),
2438
2442
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-4 flex items-center justify-end gap-2", children: [
2439
- /* @__PURE__ */ jsxRuntime.jsx(chunk4XID6LOC_js.Button, { size: "sm", plain: true, onClick: handleClose, children: t("cancel") }),
2440
- /* @__PURE__ */ jsxRuntime.jsxs(chunk4XID6LOC_js.Button, { size: "sm", gradient: true, onClick: handleSubmit, children: [
2443
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6N5UGKD7_js.Button, { size: "sm", plain: true, onClick: handleClose, children: t("cancel") }),
2444
+ /* @__PURE__ */ jsxRuntime.jsxs(chunk6N5UGKD7_js.Button, { size: "sm", gradient: true, onClick: handleSubmit, children: [
2441
2445
  /* @__PURE__ */ jsxRuntime.jsx(outline.PlayIcon, { className: "h-3.5 w-3.5", "data-slot": "icon" }),
2442
2446
  t("run")
2443
2447
  ] })
@@ -2470,8 +2474,8 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
2470
2474
  const [isLoadingRuns, setIsLoadingRuns] = react.useState(false);
2471
2475
  const [selectedRun, setSelectedRun] = react.useState(null);
2472
2476
  const [selectedNode, setSelectedNode] = react.useState(null);
2473
- const isRunning = chunk4X7ITYP2_js.useWorkflowStore((state) => state.isRunning);
2474
- const nodeResults = chunk4X7ITYP2_js.useWorkflowStore((state) => state.nodeResults);
2477
+ const isRunning = chunkE6ALKSGA_js.useWorkflowStore((state) => state.isRunning);
2478
+ const nodeResults = chunkE6ALKSGA_js.useWorkflowStore((state) => state.nodeResults);
2475
2479
  const refreshRuns = react.useCallback(async () => {
2476
2480
  setIsLoadingRuns(true);
2477
2481
  try {
@@ -2627,7 +2631,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
2627
2631
  onAutoSaveGraph(graph);
2628
2632
  }, [onAutoSaveGraph, onGraphSnapshot]);
2629
2633
  return /* @__PURE__ */ jsxRuntime.jsx(
2630
- chunk4X7ITYP2_js.Workspace,
2634
+ chunkE6ALKSGA_js.Workspace,
2631
2635
  {
2632
2636
  ...workspaceProps,
2633
2637
  onGraphChange: handleGraphChange
@@ -2635,7 +2639,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
2635
2639
  );
2636
2640
  });
2637
2641
  function DynamicIslandConfirm2(props) {
2638
- return /* @__PURE__ */ jsxRuntime.jsx(chunk4XID6LOC_js.DynamicIslandConfirm, { ...props });
2642
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk6N5UGKD7_js.DynamicIslandConfirm, { ...props });
2639
2643
  }
2640
2644
  var JSON_PREVIEW_LINE_LIMIT = 50;
2641
2645
  function DslExportModal({ open, onClose, workflow, graph }) {
@@ -2689,7 +2693,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
2689
2693
  }, [jsonString, workflow.name, workflow.version]);
2690
2694
  if (!open) return null;
2691
2695
  return /* @__PURE__ */ jsxRuntime.jsx(
2692
- chunk4XID6LOC_js.GlassFormModal,
2696
+ chunk6N5UGKD7_js.GlassFormModal,
2693
2697
  {
2694
2698
  open,
2695
2699
  onClose,
@@ -2732,7 +2736,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
2732
2736
  ] }),
2733
2737
  /* @__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: [
2734
2738
  /* @__PURE__ */ jsxRuntime.jsx(
2735
- chunk4XID6LOC_js.Button,
2739
+ chunk6N5UGKD7_js.Button,
2736
2740
  {
2737
2741
  type: "button",
2738
2742
  onClick: handleCopyToClipboard,
@@ -2749,7 +2753,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
2749
2753
  }
2750
2754
  ),
2751
2755
  /* @__PURE__ */ jsxRuntime.jsxs(
2752
- chunk4XID6LOC_js.Button,
2756
+ chunk6N5UGKD7_js.Button,
2753
2757
  {
2754
2758
  type: "button",
2755
2759
  onClick: handleDownloadJson,
@@ -2908,7 +2912,7 @@ function DslImportModal({ open, onClose, onImport }) {
2908
2912
  }, []);
2909
2913
  if (!open) return null;
2910
2914
  return /* @__PURE__ */ jsxRuntime.jsx(
2911
- chunk4XID6LOC_js.GlassFormModal,
2915
+ chunk6N5UGKD7_js.GlassFormModal,
2912
2916
  {
2913
2917
  open,
2914
2918
  onClose,
@@ -2949,7 +2953,7 @@ function DslImportModal({ open, onClose, onImport }) {
2949
2953
  ) : /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": "import-validation-result", children: [
2950
2954
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4 flex items-center justify-between", children: [
2951
2955
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: fileName }),
2952
- /* @__PURE__ */ jsxRuntime.jsx(chunk4XID6LOC_js.Button, { type: "button", plain: true, size: "sm", onClick: handleReset, children: translations("chooseAnother") })
2956
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6N5UGKD7_js.Button, { type: "button", plain: true, size: "sm", onClick: handleReset, children: translations("chooseAnother") })
2953
2957
  ] }),
2954
2958
  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: [
2955
2959
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
@@ -2977,9 +2981,9 @@ function DslImportModal({ open, onClose, onImport }) {
2977
2981
  ] })
2978
2982
  ] }) }),
2979
2983
  /* @__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: [
2980
- /* @__PURE__ */ jsxRuntime.jsx(chunk4XID6LOC_js.Button, { type: "button", onClick: onClose, outline: true, size: "sm", "data-testid": "import-cancel-button", children: translations("cancel") }),
2984
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6N5UGKD7_js.Button, { type: "button", onClick: onClose, outline: true, size: "sm", "data-testid": "import-cancel-button", children: translations("cancel") }),
2981
2985
  /* @__PURE__ */ jsxRuntime.jsxs(
2982
- chunk4XID6LOC_js.Button,
2986
+ chunk6N5UGKD7_js.Button,
2983
2987
  {
2984
2988
  type: "button",
2985
2989
  onClick: handleImport,
@@ -3000,14 +3004,14 @@ function DslImportModal({ open, onClose, onImport }) {
3000
3004
  }
3001
3005
 
3002
3006
  // src/astrlabe/store/selectors.ts
3003
- var useCanUndo = () => chunk4X7ITYP2_js.useWorkflowStore((state) => state.past.length > 0);
3004
- var useCanRedo = () => chunk4X7ITYP2_js.useWorkflowStore((state) => state.future.length > 0);
3005
- var useHasCopied = () => chunk4X7ITYP2_js.useWorkflowStore((state) => state.clipboard !== null);
3006
- var useContextMenu = () => chunk4X7ITYP2_js.useWorkflowStore((state) => state.contextMenu);
3007
- var useEditingNodeId = () => chunk4X7ITYP2_js.useWorkflowStore((state) => state.editingNodeId);
3008
- var useSelectedNodeCount = () => chunk4X7ITYP2_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
3009
- var useIsRunning = () => chunk4X7ITYP2_js.useWorkflowStore((state) => state.isRunning);
3010
- var useNodeResults = () => chunk4X7ITYP2_js.useWorkflowStore((state) => state.nodeResults);
3007
+ var useCanUndo = () => chunkE6ALKSGA_js.useWorkflowStore((state) => state.past.length > 0);
3008
+ var useCanRedo = () => chunkE6ALKSGA_js.useWorkflowStore((state) => state.future.length > 0);
3009
+ var useHasCopied = () => chunkE6ALKSGA_js.useWorkflowStore((state) => state.clipboard !== null);
3010
+ var useContextMenu = () => chunkE6ALKSGA_js.useWorkflowStore((state) => state.contextMenu);
3011
+ var useEditingNodeId = () => chunkE6ALKSGA_js.useWorkflowStore((state) => state.editingNodeId);
3012
+ var useSelectedNodeCount = () => chunkE6ALKSGA_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
3013
+ var useIsRunning = () => chunkE6ALKSGA_js.useWorkflowStore((state) => state.isRunning);
3014
+ var useNodeResults = () => chunkE6ALKSGA_js.useWorkflowStore((state) => state.nodeResults);
3011
3015
  var DEFAULT_MAX_HISTORY = 50;
3012
3016
  function useUndoRedo(nodes, edges, setNodes, setEdges, maxHistory = DEFAULT_MAX_HISTORY) {
3013
3017
  const pastRef = react.useRef([]);
@@ -3295,227 +3299,239 @@ Object.defineProperty(exports, "validateWorkflowGraph", {
3295
3299
  });
3296
3300
  Object.defineProperty(exports, "AgentFlowNode", {
3297
3301
  enumerable: true,
3298
- get: function () { return chunk4X7ITYP2_js.AgentFlowNode; }
3302
+ get: function () { return chunkE6ALKSGA_js.AgentFlowNode; }
3299
3303
  });
3300
3304
  Object.defineProperty(exports, "AgentToolFlowNode", {
3301
3305
  enumerable: true,
3302
- get: function () { return chunk4X7ITYP2_js.AgentToolFlowNode; }
3306
+ get: function () { return chunkE6ALKSGA_js.AgentToolFlowNode; }
3303
3307
  });
3304
3308
  Object.defineProperty(exports, "AnswerFlowNode", {
3305
3309
  enumerable: true,
3306
- get: function () { return chunk4X7ITYP2_js.AnswerFlowNode; }
3310
+ get: function () { return chunkE6ALKSGA_js.AnswerFlowNode; }
3307
3311
  });
3308
3312
  Object.defineProperty(exports, "AnthropicIcon", {
3309
3313
  enumerable: true,
3310
- get: function () { return chunk4X7ITYP2_js.AnthropicIcon; }
3314
+ get: function () { return chunkE6ALKSGA_js.AnthropicIcon; }
3311
3315
  });
3312
3316
  Object.defineProperty(exports, "CodeFlowNode", {
3313
3317
  enumerable: true,
3314
- get: function () { return chunk4X7ITYP2_js.CodeFlowNode; }
3318
+ get: function () { return chunkE6ALKSGA_js.CodeFlowNode; }
3315
3319
  });
3316
3320
  Object.defineProperty(exports, "CrewAIIcon", {
3317
3321
  enumerable: true,
3318
- get: function () { return chunk4X7ITYP2_js.CrewAIIcon; }
3322
+ get: function () { return chunkE6ALKSGA_js.CrewAIIcon; }
3319
3323
  });
3320
3324
  Object.defineProperty(exports, "DocumentExtractorFlowNode", {
3321
3325
  enumerable: true,
3322
- get: function () { return chunk4X7ITYP2_js.DocumentExtractorFlowNode; }
3326
+ get: function () { return chunkE6ALKSGA_js.DocumentExtractorFlowNode; }
3323
3327
  });
3324
3328
  Object.defineProperty(exports, "EndFlowNode", {
3325
3329
  enumerable: true,
3326
- get: function () { return chunk4X7ITYP2_js.EndFlowNode; }
3330
+ get: function () { return chunkE6ALKSGA_js.EndFlowNode; }
3327
3331
  });
3328
3332
  Object.defineProperty(exports, "EntityFlowNode", {
3329
3333
  enumerable: true,
3330
- get: function () { return chunk4X7ITYP2_js.EntityFlowNode; }
3334
+ get: function () { return chunkE6ALKSGA_js.EntityFlowNode; }
3331
3335
  });
3332
3336
  Object.defineProperty(exports, "FRAMEWORK_META", {
3333
3337
  enumerable: true,
3334
- get: function () { return chunk4X7ITYP2_js.FRAMEWORK_META; }
3338
+ get: function () { return chunkE6ALKSGA_js.FRAMEWORK_META; }
3335
3339
  });
3336
3340
  Object.defineProperty(exports, "GoogleADKIcon", {
3337
3341
  enumerable: true,
3338
- get: function () { return chunk4X7ITYP2_js.GoogleADKIcon; }
3342
+ get: function () { return chunkE6ALKSGA_js.GoogleADKIcon; }
3339
3343
  });
3340
3344
  Object.defineProperty(exports, "GroupFlowNode", {
3341
3345
  enumerable: true,
3342
- get: function () { return chunk4X7ITYP2_js.GroupFlowNode; }
3346
+ get: function () { return chunkE6ALKSGA_js.GroupFlowNode; }
3343
3347
  });
3344
3348
  Object.defineProperty(exports, "HttpRequestFlowNode", {
3345
3349
  enumerable: true,
3346
- get: function () { return chunk4X7ITYP2_js.HttpRequestFlowNode; }
3350
+ get: function () { return chunkE6ALKSGA_js.HttpRequestFlowNode; }
3347
3351
  });
3348
3352
  Object.defineProperty(exports, "IfElseFlowNode", {
3349
3353
  enumerable: true,
3350
- get: function () { return chunk4X7ITYP2_js.IfElseFlowNode; }
3354
+ get: function () { return chunkE6ALKSGA_js.IfElseFlowNode; }
3351
3355
  });
3352
3356
  Object.defineProperty(exports, "IterationFlowNode", {
3353
3357
  enumerable: true,
3354
- get: function () { return chunk4X7ITYP2_js.IterationFlowNode; }
3358
+ get: function () { return chunkE6ALKSGA_js.IterationFlowNode; }
3355
3359
  });
3356
3360
  Object.defineProperty(exports, "IterationStartFlowNode", {
3357
3361
  enumerable: true,
3358
- get: function () { return chunk4X7ITYP2_js.IterationStartFlowNode; }
3362
+ get: function () { return chunkE6ALKSGA_js.IterationStartFlowNode; }
3359
3363
  });
3360
3364
  Object.defineProperty(exports, "KnowledgeBaseFlowNode", {
3361
3365
  enumerable: true,
3362
- get: function () { return chunk4X7ITYP2_js.KnowledgeBaseFlowNode; }
3366
+ get: function () { return chunkE6ALKSGA_js.KnowledgeBaseFlowNode; }
3363
3367
  });
3364
3368
  Object.defineProperty(exports, "LOGIC_ICON_MAP", {
3365
3369
  enumerable: true,
3366
- get: function () { return chunk4X7ITYP2_js.LOGIC_ICON_MAP; }
3370
+ get: function () { return chunkE6ALKSGA_js.LOGIC_ICON_MAP; }
3367
3371
  });
3368
3372
  Object.defineProperty(exports, "LOGIC_NODE_BADGE_COLORS", {
3369
3373
  enumerable: true,
3370
- get: function () { return chunk4X7ITYP2_js.LOGIC_NODE_BADGE_COLORS; }
3374
+ get: function () { return chunkE6ALKSGA_js.LOGIC_NODE_BADGE_COLORS; }
3371
3375
  });
3372
3376
  Object.defineProperty(exports, "LOGIC_NODE_GRADIENTS", {
3373
3377
  enumerable: true,
3374
- get: function () { return chunk4X7ITYP2_js.LOGIC_NODE_GRADIENTS; }
3378
+ get: function () { return chunkE6ALKSGA_js.LOGIC_NODE_GRADIENTS; }
3375
3379
  });
3376
3380
  Object.defineProperty(exports, "LOGIC_NODE_HANDLE_COLORS", {
3377
3381
  enumerable: true,
3378
- get: function () { return chunk4X7ITYP2_js.LOGIC_NODE_HANDLE_COLORS; }
3382
+ get: function () { return chunkE6ALKSGA_js.LOGIC_NODE_HANDLE_COLORS; }
3379
3383
  });
3380
3384
  Object.defineProperty(exports, "LangChainIcon", {
3381
3385
  enumerable: true,
3382
- get: function () { return chunk4X7ITYP2_js.LangChainIcon; }
3386
+ get: function () { return chunkE6ALKSGA_js.LangChainIcon; }
3383
3387
  });
3384
3388
  Object.defineProperty(exports, "ListOperatorFlowNode", {
3385
3389
  enumerable: true,
3386
- get: function () { return chunk4X7ITYP2_js.ListOperatorFlowNode; }
3390
+ get: function () { return chunkE6ALKSGA_js.ListOperatorFlowNode; }
3387
3391
  });
3388
3392
  Object.defineProperty(exports, "LogicNodeModal", {
3389
3393
  enumerable: true,
3390
- get: function () { return chunk4X7ITYP2_js.LogicNodeModal; }
3394
+ get: function () { return chunkE6ALKSGA_js.LogicNodeModal; }
3391
3395
  });
3392
3396
  Object.defineProperty(exports, "MINIMAP_NODE_COLORS", {
3393
3397
  enumerable: true,
3394
- get: function () { return chunk4X7ITYP2_js.MINIMAP_NODE_COLORS; }
3398
+ get: function () { return chunkE6ALKSGA_js.MINIMAP_NODE_COLORS; }
3395
3399
  });
3396
3400
  Object.defineProperty(exports, "ModelProviderFlowNode", {
3397
3401
  enumerable: true,
3398
- get: function () { return chunk4X7ITYP2_js.ModelProviderFlowNode; }
3402
+ get: function () { return chunkE6ALKSGA_js.ModelProviderFlowNode; }
3403
+ });
3404
+ Object.defineProperty(exports, "NODE_EXECUTION_ACCENT_COLORS", {
3405
+ enumerable: true,
3406
+ get: function () { return chunkE6ALKSGA_js.NODE_EXECUTION_ACCENT_COLORS; }
3399
3407
  });
3400
3408
  Object.defineProperty(exports, "NodeCard", {
3401
3409
  enumerable: true,
3402
- get: function () { return chunk4X7ITYP2_js.NodeCard; }
3410
+ get: function () { return chunkE6ALKSGA_js.NodeCard; }
3403
3411
  });
3404
3412
  Object.defineProperty(exports, "NodeContextMenu", {
3405
3413
  enumerable: true,
3406
- get: function () { return chunk4X7ITYP2_js.NodeContextMenu; }
3414
+ get: function () { return chunkE6ALKSGA_js.NodeContextMenu; }
3407
3415
  });
3408
3416
  Object.defineProperty(exports, "NoteFlowNode", {
3409
3417
  enumerable: true,
3410
- get: function () { return chunk4X7ITYP2_js.NoteFlowNode; }
3418
+ get: function () { return chunkE6ALKSGA_js.NoteFlowNode; }
3411
3419
  });
3412
3420
  Object.defineProperty(exports, "OpenAIIcon", {
3413
3421
  enumerable: true,
3414
- get: function () { return chunk4X7ITYP2_js.OpenAIIcon; }
3422
+ get: function () { return chunkE6ALKSGA_js.OpenAIIcon; }
3415
3423
  });
3416
3424
  Object.defineProperty(exports, "PanelContextMenu", {
3417
3425
  enumerable: true,
3418
- get: function () { return chunk4X7ITYP2_js.PanelContextMenu; }
3426
+ get: function () { return chunkE6ALKSGA_js.PanelContextMenu; }
3419
3427
  });
3420
3428
  Object.defineProperty(exports, "ParameterExtractorFlowNode", {
3421
3429
  enumerable: true,
3422
- get: function () { return chunk4X7ITYP2_js.ParameterExtractorFlowNode; }
3430
+ get: function () { return chunkE6ALKSGA_js.ParameterExtractorFlowNode; }
3423
3431
  });
3424
3432
  Object.defineProperty(exports, "QuestionClassifierFlowNode", {
3425
3433
  enumerable: true,
3426
- get: function () { return chunk4X7ITYP2_js.QuestionClassifierFlowNode; }
3434
+ get: function () { return chunkE6ALKSGA_js.QuestionClassifierFlowNode; }
3427
3435
  });
3428
3436
  Object.defineProperty(exports, "RuleFlowNode", {
3429
3437
  enumerable: true,
3430
- get: function () { return chunk4X7ITYP2_js.RuleFlowNode; }
3438
+ get: function () { return chunkE6ALKSGA_js.RuleFlowNode; }
3431
3439
  });
3432
3440
  Object.defineProperty(exports, "SelectionContextMenu", {
3433
3441
  enumerable: true,
3434
- get: function () { return chunk4X7ITYP2_js.SelectionContextMenu; }
3442
+ get: function () { return chunkE6ALKSGA_js.SelectionContextMenu; }
3435
3443
  });
3436
3444
  Object.defineProperty(exports, "StartFlowNode", {
3437
3445
  enumerable: true,
3438
- get: function () { return chunk4X7ITYP2_js.StartFlowNode; }
3446
+ get: function () { return chunkE6ALKSGA_js.StartFlowNode; }
3439
3447
  });
3440
3448
  Object.defineProperty(exports, "StrandsIcon", {
3441
3449
  enumerable: true,
3442
- get: function () { return chunk4X7ITYP2_js.StrandsIcon; }
3450
+ get: function () { return chunkE6ALKSGA_js.StrandsIcon; }
3443
3451
  });
3444
3452
  Object.defineProperty(exports, "TemplateTransformFlowNode", {
3445
3453
  enumerable: true,
3446
- get: function () { return chunk4X7ITYP2_js.TemplateTransformFlowNode; }
3454
+ get: function () { return chunkE6ALKSGA_js.TemplateTransformFlowNode; }
3447
3455
  });
3448
3456
  Object.defineProperty(exports, "ToolFlowNode", {
3449
3457
  enumerable: true,
3450
- get: function () { return chunk4X7ITYP2_js.ToolFlowNode; }
3458
+ get: function () { return chunkE6ALKSGA_js.ToolFlowNode; }
3451
3459
  });
3452
3460
  Object.defineProperty(exports, "VariableAggregatorFlowNode", {
3453
3461
  enumerable: true,
3454
- get: function () { return chunk4X7ITYP2_js.VariableAggregatorFlowNode; }
3462
+ get: function () { return chunkE6ALKSGA_js.VariableAggregatorFlowNode; }
3455
3463
  });
3456
3464
  Object.defineProperty(exports, "VariableAssignerFlowNode", {
3457
3465
  enumerable: true,
3458
- get: function () { return chunk4X7ITYP2_js.VariableAssignerFlowNode; }
3466
+ get: function () { return chunkE6ALKSGA_js.VariableAssignerFlowNode; }
3459
3467
  });
3460
3468
  Object.defineProperty(exports, "WorkflowBuilderProvider", {
3461
3469
  enumerable: true,
3462
- get: function () { return chunk4X7ITYP2_js.WorkflowBuilderProvider; }
3470
+ get: function () { return chunkE6ALKSGA_js.WorkflowBuilderProvider; }
3463
3471
  });
3464
3472
  Object.defineProperty(exports, "Workspace", {
3465
3473
  enumerable: true,
3466
- get: function () { return chunk4X7ITYP2_js.Workspace; }
3474
+ get: function () { return chunkE6ALKSGA_js.Workspace; }
3467
3475
  });
3468
3476
  Object.defineProperty(exports, "getCompatibleModels", {
3469
3477
  enumerable: true,
3470
- get: function () { return chunk4X7ITYP2_js.getCompatibleModels; }
3478
+ get: function () { return chunkE6ALKSGA_js.getCompatibleModels; }
3471
3479
  });
3472
3480
  Object.defineProperty(exports, "getDefaultFrameworkForModel", {
3473
3481
  enumerable: true,
3474
- get: function () { return chunk4X7ITYP2_js.getDefaultFrameworkForModel; }
3482
+ get: function () { return chunkE6ALKSGA_js.getDefaultFrameworkForModel; }
3475
3483
  });
3476
3484
  Object.defineProperty(exports, "getEntityBadgeColor", {
3477
3485
  enumerable: true,
3478
- get: function () { return chunk4X7ITYP2_js.getEntityBadgeColor; }
3486
+ get: function () { return chunkE6ALKSGA_js.getEntityBadgeColor; }
3479
3487
  });
3480
3488
  Object.defineProperty(exports, "getEntityGradient", {
3481
3489
  enumerable: true,
3482
- get: function () { return chunk4X7ITYP2_js.getEntityGradient; }
3490
+ get: function () { return chunkE6ALKSGA_js.getEntityGradient; }
3483
3491
  });
3484
3492
  Object.defineProperty(exports, "getEntityHandleColor", {
3485
3493
  enumerable: true,
3486
- get: function () { return chunk4X7ITYP2_js.getEntityHandleColor; }
3494
+ get: function () { return chunkE6ALKSGA_js.getEntityHandleColor; }
3487
3495
  });
3488
3496
  Object.defineProperty(exports, "getEntityIcon", {
3489
3497
  enumerable: true,
3490
- get: function () { return chunk4X7ITYP2_js.getEntityIcon; }
3498
+ get: function () { return chunkE6ALKSGA_js.getEntityIcon; }
3491
3499
  });
3492
3500
  Object.defineProperty(exports, "getEntityMinimapColor", {
3493
3501
  enumerable: true,
3494
- get: function () { return chunk4X7ITYP2_js.getEntityMinimapColor; }
3502
+ get: function () { return chunkE6ALKSGA_js.getEntityMinimapColor; }
3495
3503
  });
3496
3504
  Object.defineProperty(exports, "getFrameworkMeta", {
3497
3505
  enumerable: true,
3498
- get: function () { return chunk4X7ITYP2_js.getFrameworkMeta; }
3506
+ get: function () { return chunkE6ALKSGA_js.getFrameworkMeta; }
3507
+ });
3508
+ Object.defineProperty(exports, "getNodeExecutionAccent", {
3509
+ enumerable: true,
3510
+ get: function () { return chunkE6ALKSGA_js.getNodeExecutionAccent; }
3511
+ });
3512
+ Object.defineProperty(exports, "getNodeExecutionAccentRgb", {
3513
+ enumerable: true,
3514
+ get: function () { return chunkE6ALKSGA_js.getNodeExecutionAccentRgb; }
3499
3515
  });
3500
3516
  Object.defineProperty(exports, "isModelCompatibleWithFramework", {
3501
3517
  enumerable: true,
3502
- get: function () { return chunk4X7ITYP2_js.isModelCompatibleWithFramework; }
3518
+ get: function () { return chunkE6ALKSGA_js.isModelCompatibleWithFramework; }
3503
3519
  });
3504
3520
  Object.defineProperty(exports, "useModalStore", {
3505
3521
  enumerable: true,
3506
- get: function () { return chunk4X7ITYP2_js.useModalStore; }
3522
+ get: function () { return chunkE6ALKSGA_js.useModalStore; }
3507
3523
  });
3508
3524
  Object.defineProperty(exports, "useWorkflowBuilderClient", {
3509
3525
  enumerable: true,
3510
- get: function () { return chunk4X7ITYP2_js.useWorkflowBuilderClient; }
3526
+ get: function () { return chunkE6ALKSGA_js.useWorkflowBuilderClient; }
3511
3527
  });
3512
3528
  Object.defineProperty(exports, "useWorkflowBuilderClientOptional", {
3513
3529
  enumerable: true,
3514
- get: function () { return chunk4X7ITYP2_js.useWorkflowBuilderClientOptional; }
3530
+ get: function () { return chunkE6ALKSGA_js.useWorkflowBuilderClientOptional; }
3515
3531
  });
3516
3532
  Object.defineProperty(exports, "useWorkflowStore", {
3517
3533
  enumerable: true,
3518
- get: function () { return chunk4X7ITYP2_js.useWorkflowStore; }
3534
+ get: function () { return chunkE6ALKSGA_js.useWorkflowStore; }
3519
3535
  });
3520
3536
  Object.defineProperty(exports, "GraphNodeBadge", {
3521
3537
  enumerable: true,