@datatechsolutions/ui 3.14.0 → 3.15.1

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.
Files changed (93) hide show
  1. package/dist/astrlabe/index.js +108 -108
  2. package/dist/astrlabe/index.mjs +4 -4
  3. package/dist/astrlabe/workflow-canvas.js +4 -4
  4. package/dist/astrlabe/workflow-canvas.mjs +3 -3
  5. package/dist/{chunk-FHGWXWVZ.js → chunk-2JPS5OND.js} +45 -45
  6. package/dist/{chunk-FHGWXWVZ.js.map → chunk-2JPS5OND.js.map} +1 -1
  7. package/dist/{chunk-YFMMZHL5.js → chunk-2QZFKQP6.js} +26 -26
  8. package/dist/{chunk-YFMMZHL5.js.map → chunk-2QZFKQP6.js.map} +1 -1
  9. package/dist/{chunk-U7VMFQFN.mjs → chunk-3FOLXKVP.mjs} +4 -4
  10. package/dist/{chunk-U7VMFQFN.mjs.map → chunk-3FOLXKVP.mjs.map} +1 -1
  11. package/dist/{chunk-LJGPMMKB.js → chunk-435TRHC2.js} +72 -72
  12. package/dist/{chunk-LJGPMMKB.js.map → chunk-435TRHC2.js.map} +1 -1
  13. package/dist/{chunk-WE35EV7J.mjs → chunk-5QRU3KKV.mjs} +3 -3
  14. package/dist/{chunk-WE35EV7J.mjs.map → chunk-5QRU3KKV.mjs.map} +1 -1
  15. package/dist/{chunk-7SDB2VC2.js → chunk-6UUFPSAR.js} +4 -4
  16. package/dist/{chunk-7SDB2VC2.js.map → chunk-6UUFPSAR.js.map} +1 -1
  17. package/dist/{chunk-OTQXU4WG.mjs → chunk-7LIJTAIF.mjs} +8 -8
  18. package/dist/{chunk-OTQXU4WG.mjs.map → chunk-7LIJTAIF.mjs.map} +1 -1
  19. package/dist/{chunk-Q5TZTA6H.mjs → chunk-A5M7SPPG.mjs} +3 -3
  20. package/dist/{chunk-Q5TZTA6H.mjs.map → chunk-A5M7SPPG.mjs.map} +1 -1
  21. package/dist/{chunk-4HZ55YKZ.js → chunk-BN4BKFE2.js} +9 -9
  22. package/dist/{chunk-4HZ55YKZ.js.map → chunk-BN4BKFE2.js.map} +1 -1
  23. package/dist/{chunk-5SCZB5UI.js → chunk-C4UYEHPY.js} +84 -84
  24. package/dist/chunk-C4UYEHPY.js.map +1 -0
  25. package/dist/{chunk-AUCS2KF4.js → chunk-CPTHSYM2.js} +10 -10
  26. package/dist/{chunk-AUCS2KF4.js.map → chunk-CPTHSYM2.js.map} +1 -1
  27. package/dist/{chunk-PO66V2PN.mjs → chunk-EZVBRLQH.mjs} +3 -3
  28. package/dist/{chunk-PO66V2PN.mjs.map → chunk-EZVBRLQH.mjs.map} +1 -1
  29. package/dist/{chunk-T7DROKWJ.mjs → chunk-F3PQ5EFQ.mjs} +3 -3
  30. package/dist/{chunk-T7DROKWJ.mjs.map → chunk-F3PQ5EFQ.mjs.map} +1 -1
  31. package/dist/{chunk-ZE6U4N4Q.js → chunk-GD3YV46U.js} +36 -36
  32. package/dist/{chunk-ZE6U4N4Q.js.map → chunk-GD3YV46U.js.map} +1 -1
  33. package/dist/{chunk-5YCH7FHT.mjs → chunk-I6ULYJR4.mjs} +3 -3
  34. package/dist/{chunk-5YCH7FHT.mjs.map → chunk-I6ULYJR4.mjs.map} +1 -1
  35. package/dist/{chunk-Q2FUNDCP.mjs → chunk-JJUWZNJY.mjs} +3 -3
  36. package/dist/{chunk-Q2FUNDCP.mjs.map → chunk-JJUWZNJY.mjs.map} +1 -1
  37. package/dist/{chunk-ZIRD3X6G.js → chunk-KRS2CLPR.js} +139 -139
  38. package/dist/chunk-KRS2CLPR.js.map +1 -0
  39. package/dist/{chunk-FZUV7GNB.js → chunk-KZDABEML.js} +41 -41
  40. package/dist/{chunk-FZUV7GNB.js.map → chunk-KZDABEML.js.map} +1 -1
  41. package/dist/{chunk-33ZWFDVG.mjs → chunk-MSXJFWKD.mjs} +17 -17
  42. package/dist/chunk-MSXJFWKD.mjs.map +1 -0
  43. package/dist/{chunk-HQNIETHV.mjs → chunk-NNR44MM5.mjs} +7 -7
  44. package/dist/{chunk-HQNIETHV.mjs.map → chunk-NNR44MM5.mjs.map} +1 -1
  45. package/dist/{chunk-72XZ7DSF.js → chunk-NQCFGIWC.js} +13 -13
  46. package/dist/{chunk-72XZ7DSF.js.map → chunk-NQCFGIWC.js.map} +1 -1
  47. package/dist/{chunk-NIZSQJRW.js → chunk-OQM252SM.js} +30 -30
  48. package/dist/{chunk-NIZSQJRW.js.map → chunk-OQM252SM.js.map} +1 -1
  49. package/dist/{chunk-2II2NLAZ.js → chunk-PADXORD2.js} +34 -34
  50. package/dist/{chunk-2II2NLAZ.js.map → chunk-PADXORD2.js.map} +1 -1
  51. package/dist/{chunk-N6SGVUTR.mjs → chunk-PSS3E463.mjs} +3 -3
  52. package/dist/{chunk-N6SGVUTR.mjs.map → chunk-PSS3E463.mjs.map} +1 -1
  53. package/dist/{chunk-F4KHAKTP.mjs → chunk-QCGSE24W.mjs} +41 -41
  54. package/dist/{chunk-F4KHAKTP.mjs.map → chunk-QCGSE24W.mjs.map} +1 -1
  55. package/dist/{chunk-7NHJSD4A.mjs → chunk-RH6Z425K.mjs} +6 -6
  56. package/dist/{chunk-7NHJSD4A.mjs.map → chunk-RH6Z425K.mjs.map} +1 -1
  57. package/dist/{chunk-WTSMTLSP.mjs → chunk-SMUBE3RO.mjs} +11 -11
  58. package/dist/chunk-SMUBE3RO.mjs.map +1 -0
  59. package/dist/{chunk-PXGESUKI.js → chunk-WG26KW6D.js} +36 -36
  60. package/dist/{chunk-PXGESUKI.js.map → chunk-WG26KW6D.js.map} +1 -1
  61. package/dist/{chunk-NXWIT4YQ.mjs → chunk-WGS65S7S.mjs} +3 -3
  62. package/dist/{chunk-NXWIT4YQ.mjs.map → chunk-WGS65S7S.mjs.map} +1 -1
  63. package/dist/{chunk-4P72IJOM.js → chunk-XJJZ6DHE.js} +4 -4
  64. package/dist/{chunk-4P72IJOM.js.map → chunk-XJJZ6DHE.js.map} +1 -1
  65. package/dist/index.js +664 -664
  66. package/dist/index.mjs +2 -2
  67. package/dist/platform/admin/index.js +10 -10
  68. package/dist/platform/admin/index.mjs +4 -4
  69. package/dist/platform/agents-workspace.js +7 -7
  70. package/dist/platform/agents-workspace.mjs +6 -6
  71. package/dist/platform/app-shell.js +4 -4
  72. package/dist/platform/app-shell.mjs +3 -3
  73. package/dist/platform/auth/index.js +22 -22
  74. package/dist/platform/auth/index.mjs +4 -4
  75. package/dist/platform/billing/index.js +4 -4
  76. package/dist/platform/billing/index.mjs +3 -3
  77. package/dist/platform/impersonation/index.js +4 -4
  78. package/dist/platform/impersonation/index.mjs +3 -3
  79. package/dist/platform/index.js +78 -78
  80. package/dist/platform/index.mjs +18 -18
  81. package/dist/platform/pages/index.js +1485 -1554
  82. package/dist/platform/pages/index.js.map +1 -1
  83. package/dist/platform/pages/index.mjs +1270 -1339
  84. package/dist/platform/pages/index.mjs.map +1 -1
  85. package/dist/platform/settings/index.js +7 -7
  86. package/dist/platform/settings/index.mjs +6 -6
  87. package/dist/platform/workflow-canvas-shell.js +5 -5
  88. package/dist/platform/workflow-canvas-shell.mjs +4 -4
  89. package/package.json +1 -1
  90. package/dist/chunk-33ZWFDVG.mjs.map +0 -1
  91. package/dist/chunk-5SCZB5UI.js.map +0 -1
  92. package/dist/chunk-WTSMTLSP.mjs.map +0 -1
  93. package/dist/chunk-ZIRD3X6G.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunk5SCZB5UI_js = require('./chunk-5SCZB5UI.js');
