@datatechsolutions/ui 3.8.0 → 3.9.0

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 (97) hide show
  1. package/dist/astrlabe/index.js +107 -107
  2. package/dist/astrlabe/index.mjs +3 -3
  3. package/dist/astrlabe/workflow-canvas.js +3 -3
  4. package/dist/astrlabe/workflow-canvas.mjs +2 -2
  5. package/dist/{chunk-KKXI7CPF.mjs → chunk-2E7HYTS7.mjs} +3 -3
  6. package/dist/{chunk-KKXI7CPF.mjs.map → chunk-2E7HYTS7.mjs.map} +1 -1
  7. package/dist/{chunk-EWYAM4WJ.mjs → chunk-2ZY3IQ2I.mjs} +3 -3
  8. package/dist/{chunk-EWYAM4WJ.mjs.map → chunk-2ZY3IQ2I.mjs.map} +1 -1
  9. package/dist/{chunk-VPFVW7ZF.js → chunk-6E2YH67A.js} +35 -35
  10. package/dist/{chunk-VPFVW7ZF.js.map → chunk-6E2YH67A.js.map} +1 -1
  11. package/dist/{chunk-A4A3SQTV.mjs → chunk-6QJI5YOJ.mjs} +3 -3
  12. package/dist/{chunk-A4A3SQTV.mjs.map → chunk-6QJI5YOJ.mjs.map} +1 -1
  13. package/dist/{chunk-3X3IYDG6.js → chunk-7AM2SXEF.js} +68 -68
  14. package/dist/{chunk-3X3IYDG6.js.map → chunk-7AM2SXEF.js.map} +1 -1
  15. package/dist/{chunk-H37VDL7Y.js → chunk-A2RIX2RK.js} +4 -4
  16. package/dist/{chunk-H37VDL7Y.js.map → chunk-A2RIX2RK.js.map} +1 -1
  17. package/dist/{chunk-32DHEVOH.mjs → chunk-ARLYOLSO.mjs} +3 -3
  18. package/dist/{chunk-32DHEVOH.mjs.map → chunk-ARLYOLSO.mjs.map} +1 -1
  19. package/dist/{chunk-5YVOLHSW.mjs → chunk-AXBD6OAF.mjs} +4 -4
  20. package/dist/{chunk-5YVOLHSW.mjs.map → chunk-AXBD6OAF.mjs.map} +1 -1
  21. package/dist/{chunk-ZP37M2QK.mjs → chunk-BWUFLW5W.mjs} +6 -6
  22. package/dist/{chunk-ZP37M2QK.mjs.map → chunk-BWUFLW5W.mjs.map} +1 -1
  23. package/dist/{chunk-HBOORO52.js → chunk-CLTNCBSP.js} +4 -4
  24. package/dist/{chunk-HBOORO52.js.map → chunk-CLTNCBSP.js.map} +1 -1
  25. package/dist/{chunk-F35GFICG.js → chunk-CRBGZA6Y.js} +13 -13
  26. package/dist/{chunk-F35GFICG.js.map → chunk-CRBGZA6Y.js.map} +1 -1
  27. package/dist/{chunk-7JZFNKJD.js → chunk-DQIEVLA3.js} +35 -35
  28. package/dist/{chunk-7JZFNKJD.js.map → chunk-DQIEVLA3.js.map} +1 -1
  29. package/dist/{chunk-57E4TCB2.mjs → chunk-EAIE4QGD.mjs} +3 -3
  30. package/dist/{chunk-57E4TCB2.mjs.map → chunk-EAIE4QGD.mjs.map} +1 -1
  31. package/dist/{chunk-5W6LMDXV.mjs → chunk-GQWC4EKE.mjs} +4 -4
  32. package/dist/{chunk-5W6LMDXV.mjs.map → chunk-GQWC4EKE.mjs.map} +1 -1
  33. package/dist/{chunk-FKUIVS6I.js → chunk-IVKFXPLO.js} +28 -28
  34. package/dist/{chunk-FKUIVS6I.js.map → chunk-IVKFXPLO.js.map} +1 -1
  35. package/dist/{chunk-FNA66TT4.js → chunk-MT66VKLS.js} +163 -219
  36. package/dist/chunk-MT66VKLS.js.map +1 -0
  37. package/dist/{chunk-74BU2EBZ.mjs → chunk-OEZ7GAJY.mjs} +6 -6
  38. package/dist/{chunk-74BU2EBZ.mjs.map → chunk-OEZ7GAJY.mjs.map} +1 -1
  39. package/dist/{chunk-CZZOCKEA.mjs → chunk-OVQ4MKCV.mjs} +3 -3
  40. package/dist/{chunk-CZZOCKEA.mjs.map → chunk-OVQ4MKCV.mjs.map} +1 -1
  41. package/dist/{chunk-WDBVIU7W.mjs → chunk-PD3JLDA5.mjs} +3 -3
  42. package/dist/{chunk-WDBVIU7W.mjs.map → chunk-PD3JLDA5.mjs.map} +1 -1
  43. package/dist/{chunk-TJPPZU77.js → chunk-R6GEJBFC.js} +34 -34
  44. package/dist/{chunk-TJPPZU77.js.map → chunk-R6GEJBFC.js.map} +1 -1
  45. package/dist/{chunk-Q4QORAMH.js → chunk-RFUSH7WD.js} +10 -10
  46. package/dist/{chunk-Q4QORAMH.js.map → chunk-RFUSH7WD.js.map} +1 -1
  47. package/dist/{chunk-VS6PTRQ7.mjs → chunk-SJ6SUS7H.mjs} +3 -3
  48. package/dist/{chunk-VS6PTRQ7.mjs.map → chunk-SJ6SUS7H.mjs.map} +1 -1
  49. package/dist/{chunk-E57RZXOR.js → chunk-T4IYOKHR.js} +25 -25
  50. package/dist/{chunk-E57RZXOR.js.map → chunk-T4IYOKHR.js.map} +1 -1
  51. package/dist/{chunk-3H5CFLVK.js → chunk-U6VFS3RD.js} +135 -135
  52. package/dist/{chunk-3H5CFLVK.js.map → chunk-U6VFS3RD.js.map} +1 -1
  53. package/dist/{chunk-RCHTRG7R.js → chunk-UZIICTIY.js} +55 -55
  54. package/dist/{chunk-RCHTRG7R.js.map → chunk-UZIICTIY.js.map} +1 -1
  55. package/dist/{chunk-TCP45Q4B.js → chunk-WJENX6KB.js} +9 -9
  56. package/dist/{chunk-TCP45Q4B.js.map → chunk-WJENX6KB.js.map} +1 -1
  57. package/dist/{chunk-PYNXIDG3.mjs → chunk-WS3IJFPW.mjs} +3 -3
  58. package/dist/{chunk-PYNXIDG3.mjs.map → chunk-WS3IJFPW.mjs.map} +1 -1
  59. package/dist/{chunk-Q7HRCCFT.js → chunk-ZDXEGSCF.js} +45 -45
  60. package/dist/{chunk-Q7HRCCFT.js.map → chunk-ZDXEGSCF.js.map} +1 -1
  61. package/dist/{chunk-PCUINUIC.mjs → chunk-ZQEMKEEH.mjs} +3 -3
  62. package/dist/{chunk-PCUINUIC.mjs.map → chunk-ZQEMKEEH.mjs.map} +1 -1
  63. package/dist/{chunk-E6C7MFHJ.mjs → chunk-ZQRUAXGP.mjs} +164 -218
  64. package/dist/chunk-ZQRUAXGP.mjs.map +1 -0
  65. package/dist/index.d.mts +43 -42
  66. package/dist/index.d.ts +43 -42
  67. package/dist/index.js +662 -670
  68. package/dist/index.mjs +1 -1
  69. package/dist/platform/admin/index.js +9 -9
  70. package/dist/platform/admin/index.mjs +3 -3
  71. package/dist/platform/agents-workspace.js +6 -6
  72. package/dist/platform/agents-workspace.mjs +5 -5
  73. package/dist/platform/app-shell.js +3 -3
  74. package/dist/platform/app-shell.mjs +2 -2
  75. package/dist/platform/auth/index.js +21 -21
  76. package/dist/platform/auth/index.mjs +3 -3
  77. package/dist/platform/billing/index.js +3 -3
  78. package/dist/platform/billing/index.mjs +2 -2
  79. package/dist/platform/impersonation/index.js +3 -3
  80. package/dist/platform/impersonation/index.mjs +2 -2
  81. package/dist/platform/index.d.mts +1 -1
  82. package/dist/platform/index.d.ts +1 -1
  83. package/dist/platform/index.js +74 -74
  84. package/dist/platform/index.mjs +17 -17
  85. package/dist/platform/pages/index.d.mts +93 -4
  86. package/dist/platform/pages/index.d.ts +93 -4
  87. package/dist/platform/pages/index.js +1009 -575
  88. package/dist/platform/pages/index.js.map +1 -1
  89. package/dist/platform/pages/index.mjs +805 -372
  90. package/dist/platform/pages/index.mjs.map +1 -1
  91. package/dist/platform/settings/index.js +6 -6
  92. package/dist/platform/settings/index.mjs +5 -5
  93. package/dist/platform/workflow-canvas-shell.js +4 -4
  94. package/dist/platform/workflow-canvas-shell.mjs +3 -3
  95. package/package.json +1 -1
  96. package/dist/chunk-E6C7MFHJ.mjs.map +0 -1
  97. package/dist/chunk-FNA66TT4.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunk3X3IYDG6_js = require('./chunk-3X3IYDG6.js');
