@burdenoff/microfe-vibecontrols 2026.709.2 → 2026.710.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/components/agent-manager/AgentManagerBookmarksDrawer.js +87 -85
  2. package/dist/components/agent-manager/AgentManagerBookmarksDrawer.js.map +1 -1
  3. package/dist/components/ai/InstructionFilesManager.js +138 -136
  4. package/dist/components/ai/InstructionFilesManager.js.map +1 -1
  5. package/dist/components/ai/PluginHarnessPicker.js +70 -64
  6. package/dist/components/ai/PluginHarnessPicker.js.map +1 -1
  7. package/dist/components/docs/DocsEditPanel.js +1 -1
  8. package/dist/components/docs/DocsEditPanel.js.map +1 -1
  9. package/dist/components/docs/DocsPageTree.js +1 -1
  10. package/dist/components/docs/DocsPageTree.js.map +1 -1
  11. package/dist/components/docs/DocsTabPanel.js +108 -106
  12. package/dist/components/docs/DocsTabPanel.js.map +1 -1
  13. package/dist/components/notes/NotesTabPanel.js +99 -99
  14. package/dist/components/notes/NotesTabPanel.js.map +1 -1
  15. package/dist/components/scorecard/ScorecardPanel.js +309 -308
  16. package/dist/components/scorecard/ScorecardPanel.js.map +1 -1
  17. package/dist/components/sessions/SessionPublicLinkPanel.js +104 -102
  18. package/dist/components/sessions/SessionPublicLinkPanel.js.map +1 -1
  19. package/dist/components/settings/AdvancedSection.js +92 -90
  20. package/dist/components/settings/AdvancedSection.js.map +1 -1
  21. package/dist/components/vibedeck/VibeDeckPublicLinkPanel.js +104 -102
  22. package/dist/components/vibedeck/VibeDeckPublicLinkPanel.js.map +1 -1
  23. package/dist/constants/permissions.js +7 -0
  24. package/dist/constants/permissions.js.map +1 -1
  25. package/dist/pages/ActionsPage.js +303 -303
  26. package/dist/pages/ActionsPage.js.map +1 -1
  27. package/dist/pages/AgentDetailsPage.js +520 -516
  28. package/dist/pages/AgentDetailsPage.js.map +1 -1
  29. package/dist/pages/AgentsPage.js +287 -283
  30. package/dist/pages/AgentsPage.js.map +1 -1
  31. package/dist/pages/TargetsPage.js +554 -549
  32. package/dist/pages/TargetsPage.js.map +1 -1
  33. package/dist/pages/VibeAuditPage.js +2 -2
  34. package/dist/pages/VibeAuditPage.js.map +1 -1
  35. package/dist/pages/VibeDeckPage.js +257 -257
  36. package/dist/pages/VibeDeckPage.js.map +1 -1
  37. package/dist/pages/VibeDetailsPage.js +688 -693
  38. package/dist/pages/VibeDetailsPage.js.map +1 -1
  39. package/dist/pages/VibesPage.js +49 -41
  40. package/dist/pages/VibesPage.js.map +1 -1
  41. package/dist/pages/WebhooksPage.js +162 -138
  42. package/dist/pages/WebhooksPage.js.map +1 -1
  43. package/dist/pages/tunnels/DomainsTab.js +54 -47
  44. package/dist/pages/tunnels/DomainsTab.js.map +1 -1
  45. package/package.json +1 -1
@@ -1,42 +1,42 @@
1
- import { useCreateActionMutation as e, useDeleteActionMutation as t, useDuplicateActionMutation as n, useExecuteActionMutation as r, useGetActionQuery as i, useListActionsQuery as a, useListAgentsQuery as ee, useUpdateActionMutation as te } from "../generated/wspace-operations.js";
2
- import { ConfirmDialog as o } from "../components/shared/ConfirmDialog.js";
3
- import { QuotaExhaustedDialog as ne } from "../components/shared/QuotaExhaustedDialog.js";
4
- import { getQuotaDialogContent as re, isQuotaExhaustedError as s, markQuotaHandledLocally as c } from "../utils/quotaUtils.js";
5
- import { useVibeControls as ie } from "../providers/VibeControlsProvider.js";
6
- import { PageHeader as ae } from "../components/shared/PageHeader.js";
7
- import { LoadingState as oe } from "../components/shared/LoadingState.js";
8
- import { ErrorState as se } from "../components/shared/ErrorState.js";
9
- import { EntityTagPicker as ce } from "../components/shared/EntityTagPicker.js";
10
- import { useDraftEntityTags as le } from "../hooks/useDraftEntityTags.js";
11
- import { EmptyState as ue } from "../components/shared/EmptyState.js";
12
- import { SearchInput as de } from "../components/shared/SearchInput.js";
13
- import { FilterDropdown as fe } from "../components/shared/FilterDropdown.js";
14
- import { EnableRemoteTaskDialog as pe } from "../components/shared/EnableRemoteTaskDialog.js";
15
- import { LINK_TO_VIBE_DEFAULT as l, LinkToVibePanel as me, linkToVibeInput as he } from "../components/shared/LinkToVibePanel.js";
16
- import { GetHelpButton as ge } from "../components/shared/GetHelpButton.js";
17
- import { SelectionCheckbox as _e } from "../components/shared/SelectionCheckbox.js";
18
- import { useActiveAgentProfile as ve } from "../hooks/useActiveAgentProfile.js";
1
+ import { useCreateActionMutation as e, useDeleteActionMutation as t, useDuplicateActionMutation as n, useExecuteActionMutation as r, useGetActionQuery as i, useListActionsQuery as ee, useListAgentsQuery as te, useUpdateActionMutation as ne } from "../generated/wspace-operations.js";
2
+ import { ConfirmDialog as a } from "../components/shared/ConfirmDialog.js";
3
+ import { QuotaExhaustedDialog as re } from "../components/shared/QuotaExhaustedDialog.js";
4
+ import { getQuotaDialogContent as ie, isQuotaExhaustedError as o, markQuotaHandledLocally as s } from "../utils/quotaUtils.js";
5
+ import { useVibeControls as ae } from "../providers/VibeControlsProvider.js";
6
+ import { PageHeader as oe } from "../components/shared/PageHeader.js";
7
+ import { LoadingState as se } from "../components/shared/LoadingState.js";
8
+ import { ErrorState as ce } from "../components/shared/ErrorState.js";
9
+ import { EntityTagPicker as le } from "../components/shared/EntityTagPicker.js";
10
+ import { useDraftEntityTags as ue } from "../hooks/useDraftEntityTags.js";
11
+ import { EmptyState as de } from "../components/shared/EmptyState.js";
12
+ import { SearchInput as fe } from "../components/shared/SearchInput.js";
13
+ import { FilterDropdown as pe } from "../components/shared/FilterDropdown.js";
14
+ import { EnableRemoteTaskDialog as me } from "../components/shared/EnableRemoteTaskDialog.js";
15
+ import { LINK_TO_VIBE_DEFAULT as c, LinkToVibePanel as he, linkToVibeInput as ge } from "../components/shared/LinkToVibePanel.js";
16
+ import { GetHelpButton as _e } from "../components/shared/GetHelpButton.js";
17
+ import { SelectionCheckbox as ve } from "../components/shared/SelectionCheckbox.js";
18
+ import { useActiveAgentProfile as ye } from "../hooks/useActiveAgentProfile.js";
19
19
  import "../components/shared/index.js";