5
- var chunkFZUV7GNB_js = require('./chunk-FZUV7GNB.js');
4
+ var chunkC4UYEHPY_js = require('./chunk-C4UYEHPY.js');
5
+ var chunkKZDABEML_js = require('./chunk-KZDABEML.js');
6
6
  var chunkY5VN4SPH_js = require('./chunk-Y5VN4SPH.js');
7
7
  var chunkMXQ2EYG2_js = require('./chunk-MXQ2EYG2.js');
8
8
  var chunk72SWXOD5_js = require('./chunk-72SWXOD5.js');
@@ -41,11 +41,11 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
41
41
  const isCompact = data.displayMode === "compact";
42
42
  if (!config) {
43
43
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
44
- /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.NodeRunningIndicator, { nodeId: id }),
45
- /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
46
- /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
47
- /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.NodeCard, { variant: "error", nodeType: "model_provider", width: "w-[280px]", children: /* @__PURE__ */ jsxRuntime.jsx(
48
- chunk5SCZB5UI_js.NodeCardHeader,
44
+ /* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_js.NodeRunningIndicator, { nodeId: id }),
45
+ /* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-slate-400 dark:!bg-slate-500" }),
46
+ /* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_js.WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-slate-400 dark:!bg-slate-500" }),
47
+ /* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_js.NodeCard, { variant: "error", nodeType: "model_provider", width: "w-[280px]", children: /* @__PURE__ */ jsxRuntime.jsx(
48
+ chunkC4UYEHPY_js.NodeCardHeader,
49
49
  {
50
50
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.ExclamationTriangleIcon, { className: "h-6 w-6 text-white" }),
51
51
  title: data.label || "Model Provider",
@@ -53,8 +53,8 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
53
53
  iconClassName: "flex h-11 w-11 items-center justify-center rounded-xl bg-gradient-to-br from-amber-400 to-orange-500 shadow-lg"
54
54
  }
55
55
  ) }),