5
- var chunkFNA66TT4_js = require('./chunk-FNA66TT4.js');
4
+ var chunk7AM2SXEF_js = require('./chunk-7AM2SXEF.js');
5
+ var chunkMT66VKLS_js = require('./chunk-MT66VKLS.js');
6
6
  var chunkYXN2K77G_js = require('./chunk-YXN2K77G.js');
7
7
  var chunkBHOT22QL_js = require('./chunk-BHOT22QL.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(chunk3X3IYDG6_js.NodeRunningIndicator, { nodeId: id }),
45
- /* @__PURE__ */ jsxRuntime.jsx(chunk3X3IYDG6_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
46
- /* @__PURE__ */ jsxRuntime.jsx(chunk3X3IYDG6_js.WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
47
- /* @__PURE__ */ jsxRuntime.jsx(chunk3X3IYDG6_js.NodeCard, { variant: "error", nodeType: "model_provider", width: "w-[280px]", children: /* @__PURE__ */ jsxRuntime.jsx(
48
- chunk3X3IYDG6_js.NodeCardHeader,
44
+ /* @__PURE__ */ jsxRuntime.jsx(chunk7AM2SXEF_js.NodeRunningIndicator, { nodeId: id }),
45
+ /* @__PURE__ */ jsxRuntime.jsx(chunk7AM2SXEF_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
46
+ /* @__PURE__ */ jsxRuntime.jsx(chunk7AM2SXEF_js.WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
47
+ /* @__PURE__ */ jsxRuntime.jsx(chunk7AM2SXEF_js.NodeCard, { variant: "error", nodeType: "model_provider", width: "w-[280px]", children: /* @__PURE__ */ jsxRuntime.jsx(
48
+ chunk7AM2SXEF_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(chunk3X3IYDG6_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-slate-500" }),
57
- /* @__PURE__ */ jsxRuntime.jsx(chunk3X3IYDG6_js.WorkflowHandle, { type: "source", position: react$1.Position.Bottom, id: "bottom-out", colorClass: "!bg-slate-500" })
56
+ /* @__PURE__ */ jsxRuntime.jsx(chunk7AM2SXEF_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-slate-500" }),
57
+ /* @__PURE__ */ jsxRuntime.jsx(chunk7AM2SXEF_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(chunk3X3IYDG6_js.NodeRunningIndicator, { nodeId: id }),
67
- /* @__PURE__ */ jsxRuntime.jsx(chunk3X3IYDG6_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
68
- /* @__PURE__ */ jsxRuntime.jsx(chunk3X3IYDG6_js.WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
66
+ /* @__PURE__ */ jsxRuntime.jsx(chunk7AM2SXEF_js.NodeRunningIndicator, { nodeId: id }),
67
+ /* @__PURE__ */ jsxRuntime.jsx(chunk7AM2SXEF_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-gray-400 dark:!bg-gray-500" }),
68
+ /* @__PURE__ */ jsxRuntime.jsx(chunk7AM2SXEF_js.WorkflowHandle, { type: "target", position: react$1.Position.Top, id: "top-in", colorClass: "!bg-gray-400 dark:!bg-gray-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(chunk3X3IYDG6_js.NodeCard, { compact: isCompact, selected, nodeType: "model_provider", width: "w-[280px]", children: [
75
+ children: /* @__PURE__ */ jsxRuntime.jsxs(chunk7AM2SXEF_js.NodeCard, { compact: isCompact, selected, nodeType: "model_provider", width: "w-[280px]", children: [
76
76
  /* @__PURE__ */ jsxRuntime.jsx(
77
- chunk3X3IYDG6_js.NodeCardHeader,
77
+ chunk7AM2SXEF_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(chunk3X3IYDG6_js.NodeCardMeta, { compact: isCompact, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [
85
+ /* @__PURE__ */ jsxRuntime.jsx(chunk7AM2SXEF_js.NodeCardMeta, { compact: isCompact, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [
86
86
  /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "zinc", size: "xs", children: providerLabel }),
87
87
  regionLabel && /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "zinc", size: "xs", children: regionLabel }),
88
88
  /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_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(chunk3X3IYDG6_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-slate-500" }),
98
- /* @__PURE__ */ jsxRuntime.jsx(chunk3X3IYDG6_js.WorkflowHandle, { type: "source", position: react$1.Position.Bottom, id: "bottom-out", colorClass: "!bg-slate-500" })
97
+ /* @__PURE__ */ jsxRuntime.jsx(chunk7AM2SXEF_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-slate-500" }),
98
+ /* @__PURE__ */ jsxRuntime.jsx(chunk7AM2SXEF_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(chunk3X3IYDG6_js.NodeRunningIndicator, { nodeId: id }),
108
- /* @__PURE__ */ jsxRuntime.jsx(chunk3X3IYDG6_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-cyan-500" }),
107
+ /* @__PURE__ */ jsxRuntime.jsx(chunk7AM2SXEF_js.NodeRunningIndicator, { nodeId: id }),
108
+ /* @__PURE__ */ jsxRuntime.jsx(chunk7AM2SXEF_js.WorkflowHandle, { type: "target", position: react$1.Position.Left, id: "left-in", colorClass: "!bg-cyan-500" }),
109
109
  /* @__PURE__ */ jsxRuntime.jsxs(
110
- chunk3X3IYDG6_js.NodeInteractiveCard,
110
+ chunk7AM2SXEF_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
- chunk3X3IYDG6_js.NodeCardHeader,
119
+ chunk7AM2SXEF_js.NodeCardHeader,
120
120
  {
121
- icon: /* @__PURE__ */ jsxRuntime.jsx(chunk3X3IYDG6_js.NodeIconBubble, { tone: "s3_write", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CloudArrowUpIcon, { className: "h-5 w-5 text-white" }) }),
121
+ icon: /* @__PURE__ */ jsxRuntime.jsx(chunk7AM2SXEF_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(chunk3X3IYDG6_js.NodeCardMeta, { compact: isCompact, children: [
128
+ /* @__PURE__ */ jsxRuntime.jsxs(chunk7AM2SXEF_js.NodeCardMeta, { compact: isCompact, children: [
129
129
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
130
- /* @__PURE__ */ jsxRuntime.jsx(chunk3X3IYDG6_js.NodeCardBadge, { tone: "s3_write", children: t("s3WriteNode") }),
131
- config.bucket && /* @__PURE__ */ jsxRuntime.jsx(chunk3X3IYDG6_js.NodeCardBadge, { tone: "s3_write", soft: true, children: config.bucket }),
130
+ /* @__PURE__ */ jsxRuntime.jsx(chunk7AM2SXEF_js.NodeCardBadge, { tone: "s3_write", children: t("s3WriteNode") }),
131
+ config.bucket && /* @__PURE__ */ jsxRuntime.jsx(chunk7AM2SXEF_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(chunk3X3IYDG6_js.NodeCardDeleteAction, { nodeId: id, onDelete })
134
+ /* @__PURE__ */ jsxRuntime.jsx(chunk7AM2SXEF_js.NodeCardDeleteAction, { nodeId: id, onDelete })
135
135
  ] })
136
136
  ]
137
137
  }
138
138
  ),
139
- /* @__PURE__ */ jsxRuntime.jsx(chunk3X3IYDG6_js.WorkflowHandle, { type: "source", position: react$1.Position.Right, id: "right-out", colorClass: "!bg-cyan-500" })
139
+ /* @__PURE__ */ jsxRuntime.jsx(chunk7AM2SXEF_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
- chunkFNA66TT4_js.FormInput,
290
+ chunkMT66VKLS_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
- chunkFNA66TT4_js.FormSelect,
299
+ chunkMT66VKLS_js.FormSelect,
300
300
  {
301
301
  label: "Type",
302
302
  value: field.type,
@@ -319,7 +319,7 @@ function FieldEditor({
319
319
  /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", plain: true, onClick: onRemove, children: "Remove" })
320
320
  ] }),
321
321
  /* @__PURE__ */ jsxRuntime.jsx(
322
- chunkFNA66TT4_js.FormInput,
322
+ chunkMT66VKLS_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(chunk3X3IYDG6_js.FRAMEWORK_META);
615
+ const frameworkKeys = Object.keys(chunk7AM2SXEF_js.FRAMEWORK_META);
616
616
  const hasProviderConstraints = connectedProviderTypes.length > 0;
617
- const compatibleModels = chunk3X3IYDG6_js.getCompatibleModels(models, selectedFramework);
617
+ const compatibleModels = chunk7AM2SXEF_js.getCompatibleModels(models, selectedFramework);
618
618
  const handleFrameworkChange = react.useCallback((newFramework) => {
619
619
  setSelectedFramework(newFramework);
620
- if (!chunk3X3IYDG6_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
621
- const compatible = chunk3X3IYDG6_js.getCompatibleModels(models, newFramework);
620
+ if (!chunk7AM2SXEF_js.isModelCompatibleWithFramework(selectedModelId, newFramework)) {
621
+ const compatible = chunk7AM2SXEF_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-gray-500 dark:text-gray-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 = chunk3X3IYDG6_js.FRAMEWORK_META[key];
632
+ const meta = chunk7AM2SXEF_js.FRAMEWORK_META[key];
633
633
  const isSelected = key === selectedFramework;
634
- const compatCount = chunk3X3IYDG6_js.getCompatibleModels(models, key).length;
635
- const isCompatibleWithProviders = !hasProviderConstraints || chunk3X3IYDG6_js.isFrameworkCompatibleWithProviders(key, connectedProviderTypes);
634
+ const compatCount = chunk7AM2SXEF_js.getCompatibleModels(models, key).length;
635
+ const isCompatibleWithProviders = !hasProviderConstraints || chunk7AM2SXEF_js.isFrameworkCompatibleWithProviders(key, connectedProviderTypes);
636
636
  return /* @__PURE__ */ jsxRuntime.jsxs(
637
637
  "button",
638
638
  {
@@ -664,7 +664,7 @@ 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 = chunk3X3IYDG6_js.isModelCompatibleWithFramework(model.id, selectedFramework);
667
+ const isCompatible = chunk7AM2SXEF_js.isModelCompatibleWithFramework(model.id, selectedFramework);
668
668
  const { IconComponent, color, providerLabel } = getModelIcon(model.id);
669
669
  return /* @__PURE__ */ jsxRuntime.jsxs(
670
670
  "button",
@@ -822,7 +822,7 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
822
822
  ] }),
823
823
  tool.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: tool.description }),
824
824
  tool.compatibleFrameworks && tool.compatibleFrameworks.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-1 flex flex-wrap gap-0.5", children: tool.compatibleFrameworks.map((framework) => {
825
- const meta = chunk3X3IYDG6_js.getFrameworkMeta(framework);
825
+ const meta = chunk7AM2SXEF_js.getFrameworkMeta(framework);
826
826
  const isCurrentFw = framework === agentFramework;
827
827
  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: [
828
828
  /* @__PURE__ */ jsxRuntime.jsx(meta.IconComponent, { className: "h-2.5 w-2.5" }),
@@ -839,7 +839,7 @@ function ToolsTab({ agentTools, enabledToolIds, onToggle, agentFramework, t }) {
839
839
  event.stopPropagation();
840
840
  },
841
841
  children: /* @__PURE__ */ jsxRuntime.jsx(
842
- chunkFNA66TT4_js.ToggleSwitch,
842
+ chunkMT66VKLS_js.ToggleSwitch,
843
843
  {
844
844
  checked: isEnabled,
845
845
  onChange: () => onToggle(tool.agentToolId),
@@ -887,7 +887,7 @@ function EngineTab({
887
887
  const compatibleProviders = findCompatibleProviders(selectedModelId, modelProviders);
888
888
  const configuredCompatible = compatibleProviders.filter((p) => p.configured);
889
889
  const effectiveProvider = compatibleProviders.find((p) => p.id === selectedProviderId) ?? configuredCompatible[0] ?? compatibleProviders[0];
890
- const frameworkMeta = chunk3X3IYDG6_js.getFrameworkMeta(selectedFramework);
890
+ const frameworkMeta = chunk7AM2SXEF_js.getFrameworkMeta(selectedFramework);
891
891
  const inputCard = "liquid-surface w-full rounded-lg px-3 py-1.5 text-sm text-gray-800 outline-none transition-colors focus:ring-1 focus:ring-indigo-300/40 dark:text-gray-200 dark:focus:ring-indigo-500/20";
892
892
  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: [
893
893
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 pb-3 pt-4", children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -1031,9 +1031,9 @@ function EngineTab({
1031
1031
  }
1032
1032
  function AgentModal({ onSaved, onPersist }) {
1033
1033
  const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
1034
- const activeModal = chunk3X3IYDG6_js.useModalStore((s) => s.activeModal);
1035
- const agentData = chunk3X3IYDG6_js.useModalStore((s) => s.agentData);
1036
- const closeModal = chunk3X3IYDG6_js.useModalStore((s) => s.closeModal);
1034
+ const activeModal = chunk7AM2SXEF_js.useModalStore((s) => s.activeModal);
1035
+ const agentData = chunk7AM2SXEF_js.useModalStore((s) => s.agentData);
1036
+ const closeModal = chunk7AM2SXEF_js.useModalStore((s) => s.closeModal);
1037
1037
  const open = activeModal === "agent";
1038
1038
  const agent = agentData?.agent ?? null;
1039
1039
  const models = agentData?.models ?? [];
@@ -1181,7 +1181,7 @@ function AgentModal({ onSaved, onPersist }) {
1181
1181
  const fieldLabel = "text-[9px] font-semibold uppercase tracking-wider text-slate-500 dark:text-slate-400";
1182
1182
  const avatarInitial = (displayName || agent.name).charAt(0).toUpperCase();
1183
1183
  const avatarNode = /* @__PURE__ */ jsxRuntime.jsx(
1184
- chunkFNA66TT4_js.Avatar,
1184
+ chunkMT66VKLS_js.Avatar,
1185
1185
  {
1186
1186
  src: effectiveAvatarUrl || void 0,
1187
1187
  alt: displayName || agent.name,
@@ -1193,7 +1193,7 @@ function AgentModal({ onSaved, onPersist }) {
1193
1193
  const statusPill = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
1194
1194
  /* @__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" }) }),
1195
1195
  /* @__PURE__ */ jsxRuntime.jsx(
1196
- chunkFNA66TT4_js.ToggleSwitch,
1196
+ chunkMT66VKLS_js.ToggleSwitch,
1197
1197
  {
1198
1198
  size: "sm",
1199
1199
  color: "green",
@@ -1207,7 +1207,7 @@ function AgentModal({ onSaved, onPersist }) {
1207
1207
  )
1208
1208
  ] });
1209
1209
  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(
1210
- chunkFNA66TT4_js.HeroBlock,
1210
+ chunkMT66VKLS_js.HeroBlock,
1211
1211
  {
1212
1212
  icon: avatarNode,
1213
1213
  iconBackground: "none",
@@ -1270,7 +1270,7 @@ function AgentModal({ onSaved, onPersist }) {
1270
1270
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: `font-medium ${autosaveColor}`, children: autosaveLabel })
1271
1271
  ] });
1272
1272
  return /* @__PURE__ */ jsxRuntime.jsx(
1273
- chunkFNA66TT4_js.GlassModal,
1273
+ chunkMT66VKLS_js.GlassModal,
1274
1274
  {
1275
1275
  open,
1276
1276
  onClose: handleClose,
@@ -1287,7 +1287,7 @@ function AgentModal({ onSaved, onPersist }) {
1287
1287
  },
1288
1288
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
1289
1289
  /* @__PURE__ */ jsxRuntime.jsx(
1290
- chunkFNA66TT4_js.SectionCard,
1290
+ chunkMT66VKLS_js.SectionCard,
1291
1291
  {
1292
1292
  variant: "glass",
1293
1293
  padded: false,
@@ -1327,7 +1327,7 @@ function AgentModal({ onSaved, onPersist }) {
1327
1327
  }
1328
1328
  ),
1329
1329
  /* @__PURE__ */ jsxRuntime.jsx(
1330
- chunkFNA66TT4_js.SectionCard,
1330
+ chunkMT66VKLS_js.SectionCard,
1331
1331
  {
1332
1332
  variant: "glass",
1333
1333
  padded: false,
@@ -1355,7 +1355,7 @@ function AgentModal({ onSaved, onPersist }) {
1355
1355
  }
1356
1356
  ),
1357
1357
  /* @__PURE__ */ jsxRuntime.jsx(
1358
- chunkFNA66TT4_js.SectionCard,
1358
+ chunkMT66VKLS_js.SectionCard,
1359
1359
  {
1360
1360
  variant: "glass",
1361
1361
  padded: false,
@@ -1478,7 +1478,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1478
1478
  const markDirty = useSubworkflowStore((s) => s.markDirty);
1479
1479
  const markSaved = useSubworkflowStore((s) => s.markSaved);
1480
1480
  const closeModal = useSubworkflowStore((s) => s.closeModal);
1481
- const agentBehind = chunk3X3IYDG6_js.useModalStore((s) => s.activeModal === "agent" ? s.agentData?.agent?.name : null);
1481
+ const agentBehind = chunk7AM2SXEF_js.useModalStore((s) => s.activeModal === "agent" ? s.agentData?.agent?.name : null);
1482
1482
  const isCreateMode = !tool?.toolId;
1483
1483
  const initialGraph = react.useMemo(() => {
1484
1484
  const config = tool?.config;
@@ -1507,9 +1507,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1507
1507
  }, [tool, onSaved, name, category, description, timeoutMs, latestGraphRef, markSaved]);
1508
1508
  if (!tool) return null;
1509
1509
  const categoryKey = category ?? "external";
1510
- const gradient = tool.color ?? chunk3X3IYDG6_js.CATEGORY_COLORS[categoryKey] ?? chunk3X3IYDG6_js.CATEGORY_COLORS.external;
1511
- const categoryPill = chunk3X3IYDG6_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunk3X3IYDG6_js.CATEGORY_PILL_COLORS.external;
1512
- const IconComponent = chunk3X3IYDG6_js.ICON_MAP[tool.icon ?? ""] ?? outline.ArrowPathRoundedSquareIcon;
1510
+ const gradient = tool.color ?? chunk7AM2SXEF_js.CATEGORY_COLORS[categoryKey] ?? chunk7AM2SXEF_js.CATEGORY_COLORS.external;
1511
+ const categoryPill = chunk7AM2SXEF_js.CATEGORY_PILL_COLORS[categoryKey] ?? chunk7AM2SXEF_js.CATEGORY_PILL_COLORS.external;
1512
+ const IconComponent = chunk7AM2SXEF_js.ICON_MAP[tool.icon ?? ""] ?? outline.ArrowPathRoundedSquareIcon;
1513
1513
  const graph = latestGraphRef.current;
1514
1514
  const startNode = graph.nodes.find((n) => n.type === "start");
1515
1515
  const endNode = graph.nodes.find((n) => n.type === "end");
@@ -1542,7 +1542,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1542
1542
  ] })
1543
1543
  ] });
1544
1544
  return /* @__PURE__ */ jsxRuntime.jsx(
1545
- chunkFNA66TT4_js.GlassModal,
1545
+ chunkMT66VKLS_js.GlassModal,
1546
1546
  {
1547
1547
  open,
1548
1548
  onClose: closeModal,
@@ -1574,7 +1574,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1574
1574
  {
1575
1575
  type: "button",
1576
1576
  onClick: () => setCategory(cat),
1577
- className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${chunk3X3IYDG6_js.CATEGORY_PILL_COLORS[cat] ?? chunk3X3IYDG6_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"}`,
1577
+ className: `rounded-full px-2 py-1 text-[9px] font-semibold transition-all ${cat === category ? `${chunk7AM2SXEF_js.CATEGORY_PILL_COLORS[cat] ?? chunk7AM2SXEF_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"}`,
1578
1578
  children: cat
1579
1579
  },
1580
1580
  cat
@@ -1661,7 +1661,7 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1661
1661
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-auto" })
1662
1662
  ] }),
1663
1663
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
1664
- chunk3X3IYDG6_js.WorkflowCanvas,
1664
+ chunk7AM2SXEF_js.WorkflowCanvas,
1665
1665
  {
1666
1666
  initialGraph,
1667
1667
  agents: [],
@@ -1677,9 +1677,9 @@ function SubworkflowModal({ onSaved, onMaximize }) {
1677
1677
  }
1678
1678
  function PipelineSettingsModal({ onSave }) {
1679
1679
  const t = chunkYXN2K77G_js.useTranslations("agents.workflow");
1680
- const activeModal = chunk3X3IYDG6_js.useModalStore((s) => s.activeModal);
1681
- const data = chunk3X3IYDG6_js.useModalStore((s) => s.pipelineSettingsData);
1682
- const closeModal = chunk3X3IYDG6_js.useModalStore((s) => s.closeModal);
1680
+ const activeModal = chunk7AM2SXEF_js.useModalStore((s) => s.activeModal);
1681
+ const data = chunk7AM2SXEF_js.useModalStore((s) => s.pipelineSettingsData);
1682
+ const closeModal = chunk7AM2SXEF_js.useModalStore((s) => s.closeModal);
1683
1683
  const open = activeModal === "pipeline-settings";
1684
1684
  const [nameValue, setNameValue] = react.useState("");
1685
1685
  const [descriptionValue, setDescriptionValue] = react.useState("");
@@ -1756,7 +1756,7 @@ function PipelineSettingsModal({ onSave }) {
1756
1756
  )
1757
1757
  ] });
1758
1758
  return /* @__PURE__ */ jsxRuntime.jsx(
1759
- chunkFNA66TT4_js.GlassModal,
1759
+ chunkMT66VKLS_js.GlassModal,
1760
1760
  {
1761
1761
  open,
1762
1762
  onClose: closeModal,
@@ -1770,7 +1770,7 @@ function PipelineSettingsModal({ onSave }) {
1770
1770
  onSubmit: handleSubmit,
1771
1771
  children: /* @__PURE__ */ jsxRuntime.jsxs("form", { id: "pipeline-settings-form", onSubmit: handleSubmit, className: "space-y-5", children: [
1772
1772
  /* @__PURE__ */ jsxRuntime.jsx(
1773
- chunkFNA66TT4_js.FormInput,
1773
+ chunkMT66VKLS_js.FormInput,
1774
1774
  {
1775
1775
  label: t("pipelineName"),
1776
1776
  value: nameValue,
@@ -1780,7 +1780,7 @@ function PipelineSettingsModal({ onSave }) {
1780
1780
  }
1781
1781
  ),
1782
1782
  /* @__PURE__ */ jsxRuntime.jsx(
1783
- chunkFNA66TT4_js.FormTextarea,
1783
+ chunkMT66VKLS_js.FormTextarea,
1784
1784
  {
1785
1785
  label: t("pipelineDescription"),
1786
1786
  value: descriptionValue,
@@ -1791,7 +1791,7 @@ function PipelineSettingsModal({ onSave }) {
1791
1791
  ),
1792
1792
  lifecycleAvailable && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1793
1793
  /* @__PURE__ */ jsxRuntime.jsx(
1794
- chunkFNA66TT4_js.FormInput,
1794
+ chunkMT66VKLS_js.FormInput,
1795
1795
  {
1796
1796
  label: t("pipelineSlug", { _: "Slug" }),
1797
1797
  value: slugValue,
@@ -1933,7 +1933,7 @@ function RunReplayModal({
1933
1933
  ] })
1934
1934
  ] });
1935
1935
  return /* @__PURE__ */ jsxRuntime.jsx(
1936
- chunkFNA66TT4_js.GlassModal,
1936
+ chunkMT66VKLS_js.GlassModal,
1937
1937
  {
1938
1938
  open,
1939
1939
  onClose,
@@ -2007,7 +2007,7 @@ function RowEditor({
2007
2007
  ]
2008
2008
  }
2009
2009
  ) : isJson ? /* @__PURE__ */ jsxRuntime.jsx(
2010
- chunkFNA66TT4_js.FormTextarea,
2010
+ chunkMT66VKLS_js.FormTextarea,
2011
2011
  {
2012
2012
  value: row.value,
2013
2013
  onValueChange: (v) => onChange({ value: v }),
@@ -2015,7 +2015,7 @@ function RowEditor({
2015
2015
  className: "font-mono"
2016
2016
  }
2017
2017
  ) : /* @__PURE__ */ jsxRuntime.jsx(
2018
- chunkFNA66TT4_js.FormInput,
2018
+ chunkMT66VKLS_js.FormInput,
2019
2019
  {
2020
2020
  type: row.kind === "number" ? "number" : "text",
2021
2021
  value: row.value,
@@ -2319,7 +2319,7 @@ function RuleConditionBuilder({ value, onChange, depth = 0 }) {
2319
2319
  };
2320
2320
  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: [
2321
2321
  /* @__PURE__ */ jsxRuntime.jsx(
2322
- chunkFNA66TT4_js.FormSelect,
2322
+ chunkMT66VKLS_js.FormSelect,
2323
2323
  {
2324
2324
  label: "Operator",
2325
2325
  value: value.operator,
@@ -2342,7 +2342,7 @@ function SimpleEditor({
2342
2342
  const isTruthy = value.operator === "truthy";
2343
2343
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
2344
2344
  /* @__PURE__ */ jsxRuntime.jsx(
2345
- chunkFNA66TT4_js.FormInput,
2345
+ chunkMT66VKLS_js.FormInput,
2346
2346
  {
2347
2347
  label: "Field",
2348
2348
  hint: "Dotted reference into the variable pool \u2014 e.g. `parse-pricing.margin`, `inputs.category`",
@@ -2352,7 +2352,7 @@ function SimpleEditor({
2352
2352
  }
2353
2353
  ),
2354
2354
  !isTruthy && /* @__PURE__ */ jsxRuntime.jsx(
2355
- chunkFNA66TT4_js.FormInput,
2355
+ chunkMT66VKLS_js.FormInput,
2356
2356
  {
2357
2357
  label: "Value",
2358
2358
  hint: "Literal. Numeric operators coerce via `as f64`.",
@@ -2368,7 +2368,7 @@ function ThresholdEditor({
2368
2368
  }) {
2369
2369
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-3", children: [
2370
2370
  /* @__PURE__ */ jsxRuntime.jsx(
2371
- chunkFNA66TT4_js.FormInput,
2371
+ chunkMT66VKLS_js.FormInput,
2372
2372
  {
2373
2373
  label: "Field",
2374
2374
  value: value.field ?? "",
@@ -2377,7 +2377,7 @@ function ThresholdEditor({
2377
2377
  }
2378
2378
  ),
2379
2379
  /* @__PURE__ */ jsxRuntime.jsx(
2380
- chunkFNA66TT4_js.FormSelect,
2380
+ chunkMT66VKLS_js.FormSelect,
2381
2381
  {
2382
2382
  label: "Direction",
2383
2383
  value: value.comparison ?? "gte",
@@ -2391,7 +2391,7 @@ function ThresholdEditor({
2391
2391
  }
2392
2392
  ),
2393
2393
  /* @__PURE__ */ jsxRuntime.jsx(
2394
- chunkFNA66TT4_js.FormInput,
2394
+ chunkMT66VKLS_js.FormInput,
2395
2395
  {
2396
2396
  label: "Threshold",
2397
2397
  type: "number",
@@ -2408,7 +2408,7 @@ function RegexEditor({
2408
2408
  }) {
2409
2409
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
2410
2410
  /* @__PURE__ */ jsxRuntime.jsx(
2411
- chunkFNA66TT4_js.FormInput,
2411
+ chunkMT66VKLS_js.FormInput,
2412
2412
  {
2413
2413
  label: "Field",
2414
2414
  value: value.field ?? "",
@@ -2417,7 +2417,7 @@ function RegexEditor({
2417
2417
  }
2418
2418
  ),
2419
2419
  /* @__PURE__ */ jsxRuntime.jsx(
2420
- chunkFNA66TT4_js.FormInput,
2420
+ chunkMT66VKLS_js.FormInput,
2421
2421
  {
2422
2422
  label: "Pattern",
2423
2423
  hint: "Rust regex syntax \u2014 `(?i)` etc. supported.",
@@ -2445,7 +2445,7 @@ function TimeWindowEditor({
2445
2445
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
2446
2446
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
2447
2447
  /* @__PURE__ */ jsxRuntime.jsx(
2448
- chunkFNA66TT4_js.FormSelect,
2448
+ chunkMT66VKLS_js.FormSelect,
2449
2449
  {
2450
2450
  label: "Timezone",
2451
2451
  value: value.timezone ?? "UTC",
@@ -2454,7 +2454,7 @@ function TimeWindowEditor({
2454
2454
  }
2455
2455
  ),
2456
2456
  /* @__PURE__ */ jsxRuntime.jsx(
2457
- chunkFNA66TT4_js.FormInput,
2457
+ chunkMT66VKLS_js.FormInput,
2458
2458
  {
2459
2459
  label: "Timestamp field (optional)",
2460
2460
  hint: "Pulls a timestamp from the pool. Leave blank to use the run's wall-clock.",
@@ -2467,7 +2467,7 @@ function TimeWindowEditor({
2467
2467
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
2468
2468
  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: [
2469
2469
  /* @__PURE__ */ jsxRuntime.jsx(
2470
- chunkFNA66TT4_js.FormInput,
2470
+ chunkMT66VKLS_js.FormInput,
2471
2471
  {
2472
2472
  label: `Start (hour)`,
2473
2473
  type: "number",
@@ -2478,7 +2478,7 @@ function TimeWindowEditor({
2478
2478
  }
2479
2479
  ),
2480
2480
  /* @__PURE__ */ jsxRuntime.jsx(
2481
- chunkFNA66TT4_js.FormInput,
2481
+ chunkMT66VKLS_js.FormInput,
2482
2482
  {
2483
2483
  label: `End (hour)`,
2484
2484
  type: "number",
@@ -2513,7 +2513,7 @@ function BooleanGroupEditor({
2513
2513
  });
2514
2514
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
2515
2515
  /* @__PURE__ */ jsxRuntime.jsx(
2516
- chunkFNA66TT4_js.FormSelect,
2516
+ chunkMT66VKLS_js.FormSelect,
2517
2517
  {
2518
2518
  label: "Combinator",
2519
2519
  value: value.combinator ?? "and",
@@ -2569,7 +2569,7 @@ function RuleActionBuilder({ value, onChange }) {
2569
2569
  };
2570
2570
  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: [
2571
2571
  /* @__PURE__ */ jsxRuntime.jsx(
2572
- chunkFNA66TT4_js.FormSelect,
2572
+ chunkMT66VKLS_js.FormSelect,
2573
2573
  {
2574
2574
  label: "Action type",
2575
2575
  value: type,
@@ -2579,7 +2579,7 @@ function RuleActionBuilder({ value, onChange }) {
2579
2579
  ),
2580
2580
  type === "adjust_price" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
2581
2581
  /* @__PURE__ */ jsxRuntime.jsx(
2582
- chunkFNA66TT4_js.FormInput,
2582
+ chunkMT66VKLS_js.FormInput,
2583
2583
  {
2584
2584
  label: "Multiplier",
2585
2585
  type: "number",
@@ -2589,7 +2589,7 @@ function RuleActionBuilder({ value, onChange }) {
2589
2589
  }
2590
2590
  ),
2591
2591
  /* @__PURE__ */ jsxRuntime.jsx(
2592
- chunkFNA66TT4_js.FormInput,
2592
+ chunkMT66VKLS_js.FormInput,
2593
2593
  {
2594
2594
  label: "Reason code",
2595
2595
  value: stringParam(params.reason),
@@ -2599,7 +2599,7 @@ function RuleActionBuilder({ value, onChange }) {
2599
2599
  )
2600
2600
  ] }),
2601
2601
  type === "enforce_min_margin" && /* @__PURE__ */ jsxRuntime.jsx(
2602
- chunkFNA66TT4_js.FormInput,
2602
+ chunkMT66VKLS_js.FormInput,
2603
2603
  {
2604
2604
  label: "Floor (fraction, e.g. 0.08)",
2605
2605
  type: "number",
@@ -2609,7 +2609,7 @@ function RuleActionBuilder({ value, onChange }) {
2609
2609
  }
2610
2610
  ),
2611
2611
  type === "realign_to_competitor" && /* @__PURE__ */ jsxRuntime.jsx(
2612
- chunkFNA66TT4_js.FormInput,
2612
+ chunkMT66VKLS_js.FormInput,
2613
2613
  {
2614
2614
  label: "Tolerance (fraction)",
2615
2615
  type: "number",
@@ -2619,7 +2619,7 @@ function RuleActionBuilder({ value, onChange }) {
2619
2619
  }
2620
2620
  ),
2621
2621
  type === "request_manager_approval" && /* @__PURE__ */ jsxRuntime.jsx(
2622
- chunkFNA66TT4_js.FormInput,
2622
+ chunkMT66VKLS_js.FormInput,
2623
2623
  {
2624
2624
  label: "Approval limit (fraction)",
2625
2625
  type: "number",
@@ -2629,7 +2629,7 @@ function RuleActionBuilder({ value, onChange }) {
2629
2629
  }
2630
2630
  ),
2631
2631
  type === "round_to" && /* @__PURE__ */ jsxRuntime.jsx(
2632
- chunkFNA66TT4_js.FormInput,
2632
+ chunkMT66VKLS_js.FormInput,
2633
2633
  {
2634
2634
  label: "Step (e.g. 0.009)",
2635
2635
  type: "number",
@@ -2640,7 +2640,7 @@ function RuleActionBuilder({ value, onChange }) {
2640
2640
  ),
2641
2641
  type === "alert" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
2642
2642
  /* @__PURE__ */ jsxRuntime.jsx(
2643
- chunkFNA66TT4_js.FormInput,
2643
+ chunkMT66VKLS_js.FormInput,
2644
2644
  {
2645
2645
  label: "Channel",
2646
2646
  value: stringParam(params.channel),
@@ -2649,7 +2649,7 @@ function RuleActionBuilder({ value, onChange }) {
2649
2649
  }
2650
2650
  ),
2651
2651
  /* @__PURE__ */ jsxRuntime.jsx(
2652
- chunkFNA66TT4_js.FormInput,
2652
+ chunkMT66VKLS_js.FormInput,
2653
2653
  {
2654
2654
  label: "Severity",
2655
2655
  value: stringParam(params.severity),
@@ -2687,7 +2687,7 @@ function CustomParamsEditor({
2687
2687
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
2688
2688
  entries.map(([key, value], index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[1fr_1fr_auto] items-end gap-2", children: [
2689
2689
  /* @__PURE__ */ jsxRuntime.jsx(
2690
- chunkFNA66TT4_js.FormInput,
2690
+ chunkMT66VKLS_js.FormInput,
2691
2691
  {
2692
2692
  label: "Key",
2693
2693
  value: key,
@@ -2695,7 +2695,7 @@ function CustomParamsEditor({
2695
2695
  }
2696
2696
  ),
2697
2697
  /* @__PURE__ */ jsxRuntime.jsx(
2698
- chunkFNA66TT4_js.FormInput,
2698
+ chunkMT66VKLS_js.FormInput,
2699
2699
  {
2700
2700
  label: "Value",
2701
2701
  value: String(value ?? ""),
@@ -2734,9 +2734,9 @@ function RuleForm({ value, onChange }) {
2734
2734
  );
2735
2735
  const update = (key, v) => onChange({ ...value, [key]: v });
2736
2736
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
2737
- /* @__PURE__ */ jsxRuntime.jsxs(chunkFNA66TT4_js.FormGrid, { children: [
2737
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkMT66VKLS_js.FormGrid, { children: [
2738
2738
  /* @__PURE__ */ jsxRuntime.jsx(
2739
- chunkFNA66TT4_js.FormInput,
2739
+ chunkMT66VKLS_js.FormInput,
2740
2740
  {
2741
2741
  label: "Name",
2742
2742
  required: true,
@@ -2745,7 +2745,7 @@ function RuleForm({ value, onChange }) {
2745
2745
  }
2746
2746
  ),
2747
2747
  /* @__PURE__ */ jsxRuntime.jsx(
2748
- chunkFNA66TT4_js.FormInput,
2748
+ chunkMT66VKLS_js.FormInput,
2749
2749
  {
2750
2750
  label: "Priority",
2751
2751
  type: "number",
@@ -2755,7 +2755,7 @@ function RuleForm({ value, onChange }) {
2755
2755
  }
2756
2756
  ),
2757
2757
  /* @__PURE__ */ jsxRuntime.jsx(
2758
- chunkFNA66TT4_js.FormSelect,
2758
+ chunkMT66VKLS_js.FormSelect,
2759
2759
  {
2760
2760
  label: "Enabled",
2761
2761
  value: value.enabled ? "true" : "false",
@@ -2767,7 +2767,7 @@ function RuleForm({ value, onChange }) {
2767
2767
  }
2768
2768
  ),
2769
2769
  /* @__PURE__ */ jsxRuntime.jsx(
2770
- chunkFNA66TT4_js.FormTextarea,
2770
+ chunkMT66VKLS_js.FormTextarea,
2771
2771
  {
2772
2772
  label: "Description",
2773
2773
  rows: 2,
@@ -2814,7 +2814,7 @@ function RuleForm({ value, onChange }) {
2814
2814
  ),
2815
2815
  showAdvanced && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-3 grid grid-cols-1 gap-3 sm:grid-cols-2", children: [
2816
2816
  /* @__PURE__ */ jsxRuntime.jsx(
2817
- chunkFNA66TT4_js.FormInput,
2817
+ chunkMT66VKLS_js.FormInput,
2818
2818
  {
2819
2819
  label: "Valid from (ISO 8601)",
2820
2820
  type: "datetime-local",
@@ -2823,7 +2823,7 @@ function RuleForm({ value, onChange }) {
2823
2823
  }
2824
2824
  ),
2825
2825
  /* @__PURE__ */ jsxRuntime.jsx(
2826
- chunkFNA66TT4_js.FormInput,
2826
+ chunkMT66VKLS_js.FormInput,
2827
2827
  {
2828
2828
  label: "Valid until (ISO 8601)",
2829
2829
  type: "datetime-local",
@@ -2832,7 +2832,7 @@ function RuleForm({ value, onChange }) {
2832
2832
  }
2833
2833
  ),
2834
2834
  /* @__PURE__ */ jsxRuntime.jsx(
2835
- chunkFNA66TT4_js.FormSelect,
2835
+ chunkMT66VKLS_js.FormSelect,
2836
2836
  {
2837
2837
  label: "Status",
2838
2838
  value: value.status ?? "active",
@@ -2841,7 +2841,7 @@ function RuleForm({ value, onChange }) {
2841
2841
  }
2842
2842
  ),
2843
2843
  /* @__PURE__ */ jsxRuntime.jsx(
2844
- chunkFNA66TT4_js.FormInput,
2844
+ chunkMT66VKLS_js.FormInput,
2845
2845
  {
2846
2846
  label: "Tags (comma-separated)",
2847
2847
  value: (value.tags ?? []).join(", "),
@@ -3028,8 +3028,8 @@ function CollapsibleSection({ title, icon, colorClass, defaultOpen = true, count
3028
3028
  ] });
3029
3029
  }
3030
3030
  function LogicNodeItemCard({ item, translationFunction }) {
3031
- const IconComponent = chunk3X3IYDG6_js.LOGIC_ICON_MAP[item.nodeType];
3032
- const gradient = chunk3X3IYDG6_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-gray-400 to-gray-500";
3031
+ const IconComponent = chunk7AM2SXEF_js.LOGIC_ICON_MAP[item.nodeType];
3032
+ const gradient = chunk7AM2SXEF_js.LOGIC_NODE_GRADIENTS[item.nodeType] ?? "from-gray-400 to-gray-500";
3033
3033
  const defaultConfig = chunk72SWXOD5_js.createDefaultLogicNodeConfig(item.nodeType);
3034
3034
  const configJson = defaultConfig ? JSON.stringify(defaultConfig) : void 0;
3035
3035
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -3100,7 +3100,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3100
3100
  [entityTypes, normalizedQuery]
3101
3101
  );
3102
3102
  const filteredLogicItems = react.useMemo(() => {
3103
- const visibleByDefault = LOGIC_NODE_ITEMS.filter((item) => !chunk3X3IYDG6_js.EXPERIMENTAL_NODE_TYPES.has(item.nodeType));
3103
+ const visibleByDefault = LOGIC_NODE_ITEMS.filter((item) => !chunk7AM2SXEF_js.EXPERIMENTAL_NODE_TYPES.has(item.nodeType));
3104
3104
  if (!normalizedQuery) return visibleByDefault;
3105
3105
  return visibleByDefault.filter(
3106
3106
  (item) => t(item.nameKey).toLowerCase().includes(normalizedQuery) || t(item.descriptionKey).toLowerCase().includes(normalizedQuery)
@@ -3236,7 +3236,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3236
3236
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[10px] text-gray-400 dark:text-gray-500", children: tool.category })
3237
3237
  ] }),
3238
3238
  /* @__PURE__ */ jsxRuntime.jsx(
3239
- chunkFNA66TT4_js.ToggleSwitch,
3239
+ chunkMT66VKLS_js.ToggleSwitch,
3240
3240
  {
3241
3241
  checked: Boolean(tool.enabled),
3242
3242
  onChange: () => {
@@ -3277,7 +3277,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3277
3277
  ] })
3278
3278
  ] }),
3279
3279
  /* @__PURE__ */ jsxRuntime.jsx(
3280
- chunkFNA66TT4_js.ToggleSwitch,
3280
+ chunkMT66VKLS_js.ToggleSwitch,
3281
3281
  {
3282
3282
  checked: Boolean(rule.enabled),
3283
3283
  onChange: () => {
@@ -3313,8 +3313,8 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3313
3313
  limit: entity.defaultLimit
3314
3314
  });
3315
3315
  const dsLogo = getDatasourceLogo(entity.id);
3316
- const EntityIcon = chunk3X3IYDG6_js.getEntityIcon(entity.id);
3317
- const entityGradient = chunk3X3IYDG6_js.getEntityGradient(entity.id);
3316
+ const EntityIcon = chunk7AM2SXEF_js.getEntityIcon(entity.id);
3317
+ const entityGradient = chunk7AM2SXEF_js.getEntityGradient(entity.id);
3318
3318
  return /* @__PURE__ */ jsxRuntime.jsxs(
3319
3319
  "div",
3320
3320
  {
@@ -3334,7 +3334,7 @@ function NodePalette({ agents, tools, agentTools = [], rules, entities = [], mod
3334
3334
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
3335
3335
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded-full bg-slate-100 px-1.5 py-0.5 text-[9px] font-medium text-slate-600 dark:bg-white/10 dark:text-slate-300", children: "Read only" }),
3336
3336
  /* @__PURE__ */ jsxRuntime.jsx(
3337
- chunkFNA66TT4_js.ToggleSwitch,
3337
+ chunkMT66VKLS_js.ToggleSwitch,
3338
3338
  {
3339
3339
  checked: true,
3340
3340
  onChange: () => {
@@ -3669,9 +3669,9 @@ function formatDuration2(durationMs) {
3669
3669
  }
3670
3670
  function RunPanel({ open, onClose, onRun, onStop }) {
3671
3671
  const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.runPanel");
3672
- const nodes = chunk3X3IYDG6_js.useWorkflowStore((state) => state.nodes);
3673
- const isRunning = chunk3X3IYDG6_js.useWorkflowStore((state) => state.isRunning);
3674
- const nodeResults = chunk3X3IYDG6_js.useWorkflowStore((state) => state.nodeResults);
3672
+ const nodes = chunk7AM2SXEF_js.useWorkflowStore((state) => state.nodes);
3673
+ const isRunning = chunk7AM2SXEF_js.useWorkflowStore((state) => state.isRunning);
3674
+ const nodeResults = chunk7AM2SXEF_js.useWorkflowStore((state) => state.nodeResults);
3675
3675
  const startNode = nodes.find((node) => node.type === "start");
3676
3676
  const hasEndNode = nodes.some((node) => node.type === "end");
3677
3677
  const hasValidStartConfig = Boolean(
@@ -4002,8 +4002,8 @@ function inferVariables(config, nodeType) {
4002
4002
  }
4003
4003
  function VariableInspector({ open, onClose }) {
4004
4004
  const translations = chunkYXN2K77G_js.useTranslations("agents.workflow.variableInspector");
4005
- const nodes = chunk3X3IYDG6_js.useWorkflowStore((state) => state.nodes);
4006
- const edges = chunk3X3IYDG6_js.useWorkflowStore((state) => state.edges);
4005
+ const nodes = chunk7AM2SXEF_js.useWorkflowStore((state) => state.nodes);
4006
+ const edges = chunk7AM2SXEF_js.useWorkflowStore((state) => state.edges);
4007
4007
  const [expandedNodes, setExpandedNodes] = react.useState(/* @__PURE__ */ new Set());
4008
4008
  const toggleNodeExpansion = react.useCallback((nodeId) => {
4009
4009
  setExpandedNodes((current) => {
@@ -4065,8 +4065,8 @@ function VariableInspector({ open, onClose }) {
4065
4065
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-gray-500 dark:text-gray-400", children: translations("noNodes") })
4066
4066
  ] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-gray-100 dark:divide-gray-800", children: nodeVariableEntries.map((entry) => {
4067
4067
  const isExpanded = expandedNodes.has(entry.nodeId);
4068
- const IconComponent = chunk3X3IYDG6_js.LOGIC_ICON_MAP[entry.nodeType];
4069
- const gradient = chunk3X3IYDG6_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-gray-400 to-gray-500";
4068
+ const IconComponent = chunk7AM2SXEF_js.LOGIC_ICON_MAP[entry.nodeType];
4069
+ const gradient = chunk7AM2SXEF_js.LOGIC_NODE_GRADIENTS[entry.nodeType] ?? "from-gray-400 to-gray-500";
4070
4070
  const inputVariables = entry.variables.filter((variable) => variable.direction === "input");
4071
4071
  const outputVariables = entry.variables.filter((variable) => variable.direction === "output");
4072
4072
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": `variable-node-${entry.nodeId}`, children: [
@@ -4132,7 +4132,7 @@ function RunInputDialog({
4132
4132
  onRun
4133
4133
  }) {
4134
4134
  const t = chunkYXN2K77G_js.useTranslations("agents.workflow.runInputDialog");
4135
- const nodes = chunk3X3IYDG6_js.useWorkflowStore((state) => state.nodes);
4135
+ const nodes = chunk7AM2SXEF_js.useWorkflowStore((state) => state.nodes);
4136
4136
  const [values, setValues] = react.useState({});
4137
4137
  const inputVariableNames = react.useMemo(() => {
4138
4138
  const storeStartNode = nodes.find((node) => node.type === "start");
@@ -4159,7 +4159,7 @@ function RunInputDialog({
4159
4159
  }, [onClose]);
4160
4160
  if (!open) return null;
4161
4161
  return /* @__PURE__ */ jsxRuntime.jsxs(
4162
- chunkFNA66TT4_js.GlassModal,
4162
+ chunkMT66VKLS_js.GlassModal,
4163
4163
  {
4164
4164
  open,
4165
4165
  onClose: handleClose,
@@ -4170,7 +4170,7 @@ function RunInputDialog({
4170
4170
  /* @__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: [
4171
4171
  /* @__PURE__ */ jsxRuntime.jsx("label", { className: "mb-1 block text-xs font-medium text-gray-700 dark:text-gray-300", children: variableName }),
4172
4172
  /* @__PURE__ */ jsxRuntime.jsx(
4173
- chunkFNA66TT4_js.Input,
4173
+ chunkMT66VKLS_js.Input,
4174
4174
  {
4175
4175
  value: values[variableName] ?? "",
4176
4176
  onChange: (event) => handleValueChange(variableName, event.target.value),
@@ -4213,8 +4213,8 @@ function PreviewPanel({ open, onClose, workflowId, loadRuns }) {
4213
4213
  const [isLoadingRuns, setIsLoadingRuns] = react.useState(false);
4214
4214
  const [selectedRun, setSelectedRun] = react.useState(null);
4215
4215
  const [selectedNode, setSelectedNode] = react.useState(null);
4216
- const isRunning = chunk3X3IYDG6_js.useWorkflowStore((state) => state.isRunning);
4217
- const nodeResults = chunk3X3IYDG6_js.useWorkflowStore((state) => state.nodeResults);
4216
+ const isRunning = chunk7AM2SXEF_js.useWorkflowStore((state) => state.isRunning);
4217
+ const nodeResults = chunk7AM2SXEF_js.useWorkflowStore((state) => state.nodeResults);
4218
4218
  const refreshRuns = react.useCallback(async () => {
4219
4219
  setIsLoadingRuns(true);
4220
4220
  try {
@@ -4392,7 +4392,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
4392
4392
  onAutoSaveGraph(graph);
4393
4393
  }, [onAutoSaveGraph, onGraphSnapshot]);
4394
4394
  return /* @__PURE__ */ jsxRuntime.jsx(
4395
- chunk3X3IYDG6_js.Workspace,
4395
+ chunk7AM2SXEF_js.Workspace,
4396
4396
  {
4397
4397
  ...workspaceProps,
4398
4398
  onGraphChange: handleGraphChange
@@ -4400,7 +4400,7 @@ var AutoSaveWorkspace = react.memo(function AutoSaveWorkspace2({
4400
4400
  );
4401
4401
  });
4402
4402
  function DynamicIslandConfirm2(props) {
4403
- return /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.DynamicIslandConfirm, { ...props });
4403
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkMT66VKLS_js.DynamicIslandConfirm, { ...props });
4404
4404
  }
4405
4405
  var JSON_PREVIEW_LINE_LIMIT = 50;
4406
4406
  function DslExportModal({ open, onClose, workflow, graph }) {
@@ -4454,7 +4454,7 @@ function DslExportModal({ open, onClose, workflow, graph }) {
4454
4454
  }, [jsonString, workflow.name, workflow.version]);
4455
4455
  if (!open) return null;
4456
4456
  return /* @__PURE__ */ jsxRuntime.jsx(
4457
- chunkFNA66TT4_js.GlassModal,
4457
+ chunkMT66VKLS_js.GlassModal,
4458
4458
  {
4459
4459
  open,
4460
4460
  onClose,
@@ -4672,7 +4672,7 @@ function DslImportModal({ open, onClose, onImport }) {
4672
4672
  }, []);
4673
4673
  if (!open) return null;
4674
4674
  return /* @__PURE__ */ jsxRuntime.jsx(
4675
- chunkFNA66TT4_js.GlassModal,
4675
+ chunkMT66VKLS_js.GlassModal,
4676
4676
  {
4677
4677
  open,
4678
4678
  onClose,
@@ -4763,14 +4763,14 @@ function DslImportModal({ open, onClose, onImport }) {
4763
4763
  }
4764
4764
 
4765
4765
  // src/astrlabe/store/selectors.ts
4766
- var useCanUndo = () => chunk3X3IYDG6_js.useWorkflowStore((state) => state.past.length > 0);
4767
- var useCanRedo = () => chunk3X3IYDG6_js.useWorkflowStore((state) => state.future.length > 0);
4768
- var useHasCopied = () => chunk3X3IYDG6_js.useWorkflowStore((state) => state.clipboard !== null);
4769
- var useContextMenu = () => chunk3X3IYDG6_js.useWorkflowStore((state) => state.contextMenu);
4770
- var useEditingNodeId = () => chunk3X3IYDG6_js.useWorkflowStore((state) => state.editingNodeId);
4771
- var useSelectedNodeCount = () => chunk3X3IYDG6_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
4772
- var useIsRunning = () => chunk3X3IYDG6_js.useWorkflowStore((state) => state.isRunning);
4773
- var useNodeResults = () => chunk3X3IYDG6_js.useWorkflowStore((state) => state.nodeResults);
4766
+ var useCanUndo = () => chunk7AM2SXEF_js.useWorkflowStore((state) => state.past.length > 0);
4767
+ var useCanRedo = () => chunk7AM2SXEF_js.useWorkflowStore((state) => state.future.length > 0);
4768
+ var useHasCopied = () => chunk7AM2SXEF_js.useWorkflowStore((state) => state.clipboard !== null);
4769
+ var useContextMenu = () => chunk7AM2SXEF_js.useWorkflowStore((state) => state.contextMenu);
4770
+ var useEditingNodeId = () => chunk7AM2SXEF_js.useWorkflowStore((state) => state.editingNodeId);
4771
+ var useSelectedNodeCount = () => chunk7AM2SXEF_js.useWorkflowStore((state) => state.nodes.filter((node) => node.selected).length);
4772
+ var useIsRunning = () => chunk7AM2SXEF_js.useWorkflowStore((state) => state.isRunning);
4773
+ var useNodeResults = () => chunk7AM2SXEF_js.useWorkflowStore((state) => state.nodeResults);
4774
4774
  var DEFAULT_MAX_HISTORY = 50;
4775
4775
  function useUndoRedo(nodes, edges, setNodes, setEdges, maxHistory = DEFAULT_MAX_HISTORY) {
4776
4776
  const pastRef = react.useRef([]);
@@ -5094,5 +5094,5 @@ exports.useNodeResults = useNodeResults;
5094
5094
  exports.useSelectedNodeCount = useSelectedNodeCount;
5095
5095
  exports.useSubworkflowStore = useSubworkflowStore;
5096
5096
  exports.useUndoRedo = useUndoRedo;
5097
- //# sourceMappingURL=chunk-3H5CFLVK.js.map
5098
- //# sourceMappingURL=chunk-3H5CFLVK.js.map
5097
+ //# sourceMappingURL=chunk-U6VFS3RD.js.map
5098
+ //# sourceMappingURL=chunk-U6VFS3RD.js.map