@datatechsolutions/ui 3.6.0 → 3.6.2
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.
- package/dist/astrlabe/graph-node.js +8 -5
- package/dist/astrlabe/graph-node.mjs +4 -1
- package/dist/astrlabe/index.js +115 -114
- package/dist/astrlabe/index.mjs +7 -6
- package/dist/astrlabe/workflow-canvas.js +7 -6
- package/dist/astrlabe/workflow-canvas.mjs +6 -5
- package/dist/{chunk-I63NFWIA.mjs → chunk-2OPBUVTQ.mjs} +3 -3
- package/dist/{chunk-I63NFWIA.mjs.map → chunk-2OPBUVTQ.mjs.map} +1 -1
- package/dist/{chunk-XTXLRQ3H.mjs → chunk-34XRH2FX.mjs} +28 -28
- package/dist/chunk-34XRH2FX.mjs.map +1 -0
- package/dist/{chunk-QHP2MR2F.js → chunk-3JZGRXSG.js} +4 -4
- package/dist/{chunk-QHP2MR2F.js.map → chunk-3JZGRXSG.js.map} +1 -1
- package/dist/{chunk-JQYDJ75Q.mjs → chunk-3VYD7QL2.mjs} +3 -3
- package/dist/{chunk-JQYDJ75Q.mjs.map → chunk-3VYD7QL2.mjs.map} +1 -1
- package/dist/{chunk-MRRFDIUQ.mjs → chunk-4JRMXHPU.mjs} +5 -4
- package/dist/chunk-4JRMXHPU.mjs.map +1 -0
- package/dist/{chunk-4OFG6POC.mjs → chunk-5LCWQKGQ.mjs} +207 -1128
- package/dist/chunk-5LCWQKGQ.mjs.map +1 -0
- package/dist/{chunk-W5YCZOXO.js → chunk-7YK4WXHO.js} +79 -78
- package/dist/chunk-7YK4WXHO.js.map +1 -0
- package/dist/{chunk-YOJIPZ72.js → chunk-BBLBSDPN.js} +9 -9
- package/dist/{chunk-YOJIPZ72.js.map → chunk-BBLBSDPN.js.map} +1 -1
- package/dist/chunk-BHOT22QL.js +998 -0
- package/dist/chunk-BHOT22QL.js.map +1 -0
- package/dist/{chunk-DYWSG42B.mjs → chunk-C4AJWDFB.mjs} +11 -10
- package/dist/chunk-C4AJWDFB.mjs.map +1 -0
- package/dist/{chunk-UOABOFKO.mjs → chunk-CBFK4W4C.mjs} +3 -3
- package/dist/{chunk-UOABOFKO.mjs.map → chunk-CBFK4W4C.mjs.map} +1 -1
- package/dist/{chunk-P5F257N3.js → chunk-CVZXZK2X.js} +35 -34
- package/dist/chunk-CVZXZK2X.js.map +1 -0
- package/dist/{chunk-IHHGT3LP.mjs → chunk-CYAAL3BY.mjs} +6 -5
- package/dist/chunk-CYAAL3BY.mjs.map +1 -0
- package/dist/{chunk-LVK7VXW7.js → chunk-DMPBNWJB.js} +37 -36
- package/dist/chunk-DMPBNWJB.js.map +1 -0
- package/dist/{chunk-ESLKQJQS.mjs → chunk-DXLATMGD.mjs} +6 -5
- package/dist/chunk-DXLATMGD.mjs.map +1 -0
- package/dist/{chunk-P4YYEM4B.js → chunk-EZQ2D47U.js} +7 -10
- package/dist/chunk-EZQ2D47U.js.map +1 -0
- package/dist/{chunk-UWSMHKOF.js → chunk-FUHNEP3Y.js} +164 -163
- package/dist/chunk-FUHNEP3Y.js.map +1 -0
- package/dist/{chunk-YTE6WCBX.js → chunk-JHN2OUWG.js} +64 -63
- package/dist/chunk-JHN2OUWG.js.map +1 -0
- package/dist/{chunk-AMYQSPQC.js → chunk-JLECJI7S.js} +18 -17
- package/dist/chunk-JLECJI7S.js.map +1 -0
- package/dist/{chunk-VPOIX2DY.js → chunk-KMNWPC64.js} +40 -39
- package/dist/chunk-KMNWPC64.js.map +1 -0
- package/dist/{chunk-VUAGVZJM.mjs → chunk-NJ6HH4QP.mjs} +6 -5
- package/dist/chunk-NJ6HH4QP.mjs.map +1 -0
- package/dist/{chunk-OZNTQROP.mjs → chunk-PLTLRL2V.mjs} +7 -10
- package/dist/chunk-PLTLRL2V.mjs.map +1 -0
- package/dist/{chunk-WEZ722BS.mjs → chunk-PMMP76MV.mjs} +7 -6
- package/dist/chunk-PMMP76MV.mjs.map +1 -0
- package/dist/{chunk-NJZIE4EH.js → chunk-QF6WL7XU.js} +6 -5
- package/dist/chunk-QF6WL7XU.js.map +1 -0
- package/dist/{chunk-QRNFTG6A.js → chunk-QGLGQXJE.js} +4 -4
- package/dist/{chunk-QRNFTG6A.js.map → chunk-QGLGQXJE.js.map} +1 -1
- package/dist/{chunk-GCYYGSHU.js → chunk-R4EKPXX3.js} +564 -1525
- package/dist/chunk-R4EKPXX3.js.map +1 -0
- package/dist/{chunk-S7AV6XEY.js → chunk-RWYG7QHP.js} +128 -138
- package/dist/chunk-RWYG7QHP.js.map +1 -0
- package/dist/{chunk-WBEZATIB.js → chunk-RZ3NDH5S.js} +13 -13
- package/dist/{chunk-WBEZATIB.js.map → chunk-RZ3NDH5S.js.map} +1 -1
- package/dist/{chunk-HGWVJ3VB.mjs → chunk-SJVKID3E.mjs} +4 -3
- package/dist/chunk-SJVKID3E.mjs.map +1 -0
- package/dist/{chunk-7LILNZMR.mjs → chunk-TJEZL72T.mjs} +4 -3
- package/dist/chunk-TJEZL72T.mjs.map +1 -0
- package/dist/{chunk-3WXMBAGN.js → chunk-UDYEUTJC.js} +50 -50
- package/dist/chunk-UDYEUTJC.js.map +1 -0
- package/dist/{chunk-UGJZ3M4Q.js → chunk-VDLMWOQM.js} +55 -54
- package/dist/chunk-VDLMWOQM.js.map +1 -0
- package/dist/{chunk-QTA5I6FC.mjs → chunk-VZIUQE7B.mjs} +54 -64
- package/dist/chunk-VZIUQE7B.mjs.map +1 -0
- package/dist/chunk-WR55H7DH.mjs +934 -0
- package/dist/chunk-WR55H7DH.mjs.map +1 -0
- package/dist/{chunk-ZYVDDSAC.mjs → chunk-YRXDETBK.mjs} +6 -6
- package/dist/{chunk-ZYVDDSAC.mjs.map → chunk-YRXDETBK.mjs.map} +1 -1
- package/dist/{chunk-VDLAZR7S.mjs → chunk-ZYRL3WER.mjs} +5 -4
- package/dist/chunk-ZYRL3WER.mjs.map +1 -0
- package/dist/index.js +826 -825
- package/dist/index.mjs +4 -3
- package/dist/platform/admin/index.js +13 -12
- package/dist/platform/admin/index.mjs +7 -6
- package/dist/platform/agents-workspace.js +10 -9
- package/dist/platform/agents-workspace.mjs +9 -8
- package/dist/platform/app-shell.js +6 -5
- package/dist/platform/app-shell.mjs +5 -4
- package/dist/platform/auth/index.js +30 -29
- package/dist/platform/auth/index.mjs +7 -6
- package/dist/platform/billing/index.js +6 -5
- package/dist/platform/billing/index.mjs +5 -4
- package/dist/platform/impersonation/index.js +6 -5
- package/dist/platform/impersonation/index.mjs +5 -4
- package/dist/platform/index.js +87 -93
- package/dist/platform/index.js.map +1 -1
- package/dist/platform/index.mjs +23 -29
- package/dist/platform/index.mjs.map +1 -1
- package/dist/platform/pages/index.js +476 -470
- package/dist/platform/pages/index.js.map +1 -1
- package/dist/platform/pages/index.mjs +326 -320
- package/dist/platform/pages/index.mjs.map +1 -1
- package/dist/platform/settings/index.js +10 -9
- package/dist/platform/settings/index.mjs +9 -8
- package/dist/platform/workflow-canvas-shell.js +8 -7
- package/dist/platform/workflow-canvas-shell.mjs +7 -6
- package/package.json +1 -1
- package/dist/chunk-3WXMBAGN.js.map +0 -1
- package/dist/chunk-4OFG6POC.mjs.map +0 -1
- package/dist/chunk-7LILNZMR.mjs.map +0 -1
- package/dist/chunk-AMYQSPQC.js.map +0 -1
- package/dist/chunk-DYWSG42B.mjs.map +0 -1
- package/dist/chunk-ESLKQJQS.mjs.map +0 -1
- package/dist/chunk-GCYYGSHU.js.map +0 -1
- package/dist/chunk-HGWVJ3VB.mjs.map +0 -1
- package/dist/chunk-IHHGT3LP.mjs.map +0 -1
- package/dist/chunk-LVK7VXW7.js.map +0 -1
- package/dist/chunk-MRRFDIUQ.mjs.map +0 -1
- package/dist/chunk-NJZIE4EH.js.map +0 -1
- package/dist/chunk-OZNTQROP.mjs.map +0 -1
- package/dist/chunk-P4YYEM4B.js.map +0 -1
- package/dist/chunk-P5F257N3.js.map +0 -1
- package/dist/chunk-QTA5I6FC.mjs.map +0 -1
- package/dist/chunk-S7AV6XEY.js.map +0 -1
- package/dist/chunk-UGJZ3M4Q.js.map +0 -1
- package/dist/chunk-UWSMHKOF.js.map +0 -1
- package/dist/chunk-VDLAZR7S.mjs.map +0 -1
- package/dist/chunk-VPOIX2DY.js.map +0 -1
- package/dist/chunk-VUAGVZJM.mjs.map +0 -1
- package/dist/chunk-W5YCZOXO.js.map +0 -1
- package/dist/chunk-WEZ722BS.mjs.map +0 -1
- package/dist/chunk-XTXLRQ3H.mjs.map +0 -1
- package/dist/chunk-YTE6WCBX.js.map +0 -1
|
@@ -2,19 +2,20 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var chunk3T2WGL47_js = require('../../chunk-3T2WGL47.js');
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
5
|
+
var chunkUDYEUTJC_js = require('../../chunk-UDYEUTJC.js');
|
|
6
|
+
var chunkDMPBNWJB_js = require('../../chunk-DMPBNWJB.js');
|
|
7
|
+
var chunkFUHNEP3Y_js = require('../../chunk-FUHNEP3Y.js');
|
|
8
8
|
require('../../chunk-55H6WZQP.js');
|
|
9
9
|
require('../../chunk-DJDZIRM6.js');
|
|
10
|
-
require('../../chunk-
|
|
11
|
-
var
|
|
12
|
-
require('../../chunk-UZ3CMNUJ.js');
|
|
10
|
+
require('../../chunk-RWYG7QHP.js');
|
|
11
|
+
var chunkR4EKPXX3_js = require('../../chunk-R4EKPXX3.js');
|
|
13
12
|
require('../../chunk-YXN2K77G.js');
|
|
14
|
-
var chunkS7KHTUHA_js = require('../../chunk-S7KHTUHA.js');
|
|
15
13
|
require('../../chunk-SY4MUT5V.js');
|
|
16
14
|
require('../../chunk-2OZZH2IO.js');
|
|
17
|
-
require('../../chunk-
|
|
15
|
+
require('../../chunk-EZQ2D47U.js');
|
|
16
|
+
var chunkBHOT22QL_js = require('../../chunk-BHOT22QL.js');
|
|
17
|
+
require('../../chunk-UZ3CMNUJ.js');
|
|
18
|
+
var chunkS7KHTUHA_js = require('../../chunk-S7KHTUHA.js');
|
|
18
19
|
require('../../chunk-72SWXOD5.js');
|
|
19
20
|
var react = require('react');
|
|
20
21
|
var outline = require('@heroicons/react/24/outline');
|
|
@@ -26,36 +27,37 @@ function AgentsModelsPageView({ labels, models, loading }) {
|
|
|
26
27
|
const filteredModels = searchTerm.trim() ? allModels.filter((model) => model.name.toLowerCase().includes(searchTerm.trim().toLowerCase())) : allModels;
|
|
27
28
|
const isEmpty = allModels.length === 0;
|
|
28
29
|
const hero = /* @__PURE__ */ jsxRuntime.jsx(
|
|
29
|
-
|
|
30
|
+
chunkR4EKPXX3_js.HeroSection,
|
|
30
31
|
{
|
|
31
32
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.CubeTransparentIcon, { className: "h-5 w-5" }),
|
|
32
33
|
label: labels.title,
|
|
33
34
|
title: labels.title,
|
|
34
35
|
subtitle: labels.subtitle,
|
|
35
|
-
gradient: "from-emerald-500 to-teal-700"
|
|
36
|
-
toolbar: !isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
37
|
-
chunkGCYYGSHU_js.SearchBar,
|
|
38
|
-
{
|
|
39
|
-
searchTerm,
|
|
40
|
-
onSearchChange: setSearchTerm,
|
|
41
|
-
placeholder: labels.searchPlaceholder ?? labels.title,
|
|
42
|
-
noBorder: true
|
|
43
|
-
}
|
|
44
|
-
) : void 0
|
|
36
|
+
gradient: "from-emerald-500 to-teal-700"
|
|
45
37
|
}
|
|
46
38
|
);
|
|
47
|
-
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
model.
|
|
57
|
-
|
|
58
|
-
|
|
39
|
+
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
40
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
41
|
+
chunkR4EKPXX3_js.SearchBar,
|
|
42
|
+
{
|
|
43
|
+
searchTerm,
|
|
44
|
+
onSearchChange: setSearchTerm,
|
|
45
|
+
placeholder: labels.searchPlaceholder ?? labels.title
|
|
46
|
+
}
|
|
47
|
+
),
|
|
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
|
+
chunkR4EKPXX3_js.EntityCard,
|
|
50
|
+
{
|
|
51
|
+
accentGradient: "from-emerald-500 to-teal-700",
|
|
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" }) }),
|
|
53
|
+
title: model.name,
|
|
54
|
+
subtitle: `${labels.provider}: ${model.provider}`,
|
|
55
|
+
status: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: model.enabled ? "emerald" : "zinc", children: model.enabled ? labels.enabled : labels.disabled })
|
|
56
|
+
},
|
|
57
|
+
model.id
|
|
58
|
+
)) })
|
|
59
|
+
] });
|
|
60
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.ManagementPageLayout, { hero, content });
|
|
59
61
|
}
|
|
60
62
|
function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpdate, onDelete }) {
|
|
61
63
|
const [editing, setEditing] = react.useState(null);
|
|
@@ -66,7 +68,7 @@ function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpd
|
|
|
66
68
|
const filteredAgents = searchTerm.trim() ? allAgents.filter((agent) => String(agent.name ?? "").toLowerCase().includes(searchTerm.trim().toLowerCase())) : allAgents;
|
|
67
69
|
const isEmpty = allAgents.length === 0;
|
|
68
70
|
const hero = /* @__PURE__ */ jsxRuntime.jsx(
|
|
69
|
-
|
|
71
|
+
chunkR4EKPXX3_js.HeroSection,
|
|
70
72
|
{
|
|
71
73
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-5 w-5" }),
|
|
72
74
|
label: labels.title,
|
|
@@ -74,7 +76,7 @@ function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpd
|
|
|
74
76
|
subtitle: labels.subtitle,
|
|
75
77
|
gradient: "from-violet-500 to-indigo-700",
|
|
76
78
|
toolbar: !isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
77
|
-
|
|
79
|
+
chunkR4EKPXX3_js.SearchBar,
|
|
78
80
|
{
|
|
79
81
|
searchTerm,
|
|
80
82
|
onSearchChange: setSearchTerm,
|
|
@@ -83,7 +85,7 @@ function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpd
|
|
|
83
85
|
}
|
|
84
86
|
) : void 0,
|
|
85
87
|
actions: /* @__PURE__ */ jsxRuntime.jsx(
|
|
86
|
-
|
|
88
|
+
chunkR4EKPXX3_js.CreateActionButton,
|
|
87
89
|
{
|
|
88
90
|
mode: "desktop",
|
|
89
91
|
label: labels.addAgent,
|
|
@@ -94,7 +96,7 @@ function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpd
|
|
|
94
96
|
}
|
|
95
97
|
);
|
|
96
98
|
const mobileAction = /* @__PURE__ */ jsxRuntime.jsx(
|
|
97
|
-
|
|
99
|
+
chunkR4EKPXX3_js.CreateActionButton,
|
|
98
100
|
{
|
|
99
101
|
mode: "mobile",
|
|
100
102
|
label: labels.addAgent,
|
|
@@ -102,23 +104,23 @@ function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpd
|
|
|
102
104
|
accent: "violet"
|
|
103
105
|
}
|
|
104
106
|
);
|
|
105
|
-
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
107
|
+
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_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) => {
|
|
106
108
|
const modelRecord = models.find((model) => model.id === String(agent.modelId ?? ""));
|
|
107
109
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
108
|
-
|
|
110
|
+
chunkR4EKPXX3_js.EntityCard,
|
|
109
111
|
{
|
|
110
112
|
accentGradient: "from-violet-500 to-indigo-700",
|
|
111
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" }) }),
|
|
112
114
|
title: String(agent.name ?? ""),
|
|
113
115
|
subtitle: String(modelRecord?.name ?? agent.modelId ?? ""),
|
|
114
|
-
status: agent.activePromptVersion > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
116
|
+
status: agent.activePromptVersion > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunkBHOT22QL_js.Badge, { color: "emerald", children: [
|
|
115
117
|
"v",
|
|
116
118
|
agent.activePromptVersion
|
|
117
119
|
] }) : null,
|
|
118
120
|
footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
|
|
119
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
121
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", size: "sm", outline: true, onClick: () => setEditing(agent), children: labels.edit }),
|
|
120
122
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
121
|
-
|
|
123
|
+
chunkBHOT22QL_js.Button,
|
|
122
124
|
{
|
|
123
125
|
type: "button",
|
|
124
126
|
size: "sm",
|
|
@@ -142,7 +144,7 @@ function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpd
|
|
|
142
144
|
);
|
|
143
145
|
}) });
|
|
144
146
|
const renderForm = (initial, onSubmit) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
145
|
-
|
|
147
|
+
chunkR4EKPXX3_js.GlassModal,
|
|
146
148
|
{
|
|
147
149
|
open: true,
|
|
148
150
|
onClose: () => {
|
|
@@ -165,18 +167,18 @@ function AgentsConfigPageView({ labels, agents, models, loading, onCreate, onUpd
|
|
|
165
167
|
outputSchema: String(form.get("outputSchema") ?? "").trim() || void 0
|
|
166
168
|
});
|
|
167
169
|
},
|
|
168
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
169
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
170
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
171
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
172
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
173
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
174
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
170
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(chunkR4EKPXX3_js.FormGrid, { children: [
|
|
171
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.FormInput, { name: "name", label: labels.name, defaultValue: initial.name ?? "", required: true }),
|
|
172
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.FormSelect, { name: "modelId", label: labels.model, options: modelOptions, defaultValue: initial.modelId ?? modelOptions[0]?.value ?? "", required: true }),
|
|
173
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.FormInput, { name: "maxTokens", label: String(labels.maxTokens), type: "number", defaultValue: String(initial.maxTokens ?? 2048) }),
|
|
174
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_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(chunkR4EKPXX3_js.FormTextarea, { name: "systemPrompt", label: labels.systemPrompt, defaultValue: initial.systemPrompt ?? "", rows: 4 }),
|
|
176
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.FormTextarea, { name: "outputSchema", label: labels.outputSchema, placeholder: labels.outputSchemaPlaceholder, defaultValue: initial.outputSchema ?? "", rows: 4 })
|
|
175
177
|
] })
|
|
176
178
|
}
|
|
177
179
|
);
|
|
178
180
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
179
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
181
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.ManagementPageLayout, { hero, content, mobileAction }),
|
|
180
182
|
createOpen && renderForm({ title: labels.createTitle }, (input) => {
|
|
181
183
|
onCreate(input);
|
|
182
184
|
setCreateOpen(false);
|
|
@@ -234,24 +236,15 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
|
|
|
234
236
|
}) : allPrompts;
|
|
235
237
|
const isEmpty = allPrompts.length === 0;
|
|
236
238
|
const hero = /* @__PURE__ */ jsxRuntime.jsx(
|
|
237
|
-
|
|
239
|
+
chunkR4EKPXX3_js.HeroSection,
|
|
238
240
|
{
|
|
239
241
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.ChatBubbleLeftEllipsisIcon, { className: "h-5 w-5" }),
|
|
240
242
|
label: labels.title,
|
|
241
243
|
title: labels.title,
|
|
242
244
|
subtitle: labels.subtitle,
|
|
243
245
|
gradient: "from-sky-500 to-blue-700",
|
|
244
|
-
toolbar:
|
|
245
|
-
|
|
246
|
-
{
|
|
247
|
-
searchTerm,
|
|
248
|
-
onSearchChange: setSearchTerm,
|
|
249
|
-
placeholder: labels.searchPlaceholder ?? labels.title,
|
|
250
|
-
noBorder: true
|
|
251
|
-
}
|
|
252
|
-
) : void 0,
|
|
253
|
-
actions: /* @__PURE__ */ jsxRuntime.jsx(
|
|
254
|
-
chunkGCYYGSHU_js.CreateActionButton,
|
|
246
|
+
toolbar: /* @__PURE__ */ jsxRuntime.jsx(
|
|
247
|
+
chunkR4EKPXX3_js.CreateActionButton,
|
|
255
248
|
{
|
|
256
249
|
mode: "desktop",
|
|
257
250
|
label: labels.addPrompt,
|
|
@@ -262,7 +255,7 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
|
|
|
262
255
|
}
|
|
263
256
|
);
|
|
264
257
|
const mobileAction = /* @__PURE__ */ jsxRuntime.jsx(
|
|
265
|
-
|
|
258
|
+
chunkR4EKPXX3_js.CreateActionButton,
|
|
266
259
|
{
|
|
267
260
|
mode: "mobile",
|
|
268
261
|
label: labels.addPrompt,
|
|
@@ -270,41 +263,51 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
|
|
|
270
263
|
accent: "sky"
|
|
271
264
|
}
|
|
272
265
|
);
|
|
273
|
-
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
277
|
-
chunkGCYYGSHU_js.EntityCard,
|
|
266
|
+
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
267
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
268
|
+
chunkR4EKPXX3_js.SearchBar,
|
|
278
269
|
{
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
270
|
+
searchTerm,
|
|
271
|
+
onSearchChange: setSearchTerm,
|
|
272
|
+
placeholder: labels.searchPlaceholder ?? labels.title
|
|
273
|
+
}
|
|
274
|
+
),
|
|
275
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: filteredPrompts.map((prompt) => {
|
|
276
|
+
const agentName = agentNameById.get(prompt.agentId) ?? prompt.agentId;
|
|
277
|
+
const key = `${prompt.agentId}:${prompt.locale}:${prompt.version}`;
|
|
278
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
279
|
+
chunkR4EKPXX3_js.EntityCard,
|
|
280
|
+
{
|
|
281
|
+
accentGradient: "from-sky-500 to-blue-700",
|
|
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" }) }),
|
|
283
|
+
title: agentName,
|
|
284
|
+
subtitle: `${prompt.locale} \xB7 v${prompt.version}`,
|
|
285
|
+
status: prompt.isActive ? /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "emerald", children: labels.isActive }) : null,
|
|
286
|
+
footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
|
|
287
|
+
!prompt.isActive && /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", size: "sm", outline: true, onClick: () => onActivate(prompt), children: labels.activate }),
|
|
288
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
289
|
+
chunkBHOT22QL_js.Button,
|
|
290
|
+
{
|
|
291
|
+
type: "button",
|
|
292
|
+
size: "sm",
|
|
293
|
+
color: "rose",
|
|
294
|
+
onClick: () => {
|
|
295
|
+
if (window.confirm(labels.deleteConfirm)) onDelete(prompt);
|
|
296
|
+
},
|
|
297
|
+
children: labels.delete
|
|
298
|
+
}
|
|
299
|
+
)
|
|
300
|
+
] }),
|
|
301
|
+
children: prompt.prompt && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 line-clamp-3 text-xs text-slate-500 dark:text-slate-400", children: prompt.prompt })
|
|
302
|
+
},
|
|
303
|
+
key
|
|
304
|
+
);
|
|
305
|
+
}) })
|
|
306
|
+
] });
|
|
304
307
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
305
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
308
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.ManagementPageLayout, { hero, content, mobileAction }),
|
|
306
309
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
307
|
-
|
|
310
|
+
chunkR4EKPXX3_js.GlassModal,
|
|
308
311
|
{
|
|
309
312
|
open: createOpen,
|
|
310
313
|
onClose: () => setCreateOpen(false),
|
|
@@ -328,11 +331,11 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
|
|
|
328
331
|
});
|
|
329
332
|
setCreateOpen(false);
|
|
330
333
|
},
|
|
331
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
332
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
333
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
334
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(chunkR4EKPXX3_js.FormGrid, { children: [
|
|
335
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.FormSelect, { name: "agentId", label: labels.agent, options: agentOptions, required: true }),
|
|
336
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.FormSelect, { name: "locale", label: labels.locale, options: LOCALE_OPTIONS, defaultValue: "en" }),
|
|
334
337
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
335
|
-
|
|
338
|
+
chunkR4EKPXX3_js.FormSelect,
|
|
336
339
|
{
|
|
337
340
|
name: "isActive",
|
|
338
341
|
label: labels.isActive,
|
|
@@ -340,10 +343,10 @@ function AgentsPromptsPageView({ labels, agents, prompts, loading, onCreate, onA
|
|
|
340
343
|
defaultValue: "true"
|
|
341
344
|
}
|
|
342
345
|
),
|
|
343
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
344
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
345
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
346
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
346
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.FormInput, { name: "reason", label: labels.reason }),
|
|
347
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.FormTextarea, { name: "systemPrompt", label: labels.systemPrompt, rows: 3 }),
|
|
348
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.FormTextarea, { name: "userTemplate", label: labels.userTemplate, rows: 3 }),
|
|
349
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.FormTextarea, { name: "prompt", label: labels.prompt, rows: 6, required: true })
|
|
347
350
|
] })
|
|
348
351
|
}
|
|
349
352
|
)
|
|
@@ -378,24 +381,15 @@ function AgentsToolDefinitionsPageView({ labels, tools, loading, onCreate, onUpd
|
|
|
378
381
|
const filteredTools = searchTerm.trim() ? allTools.filter((tool) => tool.name.toLowerCase().includes(searchTerm.trim().toLowerCase())) : allTools;
|
|
379
382
|
const isEmpty = allTools.length === 0;
|
|
380
383
|
const hero = /* @__PURE__ */ jsxRuntime.jsx(
|
|
381
|
-
|
|
384
|
+
chunkR4EKPXX3_js.HeroSection,
|
|
382
385
|
{
|
|
383
386
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.WrenchScrewdriverIcon, { className: "h-5 w-5" }),
|
|
384
387
|
label: labels.title,
|
|
385
388
|
title: labels.title,
|
|
386
389
|
subtitle: labels.subtitle,
|
|
387
390
|
gradient: "from-amber-500 to-orange-700",
|
|
388
|
-
toolbar:
|
|
389
|
-
|
|
390
|
-
{
|
|
391
|
-
searchTerm,
|
|
392
|
-
onSearchChange: setSearchTerm,
|
|
393
|
-
placeholder: labels.searchPlaceholder ?? labels.title,
|
|
394
|
-
noBorder: true
|
|
395
|
-
}
|
|
396
|
-
) : void 0,
|
|
397
|
-
actions: /* @__PURE__ */ jsxRuntime.jsx(
|
|
398
|
-
chunkGCYYGSHU_js.CreateActionButton,
|
|
391
|
+
toolbar: /* @__PURE__ */ jsxRuntime.jsx(
|
|
392
|
+
chunkR4EKPXX3_js.CreateActionButton,
|
|
399
393
|
{
|
|
400
394
|
mode: "desktop",
|
|
401
395
|
label: labels.addTool,
|
|
@@ -406,7 +400,7 @@ function AgentsToolDefinitionsPageView({ labels, tools, loading, onCreate, onUpd
|
|
|
406
400
|
}
|
|
407
401
|
);
|
|
408
402
|
const mobileAction = /* @__PURE__ */ jsxRuntime.jsx(
|
|
409
|
-
|
|
403
|
+
chunkR4EKPXX3_js.CreateActionButton,
|
|
410
404
|
{
|
|
411
405
|
mode: "mobile",
|
|
412
406
|
label: labels.addTool,
|
|
@@ -414,35 +408,45 @@ function AgentsToolDefinitionsPageView({ labels, tools, loading, onCreate, onUpd
|
|
|
414
408
|
accent: "amber"
|
|
415
409
|
}
|
|
416
410
|
);
|
|
417
|
-
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
411
|
+
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
412
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
413
|
+
chunkR4EKPXX3_js.SearchBar,
|
|
414
|
+
{
|
|
415
|
+
searchTerm,
|
|
416
|
+
onSearchChange: setSearchTerm,
|
|
417
|
+
placeholder: labels.searchPlaceholder ?? labels.title
|
|
418
|
+
}
|
|
419
|
+
),
|
|
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
|
+
chunkR4EKPXX3_js.EntityCard,
|
|
422
|
+
{
|
|
423
|
+
accentGradient: "from-amber-500 to-orange-700",
|
|
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" }) }),
|
|
425
|
+
title: tool.name,
|
|
426
|
+
subtitle: toolTypeLabel(tool),
|
|
427
|
+
status: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: tool.enabled ? "emerald" : "zinc", children: tool.enabled ? labels.enabled : labels.disabled }),
|
|
428
|
+
footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
|
|
429
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", size: "sm", outline: true, onClick: () => setEditing(tool), children: labels.edit }),
|
|
430
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
431
|
+
chunkBHOT22QL_js.Button,
|
|
432
|
+
{
|
|
433
|
+
type: "button",
|
|
434
|
+
size: "sm",
|
|
435
|
+
color: "rose",
|
|
436
|
+
onClick: () => {
|
|
437
|
+
if (window.confirm(labels.deleteConfirm)) onDelete(tool);
|
|
438
|
+
},
|
|
439
|
+
children: labels.delete
|
|
440
|
+
}
|
|
441
|
+
)
|
|
442
|
+
] }),
|
|
443
|
+
children: tool.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs text-slate-500 dark:text-slate-400", children: tool.description })
|
|
444
|
+
},
|
|
445
|
+
tool.agentToolId
|
|
446
|
+
)) })
|
|
447
|
+
] });
|
|
444
448
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
445
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
449
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.ManagementPageLayout, { hero, content, mobileAction }),
|
|
446
450
|
createOpen && /* @__PURE__ */ jsxRuntime.jsx(
|
|
447
451
|
ToolEditor,
|
|
448
452
|
{
|
|
@@ -500,7 +504,7 @@ function ToolEditor({
|
|
|
500
504
|
setValue((v) => ({ ...v, [key]: next }));
|
|
501
505
|
};
|
|
502
506
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
503
|
-
|
|
507
|
+
chunkR4EKPXX3_js.GlassModal,
|
|
504
508
|
{
|
|
505
509
|
open: true,
|
|
506
510
|
onClose,
|
|
@@ -513,9 +517,9 @@ function ToolEditor({
|
|
|
513
517
|
handleSubmit();
|
|
514
518
|
},
|
|
515
519
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
|
|
516
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
520
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkR4EKPXX3_js.FormGrid, { children: [
|
|
517
521
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
518
|
-
|
|
522
|
+
chunkR4EKPXX3_js.FormInput,
|
|
519
523
|
{
|
|
520
524
|
label: "Name",
|
|
521
525
|
required: true,
|
|
@@ -525,7 +529,7 @@ function ToolEditor({
|
|
|
525
529
|
}
|
|
526
530
|
),
|
|
527
531
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
528
|
-
|
|
532
|
+
chunkR4EKPXX3_js.FormSelect,
|
|
529
533
|
{
|
|
530
534
|
label: "Tool type",
|
|
531
535
|
value: value.toolType,
|
|
@@ -535,7 +539,7 @@ function ToolEditor({
|
|
|
535
539
|
}
|
|
536
540
|
),
|
|
537
541
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
538
|
-
|
|
542
|
+
chunkR4EKPXX3_js.FormSelect,
|
|
539
543
|
{
|
|
540
544
|
label: "Enabled",
|
|
541
545
|
value: value.enabled ? "true" : "false",
|
|
@@ -544,7 +548,7 @@ function ToolEditor({
|
|
|
544
548
|
}
|
|
545
549
|
),
|
|
546
550
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
547
|
-
|
|
551
|
+
chunkR4EKPXX3_js.FormInput,
|
|
548
552
|
{
|
|
549
553
|
label: "Icon (optional)",
|
|
550
554
|
value: value.icon ?? "",
|
|
@@ -554,7 +558,7 @@ function ToolEditor({
|
|
|
554
558
|
)
|
|
555
559
|
] }),
|
|
556
560
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
557
|
-
|
|
561
|
+
chunkR4EKPXX3_js.FormTextarea,
|
|
558
562
|
{
|
|
559
563
|
label: "Description",
|
|
560
564
|
rows: 2,
|
|
@@ -602,7 +606,7 @@ function ParametersEditor({
|
|
|
602
606
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
603
607
|
parameters.map((param, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[1fr_160px_1fr_110px_auto] items-end gap-2", children: [
|
|
604
608
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
605
|
-
|
|
609
|
+
chunkR4EKPXX3_js.FormInput,
|
|
606
610
|
{
|
|
607
611
|
label: "Name",
|
|
608
612
|
value: param.name,
|
|
@@ -611,7 +615,7 @@ function ParametersEditor({
|
|
|
611
615
|
}
|
|
612
616
|
),
|
|
613
617
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
614
|
-
|
|
618
|
+
chunkR4EKPXX3_js.FormSelect,
|
|
615
619
|
{
|
|
616
620
|
label: "Type",
|
|
617
621
|
value: param.type,
|
|
@@ -620,7 +624,7 @@ function ParametersEditor({
|
|
|
620
624
|
}
|
|
621
625
|
),
|
|
622
626
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
623
|
-
|
|
627
|
+
chunkR4EKPXX3_js.FormInput,
|
|
624
628
|
{
|
|
625
629
|
label: "Description",
|
|
626
630
|
value: param.description,
|
|
@@ -639,9 +643,9 @@ function ParametersEditor({
|
|
|
639
643
|
),
|
|
640
644
|
"Required"
|
|
641
645
|
] }),
|
|
642
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
646
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", plain: true, onClick: () => remove(index), children: "Remove" })
|
|
643
647
|
] }, index)),
|
|
644
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
648
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", outline: true, onClick: add, children: "+ Add parameter" })
|
|
645
649
|
] })
|
|
646
650
|
] });
|
|
647
651
|
}
|
|
@@ -654,9 +658,9 @@ function HandlerConfigEditor({
|
|
|
654
658
|
if (toolType === "http") {
|
|
655
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: [
|
|
656
660
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-2 text-sm font-semibold text-slate-700 dark:text-slate-200", children: "HTTP handler" }),
|
|
657
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
661
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkR4EKPXX3_js.FormGrid, { children: [
|
|
658
662
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
659
|
-
|
|
663
|
+
chunkR4EKPXX3_js.FormSelect,
|
|
660
664
|
{
|
|
661
665
|
label: "Method",
|
|
662
666
|
value: stringProp(config, "method", "GET"),
|
|
@@ -665,7 +669,7 @@ function HandlerConfigEditor({
|
|
|
665
669
|
}
|
|
666
670
|
),
|
|
667
671
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
668
|
-
|
|
672
|
+
chunkR4EKPXX3_js.FormInput,
|
|
669
673
|
{
|
|
670
674
|
label: "URL template",
|
|
671
675
|
value: stringProp(config, "url"),
|
|
@@ -675,7 +679,7 @@ function HandlerConfigEditor({
|
|
|
675
679
|
)
|
|
676
680
|
] }),
|
|
677
681
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
678
|
-
|
|
682
|
+
chunkR4EKPXX3_js.FormTextarea,
|
|
679
683
|
{
|
|
680
684
|
label: "Headers (JSON)",
|
|
681
685
|
rows: 3,
|
|
@@ -685,7 +689,7 @@ function HandlerConfigEditor({
|
|
|
685
689
|
}
|
|
686
690
|
),
|
|
687
691
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
688
|
-
|
|
692
|
+
chunkR4EKPXX3_js.FormTextarea,
|
|
689
693
|
{
|
|
690
694
|
label: "Body template",
|
|
691
695
|
rows: 3,
|
|
@@ -700,7 +704,7 @@ function HandlerConfigEditor({
|
|
|
700
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: [
|
|
701
705
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-2 text-sm font-semibold text-slate-700 dark:text-slate-200", children: "Function handler" }),
|
|
702
706
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
703
|
-
|
|
707
|
+
chunkR4EKPXX3_js.FormInput,
|
|
704
708
|
{
|
|
705
709
|
label: "Implementation key",
|
|
706
710
|
value: stringProp(config, "implementationKey"),
|
|
@@ -714,9 +718,9 @@ function HandlerConfigEditor({
|
|
|
714
718
|
if (toolType === "database_query") {
|
|
715
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: [
|
|
716
720
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-2 text-sm font-semibold text-slate-700 dark:text-slate-200", children: "Database query handler" }),
|
|
717
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
721
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkR4EKPXX3_js.FormGrid, { children: [
|
|
718
722
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
719
|
-
|
|
723
|
+
chunkR4EKPXX3_js.FormInput,
|
|
720
724
|
{
|
|
721
725
|
label: "Datasource ID",
|
|
722
726
|
value: stringProp(config, "datasourceId"),
|
|
@@ -725,7 +729,7 @@ function HandlerConfigEditor({
|
|
|
725
729
|
}
|
|
726
730
|
),
|
|
727
731
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
728
|
-
|
|
732
|
+
chunkR4EKPXX3_js.FormInput,
|
|
729
733
|
{
|
|
730
734
|
label: "Max rows",
|
|
731
735
|
type: "number",
|
|
@@ -735,7 +739,7 @@ function HandlerConfigEditor({
|
|
|
735
739
|
)
|
|
736
740
|
] }),
|
|
737
741
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
738
|
-
|
|
742
|
+
chunkR4EKPXX3_js.FormTextarea,
|
|
739
743
|
{
|
|
740
744
|
label: "Query template",
|
|
741
745
|
rows: 4,
|
|
@@ -751,7 +755,7 @@ function HandlerConfigEditor({
|
|
|
751
755
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-2 text-sm font-semibold text-slate-700 dark:text-slate-200", children: "Code execution handler" }),
|
|
752
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." }),
|
|
753
757
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
754
|
-
|
|
758
|
+
chunkR4EKPXX3_js.FormSelect,
|
|
755
759
|
{
|
|
756
760
|
label: "Language",
|
|
757
761
|
value: stringProp(config, "language", "javascript"),
|
|
@@ -763,7 +767,7 @@ function HandlerConfigEditor({
|
|
|
763
767
|
}
|
|
764
768
|
),
|
|
765
769
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
766
|
-
|
|
770
|
+
chunkR4EKPXX3_js.FormTextarea,
|
|
767
771
|
{
|
|
768
772
|
label: "Code",
|
|
769
773
|
rows: 6,
|
|
@@ -776,9 +780,9 @@ function HandlerConfigEditor({
|
|
|
776
780
|
}
|
|
777
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: [
|
|
778
782
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-2 text-sm font-semibold text-slate-700 dark:text-slate-200", children: "API call handler" }),
|
|
779
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
783
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkR4EKPXX3_js.FormGrid, { children: [
|
|
780
784
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
781
|
-
|
|
785
|
+
chunkR4EKPXX3_js.FormInput,
|
|
782
786
|
{
|
|
783
787
|
label: "URL",
|
|
784
788
|
value: stringProp(config, "url"),
|
|
@@ -786,7 +790,7 @@ function HandlerConfigEditor({
|
|
|
786
790
|
}
|
|
787
791
|
),
|
|
788
792
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
789
|
-
|
|
793
|
+
chunkR4EKPXX3_js.FormSelect,
|
|
790
794
|
{
|
|
791
795
|
label: "Auth",
|
|
792
796
|
value: stringProp(config, "authType", "bearer"),
|
|
@@ -800,7 +804,7 @@ function HandlerConfigEditor({
|
|
|
800
804
|
}
|
|
801
805
|
),
|
|
802
806
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
803
|
-
|
|
807
|
+
chunkR4EKPXX3_js.FormInput,
|
|
804
808
|
{
|
|
805
809
|
label: "Credential secret id",
|
|
806
810
|
value: stringProp(config, "credentialRef"),
|
|
@@ -933,24 +937,15 @@ function RulesPageView({ labels, rules, loading, onCreate, onUpdate, onDelete })
|
|
|
933
937
|
const filteredRules = searchTerm.trim() ? allRules.filter((rule) => (rule.name ?? "").toLowerCase().includes(searchTerm.trim().toLowerCase())) : allRules;
|
|
934
938
|
const isEmpty = allRules.length === 0;
|
|
935
939
|
const hero = /* @__PURE__ */ jsxRuntime.jsx(
|
|
936
|
-
|
|
940
|
+
chunkR4EKPXX3_js.HeroSection,
|
|
937
941
|
{
|
|
938
942
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.AdjustmentsHorizontalIcon, { className: "h-5 w-5" }),
|
|
939
943
|
label: labels.title,
|
|
940
944
|
title: labels.title,
|
|
941
945
|
subtitle: labels.subtitle,
|
|
942
946
|
gradient: "from-fuchsia-500 to-purple-700",
|
|
943
|
-
toolbar:
|
|
944
|
-
|
|
945
|
-
{
|
|
946
|
-
searchTerm,
|
|
947
|
-
onSearchChange: setSearchTerm,
|
|
948
|
-
placeholder: labels.searchPlaceholder ?? labels.title,
|
|
949
|
-
noBorder: true
|
|
950
|
-
}
|
|
951
|
-
) : void 0,
|
|
952
|
-
actions: /* @__PURE__ */ jsxRuntime.jsx(
|
|
953
|
-
chunkGCYYGSHU_js.CreateActionButton,
|
|
947
|
+
toolbar: /* @__PURE__ */ jsxRuntime.jsx(
|
|
948
|
+
chunkR4EKPXX3_js.CreateActionButton,
|
|
954
949
|
{
|
|
955
950
|
mode: "desktop",
|
|
956
951
|
label: labels.addRule,
|
|
@@ -961,7 +956,7 @@ function RulesPageView({ labels, rules, loading, onCreate, onUpdate, onDelete })
|
|
|
961
956
|
}
|
|
962
957
|
);
|
|
963
958
|
const mobileAction = /* @__PURE__ */ jsxRuntime.jsx(
|
|
964
|
-
|
|
959
|
+
chunkR4EKPXX3_js.CreateActionButton,
|
|
965
960
|
{
|
|
966
961
|
mode: "mobile",
|
|
967
962
|
label: labels.addRule,
|
|
@@ -969,41 +964,51 @@ function RulesPageView({ labels, rules, loading, onCreate, onUpdate, onDelete })
|
|
|
969
964
|
accent: "fuchsia"
|
|
970
965
|
}
|
|
971
966
|
);
|
|
972
|
-
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
967
|
+
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
968
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
969
|
+
chunkR4EKPXX3_js.SearchBar,
|
|
970
|
+
{
|
|
971
|
+
searchTerm,
|
|
972
|
+
onSearchChange: setSearchTerm,
|
|
973
|
+
placeholder: labels.searchPlaceholder ?? labels.title
|
|
974
|
+
}
|
|
975
|
+
),
|
|
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
|
+
chunkR4EKPXX3_js.EntityCard,
|
|
978
|
+
{
|
|
979
|
+
accentGradient: "from-fuchsia-500 to-purple-700",
|
|
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" }) }),
|
|
981
|
+
title: rule.name,
|
|
982
|
+
subtitle: `${labels.order}: ${rule.order ?? 0}`,
|
|
983
|
+
status: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: rule.enabled ? "emerald" : "zinc", children: rule.enabled ? labels.enabled : labels.disabled }),
|
|
984
|
+
footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
|
|
985
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", size: "sm", outline: true, onClick: () => setEditing(rule), children: labels.edit }),
|
|
986
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
987
|
+
chunkBHOT22QL_js.Button,
|
|
988
|
+
{
|
|
989
|
+
type: "button",
|
|
990
|
+
size: "sm",
|
|
991
|
+
color: "rose",
|
|
992
|
+
onClick: () => {
|
|
993
|
+
if (window.confirm(labels.deleteConfirm)) onDelete(rule);
|
|
994
|
+
},
|
|
995
|
+
children: labels.delete
|
|
996
|
+
}
|
|
997
|
+
)
|
|
998
|
+
] }),
|
|
999
|
+
children: rule.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs text-slate-500 dark:text-slate-400", children: rule.description })
|
|
1000
|
+
},
|
|
1001
|
+
rule.ruleId
|
|
1002
|
+
)) })
|
|
1003
|
+
] });
|
|
999
1004
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1000
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1005
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.ManagementPageLayout, { hero, content, mobileAction }),
|
|
1001
1006
|
createOpen && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1002
1007
|
RuleEditor,
|
|
1003
1008
|
{
|
|
1004
1009
|
title: labels.createTitle,
|
|
1005
1010
|
saveLabel: labels.save,
|
|
1006
|
-
initial:
|
|
1011
|
+
initial: chunkFUHNEP3Y_js.defaultRuleForm(),
|
|
1007
1012
|
onClose: () => setCreateOpen(false),
|
|
1008
1013
|
onSubmit: (value) => {
|
|
1009
1014
|
onCreate(value);
|
|
@@ -1035,7 +1040,7 @@ function RuleEditor({
|
|
|
1035
1040
|
}) {
|
|
1036
1041
|
const [value, setValue] = react.useState(initial);
|
|
1037
1042
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1038
|
-
|
|
1043
|
+
chunkR4EKPXX3_js.GlassModal,
|
|
1039
1044
|
{
|
|
1040
1045
|
open: true,
|
|
1041
1046
|
onClose,
|
|
@@ -1047,12 +1052,12 @@ function RuleEditor({
|
|
|
1047
1052
|
event.preventDefault();
|
|
1048
1053
|
onSubmit(value);
|
|
1049
1054
|
},
|
|
1050
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1055
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkFUHNEP3Y_js.RuleForm, { value, onChange: setValue })
|
|
1051
1056
|
}
|
|
1052
1057
|
);
|
|
1053
1058
|
}
|
|
1054
1059
|
function ruleToFormValue(rule) {
|
|
1055
|
-
const base =
|
|
1060
|
+
const base = chunkFUHNEP3Y_js.defaultRuleForm();
|
|
1056
1061
|
const rawCondition = rule.condition ?? rule.conditions;
|
|
1057
1062
|
const rawAction = pickAction(rule);
|
|
1058
1063
|
return {
|
|
@@ -1183,7 +1188,7 @@ var SAMPLE_DATASOURCES = [
|
|
|
1183
1188
|
];
|
|
1184
1189
|
function getDialectLabel(dialect) {
|
|
1185
1190
|
if (!dialect) return "Unknown";
|
|
1186
|
-
for (const category of
|
|
1191
|
+
for (const category of chunkDMPBNWJB_js.DIALECT_CATEGORIES) {
|
|
1187
1192
|
const found = category.dialects.find((d) => d.value === dialect);
|
|
1188
1193
|
if (found) return found.label;
|
|
1189
1194
|
}
|
|
@@ -1191,12 +1196,12 @@ function getDialectLabel(dialect) {
|
|
|
1191
1196
|
}
|
|
1192
1197
|
function getDialectGradient(dialect) {
|
|
1193
1198
|
if (!dialect) return "from-gray-400 to-gray-500";
|
|
1194
|
-
const category =
|
|
1199
|
+
const category = chunkDMPBNWJB_js.findCategory(dialect);
|
|
1195
1200
|
return category?.gradient ?? "from-gray-400 to-gray-500";
|
|
1196
1201
|
}
|
|
1197
1202
|
function getDialectIcon(dialect) {
|
|
1198
1203
|
if (!dialect) return outline.CircleStackIcon;
|
|
1199
|
-
const category =
|
|
1204
|
+
const category = chunkDMPBNWJB_js.findCategory(dialect);
|
|
1200
1205
|
return category?.icon ?? outline.CircleStackIcon;
|
|
1201
1206
|
}
|
|
1202
1207
|
var DIALECT_LOGO = {
|
|
@@ -1266,24 +1271,15 @@ function DatasourcesPageView({
|
|
|
1266
1271
|
}
|
|
1267
1272
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
1268
1273
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1269
|
-
|
|
1274
|
+
chunkR4EKPXX3_js.HeroSection,
|
|
1270
1275
|
{
|
|
1271
1276
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.CircleStackIcon, { className: "h-5 w-5" }),
|
|
1272
1277
|
label: labels.title,
|
|
1273
1278
|
title: labels.title,
|
|
1274
1279
|
subtitle: labels.subtitle,
|
|
1275
1280
|
gradient: "from-amber-500 to-orange-600",
|
|
1276
|
-
toolbar:
|
|
1277
|
-
|
|
1278
|
-
{
|
|
1279
|
-
searchTerm,
|
|
1280
|
-
onSearchChange: setSearchTerm,
|
|
1281
|
-
placeholder: labels.searchPlaceholder ?? labels.title,
|
|
1282
|
-
noBorder: true
|
|
1283
|
-
}
|
|
1284
|
-
) : void 0,
|
|
1285
|
-
actions: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1286
|
-
chunkGCYYGSHU_js.CreateActionButton,
|
|
1281
|
+
toolbar: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1282
|
+
chunkR4EKPXX3_js.CreateActionButton,
|
|
1287
1283
|
{
|
|
1288
1284
|
mode: "desktop",
|
|
1289
1285
|
label: labels.addDatasource,
|
|
@@ -1294,7 +1290,7 @@ function DatasourcesPageView({
|
|
|
1294
1290
|
}
|
|
1295
1291
|
),
|
|
1296
1292
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1297
|
-
|
|
1293
|
+
chunkR4EKPXX3_js.CreateActionButton,
|
|
1298
1294
|
{
|
|
1299
1295
|
mode: "mobile",
|
|
1300
1296
|
label: labels.addDatasource,
|
|
@@ -1302,8 +1298,16 @@ function DatasourcesPageView({
|
|
|
1302
1298
|
accent: "amber"
|
|
1303
1299
|
}
|
|
1304
1300
|
),
|
|
1301
|
+
!isEmpty && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1302
|
+
chunkR4EKPXX3_js.SearchBar,
|
|
1303
|
+
{
|
|
1304
|
+
searchTerm,
|
|
1305
|
+
onSearchChange: setSearchTerm,
|
|
1306
|
+
placeholder: labels.searchPlaceholder ?? labels.title
|
|
1307
|
+
}
|
|
1308
|
+
),
|
|
1305
1309
|
isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1306
|
-
|
|
1310
|
+
chunkR4EKPXX3_js.PageEmptyState,
|
|
1307
1311
|
{
|
|
1308
1312
|
title: labels.emptyTitle,
|
|
1309
1313
|
message: labels.emptyDescription,
|
|
@@ -1317,15 +1321,15 @@ function DatasourcesPageView({
|
|
|
1317
1321
|
const logoSrc = getDialectLogoSrc(ds.dialect);
|
|
1318
1322
|
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" }) });
|
|
1319
1323
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1320
|
-
|
|
1324
|
+
chunkR4EKPXX3_js.EntityCard,
|
|
1321
1325
|
{
|
|
1322
1326
|
accentGradient: gradient,
|
|
1323
1327
|
icon: iconElement,
|
|
1324
1328
|
title: ds.name ?? ds.id,
|
|
1325
1329
|
subtitle: dialectLabel,
|
|
1326
|
-
status: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1330
|
+
status: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: ds.enabled ? "emerald" : "zinc", children: ds.enabled ? labels.enabled : labels.disabled }),
|
|
1327
1331
|
footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 text-xs text-slate-500 dark:text-slate-400", children: [
|
|
1328
|
-
ds.readOnly && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1332
|
+
ds.readOnly && /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "blue", size: "xs", children: "Read-only" }),
|
|
1329
1333
|
ds.timeoutMs && /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
1330
1334
|
ds.timeoutMs / 1e3,
|
|
1331
1335
|
"s timeout"
|
|
@@ -1347,7 +1351,7 @@ function DatasourcesPageView({
|
|
|
1347
1351
|
);
|
|
1348
1352
|
}) }),
|
|
1349
1353
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1350
|
-
|
|
1354
|
+
chunkDMPBNWJB_js.DatasourceModal,
|
|
1351
1355
|
{
|
|
1352
1356
|
open: modalOpen,
|
|
1353
1357
|
onClose: () => setModalOpen(false),
|
|
@@ -1362,7 +1366,7 @@ function DashboardPageView({ labels, appLogo }) {
|
|
|
1362
1366
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center mb-6", children: appLogo }),
|
|
1363
1367
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-3 text-base text-slate-600 dark:text-slate-300", children: labels.subtitle })
|
|
1364
1368
|
] });
|
|
1365
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1369
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.ManagementPageLayout, { hero, content: null });
|
|
1366
1370
|
}
|
|
1367
1371
|
function AgentsIndexPageView({ labels }) {
|
|
1368
1372
|
const Link = chunkS7KHTUHA_js.useLink();
|
|
@@ -1376,43 +1380,44 @@ function AgentsIndexPageView({ labels }) {
|
|
|
1376
1380
|
const filteredTiles = searchTerm.trim() ? allTiles.filter((tile) => tile.title.toLowerCase().includes(searchTerm.trim().toLowerCase())) : allTiles;
|
|
1377
1381
|
const isEmpty = allTiles.length === 0;
|
|
1378
1382
|
const hero = /* @__PURE__ */ jsxRuntime.jsx(
|
|
1379
|
-
|
|
1383
|
+
chunkR4EKPXX3_js.HeroSection,
|
|
1380
1384
|
{
|
|
1381
1385
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.CpuChipIcon, { className: "h-5 w-5" }),
|
|
1382
1386
|
label: labels.title,
|
|
1383
1387
|
title: labels.title,
|
|
1384
1388
|
subtitle: labels.subtitle,
|
|
1385
|
-
gradient: "from-violet-500 to-indigo-700"
|
|
1386
|
-
toolbar: !isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1387
|
-
chunkGCYYGSHU_js.SearchBar,
|
|
1388
|
-
{
|
|
1389
|
-
searchTerm,
|
|
1390
|
-
onSearchChange: setSearchTerm,
|
|
1391
|
-
placeholder: labels.searchPlaceholder ?? labels.title,
|
|
1392
|
-
noBorder: true
|
|
1393
|
-
}
|
|
1394
|
-
) : void 0
|
|
1389
|
+
gradient: "from-violet-500 to-indigo-700"
|
|
1395
1390
|
}
|
|
1396
1391
|
);
|
|
1397
|
-
const content = /* @__PURE__ */ jsxRuntime.
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
chunkGCYYGSHU_js.EntityCard,
|
|
1392
|
+
const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1393
|
+
!isEmpty && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1394
|
+
chunkR4EKPXX3_js.SearchBar,
|
|
1401
1395
|
{
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: tile.subtitle })
|
|
1396
|
+
searchTerm,
|
|
1397
|
+
onSearchChange: setSearchTerm,
|
|
1398
|
+
placeholder: labels.searchPlaceholder ?? labels.title
|
|
1406
1399
|
}
|
|
1407
|
-
)
|
|
1408
|
-
|
|
1409
|
-
|
|
1400
|
+
),
|
|
1401
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4", children: filteredTiles.map((tile) => {
|
|
1402
|
+
const Icon = tile.icon;
|
|
1403
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Link, { href: tile.href, className: "block focus:outline-none", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1404
|
+
chunkR4EKPXX3_js.EntityCard,
|
|
1405
|
+
{
|
|
1406
|
+
accentGradient: tile.gradient,
|
|
1407
|
+
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" }) }),
|
|
1408
|
+
title: tile.title,
|
|
1409
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-slate-500 dark:text-slate-400", children: tile.subtitle })
|
|
1410
|
+
}
|
|
1411
|
+
) }, tile.id);
|
|
1412
|
+
}) })
|
|
1413
|
+
] });
|
|
1414
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.ManagementPageLayout, { hero, content });
|
|
1410
1415
|
}
|
|
1411
1416
|
function WorkflowsPageView({ labels, workflows, onCreate, onUpdateMeta, onPublish }) {
|
|
1412
1417
|
const selectedWorkflow = workflows[0] ?? null;
|
|
1413
1418
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
|
|
1414
1419
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1415
|
-
|
|
1420
|
+
chunkR4EKPXX3_js.SectionHeader,
|
|
1416
1421
|
{
|
|
1417
1422
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.RectangleStackIcon, { className: "h-5 w-5 text-white" }),
|
|
1418
1423
|
title: labels.title,
|
|
@@ -1421,9 +1426,9 @@ function WorkflowsPageView({ labels, workflows, onCreate, onUpdateMeta, onPublis
|
|
|
1421
1426
|
}
|
|
1422
1427
|
),
|
|
1423
1428
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { className: "liquid-surface rounded-2xl p-4 space-y-3", children: [
|
|
1424
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1429
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.Text, { className: "font-semibold text-slate-900 dark:text-slate-100", children: labels.add }),
|
|
1425
1430
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1426
|
-
|
|
1431
|
+
chunkR4EKPXX3_js.Form,
|
|
1427
1432
|
{
|
|
1428
1433
|
onSubmit: (event) => {
|
|
1429
1434
|
event.preventDefault();
|
|
@@ -1434,32 +1439,32 @@ function WorkflowsPageView({ labels, workflows, onCreate, onUpdateMeta, onPublis
|
|
|
1434
1439
|
onCreate({ name, description });
|
|
1435
1440
|
event.currentTarget.reset();
|
|
1436
1441
|
},
|
|
1437
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1438
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1439
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1440
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1442
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(chunkR4EKPXX3_js.FormGrid, { children: [
|
|
1443
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.FormInput, { name: "name", label: labels.workflowName, placeholder: labels.workflowNamePlaceholder, required: true }),
|
|
1444
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.FormTextarea, { name: "description", label: labels.description, placeholder: labels.workflowDescriptionPlaceholder, rows: 3 }),
|
|
1445
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.FormActionsRow, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "submit", children: labels.create }) })
|
|
1441
1446
|
] })
|
|
1442
1447
|
}
|
|
1443
1448
|
)
|
|
1444
1449
|
] }),
|
|
1445
1450
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { className: "liquid-surface rounded-2xl p-4 space-y-3", children: [
|
|
1446
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1447
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1448
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1449
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1450
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1451
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1452
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1453
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1451
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.Text, { className: "font-semibold text-slate-900 dark:text-slate-100", children: labels.registry }),
|
|
1452
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkR4EKPXX3_js.Table, { children: [
|
|
1453
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.TableHead, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkR4EKPXX3_js.TableRow, { children: [
|
|
1454
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.TableHeader, { children: labels.name }),
|
|
1455
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.TableHeader, { children: labels.description }),
|
|
1456
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.TableHeader, { children: labels.version }),
|
|
1457
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.TableHeader, { children: labels.status }),
|
|
1458
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.TableHeader, { children: labels.actions })
|
|
1454
1459
|
] }) }),
|
|
1455
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1456
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1457
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1458
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1459
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1460
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1460
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.TableBody, { children: workflows.map((workflow) => /* @__PURE__ */ jsxRuntime.jsxs(chunkR4EKPXX3_js.TableRow, { children: [
|
|
1461
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.TableCell, { children: workflow.name }),
|
|
1462
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.TableCell, { children: workflow.description }),
|
|
1463
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.TableCell, { children: String(workflow.version) }),
|
|
1464
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { children: workflow.isDraft ? labels.statusDraft : labels.statusPublished }) }),
|
|
1465
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
1461
1466
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1462
|
-
|
|
1467
|
+
chunkR4EKPXX3_js.Form,
|
|
1463
1468
|
{
|
|
1464
1469
|
onSubmit: (event) => {
|
|
1465
1470
|
event.preventDefault();
|
|
@@ -1469,17 +1474,17 @@ function WorkflowsPageView({ labels, workflows, onCreate, onUpdateMeta, onPublis
|
|
|
1469
1474
|
description: workflow.description ?? ""
|
|
1470
1475
|
});
|
|
1471
1476
|
},
|
|
1472
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1477
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.InlineForm, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "submit", outline: true, children: labels.saveMeta }) })
|
|
1473
1478
|
}
|
|
1474
1479
|
),
|
|
1475
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1480
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", color: "sky", onClick: () => onPublish(workflow.id), children: labels.publish })
|
|
1476
1481
|
] }) })
|
|
1477
1482
|
] }, workflow.id)) })
|
|
1478
1483
|
] })
|
|
1479
1484
|
] }),
|
|
1480
1485
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { className: "liquid-surface rounded-2xl p-4 space-y-3", children: [
|
|
1481
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1482
|
-
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(
|
|
1486
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.Text, { className: "font-semibold text-slate-900 dark:text-slate-100", children: labels.workspace }),
|
|
1487
|
+
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(chunkUDYEUTJC_js.WorkflowWorkspace, { graph: chunk3T2WGL47_js.adaptWorkflowGraphToUi(selectedWorkflow.graph) }) }) : /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.Text, { children: labels.empty })
|
|
1483
1488
|
] })
|
|
1484
1489
|
] });
|
|
1485
1490
|
}
|
|
@@ -1528,67 +1533,66 @@ function WorkflowRunsPageView({ labels, runs, loading, onCancel, onReplay, onVie
|
|
|
1528
1533
|
});
|
|
1529
1534
|
const isEmpty = allRuns.length === 0;
|
|
1530
1535
|
const hero = /* @__PURE__ */ jsxRuntime.jsx(
|
|
1531
|
-
|
|
1536
|
+
chunkR4EKPXX3_js.HeroSection,
|
|
1532
1537
|
{
|
|
1533
1538
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.ClockIcon, { className: "h-5 w-5" }),
|
|
1534
1539
|
label: labels.title,
|
|
1535
1540
|
title: labels.title,
|
|
1536
1541
|
subtitle: labels.subtitle,
|
|
1537
1542
|
gradient: "from-indigo-500 to-sky-700",
|
|
1538
|
-
toolbar: /* @__PURE__ */ jsxRuntime.
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full sm:w-48", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1549
|
-
chunkGCYYGSHU_js.FormSelect,
|
|
1550
|
-
{
|
|
1551
|
-
name: "statusFilter",
|
|
1552
|
-
label: labels.filterStatus,
|
|
1553
|
-
options: statusOptions,
|
|
1554
|
-
value: statusFilter,
|
|
1555
|
-
onValueChange: setStatusFilter
|
|
1556
|
-
}
|
|
1557
|
-
) })
|
|
1558
|
-
] })
|
|
1543
|
+
toolbar: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full sm:w-48", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1544
|
+
chunkR4EKPXX3_js.FormSelect,
|
|
1545
|
+
{
|
|
1546
|
+
name: "statusFilter",
|
|
1547
|
+
label: labels.filterStatus,
|
|
1548
|
+
options: statusOptions,
|
|
1549
|
+
value: statusFilter,
|
|
1550
|
+
onValueChange: setStatusFilter
|
|
1551
|
+
}
|
|
1552
|
+
) })
|
|
1559
1553
|
}
|
|
1560
1554
|
);
|
|
1561
|
-
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
/* @__PURE__ */ jsxRuntime.jsx("
|
|
1580
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1555
|
+
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.PageLoadingState, {}) : filteredRuns.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1556
|
+
!isEmpty && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1557
|
+
chunkR4EKPXX3_js.SearchBar,
|
|
1558
|
+
{
|
|
1559
|
+
searchTerm,
|
|
1560
|
+
onSearchChange: setSearchTerm,
|
|
1561
|
+
placeholder: labels.searchPlaceholder ?? labels.title
|
|
1562
|
+
}
|
|
1563
|
+
),
|
|
1564
|
+
/* @__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(
|
|
1565
|
+
chunkR4EKPXX3_js.EntityCard,
|
|
1566
|
+
{
|
|
1567
|
+
accentGradient: "from-indigo-500 to-sky-700",
|
|
1568
|
+
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" }) }),
|
|
1569
|
+
title: run.id.slice(0, 8),
|
|
1570
|
+
subtitle: `${labels.startedAt}: ${new Date(run.createdAt).toLocaleString()}`,
|
|
1571
|
+
status: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: BADGE_COLOR[run.status] ?? "zinc", children: statusLabelFor(run.status) }),
|
|
1572
|
+
footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
|
|
1573
|
+
onView && /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", size: "sm", outline: true, onClick: () => onView(run), children: labels.view }),
|
|
1574
|
+
onViewTimeline && labels.timeline && /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", size: "sm", outline: true, onClick: () => onViewTimeline(run), children: labels.timeline }),
|
|
1575
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", size: "sm", outline: true, onClick: () => onReplay(run), children: labels.replay }),
|
|
1576
|
+
run.status === "running" && /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", size: "sm", color: "rose", onClick: () => onCancel(run), children: labels.cancel })
|
|
1581
1577
|
] }),
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1578
|
+
children: [
|
|
1579
|
+
/* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "mt-1 grid grid-cols-2 gap-1 text-xs text-slate-500 dark:text-slate-400", children: [
|
|
1580
|
+
/* @__PURE__ */ jsxRuntime.jsx("dt", { children: labels.duration }),
|
|
1581
|
+
/* @__PURE__ */ jsxRuntime.jsx("dd", { className: "text-right", children: chunk3T2WGL47_js.formatDurationMs(run.totalDurationMs) }),
|
|
1582
|
+
/* @__PURE__ */ jsxRuntime.jsx("dt", { children: labels.triggeredBy }),
|
|
1583
|
+
/* @__PURE__ */ jsxRuntime.jsx("dd", { className: "text-right truncate", children: run.triggeredBy || "\u2014" })
|
|
1584
|
+
] }),
|
|
1585
|
+
run.error && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 line-clamp-2 text-xs text-rose-600 dark:text-rose-400", children: run.error })
|
|
1586
|
+
]
|
|
1587
|
+
},
|
|
1588
|
+
run.id
|
|
1589
|
+
)) })
|
|
1590
|
+
] });
|
|
1591
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.ManagementPageLayout, { hero, content });
|
|
1588
1592
|
}
|
|
1589
1593
|
function RunTimelinePageView({ labels, entries, loading, runId }) {
|
|
1590
1594
|
const hero = /* @__PURE__ */ jsxRuntime.jsx(
|
|
1591
|
-
|
|
1595
|
+
chunkR4EKPXX3_js.HeroSection,
|
|
1592
1596
|
{
|
|
1593
1597
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.ClockIcon, { className: "h-5 w-5" }),
|
|
1594
1598
|
label: labels.title,
|
|
@@ -1598,23 +1602,23 @@ function RunTimelinePageView({ labels, entries, loading, runId }) {
|
|
|
1598
1602
|
}
|
|
1599
1603
|
);
|
|
1600
1604
|
if (loading) {
|
|
1601
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1605
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.ManagementPageLayout, { hero, content: /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.PageLoadingState, {}) });
|
|
1602
1606
|
}
|
|
1603
1607
|
if (entries.length === 0) {
|
|
1604
1608
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1605
|
-
|
|
1609
|
+
chunkR4EKPXX3_js.ManagementPageLayout,
|
|
1606
1610
|
{
|
|
1607
1611
|
hero,
|
|
1608
|
-
content: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1612
|
+
content: /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.PageEmptyState, { title: labels.empty ?? "", message: "", iconName: "folder-open" })
|
|
1609
1613
|
}
|
|
1610
1614
|
);
|
|
1611
1615
|
}
|
|
1612
1616
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1613
|
-
|
|
1617
|
+
chunkR4EKPXX3_js.ManagementPageLayout,
|
|
1614
1618
|
{
|
|
1615
1619
|
hero,
|
|
1616
1620
|
content: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1617
|
-
|
|
1621
|
+
chunkFUHNEP3Y_js.ExecutionTimelinePanel,
|
|
1618
1622
|
{
|
|
1619
1623
|
entries,
|
|
1620
1624
|
labels
|
|
@@ -1700,24 +1704,15 @@ function ConnectionsPageView({
|
|
|
1700
1704
|
const filteredConnections = searchTerm.trim() ? allConnections.filter((conn) => conn.name.toLowerCase().includes(searchTerm.trim().toLowerCase())) : allConnections;
|
|
1701
1705
|
const isEmpty = allConnections.length === 0;
|
|
1702
1706
|
const hero = /* @__PURE__ */ jsxRuntime.jsx(
|
|
1703
|
-
|
|
1707
|
+
chunkR4EKPXX3_js.HeroSection,
|
|
1704
1708
|
{
|
|
1705
1709
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.LinkIcon, { className: "h-5 w-5" }),
|
|
1706
1710
|
label: labels.title,
|
|
1707
1711
|
title: labels.title,
|
|
1708
1712
|
subtitle: labels.subtitle,
|
|
1709
1713
|
gradient: "from-sky-500 to-indigo-600",
|
|
1710
|
-
toolbar:
|
|
1711
|
-
|
|
1712
|
-
{
|
|
1713
|
-
searchTerm,
|
|
1714
|
-
onSearchChange: setSearchTerm,
|
|
1715
|
-
placeholder: labels.searchPlaceholder ?? labels.title,
|
|
1716
|
-
noBorder: true
|
|
1717
|
-
}
|
|
1718
|
-
) : void 0,
|
|
1719
|
-
actions: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1720
|
-
chunkGCYYGSHU_js.CreateActionButton,
|
|
1714
|
+
toolbar: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1715
|
+
chunkR4EKPXX3_js.CreateActionButton,
|
|
1721
1716
|
{
|
|
1722
1717
|
mode: "desktop",
|
|
1723
1718
|
label: labels.add,
|
|
@@ -1728,7 +1723,7 @@ function ConnectionsPageView({
|
|
|
1728
1723
|
}
|
|
1729
1724
|
);
|
|
1730
1725
|
const mobileAction = /* @__PURE__ */ jsxRuntime.jsx(
|
|
1731
|
-
|
|
1726
|
+
chunkR4EKPXX3_js.CreateActionButton,
|
|
1732
1727
|
{
|
|
1733
1728
|
mode: "mobile",
|
|
1734
1729
|
label: labels.add,
|
|
@@ -1736,42 +1731,52 @@ function ConnectionsPageView({
|
|
|
1736
1731
|
accent: "sky"
|
|
1737
1732
|
}
|
|
1738
1733
|
);
|
|
1739
|
-
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1734
|
+
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1735
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1736
|
+
chunkR4EKPXX3_js.SearchBar,
|
|
1737
|
+
{
|
|
1738
|
+
searchTerm,
|
|
1739
|
+
onSearchChange: setSearchTerm,
|
|
1740
|
+
placeholder: labels.searchPlaceholder ?? labels.title
|
|
1741
|
+
}
|
|
1742
|
+
),
|
|
1743
|
+
/* @__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(
|
|
1744
|
+
chunkR4EKPXX3_js.EntityCard,
|
|
1745
|
+
{
|
|
1746
|
+
accentGradient: "from-sky-500 to-indigo-600",
|
|
1747
|
+
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" }) }),
|
|
1748
|
+
title: conn.name,
|
|
1749
|
+
subtitle: providerLabel(conn.providerSlug),
|
|
1750
|
+
status: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-1", children: [
|
|
1751
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: conn.enabled ? "emerald" : "zinc", children: conn.enabled ? labels.enable : labels.disable }),
|
|
1752
|
+
conn.credentialRef ? /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "indigo", children: "Secret set" }) : /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: "amber", children: "No secret" })
|
|
1753
|
+
] }),
|
|
1754
|
+
footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
|
|
1755
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Button, { type: "button", size: "sm", outline: true, onClick: () => setEditing(conn), children: labels.edit }),
|
|
1756
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1757
|
+
chunkBHOT22QL_js.Button,
|
|
1758
|
+
{
|
|
1759
|
+
type: "button",
|
|
1760
|
+
size: "sm",
|
|
1761
|
+
color: "rose",
|
|
1762
|
+
onClick: async () => {
|
|
1763
|
+
if (window.confirm(labels.deleteConfirm)) await onDelete(conn);
|
|
1764
|
+
},
|
|
1765
|
+
children: labels.delete
|
|
1766
|
+
}
|
|
1767
|
+
)
|
|
1768
|
+
] }),
|
|
1769
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "mt-1 space-y-0.5 text-xs text-slate-500 dark:text-slate-400", children: [
|
|
1770
|
+
conn.region && /* @__PURE__ */ jsxRuntime.jsx(Row, { label: "Region", value: conn.region }),
|
|
1771
|
+
conn.endpoint && /* @__PURE__ */ jsxRuntime.jsx(Row, { label: "Endpoint", value: conn.endpoint }),
|
|
1772
|
+
conn.modelFilter && conn.modelFilter.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(Row, { label: "Models", value: conn.modelFilter.join(", ") })
|
|
1773
|
+
] })
|
|
1774
|
+
},
|
|
1775
|
+
conn.id
|
|
1776
|
+
)) })
|
|
1777
|
+
] });
|
|
1773
1778
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1774
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1779
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.ManagementPageLayout, { hero, content, mobileAction }),
|
|
1775
1780
|
createOpen && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1776
1781
|
ConnectionEditor,
|
|
1777
1782
|
{
|
|
@@ -1885,7 +1890,7 @@ function ConnectionEditor({
|
|
|
1885
1890
|
return preset.exampleModels?.join(", ") ?? "";
|
|
1886
1891
|
}, [preset]);
|
|
1887
1892
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1888
|
-
|
|
1893
|
+
chunkR4EKPXX3_js.GlassModal,
|
|
1889
1894
|
{
|
|
1890
1895
|
open: true,
|
|
1891
1896
|
onClose,
|
|
@@ -1898,9 +1903,9 @@ function ConnectionEditor({
|
|
|
1898
1903
|
void handleSubmit();
|
|
1899
1904
|
},
|
|
1900
1905
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
1901
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1906
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkR4EKPXX3_js.FormGrid, { children: [
|
|
1902
1907
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1903
|
-
|
|
1908
|
+
chunkR4EKPXX3_js.FormSelect,
|
|
1904
1909
|
{
|
|
1905
1910
|
label: "Provider",
|
|
1906
1911
|
value: value.providerSlug,
|
|
@@ -1911,7 +1916,7 @@ function ConnectionEditor({
|
|
|
1911
1916
|
}
|
|
1912
1917
|
),
|
|
1913
1918
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1914
|
-
|
|
1919
|
+
chunkR4EKPXX3_js.FormInput,
|
|
1915
1920
|
{
|
|
1916
1921
|
label: "Display name",
|
|
1917
1922
|
required: true,
|
|
@@ -1921,7 +1926,7 @@ function ConnectionEditor({
|
|
|
1921
1926
|
}
|
|
1922
1927
|
),
|
|
1923
1928
|
preset.needsRegion && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1924
|
-
|
|
1929
|
+
chunkR4EKPXX3_js.FormInput,
|
|
1925
1930
|
{
|
|
1926
1931
|
label: "Region",
|
|
1927
1932
|
value: value.region,
|
|
@@ -1930,7 +1935,7 @@ function ConnectionEditor({
|
|
|
1930
1935
|
}
|
|
1931
1936
|
),
|
|
1932
1937
|
preset.needsEndpoint && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1933
|
-
|
|
1938
|
+
chunkR4EKPXX3_js.FormInput,
|
|
1934
1939
|
{
|
|
1935
1940
|
label: "Endpoint URL",
|
|
1936
1941
|
value: value.endpoint,
|
|
@@ -1940,7 +1945,7 @@ function ConnectionEditor({
|
|
|
1940
1945
|
)
|
|
1941
1946
|
] }),
|
|
1942
1947
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1943
|
-
|
|
1948
|
+
chunkR4EKPXX3_js.FormInput,
|
|
1944
1949
|
{
|
|
1945
1950
|
label: value.credentialRef ? "Rotate API key (leave blank to keep current)" : "API key",
|
|
1946
1951
|
type: "password",
|
|
@@ -1951,7 +1956,7 @@ function ConnectionEditor({
|
|
|
1951
1956
|
}
|
|
1952
1957
|
),
|
|
1953
1958
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1954
|
-
|
|
1959
|
+
chunkR4EKPXX3_js.FormInput,
|
|
1955
1960
|
{
|
|
1956
1961
|
label: "Model filter (comma-separated, optional)",
|
|
1957
1962
|
value: value.modelFilter,
|
|
@@ -1963,7 +1968,7 @@ function ConnectionEditor({
|
|
|
1963
1968
|
/* @__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: [
|
|
1964
1969
|
/* @__PURE__ */ jsxRuntime.jsx("summary", { className: "cursor-pointer font-medium text-slate-700 dark:text-slate-200", children: "Advanced config (JSON)" }),
|
|
1965
1970
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1966
|
-
|
|
1971
|
+
chunkR4EKPXX3_js.FormTextarea,
|
|
1967
1972
|
{
|
|
1968
1973
|
rows: 4,
|
|
1969
1974
|
value: value.configJson,
|
|
@@ -2033,24 +2038,15 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
|
|
|
2033
2038
|
{ value: "password", label: labels.typePassword }
|
|
2034
2039
|
];
|
|
2035
2040
|
const hero = /* @__PURE__ */ jsxRuntime.jsx(
|
|
2036
|
-
|
|
2041
|
+
chunkR4EKPXX3_js.HeroSection,
|
|
2037
2042
|
{
|
|
2038
2043
|
icon: /* @__PURE__ */ jsxRuntime.jsx(outline.KeyIcon, { className: "h-5 w-5" }),
|
|
2039
2044
|
label: labels.title,
|
|
2040
2045
|
title: labels.title,
|
|
2041
2046
|
subtitle: labels.subtitle,
|
|
2042
2047
|
gradient: "from-rose-500 to-orange-600",
|
|
2043
|
-
toolbar:
|
|
2044
|
-
|
|
2045
|
-
{
|
|
2046
|
-
searchTerm,
|
|
2047
|
-
onSearchChange: setSearchTerm,
|
|
2048
|
-
placeholder: labels.searchPlaceholder ?? labels.title,
|
|
2049
|
-
noBorder: true
|
|
2050
|
-
}
|
|
2051
|
-
) : void 0,
|
|
2052
|
-
actions: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2053
|
-
chunkGCYYGSHU_js.CreateActionButton,
|
|
2048
|
+
toolbar: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2049
|
+
chunkR4EKPXX3_js.CreateActionButton,
|
|
2054
2050
|
{
|
|
2055
2051
|
mode: "desktop",
|
|
2056
2052
|
label: labels.addCredential,
|
|
@@ -2061,7 +2057,7 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
|
|
|
2061
2057
|
}
|
|
2062
2058
|
);
|
|
2063
2059
|
const mobileAction = /* @__PURE__ */ jsxRuntime.jsx(
|
|
2064
|
-
|
|
2060
|
+
chunkR4EKPXX3_js.CreateActionButton,
|
|
2065
2061
|
{
|
|
2066
2062
|
mode: "mobile",
|
|
2067
2063
|
label: labels.addCredential,
|
|
@@ -2069,54 +2065,64 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
|
|
|
2069
2065
|
accent: "rose"
|
|
2070
2066
|
}
|
|
2071
2067
|
);
|
|
2072
|
-
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
|
|
2079
|
-
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
|
|
2095
|
-
|
|
2096
|
-
|
|
2097
|
-
|
|
2098
|
-
|
|
2099
|
-
|
|
2100
|
-
|
|
2101
|
-
|
|
2102
|
-
|
|
2103
|
-
|
|
2104
|
-
|
|
2105
|
-
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
2111
|
-
|
|
2112
|
-
|
|
2113
|
-
|
|
2114
|
-
|
|
2115
|
-
|
|
2068
|
+
const content = loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.PageLoadingState, {}) : isEmpty ? /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.PageEmptyState, { title: labels.empty, message: labels.subtitle, iconName: "folder-open" }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2069
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2070
|
+
chunkR4EKPXX3_js.SearchBar,
|
|
2071
|
+
{
|
|
2072
|
+
searchTerm,
|
|
2073
|
+
onSearchChange: setSearchTerm,
|
|
2074
|
+
placeholder: labels.searchPlaceholder ?? labels.title
|
|
2075
|
+
}
|
|
2076
|
+
),
|
|
2077
|
+
/* @__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(
|
|
2078
|
+
chunkR4EKPXX3_js.EntityCard,
|
|
2079
|
+
{
|
|
2080
|
+
accentGradient: "from-rose-500 to-orange-700",
|
|
2081
|
+
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" }) }),
|
|
2082
|
+
title: secret.name,
|
|
2083
|
+
subtitle: secret.secretType,
|
|
2084
|
+
status: /* @__PURE__ */ jsxRuntime.jsx(chunkBHOT22QL_js.Badge, { color: secret.disabled ? "zinc" : "emerald", children: secret.disabled ? labels.disable : "Active" }),
|
|
2085
|
+
footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-2", children: [
|
|
2086
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.CopyableId, { id: secret.secretId }),
|
|
2087
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2", children: [
|
|
2088
|
+
/* @__PURE__ */ jsxRuntime.jsxs(chunkBHOT22QL_js.Button, { type: "button", size: "sm", outline: true, onClick: () => setRotateFor(secret), children: [
|
|
2089
|
+
/* @__PURE__ */ jsxRuntime.jsx(outline.ArrowPathIcon, { className: "mr-1 h-3.5 w-3.5" }),
|
|
2090
|
+
labels.rotate
|
|
2091
|
+
] }),
|
|
2092
|
+
!secret.disabled && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2093
|
+
chunkBHOT22QL_js.Button,
|
|
2094
|
+
{
|
|
2095
|
+
type: "button",
|
|
2096
|
+
size: "sm",
|
|
2097
|
+
color: "rose",
|
|
2098
|
+
onClick: () => {
|
|
2099
|
+
if (window.confirm(labels.disableConfirm)) onDisable(secret);
|
|
2100
|
+
},
|
|
2101
|
+
children: [
|
|
2102
|
+
/* @__PURE__ */ jsxRuntime.jsx(outline.TrashIcon, { className: "mr-1 h-3.5 w-3.5" }),
|
|
2103
|
+
labels.disable
|
|
2104
|
+
]
|
|
2105
|
+
}
|
|
2106
|
+
)
|
|
2107
|
+
] })
|
|
2108
|
+
] }),
|
|
2109
|
+
children: [
|
|
2110
|
+
secret.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs text-slate-500 dark:text-slate-400", children: secret.description }),
|
|
2111
|
+
/* @__PURE__ */ jsxRuntime.jsxs("dl", { className: "mt-2 grid grid-cols-2 gap-1 text-xs text-slate-500 dark:text-slate-400", children: [
|
|
2112
|
+
/* @__PURE__ */ jsxRuntime.jsx("dt", { children: labels.createdAt }),
|
|
2113
|
+
/* @__PURE__ */ jsxRuntime.jsx("dd", { className: "text-right", children: new Date(secret.createdAt).toLocaleDateString() }),
|
|
2114
|
+
/* @__PURE__ */ jsxRuntime.jsx("dt", { children: labels.expiresAt }),
|
|
2115
|
+
/* @__PURE__ */ jsxRuntime.jsx("dd", { className: "text-right", children: secret.expiresAt ? new Date(secret.expiresAt).toLocaleDateString() : labels.neverExpires })
|
|
2116
|
+
] })
|
|
2117
|
+
]
|
|
2118
|
+
},
|
|
2119
|
+
secret.secretId
|
|
2120
|
+
)) })
|
|
2121
|
+
] });
|
|
2116
2122
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2117
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2123
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.ManagementPageLayout, { hero, content, mobileAction }),
|
|
2118
2124
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2119
|
-
|
|
2125
|
+
chunkR4EKPXX3_js.GlassModal,
|
|
2120
2126
|
{
|
|
2121
2127
|
open: createOpen,
|
|
2122
2128
|
onClose: () => setCreateOpen(false),
|
|
@@ -2134,16 +2140,16 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
|
|
|
2134
2140
|
onCreate({ name, value, secretType, description });
|
|
2135
2141
|
setCreateOpen(false);
|
|
2136
2142
|
},
|
|
2137
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2138
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2139
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2140
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2141
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2143
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(chunkR4EKPXX3_js.FormGrid, { children: [
|
|
2144
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.FormInput, { name: "name", label: labels.name, placeholder: labels.namePlaceholder, required: true }),
|
|
2145
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.FormSelect, { name: "secretType", label: labels.type, options: typeOptions, defaultValue: "generic" }),
|
|
2146
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.FormInput, { name: "value", label: labels.value, placeholder: labels.valuePlaceholder, required: true, type: "password" }),
|
|
2147
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.FormTextarea, { name: "description", label: labels.description, placeholder: labels.descriptionPlaceholder, rows: 2 })
|
|
2142
2148
|
] })
|
|
2143
2149
|
}
|
|
2144
2150
|
),
|
|
2145
2151
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2146
|
-
|
|
2152
|
+
chunkR4EKPXX3_js.GlassModal,
|
|
2147
2153
|
{
|
|
2148
2154
|
open: rotateFor !== null,
|
|
2149
2155
|
onClose: () => setRotateFor(null),
|
|
@@ -2158,7 +2164,7 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
|
|
|
2158
2164
|
onRotate(rotateFor, value);
|
|
2159
2165
|
setRotateFor(null);
|
|
2160
2166
|
},
|
|
2161
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2167
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.FormGrid, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkR4EKPXX3_js.FormInput, { name: "value", label: labels.value, placeholder: labels.valuePlaceholder, required: true, type: "password" }) })
|
|
2162
2168
|
}
|
|
2163
2169
|
)
|
|
2164
2170
|
] });
|
|
@@ -2166,31 +2172,31 @@ function CredentialsPageView({ labels, credentials, loading, onCreate, onRotate,
|
|
|
2166
2172
|
|
|
2167
2173
|
Object.defineProperty(exports, "RolesPageView", {
|
|
2168
2174
|
enumerable: true,
|
|
2169
|
-
get: function () { return
|
|
2175
|
+
get: function () { return chunkUDYEUTJC_js.RolesPageView; }
|
|
2170
2176
|
});
|
|
2171
2177
|
Object.defineProperty(exports, "UsersPageView", {
|
|
2172
2178
|
enumerable: true,
|
|
2173
|
-
get: function () { return
|
|
2179
|
+
get: function () { return chunkUDYEUTJC_js.UsersPageView; }
|
|
2174
2180
|
});
|
|
2175
2181
|
Object.defineProperty(exports, "DIALECT_CATEGORIES", {
|
|
2176
2182
|
enumerable: true,
|
|
2177
|
-
get: function () { return
|
|
2183
|
+
get: function () { return chunkDMPBNWJB_js.DIALECT_CATEGORIES; }
|
|
2178
2184
|
});
|
|
2179
2185
|
Object.defineProperty(exports, "DatasourceFormModal", {
|
|
2180
2186
|
enumerable: true,
|
|
2181
|
-
get: function () { return
|
|
2187
|
+
get: function () { return chunkDMPBNWJB_js.DatasourceFormModal; }
|
|
2182
2188
|
});
|
|
2183
2189
|
Object.defineProperty(exports, "DatasourceModal", {
|
|
2184
2190
|
enumerable: true,
|
|
2185
|
-
get: function () { return
|
|
2191
|
+
get: function () { return chunkDMPBNWJB_js.DatasourceModal; }
|
|
2186
2192
|
});
|
|
2187
2193
|
Object.defineProperty(exports, "findCategory", {
|
|
2188
2194
|
enumerable: true,
|
|
2189
|
-
get: function () { return
|
|
2195
|
+
get: function () { return chunkDMPBNWJB_js.findCategory; }
|
|
2190
2196
|
});
|
|
2191
2197
|
Object.defineProperty(exports, "findDialect", {
|
|
2192
2198
|
enumerable: true,
|
|
2193
|
-
get: function () { return
|
|
2199
|
+
get: function () { return chunkDMPBNWJB_js.findDialect; }
|
|
2194
2200
|
});
|
|
2195
2201
|
exports.AgentsConfigPageView = AgentsConfigPageView;
|
|
2196
2202
|
exports.AgentsIndexPageView = AgentsIndexPageView;
|