@burdenoff/microfe-vibecontrols 2026.602.9 → 2026.602.10
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/components/actions/ActionForm.js +260 -252
- package/dist/components/actions/ActionForm.js.map +1 -1
- package/dist/components/ai/InstructionFilesManager.js +138 -135
- package/dist/components/ai/InstructionFilesManager.js.map +1 -1
- package/dist/components/aliases/AliasManager.js +225 -224
- package/dist/components/aliases/AliasManager.js.map +1 -1
- package/dist/components/common/ActionAgentTargetNotice.js +125 -0
- package/dist/components/common/ActionAgentTargetNotice.js.map +1 -0
- package/dist/components/common/CommandEditor.js +49 -0
- package/dist/components/common/CommandEditor.js.map +1 -0
- package/dist/components/common/actionAgentTarget.js +55 -0
- package/dist/components/common/actionAgentTarget.js.map +1 -0
- package/dist/components/common/commandHighlight.js +190 -0
- package/dist/components/common/commandHighlight.js.map +1 -0
- package/dist/components/vibecalendar/ScheduleTaskModal.js +151 -149
- package/dist/components/vibecalendar/ScheduleTaskModal.js.map +1 -1
- package/dist/components/vibedeck/VibeDeckButtonForm.js +231 -219
- package/dist/components/vibedeck/VibeDeckButtonForm.js.map +1 -1
- package/dist/pages/ActionsPage.js +233 -224
- package/dist/pages/ActionsPage.js.map +1 -1
- package/dist/pages/AgentDetailsPage.js +490 -489
- package/dist/pages/AgentDetailsPage.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { useTr as e } from "../../shared/hooks/useTr.js";
|
|
2
2
|
import { RemoteExecutionEnableNotice as t } from "./RemoteExecutionEnableNotice.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
3
|
+
import { languageForInterpreter as n } from "../common/commandHighlight.js";
|
|
4
|
+
import { CommandEditor as r } from "../common/CommandEditor.js";
|
|
5
|
+
import { useEffect as i, useRef as a, useState as o } from "react";
|
|
6
|
+
import { X as s } from "lucide-react";
|
|
7
|
+
import { AnimatePresence as c, motion as l, useReducedMotion as u } from "framer-motion";
|
|
8
|
+
import { jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
7
9
|
//#region src/components/actions/ActionForm.tsx
|
|
8
|
-
var
|
|
10
|
+
var p = {
|
|
9
11
|
name: "",
|
|
10
12
|
displayName: "",
|
|
11
13
|
description: "",
|
|
@@ -29,38 +31,38 @@ var d = {
|
|
|
29
31
|
retryCount: 0,
|
|
30
32
|
confirmationRequired: !1
|
|
31
33
|
};
|
|
32
|
-
function
|
|
33
|
-
let [
|
|
34
|
-
...
|
|
35
|
-
...
|
|
36
|
-
}), [
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
function m({ title: m, initialData: h, agents: g, onSubmit: _, onCancel: v, isLoading: y = !1, extraSection: b }) {
|
|
35
|
+
let [x, S] = o({
|
|
36
|
+
...p,
|
|
37
|
+
...h
|
|
38
|
+
}), [C, w] = o(h?.tags?.join(", ") ?? ""), T = a(null), E = u(), D = e();
|
|
39
|
+
i(() => {
|
|
40
|
+
T.current?.showModal();
|
|
39
41
|
}, []);
|
|
40
|
-
let
|
|
42
|
+
let O = (e, t) => S((n) => ({
|
|
41
43
|
...n,
|
|
42
44
|
[e]: t
|
|
43
|
-
})),
|
|
45
|
+
})), k = (e) => {
|
|
44
46
|
e.preventDefault();
|
|
45
|
-
let t =
|
|
46
|
-
|
|
47
|
-
...
|
|
47
|
+
let t = C.split(",").map((e) => e.trim()).filter(Boolean);
|
|
48
|
+
_({
|
|
49
|
+
...x,
|
|
48
50
|
tags: t
|
|
49
51
|
});
|
|
50
|
-
},
|
|
51
|
-
return /* @__PURE__ */
|
|
52
|
-
ref:
|
|
52
|
+
}, A = "w-full px-3 py-2 text-sm bg-bg-sunken border border-border-default rounded-md text-text-primary placeholder:text-text-placeholder focus:outline-none focus:ring-2 focus:ring-action-primary-bg focus:border-transparent transition-all", j = "block text-sm font-medium text-text-secondary mb-1";
|
|
53
|
+
return /* @__PURE__ */ d("dialog", {
|
|
54
|
+
ref: T,
|
|
53
55
|
className: "fixed inset-0 z-50 m-auto p-0 bg-transparent backdrop:bg-transparent",
|
|
54
|
-
onClose:
|
|
55
|
-
children: /* @__PURE__ */
|
|
56
|
+
onClose: v,
|
|
57
|
+
children: /* @__PURE__ */ f(c, { children: [/* @__PURE__ */ d(l.div, {
|
|
56
58
|
className: "fixed inset-0 bg-bg-overlay",
|
|
57
|
-
initial:
|
|
59
|
+
initial: E ? void 0 : { opacity: 0 },
|
|
58
60
|
animate: { opacity: 1 },
|
|
59
61
|
exit: { opacity: 0 },
|
|
60
|
-
onClick:
|
|
61
|
-
}), /* @__PURE__ */
|
|
62
|
+
onClick: v
|
|
63
|
+
}), /* @__PURE__ */ f(l.div, {
|
|
62
64
|
className: "relative w-full max-w-2xl max-h-[85vh] overflow-y-auto bg-bg-surface rounded-lg shadow-xl",
|
|
63
|
-
initial:
|
|
65
|
+
initial: E ? void 0 : {
|
|
64
66
|
opacity: 0,
|
|
65
67
|
scale: .95,
|
|
66
68
|
y: 8
|
|
@@ -84,366 +86,372 @@ function f({ title: f, initialData: p, agents: m, onSubmit: h, onCancel: g, isLo
|
|
|
84
86
|
1
|
|
85
87
|
]
|
|
86
88
|
},
|
|
87
|
-
children: [/* @__PURE__ */
|
|
89
|
+
children: [/* @__PURE__ */ f("div", {
|
|
88
90
|
className: "flex items-center justify-between p-6 border-b border-border-default sticky top-0 bg-bg-surface z-10",
|
|
89
|
-
children: [/* @__PURE__ */
|
|
91
|
+
children: [/* @__PURE__ */ d("h2", {
|
|
90
92
|
className: "text-lg font-semibold text-text-primary",
|
|
91
|
-
children:
|
|
92
|
-
}), /* @__PURE__ */
|
|
93
|
+
children: m
|
|
94
|
+
}), /* @__PURE__ */ d("button", {
|
|
93
95
|
type: "button",
|
|
94
|
-
onClick:
|
|
96
|
+
onClick: v,
|
|
95
97
|
className: "p-1 rounded hover:bg-bg-sunken transition-colors",
|
|
96
|
-
children: /* @__PURE__ */
|
|
98
|
+
children: /* @__PURE__ */ d(s, { className: "size-5 text-text-secondary" })
|
|
97
99
|
})]
|
|
98
|
-
}), /* @__PURE__ */
|
|
99
|
-
onSubmit:
|
|
100
|
+
}), /* @__PURE__ */ f("form", {
|
|
101
|
+
onSubmit: k,
|
|
100
102
|
className: "p-6 space-y-4",
|
|
101
103
|
children: [
|
|
102
|
-
/* @__PURE__ */
|
|
104
|
+
/* @__PURE__ */ f("div", {
|
|
103
105
|
className: "grid grid-cols-2 gap-4",
|
|
104
|
-
children: [/* @__PURE__ */
|
|
105
|
-
className:
|
|
106
|
-
children:
|
|
107
|
-
}), /* @__PURE__ */
|
|
106
|
+
children: [/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("label", {
|
|
107
|
+
className: j,
|
|
108
|
+
children: D("vibecontrols.actions.form.nameSlug", "Name (slug)")
|
|
109
|
+
}), /* @__PURE__ */ d("input", {
|
|
108
110
|
"aria-label": "my-action",
|
|
109
|
-
className:
|
|
110
|
-
value:
|
|
111
|
-
onChange: (e) =>
|
|
111
|
+
className: A,
|
|
112
|
+
value: x.name,
|
|
113
|
+
onChange: (e) => O("name", e.target.value),
|
|
112
114
|
placeholder: "my-action",
|
|
113
115
|
required: !0
|
|
114
|
-
})] }), /* @__PURE__ */
|
|
115
|
-
className:
|
|
116
|
-
children:
|
|
117
|
-
}), /* @__PURE__ */
|
|
116
|
+
})] }), /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("label", {
|
|
117
|
+
className: j,
|
|
118
|
+
children: D("vibecontrols.actions.form.displayName", "Display Name")
|
|
119
|
+
}), /* @__PURE__ */ d("input", {
|
|
118
120
|
"aria-label": "My Action",
|
|
119
|
-
className:
|
|
120
|
-
value:
|
|
121
|
-
onChange: (e) =>
|
|
121
|
+
className: A,
|
|
122
|
+
value: x.displayName,
|
|
123
|
+
onChange: (e) => O("displayName", e.target.value),
|
|
122
124
|
placeholder: "My Action",
|
|
123
125
|
required: !0
|
|
124
126
|
})] })]
|
|
125
127
|
}),
|
|
126
|
-
/* @__PURE__ */
|
|
127
|
-
className:
|
|
128
|
-
children:
|
|
129
|
-
}), /* @__PURE__ */
|
|
128
|
+
/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("label", {
|
|
129
|
+
className: j,
|
|
130
|
+
children: D("vibecontrols.actions.form.description", "Description")
|
|
131
|
+
}), /* @__PURE__ */ d("textarea", {
|
|
130
132
|
"aria-label": "What does this action do?",
|
|
131
|
-
className: `${
|
|
133
|
+
className: `${A} resize-none`,
|
|
132
134
|
rows: 2,
|
|
133
|
-
value:
|
|
134
|
-
onChange: (e) =>
|
|
135
|
+
value: x.description,
|
|
136
|
+
onChange: (e) => O("description", e.target.value),
|
|
135
137
|
placeholder: "What does this action do?"
|
|
136
138
|
})] }),
|
|
137
|
-
/* @__PURE__ */
|
|
139
|
+
/* @__PURE__ */ f("div", {
|
|
138
140
|
className: "grid grid-cols-2 gap-4",
|
|
139
|
-
children: [/* @__PURE__ */
|
|
140
|
-
className:
|
|
141
|
-
children:
|
|
142
|
-
}), /* @__PURE__ */
|
|
143
|
-
className:
|
|
144
|
-
value:
|
|
145
|
-
onChange: (e) =>
|
|
141
|
+
children: [/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("label", {
|
|
142
|
+
className: j,
|
|
143
|
+
children: D("vibecontrols.actions.form.actionType", "Action Type")
|
|
144
|
+
}), /* @__PURE__ */ f("select", {
|
|
145
|
+
className: A,
|
|
146
|
+
value: x.actionType,
|
|
147
|
+
onChange: (e) => O("actionType", e.target.value),
|
|
146
148
|
children: [
|
|
147
|
-
/* @__PURE__ */
|
|
149
|
+
/* @__PURE__ */ d("option", {
|
|
148
150
|
value: "COMMAND",
|
|
149
151
|
children: "Command"
|
|
150
152
|
}),
|
|
151
|
-
/* @__PURE__ */
|
|
153
|
+
/* @__PURE__ */ d("option", {
|
|
152
154
|
value: "SCRIPT",
|
|
153
155
|
children: "Script"
|
|
154
156
|
}),
|
|
155
|
-
/* @__PURE__ */
|
|
157
|
+
/* @__PURE__ */ d("option", {
|
|
156
158
|
value: "WEBHOOK",
|
|
157
159
|
children: "Webhook"
|
|
158
160
|
}),
|
|
159
|
-
/* @__PURE__ */
|
|
161
|
+
/* @__PURE__ */ d("option", {
|
|
160
162
|
value: "WORKFLOW",
|
|
161
163
|
children: "Workflow"
|
|
162
164
|
})
|
|
163
165
|
]
|
|
164
|
-
})] }), /* @__PURE__ */
|
|
165
|
-
className:
|
|
166
|
-
children:
|
|
167
|
-
}), /* @__PURE__ */
|
|
168
|
-
className:
|
|
169
|
-
value:
|
|
170
|
-
onChange: (e) =>
|
|
166
|
+
})] }), /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("label", {
|
|
167
|
+
className: j,
|
|
168
|
+
children: D("vibecontrols.actions.form.triggerType", "Trigger Type")
|
|
169
|
+
}), /* @__PURE__ */ f("select", {
|
|
170
|
+
className: A,
|
|
171
|
+
value: x.triggerType,
|
|
172
|
+
onChange: (e) => O("triggerType", e.target.value),
|
|
171
173
|
children: [
|
|
172
|
-
/* @__PURE__ */
|
|
174
|
+
/* @__PURE__ */ d("option", {
|
|
173
175
|
value: "MANUAL",
|
|
174
176
|
children: "Manual"
|
|
175
177
|
}),
|
|
176
|
-
/* @__PURE__ */
|
|
178
|
+
/* @__PURE__ */ d("option", {
|
|
177
179
|
value: "SCHEDULED",
|
|
178
180
|
children: "Scheduled"
|
|
179
181
|
}),
|
|
180
|
-
/* @__PURE__ */
|
|
182
|
+
/* @__PURE__ */ d("option", {
|
|
181
183
|
value: "EVENT",
|
|
182
184
|
children: "Event"
|
|
183
185
|
}),
|
|
184
|
-
/* @__PURE__ */
|
|
186
|
+
/* @__PURE__ */ d("option", {
|
|
185
187
|
value: "ON_DEMAND",
|
|
186
188
|
children: "On Demand"
|
|
187
189
|
})
|
|
188
190
|
]
|
|
189
191
|
})] })]
|
|
190
192
|
}),
|
|
191
|
-
|
|
192
|
-
className:
|
|
193
|
-
children:
|
|
194
|
-
}), /* @__PURE__ */
|
|
193
|
+
x.triggerType === "SCHEDULED" && /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("label", {
|
|
194
|
+
className: j,
|
|
195
|
+
children: D("vibecontrols.actions.form.schedule", "Schedule (cron expression)")
|
|
196
|
+
}), /* @__PURE__ */ d("input", {
|
|
195
197
|
"aria-label": "*/5 * * * *",
|
|
196
|
-
className:
|
|
197
|
-
value:
|
|
198
|
-
onChange: (e) =>
|
|
198
|
+
className: A,
|
|
199
|
+
value: x.schedule,
|
|
200
|
+
onChange: (e) => O("schedule", e.target.value),
|
|
199
201
|
placeholder: "*/5 * * * *"
|
|
200
202
|
})] }),
|
|
201
|
-
/* @__PURE__ */
|
|
203
|
+
/* @__PURE__ */ f("div", {
|
|
202
204
|
className: "grid grid-cols-2 gap-4",
|
|
203
|
-
children: [/* @__PURE__ */
|
|
204
|
-
className:
|
|
205
|
-
children:
|
|
206
|
-
}), /* @__PURE__ */
|
|
205
|
+
children: [/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("label", {
|
|
206
|
+
className: j,
|
|
207
|
+
children: D("vibecontrols.actions.form.category", "Category")
|
|
208
|
+
}), /* @__PURE__ */ d("input", {
|
|
207
209
|
"aria-label": "deployment, testing, etc.",
|
|
208
|
-
className:
|
|
209
|
-
value:
|
|
210
|
-
onChange: (e) =>
|
|
210
|
+
className: A,
|
|
211
|
+
value: x.category,
|
|
212
|
+
onChange: (e) => O("category", e.target.value),
|
|
211
213
|
placeholder: "deployment, testing, etc."
|
|
212
|
-
})] }), /* @__PURE__ */
|
|
213
|
-
className:
|
|
214
|
-
children:
|
|
215
|
-
}), /* @__PURE__ */
|
|
214
|
+
})] }), /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("label", {
|
|
215
|
+
className: j,
|
|
216
|
+
children: D("vibecontrols.actions.form.tags", "Tags (comma separated)")
|
|
217
|
+
}), /* @__PURE__ */ d("input", {
|
|
216
218
|
"aria-label": "ci, deploy, infra",
|
|
217
|
-
className:
|
|
218
|
-
value:
|
|
219
|
-
onChange: (e) =>
|
|
219
|
+
className: A,
|
|
220
|
+
value: C,
|
|
221
|
+
onChange: (e) => w(e.target.value),
|
|
220
222
|
placeholder: "ci, deploy, infra"
|
|
221
223
|
})] })]
|
|
222
224
|
}),
|
|
223
|
-
|
|
225
|
+
x.actionType === "COMMAND" && /* @__PURE__ */ f("div", {
|
|
224
226
|
className: "space-y-4 p-4 rounded-lg bg-bg-sunken/50 border border-border-default",
|
|
225
227
|
children: [
|
|
226
|
-
/* @__PURE__ */
|
|
228
|
+
/* @__PURE__ */ d("h3", {
|
|
227
229
|
className: "text-sm font-semibold text-text-primary",
|
|
228
|
-
children:
|
|
230
|
+
children: D("vibecontrols.actions.form.commandSettings", "Command Settings")
|
|
229
231
|
}),
|
|
230
|
-
/* @__PURE__ */
|
|
231
|
-
className:
|
|
232
|
-
children:
|
|
233
|
-
}), /* @__PURE__ */
|
|
232
|
+
/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("label", {
|
|
233
|
+
className: j,
|
|
234
|
+
children: D("vibecontrols.actions.form.command", "Command")
|
|
235
|
+
}), /* @__PURE__ */ d(r, {
|
|
234
236
|
"aria-label": "echo 'Hello World'",
|
|
235
|
-
|
|
237
|
+
language: "shell",
|
|
236
238
|
rows: 3,
|
|
237
|
-
value:
|
|
238
|
-
onChange: (e) =>
|
|
239
|
+
value: x.command,
|
|
240
|
+
onChange: (e) => O("command", e.target.value),
|
|
239
241
|
placeholder: "echo 'Hello World'",
|
|
240
242
|
required: !0
|
|
241
243
|
})] }),
|
|
242
|
-
/* @__PURE__ */
|
|
244
|
+
/* @__PURE__ */ f("div", {
|
|
243
245
|
className: "grid grid-cols-2 gap-4",
|
|
244
|
-
children: [/* @__PURE__ */
|
|
245
|
-
className:
|
|
246
|
-
children:
|
|
247
|
-
}), /* @__PURE__ */
|
|
246
|
+
children: [/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("label", {
|
|
247
|
+
className: j,
|
|
248
|
+
children: D("vibecontrols.actions.form.workingDirectory", "Working Directory")
|
|
249
|
+
}), /* @__PURE__ */ d("input", {
|
|
248
250
|
"aria-label": "/home/user/project",
|
|
249
|
-
className:
|
|
250
|
-
value:
|
|
251
|
-
onChange: (e) =>
|
|
251
|
+
className: A,
|
|
252
|
+
value: x.workingDirectory,
|
|
253
|
+
onChange: (e) => O("workingDirectory", e.target.value),
|
|
252
254
|
placeholder: "/home/user/project"
|
|
253
|
-
})] }), /* @__PURE__ */
|
|
254
|
-
/* @__PURE__ */
|
|
255
|
-
className:
|
|
256
|
-
children:
|
|
255
|
+
})] }), /* @__PURE__ */ f("div", { children: [
|
|
256
|
+
/* @__PURE__ */ d("label", {
|
|
257
|
+
className: j,
|
|
258
|
+
children: D("vibecontrols.actions.form.targetAgent", "Target Agent")
|
|
257
259
|
}),
|
|
258
|
-
/* @__PURE__ */
|
|
259
|
-
className:
|
|
260
|
-
value:
|
|
261
|
-
onChange: (e) =>
|
|
262
|
-
children: [/* @__PURE__ */
|
|
260
|
+
/* @__PURE__ */ f("select", {
|
|
261
|
+
className: A,
|
|
262
|
+
value: x.targetAgentId,
|
|
263
|
+
onChange: (e) => O("targetAgentId", e.target.value),
|
|
264
|
+
children: [/* @__PURE__ */ d("option", {
|
|
263
265
|
value: "",
|
|
264
|
-
children:
|
|
265
|
-
}),
|
|
266
|
+
children: D("vibecontrols.actions.form.anyAvailableAgent", "Any available agent")
|
|
267
|
+
}), g.map((e) => /* @__PURE__ */ f("option", {
|
|
266
268
|
value: e.id,
|
|
267
269
|
disabled: !e.isActive,
|
|
268
270
|
children: [
|
|
269
271
|
e.name,
|
|
270
272
|
" ",
|
|
271
|
-
e.isActive ? "" :
|
|
273
|
+
e.isActive ? "" : D("vibecontrols.actions.form.offline", "(offline)")
|
|
272
274
|
]
|
|
273
275
|
}, e.id))]
|
|
274
276
|
}),
|
|
275
|
-
|
|
276
|
-
agentId:
|
|
277
|
-
agentName:
|
|
278
|
-
}) :
|
|
277
|
+
x.targetAgentId ? /* @__PURE__ */ d(t, {
|
|
278
|
+
agentId: x.targetAgentId,
|
|
279
|
+
agentName: g.find((e) => e.id === x.targetAgentId)?.name
|
|
280
|
+
}) : /* @__PURE__ */ d("p", {
|
|
281
|
+
className: "mt-1 text-xs text-text-tertiary",
|
|
282
|
+
children: D("vibecontrols.actions.form.anyAgentHint", "A healthy agent is picked automatically when this action runs.")
|
|
283
|
+
})
|
|
279
284
|
] })]
|
|
280
285
|
})
|
|
281
286
|
]
|
|
282
287
|
}),
|
|
283
|
-
|
|
288
|
+
x.actionType === "SCRIPT" && /* @__PURE__ */ f("div", {
|
|
284
289
|
className: "space-y-4 p-4 rounded-lg bg-bg-sunken/50 border border-border-default",
|
|
285
290
|
children: [
|
|
286
|
-
/* @__PURE__ */
|
|
291
|
+
/* @__PURE__ */ d("h3", {
|
|
287
292
|
className: "text-sm font-semibold text-text-primary",
|
|
288
|
-
children:
|
|
293
|
+
children: D("vibecontrols.actions.form.scriptSettings", "Script Settings")
|
|
289
294
|
}),
|
|
290
|
-
/* @__PURE__ */
|
|
291
|
-
className:
|
|
292
|
-
children:
|
|
293
|
-
}), /* @__PURE__ */
|
|
295
|
+
/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("label", {
|
|
296
|
+
className: j,
|
|
297
|
+
children: D("vibecontrols.actions.form.script", "Script")
|
|
298
|
+
}), /* @__PURE__ */ d(r, {
|
|
294
299
|
"aria-label": "#!/bin/bash\necho 'Hello'",
|
|
295
|
-
|
|
300
|
+
language: n(x.scriptInterpreter),
|
|
296
301
|
rows: 6,
|
|
297
|
-
value:
|
|
298
|
-
onChange: (e) =>
|
|
302
|
+
value: x.script,
|
|
303
|
+
onChange: (e) => O("script", e.target.value),
|
|
299
304
|
placeholder: "#!/bin/bash\necho 'Hello'",
|
|
300
305
|
required: !0
|
|
301
306
|
})] }),
|
|
302
|
-
/* @__PURE__ */
|
|
307
|
+
/* @__PURE__ */ f("div", {
|
|
303
308
|
className: "grid grid-cols-2 gap-4",
|
|
304
|
-
children: [/* @__PURE__ */
|
|
305
|
-
className:
|
|
306
|
-
children:
|
|
307
|
-
}), /* @__PURE__ */
|
|
308
|
-
className:
|
|
309
|
-
value:
|
|
310
|
-
onChange: (e) =>
|
|
309
|
+
children: [/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("label", {
|
|
310
|
+
className: j,
|
|
311
|
+
children: D("vibecontrols.actions.form.interpreter", "Interpreter")
|
|
312
|
+
}), /* @__PURE__ */ f("select", {
|
|
313
|
+
className: A,
|
|
314
|
+
value: x.scriptInterpreter,
|
|
315
|
+
onChange: (e) => O("scriptInterpreter", e.target.value),
|
|
311
316
|
children: [
|
|
312
|
-
/* @__PURE__ */
|
|
317
|
+
/* @__PURE__ */ d("option", {
|
|
313
318
|
value: "bash",
|
|
314
319
|
children: "Bash"
|
|
315
320
|
}),
|
|
316
|
-
/* @__PURE__ */
|
|
321
|
+
/* @__PURE__ */ d("option", {
|
|
317
322
|
value: "python",
|
|
318
323
|
children: "Python"
|
|
319
324
|
}),
|
|
320
|
-
/* @__PURE__ */
|
|
325
|
+
/* @__PURE__ */ d("option", {
|
|
321
326
|
value: "node",
|
|
322
327
|
children: "Node.js"
|
|
323
328
|
})
|
|
324
329
|
]
|
|
325
|
-
})] }), /* @__PURE__ */
|
|
326
|
-
/* @__PURE__ */
|
|
327
|
-
className:
|
|
328
|
-
children:
|
|
330
|
+
})] }), /* @__PURE__ */ f("div", { children: [
|
|
331
|
+
/* @__PURE__ */ d("label", {
|
|
332
|
+
className: j,
|
|
333
|
+
children: D("vibecontrols.actions.form.targetAgent", "Target Agent")
|
|
329
334
|
}),
|
|
330
|
-
/* @__PURE__ */
|
|
331
|
-
className:
|
|
332
|
-
value:
|
|
333
|
-
onChange: (e) =>
|
|
334
|
-
children: [/* @__PURE__ */
|
|
335
|
+
/* @__PURE__ */ f("select", {
|
|
336
|
+
className: A,
|
|
337
|
+
value: x.targetAgentId,
|
|
338
|
+
onChange: (e) => O("targetAgentId", e.target.value),
|
|
339
|
+
children: [/* @__PURE__ */ d("option", {
|
|
335
340
|
value: "",
|
|
336
|
-
children:
|
|
337
|
-
}),
|
|
341
|
+
children: D("vibecontrols.actions.form.anyAvailableAgent", "Any available agent")
|
|
342
|
+
}), g.map((e) => /* @__PURE__ */ f("option", {
|
|
338
343
|
value: e.id,
|
|
339
344
|
disabled: !e.isActive,
|
|
340
345
|
children: [
|
|
341
346
|
e.name,
|
|
342
347
|
" ",
|
|
343
|
-
e.isActive ? "" :
|
|
348
|
+
e.isActive ? "" : D("vibecontrols.actions.form.offline", "(offline)")
|
|
344
349
|
]
|
|
345
350
|
}, e.id))]
|
|
346
351
|
}),
|
|
347
|
-
|
|
348
|
-
agentId:
|
|
349
|
-
agentName:
|
|
350
|
-
}) :
|
|
352
|
+
x.targetAgentId ? /* @__PURE__ */ d(t, {
|
|
353
|
+
agentId: x.targetAgentId,
|
|
354
|
+
agentName: g.find((e) => e.id === x.targetAgentId)?.name
|
|
355
|
+
}) : /* @__PURE__ */ d("p", {
|
|
356
|
+
className: "mt-1 text-xs text-text-tertiary",
|
|
357
|
+
children: D("vibecontrols.actions.form.anyAgentHint", "A healthy agent is picked automatically when this action runs.")
|
|
358
|
+
})
|
|
351
359
|
] })]
|
|
352
360
|
}),
|
|
353
|
-
/* @__PURE__ */
|
|
354
|
-
className:
|
|
355
|
-
children:
|
|
356
|
-
}), /* @__PURE__ */
|
|
361
|
+
/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("label", {
|
|
362
|
+
className: j,
|
|
363
|
+
children: D("vibecontrols.actions.form.workingDirectory", "Working Directory")
|
|
364
|
+
}), /* @__PURE__ */ d("input", {
|
|
357
365
|
"aria-label": "/home/user/project",
|
|
358
|
-
className:
|
|
359
|
-
value:
|
|
360
|
-
onChange: (e) =>
|
|
366
|
+
className: A,
|
|
367
|
+
value: x.workingDirectory,
|
|
368
|
+
onChange: (e) => O("workingDirectory", e.target.value),
|
|
361
369
|
placeholder: "/home/user/project"
|
|
362
370
|
})] })
|
|
363
371
|
]
|
|
364
372
|
}),
|
|
365
|
-
|
|
373
|
+
x.actionType === "WEBHOOK" && /* @__PURE__ */ f("div", {
|
|
366
374
|
className: "space-y-4 p-4 rounded-lg bg-bg-sunken/50 border border-border-default",
|
|
367
375
|
children: [
|
|
368
|
-
/* @__PURE__ */
|
|
376
|
+
/* @__PURE__ */ d("h3", {
|
|
369
377
|
className: "text-sm font-semibold text-text-primary",
|
|
370
|
-
children:
|
|
378
|
+
children: D("vibecontrols.actions.form.webhookSettings", "Webhook Settings")
|
|
371
379
|
}),
|
|
372
|
-
/* @__PURE__ */
|
|
380
|
+
/* @__PURE__ */ f("div", {
|
|
373
381
|
className: "grid grid-cols-[1fr_auto] gap-4",
|
|
374
|
-
children: [/* @__PURE__ */
|
|
375
|
-
className:
|
|
376
|
-
children:
|
|
377
|
-
}), /* @__PURE__ */
|
|
382
|
+
children: [/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("label", {
|
|
383
|
+
className: j,
|
|
384
|
+
children: D("vibecontrols.actions.form.url", "URL")
|
|
385
|
+
}), /* @__PURE__ */ d("input", {
|
|
378
386
|
"aria-label": "https://api.example.com/hook",
|
|
379
|
-
className:
|
|
380
|
-
value:
|
|
381
|
-
onChange: (e) =>
|
|
387
|
+
className: A,
|
|
388
|
+
value: x.webhookUrl,
|
|
389
|
+
onChange: (e) => O("webhookUrl", e.target.value),
|
|
382
390
|
placeholder: "https://api.example.com/hook",
|
|
383
391
|
required: !0
|
|
384
|
-
})] }), /* @__PURE__ */
|
|
385
|
-
className:
|
|
386
|
-
children:
|
|
387
|
-
}), /* @__PURE__ */
|
|
388
|
-
className:
|
|
389
|
-
value:
|
|
390
|
-
onChange: (e) =>
|
|
392
|
+
})] }), /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("label", {
|
|
393
|
+
className: j,
|
|
394
|
+
children: D("vibecontrols.actions.form.method", "Method")
|
|
395
|
+
}), /* @__PURE__ */ f("select", {
|
|
396
|
+
className: A,
|
|
397
|
+
value: x.webhookMethod,
|
|
398
|
+
onChange: (e) => O("webhookMethod", e.target.value),
|
|
391
399
|
children: [
|
|
392
|
-
/* @__PURE__ */
|
|
400
|
+
/* @__PURE__ */ d("option", {
|
|
393
401
|
value: "GET",
|
|
394
402
|
children: "GET"
|
|
395
403
|
}),
|
|
396
|
-
/* @__PURE__ */
|
|
404
|
+
/* @__PURE__ */ d("option", {
|
|
397
405
|
value: "POST",
|
|
398
406
|
children: "POST"
|
|
399
407
|
}),
|
|
400
|
-
/* @__PURE__ */
|
|
408
|
+
/* @__PURE__ */ d("option", {
|
|
401
409
|
value: "PUT",
|
|
402
410
|
children: "PUT"
|
|
403
411
|
}),
|
|
404
|
-
/* @__PURE__ */
|
|
412
|
+
/* @__PURE__ */ d("option", {
|
|
405
413
|
value: "PATCH",
|
|
406
414
|
children: "PATCH"
|
|
407
415
|
}),
|
|
408
|
-
/* @__PURE__ */
|
|
416
|
+
/* @__PURE__ */ d("option", {
|
|
409
417
|
value: "DELETE",
|
|
410
418
|
children: "DELETE"
|
|
411
419
|
})
|
|
412
420
|
]
|
|
413
421
|
})] })]
|
|
414
422
|
}),
|
|
415
|
-
/* @__PURE__ */
|
|
416
|
-
className:
|
|
417
|
-
children:
|
|
418
|
-
}), /* @__PURE__ */
|
|
423
|
+
/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("label", {
|
|
424
|
+
className: j,
|
|
425
|
+
children: D("vibecontrols.actions.form.bodyJson", "Body (JSON)")
|
|
426
|
+
}), /* @__PURE__ */ d(r, {
|
|
419
427
|
"aria-label": "control",
|
|
420
|
-
|
|
428
|
+
language: "json",
|
|
421
429
|
rows: 4,
|
|
422
|
-
value:
|
|
423
|
-
onChange: (e) =>
|
|
430
|
+
value: x.webhookBody,
|
|
431
|
+
onChange: (e) => O("webhookBody", e.target.value),
|
|
424
432
|
placeholder: "{\"key\": \"value\"}"
|
|
425
433
|
})] }),
|
|
426
|
-
/* @__PURE__ */
|
|
427
|
-
className:
|
|
428
|
-
children:
|
|
429
|
-
}), /* @__PURE__ */
|
|
430
|
-
className:
|
|
431
|
-
value:
|
|
432
|
-
onChange: (e) =>
|
|
434
|
+
/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("label", {
|
|
435
|
+
className: j,
|
|
436
|
+
children: D("vibecontrols.actions.form.authType", "Auth Type")
|
|
437
|
+
}), /* @__PURE__ */ f("select", {
|
|
438
|
+
className: A,
|
|
439
|
+
value: x.webhookAuthType,
|
|
440
|
+
onChange: (e) => O("webhookAuthType", e.target.value),
|
|
433
441
|
children: [
|
|
434
|
-
/* @__PURE__ */
|
|
442
|
+
/* @__PURE__ */ d("option", {
|
|
435
443
|
value: "",
|
|
436
444
|
children: "None"
|
|
437
445
|
}),
|
|
438
|
-
/* @__PURE__ */
|
|
446
|
+
/* @__PURE__ */ d("option", {
|
|
439
447
|
value: "BEARER",
|
|
440
448
|
children: "Bearer Token"
|
|
441
449
|
}),
|
|
442
|
-
/* @__PURE__ */
|
|
450
|
+
/* @__PURE__ */ d("option", {
|
|
443
451
|
value: "BASIC",
|
|
444
452
|
children: "Basic Auth"
|
|
445
453
|
}),
|
|
446
|
-
/* @__PURE__ */
|
|
454
|
+
/* @__PURE__ */ d("option", {
|
|
447
455
|
value: "API_KEY",
|
|
448
456
|
children: "API Key"
|
|
449
457
|
})
|
|
@@ -451,65 +459,65 @@ function f({ title: f, initialData: p, agents: m, onSubmit: h, onCancel: g, isLo
|
|
|
451
459
|
})] })
|
|
452
460
|
]
|
|
453
461
|
}),
|
|
454
|
-
/* @__PURE__ */
|
|
462
|
+
/* @__PURE__ */ f("div", {
|
|
455
463
|
className: "grid grid-cols-3 gap-4",
|
|
456
464
|
children: [
|
|
457
|
-
/* @__PURE__ */
|
|
458
|
-
className:
|
|
459
|
-
children:
|
|
460
|
-
}), /* @__PURE__ */
|
|
465
|
+
/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("label", {
|
|
466
|
+
className: j,
|
|
467
|
+
children: D("vibecontrols.actions.form.timeout", "Timeout (ms)")
|
|
468
|
+
}), /* @__PURE__ */ d("input", {
|
|
461
469
|
"aria-label": "control",
|
|
462
|
-
className:
|
|
470
|
+
className: A,
|
|
463
471
|
type: "number",
|
|
464
472
|
min: 1e3,
|
|
465
473
|
max: 3e5,
|
|
466
|
-
value:
|
|
467
|
-
onChange: (e) =>
|
|
474
|
+
value: x.timeoutMs,
|
|
475
|
+
onChange: (e) => O("timeoutMs", parseInt(e.target.value) || 3e4)
|
|
468
476
|
})] }),
|
|
469
|
-
/* @__PURE__ */
|
|
470
|
-
className:
|
|
471
|
-
children:
|
|
472
|
-
}), /* @__PURE__ */
|
|
477
|
+
/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("label", {
|
|
478
|
+
className: j,
|
|
479
|
+
children: D("vibecontrols.actions.form.retryCount", "Retry Count")
|
|
480
|
+
}), /* @__PURE__ */ d("input", {
|
|
473
481
|
"aria-label": "control",
|
|
474
|
-
className:
|
|
482
|
+
className: A,
|
|
475
483
|
type: "number",
|
|
476
484
|
min: 0,
|
|
477
485
|
max: 10,
|
|
478
|
-
value:
|
|
479
|
-
onChange: (e) =>
|
|
486
|
+
value: x.retryCount,
|
|
487
|
+
onChange: (e) => O("retryCount", parseInt(e.target.value) || 0)
|
|
480
488
|
})] }),
|
|
481
|
-
/* @__PURE__ */
|
|
489
|
+
/* @__PURE__ */ d("div", {
|
|
482
490
|
className: "flex items-end pb-2",
|
|
483
|
-
children: /* @__PURE__ */
|
|
491
|
+
children: /* @__PURE__ */ f("label", {
|
|
484
492
|
className: "flex items-center gap-2 text-sm text-text-secondary cursor-pointer",
|
|
485
|
-
children: [/* @__PURE__ */
|
|
493
|
+
children: [/* @__PURE__ */ d("input", {
|
|
486
494
|
"aria-label": "control",
|
|
487
495
|
type: "checkbox",
|
|
488
|
-
checked:
|
|
489
|
-
onChange: (e) =>
|
|
496
|
+
checked: x.confirmationRequired,
|
|
497
|
+
onChange: (e) => O("confirmationRequired", e.target.checked),
|
|
490
498
|
className: "rounded border-border-default"
|
|
491
|
-
}),
|
|
499
|
+
}), D("vibecontrols.actions.form.requireConfirmation", "Require confirmation")]
|
|
492
500
|
})
|
|
493
501
|
})
|
|
494
502
|
]
|
|
495
503
|
}),
|
|
496
|
-
|
|
504
|
+
b && /* @__PURE__ */ d("div", {
|
|
497
505
|
className: "pt-4 border-t border-border-default",
|
|
498
|
-
children:
|
|
506
|
+
children: b
|
|
499
507
|
}),
|
|
500
|
-
/* @__PURE__ */
|
|
508
|
+
/* @__PURE__ */ f("div", {
|
|
501
509
|
className: "flex items-center justify-end gap-3 pt-4 border-t border-border-default",
|
|
502
|
-
children: [/* @__PURE__ */
|
|
510
|
+
children: [/* @__PURE__ */ d("button", {
|
|
503
511
|
type: "button",
|
|
504
|
-
onClick:
|
|
505
|
-
disabled:
|
|
512
|
+
onClick: v,
|
|
513
|
+
disabled: y,
|
|
506
514
|
className: "px-4 py-2 text-sm font-medium text-text-primary bg-bg-surface border border-border-default rounded-md hover:bg-bg-elevated transition-colors disabled:opacity-50",
|
|
507
|
-
children:
|
|
508
|
-
}), /* @__PURE__ */
|
|
515
|
+
children: D("vibecontrols.actions.form.cancel", "Cancel")
|
|
516
|
+
}), /* @__PURE__ */ d("button", {
|
|
509
517
|
type: "submit",
|
|
510
|
-
disabled:
|
|
518
|
+
disabled: y,
|
|
511
519
|
className: "px-4 py-2 text-sm font-medium rounded-md bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bg-hover transition-colors disabled:opacity-50",
|
|
512
|
-
children:
|
|
520
|
+
children: y ? D("vibecontrols.actions.form.saving", "Saving...") : h ? D("vibecontrols.actions.form.updateAction", "Update Action") : D("vibecontrols.actions.form.createAction", "Create Action")
|
|
513
521
|
})]
|
|
514
522
|
})
|
|
515
523
|
]
|
|
@@ -518,6 +526,6 @@ function f({ title: f, initialData: p, agents: m, onSubmit: h, onCancel: g, isLo
|
|
|
518
526
|
});
|
|
519
527
|
}
|
|
520
528
|
//#endregion
|
|
521
|
-
export {
|
|
529
|
+
export { m as ActionForm };
|
|
522
530
|
|
|
523
531
|
//# sourceMappingURL=ActionForm.js.map
|