@burdenoff/microfe-vibecontrols 2026.601.4 → 2026.601.6

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.
@@ -342,11 +342,11 @@ function Ft() {
342
342
  Hn,
343
343
  P
344
344
  ]);
345
- let [U, Wn] = m([]), [Gn, Kn] = m([]), [qn, Jn] = m(!0), [W, G] = m(null), [Yn, K] = m(null), [Xn, Zn] = m(!1), [Qn, $n] = m(!1), [er, tr] = m(!1), [nr, rr] = m(!1), [ir, ar] = m("plugin"), or = p(null), [q, sr] = m("installed"), [J, cr] = m(""), [Y, lr] = m([]), [ur, dr] = m(!1), [fr, pr] = m(null), [mr, hr] = m(null), [gr] = e(), [_r] = ee(), [vr] = o(), [yr] = c(), X = d(async () => {
345
+ let [U, Wn] = m([]), [Gn, Kn] = m([]), [qn, Jn] = m(!0), [W, G] = m(null), [Yn, K] = m(null), [Xn, Zn] = m(!1), [Qn, $n] = m(!1), [er, tr] = m(!1), [nr, rr] = m(!1), [ir, ar] = m(!1), [or, sr] = m("plugin"), cr = p(null), [q, lr] = m("installed"), [J, ur] = m(""), [Y, dr] = m([]), [fr, pr] = m(!1), [mr, hr] = m(null), [gr, _r] = m(null), [vr] = e(), [yr] = ee(), [br] = o(), [xr] = c(), X = d(async () => {
346
346
  if (F?.id) {
347
347
  Jn(!0), K(null);
348
348
  try {
349
- let { data: e } = await gr({ variables: {
349
+ let { data: e } = await vr({ variables: {
350
350
  agentId: F.id,
351
351
  profile: z
352
352
  } }), t = e?.agentPlugins;
@@ -386,23 +386,23 @@ function Ft() {
386
386
  }
387
387
  }, [
388
388
  F?.id,
389
- gr,
389
+ vr,
390
390
  z
391
391
  ]);
392
392
  f(() => {
393
393
  if (!F?.id) return;
394
394
  let e = `${F.id}:${z}`;
395
- or.current !== e && (or.current = e, X());
395
+ cr.current !== e && (cr.current = e, X());
396
396
  }, [
397
397
  F?.id,
398
398
  z,
399
399
  X
400
400
  ]);
401
- let br = d(async (e) => {
401
+ let Sr = d(async (e) => {
402
402
  if (F?.id) {
403
403
  G(e);
404
404
  try {
405
- let { data: t } = await _r({ variables: {
405
+ let { data: t } = await yr({ variables: {
406
406
  agentId: F.id,
407
407
  packageName: e
408
408
  } });
@@ -410,7 +410,7 @@ function Ft() {
410
410
  else throw Error(t?.installAgentPlugin?.error || C("agentDetails.installFailed", "Install failed"));
411
411
  } catch (e) {
412
412
  if (ue(e)) {
413
- de(), ar("plugin"), rr(!0);
413
+ de(), sr("plugin"), ar(!0);
414
414
  return;
415
415
  }
416
416
  K(e instanceof Error ? e.message : C("agentDetails.pluginInstallFailed", "Failed to install plugin")), setTimeout(() => K(null), 5e3);
@@ -420,14 +420,14 @@ function Ft() {
420
420
  }
421
421
  }, [
422
422
  F?.id,
423
- _r,
423
+ yr,
424
424
  X,
425
425
  C
426
- ]), xr = d(async (e) => {
426
+ ]), Cr = d(async (e) => {
427
427
  if (F?.id && window.confirm(C("agentDetails.removePluginConfirm", "Remove plugin {{packageName}}?", { packageName: e }))) {
428
428
  G(e);
429
429
  try {
430
- let { data: t } = await vr({ variables: {
430
+ let { data: t } = await br({ variables: {
431
431
  agentId: F.id,
432
432
  packageName: e
433
433
  } });
@@ -441,17 +441,17 @@ function Ft() {
441
441
  }
442
442
  }, [
443
443
  F?.id,
444
- vr,
444
+ br,
445
445
  X,
446
446
  C
447
- ]), Sr = d(async (e) => {
447
+ ]), wr = d(async (e) => {
448
448
  if (!F?.id) return;
449
449
  let t = window.prompt(C("agentDetails.updatePluginPrompt", "Update {{packageName}} to which version? Leave blank for latest.", { packageName: e }));
450
450
  if (t === null) return;
451
451
  let n = t.trim() || void 0;
452
452
  G(e);
453
453
  try {
454
- let { data: t } = await yr({ variables: {
454
+ let { data: t } = await xr({ variables: {
455
455
  agentId: F.id,
456
456
  packageName: e,
457
457
  version: n ?? null
@@ -465,11 +465,11 @@ function Ft() {
465
465
  }
466
466
  }, [
467
467
  F?.id,
468
- yr,
468
+ xr,
469
469
  X,
470
470
  C
471
- ]), Z = F?.sessions || [], Q = F?.vibes || [], Cr = d(async () => {
472
- dr(!0), pr(null);
471
+ ]), Z = F?.sessions || [], Q = F?.vibes || [], Tr = d(async () => {
472
+ pr(!0), hr(null);
473
473
  try {
474
474
  let e = await (await fetch(typeof window < "u" && window.__BURDENOFF_GLOBAL_GATEWAY__ || "/global/graphql", {
475
475
  method: "POST",
@@ -478,29 +478,29 @@ function Ft() {
478
478
  body: JSON.stringify({ query: "query MyStorePlugins {\n myEntitlements {\n id\n productId\n licenseKey\n product {\n id\n name\n slug\n icon\n description\n manifest\n }\n }\n }" })
479
479
  })).json();
480
480
  if (e.errors?.length) throw Error(e.errors[0]?.message ?? "Failed to load store plugins");
481
- lr((e.data?.myEntitlements ?? []).filter((e) => {
481
+ dr((e.data?.myEntitlements ?? []).filter((e) => {
482
482
  let t = e.product?.manifest;
483
483
  if (!t) return !1;
484
484
  let n = t.itemType?.toLowerCase();
485
485
  return n === "vibemodule" || n === "plugin";
486
486
  }));
487
487
  } catch (e) {
488
- pr(e instanceof Error ? e.message : "Failed to load store plugins");
488
+ hr(e instanceof Error ? e.message : "Failed to load store plugins");
489
489
  } finally {
490
- dr(!1);
490
+ pr(!1);
491
491
  }
492
492
  }, []);
493
493
  f(() => {
494
- q === "store" && Y.length === 0 && !ur && Cr();
494
+ q === "store" && Y.length === 0 && !fr && Tr();
495
495
  }, [
496
496
  q,
497
497
  Y.length,
498
- ur,
499
- Cr
498
+ fr,
499
+ Tr
500
500
  ]);
501
- let wr = d(async (e, t) => {
501
+ let Er = d(async (e, t) => {
502
502
  if (F?.id) {
503
- hr(e);
503
+ _r(e);
504
504
  try {
505
505
  let n = await (await fetch(typeof window < "u" && window.__BURDENOFF_WSPACE_GATEWAY__ || "/workspaces/graphql", {
506
506
  method: "POST",
@@ -518,28 +518,28 @@ function Ft() {
518
518
  if (n.errors?.length) throw Error(n.errors[0]?.message ?? "Install failed");
519
519
  let r = n.data?.installStorePluginOnAgent;
520
520
  if (!r?.success) throw Error(r?.error ?? "Install failed");
521
- await X(), sr("installed");
521
+ await X(), lr("installed");
522
522
  } catch (e) {
523
- pr(e instanceof Error ? e.message : "Install failed");
523
+ hr(e instanceof Error ? e.message : "Install failed");
524
524
  } finally {
525
- hr(null);
525
+ _r(null);
526
526
  }
527
527
  }
528
528
  }, [F?.id, X]);
529
529
  f(() => {
530
530
  if (typeof window > "u" || !F?.id) return;
531
531
  let e = new URLSearchParams(window.location.search), t = e.get("install"), n = e.get("licenseKey");
532
- if (t && t !== mr) {
533
- sr("store"), wr(t, n);
532
+ if (t && t !== gr) {
533
+ lr("store"), Er(t, n);
534
534
  let e = new URL(window.location.href);
535
535
  e.searchParams.delete("install"), e.searchParams.delete("licenseKey"), window.history.replaceState({}, "", e.toString());
536
536
  }
537
537
  }, [
538
538
  F?.id,
539
- wr,
540
- mr
539
+ Er,
540
+ gr
541
541
  ]);
542
- let Tr = d(async () => {
542
+ let Dr = d(async () => {
543
543
  if (!F?.id) return null;
544
544
  if (O) return O;
545
545
  xn(!0), Cn(null);
@@ -578,7 +578,7 @@ function Ft() {
578
578
  });
579
579
  let $ = () => {
580
580
  S("/agents");
581
- }, Er = async (e) => {
581
+ }, Or = async (e) => {
582
582
  if (!(!F?.id || w)) {
583
583
  Wt(e), Kt(null);
584
584
  try {
@@ -592,11 +592,11 @@ function Ft() {
592
592
  Wt(null);
593
593
  }
594
594
  }
595
- }, Dr = () => void Er("start"), Or = () => void Er("stop"), kr = async () => {
595
+ }, kr = () => void Or("start"), Ar = () => void Or("stop"), jr = async () => {
596
596
  await Promise.all([P(), I.refetch()]).catch(() => {}), S("/agents");
597
- }, Ar = () => {
597
+ }, Mr = () => {
598
598
  T(null), Yt(!0);
599
- }, jr = async () => {
599
+ }, Nr = async () => {
600
600
  if (!F?.id) return;
601
601
  let e = an.trim();
602
602
  if (!e || e === F.name) {
@@ -616,9 +616,9 @@ function Ft() {
616
616
  } finally {
617
617
  sn(!1);
618
618
  }
619
- }, Mr = () => {
619
+ }, Pr = () => {
620
620
  rn(!1), on(""), ln(null);
621
- }, Nr = async () => {
621
+ }, Fr = async () => {
622
622
  if (!F?.id) return;
623
623
  let e = dn.current?.value?.trim(), t = fn.current?.value?.trim(), n = pn.current?.value?.trim(), r = mn.current?.value?.trim();
624
624
  if (!e) {
@@ -648,36 +648,37 @@ function Ft() {
648
648
  } finally {
649
649
  Qt(!1);
650
650
  }
651
- }, Pr = async () => {
652
- let e = await Tr();
651
+ }, Ir = async () => {
652
+ let e = await Dr();
653
653
  if (e) try {
654
654
  await xe(e), be() && Se("API key copied"), vn(!0), setTimeout(() => vn(!1), 2e3);
655
655
  } catch {
656
656
  console.error("Failed to copy API key");
657
657
  }
658
- }, Fr = async () => {
659
- hn || await Tr(), gn((e) => !e);
660
- }, Ir = () => {
661
- F?.id && ($n(!1), Zn(!0));
662
658
  }, Lr = async () => {
659
+ hn || await Dr(), gn((e) => !e);
660
+ }, Rr = () => {
661
+ F?.id && ($n(!1), tr(!1), Zn(!0));
662
+ }, zr = async () => {
663
663
  if (F?.id) {
664
- tr(!0);
664
+ rr(!0);
665
665
  try {
666
666
  await Bt({ variables: {
667
667
  id: F.id,
668
- uninstallFromTarget: Qn
668
+ uninstallFromTarget: Qn,
669
+ deleteTarget: er
669
670
  } }), Zn(!1), $();
670
671
  } catch (e) {
671
672
  console.error("Failed to remove agent:", e);
672
673
  } finally {
673
- tr(!1);
674
+ rr(!1);
674
675
  }
675
676
  }
676
- }, Rr = (e) => {
677
+ }, Br = (e) => {
677
678
  S(`/sessions/${e}`);
678
- }, zr = () => {
679
+ }, Vr = () => {
679
680
  j(null), A(!0);
680
- }, Br = async () => {
681
+ }, Hr = async () => {
681
682
  let e = N.current?.value?.trim(), t = Dn.current?.value, n = On.current?.value?.trim() || void 0, r = kn.current?.value?.trim() || void 0;
682
683
  if (!e) {
683
684
  j(C("vibeDetails.sessionNameRequired", "Session name is required"));
@@ -703,16 +704,16 @@ function Ft() {
703
704
  } } }), A(!1), N.current && (N.current.value = ""), Dn.current && (Dn.current.selectedIndex = 0), On.current && (On.current.value = ""), kn.current && (kn.current.value = ""), E(C("sessions.createdSuccess", "Session created successfully")), setTimeout(() => E(null), 3e3);
704
705
  } catch (e) {
705
706
  if (ue(e)) {
706
- A(!1), de(), ar("session"), rr(!0);
707
+ A(!1), de(), sr("session"), ar(!0);
707
708
  return;
708
709
  }
709
710
  j(e instanceof Error ? e.message : C("sessions.failedCreate", "Failed to create session"));
710
711
  } finally {
711
712
  En(!1);
712
713
  }
713
- }, Vr = (e) => {
714
+ }, Ur = (e) => {
714
715
  S(`/vibes/${e}`);
715
- }, Hr = (e) => {
716
+ }, Wr = (e) => {
716
717
  if (!e) return C("health.never", "Never");
717
718
  let t = Date.now() - new Date(e).getTime();
718
719
  return t < 6e4 ? C("health.justNow", "Just now") : t < 36e5 ? C("agentDetails.minutesAgo", "{{count}}m ago", { count: Math.floor(t / 6e4) }) : t < 864e5 ? C("agentDetails.hoursAgo", "{{count}}h ago", { count: Math.floor(t / 36e5) }) : new Date(e).toLocaleDateString();
@@ -758,7 +759,7 @@ function Ft() {
758
759
  })
759
760
  })]
760
761
  });
761
- let Ur = [
762
+ let Gr = [
762
763
  {
763
764
  id: "overview",
764
765
  label: C("nav.overview", "Overview"),
@@ -822,7 +823,7 @@ function Ft() {
822
823
  label: C("agentDetails.maintenance.tab", "Maintenance"),
823
824
  icon: Ct
824
825
  }
825
- ], Wr = Z.filter((e) => e.status === "RUNNING").length;
826
+ ], Kr = Z.filter((e) => e.status === "RUNNING").length;
826
827
  return F?.tunnelUrl, /* @__PURE__ */ x(jt, {
827
828
  className: "space-y-6 p-4 sm:p-6 bg-bg-surface min-h-screen",
828
829
  children: [
@@ -871,14 +872,14 @@ function Ft() {
871
872
  }),
872
873
  In ? /* @__PURE__ */ x("button", {
873
874
  type: "button",
874
- onClick: Dr,
875
+ onClick: kr,
875
876
  disabled: w !== null,
876
877
  "aria-busy": w === "start",
877
878
  className: "flex items-center gap-2 px-3 py-2 bg-status-success-bg text-status-success-text rounded-md hover:opacity-80 transition-colors disabled:opacity-60 disabled:cursor-not-allowed",
878
879
  children: [w === "start" ? /* @__PURE__ */ b(g, { className: "size-4 animate-spin" }) : /* @__PURE__ */ b(ct, { className: "size-4" }), w === "start" ? C("agentDetails.starting", "Starting…") : C("agentDetails.start", "Start")]
879
880
  }) : /* @__PURE__ */ x("button", {
880
881
  type: "button",
881
- onClick: Or,
882
+ onClick: Ar,
882
883
  disabled: w !== null,
883
884
  "aria-busy": w === "stop",
884
885
  className: "flex items-center gap-2 px-3 py-2 bg-bg-sunken text-text-primary rounded-md hover:bg-bg-sunken/80 transition-colors disabled:opacity-60 disabled:cursor-not-allowed",
@@ -886,7 +887,7 @@ function Ft() {
886
887
  }),
887
888
  R === "DEGRADED" && /* @__PURE__ */ x("button", {
888
889
  type: "button",
889
- onClick: Dr,
890
+ onClick: kr,
890
891
  disabled: w !== null,
891
892
  "aria-busy": w === "start",
892
893
  className: "flex items-center gap-2 px-3 py-2 bg-status-warning-bg text-status-warning-text rounded-md hover:opacity-80 transition-colors disabled:opacity-60 disabled:cursor-not-allowed",
@@ -900,13 +901,13 @@ function Ft() {
900
901
  }),
901
902
  /* @__PURE__ */ x("button", {
902
903
  type: "button",
903
- onClick: Ar,
904
+ onClick: Mr,
904
905
  className: "flex items-center gap-2 px-3 py-2 bg-bg-sunken text-text-primary rounded-md hover:bg-bg-sunken/80 transition-colors",
905
906
  children: [/* @__PURE__ */ b(ht, { className: "size-4" }), C("agentDetails.configure", "Configure")]
906
907
  }),
907
908
  /* @__PURE__ */ x("button", {
908
909
  type: "button",
909
- onClick: Ir,
910
+ onClick: Rr,
910
911
  className: "flex items-center gap-2 px-3 py-2 bg-status-error-bg text-status-error-text rounded-md hover:opacity-80 transition-colors",
911
912
  children: [/* @__PURE__ */ b(bt, { className: "size-4" }), C("sessions.remove", "Remove")]
912
913
  })
@@ -922,7 +923,7 @@ function Ft() {
922
923
  value: an,
923
924
  onChange: (e) => on(e.target.value),
924
925
  onKeyDown: (e) => {
925
- e.key === "Enter" && !D ? jr() : e.key === "Escape" && Mr();
926
+ e.key === "Enter" && !D ? Nr() : e.key === "Escape" && Pr();
926
927
  },
927
928
  disabled: D,
928
929
  maxLength: 120,
@@ -933,7 +934,7 @@ function Ft() {
933
934
  }),
934
935
  /* @__PURE__ */ x("button", {
935
936
  type: "button",
936
- onClick: () => void jr(),
937
+ onClick: () => void Nr(),
937
938
  disabled: !an.trim() || an.trim() === F.name || D,
938
939
  className: "inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium bg-action-primary-bg text-action-primary-text rounded-md hover:bg-action-primary-bg-hover transition-colors disabled:opacity-60 disabled:cursor-not-allowed",
939
940
  "data-testid": "agent-details-rename-save",
@@ -941,7 +942,7 @@ function Ft() {
941
942
  }),
942
943
  /* @__PURE__ */ b("button", {
943
944
  type: "button",
944
- onClick: Mr,
945
+ onClick: Pr,
945
946
  disabled: D,
946
947
  className: "inline-flex items-center gap-1.5 px-3 py-1.5 text-xs text-text-secondary hover:text-text-primary disabled:opacity-60",
947
948
  "data-testid": "agent-details-rename-cancel",
@@ -1069,7 +1070,7 @@ function Ft() {
1069
1070
  }), /* @__PURE__ */ x("p", {
1070
1071
  className: "font-semibold text-text-primary",
1071
1072
  children: [
1072
- Wr,
1073
+ Kr,
1073
1074
  " ",
1074
1075
  C("health.active", "active")
1075
1076
  ]
@@ -1084,7 +1085,7 @@ function Ft() {
1084
1085
  className: "flex gap-1 -mb-px overflow-x-auto pb-1",
1085
1086
  "aria-label": C("agentDetails.tabsAriaLabel", "Agent tabs"),
1086
1087
  children: [
1087
- Ur.map((e) => {
1088
+ Gr.map((e) => {
1088
1089
  let t = e.icon, n = H === e.id;
1089
1090
  return /* @__PURE__ */ x("button", {
1090
1091
  type: "button",
@@ -1308,21 +1309,21 @@ function Ft() {
1308
1309
  children: C("health.lastHeartbeat", "Last Heartbeat")
1309
1310
  }), /* @__PURE__ */ b("p", {
1310
1311
  className: "font-medium text-text-primary",
1311
- children: Hr(F.lastHeartbeat)
1312
+ children: Wr(F.lastHeartbeat)
1312
1313
  })] }),
1313
1314
  /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
1314
1315
  className: "text-text-secondary",
1315
1316
  children: C("vibeDetails.created", "Created")
1316
1317
  }), /* @__PURE__ */ b("p", {
1317
1318
  className: "font-medium text-text-primary",
1318
- children: Hr(F.createdAt)
1319
+ children: Wr(F.createdAt)
1319
1320
  })] }),
1320
1321
  /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
1321
1322
  className: "text-text-secondary",
1322
1323
  children: C("vibeDetails.updated", "Updated")
1323
1324
  }), /* @__PURE__ */ b("p", {
1324
1325
  className: "font-medium text-text-primary",
1325
- children: Hr(F.updatedAt)
1326
+ children: Wr(F.updatedAt)
1326
1327
  })] })
1327
1328
  ]
1328
1329
  })
@@ -1384,7 +1385,7 @@ function Ft() {
1384
1385
  }),
1385
1386
  /* @__PURE__ */ b("button", {
1386
1387
  type: "button",
1387
- onClick: () => void Fr(),
1388
+ onClick: () => void Lr(),
1388
1389
  disabled: bn,
1389
1390
  className: "p-2 rounded hover:bg-bg-sunken transition-colors flex-shrink-0 disabled:opacity-50",
1390
1391
  title: hn ? C("agentDetails.hideApiKey", "Hide API key") : C("agentDetails.showApiKey", "Show API key"),
@@ -1392,7 +1393,7 @@ function Ft() {
1392
1393
  }),
1393
1394
  /* @__PURE__ */ b("button", {
1394
1395
  type: "button",
1395
- onClick: Pr,
1396
+ onClick: Ir,
1396
1397
  className: "p-2 rounded hover:bg-bg-sunken transition-colors flex-shrink-0",
1397
1398
  title: C("agentDetails.copyApiKey", "Copy API key"),
1398
1399
  children: _n ? /* @__PURE__ */ b(Ke, { className: "size-4 text-status-success-text" }) : /* @__PURE__ */ b(Xe, { className: "size-4 text-text-secondary" })
@@ -1497,13 +1498,13 @@ function Ft() {
1497
1498
  "aria-label": "control",
1498
1499
  type: "text",
1499
1500
  value: J,
1500
- onChange: (e) => cr(e.target.value),
1501
+ onChange: (e) => ur(e.target.value),
1501
1502
  placeholder: C("agentDetails.searchPluginsPlaceholder", "Search plugins by name, package, description, or tag..."),
1502
1503
  className: "w-full pl-9 pr-8 py-2 text-sm bg-bg-sunken border border-border-default rounded-md text-text-primary placeholder:text-text-muted focus:outline-none focus:ring-1 focus:ring-action-primary-bg focus:border-action-primary-bg"
1503
1504
  }),
1504
1505
  J && /* @__PURE__ */ b("button", {
1505
1506
  type: "button",
1506
- onClick: () => cr(""),
1507
+ onClick: () => ur(""),
1507
1508
  className: "absolute right-2 top-1/2 -translate-y-1/2 p-0.5 text-text-muted hover:text-text-secondary rounded",
1508
1509
  children: /* @__PURE__ */ b(_, { className: "size-3.5" })
1509
1510
  })
@@ -1515,7 +1516,7 @@ function Ft() {
1515
1516
  let t = q === e.id, n = e.icon;
1516
1517
  return /* @__PURE__ */ x("button", {
1517
1518
  type: "button",
1518
- onClick: () => sr(e.id),
1519
+ onClick: () => lr(e.id),
1519
1520
  className: `flex shrink-0 items-center gap-1.5 px-3 py-2 text-xs sm:text-sm font-medium border-b-2 transition-colors whitespace-nowrap ${t ? "border-action-primary-bg text-action-primary-bg" : "border-transparent text-text-secondary hover:text-text-primary hover:border-border-default"}`,
1520
1521
  children: [
1521
1522
  /* @__PURE__ */ b(n, { className: "size-3.5" }),
@@ -1633,14 +1634,14 @@ function Ft() {
1633
1634
  children: [
1634
1635
  e.hasUI && /* @__PURE__ */ x("button", {
1635
1636
  type: "button",
1636
- onClick: () => sr("ui-plugins"),
1637
+ onClick: () => lr("ui-plugins"),
1637
1638
  className: "flex items-center gap-1.5 px-2.5 py-1.5 text-xs text-action-primary-bg bg-action-primary-bg/10 rounded-md hover:bg-action-primary-bg/20 transition-colors border border-action-primary-bg/20",
1638
1639
  title: `Open ${e.pluginName} UI`,
1639
1640
  children: [/* @__PURE__ */ b(st, { className: "size-3" }), "Open UI"]
1640
1641
  }),
1641
1642
  !e.isCore && /* @__PURE__ */ x("button", {
1642
1643
  type: "button",
1643
- onClick: () => Sr(e.packageName),
1644
+ onClick: () => wr(e.packageName),
1644
1645
  disabled: W === e.packageName,
1645
1646
  className: "flex items-center gap-1.5 px-2.5 py-1.5 text-xs font-medium text-text-primary bg-bg-secondary border border-border-default rounded-md hover:bg-bg-elevated transition-colors disabled:opacity-50 disabled:cursor-not-allowed",
1646
1647
  title: C("agentDetails.updatePlugin", "Update plugin (latest or a specific version)"),
@@ -1648,7 +1649,7 @@ function Ft() {
1648
1649
  }),
1649
1650
  !e.isCore && /* @__PURE__ */ x("button", {
1650
1651
  type: "button",
1651
- onClick: () => xr(e.packageName),
1652
+ onClick: () => Cr(e.packageName),
1652
1653
  disabled: W === e.packageName,
1653
1654
  className: "flex items-center gap-1.5 px-2.5 py-1.5 text-xs font-medium text-status-error-text bg-status-error-bg/15 border border-status-error-border/40 rounded-md hover:bg-status-error-bg/25 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",
1654
1655
  children: [W === e.packageName ? /* @__PURE__ */ b(g, { className: "size-3 animate-spin" }) : /* @__PURE__ */ b(bt, { className: "size-3" }), C("sessions.remove", "Remove")]
@@ -1682,7 +1683,7 @@ function Ft() {
1682
1683
  ]
1683
1684
  }), /* @__PURE__ */ x("button", {
1684
1685
  type: "button",
1685
- onClick: () => br(e.packageName),
1686
+ onClick: () => Sr(e.packageName),
1686
1687
  disabled: W === e.packageName,
1687
1688
  className: "flex items-center gap-1.5 px-2.5 py-1.5 text-xs text-action-primary-text bg-action-primary-bg rounded-md hover:bg-action-primary-bg-hover transition-colors disabled:opacity-50 disabled:cursor-not-allowed flex-shrink-0 sm:ml-3",
1688
1689
  children: [W === e.packageName ? /* @__PURE__ */ b(g, { className: "size-3 animate-spin" }) : /* @__PURE__ */ b($e, { className: "size-3" }), "Install"]
@@ -1692,13 +1693,13 @@ function Ft() {
1692
1693
  className: "text-sm text-text-muted",
1693
1694
  children: J ? "No available plugins match your search." : Gn.every((e) => e.installed) ? "All available plugins are already installed." : "No available plugins found."
1694
1695
  }) }),
1695
- q === "store" && /* @__PURE__ */ x(y, { children: [fr && /* @__PURE__ */ x("div", {
1696
+ q === "store" && /* @__PURE__ */ x(y, { children: [mr && /* @__PURE__ */ x("div", {
1696
1697
  className: "flex items-center gap-2 p-3 bg-status-error-bg text-status-error-text rounded-md text-sm",
1697
1698
  children: [/* @__PURE__ */ b(_, { className: "size-4 flex-shrink-0" }), /* @__PURE__ */ b("span", {
1698
1699
  className: "flex-1",
1699
- children: fr
1700
+ children: mr
1700
1701
  })]
1701
- }), ur ? /* @__PURE__ */ b("p", {
1702
+ }), fr ? /* @__PURE__ */ b("p", {
1702
1703
  className: "text-sm text-text-muted",
1703
1704
  children: "Loading purchased plugins…"
1704
1705
  }) : Y.length === 0 ? /* @__PURE__ */ x("div", {
@@ -1751,10 +1752,10 @@ function Ft() {
1751
1752
  })]
1752
1753
  }), /* @__PURE__ */ b("button", {
1753
1754
  type: "button",
1754
- onClick: () => void wr(e.productId, e.licenseKey),
1755
- disabled: r || mr === e.productId || !n,
1755
+ onClick: () => void Er(e.productId, e.licenseKey),
1756
+ disabled: r || gr === e.productId || !n,
1756
1757
  className: "inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-semibold rounded-md bg-action-primary-bg text-action-primary-text hover:opacity-90 disabled:opacity-60 flex-shrink-0",
1757
- children: r ? "Installed" : mr === e.productId ? "Installing…" : "Install"
1758
+ children: r ? "Installed" : gr === e.productId ? "Installing…" : "Install"
1758
1759
  })]
1759
1760
  }, e.id);
1760
1761
  })
@@ -1818,7 +1819,7 @@ function Ft() {
1818
1819
  deniedTooltip: "You don't have permission to create sessions",
1819
1820
  children: /* @__PURE__ */ x("button", {
1820
1821
  "data-testid": "create-session-btn",
1821
- onClick: zr,
1822
+ onClick: Vr,
1822
1823
  className: "inline-flex items-center gap-2 px-3 py-1.5 bg-action-primary-bg text-action-primary-text rounded-md hover:bg-action-primary-bg-hover transition-colors text-sm font-medium disabled:opacity-50 disabled:cursor-not-allowed",
1823
1824
  children: [/* @__PURE__ */ b(lt, { className: "w-4 h-4" }), C("sessions.createSession", "Create Session")]
1824
1825
  })
@@ -1829,9 +1830,9 @@ function Ft() {
1829
1830
  role: "button",
1830
1831
  tabIndex: 0,
1831
1832
  onKeyDown: (t) => {
1832
- (t.key === "Enter" || t.key === " ") && (t.preventDefault(), Rr(e.id));
1833
+ (t.key === "Enter" || t.key === " ") && (t.preventDefault(), Br(e.id));
1833
1834
  },
1834
- onClick: () => Rr(e.id),
1835
+ onClick: () => Br(e.id),
1835
1836
  className: "p-4 flex flex-col sm:flex-row items-start sm:items-center justify-between gap-2 cursor-pointer hover:bg-bg-sunken/50 transition-colors",
1836
1837
  children: [/* @__PURE__ */ x("div", {
1837
1838
  className: "flex items-center gap-3 min-w-0",
@@ -1855,7 +1856,7 @@ function Ft() {
1855
1856
  deniedTooltip: "You don't have permission to create sessions",
1856
1857
  children: /* @__PURE__ */ x("button", {
1857
1858
  "data-testid": "create-session-empty-btn",
1858
- onClick: zr,
1859
+ onClick: Vr,
1859
1860
  className: "inline-flex items-center gap-2 px-3 py-1.5 bg-action-primary-bg text-action-primary-text rounded-md hover:bg-action-primary-bg-hover transition-colors text-sm font-medium disabled:opacity-50 disabled:cursor-not-allowed",
1860
1861
  children: [/* @__PURE__ */ b(lt, { className: "w-4 h-4" }), C("sessions.createSession", "Create Session")]
1861
1862
  })
@@ -1945,9 +1946,9 @@ function Ft() {
1945
1946
  role: "button",
1946
1947
  tabIndex: 0,
1947
1948
  onKeyDown: (t) => {
1948
- (t.key === "Enter" || t.key === " ") && (t.preventDefault(), Vr(e.id));
1949
+ (t.key === "Enter" || t.key === " ") && (t.preventDefault(), Ur(e.id));
1949
1950
  },
1950
- onClick: () => Vr(e.id),
1951
+ onClick: () => Ur(e.id),
1951
1952
  className: "p-4 flex flex-col sm:flex-row items-start sm:items-center justify-between gap-2 cursor-pointer hover:bg-bg-sunken/50 transition-colors",
1952
1953
  children: [/* @__PURE__ */ x("div", {
1953
1954
  className: "flex items-center gap-3 min-w-0",
@@ -2073,7 +2074,7 @@ function Ft() {
2073
2074
  children: /* @__PURE__ */ b(De, {
2074
2075
  agentId: F.id,
2075
2076
  agentVersion: F.version,
2076
- onAfterDestructiveNuke: kr
2077
+ onAfterDestructiveNuke: jr
2077
2078
  })
2078
2079
  }, "maintenance"),
2079
2080
  B && (() => {
@@ -2266,7 +2267,7 @@ function Ft() {
2266
2267
  children: C("common.cancel", "Cancel")
2267
2268
  }), /* @__PURE__ */ b("button", {
2268
2269
  type: "button",
2269
- onClick: Nr,
2270
+ onClick: Fr,
2270
2271
  disabled: Zt,
2271
2272
  className: "px-4 py-2 bg-action-primary-bg text-action-primary-text rounded-md hover:bg-action-primary-bg-hover transition-colors disabled:opacity-50",
2272
2273
  children: Zt ? C("agentDetails.saving", "Saving...") : C("agentDetails.saveConfiguration", "Save Configuration")
@@ -2372,7 +2373,7 @@ function Ft() {
2372
2373
  children: C("common.cancel", "Cancel")
2373
2374
  }), /* @__PURE__ */ b("button", {
2374
2375
  "data-testid": "create-session-submit",
2375
- onClick: Br,
2376
+ onClick: Hr,
2376
2377
  disabled: M,
2377
2378
  className: "px-4 py-2 bg-action-primary-bg text-action-primary-text rounded-md hover:bg-action-primary-bg-hover transition-colors disabled:opacity-50",
2378
2379
  children: M ? C("sessions.creating", "Creating...") : C("sessions.createSession", "Create Session")
@@ -2382,40 +2383,60 @@ function Ft() {
2382
2383
  })
2383
2384
  }),
2384
2385
  /* @__PURE__ */ b(ce, {
2385
- isOpen: nr,
2386
- onClose: () => rr(!1),
2386
+ isOpen: ir,
2387
+ onClose: () => ar(!1),
2387
2388
  onConfirm: () => {
2388
- rr(!1), S("/billing/plans");
2389
+ ar(!1), S("/billing/plans");
2389
2390
  },
2390
- title: le(ir).title,
2391
- message: le(ir).message
2391
+ title: le(or).title,
2392
+ message: le(or).message
2392
2393
  }),
2393
2394
  /* @__PURE__ */ b(se, {
2394
2395
  isOpen: Xn,
2395
2396
  onClose: () => {
2396
- er || Zn(!1);
2397
+ nr || Zn(!1);
2397
2398
  },
2398
- onConfirm: Lr,
2399
+ onConfirm: zr,
2399
2400
  title: C("agentDetails.removeAgentTitle", "Remove agent"),
2400
2401
  message: C("agentDetails.removeAgentMessage", "Remove “{{name}}” from this workspace.", { name: F.name }),
2401
2402
  confirmLabel: C("sessions.remove", "Remove"),
2402
2403
  variant: "danger",
2403
- isLoading: er,
2404
- children: /* @__PURE__ */ x("label", {
2405
- className: "flex items-start gap-3 p-3 rounded-md bg-bg-sunken border border-border-default cursor-pointer",
2406
- children: [/* @__PURE__ */ b(Ot, {
2407
- checked: Qn,
2408
- disabled: er,
2409
- onCheckedChange: (e) => $n(e === !0),
2410
- className: "mt-0.5"
2411
- }), /* @__PURE__ */ x("span", {
2412
- className: "min-w-0",
2413
- children: [/* @__PURE__ */ b("span", {
2414
- className: "block text-sm font-medium text-text-primary",
2415
- children: C("agentDetails.uninstallFromTarget", "Uninstall agent from the target")
2416
- }), /* @__PURE__ */ b("span", {
2417
- className: "block text-xs text-text-secondary mt-0.5",
2418
- children: C("agentDetails.uninstallFromTargetDesc", "Also wipe all agent state + VibeControls plugins and uninstall the agent from the host machine. This cannot be undone.")
2404
+ isLoading: nr,
2405
+ children: /* @__PURE__ */ x("div", {
2406
+ className: "space-y-2",
2407
+ children: [/* @__PURE__ */ x("label", {
2408
+ className: "flex items-start gap-3 p-3 rounded-md bg-bg-sunken border border-border-default cursor-pointer",
2409
+ children: [/* @__PURE__ */ b(Ot, {
2410
+ checked: Qn,
2411
+ disabled: nr,
2412
+ onCheckedChange: (e) => $n(e === !0),
2413
+ className: "mt-0.5"
2414
+ }), /* @__PURE__ */ x("span", {
2415
+ className: "min-w-0",
2416
+ children: [/* @__PURE__ */ b("span", {
2417
+ className: "block text-sm font-medium text-text-primary",
2418
+ children: C("agentDetails.uninstallFromTarget", "Uninstall agent from the target")
2419
+ }), /* @__PURE__ */ b("span", {
2420
+ className: "block text-xs text-text-secondary mt-0.5",
2421
+ children: C("agentDetails.uninstallFromTargetDesc", "Also wipe all agent state + VibeControls plugins and uninstall the agent from the host machine. This cannot be undone.")
2422
+ })]
2423
+ })]
2424
+ }), /* @__PURE__ */ x("label", {
2425
+ className: "flex items-start gap-3 p-3 rounded-md bg-bg-sunken border border-border-default cursor-pointer",
2426
+ children: [/* @__PURE__ */ b(Ot, {
2427
+ checked: er,
2428
+ disabled: nr,
2429
+ onCheckedChange: (e) => tr(e === !0),
2430
+ className: "mt-0.5"
2431
+ }), /* @__PURE__ */ x("span", {
2432
+ className: "min-w-0",
2433
+ children: [/* @__PURE__ */ b("span", {
2434
+ className: "block text-sm font-medium text-text-primary",
2435
+ children: C("agentDetails.deleteTarget", "Delete the mapped target")
2436
+ }), /* @__PURE__ */ b("span", {
2437
+ className: "block text-xs text-text-secondary mt-0.5",
2438
+ children: C("agentDetails.deleteTargetDesc", "Also delete the target this agent is mapped to. Any other agents on the same target are removed too. This cannot be undone.")
2439
+ })]
2419
2440
  })]
2420
2441
  })]
2421
2442
  })