20
- import { isNative as ye, nativeNotify as be } from "../utils/nativeBridge.js";
21
- import { VIBE_PERMISSIONS as u } from "../constants/permissions.js";
22
- import { ActionCard as xe } from "../components/actions/ActionCard.js";
23
- import { enableRemoteTaskExecution as Se, isRemoteTaskDeniedError as Ce } from "../services/agentRemoteTaskGates.js";
24
- import { ActionForm as we } from "../components/actions/ActionForm.js";
25
- import { ExecutionHistory as Te } from "../components/actions/ExecutionHistory.js";
26
- import { ActionSchedulesList as Ee } from "../components/actions/ActionSchedulesList.js";
20
+ import { isNative as be, nativeNotify as xe } from "../utils/nativeBridge.js";
21
+ import { VIBE_PERMISSIONS as l } from "../constants/permissions.js";
22
+ import { ActionCard as Se } from "../components/actions/ActionCard.js";
23
+ import { enableRemoteTaskExecution as Ce, isRemoteTaskDeniedError as we } from "../services/agentRemoteTaskGates.js";
24
+ import { ActionForm as Te } from "../components/actions/ActionForm.js";
25
+ import { ExecutionHistory as Ee } from "../components/actions/ExecutionHistory.js";
26
+ import { ActionSchedulesList as De } from "../components/actions/ActionSchedulesList.js";
27
27
  import "../components/actions/index.js";
28
- import { useCallback as d, useEffect as De, useMemo as f, useState as p } from "react";
29
- import { useI18n as Oe } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
30
- import { Copy as ke, Play as Ae, Plus as je, RefreshCw as Me, Trash2 as Ne } from "lucide-react";
31
- import { useNavigate as Pe, useSearchParams as Fe } from "react-router-dom";
32
- import { usePermissions as Ie } from "@burdenoff/fe-libs/shared/providers/shell";
33
- import { AnimatePresence as m } from "framer-motion";
34
- import { jsx as h, jsxs as g } from "react/jsx-runtime";
35
- import { CTAOverflowMenu as Le, PagePurpose as Re } from "@burdenoff/fe-libs/ui";
36
- import { AccessDenied as ze } from "@burdenoff/fe-libs/shared/components";
37
- import { MotionPage as _ } from "@burdenoff/fe-libs/shared/motion";
28
+ import { useCallback as u, useEffect as Oe, useMemo as d, useState as f } from "react";
29
+ import { useI18n as ke } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
30
+ import { Copy as Ae, Play as je, Plus as Me, RefreshCw as Ne, Trash2 as Pe } from "lucide-react";
31
+ import { useNavigate as Fe, useSearchParams as Ie } from "react-router-dom";
32
+ import { usePermissions as Le } from "@burdenoff/fe-libs/shared/providers/shell";
33
+ import { AnimatePresence as Re } from "framer-motion";
34
+ import { jsx as p, jsxs as m } from "react/jsx-runtime";
35
+ import { CTAOverflowMenu as ze, PagePurpose as Be } from "@burdenoff/fe-libs/ui";
36
+ import { AccessDenied as Ve } from "@burdenoff/fe-libs/shared/components";
37
+ import { MotionPage as h } from "@burdenoff/fe-libs/shared/motion";
38
38
  //#region src/pages/ActionsPage.tsx
