@datatechsolutions/ui 3.7.3 → 3.7.5

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 (91) 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-5W6LMDXV.mjs → chunk-4HP7XS5I.mjs} +4 -4
  6. package/dist/{chunk-5W6LMDXV.mjs.map → chunk-4HP7XS5I.mjs.map} +1 -1
  7. package/dist/{chunk-7JZFNKJD.js → chunk-7WIWDSF6.js} +36 -36
  8. package/dist/{chunk-7JZFNKJD.js.map → chunk-7WIWDSF6.js.map} +1 -1
  9. package/dist/{chunk-FKUIVS6I.js → chunk-BEUPW5WS.js} +28 -28
  10. package/dist/{chunk-FKUIVS6I.js.map → chunk-BEUPW5WS.js.map} +1 -1
  11. package/dist/{chunk-PYNXIDG3.mjs → chunk-CTCO2YI5.mjs} +3 -3
  12. package/dist/{chunk-PYNXIDG3.mjs.map → chunk-CTCO2YI5.mjs.map} +1 -1
  13. package/dist/{chunk-A4A3SQTV.mjs → chunk-DCBRGVD3.mjs} +3 -3
  14. package/dist/{chunk-A4A3SQTV.mjs.map → chunk-DCBRGVD3.mjs.map} +1 -1
  15. package/dist/{chunk-E57RZXOR.js → chunk-DWIBK7GV.js} +25 -25
  16. package/dist/{chunk-E57RZXOR.js.map → chunk-DWIBK7GV.js.map} +1 -1
  17. package/dist/{chunk-5YVOLHSW.mjs → chunk-EIZM2EQA.mjs} +4 -4
  18. package/dist/{chunk-5YVOLHSW.mjs.map → chunk-EIZM2EQA.mjs.map} +1 -1
  19. package/dist/{chunk-TCP45Q4B.js → chunk-FIB2CFJK.js} +9 -9
  20. package/dist/{chunk-TCP45Q4B.js.map → chunk-FIB2CFJK.js.map} +1 -1
  21. package/dist/{chunk-32DHEVOH.mjs → chunk-GAN7AKZ2.mjs} +3 -3
  22. package/dist/{chunk-32DHEVOH.mjs.map → chunk-GAN7AKZ2.mjs.map} +1 -1
  23. package/dist/{chunk-FNA66TT4.js → chunk-GD6FHRHV.js} +3 -3
  24. package/dist/{chunk-FNA66TT4.js.map → chunk-GD6FHRHV.js.map} +1 -1
  25. package/dist/{chunk-PCUINUIC.mjs → chunk-IKH5IRDK.mjs} +3 -3
  26. package/dist/{chunk-PCUINUIC.mjs.map → chunk-IKH5IRDK.mjs.map} +1 -1
  27. package/dist/{chunk-VS6PTRQ7.mjs → chunk-IKHWYYZC.mjs} +3 -3
  28. package/dist/{chunk-VS6PTRQ7.mjs.map → chunk-IKHWYYZC.mjs.map} +1 -1
  29. package/dist/{chunk-3H5CFLVK.js → chunk-IYDGO7RW.js} +135 -135
  30. package/dist/{chunk-3H5CFLVK.js.map → chunk-IYDGO7RW.js.map} +1 -1
  31. package/dist/{chunk-CZZOCKEA.mjs → chunk-JUDQX6MP.mjs} +3 -3
  32. package/dist/{chunk-CZZOCKEA.mjs.map → chunk-JUDQX6MP.mjs.map} +1 -1
  33. package/dist/{chunk-HBOORO52.js → chunk-KI4UPW4Z.js} +4 -4
  34. package/dist/{chunk-HBOORO52.js.map → chunk-KI4UPW4Z.js.map} +1 -1
  35. package/dist/{chunk-74BU2EBZ.mjs → chunk-KZSL7AXW.mjs} +6 -6
  36. package/dist/{chunk-74BU2EBZ.mjs.map → chunk-KZSL7AXW.mjs.map} +1 -1
  37. package/dist/{chunk-Q4QORAMH.js → chunk-MFAVWJWE.js} +10 -10
  38. package/dist/{chunk-Q4QORAMH.js.map → chunk-MFAVWJWE.js.map} +1 -1
  39. package/dist/{chunk-KKXI7CPF.mjs → chunk-MGZTZELL.mjs} +3 -3
  40. package/dist/{chunk-KKXI7CPF.mjs.map → chunk-MGZTZELL.mjs.map} +1 -1
  41. package/dist/{chunk-ZP37M2QK.mjs → chunk-MRLEINJN.mjs} +7 -7
  42. package/dist/{chunk-ZP37M2QK.mjs.map → chunk-MRLEINJN.mjs.map} +1 -1
  43. package/dist/{chunk-57E4TCB2.mjs → chunk-N5365CGD.mjs} +3 -3
  44. package/dist/{chunk-57E4TCB2.mjs.map → chunk-N5365CGD.mjs.map} +1 -1
  45. package/dist/{chunk-EWYAM4WJ.mjs → chunk-P7GVXI7Y.mjs} +3 -3
  46. package/dist/{chunk-EWYAM4WJ.mjs.map → chunk-P7GVXI7Y.mjs.map} +1 -1
  47. package/dist/{chunk-3X3IYDG6.js → chunk-QL2JYRBN.js} +68 -68
  48. package/dist/{chunk-3X3IYDG6.js.map → chunk-QL2JYRBN.js.map} +1 -1
  49. package/dist/{chunk-RCHTRG7R.js → chunk-R2RPRRB4.js} +55 -55
  50. package/dist/{chunk-RCHTRG7R.js.map → chunk-R2RPRRB4.js.map} +1 -1
  51. package/dist/{chunk-H37VDL7Y.js → chunk-RBB5YGWH.js} +4 -4
  52. package/dist/{chunk-H37VDL7Y.js.map → chunk-RBB5YGWH.js.map} +1 -1
  53. package/dist/{chunk-TJPPZU77.js → chunk-SUU7XPRX.js} +34 -34
  54. package/dist/{chunk-TJPPZU77.js.map → chunk-SUU7XPRX.js.map} +1 -1
  55. package/dist/{chunk-VPFVW7ZF.js → chunk-XT76DMP5.js} +35 -35
  56. package/dist/{chunk-VPFVW7ZF.js.map → chunk-XT76DMP5.js.map} +1 -1
  57. package/dist/{chunk-F35GFICG.js → chunk-Y2FR242F.js} +13 -13
  58. package/dist/{chunk-F35GFICG.js.map → chunk-Y2FR242F.js.map} +1 -1
  59. package/dist/{chunk-WDBVIU7W.mjs → chunk-YNHQ36UU.mjs} +3 -3
  60. package/dist/{chunk-WDBVIU7W.mjs.map → chunk-YNHQ36UU.mjs.map} +1 -1
  61. package/dist/{chunk-E6C7MFHJ.mjs → chunk-Z3BMHKKH.mjs} +3 -3
  62. package/dist/{chunk-E6C7MFHJ.mjs.map → chunk-Z3BMHKKH.mjs.map} +1 -1
  63. package/dist/{chunk-Q7HRCCFT.js → chunk-ZF7RJNPD.js} +45 -45
  64. package/dist/{chunk-Q7HRCCFT.js.map → chunk-ZF7RJNPD.js.map} +1 -1
  65. package/dist/index.js +665 -665
  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.d.mts +12 -0
  82. package/dist/platform/pages/index.d.ts +12 -0
  83. package/dist/platform/pages/index.js +416 -254
  84. package/dist/platform/pages/index.js.map +1 -1
  85. package/dist/platform/pages/index.mjs +193 -31
  86. package/dist/platform/pages/index.mjs.map +1 -1
  87. package/dist/platform/settings/index.js +7 -7
  88. package/dist/platform/settings/index.mjs +6 -6
  89. package/dist/platform/workflow-canvas-shell.js +5 -5
  90. package/dist/platform/workflow-canvas-shell.mjs +4 -4
  91. package/package.json +1 -1
@@ -2,16 +2,16 @@
2
2
  'use strict';
3
3
 
4
4
  var chunk3T2WGL47_js = require('../../chunk-3T2WGL47.js');
5
- var chunkFKUIVS6I_js = require('../../chunk-FKUIVS6I.js');
6
- var chunkTJPPZU77_js = require('../../chunk-TJPPZU77.js');
7
- var chunk3H5CFLVK_js = require('../../chunk-3H5CFLVK.js');
5
+ var chunkBEUPW5WS_js = require('../../chunk-BEUPW5WS.js');
6
+ var chunkSUU7XPRX_js = require('../../chunk-SUU7XPRX.js');
7
+ var chunkIYDGO7RW_js = require('../../chunk-IYDGO7RW.js');
8
8
  require('../../chunk-55H6WZQP.js');
9
9
  require('../../chunk-DJDZIRM6.js');
10
- require('../../chunk-3X3IYDG6.js');
11
- var chunkFNA66TT4_js = require('../../chunk-FNA66TT4.js');
12
- require('../../chunk-YXN2K77G.js');
10
+ require('../../chunk-QL2JYRBN.js');
11
+ var chunkGD6FHRHV_js = require('../../chunk-GD6FHRHV.js');
13
12
  require('../../chunk-SY4MUT5V.js');
14
13
  require('../../chunk-2OZZH2IO.js');
14
+ require('../../chunk-YXN2K77G.js');
15
15
  require('../../chunk-EZQ2D47U.js');
16
16
  var chunkBHOT22QL_js = require('../../chunk-BHOT22QL.js');
17
17
  require('../../chunk-UZ3CMNUJ.js');
@@ -27,7 +27,7 @@ function AgentsModelsPageView({ labels, models, loading }) {
27
27
  const filteredModels = searchTerm.trim() ? allModels.filter((model) => model.name.toLowerCase().includes(searchTerm.trim().toLowerCase())) : allModels;
28
28
  const isEmpty = allModels.length === 0;
29
29
  const hero = /* @__PURE__ */ jsxRuntime.jsx(
30
- chunkFNA66TT4_js.HeroSection,
30
+ chunkGD6FHRHV_js.HeroSection,
31
31
  {
32
32
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.CubeTransparentIcon, { className: "h-5 w-5" }),
33
33
  label: labels.title,
@@ -36,9 +36,9 @@ function AgentsModelsPageView({ labels, models, loading }) {
36
36
  gradient: "from-emerald-500 to-teal-700"
37
37
  }
38
38
  );
39
- const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
39
+ const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
40
40
  /* @__PURE__ */ jsxRuntime.jsx(
41
- chunkFNA66TT4_js.SearchBar,
41
+ chunkGD6FHRHV_js.SearchBar,
42
42
  {
43
43
  searchTerm,
44
44
  onSearchChange: setSearchTerm,
@@ -46,7 +46,7 @@ function AgentsModelsPageView({ labels, models, loading }) {
46
46
  }
47
47
  ),
48
48
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredModels.map((model) => /* @__PURE__ */ jsxRuntime.jsx(
49
- chunkFNA66TT4_js.EntityCard,
49
+ chunkGD6FHRHV_js.EntityCard,
50
50
  {
51
51
  accentGradient: "from-emerald-500 to-teal-700",
52
52
  icon: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-lg bg-emerald-500/10 text-emerald-600 dark:bg-emerald-500/20 dark:text-emerald-400", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CubeTransparentIcon, { className: "h-6 w-6" }) }),
@@ -57,7 +57,7 @@ function AgentsModelsPageView({ labels, models, loading }) {
57
57
  model.id
58
58
  )) })
59
59
  ] });
60
- return /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.ManagementPageLayout, { hero, content });
60
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.ManagementPageLayout, { hero, content });
61
61
  }
62
62
  function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpdate, onDelete }) {
63
63
  const [editing, setEditing] = react.useState(null);
@@ -68,7 +68,7 @@ function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpd
68
68
  const filteredAgents = searchTerm.trim() ? allAgents.filter((agent) => String(agent.name ?? "").toLowerCase().includes(searchTerm.trim().toLowerCase())) : allAgents;
69
69
  const isEmpty = allAgents.length === 0;
70
70
  const hero = /* @__PURE__ */ jsxRuntime.jsx(
71
- chunkFNA66TT4_js.HeroSection,
71
+ chunkGD6FHRHV_js.HeroSection,
72
72
  {
73
73
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-5 w-5" }),
74
74
  label: labels.title,
@@ -76,7 +76,7 @@ function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpd
76
76
  subtitle: labels.subtitle,
77
77
  gradient: "from-violet-500 to-indigo-700",
78
78
  toolbar: !isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
79
- chunkFNA66TT4_js.SearchBar,
79
+ chunkGD6FHRHV_js.SearchBar,
80
80
  {
81
81
  searchTerm,
82
82
  onSearchChange: setSearchTerm,
@@ -85,7 +85,7 @@ function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpd
85
85
  }
86
86
  ) : void 0,
87
87
  actions: /* @__PURE__ */ jsxRuntime.jsx(
88
- chunkFNA66TT4_js.CreateActionButton,
88
+ chunkGD6FHRHV_js.CreateActionButton,
89
89
  {
90
90
  mode: "desktop",
91
91
  label: labels.addAgent,
@@ -96,7 +96,7 @@ function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpd
96
96
  }
97
97
  );
98
98
  const mobileAction = /* @__PURE__ */ jsxRuntime.jsx(
99
- chunkFNA66TT4_js.CreateActionButton,
99
+ chunkGD6FHRHV_js.CreateActionButton,
100
100
  {
101
101
  mode: "mobile",
102
102
  label: labels.addAgent,
@@ -104,10 +104,10 @@ function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpd
104
104
  accent: "violet"
105
105
  }
106
106
  );
107
- const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredAgents.map((agent) => {
107
+ const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredAgents.map((agent) => {
108
108
  const modelRecord = models.find((model) => model.id === String(agent.modelId ?? ""));
109
109
  return /* @__PURE__ */ jsxRuntime.jsx(
110
- chunkFNA66TT4_js.EntityCard,
110
+ chunkGD6FHRHV_js.EntityCard,
111
111
  {
112
112
  accentGradient: "from-violet-500 to-indigo-700",
113
113
  icon: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-lg bg-violet-500/10 text-violet-600 dark:bg-violet-500/20 dark:text-violet-400", children: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-6 w-6" }) }),
@@ -144,7 +144,7 @@ function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpd
144
144
  );
145
145
  }) });