56
- /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-slate-500" }),
57
- /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.WorkflowHandle, { type: "source", position: react$1.Position.Bottom, id: "bottom-out", colorClass: "!bg-slate-500" })
56
+ /* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-slate-500" }),
57
+ /* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_js.WorkflowHandle, { type: "source", position: react$1.Position.Bottom, id: "bottom-out", colorClass: "!bg-slate-500" })
58
58
  ] });
59
59
  }
60
60
  const providerLabel = PROVIDER_TYPE_LABELS[config.providerType] ?? config.providerType;
@@ -63,18 +63,18 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
63
63
  const isConfigured = !!(config.credentialRef || config.apiKeyRef);
64
64
  const logo = PROVIDER_LOGOS[config.providerType];
65
65
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
66
- /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.NodeRunningIndicator, { nodeId: id }),
67
- /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
68
- /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
66
+ /* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_js.NodeRunningIndicator, { nodeId: id }),
67
+ /* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-slate-400 dark:!bg-slate-500" }),
68
+ /* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_js.WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-slate-400 dark:!bg-slate-500" }),
69
69
  /* @__PURE__ */ jsxRuntime.jsx(
70
70
  "button",
71
71
  {
72
72
  type: "button",
73
73
  onClick: () => data.onEdit?.(id),
74
74
  className: "w-full text-left",
75
- children: /* @__PURE__ */ jsxRuntime.jsxs(chunk5SCZB5UI_js.NodeCard, { compact: isCompact, selected, nodeType: "model_provider", width: "w-[280px]", children: [
75
+ children: /* @__PURE__ */ jsxRuntime.jsxs(chunkC4UYEHPY_js.NodeCard, { compact: isCompact, selected, nodeType: "model_provider", width: "w-[280px]", children: [
76
76
  /* @__PURE__ */ jsxRuntime.jsx(
77
- chunk5SCZB5UI_js.NodeCardHeader,
77
+ chunkC4UYEHPY_js.NodeCardHeader,
78
78
  {
79
79
  icon: logo ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: logo, alt: providerLabel, className: "h-6 w-6 object-contain", loading: "lazy" }) : /* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-6 w-6 text-white" }),
80
80
  title: displayName,
@@ -82,7 +82,7 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
82
82
  iconClassName: `flex h-11 w-11 items-center justify-center rounded-xl shadow-lg ${logo ? "bg-white/10 dark:bg-white/5 p-2" : "bg-gradient-to-br from-slate-600 to-slate-700 p-1.5"}`
83
83
  }
84
84
  ),
85
- /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.NodeCardMeta, { compact: isCompact, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [
85
+ /* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_js.NodeCardMeta, { compact: isCompact, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [
86
86
  /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Badge, { color: "zinc", size: "xs", children: providerLabel }),
87
87
  regionLabel && /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Badge, { color: "zinc", size: "xs", children: regionLabel }),
88
88
  /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Badge, { color: isConfigured ? "green" : "amber", size: "xs", children: isConfigured ? "Configured" : "Setup needed" }),
@@ -94,8 +94,8 @@ var ModelProviderFlowNode = react.memo(function ModelProviderFlowNode2({ id, dat
94
94
  ] })
95
95
  }
96
96
  ),
97
- /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-slate-500" }),
98
- /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.WorkflowHandle, { type: "source", position: react$1.Position.Bottom, id: "bottom-out", colorClass: "!bg-slate-500" })
97
+ /* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-slate-500" }),
98
+ /* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_js.WorkflowHandle, { type: "source", position: react$1.Position.Bottom, id: "bottom-out", colorClass: "!bg-slate-500" })
99
99
  ] });
100
100
  });
101
101
  var S3WriteFlowNode = react.memo(function S3WriteFlowNode2({ id, data, selected }) {
@@ -104,10 +104,10 @@ var S3WriteFlowNode = react.memo(function S3WriteFlowNode2({ id, data, selected
104
104
  const isCompact = data.displayMode === "compact";
105
105
  const keyPreview = config.key ? config.key.slice(0, 30) : "";
106
106
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
107
- /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.NodeRunningIndicator, { nodeId: id }),
108
- /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-cyan-500" }),
107
+ /* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_js.NodeRunningIndicator, { nodeId: id }),
108
+ /* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-cyan-500" }),
109
109
  /* @__PURE__ */ jsxRuntime.jsxs(
110
- chunk5SCZB5UI_js.NodeInteractiveCard,
110
+ chunkC4UYEHPY_js.NodeInteractiveCard,
111
111
  {
112
112
  nodeId: id,
113
113
  onEdit,
@@ -116,27 +116,27 @@ var S3WriteFlowNode = react.memo(function S3WriteFlowNode2({ id, data, selected
116
116
  nodeType: "s3_write",
117
117
  children: [
118
118
  /* @__PURE__ */ jsxRuntime.jsx(
119
- chunk5SCZB5UI_js.NodeCardHeader,
119
+ chunkC4UYEHPY_js.NodeCardHeader,
120
120
  {
121
- icon: /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.NodeIconBubble, { tone: "s3_write", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CloudArrowUpIcon, { className: "h-5 w-5 text-white" }) }),
121
+ icon: /* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_js.NodeIconBubble, { tone: "s3_write", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CloudArrowUpIcon, { className: "h-5 w-5 text-white" }) }),
122
122
  title: label,
123
123
  description: t("s3WriteNodeDescription"),
124
124
  compact: isCompact,
125
125
  iconClassName: ""
126
126
  }
127
127
  ),
128
- /* @__PURE__ */ jsxRuntime.jsxs(chunk5SCZB5UI_js.NodeCardMeta, { compact: isCompact, children: [
128
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkC4UYEHPY_js.NodeCardMeta, { compact: isCompact, children: [
129
129
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
130
- /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.NodeCardBadge, { tone: "s3_write", children: t("s3WriteNode") }),
131
- config.bucket && /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.NodeCardBadge, { tone: "s3_write", soft: true, children: config.bucket }),
130
+ /* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_js.NodeCardBadge, { tone: "s3_write", children: t("s3WriteNode") }),
131
+ config.bucket && /* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_js.NodeCardBadge, { tone: "s3_write", soft: true, children: config.bucket }),
132
132
  keyPreview && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: keyPreview })
133
133
  ] }),
134
- /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.NodeCardDeleteAction, { nodeId: id, onDelete })
134
+ /* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_js.NodeCardDeleteAction, { nodeId: id, onDelete })
135
135
  ] })
136
136
  ]
137
137
  }
138
138
  ),
139
- /* @__PURE__ */ jsxRuntime.jsx(chunk5SCZB5UI_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-cyan-500" })
139
+ /* @__PURE__ */ jsxRuntime.jsx(chunkC4UYEHPY_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-cyan-500" })
140
140
  ] });
141
141
  });
142
142
  function AnthropicModelIcon({ className }) {
@@ -287,7 +287,7 @@ function FieldEditor({
287
287
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-xl border border-slate-200 bg-slate-50/60 p-3 dark:border-slate-700 dark:bg-slate-900/40", children: [
288
288
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[1fr_140px_auto_auto] items-end gap-2", children: [
289
289
  /* @__PURE__ */ jsxRuntime.jsx(
290
- chunkFZUV7GNB_js.FormInput,
290
+ chunkKZDABEML_js.FormInput,
291
291
  {
292
292
  label: "Name",
293
293
  value: field.name,
@@ -296,7 +296,7 @@ function FieldEditor({
296
296
  }
297
297
  ),
298
298
  /* @__PURE__ */ jsxRuntime.jsx(
299
- chunkFZUV7GNB_js.FormSelect,
299
+ chunkKZDABEML_js.FormSelect,
300
300
  {
301
301
  label: "Type",
302
302
  value: field.type,
@@ -319,7 +319,7 @@ function FieldEditor({
319
319
  /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Button, { type: "button", plain: true, onClick: onRemove, children: "Remove" })
320
320
  ] }),
321
321
  /* @__PURE__ */ jsxRuntime.jsx(
322
- chunkFZUV7GNB_js.FormInput,
322
+ chunkKZDABEML_js.FormInput,
323
323
  {
324
324
  label: "Description (optional)",
325
325
  value: field.description,
@@ -612,13 +612,13 @@ function AgentCapabilityCard({ elo, setElo, models, selectedModelId, setSelected
612
612
  ] });
613
613
  }
614
614
  function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFramework, setSelectedFramework, markDirty, connectedProviderTypes }) {
615
- const frameworkKeys = Object.keys(chunk5SCZB5UI_js.FRAMEWORK_META);
615
+ const frameworkKeys = Object.keys(chunkC4UYEHPY_js.FRAMEWORK_META);
616
616
  const hasProviderConstraints = connectedProviderTypes.length > 0;
617
- const compatibleModels = chunk5SCZB5UI_js.getCompatibleModels(models, selectedFramework);
617
+ const compatibleModels = chunkC4UYEHPY_js.getCompatibleModels(models, selectedFramework);
618
618
  const handleFrameworkChange = react.useCallback((newFramework) => {
619
619
  setSelectedFramework(newFramework);
620
- if (!chunk5SCZB5UI_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
621
- const compatible = chunk5SCZB5UI_js.getCompatibleModels(models, newFramework);
620
+ if (!chunkC4UYEHPY_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
621
+ const compatible = chunkC4UYEHPY_js.getCompatibleModels(models, newFramework);
622
622
  if (compatible.length > 0) {
623
623
  setSelectedModelId(compatible[0].id);
624
624
  }
@@ -629,10 +629,10 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
629
629
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
630
630
  /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-2 block text-xs font-medium text-slate-500 dark:text-slate-400", children: t("agentDrawer.framework") }),
631
631
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1.5", children: frameworkKeys.map((key) => {
632
- const meta = chunk5SCZB5UI_js.FRAMEWORK_META[key];
632
+ const meta = chunkC4UYEHPY_js.FRAMEWORK_META[key];
633
633
  const isSelected = key === selectedFramework;
634
- const compatCount = chunk5SCZB5UI_js.getCompatibleModels(models, key).length;
635
- const isCompatibleWithProviders = !hasProviderConstraints || chunk5SCZB5UI_js.isFrameworkCompatibleWithProviders(key, connectedProviderTypes);
634
+ const compatCount = chunkC4UYEHPY_js.getCompatibleModels(models, key).length;
635
+ const isCompatibleWithProviders = !hasProviderConstraints || chunkC4UYEHPY_js.isFrameworkCompatibleWithProviders(key, connectedProviderTypes);
636
636
  return /* @__PURE__ */ jsxRuntime.jsxs(
637
637
  "button",
638
638
  {
@@ -664,10 +664,10 @@ function ConfigTab({ models, t, selectedModelId, setSelectedModelId, selectedFra
664
664
  ] }),
665
665
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-2", children: models.map((model) => {
666
666
  const isSelected = model.id === selectedModelId;
667
- const isCompatible = chunk5SCZB5UI_js.isModelCompatibleWithFramework(model.id, selectedFramework);
667
+ const isCompatible = chunkC4UYEHPY_js.isModelCompatibleWithFramework(model.id, selectedFramework);
668
668
  const { IconComponent, color, providerLabel } = getModelIcon(model.id);
669
669
  return /* @__PURE__ */ jsxRuntime.jsx(
670
- chunkFZUV7GNB_js.SelectionCard,
670
+ chunkKZDABEML_js.SelectionCard,
671
671
  {
672
672
  selected: isSelected,
673
673
  onClick: () => {
@@ -818,7 +818,7 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
818
818
  ] }),
819
819
  tool.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: tool.description }),
820
820
  tool.compatibleFrameworks && tool.compatibleFrameworks.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-1 flex flex-wrap gap-0.5", children: tool.compatibleFrameworks.map((framework) => {
821
- const meta = chunk5SCZB5UI_js.getFrameworkMeta(framework);
821
+ const meta = chunkC4UYEHPY_js.getFrameworkMeta(framework);
822
822
  const isCurrentFw = framework === agentFramework;
823
823
  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-slate-100 text-slate-500 dark:bg-white/5 dark:text-slate-400"}`, children: [
824
824
  /* @__PURE__ */ jsxRuntime.jsx(meta.IconComponent, { className: "h-2.5 w-2.5" }),
@@ -835,7 +835,7 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
835
835
  event.stopPropagation();
836
836
  },
837
837
  children: /* @__PURE__ */ jsxRuntime.jsx(
838
- chunkFZUV7GNB_js.ToggleSwitch,
838
+ chunkKZDABEML_js.ToggleSwitch,
839
839
  {
840
840
  checked: isEnabled,
841
841
  onChange: () => onToggle(tool.agentToolId),
@@ -883,7 +883,7 @@ function EngineTab({
883
883
  const compatibleProviders = findCompatibleProviders(selectedModelId, modelProviders);
884
884
  const configuredCompatible = compatibleProviders.filter((p) => p.configured);
885
885
  const effectiveProvider = compatibleProviders.find((p) => p.id === selectedProviderId) ?? configuredCompatible[0] ?? compatibleProviders[0];
886
- const frameworkMeta = chunk5SCZB5UI_js.getFrameworkMeta(selectedFramework);
886
+ const frameworkMeta = chunkC4UYEHPY_js.getFrameworkMeta(selectedFramework);
887
887
  const inputCard = "liquid-surface w-full rounded-lg px-3 py-1.5 text-sm text-slate-800 outline-none transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1 dark:text-slate-200";
888
888
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-5", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "overflow-hidden rounded-2xl border border-indigo-500/20 bg-gradient-to-b from-indigo-500/[0.04] via-violet-500/[0.03] to-purple-500/[0.04] dark:border-indigo-400/20 dark:from-indigo-500/[0.10] dark:via-violet-500/[0.06] dark:to-purple-500/[0.08]", children: [
889
889
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 pb-3 pt-4", children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -1022,9 +1022,9 @@ function EngineTab({
1022
1022
  }
1023
1023
  function AgentModal({ onSaved, onPersist }) {
1024
1024
  const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
1025
- const activeModal = chunk5SCZB5UI_js.useModalStore((s) => s.activeModal);
1026
- const agentData = chunk5SCZB5UI_js.useModalStore((s) => s.agentData);
1027
- const closeModal = chunk5SCZB5UI_js.useModalStore((s) => s.closeModal);
1025
+ const activeModal = chunkC4UYEHPY_js.useModalStore((s) => s.activeModal);
1026
+ const agentData = chunkC4UYEHPY_js.useModalStore((s) => s.agentData);
1027
+ const closeModal = chunkC4UYEHPY_js.useModalStore((s) => s.closeModal);
1028
1028
  const open = activeModal === "agent";
1029
1029
  const agent = agentData?.agent ?? null;
1030
1030
  const models = agentData?.models ?? [];
@@ -1172,7 +1172,7 @@ function AgentModal({ onSaved, onPersist }) {
1172
1172
  const fieldLabel = "text-[9px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400";
1173
1173
  const avatarInitial = (displayName || agent.name).charAt(0).toUpperCase();
1174
1174
  const avatarNode = /* @__PURE__ */ jsxRuntime.jsx(
1175
- chunkFZUV7GNB_js.Avatar,
1175
+ chunkKZDABEML_js.Avatar,
1176
1176
  {
1177
1177
  src: effectiveAvatarUrl || void 0,
1178
1178
  alt: displayName || agent.name,
@@ -1184,7 +1184,7 @@ function AgentModal({ onSaved, onPersist }) {
1184
1184
  const statusPill = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
1185
1185
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: `text-[9px] font-semibold ${status === "active" ? "text-emerald-600 dark:text-emerald-400" : "text-slate-500"}`, children: status === "active" ? t("agentDrawer.statusActive", { _: "Active" }) : t("agentDrawer.statusInactive", { _: "Inactive" }) }),
1186
1186
  /* @__PURE__ */ jsxRuntime.jsx(
1187
- chunkFZUV7GNB_js.ToggleSwitch,
1187
+ chunkKZDABEML_js.ToggleSwitch,
1188
1188
  {
1189
1189
  size: "sm",
1190
1190
  color: "green",
@@ -1198,7 +1198,7 @@ function AgentModal({ onSaved, onPersist }) {
1198
1198
  )
1199
1199
  ] });
1200
1200
  const identityCard = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "liquid-surface rounded-2xl p-3 ring-1 ring-slate-200/50 dark:ring-white/10", children: /* @__PURE__ */ jsxRuntime.jsx(
1201
- chunkFZUV7GNB_js.HeroBlock,
1201
+ chunkKZDABEML_js.HeroBlock,
1202
1202
  {
1203
1203
  icon: avatarNode,
1204
1204
  iconBackground: "none",
@@ -1261,7 +1261,7 @@ function AgentModal({ onSaved, onPersist }) {
1261
1261
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: `font-medium ${autosaveColor}`, children: autosaveLabel })
1262
1262
  ] });
1263
1263
  return /* @__PURE__ */ jsxRuntime.jsx(
1264
- chunkFZUV7GNB_js.GlassModal,
1264
+ chunkKZDABEML_js.GlassModal,
1265
1265
  {
1266
1266
  open,
1267
1267
  onClose: handleClose,
@@ -1278,7 +1278,7 @@ function AgentModal({ onSaved, onPersist }) {
1278
1278
  },
1279
1279
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
1280
1280
  /* @__PURE__ */ jsxRuntime.jsx(
1281
- chunkFZUV7GNB_js.SectionCard,
1281
+ chunkKZDABEML_js.SectionCard,
1282
1282
  {
1283
1283
  variant: "glass",
1284
1284
  padded: false,
@@ -1318,7 +1318,7 @@ function AgentModal({ onSaved, onPersist }) {
1318
1318
  }
1319
1319
  ),
1320
1320
  /* @__PURE__ */ jsxRuntime.jsx(
1321
- chunkFZUV7GNB_js.SectionCard,
1321
+ chunkKZDABEML_js.SectionCard,
1322
1322
  {
1323
1323
  variant: "glass",
1324
1324
  padded: false,
@@ -1346,7 +1346,7 @@ function AgentModal({ onSaved, onPersist }) {
1346
1346
  }
1347
1347
  ),
1348
1348
  /* @__PURE__ */ jsxRuntime.jsx(
1349
- chunkFZUV7GNB_js.SectionCard,
1349
+ chunkKZDABEML_js.SectionCard,
1350
1350
  {
1351
1351
  variant: "glass",
1352
1352
  padded: false,
@@ -1469,7 +1469,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1469
1469
  const markDirty = useSubworkflowStore((s) => s.markDirty);
1470
1470
  const markSaved = useSubworkflowStore((s) => s.markSaved);
1471
1471
  const closeModal = useSubworkflowStore((s) => s.closeModal);
1472
- const agentBehind = chunk5SCZB5UI_js.useModalStore((s) => s.activeModal === "agent" ? s.agentData?.agent?.name : null);
1472
+ const agentBehind = chunkC4UYEHPY_js.useModalStore((s) => s.activeModal === "agent" ? s.agentData?.agent?.name : null);
1473
1473
  const isCreateMode = !tool?.toolId;
1474
1474
  const initialGraph = react.useMemo(() => {
1475
1475
  const config = tool?.config;
@@ -1498,9 +1498,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1498
1498
  }, [tool, onSaved, name, category, description, timeoutMs, latestGraphRef, markSaved]);
1499
1499
  if (!tool) return null;
1500
1500
  const categoryKey = category ?? "external";
1501
- const gradient = tool.color ?? chunk5SCZB5UI_js.CATEGORY_COLORS[categoryKey] ?? chunk5SCZB5UI_js.CATEGORY_COLORS.external;
1502
- const categoryPill = chunk5SCZB5UI_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunk5SCZB5UI_js.CATEGORY_PILL_COLORS.external;
1503
- const IconComponent = chunk5SCZB5UI_js.ICON_MAP[tool.icon ?? ""] ?? outline.ArrowPathRoundedSquareIcon;
1501
+ const gradient = tool.color ?? chunkC4UYEHPY_js.CATEGORY_COLORS[categoryKey] ?? chunkC4UYEHPY_js.CATEGORY_COLORS.external;
1502
+ const categoryPill = chunkC4UYEHPY_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunkC4UYEHPY_js.CATEGORY_PILL_COLORS.external;
1503
+ const IconComponent = chunkC4UYEHPY_js.ICON_MAP[tool.icon ?? ""] ?? outline.ArrowPathRoundedSquareIcon;
1504
1504
  const graph = latestGraphRef.current;
1505
1505
  const startNode = graph.nodes.find((n) => n.type === "start");
1506
1506
  const endNode = graph.nodes.find((n) => n.type === "end");
@@ -1526,7 +1526,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1526
1526
  ] })
1527
1527
  ] });
1528
1528
  return /* @__PURE__ */ jsxRuntime.jsx(
1529
- chunkFZUV7GNB_js.GlassModal,
1529
+ chunkKZDABEML_js.GlassModal,
1530
1530
  {
1531
1531
  open,
1532
1532
  onClose: closeModal,
@@ -1558,7 +1558,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1558
1558
  {
1559
1559
  type: "button",
1560
1560
  onClick: () => setCategory(cat),
1561
- className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${chunk5SCZB5UI_js.CATEGORY_PILL_COLORS[cat] ?? chunk5SCZB5UI_js.CATEGORY_PILL_COLORS.external} ring-1 ring-current/20` : "bg-white/30 text-slate-500 hover:bg-white/50 dark:bg-white/5 dark:text-slate-400"}`,
1561
+ className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${chunkC4UYEHPY_js.CATEGORY_PILL_COLORS[cat] ?? chunkC4UYEHPY_js.CATEGORY_PILL_COLORS.external} ring-1 ring-current/20` : "bg-white/30 text-slate-500 hover:bg-white/50 dark:bg-white/5 dark:text-slate-400"}`,
1562
1562
  children: cat
1563
1563
  },
1564
1564
  cat
@@ -1646,7 +1646,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1646
1646
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto" })
1647
1647
  ] }),
1648
1648
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
1649
- chunk5SCZB5UI_js.WorkflowCanvas,
1649
+ chunkC4UYEHPY_js.WorkflowCanvas,
1650
1650
  {
1651
1651
  initialGraph,
1652
1652
  agents: [],
@@ -1662,9 +1662,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1662
1662
  }
1663
1663
  function PipelineSettingsModal({ onSave }) {
1664
1664
  const t = chunkY5VN4SPH_js.useTranslations("agents.workflow");
1665
- const activeModal = chunk5SCZB5UI_js.useModalStore((s) => s.activeModal);
1666
- const data = chunk5SCZB5UI_js.useModalStore((s) => s.pipelineSettingsData);
1667
- const closeModal = chunk5SCZB5UI_js.useModalStore((s) => s.closeModal);
1665
+ const activeModal = chunkC4UYEHPY_js.useModalStore((s) => s.activeModal);
1666
+ const data = chunkC4UYEHPY_js.useModalStore((s) => s.pipelineSettingsData);
1667
+ const closeModal = chunkC4UYEHPY_js.useModalStore((s) => s.closeModal);
1668
1668
  const open = activeModal === "pipeline-settings";
1669
1669
  const [nameValue, setNameValue] = react.useState("");
1670
1670
  const [descriptionValue, setDescriptionValue] = react.useState("");
@@ -1734,7 +1734,7 @@ function PipelineSettingsModal({ onSave }) {
1734
1734
  )
1735
1735
  ] });
1736
1736
  return /* @__PURE__ */ jsxRuntime.jsx(
1737
- chunkFZUV7GNB_js.GlassModal,
1737
+ chunkKZDABEML_js.GlassModal,
1738
1738
  {
1739
1739
  open,
1740
1740
  onClose: closeModal,
@@ -1757,7 +1757,7 @@ function PipelineSettingsModal({ onSave }) {
1757
1757
  },
1758
1758
  children: [
1759
1759
  /* @__PURE__ */ jsxRuntime.jsx(
1760
- chunkFZUV7GNB_js.FormInput,
1760
+ chunkKZDABEML_js.FormInput,
1761
1761
  {
1762
1762
  label: t("pipelineName"),
1763
1763
  value: nameValue,
@@ -1767,7 +1767,7 @@ function PipelineSettingsModal({ onSave }) {
1767
1767
  }
1768
1768
  ),
1769
1769
  /* @__PURE__ */ jsxRuntime.jsx(
1770
- chunkFZUV7GNB_js.FormTextarea,
1770
+ chunkKZDABEML_js.FormTextarea,
1771
1771
  {
1772
1772
  label: t("pipelineDescription"),
1773
1773
  value: descriptionValue,
@@ -1778,7 +1778,7 @@ function PipelineSettingsModal({ onSave }) {
1778
1778
  ),
1779
1779
  lifecycleAvailable && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1780
1780
  /* @__PURE__ */ jsxRuntime.jsx(
1781
- chunkFZUV7GNB_js.FormInput,
1781
+ chunkKZDABEML_js.FormInput,
1782
1782
  {
1783
1783
  label: t("pipelineSlug", { _: "Slug" }),
1784
1784
  value: slugValue,
@@ -1914,7 +1914,7 @@ function RunReplayModal({
1914
1914
  ] })
1915
1915
  ] });
1916
1916
  return /* @__PURE__ */ jsxRuntime.jsx(
1917
- chunkFZUV7GNB_js.GlassModal,
1917
+ chunkKZDABEML_js.GlassModal,
1918
1918
  {
1919
1919
  open,
1920
1920
  onClose,
@@ -1980,7 +1980,7 @@ function RowEditor({
1980
1980
  ]
1981
1981
  }
1982
1982
  ) : isJson ? /* @__PURE__ */ jsxRuntime.jsx(
1983
- chunkFZUV7GNB_js.FormTextarea,
1983
+ chunkKZDABEML_js.FormTextarea,
1984
1984
  {
1985
1985
  value: row.value,
1986
1986
  onValueChange: (v) => onChange({ value: v }),
@@ -1988,7 +1988,7 @@ function RowEditor({
1988
1988
  className: "font-mono"
1989
1989
  }
1990
1990
  ) : /* @__PURE__ */ jsxRuntime.jsx(
1991
- chunkFZUV7GNB_js.FormInput,
1991
+ chunkKZDABEML_js.FormInput,
1992
1992
  {
1993
1993
  type: row.kind === "number" ? "number" : "text",
1994
1994
  value: row.value,
@@ -2292,7 +2292,7 @@ function RuleConditionBuilder({ value, onChange, depth = 0 }) {
2292
2292
  };
2293
2293
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3 rounded-xl border border-slate-200 bg-slate-50/60 p-3 dark:border-slate-700 dark:bg-slate-900/40", children: [
2294
2294
  /* @__PURE__ */ jsxRuntime.jsx(
2295
- chunkFZUV7GNB_js.FormSelect,
2295
+ chunkKZDABEML_js.FormSelect,
2296
2296
  {
2297
2297
  label: "Operator",
2298
2298
  value: value.operator,
@@ -2315,7 +2315,7 @@ function SimpleEditor({
2315
2315
  const isTruthy = value.operator === "truthy";
2316
2316
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
2317
2317
  /* @__PURE__ */ jsxRuntime.jsx(
2318
- chunkFZUV7GNB_js.FormInput,
2318
+ chunkKZDABEML_js.FormInput,
2319
2319
  {
2320
2320
  label: "Field",
2321
2321
  hint: "Dotted reference into the variable pool \u2014 e.g. `parse-pricing.margin`, `inputs.category`",
@@ -2325,7 +2325,7 @@ function SimpleEditor({
2325
2325
  }
2326
2326
  ),
2327
2327
  !isTruthy && /* @__PURE__ */ jsxRuntime.jsx(
2328
- chunkFZUV7GNB_js.FormInput,
2328
+ chunkKZDABEML_js.FormInput,
2329
2329
  {
2330
2330
  label: "Value",
2331
2331
  hint: "Literal. Numeric operators coerce via `as f64`.",
@@ -2341,7 +2341,7 @@ function ThresholdEditor({
2341
2341
  }) {
2342
2342
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-3", children: [
2343
2343
  /* @__PURE__ */ jsxRuntime.jsx(
2344
- chunkFZUV7GNB_js.FormInput,
2344
+ chunkKZDABEML_js.FormInput,
2345
2345
  {
2346
2346
  label: "Field",
2347
2347
  value: value.field ?? "",
@@ -2350,7 +2350,7 @@ function ThresholdEditor({
2350
2350
  }
2351
2351
  ),
2352
2352
  /* @__PURE__ */ jsxRuntime.jsx(
2353
- chunkFZUV7GNB_js.FormSelect,
2353
+ chunkKZDABEML_js.FormSelect,
2354
2354
  {
2355
2355
  label: "Direction",
2356
2356
  value: value.comparison ?? "gte",
@@ -2364,7 +2364,7 @@ function ThresholdEditor({
2364
2364
  }
2365
2365
  ),
2366
2366
  /* @__PURE__ */ jsxRuntime.jsx(
2367
- chunkFZUV7GNB_js.FormInput,
2367
+ chunkKZDABEML_js.FormInput,
2368
2368
  {
2369
2369
  label: "Threshold",
2370
2370
  type: "number",
@@ -2381,7 +2381,7 @@ function RegexEditor({
2381
2381
  }) {
2382
2382
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
2383
2383
  /* @__PURE__ */ jsxRuntime.jsx(
2384
- chunkFZUV7GNB_js.FormInput,
2384
+ chunkKZDABEML_js.FormInput,
2385
2385
  {
2386
2386
  label: "Field",
2387
2387
  value: value.field ?? "",
@@ -2390,7 +2390,7 @@ function RegexEditor({
2390
2390
  }
2391
2391
  ),
2392
2392
  /* @__PURE__ */ jsxRuntime.jsx(
2393
- chunkFZUV7GNB_js.FormInput,
2393
+ chunkKZDABEML_js.FormInput,
2394
2394
  {
2395
2395
  label: "Pattern",
2396
2396
  hint: "Rust regex syntax \u2014 `(?i)` etc. supported.",
@@ -2418,7 +2418,7 @@ function TimeWindowEditor({
2418
2418
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
2419
2419
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
2420
2420
  /* @__PURE__ */ jsxRuntime.jsx(
2421
- chunkFZUV7GNB_js.FormSelect,
2421
+ chunkKZDABEML_js.FormSelect,
2422
2422
  {
2423
2423
  label: "Timezone",
2424
2424
  value: value.timezone ?? "UTC",
@@ -2427,7 +2427,7 @@ function TimeWindowEditor({
2427
2427
  }
2428
2428
  ),
2429
2429
  /* @__PURE__ */ jsxRuntime.jsx(
2430
- chunkFZUV7GNB_js.FormInput,
2430
+ chunkKZDABEML_js.FormInput,
2431
2431
  {
2432
2432
  label: "Timestamp field (optional)",
2433
2433
  hint: "Pulls a timestamp from the pool. Leave blank to use the run's wall-clock.",
@@ -2440,7 +2440,7 @@ function TimeWindowEditor({
2440
2440
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
2441
2441
  windows.map((win, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[1fr_1fr_auto] items-end gap-2 rounded-lg border border-slate-200 p-2 dark:border-slate-700", children: [
2442
2442
  /* @__PURE__ */ jsxRuntime.jsx(
2443
- chunkFZUV7GNB_js.FormInput,
2443
+ chunkKZDABEML_js.FormInput,
2444
2444
  {
2445
2445
  label: `Start (hour)`,
2446
2446
  type: "number",
@@ -2451,7 +2451,7 @@ function TimeWindowEditor({
2451
2451
  }
2452
2452
  ),
2453
2453
  /* @__PURE__ */ jsxRuntime.jsx(
2454
- chunkFZUV7GNB_js.FormInput,
2454
+ chunkKZDABEML_js.FormInput,
2455
2455
  {
2456
2456
  label: `End (hour)`,
2457
2457
  type: "number",
@@ -2486,7 +2486,7 @@ function BooleanGroupEditor({
2486
2486
  });
2487
2487
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
2488
2488
  /* @__PURE__ */ jsxRuntime.jsx(
2489
- chunkFZUV7GNB_js.FormSelect,
2489
+ chunkKZDABEML_js.FormSelect,
2490
2490
  {
2491
2491
  label: "Combinator",
2492
2492
  value: value.combinator ?? "and",
@@ -2542,7 +2542,7 @@ function RuleActionBuilder({ value, onChange }) {
2542
2542
  };
2543
2543
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3 rounded-xl border border-slate-200 bg-slate-50/60 p-3 dark:border-slate-700 dark:bg-slate-900/40", children: [
2544
2544
  /* @__PURE__ */ jsxRuntime.jsx(
2545
- chunkFZUV7GNB_js.FormSelect,
2545
+ chunkKZDABEML_js.FormSelect,
2546
2546
  {
2547
2547
  label: "Action type",
2548
2548
  value: type,
@@ -2552,7 +2552,7 @@ function RuleActionBuilder({ value, onChange }) {
2552
2552
  ),
2553
2553
  type === "adjust_price" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
2554
2554
  /* @__PURE__ */ jsxRuntime.jsx(
2555
- chunkFZUV7GNB_js.FormInput,
2555
+ chunkKZDABEML_js.FormInput,
2556
2556
  {
2557
2557
  label: "Multiplier",
2558
2558
  type: "number",
@@ -2562,7 +2562,7 @@ function RuleActionBuilder({ value, onChange }) {
2562
2562
  }
2563
2563
  ),
2564
2564
  /* @__PURE__ */ jsxRuntime.jsx(
2565
- chunkFZUV7GNB_js.FormInput,
2565
+ chunkKZDABEML_js.FormInput,
2566
2566
  {
2567
2567
  label: "Reason code",
2568
2568
  value: stringParam(params.reason),
@@ -2572,7 +2572,7 @@ function RuleActionBuilder({ value, onChange }) {
2572
2572
  )
2573
2573
  ] }),
2574
2574
  type === "enforce_min_margin" && /* @__PURE__ */ jsxRuntime.jsx(
2575
- chunkFZUV7GNB_js.FormInput,
2575
+ chunkKZDABEML_js.FormInput,
2576
2576
  {
2577
2577
  label: "Floor (fraction, e.g. 0.08)",
2578
2578
  type: "number",
@@ -2582,7 +2582,7 @@ function RuleActionBuilder({ value, onChange }) {
2582
2582
  }
2583
2583
  ),
2584
2584
  type === "realign_to_competitor" && /* @__PURE__ */ jsxRuntime.jsx(
2585
- chunkFZUV7GNB_js.FormInput,
2585
+ chunkKZDABEML_js.FormInput,
2586
2586
  {
2587
2587
  label: "Tolerance (fraction)",
2588
2588
  type: "number",
@@ -2592,7 +2592,7 @@ function RuleActionBuilder({ value, onChange }) {
2592
2592
  }
2593
2593
  ),
2594
2594
  type === "request_manager_approval" && /* @__PURE__ */ jsxRuntime.jsx(
2595
- chunkFZUV7GNB_js.FormInput,
2595
+ chunkKZDABEML_js.FormInput,
2596
2596
  {
2597
2597
  label: "Approval limit (fraction)",
2598
2598
  type: "number",
@@ -2602,7 +2602,7 @@ function RuleActionBuilder({ value, onChange }) {
2602
2602
  }
2603
2603
  ),
2604
2604
  type === "round_to" && /* @__PURE__ */ jsxRuntime.jsx(
2605
- chunkFZUV7GNB_js.FormInput,
2605
+ chunkKZDABEML_js.FormInput,
2606
2606
  {
2607
2607
  label: "Step (e.g. 0.009)",
2608
2608
  type: "number",
@@ -2613,7 +2613,7 @@ function RuleActionBuilder({ value, onChange }) {
2613
2613
  ),
2614
2614
  type === "alert" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
2615
2615
  /* @__PURE__ */ jsxRuntime.jsx(
2616
- chunkFZUV7GNB_js.FormInput,
2616
+ chunkKZDABEML_js.FormInput,
2617
2617
  {
2618
2618
  label: "Channel",
2619
2619
  value: stringParam(params.channel),
@@ -2622,7 +2622,7 @@ function RuleActionBuilder({ value, onChange }) {
2622
2622
  }
2623
2623
  ),
2624
2624
  /* @__PURE__ */ jsxRuntime.jsx(
2625
- chunkFZUV7GNB_js.FormInput,
2625
+ chunkKZDABEML_js.FormInput,
2626
2626
  {
2627
2627
  label: "Severity",
2628
2628
  value: stringParam(params.severity),
@@ -2660,7 +2660,7 @@ function CustomParamsEditor({
2660
2660
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
2661
2661
  entries.map(([key, value], index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[1fr_1fr_auto] items-end gap-2", children: [
2662
2662
  /* @__PURE__ */ jsxRuntime.jsx(
2663
- chunkFZUV7GNB_js.FormInput,
2663
+ chunkKZDABEML_js.FormInput,
2664
2664
  {
2665
2665
  label: "Key",
2666
2666
  value: key,
@@ -2668,7 +2668,7 @@ function CustomParamsEditor({
2668
2668
  }
2669
2669
  ),
2670
2670
  /* @__PURE__ */ jsxRuntime.jsx(
2671
- chunkFZUV7GNB_js.FormInput,
2671
+ chunkKZDABEML_js.FormInput,
2672
2672
  {
2673
2673
  label: "Value",
2674
2674
  value: String(value ?? ""),
@@ -2707,9 +2707,9 @@ function RuleForm({ value, onChange }) {
2707
2707
  );
2708
2708
  const update = (key, v) => onChange({ ...value, [key]: v });
2709
2709
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
2710
- /* @__PURE__ */ jsxRuntime.jsxs(chunkFZUV7GNB_js.FormGrid, { children: [
2710
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkKZDABEML_js.FormGrid, { children: [
2711
2711
  /* @__PURE__ */ jsxRuntime.jsx(
2712
- chunkFZUV7GNB_js.FormInput,
2712
+ chunkKZDABEML_js.FormInput,
2713
2713
  {
2714
2714
  label: "Name",
2715
2715
  required: true,
@@ -2718,7 +2718,7 @@ function RuleForm({ value, onChange }) {
2718
2718
  }
2719
2719
  ),
2720
2720
  /* @__PURE__ */ jsxRuntime.jsx(
2721
- chunkFZUV7GNB_js.FormInput,
2721
+ chunkKZDABEML_js.FormInput,
2722
2722
  {
2723
2723
  label: "Priority",
2724
2724
  type: "number",
@@ -2728,7 +2728,7 @@ function RuleForm({ value, onChange }) {
2728
2728
  }
2729
2729
  ),
2730
2730
  /* @__PURE__ */ jsxRuntime.jsx(
2731
- chunkFZUV7GNB_js.FormSelect,
2731
+ chunkKZDABEML_js.FormSelect,
2732
2732
  {
2733
2733
  label: "Enabled",
2734
2734
  value: value.enabled ? "true" : "false",
@@ -2740,7 +2740,7 @@ function RuleForm({ value, onChange }) {
2740
2740
  }
2741
2741
  ),
2742
2742
  /* @__PURE__ */ jsxRuntime.jsx(
2743
- chunkFZUV7GNB_js.FormTextarea,
2743
+ chunkKZDABEML_js.FormTextarea,
2744
2744
  {
2745
2745
  label: "Description",
2746
2746
  rows: 2,
@@ -2787,7 +2787,7 @@ function RuleForm({ value, onChange }) {
2787
2787
  ),
2788
2788
  showAdvanced && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-3 grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
2789
2789
  /* @__PURE__ */ jsxRuntime.jsx(
2790
- chunkFZUV7GNB_js.FormInput,
2790
+ chunkKZDABEML_js.FormInput,
2791
2791
  {
2792
2792
  label: "Valid from (ISO 8601)",
2793
2793
  type: "datetime-local",
@@ -2796,7 +2796,7 @@ function RuleForm({ value, onChange }) {
2796
2796
  }
2797
2797
  ),
2798
2798
  /* @__PURE__ */ jsxRuntime.jsx(
2799
- chunkFZUV7GNB_js.FormInput,
2799
+ chunkKZDABEML_js.FormInput,
2800
2800
  {
2801
2801
  label: "Valid until (ISO 8601)",
2802
2802
  type: "datetime-local",
@@ -2805,7 +2805,7 @@ function RuleForm({ value, onChange }) {
2805
2805
  }
2806
2806
  ),
2807
2807
  /* @__PURE__ */ jsxRuntime.jsx(
2808
- chunkFZUV7GNB_js.FormSelect,
2808
+ chunkKZDABEML_js.FormSelect,
2809
2809
  {
2810
2810
  label: "Status",
2811
2811
  value: value.status ?? "active",
@@ -2814,7 +2814,7 @@ function RuleForm({ value, onChange }) {
2814
2814
  }
2815
2815
  ),
2816
2816
  /* @__PURE__ */ jsxRuntime.jsx(
2817
- chunkFZUV7GNB_js.FormInput,
2817
+ chunkKZDABEML_js.FormInput,
2818
2818
  {
2819
2819
  label: "Tags (comma-separated)",
2820
2820
  value: (value.tags ?? []).join(", "),
@@ -3001,8 +3001,8 @@ function CollapsibleSection({ title, icon, colorClass, defaultOpen = true, count
3001
3001
  ] });
3002
3002
  }
3003
3003
  function LogicNodeItemCard({ item, translationFunction }) {
3004
- const IconComponent = chunk5SCZB5UI_js.LOGIC_ICON_MAP[item.nodeType];
3005
- const gradient = chunk5SCZB5UI_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-slate-400 to-slate-500";
3004
+ const IconComponent = chunkC4UYEHPY_js.LOGIC_ICON_MAP[item.nodeType];
3005
+ const gradient = chunkC4UYEHPY_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-slate-400 to-slate-500";
3006
3006
  const defaultConfig = chunk72SWXOD5_js.createDefaultLogicNodeConfig(item.nodeType);
3007
3007
  const configJson = defaultConfig ? JSON.stringify(defaultConfig) : void 0;
3008
3008
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -3073,7 +3073,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3073
3073
  [entityTypes, normalizedQuery]
3074
3074
  );
3075
3075
  const filteredLogicItems = react.useMemo(() => {
3076
- const visibleByDefault = LOGIC_NODE_ITEMS.filter((item) => !chunk5SCZB5UI_js.EXPERIMENTAL_NODE_TYPES.has(item.nodeType));
3076
+ const visibleByDefault = LOGIC_NODE_ITEMS.filter((item) => !chunkC4UYEHPY_js.EXPERIMENTAL_NODE_TYPES.has(item.nodeType));
3077
3077
  if (!normalizedQuery) return visibleByDefault;
3078
3078
  return visibleByDefault.filter(
3079
3079
  (item) => t(item.nameKey).toLowerCase().includes(normalizedQuery) || t(item.descriptionKey).toLowerCase().includes(normalizedQuery)
@@ -3209,7 +3209,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3209
3209
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-slate-400 dark:text-slate-500", children: tool.category })
3210
3210
  ] }),
3211
3211
  /* @__PURE__ */ jsxRuntime.jsx(
3212
- chunkFZUV7GNB_js.ToggleSwitch,
3212
+ chunkKZDABEML_js.ToggleSwitch,
3213
3213
  {
3214
3214
  checked: Boolean(tool.enabled),
3215
3215
  onChange: () => {
@@ -3250,7 +3250,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3250
3250
  ] })
3251
3251
  ] }),
3252
3252
  /* @__PURE__ */ jsxRuntime.jsx(
3253
- chunkFZUV7GNB_js.ToggleSwitch,
3253
+ chunkKZDABEML_js.ToggleSwitch,
3254
3254
  {
3255
3255
  checked: Boolean(rule.enabled),
3256
3256
  onChange: () => {
@@ -3286,8 +3286,8 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3286
3286
  limit: entity.defaultLimit
3287
3287
  });
3288
3288
  const dsLogo = getDatasourceLogo(entity.id);
3289
- const EntityIcon = chunk5SCZB5UI_js.getEntityIcon(entity.id);
3290
- const entityGradient = chunk5SCZB5UI_js.getEntityGradient(entity.id);
3289
+ const EntityIcon = chunkC4UYEHPY_js.getEntityIcon(entity.id);
3290
+ const entityGradient = chunkC4UYEHPY_js.getEntityGradient(entity.id);
3291
3291
  return /* @__PURE__ */ jsxRuntime.jsxs(
3292
3292
  "div",
3293
3293
  {
@@ -3307,7 +3307,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3307
3307
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
3308
3308
  /* @__PURE__ */ jsxRuntime.jsx(chunkMXQ2EYG2_js.Badge, { color: "zinc", size: "xs", children: "Read only" }),
3309
3309
  /* @__PURE__ */ jsxRuntime.jsx(
3310
- chunkFZUV7GNB_js.ToggleSwitch,
3310
+ chunkKZDABEML_js.ToggleSwitch,
3311
3311
  {
3312
3312
  checked: true,
3313
3313
  onChange: () => {
@@ -3393,14 +3393,14 @@ function WorkflowListBar({
3393
3393
  children: [
3394
3394
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
3395
3395
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
3396
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: `truncate text-sm font-medium ${isActive ? "text-indigo-700 dark:text-indigo-300" : "text-gray-700 dark:text-gray-300"}`, children: workflow.name }),
3396
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: `truncate text-sm font-medium ${isActive ? "text-indigo-700 dark:text-indigo-300" : "text-slate-700 dark:text-slate-300"}`, children: workflow.name }),
3397
3397
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "shrink-0 rounded-full bg-slate-500/15 px-1.5 py-0.5 text-[10px] font-medium text-slate-700 dark:bg-slate-500/20 dark:text-slate-300", children: [
3398
3398
  "v",
3399
3399
  workflow.version
3400
3400
  ] }),
3401
3401
  workflow.isDraft ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 rounded-full bg-amber-500/15 px-1.5 py-0.5 text-[10px] font-semibold text-amber-700 dark:bg-amber-500/20 dark:text-amber-300", children: tWorkflow("draftBadge") }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 rounded-full bg-emerald-500/15 px-1.5 py-0.5 text-[10px] font-semibold text-emerald-700 dark:bg-emerald-500/20 dark:text-emerald-300", children: tWorkflow("published") })
3402
3402
  ] }),
3403
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-[10px] text-gray-400 dark:text-gray-500", children: workflow.updatedAt ? formatRelativeTime(typeof workflow.updatedAt === "string" ? workflow.updatedAt : workflow.updatedAt.toISOString()) : "" })
3403
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-[10px] text-slate-400 dark:text-slate-500", children: workflow.updatedAt ? formatRelativeTime(typeof workflow.updatedAt === "string" ? workflow.updatedAt : workflow.updatedAt.toISOString()) : "" })
3404
3404
  ] }),
3405
3405
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-0.5 opacity-0 transition-opacity group-hover:opacity-100", children: [
3406
3406
  onConvertToSubworkflow && /* @__PURE__ */ jsxRuntime.jsx("div", { onClick: (event) => event.stopPropagation(), children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -3436,7 +3436,7 @@ function WorkflowListBar({
3436
3436
  {
3437
3437
  type: "button",
3438
3438
  onClick: onCreate,
3439
- className: "liquid-surface flex shrink-0 items-center gap-1.5 rounded-xl !border-dashed px-3 py-2 text-xs font-medium text-gray-500 transition-all hover:shadow-md hover:text-indigo-600 dark:text-gray-400 dark:hover:text-indigo-400",
3439
+ className: "liquid-surface flex shrink-0 items-center gap-1.5 rounded-xl !border-dashed px-3 py-2 text-xs font-medium text-slate-500 transition-all hover:shadow-md hover:text-indigo-600 dark:text-slate-400 dark:hover:text-indigo-400",
3440
3440
  children: [
3441
3441
  /* @__PURE__ */ jsxRuntime.jsx(outline.PlusIcon, { className: "h-3.5 w-3.5" }),
3442
3442
  tWorkflow("newWorkflow")
@@ -3632,9 +3632,9 @@ function formatDuration2(durationMs) {
3632
3632
  }
3633
3633
  function RunPanel({ open, onClose, onRun, onStop }) {
3634
3634
  const translations = chunkY5VN4SPH_js.useTranslations("agents.workflow.runPanel");
3635
- const nodes = chunk5SCZB5UI_js.useWorkflowStore((state) => state.nodes);
3636
- const isRunning = chunk5SCZB5UI_js.useWorkflowStore((state) => state.isRunning);
3637
- const nodeResults = chunk5SCZB5UI_js.useWorkflowStore((state) => state.nodeResults);
3635
+ const nodes = chunkC4UYEHPY_js.useWorkflowStore((state) => state.nodes);
3636
+ const isRunning = chunkC4UYEHPY_js.useWorkflowStore((state) => state.isRunning);
3637
+ const nodeResults = chunkC4UYEHPY_js.useWorkflowStore((state) => state.nodeResults);
3638
3638
  const startNode = nodes.find((node) => node.type === "start");
3639
3639
  const hasEndNode = nodes.some((node) => node.type === "end");
3640
3640
  const hasValidStartConfig = Boolean(
@@ -3968,8 +3968,8 @@ function inferVariables(config, nodeType) {
3968
3968
  }
3969
3969
  function VariableInspector({ open, onClose }) {
3970
3970
  const translations = chunkY5VN4SPH_js.useTranslations("agents.workflow.variableInspector");
3971
- const nodes = chunk5SCZB5UI_js.useWorkflowStore((state) => state.nodes);
3972
- const edges = chunk5SCZB5UI_js.useWorkflowStore((state) => state.edges);
3971
+ const nodes = chunkC4UYEHPY_js.useWorkflowStore((state) => state.nodes);
3972
+ const edges = chunkC4UYEHPY_js.useWorkflowStore((state) => state.edges);
3973
3973
  const [expandedNodes, setExpandedNodes] = react.useState(/* @__PURE__ */ new Set());
3974
3974
  const toggleNodeExpansion = react.useCallback((nodeId) => {
3975
3975
  setExpandedNodes((current) => {
@@ -4032,8 +4032,8 @@ function VariableInspector({ open, onClose }) {
4032
4032
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-slate-500 dark:text-slate-400", children: translations("noNodes") })
4033
4033
  ] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-slate-100 dark:divide-slate-800", children: nodeVariableEntries.map((entry) => {
4034
4034
  const isExpanded = expandedNodes.has(entry.nodeId);
4035
- const IconComponent = chunk5SCZB5UI_js.LOGIC_ICON_MAP[entry.nodeType];
4036
- const gradient = chunk5SCZB5UI_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-slate-400 to-slate-500";
4035
+ const IconComponent = chunkC4UYEHPY_js.LOGIC_ICON_MAP[entry.nodeType];
4036
+ const gradient = chunkC4UYEHPY_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-slate-400 to-slate-500";
4037
4037
  const inputVariables = entry.variables.filter((variable) => variable.direction === "input");
4038
4038
  const outputVariables = entry.variables.filter((variable) => variable.direction === "output");
4039
4039
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": `variable-node-${entry.nodeId}`, children: [
@@ -4099,7 +4099,7 @@ function RunInputDialog({
4099
4099
  onRun
4100
4100
  }) {
4101
4101
  const t = chunkY5VN4SPH_js.useTranslations("agents.workflow.runInputDialog");
4102
- const nodes = chunk5SCZB5UI_js.useWorkflowStore((state) => state.nodes);
4102
+ const nodes = chunkC4UYEHPY_js.useWorkflowStore((state) => state.nodes);
4103
4103
  const [values, setValues] = react.useState({});
4104
4104
  const inputVariableNames = react.useMemo(() => {
4105
4105
  const storeStartNode = nodes.find((node) => node.type === "start");
@@ -4126,7 +4126,7 @@ function RunInputDialog({
4126
4126
  }, [onClose]);
4127
4127
  if (!open) return null;
4128
4128
  return /* @__PURE__ */ jsxRuntime.jsxs(
4129
- chunkFZUV7GNB_js.GlassModal,
4129
+ chunkKZDABEML_js.GlassModal,
4130
4130
  {
4131
4131
  open,
4132
4132
  onClose: handleClose,
@@ -4137,7 +4137,7 @@ function RunInputDialog({
4137
4137
  /* @__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: [
4138
4138
  /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300", children: variableName }),
4139
4139
  /* @__PURE__ */ jsxRuntime.jsx(
4140
- chunkFZUV7GNB_js.Input,
4140
+ chunkKZDABEML_js.Input,
4141
4141
  {
4142
4142
  value: values[variableName] ?? "",
4143
4143
  onChange: (event) => handleValueChange(variableName, event.target.value),
@@ -4180,8 +4180,8 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
4180
4180
  const [isLoadingRuns, setIsLoadingRuns] = react.useState(false);
4181
4181
  const [selectedRun, setSelectedRun] = react.useState(null);
4182
4182
  const [selectedNode, setSelectedNode] = react.useState(null);
4183
- const isRunning = chunk5SCZB5UI_js.useWorkflowStore((state) => state.isRunning);
4184
- const nodeResults = chunk5SCZB5UI_js.useWorkflowStore((state) => state.nodeResults);
4183
+ const isRunning = chunkC4UYEHPY_js.useWorkflowStore((state) => state.isRunning);
4184
+ const nodeResults = chunkC4UYEHPY_js.useWorkflowStore((state) => state.nodeResults);
4185
4185
  const refreshRuns = react.useCallback(async () => {
4186
4186
  setIsLoadingRuns(true);
4187
4187
  try {
@@ -4360,7 +4360,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
4360
4360
  onAutoSaveGraph(graph);
4361
4361
  }, [onAutoSaveGraph, onGraphSnapshot]);
4362
4362
  return /* @__PURE__ */ jsxRuntime.jsx(
4363
- chunk5SCZB5UI_js.Workspace,
4363
+ chunkC4UYEHPY_js.Workspace,
4364
4364
  {
4365
4365
  ...workspaceProps,
4366
4366
  onGraphChange: handleGraphChange
@@ -4368,7 +4368,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
4368
4368
  );
4369
4369
  });
4370
4370
  function DynamicIslandConfirm2(props) {
4371
- return /* @__PURE__ */ jsxRuntime.jsx(chunkFZUV7GNB_js.DynamicIslandConfirm, { ...props });
4371
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkKZDABEML_js.DynamicIslandConfirm, { ...props });
4372
4372
  }
4373
4373
  var JSON_PREVIEW_LINE_LIMIT = 50;
4374
4374
  function DslExportModal({ open, onClose, workflow, graph }) {
@@ -4422,7 +4422,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
4422
4422
  }, [jsonString, workflow.name, workflow.version]);
4423
4423
  if (!open) return null;
4424
4424
  return /* @__PURE__ */ jsxRuntime.jsx(
4425
- chunkFZUV7GNB_js.GlassModal,
4425
+ chunkKZDABEML_js.GlassModal,
4426
4426
  {
4427
4427
  open,
4428
4428
  onClose,
@@ -4640,7 +4640,7 @@ function DslImportModal({ open, onClose, onImport }) {
4640
4640
  }, []);
4641
4641
  if (!open) return null;
4642
4642
  return /* @__PURE__ */ jsxRuntime.jsx(
4643
- chunkFZUV7GNB_js.GlassModal,
4643
+ chunkKZDABEML_js.GlassModal,
4644
4644
  {
4645
4645
  open,
4646
4646
  onClose,
@@ -4731,14 +4731,14 @@ function DslImportModal({ open, onClose, onImport }) {
4731
4731
  }
4732
4732
 
4733
4733
  // src/astrlabe/store/selectors.ts
4734
- var useCanUndo = () => chunk5SCZB5UI_js.useWorkflowStore((state) => state.past.length > 0);
4735
- var useCanRedo = () => chunk5SCZB5UI_js.useWorkflowStore((state) => state.future.length > 0);
4736
- var useHasCopied = () => chunk5SCZB5UI_js.useWorkflowStore((state) => state.clipboard !== null);
4737
- var useContextMenu = () => chunk5SCZB5UI_js.useWorkflowStore((state) => state.contextMenu);
4738
- var useEditingNodeId = () => chunk5SCZB5UI_js.useWorkflowStore((state) => state.editingNodeId);
4739
- var useSelectedNodeCount = () => chunk5SCZB5UI_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
4740
- var useIsRunning = () => chunk5SCZB5UI_js.useWorkflowStore((state) => state.isRunning);
4741
- var useNodeResults = () => chunk5SCZB5UI_js.useWorkflowStore((state) => state.nodeResults);
4734
+ var useCanUndo = () => chunkC4UYEHPY_js.useWorkflowStore((state) => state.past.length > 0);
4735
+ var useCanRedo = () => chunkC4UYEHPY_js.useWorkflowStore((state) => state.future.length > 0);
4736
+ var useHasCopied = () => chunkC4UYEHPY_js.useWorkflowStore((state) => state.clipboard !== null);
4737
+ var useContextMenu = () => chunkC4UYEHPY_js.useWorkflowStore((state) => state.contextMenu);
4738
+ var useEditingNodeId = () => chunkC4UYEHPY_js.useWorkflowStore((state) => state.editingNodeId);
4739
+ var useSelectedNodeCount = () => chunkC4UYEHPY_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
4740
+ var useIsRunning = () => chunkC4UYEHPY_js.useWorkflowStore((state) => state.isRunning);
4741
+ var useNodeResults = () => chunkC4UYEHPY_js.useWorkflowStore((state) => state.nodeResults);
4742
4742
  var DEFAULT_MAX_HISTORY = 50;
4743
4743
  function useUndoRedo(nodes, edges, setNodes, setEdges, maxHistory = DEFAULT_MAX_HISTORY) {
4744
4744
  const pastRef = react.useRef([]);
@@ -5062,5 +5062,5 @@ exports.useNodeResults = useNodeResults;
5062
5062
  exports.useSelectedNodeCount = useSelectedNodeCount;
5063
5063
  exports.useSubworkflowStore = useSubworkflowStore;
5064
5064
  exports.useUndoRedo = useUndoRedo;
5065
- //# sourceMappingURL=chunk-ZIRD3X6G.js.map
5066
- //# sourceMappingURL=chunk-ZIRD3X6G.js.map
5065
+ //# sourceMappingURL=chunk-KRS2CLPR.js.map
5066
+ //# sourceMappingURL=chunk-KRS2CLPR.js.map