39
- var Be = [
39
+ var He = [
40
40
  {
41
41
  value: "COMMAND",
42
42
  label: "Command"
@@ -53,7 +53,7 @@ var Be = [
53
53
  value: "WORKFLOW",
54
54
  label: "Workflow"
55
55
  }
56
- ], Ve = [
56
+ ], Ue = [
57
57
  {
58
58
  value: "MANUAL",
59
59
  label: "Manual"
@@ -71,42 +71,42 @@ var Be = [
71
71
  label: "On Demand"
72
72
  }
73
73
  ];
74
- function v() {
75
- let v = Pe(), [He, Ue] = Fe(), { workspaceId: We } = ie(), { hasPermission: y, isLoading: Ge, permissions: b } = Ie(), x = ((e) => (t, n) => {
74
+ function g() {
75
+ let g = Fe(), [_, We] = Ie(), { workspaceId: Ge } = ae(), { hasPermission: v, isLoading: Ke, permissions: y } = Le(), b = ((e) => (t, n) => {
76
76
  let r = e.t(t);
77
77
  return r === t ? n : r;
78
- })(Oe()), S = (Array.isArray(b) ? b : b?.permissionStrings)?.some?.((e) => e.startsWith("action:")), Ke = S ? y(u.ACTION_LIST) : !0, qe = S ? y(u.ACTION_CREATE) : !0, Je = S ? y(u.ACTION_UPDATE) : !0, Ye = S ? y(u.ACTION_DELETE) : !0, Xe = S ? y(u.ACTION_EXECUTE) : !0, C = Ge, [w, T] = p({ type: "none" }), [Ze, E] = p([]), [D, Qe] = p(""), [O, $e] = p(null), [k, et] = p(null), [A, j] = p(null), [M, N] = p(/* @__PURE__ */ new Set()), [tt, nt] = p(null), [rt, P] = p(null), [F, I] = p(null), [L, R] = p(null), [z, B] = p(null), [it, at] = p(!1), { profiles: ot } = ve(z?.agentId ?? null), st = ot.find((e) => e.isDefault)?.name ?? "default", [V, H] = p(l), [ct, lt] = p(l), U = d((e, t, n, r = 1e4) => {
78
+ })(ke()), x = (Array.isArray(y) ? y : y?.permissionStrings)?.some?.((e) => e.startsWith("action:")), qe = x ? v(l.ACTION_LIST) : !0, Je = x ? v(l.ACTION_CREATE) : !0, Ye = x ? v(l.ACTION_UPDATE) : !0, Xe = x ? v(l.ACTION_DELETE) : !0, Ze = x ? v(l.ACTION_EXECUTE) : !0, S = Ke, [C, w] = f({ type: "none" }), [Qe, T] = f([]), [E, $e] = f(""), [D, et] = f(null), [O, tt] = f(null), [k, A] = f(null), [j, nt] = f(/* @__PURE__ */ new Set()), [rt, it] = f(null), [at, M] = f(null), [N, P] = f(null), [F, I] = f(null), [L, R] = f(null), [ot, st] = f(!1), { profiles: ct } = ye(L?.agentId ?? null), lt = ct.find((e) => e.isDefault)?.name ?? "default", [z, B] = f(c), [V, ut] = f(c), H = u((e, t, n, r = 1e4) => {
79
79
  let i = Date.now() + Math.random();
80
- E((r) => [...r, {
80
+ T((r) => [...r, {
81
81
  message: e,
82
82
  variant: t,
83
83
  detail: n,
84
84
  id: i
85
- }]), t === "success" && setTimeout(() => E((e) => e.filter((e) => e.id !== i)), r);
86
- }, []), ut = d((e) => {
87
- E((t) => t.filter((t) => t.id !== e));
88
- }, []), { data: dt, loading: ft, error: pt, refetch: W } = a({
85
+ }]), t === "success" && setTimeout(() => T((e) => e.filter((e) => e.id !== i)), r);
86
+ }, []), dt = u((e) => {
87
+ T((t) => t.filter((t) => t.id !== e));
88
+ }, []), { data: ft, loading: pt, error: mt, refetch: U } = ee({
89
89
  variables: {
90
90
  filter: {
91
- ...O && O !== "all" ? { actionType: O } : {},
92
- ...k && k !== "all" ? { triggerType: k } : {},
93
- ...D ? { search: D } : {}
91
+ ...D && D !== "all" ? { actionType: D } : {},
92
+ ...O && O !== "all" ? { triggerType: O } : {},
93
+ ...E ? { search: E } : {}
94
94
  },
95
95
  pagination: { limit: 50 }
96
96
  },
97
- skip: C
98
- }), G = f(() => dt?.actions?.items || [], [dt]), { data: mt } = i({
99
- variables: { id: A },
100
- skip: !A || C
101
- }), K = mt?.action, ht = K?.recentExecutions || [], { data: gt } = ee({
97
+ skip: S
98
+ }), W = d(() => ft?.actions?.items || [], [ft]), { data: ht } = i({
99
+ variables: { id: k },
100
+ skip: !k || S
101
+ }), G = ht?.action, gt = G?.recentExecutions || [], { data: _t } = te({
102
102
  variables: { pagination: { limit: 100 } },
103
103
  fetchPolicy: "cache-and-network",
104
- skip: C
105
- }), _t = f(() => (gt?.vibecontrolsAgents ?? []).map((e) => ({
104
+ skip: S
105
+ }), K = d(() => (_t?.vibecontrolsAgents ?? []).map((e) => ({
106
106
  id: e.id,
107
107
  name: e.name,
108
108
  isActive: e.isActive
109
- })), [gt]), [vt, { loading: yt }] = e({ refetchQueries: ["ListActions"] }), { setDraftTagIds: bt, flushTags: xt } = le("VIBECONTROLS_ACTION"), [St, { loading: Ct }] = te({ refetchQueries: ["ListActions", "GetAction"] }), [q] = t({ refetchQueries: ["ListActions"] }), [J] = r({ refetchQueries: ["GetAction"] }), [Y] = n({ refetchQueries: ["ListActions"] }), wt = d(async (e) => {
109
+ })), [_t]), [vt, { loading: yt }] = e({ refetchQueries: ["ListActions"] }), { setDraftTagIds: bt, flushTags: xt } = ue("VIBECONTROLS_ACTION"), [St, { loading: Ct }] = ne({ refetchQueries: ["ListActions", "GetAction"] }), [q] = t({ refetchQueries: ["ListActions"] }), [J] = r({ refetchQueries: ["GetAction"] }), [Y] = n({ refetchQueries: ["ListActions"] }), wt = u(async (e) => {
110
110
  try {
111
111
  let t = await vt({ variables: { input: {
112
112
  name: e.name,
@@ -129,30 +129,30 @@ function v() {
129
129
  timeoutMs: e.timeoutMs,
130
130
  retryCount: e.retryCount,
131
131
  confirmationRequired: e.confirmationRequired,
132
- ...he(V)
132
+ ...ge(z)
133
133
  } } });
134
- if (t.error && s(t.error)) {
135
- T({ type: "none" }), c(), R("action");
134
+ if (t.error && o(t.error)) {
135
+ w({ type: "none" }), s(), I("action");
136
136
  return;
137
137
  }
138
138
  let n = t.data?.createAction?.id;
139
- T({ type: "none" }), U("Action created", "success"), H(l), n && await xt(n);
139
+ w({ type: "none" }), H("Action created", "success"), B(c), n && await xt(n);
140
140
  } catch (e) {
141
- if (s(e)) {
142
- T({ type: "none" }), c(), R("action");
141
+ if (o(e)) {
142
+ w({ type: "none" }), s(), I("action");
143
143
  return;
144
144
  }
145
- U(e instanceof Error ? e.message : "Failed to create action", "error");
145
+ H(e instanceof Error ? e.message : "Failed to create action", "error");
146
146
  }
147
147
  }, [
148
148
  vt,
149
149
  xt,
150
- U,
151
- V
152
- ]), Tt = d(async (e) => {
153
- if (w.type === "edit") try {
150
+ H,
151
+ z
152
+ ]), Tt = u(async (e) => {
153
+ if (C.type === "edit") try {
154
154
  await St({ variables: {
155
- id: w.actionId,
155
+ id: C.actionId,
156
156
  input: {
157
157
  displayName: e.displayName || null,
158
158
  description: e.description || null,
@@ -173,33 +173,33 @@ function v() {
173
173
  timeoutMs: e.timeoutMs,
174
174
  retryCount: e.retryCount,
175
175
  confirmationRequired: e.confirmationRequired,
176
- ...he(ct)
176
+ ...ge(V)
177
177
  }
178
- } }), T({ type: "none" }), U("Action updated", "success");
178
+ } }), w({ type: "none" }), H("Action updated", "success");
179
179
  } catch (e) {
180
- U(e instanceof Error ? e.message : "Failed to update action", "error");
180
+ H(e instanceof Error ? e.message : "Failed to update action", "error");
181
181
  }
182
182
  }, [
183
183
  St,
184
- w,
185
- U,
186
- ct
187
- ]), Et = d(async () => {
188
- if (w.type === "confirmDelete") try {
189
- await q({ variables: { id: w.id } }), A === w.id && j(null), T({ type: "none" }), U("Action deleted", "success"), ye() && be("success");
184
+ C,
185
+ H,
186
+ V
187
+ ]), Et = u(async () => {
188
+ if (C.type === "confirmDelete") try {
189
+ await q({ variables: { id: C.id } }), k === C.id && A(null), w({ type: "none" }), H("Action deleted", "success"), be() && xe("success");
190
190
  } catch (e) {
191
- U(e instanceof Error ? e.message : "Failed to delete action", "error"), ye() && be("error");
191
+ H(e instanceof Error ? e.message : "Failed to delete action", "error"), be() && xe("error");
192
192
  }
193
193
  }, [
194
- w,
194
+ C,
195
195
  q,
196
- A,
197
- U
196
+ k,
197
+ H
198
198
  ]), Dt = async (e) => {
199
- let t = G.find((t) => t.id === e);
199
+ let t = W.find((t) => t.id === e);
200
200
  if (t) {
201
201
  if (t.confirmationRequired) {
202
- T({
202
+ w({
203
203
  type: "confirmExecute",
204
204
  actionId: e,
205
205
  name: t.displayName || t.name
@@ -208,298 +208,298 @@ function v() {
208
208
  }
209
209
  await X(e);
210
210
  }
211
- }, X = d(async (e, t = !0) => {
212
- nt(e);
211
+ }, X = u(async (e, t = !0) => {
212
+ it(e);
213
213
  try {
214
214
  let n = await J({ variables: { id: e } });
215
- if (n.error && s(n.error)) {
216
- c(), R("command-execution");
215
+ if (n.error && o(n.error)) {
216
+ s(), I("command-execution");
217
217
  return;
218
218
  }
219
219
  let r = n.data?.executeAction;
220
- if (r && Ce(r) && r.agentId) {
221
- t ? B({
220
+ if (r && we(r) && r.agentId) {
221
+ t ? R({
222
222
  actionId: e,
223
223
  agentId: r.agentId
224
- }) : U("Remote execution still blocked after enabling — check the agent’s Security settings.", "error", r.output || r.errorMessage);
224
+ }) : H("Remote execution still blocked after enabling — check the agent’s Security settings.", "error", r.output || r.errorMessage);
225
225
  return;
226
226
  }
227
- r && U(r.status === "SUCCESS" || r.status === "COMPLETED" ? "Action executed successfully" : "Action execution failed", r.status === "SUCCESS" || r.status === "COMPLETED" ? "success" : "error", r.output || r.errorMessage);
227
+ r && H(r.status === "SUCCESS" || r.status === "COMPLETED" ? "Action executed successfully" : "Action execution failed", r.status === "SUCCESS" || r.status === "COMPLETED" ? "success" : "error", r.output || r.errorMessage);
228
228
  } catch (e) {
229
- if (s(e)) {
230
- c(), R("command-execution");
229
+ if (o(e)) {
230
+ s(), I("command-execution");
231
231
  return;
232
232
  }
233
- U(e instanceof Error ? e.message : "Execution failed", "error");
233
+ H(e instanceof Error ? e.message : "Execution failed", "error");
234
234
  } finally {
235
- nt(null);
235
+ it(null);
236
236
  }
237
- }, [J, U]), Ot = d(async () => {
238
- if (w.type !== "confirmExecute") return;
239
- let e = w.actionId;
240
- T({ type: "none" }), await X(e);
241
- }, [w, X]), kt = d(async ({ shell: e, file: t }) => {
242
- if (!z) return;
243
- let { actionId: n, agentId: r } = z;
244
- at(!0);
237
+ }, [J, H]), Ot = u(async () => {
238
+ if (C.type !== "confirmExecute") return;
239
+ let e = C.actionId;
240
+ w({ type: "none" }), await X(e);
241
+ }, [C, X]), kt = u(async ({ shell: e, file: t }) => {
242
+ if (!L) return;
243
+ let { actionId: n, agentId: r } = L;
244
+ st(!0);
245
245
  try {
246
- await Se({
246
+ await Ce({
247
247
  id: r,
248
- profile: st
248
+ profile: lt
249
249
  }, {
250
250
  shell: e,
251
251
  file: t
252
- }), B(null), await X(n, !1);
252
+ }), R(null), await X(n, !1);
253
253
  } catch (e) {
254
- U(e instanceof Error ? e.message : "Failed to enable remote execution", "error");
254
+ H(e instanceof Error ? e.message : "Failed to enable remote execution", "error");
255
255
  } finally {
256
- at(!1);
256
+ st(!1);
257
257
  }
258
258
  }, [
259
- z,
260
- st,
259
+ L,
260
+ lt,
261
261
  X,
262
- U
263
- ]), At = d(async (e) => {
264
- let t = G.find((t) => t.id === e);
262
+ H
263
+ ]), At = u(async (e) => {
264
+ let t = W.find((t) => t.id === e);
265
265
  if (t) try {
266
266
  await Y({ variables: {
267
267
  id: e,
268
268
  name: `${t.name}-copy`
269
- } }), U("Action duplicated", "success");
269
+ } }), H("Action duplicated", "success");
270
270
  } catch (e) {
271
- U(e instanceof Error ? e.message : "Failed to duplicate action", "error");
271
+ H(e instanceof Error ? e.message : "Failed to duplicate action", "error");
272
272
  }
273
273
  }, [
274
- G,
274
+ W,
275
275
  Y,
276
- U
277
- ]), Z = f(() => w.type === "edit" && G.find((e) => e.id === w.actionId) || null, [w, G]);
278
- De(() => {
279
- if (w.type === "edit" && Z) {
276
+ H
277
+ ]), Z = d(() => C.type === "edit" && W.find((e) => e.id === C.actionId) || null, [C, W]);
278
+ Oe(() => {
279
+ if (C.type === "edit" && Z) {
280
280
  let e = Z;
281
- lt({
281
+ ut({
282
282
  vibeId: e.vibeId ?? null,
283
283
  visibility: e.visibility ?? "PRIVATE"
284
284
  });
285
- } else w.type === "create" && H(l);
286
- }, [w.type, Z]), De(() => {
287
- let e = He.get("editAction");
285
+ } else C.type === "create" && B(c);
286
+ }, [C.type, Z]), Oe(() => {
287
+ let e = _.get("editAction");
288
288
  if (!e) return;
289
- T({
289
+ w({
290
290
  type: "edit",
291
291
  actionId: e
292
292
  });
293
- let t = new URLSearchParams(He);
294
- t.delete("editAction"), Ue(t, { replace: !0 });
295
- }, [He, Ue]);
296
- let Q = f(() => G.filter((e) => M.has(e.id)), [G, M]), jt = G.length > 0 && G.every((e) => M.has(e.id)), Mt = G.some((e) => M.has(e.id)) && !jt, Nt = d((e, t) => {
297
- N((n) => {
293
+ let t = new URLSearchParams(_);
294
+ t.delete("editAction"), We(t, { replace: !0 });
295
+ }, [_, We]);
296
+ let Q = d(() => W.filter((e) => j.has(e.id)), [W, j]), jt = W.length > 0 && W.every((e) => j.has(e.id)), Mt = W.some((e) => j.has(e.id)) && !jt, Nt = u((e, t) => {
297
+ nt((n) => {
298
298
  let r = new Set(n);
299
299
  return t ? r.add(e) : r.delete(e), r;
300
300
  });
301
- }, []), Pt = d((e) => {
302
- N((t) => {
301
+ }, []), Pt = u((e) => {
302
+ nt((t) => {
303
303
  let n = new Set(t);
304
- return G.forEach((t) => {
304
+ return W.forEach((t) => {
305
305
  e ? n.add(t.id) : n.delete(t.id);
306
306
  }), n;
307
307
  });
308
- }, [G]), $ = d(() => {
309
- N(/* @__PURE__ */ new Set());
310
- }, []), Ft = d(async () => {
308
+ }, [W]), $ = u(() => {
309
+ nt(/* @__PURE__ */ new Set());
310
+ }, []), Ft = u(async () => {
311
311
  if (Q.length !== 0) {
312
- I("duplicate");
312
+ P("duplicate");
313
313
  try {
314
314
  let e = await Promise.allSettled(Q.map((e) => Y({ variables: {
315
315
  id: e.id,
316
316
  name: `${e.name}-copy`
317
317
  } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
318
- U(`Duplicated ${t} action${t === 1 ? "" : "s"}${n > 0 ? ` • ${n} failed` : ""}`, n > 0 ? "error" : "success"), $(), await W();
318
+ H(`Duplicated ${t} action${t === 1 ? "" : "s"}${n > 0 ? ` • ${n} failed` : ""}`, n > 0 ? "error" : "success"), $(), await U();
319
319
  } catch (e) {
320
- U(e instanceof Error ? e.message : "Failed to duplicate actions", "error");
320
+ H(e instanceof Error ? e.message : "Failed to duplicate actions", "error");
321
321
  } finally {
322
- I(null);
322
+ P(null);
323
323
  }
324
324
  }
325
325
  }, [
326
326
  Q,
327
327
  Y,
328
- U,
328
+ H,
329
329
  $,
330
- W
331
- ]), It = d(async () => {
330
+ U
331
+ ]), It = u(async () => {
332
332
  if (Q.length !== 0) {
333
- I("delete");
333
+ P("delete");
334
334
  try {
335
335
  let e = await Promise.allSettled(Q.map((e) => q({ variables: { id: e.id } }))), t = e.filter((e) => e.status === "fulfilled").length, n = e.length - t;
336
- A && M.has(A) && j(null), U(`Deleted ${t} action${t === 1 ? "" : "s"}${n > 0 ? ` • ${n} failed` : ""}`, n > 0 ? "error" : "success"), $(), P(null), await W();
336
+ k && j.has(k) && A(null), H(`Deleted ${t} action${t === 1 ? "" : "s"}${n > 0 ? ` • ${n} failed` : ""}`, n > 0 ? "error" : "success"), $(), M(null), await U();
337
337
  } catch (e) {
338
- U(e instanceof Error ? e.message : "Failed to delete actions", "error");
338
+ H(e instanceof Error ? e.message : "Failed to delete actions", "error");
339
339
  } finally {
340
- I(null);
340
+ P(null);
341
341
  }
342
342
  }
343
343
  }, [
344
344
  Q,
345
345
  q,
346
- A,
347
- M,
348
- U,
346
+ k,
347
+ j,
348
+ H,
349
349
  $,
350
- W
351
- ]), Lt = d(async () => {
350
+ U
351
+ ]), Lt = u(async () => {
352
352
  if (Q.length === 0) return;
353
- I("execute");
353
+ P("execute");
354
354
  let e = 0, t = 0, n = !1;
355
355
  try {
356
356
  for (let r of Q) try {
357
357
  let i = await J({ variables: { id: r.id } });
358
- if (i.error && s(i.error)) {
359
- c(), R("command-execution"), n = !0;
358
+ if (i.error && o(i.error)) {
359
+ s(), I("command-execution"), n = !0;
360
360
  break;
361
361
  }
362
- let a = i.data?.executeAction;
363
- a?.status === "SUCCESS" || a?.status === "COMPLETED" ? e += 1 : t += 1;
362
+ let ee = i.data?.executeAction;
363
+ ee?.status === "SUCCESS" || ee?.status === "COMPLETED" ? e += 1 : t += 1;
364
364
  } catch (e) {
365
- if (s(e)) {
366
- c(), R("command-execution"), n = !0;
365
+ if (o(e)) {
366
+ s(), I("command-execution"), n = !0;
367
367
  break;
368
368
  }
369
369
  t += 1;
370
370
  }
371
- n || U(`Executed ${e} action${e === 1 ? "" : "s"}${t > 0 ? ` • ${t} failed` : ""}`, t > 0 ? "error" : "success"), $(), P(null), A && await W();
371
+ n || H(`Executed ${e} action${e === 1 ? "" : "s"}${t > 0 ? ` • ${t} failed` : ""}`, t > 0 ? "error" : "success"), $(), M(null), k && await U();
372
372
  } catch (e) {
373
- U(e instanceof Error ? e.message : "Failed to execute actions", "error");
373
+ H(e instanceof Error ? e.message : "Failed to execute actions", "error");
374
374
  } finally {
375
- I(null);
375
+ P(null);
376
376
  }
377
377
  }, [
378
378
  Q,
379
379
  J,
380
- U,
380
+ H,
381
381
  $,
382
- A,
383
- W
382
+ k,
383
+ U
384
384
  ]);
385
- return Ge ? /* @__PURE__ */ h(_, { children: /* @__PURE__ */ h(oe, { message: "Loading Actions..." }) }) : b && b.permissionStrings?.length > 0 && !Ke ? /* @__PURE__ */ h(_, { children: /* @__PURE__ */ h(ze, {}) }) : ft ? /* @__PURE__ */ h(_, { children: /* @__PURE__ */ h(oe, { message: "Loading Actions..." }) }) : pt ? /* @__PURE__ */ h(_, { children: /* @__PURE__ */ h(se, {
386
- message: pt.message,
387
- onRetry: () => W()
388
- }) }) : /* @__PURE__ */ g(_, {
385
+ return Ke ? /* @__PURE__ */ p(h, { children: /* @__PURE__ */ p(se, { message: "Loading Actions..." }) }) : y && y.permissionStrings?.length > 0 && !qe ? /* @__PURE__ */ p(h, { children: /* @__PURE__ */ p(Ve, {}) }) : pt ? /* @__PURE__ */ p(h, { children: /* @__PURE__ */ p(se, { message: "Loading Actions..." }) }) : mt ? /* @__PURE__ */ p(h, { children: /* @__PURE__ */ p(ce, {
386
+ message: mt.message,
387
+ onRetry: () => U()
388
+ }) }) : /* @__PURE__ */ m(h, {
389
389
  className: "px-6 lg:px-8 py-6 space-y-6",
390
390
  children: [
391
- /* @__PURE__ */ h(ae, {
392
- title: x("nav.actions", "Actions"),
391
+ /* @__PURE__ */ p(oe, {
392
+ title: b("nav.actions", "Actions"),
393
393
  description: "Automate tasks — run commands, scripts, or trigger webhooks on your agents",
394
- actions: /* @__PURE__ */ h(Le, {
395
- primary: qe ? {
396
- label: x("actions.createAction", "Create Action"),
397
- onSelect: () => T({ type: "create" }),
398
- icon: /* @__PURE__ */ h(je, { size: 16 })
394
+ actions: /* @__PURE__ */ p(ze, {
395
+ primary: Je ? {
396
+ label: b("actions.createAction", "Create Action"),
397
+ onSelect: () => w({ type: "create" }),
398
+ icon: /* @__PURE__ */ p(Me, { size: 16 })
399
399
  } : void 0,
400
400
  actions: [{
401
- label: x("common.refresh", "Refresh"),
402
- onSelect: () => void W(),
403
- icon: /* @__PURE__ */ h(Me, { size: 16 })
401
+ label: b("common.refresh", "Refresh"),
402
+ onSelect: () => void U(),
403
+ icon: /* @__PURE__ */ p(Ne, { size: 16 })
404
404
  }]
405
405
  })
406
406
  }),
407
- /* @__PURE__ */ h(Re, {
408
- icon: /* @__PURE__ */ h(Ae, { className: "size-4" }),
409
- children: x("actions.purpose", "Actions are reusable, one-click automations you run on your agents — a shell command, a script, or a webhook trigger. Define an action once (for example \"deploy\", \"run tests\" or \"restart service\") and fire it on demand instead of re-typing commands, so routine work becomes a single button.")
407
+ /* @__PURE__ */ p(Be, {
408
+ icon: /* @__PURE__ */ p(je, { className: "size-4" }),
409
+ children: b("actions.purpose", "Actions are reusable, one-click automations you run on your agents — a shell command, a script, or a webhook trigger. Define an action once (for example \"deploy\", \"run tests\" or \"restart service\") and fire it on demand instead of re-typing commands, so routine work becomes a single button.")
410
410
  }),
411
- /* @__PURE__ */ g("div", {
411
+ /* @__PURE__ */ m("div", {
412
412
  "data-tour": "actions-filter-section",
413
413
  className: "flex flex-wrap items-center gap-3",
414
414
  children: [
415
- /* @__PURE__ */ h(de, {
416
- value: D,
417
- onChange: Qe,
418
- placeholder: x("actions.searchPlaceholder", "Search actions..."),
415
+ /* @__PURE__ */ p(fe, {
416
+ value: E,
417
+ onChange: $e,
418
+ placeholder: b("actions.searchPlaceholder", "Search actions..."),
419
419
  className: "w-full sm:w-64"
420
420
  }),
421
- /* @__PURE__ */ h(fe, {
421
+ /* @__PURE__ */ p(pe, {
422
422
  label: "Type",
423
- options: Be,
424
- value: O,
425
- onChange: $e
423
+ options: He,
424
+ value: D,
425
+ onChange: et
426
426
  }),
427
- /* @__PURE__ */ h(fe, {
427
+ /* @__PURE__ */ p(pe, {
428
428
  label: "Trigger",
429
- options: Ve,
430
- value: k,
431
- onChange: et
429
+ options: Ue,
430
+ value: O,
431
+ onChange: tt
432
432
  })
433
433
  ]
434
434
  }),
435
- G.length > 0 && /* @__PURE__ */ h("div", {
435
+ W.length > 0 && /* @__PURE__ */ p("div", {
436
436
  "data-tour": "actions-selection-toolbar",
437
437
  className: "rounded-lg border border-border-default bg-bg-surface p-4",
438
- children: /* @__PURE__ */ g("div", {
438
+ children: /* @__PURE__ */ m("div", {
439
439
  className: "flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between",
440
- children: [/* @__PURE__ */ g("div", {
440
+ children: [/* @__PURE__ */ m("div", {
441
441
  className: "flex flex-wrap items-center gap-3",
442
- children: [/* @__PURE__ */ g("div", {
442
+ children: [/* @__PURE__ */ m("div", {
443
443
  className: "flex items-center gap-2",
444
- children: [/* @__PURE__ */ h(_e, {
444
+ children: [/* @__PURE__ */ p(ve, {
445
445
  checked: jt,
446
446
  indeterminate: Mt,
447
447
  onChange: Pt,
448
448
  ariaLabel: "Select all visible actions"
449
- }), /* @__PURE__ */ h("span", {
449
+ }), /* @__PURE__ */ p("span", {
450
450
  className: "text-sm font-medium text-text-primary",
451
451
  children: "Select all visible"
452
452
  })]
453
- }), M.size > 0 && /* @__PURE__ */ h("button", {
453
+ }), j.size > 0 && /* @__PURE__ */ p("button", {
454
454
  type: "button",
455
455
  onClick: $,
456
456
  className: "text-sm text-text-secondary hover:text-text-primary",
457
457
  children: "Clear selection"
458
458
  })]
459
- }), /* @__PURE__ */ g("div", {
459
+ }), /* @__PURE__ */ m("div", {
460
460
  className: "flex flex-wrap items-center gap-2",
461
461
  children: [
462
- /* @__PURE__ */ g("span", {
462
+ /* @__PURE__ */ m("span", {
463
463
  className: "rounded-full bg-bg-sunken px-3 py-1 text-sm font-medium text-text-secondary",
464
- children: [M.size, " selected"]
464
+ children: [j.size, " selected"]
465
465
  }),
466
- /* @__PURE__ */ h("button", {
466
+ Ze && /* @__PURE__ */ p("button", {
467
467
  type: "button",
468
- onClick: () => P("execute"),
469
- disabled: Q.length === 0 || F !== null,
468
+ onClick: () => M("execute"),
469
+ disabled: Q.length === 0 || N !== null,
470
470
  className: "rounded-md border border-status-success-border px-3 py-2 text-sm font-medium text-status-success-text hover:bg-status-success-bg disabled:cursor-not-allowed disabled:opacity-50",
471
- children: /* @__PURE__ */ g("span", {
471
+ children: /* @__PURE__ */ m("span", {
472
472
  className: "inline-flex items-center gap-2",
473
473
  children: [
474
- /* @__PURE__ */ h(Ae, { size: 14 }),
474
+ /* @__PURE__ */ p(je, { size: 14 }),
475
475
  "Execute Selected",
476
476
  Q.length > 0 ? ` (${Q.length})` : ""
477
477
  ]
478
478
  })
479
479
  }),
480
- /* @__PURE__ */ h("button", {
480
+ Je && /* @__PURE__ */ p("button", {
481
481
  type: "button",
482
482
  onClick: Ft,
483
- disabled: Q.length === 0 || F !== null,
483
+ disabled: Q.length === 0 || N !== null,
484
484
  className: "rounded-md border border-border-default px-3 py-2 text-sm font-medium text-text-primary hover:bg-bg-sunken disabled:cursor-not-allowed disabled:opacity-50",
485
- children: /* @__PURE__ */ g("span", {
485
+ children: /* @__PURE__ */ m("span", {
486
486
  className: "inline-flex items-center gap-2",
487
487
  children: [
488
- /* @__PURE__ */ h(ke, { size: 14 }),
488
+ /* @__PURE__ */ p(Ae, { size: 14 }),
489
489
  "Duplicate Selected",
490
490
  Q.length > 0 ? ` (${Q.length})` : ""
491
491
  ]
492
492
  })
493
493
  }),
494
- /* @__PURE__ */ h("button", {
494
+ Xe && /* @__PURE__ */ p("button", {
495
495
  type: "button",
496
- onClick: () => P("delete"),
497
- disabled: Q.length === 0 || F !== null,
496
+ onClick: () => M("delete"),
497
+ disabled: Q.length === 0 || N !== null,
498
498
  className: "rounded-md border border-status-error-border px-3 py-2 text-sm font-medium text-status-error-text hover:bg-status-error-bg disabled:cursor-not-allowed disabled:opacity-50",
499
- children: /* @__PURE__ */ g("span", {
499
+ children: /* @__PURE__ */ m("span", {
500
500
  className: "inline-flex items-center gap-2",
501
501
  children: [
502
- /* @__PURE__ */ h(Ne, { size: 14 }),
502
+ /* @__PURE__ */ p(Pe, { size: 14 }),
503
503
  "Delete Selected",
504
504
  Q.length > 0 ? ` (${Q.length})` : ""
505
505
  ]
@@ -509,115 +509,115 @@ function v() {
509
509
  })]
510
510
  })
511
511
  }),
512
- /* @__PURE__ */ h(m, {
512
+ /* @__PURE__ */ p(Re, {
513
513
  mode: "wait",
514
- children: G.length === 0 && !ft && /* @__PURE__ */ h(ue, {
514
+ children: W.length === 0 && !pt && /* @__PURE__ */ p(de, {
515
515
  illustration: "empty-data",
516
516
  title: "No actions yet",
517
517
  description: "Create your first action to automate commands, scripts, and webhooks",
518
- action: /* @__PURE__ */ g("div", {
518
+ action: /* @__PURE__ */ m("div", {
519
519
  className: "flex items-center gap-2",
520
- children: [qe && /* @__PURE__ */ h("button", {
520
+ children: [Je && /* @__PURE__ */ p("button", {
521
521
  type: "button",
522
- onClick: () => T({ type: "create" }),
522
+ onClick: () => w({ type: "create" }),
523
523
  className: "px-4 py-2 rounded-lg bg-action-primary-bg text-action-primary-text hover:opacity-90 text-sm font-medium",
524
524
  children: "Create Action"
525
- }), /* @__PURE__ */ h(ge, { prompt: "What is an Action in VibeControls and how do I create one?" })]
525
+ }), /* @__PURE__ */ p(_e, { prompt: "What is an Action in VibeControls and how do I create one?" })]
526
526
  })
527
527
  })
528
528
  }),
529
- G.length > 0 && /* @__PURE__ */ h("div", {
529
+ W.length > 0 && /* @__PURE__ */ p("div", {
530
530
  "data-tour": "actions-list-container",
531
531
  className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4",
532
- children: G.map((e) => /* @__PURE__ */ h("div", {
532
+ children: W.map((e) => /* @__PURE__ */ p("div", {
533
533
  role: "button",
534
534
  tabIndex: 0,
535
- onClick: () => j(e.id),
535
+ onClick: () => A(e.id),
536
536
  onKeyDown: (t) => {
537
- (t.key === "Enter" || t.key === " ") && (t.preventDefault(), j(e.id));
537
+ (t.key === "Enter" || t.key === " ") && (t.preventDefault(), A(e.id));
538
538
  },
539
539
  "aria-label": `Select action ${e.displayName || e.name}`,
540
- children: /* @__PURE__ */ h(xe, {
540
+ children: /* @__PURE__ */ p(Se, {
541
541
  action: e,
542
542
  onExecute: Dt,
543
- onEdit: (e) => T({
543
+ onEdit: (e) => w({
544
544
  type: "edit",
545
545
  actionId: e
546
546
  }),
547
547
  onDuplicate: At,
548
- onDelete: (t) => T({
548
+ onDelete: (t) => w({
549
549
  type: "confirmDelete",
550
550
  id: t,
551
551
  name: e.displayName || e.name
552
552
  }),
553
- onSchedule: (e) => v(`/scheduler?actionId=${encodeURIComponent(e)}`),
554
- onAddToCalendar: (e) => v(`/vibecontrols/calendar?actionId=${encodeURIComponent(e)}`),
555
- canUpdate: Je,
556
- canDelete: Ye,
557
- canExecute: Xe,
558
- isExecuting: tt === e.id,
559
- selected: M.has(e.id),
553
+ onSchedule: (e) => g(`/scheduler?actionId=${encodeURIComponent(e)}`),
554
+ onAddToCalendar: (e) => g(`/vibecontrols/calendar?actionId=${encodeURIComponent(e)}`),
555
+ canUpdate: Ye,
556
+ canDelete: Xe,
557
+ canExecute: Ze,
558
+ isExecuting: rt === e.id,
559
+ selected: j.has(e.id),
560
560
  onToggleSelect: (t) => Nt(e.id, t)
561
561
  })
562
562
  }, e.id))
563
563
  }),
564
- /* @__PURE__ */ h(m, { children: A && K && /* @__PURE__ */ g("div", {
564
+ /* @__PURE__ */ p(Re, { children: k && G && /* @__PURE__ */ m("div", {
565
565
  className: "space-y-3",
566
- children: [We && /* @__PURE__ */ h(Ee, {
567
- actionId: A,
568
- workspaceId: We,
569
- actionName: K.displayName || K.name,
570
- onClose: () => j(null)
571
- }), /* @__PURE__ */ h("div", {
566
+ children: [Ge && /* @__PURE__ */ p(De, {
567
+ actionId: k,
568
+ workspaceId: Ge,
569
+ actionName: G.displayName || G.name,
570
+ onClose: () => A(null)
571
+ }), /* @__PURE__ */ p("div", {
572
572
  "data-tour": "actions-execution-history",
573
- children: /* @__PURE__ */ h(Te, {
574
- executions: ht,
575
- actionName: K.displayName || K.name,
576
- onClose: () => j(null)
573
+ children: /* @__PURE__ */ p(Ee, {
574
+ executions: gt,
575
+ actionName: G.displayName || G.name,
576
+ onClose: () => A(null)
577
577
  })
578
578
  })]
579
579
  }) }),
580
- /* @__PURE__ */ h(m, { children: Ze.length > 0 && /* @__PURE__ */ h("div", {
580
+ /* @__PURE__ */ p(Re, { children: Qe.length > 0 && /* @__PURE__ */ p("div", {
581
581
  className: "fixed bottom-4 left-4 right-4 sm:left-auto sm:bottom-6 sm:right-6 z-50 flex flex-col gap-2 max-w-[calc(100vw-2rem)] sm:max-w-md",
582
- children: Ze.slice(-3).map((e) => /* @__PURE__ */ g("div", {
582
+ children: Qe.slice(-3).map((e) => /* @__PURE__ */ m("div", {
583
583
  role: "button",
584
584
  tabIndex: 0,
585
585
  onKeyDown: (t) => {
586
- (t.key === "Enter" || t.key === " ") && (t.preventDefault(), ut(e.id));
586
+ (t.key === "Enter" || t.key === " ") && (t.preventDefault(), dt(e.id));
587
587
  },
588
588
  className: `p-4 rounded-xl shadow-lg border cursor-pointer ${e.variant === "success" ? "bg-status-success-bg-subtle border-status-success-border text-status-success-text" : "bg-status-error-bg-subtle border-status-error-border text-status-error-text"}`,
589
- onClick: () => ut(e.id),
590
- children: [/* @__PURE__ */ h("div", {
589
+ onClick: () => dt(e.id),
590
+ children: [/* @__PURE__ */ p("div", {
591
591
  className: "font-medium text-sm",
592
592
  children: e.message
593
- }), e.detail && /* @__PURE__ */ h("pre", {
593
+ }), e.detail && /* @__PURE__ */ p("pre", {
594
594
  className: "text-xs font-mono opacity-80 mt-1 max-h-20 overflow-y-auto whitespace-pre-wrap",
595
595
  children: e.detail
596
596
  })]
597
597
  }, e.id))
598
598
  }) }),
599
- w.type === "create" && /* @__PURE__ */ h(we, {
599
+ C.type === "create" && /* @__PURE__ */ p(Te, {
600
600
  title: "Create Action",
601
- agents: _t,
601
+ agents: K,
602
602
  onSubmit: wt,
603
- onCancel: () => T({ type: "none" }),
603
+ onCancel: () => w({ type: "none" }),
604
604
  isLoading: yt,
605
- extraSection: /* @__PURE__ */ g("div", {
605
+ extraSection: /* @__PURE__ */ m("div", {
606
606
  className: "space-y-4",
607
- children: [/* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("h3", {
607
+ children: [/* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("h3", {
608
608
  className: "text-sm font-medium text-text-secondary mb-2",
609
- children: x("actions.tags", "Tags")
610
- }), /* @__PURE__ */ h(ce, {
609
+ children: b("actions.tags", "Tags")
610
+ }), /* @__PURE__ */ p(le, {
611
611
  entityType: "VIBECONTROLS_ACTION",
612
612
  onDraftChange: bt
613
- })] }), /* @__PURE__ */ h(me, {
614
- value: V,
615
- onChange: H,
613
+ })] }), /* @__PURE__ */ p(he, {
614
+ value: z,
615
+ onChange: B,
616
616
  disabled: yt
617
617
  })]
618
618
  })
619
619
  }),
620
- w.type === "edit" && Z && /* @__PURE__ */ h(we, {
620
+ C.type === "edit" && Z && /* @__PURE__ */ p(Te, {
621
621
  title: "Edit Action",
622
622
  initialData: {
623
623
  name: Z.name,
@@ -641,83 +641,83 @@ function v() {
641
641
  retryCount: Z.retryCount || 0,
642
642
  confirmationRequired: Z.confirmationRequired ?? !1
643
643
  },
644
- agents: _t,
644
+ agents: K,
645
645
  onSubmit: Tt,
646
- onCancel: () => T({ type: "none" }),
646
+ onCancel: () => w({ type: "none" }),
647
647
  isLoading: Ct,
648
- extraSection: /* @__PURE__ */ g("div", {
648
+ extraSection: /* @__PURE__ */ m("div", {
649
649
  className: "space-y-4",
650
- children: [/* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("h3", {
650
+ children: [/* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("h3", {
651
651
  className: "text-sm font-medium text-text-secondary mb-2",
652
- children: x("actions.tags", "Tags")
653
- }), /* @__PURE__ */ h(ce, {
652
+ children: b("actions.tags", "Tags")
653
+ }), /* @__PURE__ */ p(le, {
654
654
  entityType: "VIBECONTROLS_ACTION",
655
655
  entityId: Z.id
656
- })] }), /* @__PURE__ */ h(me, {
657
- value: ct,
658
- onChange: lt,
656
+ })] }), /* @__PURE__ */ p(he, {
657
+ value: V,
658
+ onChange: ut,
659
659
  disabled: Ct
660
660
  })]
661
661
  })
662
662
  }),
663
- w.type === "confirmDelete" && /* @__PURE__ */ h(o, {
663
+ C.type === "confirmDelete" && /* @__PURE__ */ p(a, {
664
664
  isOpen: !0,
665
665
  title: "Delete Action",
666
- message: `Are you sure you want to delete "${w.name}"? This cannot be undone.`,
666
+ message: `Are you sure you want to delete "${C.name}"? This cannot be undone.`,
667
667
  confirmLabel: "Delete",
668
668
  variant: "danger",
669
669
  onConfirm: Et,
670
- onClose: () => T({ type: "none" })
670
+ onClose: () => w({ type: "none" })
671
671
  }),
672
- w.type === "confirmExecute" && /* @__PURE__ */ h(o, {
672
+ C.type === "confirmExecute" && /* @__PURE__ */ p(a, {
673
673
  isOpen: !0,
674
- title: `Execute: ${w.name}`,
675
- message: `Are you sure you want to execute "${w.name}"?`,
674
+ title: `Execute: ${C.name}`,
675
+ message: `Are you sure you want to execute "${C.name}"?`,
676
676
  confirmLabel: "Execute",
677
677
  variant: "warning",
678
678
  onConfirm: Ot,
679
- onClose: () => T({ type: "none" })
679
+ onClose: () => w({ type: "none" })
680
680
  }),
681
- /* @__PURE__ */ h(o, {
682
- isOpen: rt === "delete",
681
+ /* @__PURE__ */ p(a, {
682
+ isOpen: at === "delete",
683
683
  title: "Delete Selected Actions",
684
684
  message: `Are you sure you want to delete ${Q.length} selected action${Q.length === 1 ? "" : "s"}? This cannot be undone.`,
685
685
  confirmLabel: "Delete Actions",
686
686
  variant: "danger",
687
687
  onConfirm: It,
688
- onClose: () => P(null),
689
- isLoading: F === "delete"
688
+ onClose: () => M(null),
689
+ isLoading: N === "delete"
690
690
  }),
691
- /* @__PURE__ */ h(o, {
692
- isOpen: rt === "execute",
691
+ /* @__PURE__ */ p(a, {
692
+ isOpen: at === "execute",
693
693
  title: "Execute Selected Actions",
694
694
  message: `Execute ${Q.length} selected action${Q.length === 1 ? "" : "s"}? This may trigger commands, scripts, or webhooks immediately.`,
695
695
  confirmLabel: "Execute Actions",
696
696
  variant: "warning",
697
697
  onConfirm: Lt,
698
- onClose: () => P(null),
699
- isLoading: F === "execute"
698
+ onClose: () => M(null),
699
+ isLoading: N === "execute"
700
700
  }),
701
- /* @__PURE__ */ h(ne, {
702
- isOpen: L !== null,
703
- onClose: () => R(null),
701
+ /* @__PURE__ */ p(re, {
702
+ isOpen: F !== null,
703
+ onClose: () => I(null),
704
704
  onConfirm: () => {
705
- c(), R(null), v("/billing/plans");
705
+ s(), I(null), g("/billing/plans");
706
706
  },
707
- title: L ? re(L).title : void 0,
708
- message: L ? re(L).message : ""
707
+ title: F ? ie(F).title : void 0,
708
+ message: F ? ie(F).message : ""
709
709
  }),
710
- /* @__PURE__ */ h(pe, {
711
- isOpen: z !== null,
712
- agentName: z ? _t.find((e) => e.id === z.agentId)?.name : void 0,
713
- isLoading: it,
714
- onClose: () => B(null),
710
+ /* @__PURE__ */ p(me, {
711
+ isOpen: L !== null,
712
+ agentName: L ? K.find((e) => e.id === L.agentId)?.name : void 0,
713
+ isLoading: ot,
714
+ onClose: () => R(null),
715
715
  onConfirm: kt
716
716
  })
717
717
  ]
718
718
  });
719
719
  }
720
720
  //#endregion
721
- export { v as ActionsPage };
721
+ export { g as ActionsPage };
722
722
 
723
723
  //# sourceMappingURL=ActionsPage.js.map