146
146
  const renderForm = (initial, onSubmit) => /* @__PURE__ */ jsxRuntime.jsx(
147
- chunkFNA66TT4_js.GlassModal,
147
+ chunkGD6FHRHV_js.GlassModal,
148
148
  {
149
149
  open: true,
150
150
  onClose: () => {
@@ -167,18 +167,18 @@ function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpd
167
167
  outputSchema: String(form.get("outputSchema") ?? "").trim() || void 0
168
168
  });
169
169
  },
170
- children: /* @__PURE__ */ jsxRuntime.jsxs(chunkFNA66TT4_js.FormGrid, { children: [
171
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormInput, { name: "name", label: labels.name, defaultValue: initial.name ?? "", required: true }),
172
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormSelect, { name: "modelId", label: labels.model, options: modelOptions, defaultValue: initial.modelId ?? modelOptions[0]?.value ?? "", required: true }),
173
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormInput, { name: "maxTokens", label: String(labels.maxTokens), type: "number", defaultValue: String(initial.maxTokens ?? 2048) }),
174
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormInput, { name: "temperature", label: labels.temperature, type: "number", step: 0.1, min: 0, max: 2, defaultValue: String(initial.temperature ?? 0.2) }),
175
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormTextarea, { name: "systemPrompt", label: labels.systemPrompt, defaultValue: initial.systemPrompt ?? "", rows: 4 }),
176
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormTextarea, { name: "outputSchema", label: labels.outputSchema, placeholder: labels.outputSchemaPlaceholder, defaultValue: initial.outputSchema ?? "", rows: 4 })
170
+ children: /* @__PURE__ */ jsxRuntime.jsxs(chunkGD6FHRHV_js.FormGrid, { children: [
171
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormInput, { name: "name", label: labels.name, defaultValue: initial.name ?? "", required: true }),
172
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormSelect, { name: "modelId", label: labels.model, options: modelOptions, defaultValue: initial.modelId ?? modelOptions[0]?.value ?? "", required: true }),
173
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormInput, { name: "maxTokens", label: String(labels.maxTokens), type: "number", defaultValue: String(initial.maxTokens ?? 2048) }),
174
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormInput, { name: "temperature", label: labels.temperature, type: "number", step: 0.1, min: 0, max: 2, defaultValue: String(initial.temperature ?? 0.2) }),
175
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormTextarea, { name: "systemPrompt", label: labels.systemPrompt, defaultValue: initial.systemPrompt ?? "", rows: 4 }),
176
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormTextarea, { name: "outputSchema", label: labels.outputSchema, placeholder: labels.outputSchemaPlaceholder, defaultValue: initial.outputSchema ?? "", rows: 4 })
177
177
  ] })
178
178
  }
179
179
  );
180
180
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
181
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.ManagementPageLayout, { hero, content, mobileAction }),
181
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.ManagementPageLayout, { hero, content, mobileAction }),
182
182
  createOpen && renderForm({ title: labels.createTitle }, (input) => {
183
183
  onCreate(input);
184
184
  setCreateOpen(false);
@@ -236,7 +236,7 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
236
236
  }) : allPrompts;
237
237
  const isEmpty = allPrompts.length === 0;
238
238
  const hero = /* @__PURE__ */ jsxRuntime.jsx(
239
- chunkFNA66TT4_js.HeroSection,
239
+ chunkGD6FHRHV_js.HeroSection,
240
240
  {
241
241
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.ChatBubbleLeftEllipsisIcon, { className: "h-5 w-5" }),
242
242
  label: labels.title,
@@ -244,7 +244,7 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
244
244
  subtitle: labels.subtitle,
245
245
  gradient: "from-sky-500 to-blue-700",
246
246
  toolbar: /* @__PURE__ */ jsxRuntime.jsx(
247
- chunkFNA66TT4_js.CreateActionButton,
247
+ chunkGD6FHRHV_js.CreateActionButton,
248
248
  {
249
249
  mode: "desktop",
250
250
  label: labels.addPrompt,
@@ -255,7 +255,7 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
255
255
  }
256
256
  );
257
257
  const mobileAction = /* @__PURE__ */ jsxRuntime.jsx(
258
- chunkFNA66TT4_js.CreateActionButton,
258
+ chunkGD6FHRHV_js.CreateActionButton,
259
259
  {
260
260
  mode: "mobile",
261
261
  label: labels.addPrompt,
@@ -263,9 +263,9 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
263
263
  accent: "sky"
264
264
  }
265
265
  );
266
- const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
266
+ const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
267
267
  /* @__PURE__ */ jsxRuntime.jsx(
268
- chunkFNA66TT4_js.SearchBar,
268
+ chunkGD6FHRHV_js.SearchBar,
269
269
  {
270
270
  searchTerm,
271
271
  onSearchChange: setSearchTerm,
@@ -276,7 +276,7 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
276
276
  const agentName = agentNameById.get(prompt.agentId) ?? prompt.agentId;
277
277
  const key = `${prompt.agentId}:${prompt.locale}:${prompt.version}`;
278
278
  return /* @__PURE__ */ jsxRuntime.jsx(
279
- chunkFNA66TT4_js.EntityCard,
279
+ chunkGD6FHRHV_js.EntityCard,
280
280
  {
281
281
  accentGradient: "from-sky-500 to-blue-700",
282
282
  icon: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-lg bg-sky-500/10 text-sky-600 dark:bg-sky-500/20 dark:text-sky-400", children: /* @__PURE__ */ jsxRuntime.jsx(outline.ChatBubbleLeftEllipsisIcon, { className: "h-6 w-6" }) }),
@@ -305,9 +305,9 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
305
305
  }) })
306
306
  ] });
307
307
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
308
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.ManagementPageLayout, { hero, content, mobileAction }),
308
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.ManagementPageLayout, { hero, content, mobileAction }),
309
309
  /* @__PURE__ */ jsxRuntime.jsx(
310
- chunkFNA66TT4_js.GlassModal,
310
+ chunkGD6FHRHV_js.GlassModal,
311
311
  {
312
312
  open: createOpen,
313
313
  onClose: () => setCreateOpen(false),
@@ -331,11 +331,11 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
331
331
  });
332
332
  setCreateOpen(false);
333
333
  },
334
- children: /* @__PURE__ */ jsxRuntime.jsxs(chunkFNA66TT4_js.FormGrid, { children: [
335
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormSelect, { name: "agentId", label: labels.agent, options: agentOptions, required: true }),
336
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormSelect, { name: "locale", label: labels.locale, options: LOCALE_OPTIONS, defaultValue: "en" }),
334
+ children: /* @__PURE__ */ jsxRuntime.jsxs(chunkGD6FHRHV_js.FormGrid, { children: [
335
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormSelect, { name: "agentId", label: labels.agent, options: agentOptions, required: true }),
336
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormSelect, { name: "locale", label: labels.locale, options: LOCALE_OPTIONS, defaultValue: "en" }),
337
337
  /* @__PURE__ */ jsxRuntime.jsx(
338
- chunkFNA66TT4_js.FormSelect,
338
+ chunkGD6FHRHV_js.FormSelect,
339
339
  {
340
340
  name: "isActive",
341
341
  label: labels.isActive,
@@ -343,10 +343,10 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
343
343
  defaultValue: "true"
344
344
  }
345
345
  ),
346
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormInput, { name: "reason", label: labels.reason }),
347
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormTextarea, { name: "systemPrompt", label: labels.systemPrompt, rows: 3 }),
348
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormTextarea, { name: "userTemplate", label: labels.userTemplate, rows: 3 }),
349
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormTextarea, { name: "prompt", label: labels.prompt, rows: 6, required: true })
346
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormInput, { name: "reason", label: labels.reason }),
347
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormTextarea, { name: "systemPrompt", label: labels.systemPrompt, rows: 3 }),
348
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormTextarea, { name: "userTemplate", label: labels.userTemplate, rows: 3 }),
349
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormTextarea, { name: "prompt", label: labels.prompt, rows: 6, required: true })
350
350
  ] })
351
351
  }
352
352
  )
@@ -381,7 +381,7 @@ function AgentsToolDefinitionsPageView({ labels, tools, loading, onCreate, onUpd
381
381
  const filteredTools = searchTerm.trim() ? allTools.filter((tool) => tool.name.toLowerCase().includes(searchTerm.trim().toLowerCase())) : allTools;
382
382
  const isEmpty = allTools.length === 0;
383
383
  const hero = /* @__PURE__ */ jsxRuntime.jsx(
384
- chunkFNA66TT4_js.HeroSection,
384
+ chunkGD6FHRHV_js.HeroSection,
385
385
  {
386
386
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.WrenchScrewdriverIcon, { className: "h-5 w-5" }),
387
387
  label: labels.title,
@@ -389,7 +389,7 @@ function AgentsToolDefinitionsPageView({ labels, tools, loading, onCreate, onUpd
389
389
  subtitle: labels.subtitle,
390
390
  gradient: "from-amber-500 to-orange-700",
391
391
  toolbar: /* @__PURE__ */ jsxRuntime.jsx(
392
- chunkFNA66TT4_js.CreateActionButton,
392
+ chunkGD6FHRHV_js.CreateActionButton,
393
393
  {
394
394
  mode: "desktop",
395
395
  label: labels.addTool,
@@ -400,7 +400,7 @@ function AgentsToolDefinitionsPageView({ labels, tools, loading, onCreate, onUpd
400
400
  }
401
401
  );
402
402
  const mobileAction = /* @__PURE__ */ jsxRuntime.jsx(
403
- chunkFNA66TT4_js.CreateActionButton,
403
+ chunkGD6FHRHV_js.CreateActionButton,
404
404
  {
405
405
  mode: "mobile",
406
406
  label: labels.addTool,
@@ -408,9 +408,9 @@ function AgentsToolDefinitionsPageView({ labels, tools, loading, onCreate, onUpd
408
408
  accent: "amber"
409
409
  }
410
410
  );
411
- const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
411
+ const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
412
412
  /* @__PURE__ */ jsxRuntime.jsx(
413
- chunkFNA66TT4_js.SearchBar,
413
+ chunkGD6FHRHV_js.SearchBar,
414
414
  {
415
415
  searchTerm,
416
416
  onSearchChange: setSearchTerm,
@@ -418,7 +418,7 @@ function AgentsToolDefinitionsPageView({ labels, tools, loading, onCreate, onUpd
418
418
  }
419
419
  ),
420
420
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredTools.map((tool) => /* @__PURE__ */ jsxRuntime.jsx(
421
- chunkFNA66TT4_js.EntityCard,
421
+ chunkGD6FHRHV_js.EntityCard,
422
422
  {
423
423
  accentGradient: "from-amber-500 to-orange-700",
424
424
  icon: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-lg bg-amber-500/10 text-amber-600 dark:bg-amber-500/20 dark:text-amber-400", children: /* @__PURE__ */ jsxRuntime.jsx(outline.WrenchScrewdriverIcon, { className: "h-6 w-6" }) }),
@@ -446,7 +446,7 @@ function AgentsToolDefinitionsPageView({ labels, tools, loading, onCreate, onUpd
446
446
  )) })
447
447
  ] });
448
448
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
449
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.ManagementPageLayout, { hero, content, mobileAction }),
449
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.ManagementPageLayout, { hero, content, mobileAction }),
450
450
  createOpen && /* @__PURE__ */ jsxRuntime.jsx(
451
451
  ToolEditor,
452
452
  {
@@ -504,7 +504,7 @@ function ToolEditor({
504
504
  setValue((v) => ({ ...v, [key]: next }));
505
505
  };
506
506
  return /* @__PURE__ */ jsxRuntime.jsx(
507
- chunkFNA66TT4_js.GlassModal,
507
+ chunkGD6FHRHV_js.GlassModal,
508
508
  {
509
509
  open: true,
510
510
  onClose,
@@ -517,9 +517,9 @@ function ToolEditor({
517
517
  handleSubmit();
518
518
  },
519
519
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
520
- /* @__PURE__ */ jsxRuntime.jsxs(chunkFNA66TT4_js.FormGrid, { children: [
520
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkGD6FHRHV_js.FormGrid, { children: [
521
521
  /* @__PURE__ */ jsxRuntime.jsx(
522
- chunkFNA66TT4_js.FormInput,
522
+ chunkGD6FHRHV_js.FormInput,
523
523
  {
524
524
  label: "Name",
525
525
  required: true,
@@ -529,7 +529,7 @@ function ToolEditor({
529
529
  }
530
530
  ),
531
531
  /* @__PURE__ */ jsxRuntime.jsx(
532
- chunkFNA66TT4_js.FormSelect,
532
+ chunkGD6FHRHV_js.FormSelect,
533
533
  {
534
534
  label: "Tool type",
535
535
  value: value.toolType,
@@ -539,7 +539,7 @@ function ToolEditor({
539
539
  }
540
540
  ),
541
541
  /* @__PURE__ */ jsxRuntime.jsx(
542
- chunkFNA66TT4_js.FormSelect,
542
+ chunkGD6FHRHV_js.FormSelect,
543
543
  {
544
544
  label: "Enabled",
545
545
  value: value.enabled ? "true" : "false",
@@ -548,7 +548,7 @@ function ToolEditor({
548
548
  }
549
549
  ),
550
550
  /* @__PURE__ */ jsxRuntime.jsx(
551
- chunkFNA66TT4_js.FormInput,
551
+ chunkGD6FHRHV_js.FormInput,
552
552
  {
553
553
  label: "Icon (optional)",
554
554
  value: value.icon ?? "",
@@ -558,7 +558,7 @@ function ToolEditor({
558
558
  )
559
559
  ] }),
560
560
  /* @__PURE__ */ jsxRuntime.jsx(
561
- chunkFNA66TT4_js.FormTextarea,
561
+ chunkGD6FHRHV_js.FormTextarea,
562
562
  {
563
563
  label: "Description",
564
564
  rows: 2,
@@ -606,7 +606,7 @@ function ParametersEditor({
606
606
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
607
607
  parameters.map((param, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[1fr_160px_1fr_110px_auto] items-end gap-2", children: [
608
608
  /* @__PURE__ */ jsxRuntime.jsx(
609
- chunkFNA66TT4_js.FormInput,
609
+ chunkGD6FHRHV_js.FormInput,
610
610
  {
611
611
  label: "Name",
612
612
  value: param.name,
@@ -615,7 +615,7 @@ function ParametersEditor({
615
615
  }
616
616
  ),
617
617
  /* @__PURE__ */ jsxRuntime.jsx(
618
- chunkFNA66TT4_js.FormSelect,
618
+ chunkGD6FHRHV_js.FormSelect,
619
619
  {
620
620
  label: "Type",
621
621
  value: param.type,
@@ -624,7 +624,7 @@ function ParametersEditor({
624
624
  }
625
625
  ),
626
626
  /* @__PURE__ */ jsxRuntime.jsx(
627
- chunkFNA66TT4_js.FormInput,
627
+ chunkGD6FHRHV_js.FormInput,
628
628
  {
629
629
  label: "Description",
630
630
  value: param.description,
@@ -658,9 +658,9 @@ function HandlerConfigEditor({
658
658
  if (toolType === "http") {
659
659
  return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "rounded-xl border border-slate-200 bg-slate-50/60 p-3 dark:border-slate-700 dark:bg-slate-900/40", children: [
660
660
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-2 text-sm font-semibold text-slate-700 dark:text-slate-200", children: "HTTP handler" }),
661
- /* @__PURE__ */ jsxRuntime.jsxs(chunkFNA66TT4_js.FormGrid, { children: [
661
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkGD6FHRHV_js.FormGrid, { children: [
662
662
  /* @__PURE__ */ jsxRuntime.jsx(
663
- chunkFNA66TT4_js.FormSelect,
663
+ chunkGD6FHRHV_js.FormSelect,
664
664
  {
665
665
  label: "Method",
666
666
  value: stringProp(config, "method", "GET"),
@@ -669,7 +669,7 @@ function HandlerConfigEditor({
669
669
  }
670
670
  ),
671
671
  /* @__PURE__ */ jsxRuntime.jsx(
672
- chunkFNA66TT4_js.FormInput,
672
+ chunkGD6FHRHV_js.FormInput,
673
673
  {
674
674
  label: "URL template",
675
675
  value: stringProp(config, "url"),
@@ -679,7 +679,7 @@ function HandlerConfigEditor({
679
679
  )
680
680
  ] }),
681
681
  /* @__PURE__ */ jsxRuntime.jsx(
682
- chunkFNA66TT4_js.FormTextarea,
682
+ chunkGD6FHRHV_js.FormTextarea,
683
683
  {
684
684
  label: "Headers (JSON)",
685
685
  rows: 3,
@@ -689,7 +689,7 @@ function HandlerConfigEditor({
689
689
  }
690
690
  ),
691
691
  /* @__PURE__ */ jsxRuntime.jsx(
692
- chunkFNA66TT4_js.FormTextarea,
692
+ chunkGD6FHRHV_js.FormTextarea,
693
693
  {
694
694
  label: "Body template",
695
695
  rows: 3,
@@ -704,7 +704,7 @@ function HandlerConfigEditor({
704
704
  return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "rounded-xl border border-slate-200 bg-slate-50/60 p-3 dark:border-slate-700 dark:bg-slate-900/40", children: [
705
705
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-2 text-sm font-semibold text-slate-700 dark:text-slate-200", children: "Function handler" }),
706
706
  /* @__PURE__ */ jsxRuntime.jsx(
707
- chunkFNA66TT4_js.FormInput,
707
+ chunkGD6FHRHV_js.FormInput,
708
708
  {
709
709
  label: "Implementation key",
710
710
  value: stringProp(config, "implementationKey"),
@@ -718,9 +718,9 @@ function HandlerConfigEditor({
718
718
  if (toolType === "database_query") {
719
719
  return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "rounded-xl border border-slate-200 bg-slate-50/60 p-3 dark:border-slate-700 dark:bg-slate-900/40", children: [
720
720
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-2 text-sm font-semibold text-slate-700 dark:text-slate-200", children: "Database query handler" }),
721
- /* @__PURE__ */ jsxRuntime.jsxs(chunkFNA66TT4_js.FormGrid, { children: [
721
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkGD6FHRHV_js.FormGrid, { children: [
722
722
  /* @__PURE__ */ jsxRuntime.jsx(
723
- chunkFNA66TT4_js.FormInput,
723
+ chunkGD6FHRHV_js.FormInput,
724
724
  {
725
725
  label: "Datasource ID",
726
726
  value: stringProp(config, "datasourceId"),
@@ -729,7 +729,7 @@ function HandlerConfigEditor({
729
729
  }
730
730
  ),
731
731
  /* @__PURE__ */ jsxRuntime.jsx(
732
- chunkFNA66TT4_js.FormInput,
732
+ chunkGD6FHRHV_js.FormInput,
733
733
  {
734
734
  label: "Max rows",
735
735
  type: "number",
@@ -739,7 +739,7 @@ function HandlerConfigEditor({
739
739
  )
740
740
  ] }),
741
741
  /* @__PURE__ */ jsxRuntime.jsx(
742
- chunkFNA66TT4_js.FormTextarea,
742
+ chunkGD6FHRHV_js.FormTextarea,
743
743
  {
744
744
  label: "Query template",
745
745
  rows: 4,
@@ -755,7 +755,7 @@ function HandlerConfigEditor({
755
755
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-2 text-sm font-semibold text-slate-700 dark:text-slate-200", children: "Code execution handler" }),
756
756
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs text-amber-600 dark:text-amber-400", children: "Experimental \u2014 sandbox is not yet enforced. Only enable for trusted tools." }),
757
757
  /* @__PURE__ */ jsxRuntime.jsx(
758
- chunkFNA66TT4_js.FormSelect,
758
+ chunkGD6FHRHV_js.FormSelect,
759
759
  {
760
760
  label: "Language",
761
761
  value: stringProp(config, "language", "javascript"),
@@ -767,7 +767,7 @@ function HandlerConfigEditor({
767
767
  }
768
768
  ),
769
769
  /* @__PURE__ */ jsxRuntime.jsx(
770
- chunkFNA66TT4_js.FormTextarea,
770
+ chunkGD6FHRHV_js.FormTextarea,
771
771
  {
772
772
  label: "Code",
773
773
  rows: 6,
@@ -780,9 +780,9 @@ function HandlerConfigEditor({
780
780
  }
781
781
  return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "rounded-xl border border-slate-200 bg-slate-50/60 p-3 dark:border-slate-700 dark:bg-slate-900/40", children: [
782
782
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-2 text-sm font-semibold text-slate-700 dark:text-slate-200", children: "API call handler" }),
783
- /* @__PURE__ */ jsxRuntime.jsxs(chunkFNA66TT4_js.FormGrid, { children: [
783
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkGD6FHRHV_js.FormGrid, { children: [
784
784
  /* @__PURE__ */ jsxRuntime.jsx(
785
- chunkFNA66TT4_js.FormInput,
785
+ chunkGD6FHRHV_js.FormInput,
786
786
  {
787
787
  label: "URL",
788
788
  value: stringProp(config, "url"),
@@ -790,7 +790,7 @@ function HandlerConfigEditor({
790
790
  }
791
791
  ),
792
792
  /* @__PURE__ */ jsxRuntime.jsx(
793
- chunkFNA66TT4_js.FormSelect,
793
+ chunkGD6FHRHV_js.FormSelect,
794
794
  {
795
795
  label: "Auth",
796
796
  value: stringProp(config, "authType", "bearer"),
@@ -804,7 +804,7 @@ function HandlerConfigEditor({
804
804
  }
805
805
  ),
806
806
  /* @__PURE__ */ jsxRuntime.jsx(
807
- chunkFNA66TT4_js.FormInput,
807
+ chunkGD6FHRHV_js.FormInput,
808
808
  {
809
809
  label: "Credential secret id",
810
810
  value: stringProp(config, "credentialRef"),
@@ -937,7 +937,7 @@ function RulesPageView({ labels, rules, loading, onCreate, onUpdate, onDelete })
937
937
  const filteredRules = searchTerm.trim() ? allRules.filter((rule) => (rule.name ?? "").toLowerCase().includes(searchTerm.trim().toLowerCase())) : allRules;
938
938
  const isEmpty = allRules.length === 0;
939
939
  const hero = /* @__PURE__ */ jsxRuntime.jsx(
940
- chunkFNA66TT4_js.HeroSection,
940
+ chunkGD6FHRHV_js.HeroSection,
941
941
  {
942
942
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.AdjustmentsHorizontalIcon, { className: "h-5 w-5" }),
943
943
  label: labels.title,
@@ -945,7 +945,7 @@ function RulesPageView({ labels, rules, loading, onCreate, onUpdate, onDelete })
945
945
  subtitle: labels.subtitle,
946
946
  gradient: "from-fuchsia-500 to-purple-700",
947
947
  toolbar: /* @__PURE__ */ jsxRuntime.jsx(
948
- chunkFNA66TT4_js.CreateActionButton,
948
+ chunkGD6FHRHV_js.CreateActionButton,
949
949
  {
950
950
  mode: "desktop",
951
951
  label: labels.addRule,
@@ -956,7 +956,7 @@ function RulesPageView({ labels, rules, loading, onCreate, onUpdate, onDelete })
956
956
  }
957
957
  );
958
958
  const mobileAction = /* @__PURE__ */ jsxRuntime.jsx(
959
- chunkFNA66TT4_js.CreateActionButton,
959
+ chunkGD6FHRHV_js.CreateActionButton,
960
960
  {
961
961
  mode: "mobile",
962
962
  label: labels.addRule,
@@ -964,9 +964,9 @@ function RulesPageView({ labels, rules, loading, onCreate, onUpdate, onDelete })
964
964
  accent: "fuchsia"
965
965
  }
966
966
  );
967
- const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
967
+ const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
968
968
  /* @__PURE__ */ jsxRuntime.jsx(
969
- chunkFNA66TT4_js.SearchBar,
969
+ chunkGD6FHRHV_js.SearchBar,
970
970
  {
971
971
  searchTerm,
972
972
  onSearchChange: setSearchTerm,
@@ -974,7 +974,7 @@ function RulesPageView({ labels, rules, loading, onCreate, onUpdate, onDelete })
974
974
  }
975
975
  ),
976
976
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredRules.map((rule) => /* @__PURE__ */ jsxRuntime.jsx(
977
- chunkFNA66TT4_js.EntityCard,
977
+ chunkGD6FHRHV_js.EntityCard,
978
978
  {
979
979
  accentGradient: "from-fuchsia-500 to-purple-700",
980
980
  icon: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-lg bg-fuchsia-500/10 text-fuchsia-600 dark:bg-fuchsia-500/20 dark:text-fuchsia-400", children: /* @__PURE__ */ jsxRuntime.jsx(outline.AdjustmentsHorizontalIcon, { className: "h-6 w-6" }) }),
@@ -1002,13 +1002,13 @@ function RulesPageView({ labels, rules, loading, onCreate, onUpdate, onDelete })
1002
1002
  )) })
1003
1003
  ] });
1004
1004
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1005
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.ManagementPageLayout, { hero, content, mobileAction }),
1005
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.ManagementPageLayout, { hero, content, mobileAction }),
1006
1006
  createOpen && /* @__PURE__ */ jsxRuntime.jsx(
1007
1007
  RuleEditor,
1008
1008
  {
1009
1009
  title: labels.createTitle,
1010
1010
  saveLabel: labels.save,
1011
- initial: chunk3H5CFLVK_js.defaultRuleForm(),
1011
+ initial: chunkIYDGO7RW_js.defaultRuleForm(),
1012
1012
  onClose: () => setCreateOpen(false),
1013
1013
  onSubmit: (value) => {
1014
1014
  onCreate(value);
@@ -1040,7 +1040,7 @@ function RuleEditor({
1040
1040
  }) {
1041
1041
  const [value, setValue] = react.useState(initial);
1042
1042
  return /* @__PURE__ */ jsxRuntime.jsx(
1043
- chunkFNA66TT4_js.GlassModal,
1043
+ chunkGD6FHRHV_js.GlassModal,
1044
1044
  {
1045
1045
  open: true,
1046
1046
  onClose,
@@ -1052,12 +1052,12 @@ function RuleEditor({
1052
1052
  event.preventDefault();
1053
1053
  onSubmit(value);
1054
1054
  },
1055
- children: /* @__PURE__ */ jsxRuntime.jsx(chunk3H5CFLVK_js.RuleForm, { value, onChange: setValue })
1055
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkIYDGO7RW_js.RuleForm, { value, onChange: setValue })
1056
1056
  }
1057
1057
  );
1058
1058
  }
1059
1059
  function ruleToFormValue(rule) {
1060
- const base = chunk3H5CFLVK_js.defaultRuleForm();
1060
+ const base = chunkIYDGO7RW_js.defaultRuleForm();
1061
1061
  const rawCondition = rule.condition ?? rule.conditions;
1062
1062
  const rawAction = pickAction(rule);
1063
1063
  return {
@@ -1188,7 +1188,7 @@ var SAMPLE_DATASOURCES = [
1188
1188
  ];
1189
1189
  function getDialectLabel(dialect) {
1190
1190
  if (!dialect) return "Unknown";
1191
- for (const category of chunkTJPPZU77_js.DIALECT_CATEGORIES) {
1191
+ for (const category of chunkSUU7XPRX_js.DIALECT_CATEGORIES) {
1192
1192
  const found = category.dialects.find((d) => d.value === dialect);
1193
1193
  if (found) return found.label;
1194
1194
  }
@@ -1196,12 +1196,12 @@ function getDialectLabel(dialect) {
1196
1196
  }
1197
1197
  function getDialectGradient(dialect) {
1198
1198
  if (!dialect) return "from-gray-400 to-gray-500";
1199
- const category = chunkTJPPZU77_js.findCategory(dialect);
1199
+ const category = chunkSUU7XPRX_js.findCategory(dialect);
1200
1200
  return category?.gradient ?? "from-gray-400 to-gray-500";
1201
1201
  }
1202
1202
  function getDialectIcon(dialect) {
1203
1203
  if (!dialect) return outline.CircleStackIcon;
1204
- const category = chunkTJPPZU77_js.findCategory(dialect);
1204
+ const category = chunkSUU7XPRX_js.findCategory(dialect);
1205
1205
  return category?.icon ?? outline.CircleStackIcon;
1206
1206
  }
1207
1207
  var DIALECT_LOGO = {
@@ -1275,7 +1275,7 @@ function DatasourcesPageView({
1275
1275
  }
1276
1276
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
1277
1277
  /* @__PURE__ */ jsxRuntime.jsx(
1278
- chunkFNA66TT4_js.HeroSection,
1278
+ chunkGD6FHRHV_js.HeroSection,
1279
1279
  {
1280
1280
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.CircleStackIcon, { className: "h-5 w-5" }),
1281
1281
  label: labels.title,
@@ -1283,7 +1283,7 @@ function DatasourcesPageView({
1283
1283
  subtitle: labels.subtitle,
1284
1284
  gradient: "from-amber-500 to-orange-600",
1285
1285
  toolbar: /* @__PURE__ */ jsxRuntime.jsx(
1286
- chunkFNA66TT4_js.CreateActionButton,
1286
+ chunkGD6FHRHV_js.CreateActionButton,
1287
1287
  {
1288
1288
  mode: "desktop",
1289
1289
  label: labels.addDatasource,
@@ -1294,7 +1294,7 @@ function DatasourcesPageView({
1294
1294
  }
1295
1295
  ),
1296
1296
  /* @__PURE__ */ jsxRuntime.jsx(
1297
- chunkFNA66TT4_js.CreateActionButton,
1297
+ chunkGD6FHRHV_js.CreateActionButton,
1298
1298
  {
1299
1299
  mode: "mobile",
1300
1300
  label: labels.addDatasource,
@@ -1303,7 +1303,7 @@ function DatasourcesPageView({
1303
1303
  }
1304
1304
  ),
1305
1305
  !isEmpty && /* @__PURE__ */ jsxRuntime.jsx(
1306
- chunkFNA66TT4_js.SearchBar,
1306
+ chunkGD6FHRHV_js.SearchBar,
1307
1307
  {
1308
1308
  searchTerm,
1309
1309
  onSearchChange: setSearchTerm,
@@ -1311,7 +1311,7 @@ function DatasourcesPageView({
1311
1311
  }
1312
1312
  ),
1313
1313
  isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
1314
- chunkFNA66TT4_js.PageEmptyState,
1314
+ chunkGD6FHRHV_js.PageEmptyState,
1315
1315
  {
1316
1316
  title: labels.emptyTitle,
1317
1317
  message: labels.emptyDescription,
@@ -1325,7 +1325,7 @@ function DatasourcesPageView({
1325
1325
  const logoSrc = getDialectLogoSrc(ds.dialect);
1326
1326
  const iconElement = logoSrc ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "liquid-surface flex h-11 w-11 items-center justify-center rounded-lg", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: logoSrc, alt: dialectLabel, className: "h-7 w-7 object-contain" }) }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-11 w-11 items-center justify-center rounded-lg bg-gradient-to-br ${gradient} shadow-lg`, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "h-6 w-6 text-white" }) });
1327
1327
  return /* @__PURE__ */ jsxRuntime.jsx(
1328
- chunkFNA66TT4_js.EntityCard,
1328
+ chunkGD6FHRHV_js.EntityCard,
1329
1329
  {
1330
1330
  accentGradient: gradient,
1331
1331
  icon: iconElement,
@@ -1355,7 +1355,7 @@ function DatasourcesPageView({
1355
1355
  );
1356
1356
  }) }),
1357
1357
  /* @__PURE__ */ jsxRuntime.jsx(
1358
- chunkTJPPZU77_js.DatasourceModal,
1358
+ chunkSUU7XPRX_js.DatasourceModal,
1359
1359
  {
1360
1360
  open: modalOpen,
1361
1361
  onClose: () => setModalOpen(false),
@@ -1370,7 +1370,7 @@ function DashboardPageView({ labels, appLogo }) {
1370
1370
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center mb-6", children: appLogo }),
1371
1371
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-3 text-base text-slate-600 dark:text-slate-300", children: labels.subtitle })
1372
1372
  ] });
1373
- return /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.ManagementPageLayout, { hero, content: null });
1373
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.ManagementPageLayout, { hero, content: null });
1374
1374
  }
1375
1375
  function AgentsIndexPageView({ labels }) {
1376
1376
  const Link = chunkS7KHTUHA_js.useLink();
@@ -1384,7 +1384,7 @@ function AgentsIndexPageView({ labels }) {
1384
1384
  const filteredTiles = searchTerm.trim() ? allTiles.filter((tile) => tile.title.toLowerCase().includes(searchTerm.trim().toLowerCase())) : allTiles;
1385
1385
  const isEmpty = allTiles.length === 0;
1386
1386
  const hero = /* @__PURE__ */ jsxRuntime.jsx(
1387
- chunkFNA66TT4_js.HeroSection,
1387
+ chunkGD6FHRHV_js.HeroSection,
1388
1388
  {
1389
1389
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-5 w-5" }),
1390
1390
  label: labels.title,
@@ -1395,7 +1395,7 @@ function AgentsIndexPageView({ labels }) {
1395
1395
  );
1396
1396
  const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1397
1397
  !isEmpty && /* @__PURE__ */ jsxRuntime.jsx(
1398
- chunkFNA66TT4_js.SearchBar,
1398
+ chunkGD6FHRHV_js.SearchBar,
1399
1399
  {
1400
1400
  searchTerm,
1401
1401
  onSearchChange: setSearchTerm,
@@ -1405,7 +1405,7 @@ function AgentsIndexPageView({ labels }) {
1405
1405
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4", children: filteredTiles.map((tile) => {
1406
1406
  const Icon = tile.icon;
1407
1407
  return /* @__PURE__ */ jsxRuntime.jsx(Link, { href: tile.href, className: "block focus:outline-none", children: /* @__PURE__ */ jsxRuntime.jsx(
1408
- chunkFNA66TT4_js.EntityCard,
1408
+ chunkGD6FHRHV_js.EntityCard,
1409
1409
  {
1410
1410
  accentGradient: tile.gradient,
1411
1411
  icon: /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-11 w-11 items-center justify-center rounded-lg bg-gradient-to-br ${tile.gradient} shadow-lg`, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "h-6 w-6 text-white" }) }),
@@ -1415,13 +1415,13 @@ function AgentsIndexPageView({ labels }) {
1415
1415
  ) }, tile.id);
1416
1416
  }) })
1417
1417
  ] });
1418
- return /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.ManagementPageLayout, { hero, content });
1418
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.ManagementPageLayout, { hero, content });
1419
1419
  }
1420
1420
  function WorkflowsPageView({ labels, workflows, onCreate, onUpdateMeta, onPublish }) {
1421
1421
  const selectedWorkflow = workflows[0] ?? null;
1422
1422
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
1423
1423
  /* @__PURE__ */ jsxRuntime.jsx(
1424
- chunkFNA66TT4_js.SectionHeader,
1424
+ chunkGD6FHRHV_js.SectionHeader,
1425
1425
  {
1426
1426
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.RectangleStackIcon, { className: "h-5 w-5 text-white" }),
1427
1427
  title: labels.title,
@@ -1430,9 +1430,9 @@ function WorkflowsPageView({ labels, workflows, onCreate, onUpdateMeta, onPublis
1430
1430
  }
1431
1431
  ),
1432
1432
  /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "liquid-surface rounded-2xl p-4 space-y-3", children: [
1433
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.Text, { className: "font-semibold text-slate-900 dark:text-slate-100", children: labels.add }),
1433
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.Text, { className: "font-semibold text-slate-900 dark:text-slate-100", children: labels.add }),
1434
1434
  /* @__PURE__ */ jsxRuntime.jsx(
1435
- chunkFNA66TT4_js.Form,
1435
+ chunkGD6FHRHV_js.Form,
1436
1436
  {
1437
1437
  onSubmit: (event) => {
1438
1438
  event.preventDefault();
@@ -1443,32 +1443,32 @@ function WorkflowsPageView({ labels, workflows, onCreate, onUpdateMeta, onPublis
1443
1443
  onCreate({ name, description });
1444
1444
  event.currentTarget.reset();
1445
1445
  },
1446
- children: /* @__PURE__ */ jsxRuntime.jsxs(chunkFNA66TT4_js.FormGrid, { children: [
1447
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormInput, { name: "name", label: labels.workflowName, placeholder: labels.workflowNamePlaceholder, required: true }),
1448
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormTextarea, { name: "description", label: labels.description, placeholder: labels.workflowDescriptionPlaceholder, rows: 3 }),
1449
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormActionsRow, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "submit", children: labels.create }) })
1446
+ children: /* @__PURE__ */ jsxRuntime.jsxs(chunkGD6FHRHV_js.FormGrid, { children: [
1447
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormInput, { name: "name", label: labels.workflowName, placeholder: labels.workflowNamePlaceholder, required: true }),
1448
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormTextarea, { name: "description", label: labels.description, placeholder: labels.workflowDescriptionPlaceholder, rows: 3 }),
1449
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormActionsRow, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "submit", children: labels.create }) })
1450
1450
  ] })
1451
1451
  }
1452
1452
  )
1453
1453
  ] }),
1454
1454
  /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "liquid-surface rounded-2xl p-4 space-y-3", children: [
1455
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.Text, { className: "font-semibold text-slate-900 dark:text-slate-100", children: labels.registry }),
1456
- /* @__PURE__ */ jsxRuntime.jsxs(chunkFNA66TT4_js.Table, { children: [
1457
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.TableHead, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkFNA66TT4_js.TableRow, { children: [
1458
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.TableHeader, { children: labels.name }),
1459
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.TableHeader, { children: labels.description }),
1460
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.TableHeader, { children: labels.version }),
1461
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.TableHeader, { children: labels.status }),
1462
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.TableHeader, { children: labels.actions })
1455
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.Text, { className: "font-semibold text-slate-900 dark:text-slate-100", children: labels.registry }),
1456
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkGD6FHRHV_js.Table, { children: [
1457
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.TableHead, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkGD6FHRHV_js.TableRow, { children: [
1458
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.TableHeader, { children: labels.name }),
1459
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.TableHeader, { children: labels.description }),
1460
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.TableHeader, { children: labels.version }),
1461
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.TableHeader, { children: labels.status }),
1462
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.TableHeader, { children: labels.actions })
1463
1463
  ] }) }),
1464
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.TableBody, { children: workflows.map((workflow) => /* @__PURE__ */ jsxRuntime.jsxs(chunkFNA66TT4_js.TableRow, { children: [
1465
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.TableCell, { children: workflow.name }),
1466
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.TableCell, { children: workflow.description }),
1467
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.TableCell, { children: String(workflow.version) }),
1468
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { children: workflow.isDraft ? labels.statusDraft : labels.statusPublished }) }),
1469
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2", children: [
1464
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.TableBody, { children: workflows.map((workflow) => /* @__PURE__ */ jsxRuntime.jsxs(chunkGD6FHRHV_js.TableRow, { children: [
1465
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.TableCell, { children: workflow.name }),
1466
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.TableCell, { children: workflow.description }),
1467
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.TableCell, { children: String(workflow.version) }),
1468
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { children: workflow.isDraft ? labels.statusDraft : labels.statusPublished }) }),
1469
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2", children: [
1470
1470
  /* @__PURE__ */ jsxRuntime.jsx(
1471
- chunkFNA66TT4_js.Form,
1471
+ chunkGD6FHRHV_js.Form,
1472
1472
  {
1473
1473
  onSubmit: (event) => {
1474
1474
  event.preventDefault();
@@ -1478,7 +1478,7 @@ function WorkflowsPageView({ labels, workflows, onCreate, onUpdateMeta, onPublis
1478
1478
  description: workflow.description ?? ""
1479
1479
  });
1480
1480
  },
1481
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.InlineForm, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "submit", outline: true, children: labels.saveMeta }) })
1481
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.InlineForm, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "submit", outline: true, children: labels.saveMeta }) })
1482
1482
  }
1483
1483
  ),
1484
1484
  /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", color: "sky", onClick: () => onPublish(workflow.id), children: labels.publish })
@@ -1487,8 +1487,8 @@ function WorkflowsPageView({ labels, workflows, onCreate, onUpdateMeta, onPublis
1487
1487
  ] })
1488
1488
  ] }),
1489
1489
  /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "liquid-surface rounded-2xl p-4 space-y-3", children: [
1490
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.Text, { className: "font-semibold text-slate-900 dark:text-slate-100", children: labels.workspace }),
1491
- selectedWorkflow ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-[680px] rounded-2xl border border-white/65 dark:border-white/12 overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(chunkFKUIVS6I_js.WorkflowWorkspace, { graph: chunk3T2WGL47_js.adaptWorkflowGraphToUi(selectedWorkflow.graph) }) }) : /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.Text, { children: labels.empty })
1490
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.Text, { className: "font-semibold text-slate-900 dark:text-slate-100", children: labels.workspace }),
1491
+ selectedWorkflow ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-[680px] rounded-2xl border border-white/65 dark:border-white/12 overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(chunkBEUPW5WS_js.WorkflowWorkspace, { graph: chunk3T2WGL47_js.adaptWorkflowGraphToUi(selectedWorkflow.graph) }) }) : /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.Text, { children: labels.empty })
1492
1492
  ] })
1493
1493
  ] });
1494
1494
  }
@@ -1537,7 +1537,7 @@ function WorkflowRunsPageView({ labels, runs, loading, onCancel, onReplay, onVie
1537
1537
  });
1538
1538
  const isEmpty = allRuns.length === 0;
1539
1539
  const hero = /* @__PURE__ */ jsxRuntime.jsx(
1540
- chunkFNA66TT4_js.HeroSection,
1540
+ chunkGD6FHRHV_js.HeroSection,
1541
1541
  {
1542
1542
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.ClockIcon, { className: "h-5 w-5" }),
1543
1543
  label: labels.title,
@@ -1545,7 +1545,7 @@ function WorkflowRunsPageView({ labels, runs, loading, onCancel, onReplay, onVie
1545
1545
  subtitle: labels.subtitle,
1546
1546
  gradient: "from-indigo-500 to-sky-700",
1547
1547
  toolbar: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full sm:w-48", children: /* @__PURE__ */ jsxRuntime.jsx(
1548
- chunkFNA66TT4_js.FormSelect,
1548
+ chunkGD6FHRHV_js.FormSelect,
1549
1549
  {
1550
1550
  name: "statusFilter",
1551
1551
  label: labels.filterStatus,
@@ -1556,9 +1556,9 @@ function WorkflowRunsPageView({ labels, runs, loading, onCancel, onReplay, onVie
1556
1556
  ) })
1557
1557
  }
1558
1558
  );
1559
- const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.PageLoadingState, {}) : filteredRuns.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1559
+ const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.PageLoadingState, {}) : filteredRuns.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1560
1560
  !isEmpty && /* @__PURE__ */ jsxRuntime.jsx(
1561
- chunkFNA66TT4_js.SearchBar,
1561
+ chunkGD6FHRHV_js.SearchBar,
1562
1562
  {
1563
1563
  searchTerm,
1564
1564
  onSearchChange: setSearchTerm,
@@ -1566,7 +1566,7 @@ function WorkflowRunsPageView({ labels, runs, loading, onCancel, onReplay, onVie
1566
1566
  }
1567
1567
  ),
1568
1568
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredRuns.map((run) => /* @__PURE__ */ jsxRuntime.jsxs(
1569
- chunkFNA66TT4_js.EntityCard,
1569
+ chunkGD6FHRHV_js.EntityCard,
1570
1570
  {
1571
1571
  accentGradient: "from-indigo-500 to-sky-700",
1572
1572
  icon: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-lg bg-indigo-500/10 text-indigo-600 dark:bg-indigo-500/20 dark:text-indigo-400", children: /* @__PURE__ */ jsxRuntime.jsx(outline.ClockIcon, { className: "h-6 w-6" }) }),
@@ -1592,11 +1592,11 @@ function WorkflowRunsPageView({ labels, runs, loading, onCancel, onReplay, onVie
1592
1592
  run.id
1593
1593
  )) })
1594
1594
  ] });
1595
- return /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.ManagementPageLayout, { hero, content });
1595
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.ManagementPageLayout, { hero, content });
1596
1596
  }
1597
1597
  function RunTimelinePageView({ labels, entries, loading, runId }) {
1598
1598
  const hero = /* @__PURE__ */ jsxRuntime.jsx(
1599
- chunkFNA66TT4_js.HeroSection,
1599
+ chunkGD6FHRHV_js.HeroSection,
1600
1600
  {
1601
1601
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.ClockIcon, { className: "h-5 w-5" }),
1602
1602
  label: labels.title,
@@ -1606,23 +1606,23 @@ function RunTimelinePageView({ labels, entries, loading, runId }) {
1606
1606
  }
1607
1607
  );
1608
1608
  if (loading) {
1609
- return /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.ManagementPageLayout, { hero, content: /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.PageLoadingState, {}) });
1609
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.ManagementPageLayout, { hero, content: /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.PageLoadingState, {}) });
1610
1610
  }
1611
1611
  if (entries.length === 0) {
1612
1612
  return /* @__PURE__ */ jsxRuntime.jsx(
1613
- chunkFNA66TT4_js.ManagementPageLayout,
1613
+ chunkGD6FHRHV_js.ManagementPageLayout,
1614
1614
  {
1615
1615
  hero,
1616
- content: /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.PageEmptyState, { title: labels.empty ?? "", message: "", iconName: "folder-open" })
1616
+ content: /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.PageEmptyState, { title: labels.empty ?? "", message: "", iconName: "folder-open" })
1617
1617
  }
1618
1618
  );
1619
1619
  }
1620
1620
  return /* @__PURE__ */ jsxRuntime.jsx(
1621
- chunkFNA66TT4_js.ManagementPageLayout,
1621
+ chunkGD6FHRHV_js.ManagementPageLayout,
1622
1622
  {
1623
1623
  hero,
1624
1624
  content: /* @__PURE__ */ jsxRuntime.jsx(
1625
- chunk3H5CFLVK_js.ExecutionTimelinePanel,
1625
+ chunkIYDGO7RW_js.ExecutionTimelinePanel,
1626
1626
  {
1627
1627
  entries,
1628
1628
  labels
@@ -1708,7 +1708,7 @@ function ConnectionsPageView({
1708
1708
  const filteredConnections = searchTerm.trim() ? allConnections.filter((conn) => conn.name.toLowerCase().includes(searchTerm.trim().toLowerCase())) : allConnections;
1709
1709
  const isEmpty = allConnections.length === 0;
1710
1710
  const hero = /* @__PURE__ */ jsxRuntime.jsx(
1711
- chunkFNA66TT4_js.HeroSection,
1711
+ chunkGD6FHRHV_js.HeroSection,
1712
1712
  {
1713
1713
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.LinkIcon, { className: "h-5 w-5" }),
1714
1714
  label: labels.title,
@@ -1716,7 +1716,7 @@ function ConnectionsPageView({
1716
1716
  subtitle: labels.subtitle,
1717
1717
  gradient: "from-sky-500 to-indigo-600",
1718
1718
  toolbar: /* @__PURE__ */ jsxRuntime.jsx(
1719
- chunkFNA66TT4_js.CreateActionButton,
1719
+ chunkGD6FHRHV_js.CreateActionButton,
1720
1720
  {
1721
1721
  mode: "desktop",
1722
1722
  label: labels.add,
@@ -1727,7 +1727,7 @@ function ConnectionsPageView({
1727
1727
  }
1728
1728
  );
1729
1729
  const mobileAction = /* @__PURE__ */ jsxRuntime.jsx(
1730
- chunkFNA66TT4_js.CreateActionButton,
1730
+ chunkGD6FHRHV_js.CreateActionButton,
1731
1731
  {
1732
1732
  mode: "mobile",
1733
1733
  label: labels.add,
@@ -1735,9 +1735,9 @@ function ConnectionsPageView({
1735
1735
  accent: "sky"
1736
1736
  }
1737
1737
  );
1738
- const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1738
+ const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1739
1739
  /* @__PURE__ */ jsxRuntime.jsx(
1740
- chunkFNA66TT4_js.SearchBar,
1740
+ chunkGD6FHRHV_js.SearchBar,
1741
1741
  {
1742
1742
  searchTerm,
1743
1743
  onSearchChange: setSearchTerm,
@@ -1745,7 +1745,7 @@ function ConnectionsPageView({
1745
1745
  }
1746
1746
  ),
1747
1747
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredConnections.map((conn) => /* @__PURE__ */ jsxRuntime.jsx(
1748
- chunkFNA66TT4_js.EntityCard,
1748
+ chunkGD6FHRHV_js.EntityCard,
1749
1749
  {
1750
1750
  accentGradient: "from-sky-500 to-indigo-600",
1751
1751
  icon: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-lg bg-sky-500/10 text-sky-600 dark:bg-sky-500/20 dark:text-sky-400", children: /* @__PURE__ */ jsxRuntime.jsx(outline.LinkIcon, { className: "h-6 w-6" }) }),
@@ -1780,7 +1780,7 @@ function ConnectionsPageView({
1780
1780
  )) })
1781
1781
  ] });
1782
1782
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1783
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.ManagementPageLayout, { hero, content, mobileAction }),
1783
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.ManagementPageLayout, { hero, content, mobileAction }),
1784
1784
  createOpen && /* @__PURE__ */ jsxRuntime.jsx(
1785
1785
  ConnectionEditor,
1786
1786
  {
@@ -1894,7 +1894,7 @@ function ConnectionEditor({
1894
1894
  return preset.exampleModels?.join(", ") ?? "";
1895
1895
  }, [preset]);
1896
1896
  return /* @__PURE__ */ jsxRuntime.jsx(
1897
- chunkFNA66TT4_js.GlassModal,
1897
+ chunkGD6FHRHV_js.GlassModal,
1898
1898
  {
1899
1899
  open: true,
1900
1900
  onClose,
@@ -1907,9 +1907,9 @@ function ConnectionEditor({
1907
1907
  void handleSubmit();
1908
1908
  },
1909
1909
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
1910
- /* @__PURE__ */ jsxRuntime.jsxs(chunkFNA66TT4_js.FormGrid, { children: [
1910
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkGD6FHRHV_js.FormGrid, { children: [
1911
1911
  /* @__PURE__ */ jsxRuntime.jsx(
1912
- chunkFNA66TT4_js.FormSelect,
1912
+ chunkGD6FHRHV_js.FormSelect,
1913
1913
  {
1914
1914
  label: "Provider",
1915
1915
  value: value.providerSlug,
@@ -1920,7 +1920,7 @@ function ConnectionEditor({
1920
1920
  }
1921
1921
  ),
1922
1922
  /* @__PURE__ */ jsxRuntime.jsx(
1923
- chunkFNA66TT4_js.FormInput,
1923
+ chunkGD6FHRHV_js.FormInput,
1924
1924
  {
1925
1925
  label: "Display name",
1926
1926
  required: true,
@@ -1930,7 +1930,7 @@ function ConnectionEditor({
1930
1930
  }
1931
1931
  ),
1932
1932
  preset.needsRegion && /* @__PURE__ */ jsxRuntime.jsx(
1933
- chunkFNA66TT4_js.FormInput,
1933
+ chunkGD6FHRHV_js.FormInput,
1934
1934
  {
1935
1935
  label: "Region",
1936
1936
  value: value.region,
@@ -1939,7 +1939,7 @@ function ConnectionEditor({
1939
1939
  }
1940
1940
  ),
1941
1941
  preset.needsEndpoint && /* @__PURE__ */ jsxRuntime.jsx(
1942
- chunkFNA66TT4_js.FormInput,
1942
+ chunkGD6FHRHV_js.FormInput,
1943
1943
  {
1944
1944
  label: "Endpoint URL",
1945
1945
  value: value.endpoint,
@@ -1949,7 +1949,7 @@ function ConnectionEditor({
1949
1949
  )
1950
1950
  ] }),
1951
1951
  /* @__PURE__ */ jsxRuntime.jsx(
1952
- chunkFNA66TT4_js.FormInput,
1952
+ chunkGD6FHRHV_js.FormInput,
1953
1953
  {
1954
1954
  label: value.credentialRef ? "Rotate API key (leave blank to keep current)" : "API key",
1955
1955
  type: "password",
@@ -1960,7 +1960,7 @@ function ConnectionEditor({
1960
1960
  }
1961
1961
  ),
1962
1962
  /* @__PURE__ */ jsxRuntime.jsx(
1963
- chunkFNA66TT4_js.FormInput,
1963
+ chunkGD6FHRHV_js.FormInput,
1964
1964
  {
1965
1965
  label: "Model filter (comma-separated, optional)",
1966
1966
  value: value.modelFilter,
@@ -1972,7 +1972,7 @@ function ConnectionEditor({
1972
1972
  /* @__PURE__ */ jsxRuntime.jsxs("details", { className: "rounded-xl border border-slate-200 bg-slate-50/60 p-3 text-sm dark:border-slate-700 dark:bg-slate-900/40", children: [
1973
1973
  /* @__PURE__ */ jsxRuntime.jsx("summary", { className: "cursor-pointer font-medium text-slate-700 dark:text-slate-200", children: "Advanced config (JSON)" }),
1974
1974
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3", children: /* @__PURE__ */ jsxRuntime.jsx(
1975
- chunkFNA66TT4_js.FormTextarea,
1975
+ chunkGD6FHRHV_js.FormTextarea,
1976
1976
  {
1977
1977
  rows: 4,
1978
1978
  value: value.configJson,
@@ -2042,7 +2042,7 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
2042
2042
  { value: "password", label: labels.typePassword }
2043
2043
  ];
2044
2044
  const hero = /* @__PURE__ */ jsxRuntime.jsx(
2045
- chunkFNA66TT4_js.HeroSection,
2045
+ chunkGD6FHRHV_js.HeroSection,
2046
2046
  {
2047
2047
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-5 w-5" }),
2048
2048
  label: labels.title,
@@ -2050,7 +2050,7 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
2050
2050
  subtitle: labels.subtitle,
2051
2051
  gradient: "from-rose-500 to-orange-600",
2052
2052
  toolbar: /* @__PURE__ */ jsxRuntime.jsx(
2053
- chunkFNA66TT4_js.CreateActionButton,
2053
+ chunkGD6FHRHV_js.CreateActionButton,
2054
2054
  {
2055
2055
  mode: "desktop",
2056
2056
  label: labels.addCredential,
@@ -2061,7 +2061,7 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
2061
2061
  }
2062
2062
  );
2063
2063
  const mobileAction = /* @__PURE__ */ jsxRuntime.jsx(
2064
- chunkFNA66TT4_js.CreateActionButton,
2064
+ chunkGD6FHRHV_js.CreateActionButton,
2065
2065
  {
2066
2066
  mode: "mobile",
2067
2067
  label: labels.addCredential,
@@ -2069,9 +2069,9 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
2069
2069
  accent: "rose"
2070
2070
  }
2071
2071
  );
2072
- const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2072
+ const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2073
2073
  /* @__PURE__ */ jsxRuntime.jsx(
2074
- chunkFNA66TT4_js.SearchBar,
2074
+ chunkGD6FHRHV_js.SearchBar,
2075
2075
  {
2076
2076
  searchTerm,
2077
2077
  onSearchChange: setSearchTerm,
@@ -2079,7 +2079,7 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
2079
2079
  }
2080
2080
  ),
2081
2081
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredCredentials.map((secret) => /* @__PURE__ */ jsxRuntime.jsxs(
2082
- chunkFNA66TT4_js.EntityCard,
2082
+ chunkGD6FHRHV_js.EntityCard,
2083
2083
  {
2084
2084
  accentGradient: "from-rose-500 to-orange-700",
2085
2085
  icon: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-11 w-11 items-center justify-center rounded-lg bg-rose-500/10 text-rose-600 dark:bg-rose-500/20 dark:text-rose-400", children: /* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-6 w-6" }) }),
@@ -2087,7 +2087,7 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
2087
2087
  subtitle: secret.secretType,
2088
2088
  status: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: secret.disabled ? "zinc" : "emerald", children: secret.disabled ? labels.disable : "Active" }),
2089
2089
  footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-2", children: [
2090
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.CopyableId, { id: secret.secretId }),
2090
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.CopyableId, { id: secret.secretId }),
2091
2091
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
2092
2092
  /* @__PURE__ */ jsxRuntime.jsxs(chunkBHOT22QL_js.Button, { type: "button", size: "sm", outline: true, onClick: () => setRotateFor(secret), children: [
2093
2093
  /* @__PURE__ */ jsxRuntime.jsx(outline.ArrowPathIcon, { className: "mr-1 h-3.5 w-3.5" }),
@@ -2124,9 +2124,9 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
2124
2124
  )) })
2125
2125
  ] });
2126
2126
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2127
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.ManagementPageLayout, { hero, content, mobileAction }),
2127
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.ManagementPageLayout, { hero, content, mobileAction }),
2128
2128
  /* @__PURE__ */ jsxRuntime.jsx(
2129
- chunkFNA66TT4_js.GlassModal,
2129
+ chunkGD6FHRHV_js.GlassModal,
2130
2130
  {
2131
2131
  open: createOpen,
2132
2132
  onClose: () => setCreateOpen(false),
@@ -2144,16 +2144,16 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
2144
2144
  onCreate({ name, value, secretType, description });
2145
2145
  setCreateOpen(false);
2146
2146
  },
2147
- children: /* @__PURE__ */ jsxRuntime.jsxs(chunkFNA66TT4_js.FormGrid, { children: [
2148
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormInput, { name: "name", label: labels.name, placeholder: labels.namePlaceholder, required: true }),
2149
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormSelect, { name: "secretType", label: labels.type, options: typeOptions, defaultValue: "generic" }),
2150
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormInput, { name: "value", label: labels.value, placeholder: labels.valuePlaceholder, required: true, type: "password" }),
2151
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormTextarea, { name: "description", label: labels.description, placeholder: labels.descriptionPlaceholder, rows: 2 })
2147
+ children: /* @__PURE__ */ jsxRuntime.jsxs(chunkGD6FHRHV_js.FormGrid, { children: [
2148
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormInput, { name: "name", label: labels.name, placeholder: labels.namePlaceholder, required: true }),
2149
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormSelect, { name: "secretType", label: labels.type, options: typeOptions, defaultValue: "generic" }),
2150
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormInput, { name: "value", label: labels.value, placeholder: labels.valuePlaceholder, required: true, type: "password" }),
2151
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormTextarea, { name: "description", label: labels.description, placeholder: labels.descriptionPlaceholder, rows: 2 })
2152
2152
  ] })
2153
2153
  }
2154
2154
  ),
2155
2155
  /* @__PURE__ */ jsxRuntime.jsx(
2156
- chunkFNA66TT4_js.GlassModal,
2156
+ chunkGD6FHRHV_js.GlassModal,
2157
2157
  {
2158
2158
  open: rotateFor !== null,
2159
2159
  onClose: () => setRotateFor(null),
@@ -2168,7 +2168,7 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
2168
2168
  onRotate(rotateFor, value);
2169
2169
  setRotateFor(null);
2170
2170
  },
2171
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormGrid, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormInput, { name: "value", label: labels.value, placeholder: labels.valuePlaceholder, required: true, type: "password" }) })
2171
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormGrid, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormInput, { name: "value", label: labels.value, placeholder: labels.valuePlaceholder, required: true, type: "password" }) })
2172
2172
  }
2173
2173
  )
2174
2174
  ] });
@@ -2222,7 +2222,7 @@ function AgentsWorkspacePageView({
2222
2222
  }, [agents, selectedId]);
2223
2223
  const isEmpty = agents.length === 0;
2224
2224
  const hero = /* @__PURE__ */ jsxRuntime.jsx(
2225
- chunkFNA66TT4_js.HeroSection,
2225
+ chunkGD6FHRHV_js.HeroSection,
2226
2226
  {
2227
2227
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-5 w-5" }),
2228
2228
  label: labels.title,
@@ -2230,7 +2230,7 @@ function AgentsWorkspacePageView({
2230
2230
  subtitle: labels.subtitle,
2231
2231
  gradient: "from-violet-500 to-indigo-700",
2232
2232
  actions: /* @__PURE__ */ jsxRuntime.jsx(
2233
- chunkFNA66TT4_js.CreateActionButton,
2233
+ chunkGD6FHRHV_js.CreateActionButton,
2234
2234
  {
2235
2235
  mode: "desktop",
2236
2236
  label: labels.addAgent,
@@ -2241,7 +2241,7 @@ function AgentsWorkspacePageView({
2241
2241
  }
2242
2242
  );
2243
2243
  const mobileAction = /* @__PURE__ */ jsxRuntime.jsx(
2244
- chunkFNA66TT4_js.CreateActionButton,
2244
+ chunkGD6FHRHV_js.CreateActionButton,
2245
2245
  {
2246
2246
  mode: "mobile",
2247
2247
  label: labels.addAgent,
@@ -2249,8 +2249,8 @@ function AgentsWorkspacePageView({
2249
2249
  accent: "violet"
2250
2250
  }
2251
2251
  );
2252
- const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
2253
- chunkFNA66TT4_js.PageEmptyState,
2252
+ const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
2253
+ chunkGD6FHRHV_js.PageEmptyState,
2254
2254
  {
2255
2255
  title: labels.empty,
2256
2256
  message: labels.emptyMessage,
@@ -2258,7 +2258,7 @@ function AgentsWorkspacePageView({
2258
2258
  }
2259
2259
  ) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
2260
2260
  /* @__PURE__ */ jsxRuntime.jsx(
2261
- chunkFNA66TT4_js.SearchBar,
2261
+ chunkGD6FHRHV_js.SearchBar,
2262
2262
  {
2263
2263
  searchTerm,
2264
2264
  onSearchChange: setSearchTerm,
@@ -2266,15 +2266,15 @@ function AgentsWorkspacePageView({
2266
2266
  }
2267
2267
  ),
2268
2268
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-4 lg:grid-cols-[20rem_minmax(0,1fr)]", children: [
2269
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "lg:sticky lg:top-4", children: /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.ListCard, { variant: "glass", children: filteredAgents.map((agent) => {
2269
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "lg:sticky lg:top-4", children: /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.ListCard, { variant: "glass", children: filteredAgents.map((agent) => {
2270
2270
  const id = String(agent.agentId ?? agent.id ?? "");
2271
2271
  const active = id === selectedId;
2272
2272
  const initials = deriveInitials(String(agent.name ?? id));
2273
2273
  const modelName = models.find((m) => m.id === String(agent.modelId ?? ""))?.name ?? String(agent.modelId ?? "");
2274
2274
  return /* @__PURE__ */ jsxRuntime.jsx(
2275
- chunkFNA66TT4_js.ListCardItem,
2275
+ chunkGD6FHRHV_js.ListCardItem,
2276
2276
  {
2277
- leading: /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.Avatar, { tone: active ? "violet" : "slate", initials }),
2277
+ leading: /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.Avatar, { tone: active ? "violet" : "slate", initials }),
2278
2278
  trailing: agent.activePromptVersion > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunkBHOT22QL_js.Badge, { color: "emerald", children: [
2279
2279
  "v",
2280
2280
  agent.activePromptVersion
@@ -2316,7 +2316,7 @@ function AgentsWorkspacePageView({
2316
2316
  },
2317
2317
  String(selectedAgent.agentId ?? selectedAgent.id ?? "")
2318
2318
  ) : /* @__PURE__ */ jsxRuntime.jsx(
2319
- chunkFNA66TT4_js.SectionCard,
2319
+ chunkGD6FHRHV_js.SectionCard,
2320
2320
  {
2321
2321
  header: {
2322
2322
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-4 w-4" }),
@@ -2324,7 +2324,7 @@ function AgentsWorkspacePageView({
2324
2324
  subtitle: labels.noSelectionMessage
2325
2325
  },
2326
2326
  children: /* @__PURE__ */ jsxRuntime.jsx(
2327
- chunkFNA66TT4_js.PageEmptyState,
2327
+ chunkGD6FHRHV_js.PageEmptyState,
2328
2328
  {
2329
2329
  title: labels.noSelection,
2330
2330
  message: labels.noSelectionMessage,
@@ -2336,7 +2336,7 @@ function AgentsWorkspacePageView({
2336
2336
  ] })
2337
2337
  ] });
2338
2338
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2339
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.ManagementPageLayout, { hero, content, mobileAction }),
2339
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.ManagementPageLayout, { hero, content, mobileAction }),
2340
2340
  createOpen && /* @__PURE__ */ jsxRuntime.jsx(
2341
2341
  CreateAgentDialog,
2342
2342
  {
@@ -2369,7 +2369,7 @@ function AgentDetail({
2369
2369
  }) {
2370
2370
  const agentId = String(agent.agentId ?? agent.id ?? "");
2371
2371
  return /* @__PURE__ */ jsxRuntime.jsx(
2372
- chunkFNA66TT4_js.SectionCard,
2372
+ chunkGD6FHRHV_js.SectionCard,
2373
2373
  {
2374
2374
  header: {
2375
2375
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-4 w-4" }),
@@ -2394,15 +2394,15 @@ function AgentDetail({
2394
2394
  ]
2395
2395
  }
2396
2396
  ),
2397
- children: /* @__PURE__ */ jsxRuntime.jsxs(chunkFNA66TT4_js.Tabs, { defaultValue: "general", className: "w-full", children: [
2398
- /* @__PURE__ */ jsxRuntime.jsxs(chunkFNA66TT4_js.TabsList, { className: "bg-white/40 dark:bg-white/[0.06]", children: [
2399
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.TabsTrigger, { value: "general", children: labels.generalTab }),
2400
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.TabsTrigger, { value: "prompt", children: labels.promptTab }),
2401
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.TabsTrigger, { value: "tools", children: labels.toolsTab }),
2402
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.TabsTrigger, { value: "model", children: labels.modelTab })
2397
+ children: /* @__PURE__ */ jsxRuntime.jsxs(chunkGD6FHRHV_js.Tabs, { defaultValue: "general", className: "w-full", children: [
2398
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkGD6FHRHV_js.TabsList, { className: "bg-white/40 dark:bg-white/[0.06]", children: [
2399
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.TabsTrigger, { value: "general", children: labels.generalTab }),
2400
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.TabsTrigger, { value: "prompt", children: labels.promptTab }),
2401
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.TabsTrigger, { value: "tools", children: labels.toolsTab }),
2402
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.TabsTrigger, { value: "model", children: labels.modelTab })
2403
2403
  ] }),
2404
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.TabsContent, { value: "general", className: "space-y-4 pt-4", children: /* @__PURE__ */ jsxRuntime.jsx(GeneralTab, { agent, labels, onSubmit: (input) => onUpdateAgent(agentId, input) }) }),
2405
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.TabsContent, { value: "prompt", className: "space-y-4 pt-4", children: /* @__PURE__ */ jsxRuntime.jsx(
2404
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.TabsContent, { value: "general", className: "space-y-4 pt-4", children: /* @__PURE__ */ jsxRuntime.jsx(GeneralTab, { agent, labels, onSubmit: (input) => onUpdateAgent(agentId, input) }) }),
2405
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.TabsContent, { value: "prompt", className: "space-y-4 pt-4", children: /* @__PURE__ */ jsxRuntime.jsx(
2406
2406
  PromptTab,
2407
2407
  {
2408
2408
  agent,
@@ -2412,7 +2412,7 @@ function AgentDetail({
2412
2412
  onActivate: (promptId) => onActivatePrompt(agentId, promptId)
2413
2413
  }
2414
2414
  ) }),
2415
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.TabsContent, { value: "tools", className: "space-y-4 pt-4", children: /* @__PURE__ */ jsxRuntime.jsx(
2415
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.TabsContent, { value: "tools", className: "space-y-4 pt-4", children: /* @__PURE__ */ jsxRuntime.jsx(
2416
2416
  ToolsTab,
2417
2417
  {
2418
2418
  agent,
@@ -2422,7 +2422,7 @@ function AgentDetail({
2422
2422
  onDetach: (toolId) => onDetachTool(agentId, toolId)
2423
2423
  }
2424
2424
  ) }),
2425
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.TabsContent, { value: "model", className: "space-y-4 pt-4", children: /* @__PURE__ */ jsxRuntime.jsx(
2425
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.TabsContent, { value: "model", className: "space-y-4 pt-4", children: /* @__PURE__ */ jsxRuntime.jsx(
2426
2426
  ModelTab,
2427
2427
  {
2428
2428
  agent,
@@ -2454,7 +2454,7 @@ function GeneralTab({
2454
2454
  const initialRole = String(agent.role ?? "");
2455
2455
  const initialStatus = String(agent.status ?? "draft");
2456
2456
  return /* @__PURE__ */ jsxRuntime.jsx(
2457
- chunkFNA66TT4_js.SectionCard,
2457
+ chunkGD6FHRHV_js.SectionCard,
2458
2458
  {
2459
2459
  variant: "glass",
2460
2460
  header: {
@@ -2483,10 +2483,10 @@ function GeneralTab({
2483
2483
  },
2484
2484
  className: "space-y-4",
2485
2485
  children: [
2486
- /* @__PURE__ */ jsxRuntime.jsxs(chunkFNA66TT4_js.FormGrid, { children: [
2487
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormInput, { name: "name", label: labels.name, defaultValue: initial.name, required: true }),
2486
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkGD6FHRHV_js.FormGrid, { children: [
2487
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormInput, { name: "name", label: labels.name, defaultValue: initial.name, required: true }),
2488
2488
  /* @__PURE__ */ jsxRuntime.jsx(
2489
- chunkFNA66TT4_js.FormSelect,
2489
+ chunkGD6FHRHV_js.FormSelect,
2490
2490
  {
2491
2491
  name: "status",
2492
2492
  label: labels.status,
@@ -2498,9 +2498,9 @@ function GeneralTab({
2498
2498
  ]
2499
2499
  }
2500
2500
  ),
2501
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormInput, { name: "role", label: labels.role, placeholder: labels.rolePlaceholder, defaultValue: initialRole }),
2501
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormInput, { name: "role", label: labels.role, placeholder: labels.rolePlaceholder, defaultValue: initialRole }),
2502
2502
  /* @__PURE__ */ jsxRuntime.jsx(
2503
- chunkFNA66TT4_js.FormInput,
2503
+ chunkGD6FHRHV_js.FormInput,
2504
2504
  {
2505
2505
  name: "maxTokens",
2506
2506
  label: labels.maxTokens,
@@ -2509,7 +2509,7 @@ function GeneralTab({
2509
2509
  }
2510
2510
  ),
2511
2511
  /* @__PURE__ */ jsxRuntime.jsx(
2512
- chunkFNA66TT4_js.FormInput,
2512
+ chunkGD6FHRHV_js.FormInput,
2513
2513
  {
2514
2514
  name: "temperature",
2515
2515
  label: labels.temperature,
@@ -2521,7 +2521,7 @@ function GeneralTab({
2521
2521
  }
2522
2522
  )
2523
2523
  ] }),
2524
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormTextarea, { name: "description", label: labels.description, defaultValue: initialDescription, rows: 3 }),
2524
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormTextarea, { name: "description", label: labels.description, defaultValue: initialDescription, rows: 3 }),
2525
2525
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "submit", color: "indigo", disabled: submitting, children: submitting ? labels.saving : labels.save }) })
2526
2526
  ]
2527
2527
  }
@@ -2541,7 +2541,7 @@ function PromptTab({
2541
2541
  const currentSystem = String(agent.systemPrompt ?? "");
2542
2542
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
2543
2543
  /* @__PURE__ */ jsxRuntime.jsx(
2544
- chunkFNA66TT4_js.SectionCard,
2544
+ chunkGD6FHRHV_js.SectionCard,
2545
2545
  {
2546
2546
  variant: "glass",
2547
2547
  header: {
@@ -2553,7 +2553,7 @@ function PromptTab({
2553
2553
  }
2554
2554
  ),
2555
2555
  /* @__PURE__ */ jsxRuntime.jsx(
2556
- chunkFNA66TT4_js.SectionCard,
2556
+ chunkGD6FHRHV_js.SectionCard,
2557
2557
  {
2558
2558
  variant: "glass",
2559
2559
  header: {
@@ -2564,10 +2564,10 @@ function PromptTab({
2564
2564
  /* @__PURE__ */ jsxRuntime.jsx(outline.PlusIcon, { className: "h-4 w-4" }),
2565
2565
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-1.5", children: labels.addPrompt })
2566
2566
  ] }),
2567
- children: prompts.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-500 dark:text-slate-400", children: labels.promptVersionsEmpty }) : /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.ListCard, { children: prompts.map((prompt) => {
2567
+ children: prompts.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-500 dark:text-slate-400", children: labels.promptVersionsEmpty }) : /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.ListCard, { children: prompts.map((prompt) => {
2568
2568
  const id = `${prompt.agentId}:${prompt.locale}:${prompt.version}`;
2569
2569
  return /* @__PURE__ */ jsxRuntime.jsxs(
2570
- chunkFNA66TT4_js.ListCardItem,
2570
+ chunkGD6FHRHV_js.ListCardItem,
2571
2571
  {
2572
2572
  leading: /* @__PURE__ */ jsxRuntime.jsxs(chunkBHOT22QL_js.Badge, { color: prompt.isActive ? "emerald" : "zinc", children: [
2573
2573
  "v",
@@ -2585,7 +2585,7 @@ function PromptTab({
2585
2585
  }
2586
2586
  ),
2587
2587
  addOpen && /* @__PURE__ */ jsxRuntime.jsx(
2588
- chunkFNA66TT4_js.GlassModal,
2588
+ chunkGD6FHRHV_js.GlassModal,
2589
2589
  {
2590
2590
  open: true,
2591
2591
  onClose: () => setAddOpen(false),
@@ -2606,10 +2606,10 @@ function PromptTab({
2606
2606
  });
2607
2607
  setAddOpen(false);
2608
2608
  },
2609
- children: /* @__PURE__ */ jsxRuntime.jsxs(chunkFNA66TT4_js.FormGrid, { children: [
2610
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormSelect, { name: "locale", label: labels.promptLocale, options: LOCALE_OPTIONS2, defaultValue: "en" }),
2609
+ children: /* @__PURE__ */ jsxRuntime.jsxs(chunkGD6FHRHV_js.FormGrid, { children: [
2610
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormSelect, { name: "locale", label: labels.promptLocale, options: LOCALE_OPTIONS2, defaultValue: "en" }),
2611
2611
  /* @__PURE__ */ jsxRuntime.jsx(
2612
- chunkFNA66TT4_js.FormSelect,
2612
+ chunkGD6FHRHV_js.FormSelect,
2613
2613
  {
2614
2614
  name: "isActive",
2615
2615
  label: labels.promptIsActive,
@@ -2620,10 +2620,10 @@ function PromptTab({
2620
2620
  defaultValue: "true"
2621
2621
  }
2622
2622
  ),
2623
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormInput, { name: "reason", label: labels.promptReason }),
2624
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormTextarea, { name: "systemPrompt", label: labels.promptSystemPrompt, rows: 3 }),
2625
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormTextarea, { name: "userTemplate", label: labels.promptUserTemplate, rows: 3 }),
2626
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormTextarea, { name: "prompt", label: labels.promptText, rows: 6, required: true })
2623
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormInput, { name: "reason", label: labels.promptReason }),
2624
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormTextarea, { name: "systemPrompt", label: labels.promptSystemPrompt, rows: 3 }),
2625
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormTextarea, { name: "userTemplate", label: labels.promptUserTemplate, rows: 3 }),
2626
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.FormTextarea, { name: "prompt", label: labels.promptText, rows: 6, required: true })
2627
2627
  ] })
2628
2628
  }
2629
2629
  )
@@ -2646,15 +2646,15 @@ function ToolsTab({
2646
2646
  const availableTools = tools.filter((tool) => !attachedSet.has(tool.agentToolId));
2647
2647
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
2648
2648
  /* @__PURE__ */ jsxRuntime.jsx(
2649
- chunkFNA66TT4_js.SectionCard,
2649
+ chunkGD6FHRHV_js.SectionCard,
2650
2650
  {
2651
2651
  variant: "glass",
2652
2652
  header: {
2653
2653
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.WrenchScrewdriverIcon, { className: "h-4 w-4" }),
2654
2654
  title: labels.toolsAttached
2655
2655
  },
2656
- children: attachedTools.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-500 dark:text-slate-400", children: labels.toolsEmpty }) : /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.ListCard, { children: attachedTools.map((tool) => /* @__PURE__ */ jsxRuntime.jsxs(
2657
- chunkFNA66TT4_js.ListCardItem,
2656
+ children: attachedTools.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-500 dark:text-slate-400", children: labels.toolsEmpty }) : /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.ListCard, { children: attachedTools.map((tool) => /* @__PURE__ */ jsxRuntime.jsxs(
2657
+ chunkGD6FHRHV_js.ListCardItem,
2658
2658
  {
2659
2659
  leading: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-9 w-9 items-center justify-center rounded-lg bg-amber-500/10 text-amber-600 dark:bg-amber-500/20 dark:text-amber-400", children: /* @__PURE__ */ jsxRuntime.jsx(outline.WrenchScrewdriverIcon, { className: "h-5 w-5" }) }),
2660
2660
  trailing: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", size: "sm", outline: true, onClick: () => onDetach(tool.agentToolId), children: labels.detachTool }),
@@ -2668,15 +2668,15 @@ function ToolsTab({
2668
2668
  }
2669
2669
  ),
2670
2670
  /* @__PURE__ */ jsxRuntime.jsx(
2671
- chunkFNA66TT4_js.SectionCard,
2671
+ chunkGD6FHRHV_js.SectionCard,
2672
2672
  {
2673
2673
  variant: "glass",
2674
2674
  header: {
2675
2675
  icon: /* @__PURE__ */ jsxRuntime.jsx(outline.WrenchScrewdriverIcon, { className: "h-4 w-4" }),
2676
2676
  title: labels.toolsAvailable
2677
2677
  },
2678
- children: availableTools.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-500 dark:text-slate-400", children: labels.toolsEmpty }) : /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.ListCard, { children: availableTools.map((tool) => /* @__PURE__ */ jsxRuntime.jsxs(
2679
- chunkFNA66TT4_js.ListCardItem,
2678
+ children: availableTools.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-slate-500 dark:text-slate-400", children: labels.toolsEmpty }) : /* @__PURE__ */ jsxRuntime.jsx(chunkGD6FHRHV_js.ListCard, { children: availableTools.map((tool) => /* @__PURE__ */ jsxRuntime.jsxs(
2679
+ chunkGD6FHRHV_js.ListCardItem,
2680
2680
  {
2681
2681
  leading: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-9 w-9 items-center justify-center rounded-lg bg-slate-500/10 text-slate-600 dark:bg-slate-500/20 dark:text-slate-300", children: /* @__PURE__ */ jsxRuntime.jsx(outline.WrenchScrewdriverIcon, { className: "h-5 w-5" }) }),
2682
2682
  trailing: /* @__PURE__ */ jsxRuntime.jsxs(chunkBHOT22QL_js.Button, { type: "button", size: "sm", color: "indigo", onClick: () => onAttach(tool.agentToolId), children: [
@@ -2717,7 +2717,7 @@ function ModelTab({
2717
2717
  return matches.length > 0 ? matches : connections;
2718
2718
  }, [selectedModel, connections]);
2719
2719
  return /* @__PURE__ */ jsxRuntime.jsx(
2720
- chunkFNA66TT4_js.SectionCard,
2720
+ chunkGD6FHRHV_js.SectionCard,
2721
2721
  {
2722
2722
  variant: "glass",
2723
2723
  header: {
@@ -2738,9 +2738,9 @@ function ModelTab({
2738
2738
  },
2739
2739
  className: "space-y-4",
2740
2740
  children: [
2741
- /* @__PURE__ */ jsxRuntime.jsxs(chunkFNA66TT4_js.FormGrid, { children: [
2741
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkGD6FHRHV_js.FormGrid, { children: [
2742
2742
  /* @__PURE__ */ jsxRuntime.jsx(
2743
- chunkFNA66TT4_js.FormSelect,
2743
+ chunkGD6FHRHV_js.FormSelect,
2744
2744
  {
2745
2745
  label: labels.model,
2746
2746
  value: modelId,
@@ -2749,7 +2749,7 @@ function ModelTab({
2749
2749
  }
2750
2750
  ),
2751
2751
  /* @__PURE__ */ jsxRuntime.jsx(
2752
- chunkFNA66TT4_js.FormSelect,
2752
+ chunkGD6FHRHV_js.FormSelect,
2753
2753
  {
2754
2754
  label: labels.connection,
2755
2755
  value: connectionId,
@@ -2769,6 +2769,15 @@ function ModelTab({
2769
2769
  }
2770
2770
  );
2771
2771
  }
2772
+ var AGENT_PRESETS = [
2773
+ { id: "sales", emoji: "\u{1F4BC}", name: "Sales Specialist", role: "Lead qualification & CRM", systemPrompt: "You are a sales assistant. Help qualify leads, manage CRM entries, and schedule follow-ups. Always be professional and proactive.", temperature: 0.7, maxTokens: 2048, accent: "from-emerald-500 to-teal-600" },
2774
+ { id: "support", emoji: "\u{1F3A7}", name: "Customer Support", role: "Ticket resolution & escalation", systemPrompt: "You are a customer support agent. Resolve tickets, answer questions, and escalate complex issues. Prioritize customer satisfaction.", temperature: 0.3, maxTokens: 2048, accent: "from-sky-500 to-indigo-600" },
2775
+ { id: "finance", emoji: "\u{1F4CA}", name: "Financial Analyst", role: "Revenue, margins, reports", systemPrompt: "You are a financial analyst. Analyze revenue, calculate margins, generate performance reports, and identify trends. Use data-driven insights for recommendations.", temperature: 0.4, maxTokens: 4096, accent: "from-amber-500 to-orange-600" },
2776
+ { id: "security", emoji: "\u{1F6E1}\uFE0F", name: "Security Analyst", role: "Threat monitoring & compliance", systemPrompt: "You are a security analyst. Monitor for threats, audit data access, ensure compliance with privacy regulations, and manage incident response.", temperature: 0.3, maxTokens: 2048, accent: "from-rose-500 to-red-600" },
2777
+ { id: "data", emoji: "\u{1F52C}", name: "Data Analyst", role: "Pattern detection & cleaning", systemPrompt: "You are a data analyst. Process raw data inputs, identify patterns, clean datasets, and prepare structured analysis for downstream agents.", temperature: 0.5, maxTokens: 4096, accent: "from-violet-500 to-purple-600" },
2778
+ { id: "custom", emoji: "\u2728", name: "", role: "", systemPrompt: "", temperature: 0.2, maxTokens: 2048, accent: "from-slate-500 to-slate-700" }
2779
+ ];
2780
+ var EMOJI_PALETTE = ["\u{1F4BC}", "\u{1F3A7}", "\u{1F4CA}", "\u{1F6E1}\uFE0F", "\u{1F52C}", "\u2728", "\u{1F916}", "\u26A1", "\u{1F3AF}", "\u{1F680}", "\u{1F9E0}", "\u{1F9BE}", "\u{1F4E1}", "\u{1F52E}", "\u{1F310}", "\u{1F5C2}\uFE0F"];
2772
2781
  function CreateAgentDialog({
2773
2782
  labels,
2774
2783
  models,
@@ -2776,47 +2785,200 @@ function CreateAgentDialog({
2776
2785
  onSubmit
2777
2786
  }) {
2778
2787
  const modelOptions = models.map((m) => ({ value: m.id, label: `${m.name} (${m.provider})` }));
2788
+ const [presetId, setPresetId] = react.useState("custom");
2789
+ const [emoji, setEmoji] = react.useState("\u2728");
2790
+ const [name, setName] = react.useState("");
2791
+ const [role, setRole] = react.useState("");
2792
+ const [systemPrompt, setSystemPrompt] = react.useState("");
2793
+ const [temperature, setTemperature] = react.useState(0.2);
2794
+ const [maxTokens, setMaxTokens] = react.useState(2048);
2795
+ const [modelId, setModelId] = react.useState(modelOptions[0]?.value ?? "");
2796
+ const activePreset = AGENT_PRESETS.find((p) => p.id === presetId) ?? AGENT_PRESETS[AGENT_PRESETS.length - 1];
2797
+ function applyPreset(preset) {
2798
+ setPresetId(preset.id);
2799
+ setEmoji(preset.emoji);
2800
+ if (preset.id !== "custom") {
2801
+ setName(preset.name);
2802
+ setRole(preset.role);
2803
+ setSystemPrompt(preset.systemPrompt);
2804
+ setTemperature(preset.temperature);
2805
+ setMaxTokens(preset.maxTokens);
2806
+ }
2807
+ }
2779
2808
  return /* @__PURE__ */ jsxRuntime.jsx(
2780
- chunkFNA66TT4_js.GlassModal,
2809
+ chunkGD6FHRHV_js.GlassModal,
2781
2810
  {
2782
2811
  open: true,
2783
2812
  onClose,
2784
2813
  title: labels.createAgentTitle,
2785
- maxWidth: "lg",
2814
+ label: labels.createAgentEyebrow ?? "NEW AGENT",
2815
+ icon: /* @__PURE__ */ jsxRuntime.jsx(
2816
+ "div",
2817
+ {
2818
+ className: `flex h-full w-full items-center justify-center rounded-lg bg-gradient-to-br ${activePreset.accent} text-lg shadow-sm`,
2819
+ "aria-hidden": "true",
2820
+ children: emoji
2821
+ }
2822
+ ),
2823
+ maxWidth: "2xl",
2824
+ gradient: activePreset.accent,
2786
2825
  showFormFooter: true,
2787
2826
  submitLabel: labels.save,
2788
2827
  onSubmit: async (event) => {
2789
- const form = new FormData(event.currentTarget);
2828
+ event.preventDefault();
2790
2829
  await onSubmit({
2791
- name: String(form.get("name") ?? "").trim(),
2792
- modelId: String(form.get("modelId") ?? modelOptions[0]?.value ?? ""),
2793
- systemPrompt: "",
2794
- maxTokens: Number(form.get("maxTokens") ?? 2048),
2795
- temperature: Number(form.get("temperature") ?? 0.2)
2830
+ name: name.trim() || activePreset.name || "Untitled Agent",
2831
+ modelId,
2832
+ systemPrompt,
2833
+ maxTokens,
2834
+ temperature
2796
2835
  });
2797
2836
  },
2798
- children: /* @__PURE__ */ jsxRuntime.jsxs(chunkFNA66TT4_js.FormGrid, { children: [
2799
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormInput, { name: "name", label: labels.name, required: true }),
2837
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
2800
2838
  /* @__PURE__ */ jsxRuntime.jsx(
2801
- chunkFNA66TT4_js.FormSelect,
2839
+ chunkGD6FHRHV_js.SectionCard,
2802
2840
  {
2803
- name: "modelId",
2804
- label: labels.model,
2805
- options: modelOptions.length > 0 ? modelOptions : [{ value: "", label: labels.modelEmpty }],
2806
- defaultValue: modelOptions[0]?.value ?? ""
2841
+ variant: "glass",
2842
+ padded: false,
2843
+ header: {
2844
+ title: labels.presetTitle ?? "Start from a template",
2845
+ subtitle: labels.presetSubtitle ?? "Pick a role or build a custom agent"
2846
+ },
2847
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-2 px-4 pb-4 sm:grid-cols-3", children: AGENT_PRESETS.map((preset) => {
2848
+ const selected = preset.id === presetId;
2849
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2850
+ "button",
2851
+ {
2852
+ type: "button",
2853
+ onClick: () => applyPreset(preset),
2854
+ className: [
2855
+ "liquid-surface group flex items-center gap-3 rounded-xl px-3 py-2.5 text-left transition-all",
2856
+ selected ? "ring-2 ring-indigo-500/70 ring-offset-1 ring-offset-transparent" : "hover:border-indigo-400/40 focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1"
2857
+ ].join(" "),
2858
+ children: [
2859
+ /* @__PURE__ */ jsxRuntime.jsx(
2860
+ "span",
2861
+ {
2862
+ "aria-hidden": "true",
2863
+ className: `flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-gradient-to-br ${preset.accent} text-base shadow-sm`,
2864
+ children: preset.emoji
2865
+ }
2866
+ ),
2867
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "min-w-0 flex-1", children: [
2868
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "block truncate text-sm font-semibold text-slate-900 dark:text-white", children: preset.id === "custom" ? labels.presetCustom ?? "Custom" : preset.name }),
2869
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "block truncate text-xs text-slate-500 dark:text-slate-400", children: preset.role || (labels.presetCustomHint ?? "Start from scratch") })
2870
+ ] })
2871
+ ]
2872
+ },
2873
+ preset.id
2874
+ );
2875
+ }) })
2807
2876
  }
2808
2877
  ),
2809
- /* @__PURE__ */ jsxRuntime.jsx(chunkFNA66TT4_js.FormInput, { name: "maxTokens", label: labels.maxTokens, type: "number", defaultValue: "2048" }),
2810
2878
  /* @__PURE__ */ jsxRuntime.jsx(
2811
- chunkFNA66TT4_js.FormInput,
2879
+ chunkGD6FHRHV_js.SectionCard,
2812
2880
  {
2813
- name: "temperature",
2814
- label: labels.temperature,
2815
- type: "number",
2816
- step: 0.1,
2817
- min: 0,
2818
- max: 2,
2819
- defaultValue: "0.2"
2881
+ variant: "glass",
2882
+ header: {
2883
+ title: labels.identitySection ?? "Identity",
2884
+ subtitle: labels.identitySubtitle ?? "How your agent shows up across workflows"
2885
+ },
2886
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
2887
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
2888
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mb-2 block text-xs font-semibold uppercase tracking-wider text-slate-600 dark:text-slate-400", children: labels.avatarLabel ?? "Avatar" }),
2889
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1.5", children: EMOJI_PALETTE.map((e) => /* @__PURE__ */ jsxRuntime.jsx(
2890
+ "button",
2891
+ {
2892
+ type: "button",
2893
+ onClick: () => setEmoji(e),
2894
+ "aria-pressed": emoji === e,
2895
+ className: [
2896
+ "flex h-9 w-9 items-center justify-center rounded-lg text-base transition-all",
2897
+ emoji === e ? `bg-gradient-to-br ${activePreset.accent} shadow-sm ring-2 ring-indigo-500/70 ring-offset-1 ring-offset-transparent` : "liquid-surface hover:border-indigo-400/40 focus-visible:ring-2 focus-visible:ring-indigo-500/70 focus-visible:ring-offset-1"
2898
+ ].join(" "),
2899
+ children: e
2900
+ },
2901
+ e
2902
+ )) })
2903
+ ] }),
2904
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkGD6FHRHV_js.FormGrid, { children: [
2905
+ /* @__PURE__ */ jsxRuntime.jsx(
2906
+ chunkGD6FHRHV_js.FormInput,
2907
+ {
2908
+ label: labels.name,
2909
+ value: name,
2910
+ onValueChange: setName,
2911
+ required: true,
2912
+ placeholder: labels.namePlaceholder ?? "Sales Specialist"
2913
+ }
2914
+ ),
2915
+ /* @__PURE__ */ jsxRuntime.jsx(
2916
+ chunkGD6FHRHV_js.FormInput,
2917
+ {
2918
+ label: labels.role,
2919
+ value: role,
2920
+ onValueChange: setRole,
2921
+ placeholder: labels.rolePlaceholder
2922
+ }
2923
+ )
2924
+ ] })
2925
+ ] })
2926
+ }
2927
+ ),
2928
+ /* @__PURE__ */ jsxRuntime.jsx(
2929
+ chunkGD6FHRHV_js.SectionCard,
2930
+ {
2931
+ variant: "glass",
2932
+ header: {
2933
+ title: labels.behaviorSection ?? "Behavior",
2934
+ subtitle: labels.behaviorSubtitle ?? "System prompt shapes how the agent thinks"
2935
+ },
2936
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
2937
+ /* @__PURE__ */ jsxRuntime.jsx(
2938
+ chunkGD6FHRHV_js.FormTextarea,
2939
+ {
2940
+ label: labels.promptSystemPrompt ?? "System prompt",
2941
+ value: systemPrompt,
2942
+ onValueChange: setSystemPrompt,
2943
+ rows: 5,
2944
+ placeholder: labels.promptPlaceholder ?? "You are a helpful assistant\u2026"
2945
+ }
2946
+ ),
2947
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkGD6FHRHV_js.FormGrid, { children: [
2948
+ /* @__PURE__ */ jsxRuntime.jsx(
2949
+ chunkGD6FHRHV_js.FormSelect,
2950
+ {
2951
+ label: labels.model,
2952
+ value: modelId,
2953
+ onValueChange: setModelId,
2954
+ options: modelOptions.length > 0 ? modelOptions : [{ value: "", label: labels.modelEmpty }]
2955
+ }
2956
+ ),
2957
+ /* @__PURE__ */ jsxRuntime.jsx(
2958
+ chunkGD6FHRHV_js.FormInput,
2959
+ {
2960
+ label: labels.maxTokens,
2961
+ type: "number",
2962
+ value: String(maxTokens),
2963
+ onValueChange: (v) => setMaxTokens(Number(v) || 0),
2964
+ min: 1,
2965
+ max: 32e3
2966
+ }
2967
+ ),
2968
+ /* @__PURE__ */ jsxRuntime.jsx(
2969
+ chunkGD6FHRHV_js.FormInput,
2970
+ {
2971
+ label: `${labels.temperature} (${temperature.toFixed(2)})`,
2972
+ type: "number",
2973
+ value: String(temperature),
2974
+ onValueChange: (v) => setTemperature(Number(v) || 0),
2975
+ step: 0.1,
2976
+ min: 0,
2977
+ max: 2
2978
+ }
2979
+ )
2980
+ ] })
2981
+ ] })
2820
2982
  }
2821
2983
  )
2822
2984
  ] })
@@ -2833,31 +2995,31 @@ function deriveInitials(name) {
2833
2995
 
2834
2996
  Object.defineProperty(exports, "RolesPageView", {
2835
2997
  enumerable: true,
2836
- get: function () { return chunkFKUIVS6I_js.RolesPageView; }
2998
+ get: function () { return chunkBEUPW5WS_js.RolesPageView; }
2837
2999
  });
2838
3000
  Object.defineProperty(exports, "UsersPageView", {
2839
3001
  enumerable: true,
2840
- get: function () { return chunkFKUIVS6I_js.UsersPageView; }
3002
+ get: function () { return chunkBEUPW5WS_js.UsersPageView; }
2841
3003
  });
2842
3004
  Object.defineProperty(exports, "DIALECT_CATEGORIES", {
2843
3005
  enumerable: true,
2844
- get: function () { return chunkTJPPZU77_js.DIALECT_CATEGORIES; }
3006
+ get: function () { return chunkSUU7XPRX_js.DIALECT_CATEGORIES; }
2845
3007
  });
2846
3008
  Object.defineProperty(exports, "DatasourceFormModal", {
2847
3009
  enumerable: true,
2848
- get: function () { return chunkTJPPZU77_js.DatasourceFormModal; }
3010
+ get: function () { return chunkSUU7XPRX_js.DatasourceFormModal; }
2849
3011
  });
2850
3012
  Object.defineProperty(exports, "DatasourceModal", {
2851
3013
  enumerable: true,
2852
- get: function () { return chunkTJPPZU77_js.DatasourceModal; }
3014
+ get: function () { return chunkSUU7XPRX_js.DatasourceModal; }
2853
3015
  });
2854
3016
  Object.defineProperty(exports, "findCategory", {
2855
3017
  enumerable: true,
2856
- get: function () { return chunkTJPPZU77_js.findCategory; }
3018
+ get: function () { return chunkSUU7XPRX_js.findCategory; }
2857
3019
  });
2858
3020
  Object.defineProperty(exports, "findDialect", {
2859
3021
  enumerable: true,
2860
- get: function () { return chunkTJPPZU77_js.findDialect; }
3022
+ get: function () { return chunkSUU7XPRX_js.findDialect; }
2861
3023
  });
2862
3024
  exports.AgentsConfigPageView = AgentsConfigPageView;
2863
3025
  exports.AgentsIndexPageView = AgentsIndexPageView;