@burdenoff/microfe-vibecontrols 2026.528.4 → 2026.528.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -30,20 +30,20 @@ import { useQueryBackedTab as Ae } from "../hooks/useQueryBackedTab.js";
30
30
  import { mintScopedIframeToken as je } from "../services/iframeToken.js";
31
31
  import { AddTabDialog as Me } from "../components/plugins/AddTabDialog.js";
32
32
  import { PluginIframeMount as Ne } from "../components/plugins/PluginIframeMount.js";
33
- import { useCallback as f, useEffect as p, useMemo as m, useRef as h, useState as g } from "react";
34
- import { useI18n as Pe } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
35
- import { ArrowLeft as Fe, Check as Ie, CheckCircle2 as Le, Clock as Re, Command as ze, Copy as Be, Cpu as Ve, Database as He, Download as Ue, Eye as We, EyeOff as Ge, FileText as Ke, HardDrive as qe, Info as Je, Key as Ye, Link2 as _, Loader2 as v, Monitor as Xe, Play as Ze, Plus as Qe, Puzzle as $e, RefreshCw as et, ScrollText as tt, Search as nt, Server as rt, Settings as it, Shield as at, Square as ot, Tag as st, Terminal as ct, Trash2 as lt, Unlink as ut, Users as dt, X as y, Zap as b } from "lucide-react";
36
- import { useParams as ft } from "react-router-dom";
37
- import { usePermissions as pt } from "@burdenoff/fe-libs/shared/providers/shell";
38
- import { AnimatePresence as mt, motion as x } from "framer-motion";
39
- import { Fragment as S, jsx as C, jsxs as w } from "react/jsx-runtime";
40
- import { useFeatureFlagDetails as ht } from "@burdenoff/fe-libs/shared/feature-flags";
41
- import { MotionPage as gt } from "@burdenoff/fe-libs/shared/motion";
33
+ import { useCallback as f, useEffect as p, useMemo as Pe, useRef as m, useState as h } from "react";
34
+ import { useI18n as Fe } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
35
+ import { ArrowLeft as Ie, Check as Le, CheckCircle2 as Re, Clock as ze, Command as Be, Copy as Ve, Cpu as He, Database as Ue, Download as We, Eye as Ge, EyeOff as Ke, FileText as qe, HardDrive as Je, Info as Ye, Key as Xe, Link2 as g, Loader2 as _, Monitor as Ze, Play as Qe, Plus as $e, Puzzle as v, RefreshCw as et, ScrollText as tt, Search as nt, Server as rt, Settings as it, Shield as at, Square as ot, Tag as st, Terminal as ct, Trash2 as lt, Unlink as ut, Users as dt, X as y, Zap as ft } from "lucide-react";
36
+ import { useParams as pt } from "react-router-dom";
37
+ import { usePermissions as mt } from "@burdenoff/fe-libs/shared/providers/shell";
38
+ import { AnimatePresence as ht, motion as b } from "framer-motion";
39
+ import { Fragment as x, jsx as S, jsxs as C } from "react/jsx-runtime";
40
+ import { useFeatureFlagDetails as gt } from "@burdenoff/fe-libs/shared/feature-flags";
41
+ import { MotionPage as w } from "@burdenoff/fe-libs/shared/motion";
42
42
  import { PermissionButton as _t } from "@burdenoff/fe-libs/shared/components";
43
43
  import { usePluginContributions as vt } from "@burdenoff/fe-libs/shared/plugins";
44
44
  //#region src/pages/AgentDetailsPage.tsx
45
45
  function yt({ agent: e, onUpdate: t }) {
46
- let { t: n } = Pe(), [r] = ae(), [i] = ne(), [a, o] = g(!1), [ee, s] = g(null), [c, te] = g(!1), [l, re] = g(null), [ie, oe] = g(!1), [se, ce] = g(!1), [le, ue] = g(!1), de = !!(e.appId && e.appClientId), u = (e, t, r) => {
46
+ let { t: n } = Fe(), [r] = ae(), [i] = ne(), [a, o] = h(!1), [ee, s] = h(null), [c, te] = h(!1), [l, re] = h(null), [ie, oe] = h(!1), [se, ce] = h(!1), [le, ue] = h(!1), de = !!(e.appId && e.appClientId), u = (e, t, r) => {
47
47
  let i = n(e, r), a = i === e ? t : i;
48
48
  return r ? Object.entries(r).reduce((e, [t, n]) => e.replace(`{{${t}}}`, String(n)), a) : a;
49
49
  }, fe = e.metadata?.devportalApplicationId, ge = async () => {
@@ -58,54 +58,54 @@ function yt({ agent: e, onUpdate: t }) {
58
58
  o(!1);
59
59
  }
60
60
  };
61
- return /* @__PURE__ */ w(d, { children: [/* @__PURE__ */ C("div", {
61
+ return /* @__PURE__ */ C(d, { children: [/* @__PURE__ */ S("div", {
62
62
  className: "p-4 border-b border-border-default",
63
- children: /* @__PURE__ */ w("h3", {
63
+ children: /* @__PURE__ */ C("h3", {
64
64
  className: "font-semibold text-text-primary flex items-center gap-2",
65
- children: [/* @__PURE__ */ C(at, { className: "size-5" }), u("agentDetails.gatewayAuthTitle", "Gateway Auth (OAuth2)")]
65
+ children: [/* @__PURE__ */ S(at, { className: "size-5" }), u("agentDetails.gatewayAuthTitle", "Gateway Auth (OAuth2)")]
66
66
  })
67
- }), /* @__PURE__ */ w("div", {
67
+ }), /* @__PURE__ */ C("div", {
68
68
  className: "p-4 space-y-3",
69
- children: [ee && /* @__PURE__ */ w("div", {
69
+ children: [ee && /* @__PURE__ */ C("div", {
70
70
  className: "flex items-center gap-2 p-3 bg-status-error-bg text-status-error-text rounded-md text-sm",
71
71
  children: [
72
- /* @__PURE__ */ C(y, { className: "size-4 flex-shrink-0" }),
73
- /* @__PURE__ */ C("span", {
72
+ /* @__PURE__ */ S(y, { className: "size-4 flex-shrink-0" }),
73
+ /* @__PURE__ */ S("span", {
74
74
  className: "flex-1",
75
75
  children: ee
76
76
  }),
77
- /* @__PURE__ */ C("button", {
77
+ /* @__PURE__ */ S("button", {
78
78
  type: "button",
79
79
  onClick: () => s(null),
80
80
  className: "flex-shrink-0 p-0.5 hover:bg-status-error-text/10 rounded",
81
- children: /* @__PURE__ */ C(y, { className: "size-3.5" })
81
+ children: /* @__PURE__ */ S(y, { className: "size-3.5" })
82
82
  })
83
83
  ]
84
- }), de ? /* @__PURE__ */ w(S, { children: [
85
- /* @__PURE__ */ w("div", {
84
+ }), de ? /* @__PURE__ */ C(x, { children: [
85
+ /* @__PURE__ */ C("div", {
86
86
  className: "flex items-start gap-3",
87
- children: [/* @__PURE__ */ C("div", {
87
+ children: [/* @__PURE__ */ S("div", {
88
88
  className: "size-8 rounded-lg bg-status-success-bg flex items-center justify-center flex-shrink-0 mt-0.5",
89
- children: /* @__PURE__ */ C(_, { className: "size-4 text-status-success-text" })
90
- }), /* @__PURE__ */ w("div", {
89
+ children: /* @__PURE__ */ S(g, { className: "size-4 text-status-success-text" })
90
+ }), /* @__PURE__ */ C("div", {
91
91
  className: "flex-1 min-w-0 space-y-2",
92
- children: [/* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
92
+ children: [/* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("p", {
93
93
  className: "text-sm font-medium text-text-primary",
94
94
  children: u("agentDetails.linkedToOauthApp", "Linked to OAuth App")
95
- }), /* @__PURE__ */ C("p", {
95
+ }), /* @__PURE__ */ S("p", {
96
96
  className: "text-xs text-text-muted",
97
97
  children: u("agentDetails.gatewayAuthLinkedDescription", "This agent can authenticate with the API gateway using Client Credentials.")
98
- })] }), /* @__PURE__ */ w("div", {
98
+ })] }), /* @__PURE__ */ C("div", {
99
99
  className: "grid grid-cols-1 sm:grid-cols-2 gap-3",
100
- children: [/* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
100
+ children: [/* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("p", {
101
101
  className: "text-xs text-text-secondary mb-1",
102
102
  children: u("agentDetails.clientId", "Client ID")
103
- }), /* @__PURE__ */ w("div", {
103
+ }), /* @__PURE__ */ C("div", {
104
104
  className: "flex items-center gap-2",
105
- children: [/* @__PURE__ */ C("code", {
105
+ children: [/* @__PURE__ */ S("code", {
106
106
  className: "text-xs font-mono text-text-primary bg-bg-sunken px-2 py-1 rounded truncate block flex-1",
107
107
  children: e.appClientId
108
- }), /* @__PURE__ */ C("button", {
108
+ }), /* @__PURE__ */ S("button", {
109
109
  type: "button",
110
110
  onClick: async () => {
111
111
  if (e.appClientId) try {
@@ -114,43 +114,43 @@ function yt({ agent: e, onUpdate: t }) {
114
114
  },
115
115
  className: "p-1 rounded hover:bg-bg-sunken transition-colors flex-shrink-0",
116
116
  title: u("agentDetails.copyClientId", "Copy Client ID"),
117
- children: se ? /* @__PURE__ */ C(Ie, { className: "size-3.5 text-status-success-text" }) : /* @__PURE__ */ C(Be, { className: "size-3.5 text-text-secondary" })
117
+ children: se ? /* @__PURE__ */ S(Le, { className: "size-3.5 text-status-success-text" }) : /* @__PURE__ */ S(Ve, { className: "size-3.5 text-text-secondary" })
118
118
  })]
119
- })] }), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
119
+ })] }), /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("p", {
120
120
  className: "text-xs text-text-secondary mb-1",
121
121
  children: u("agentDetails.appId", "App ID")
122
- }), /* @__PURE__ */ C("code", {
122
+ }), /* @__PURE__ */ S("code", {
123
123
  className: "text-xs font-mono text-text-muted bg-bg-sunken px-2 py-1 rounded truncate block",
124
124
  children: e.appId
125
125
  })] })]
126
126
  })]
127
127
  })]
128
128
  }),
129
- l && /* @__PURE__ */ w("div", {
129
+ l && /* @__PURE__ */ C("div", {
130
130
  className: "p-3 bg-status-warning-bg/20 border border-status-warning-text/20 rounded-lg space-y-2",
131
131
  children: [
132
- /* @__PURE__ */ C("p", {
132
+ /* @__PURE__ */ S("p", {
133
133
  className: "text-sm font-medium text-status-warning-text",
134
134
  children: u("agentDetails.clientSecretOneTimeTitle", "Client Secret (one-time display)")
135
135
  }),
136
- /* @__PURE__ */ C("p", {
136
+ /* @__PURE__ */ S("p", {
137
137
  className: "text-xs text-text-secondary",
138
138
  children: u("agentDetails.clientSecretOneTimeDescription", "This secret has been automatically sent to the agent. Save it now if you need it — it won't be shown again.")
139
139
  }),
140
- /* @__PURE__ */ w("div", {
140
+ /* @__PURE__ */ C("div", {
141
141
  className: "flex items-center gap-2",
142
142
  children: [
143
- /* @__PURE__ */ C("code", {
143
+ /* @__PURE__ */ S("code", {
144
144
  className: "text-xs font-mono text-text-primary bg-bg-sunken px-2 py-1 rounded flex-1 truncate",
145
145
  children: c ? l : "•".repeat(32)
146
146
  }),
147
- /* @__PURE__ */ C("button", {
147
+ /* @__PURE__ */ S("button", {
148
148
  type: "button",
149
149
  onClick: () => te(!c),
150
150
  className: "p-1 rounded hover:bg-bg-sunken transition-colors flex-shrink-0",
151
- children: C(c ? Ge : We, { className: "size-3.5 text-text-secondary" })
151
+ children: S(c ? Ke : Ge, { className: "size-3.5 text-text-secondary" })
152
152
  }),
153
- /* @__PURE__ */ C("button", {
153
+ /* @__PURE__ */ S("button", {
154
154
  type: "button",
155
155
  onClick: async () => {
156
156
  if (l) try {
@@ -158,29 +158,29 @@ function yt({ agent: e, onUpdate: t }) {
158
158
  } catch {}
159
159
  },
160
160
  className: "p-1 rounded hover:bg-bg-sunken transition-colors flex-shrink-0",
161
- children: ie ? /* @__PURE__ */ C(Ie, { className: "size-3.5 text-status-success-text" }) : /* @__PURE__ */ C(Be, { className: "size-3.5 text-text-secondary" })
161
+ children: ie ? /* @__PURE__ */ S(Le, { className: "size-3.5 text-status-success-text" }) : /* @__PURE__ */ S(Ve, { className: "size-3.5 text-text-secondary" })
162
162
  })
163
163
  ]
164
164
  })
165
165
  ]
166
166
  }),
167
- /* @__PURE__ */ w("div", {
167
+ /* @__PURE__ */ C("div", {
168
168
  className: "flex items-center gap-2",
169
169
  children: [
170
- fe && /* @__PURE__ */ w("a", {
170
+ fe && /* @__PURE__ */ C("a", {
171
171
  href: `/devportal/apps/${fe}`,
172
172
  className: "flex items-center gap-2 px-3 py-1.5 text-xs text-action-primary-bg bg-action-primary-bg/10 hover:bg-action-primary-bg/20 rounded-md transition-colors",
173
- children: [/* @__PURE__ */ C(Xe, { className: "size-3" }), u("agentDetails.viewInDeveloperPortal", "View in Developer Portal")]
173
+ children: [/* @__PURE__ */ S(Ze, { className: "size-3" }), u("agentDetails.viewInDeveloperPortal", "View in Developer Portal")]
174
174
  }),
175
- /* @__PURE__ */ w("button", {
175
+ /* @__PURE__ */ C("button", {
176
176
  type: "button",
177
177
  onClick: ge,
178
178
  disabled: a,
179
179
  className: "flex items-center gap-2 px-3 py-1.5 text-xs text-action-primary-bg bg-action-primary-bg/10 hover:bg-action-primary-bg/20 rounded-md transition-colors disabled:opacity-50",
180
180
  title: u("agentDetails.repushCredentialsTitle", "Rotate the OAuth secret and push it to the agent. Use this if the agent shows degraded with \"boot state awaiting-config\"."),
181
- children: [a ? /* @__PURE__ */ C(v, { className: "size-3 animate-spin" }) : /* @__PURE__ */ C(et, { className: "size-3" }), u("agentDetails.repushCredentials", "Re-push credentials")]
181
+ children: [a ? /* @__PURE__ */ S(_, { className: "size-3 animate-spin" }) : /* @__PURE__ */ S(et, { className: "size-3" }), u("agentDetails.repushCredentials", "Re-push credentials")]
182
182
  }),
183
- /* @__PURE__ */ w("button", {
183
+ /* @__PURE__ */ C("button", {
184
184
  type: "button",
185
185
  onClick: async () => {
186
186
  if (window.confirm(u("agentDetails.confirmUnlinkOauthApp", "Remove the linked OAuth app from this agent? The app will still exist in auth-svc."))) {
@@ -202,42 +202,42 @@ function yt({ agent: e, onUpdate: t }) {
202
202
  },
203
203
  disabled: le,
204
204
  className: "flex items-center gap-2 px-3 py-1.5 text-xs text-status-error-text hover:bg-status-error-bg rounded-md transition-colors disabled:opacity-50",
205
- children: [le ? /* @__PURE__ */ C(v, { className: "size-3 animate-spin" }) : /* @__PURE__ */ C(ut, { className: "size-3" }), u("agentDetails.unlinkApp", "Unlink App")]
205
+ children: [le ? /* @__PURE__ */ S(_, { className: "size-3 animate-spin" }) : /* @__PURE__ */ S(ut, { className: "size-3" }), u("agentDetails.unlinkApp", "Unlink App")]
206
206
  })
207
207
  ]
208
208
  })
209
- ] }) : /* @__PURE__ */ w(S, { children: [/* @__PURE__ */ w("div", {
209
+ ] }) : /* @__PURE__ */ C(x, { children: [/* @__PURE__ */ C("div", {
210
210
  className: "flex items-start gap-3",
211
- children: [/* @__PURE__ */ C("div", {
211
+ children: [/* @__PURE__ */ S("div", {
212
212
  className: "size-8 rounded-lg bg-bg-sunken flex items-center justify-center flex-shrink-0 mt-0.5",
213
- children: /* @__PURE__ */ C(at, { className: "size-4 text-text-muted" })
214
- }), /* @__PURE__ */ w("div", {
213
+ children: /* @__PURE__ */ S(at, { className: "size-4 text-text-muted" })
214
+ }), /* @__PURE__ */ C("div", {
215
215
  className: "flex-1",
216
- children: [/* @__PURE__ */ C("p", {
216
+ children: [/* @__PURE__ */ S("p", {
217
217
  className: "text-sm font-medium text-text-primary",
218
218
  children: u("agentDetails.noOauthAppLinked", "No OAuth App Linked")
219
- }), /* @__PURE__ */ C("p", {
219
+ }), /* @__PURE__ */ S("p", {
220
220
  className: "text-xs text-text-muted mt-0.5",
221
221
  children: u("agentDetails.gatewayAuthSetupDescription", "Set up gateway auth to allow this agent to communicate with the API gateways using OAuth2 Client Credentials. This creates an OAuth app, registers it in the Developer Portal, and pushes the credentials to the agent.")
222
222
  })]
223
223
  })]
224
- }), /* @__PURE__ */ C("button", {
224
+ }), /* @__PURE__ */ S("button", {
225
225
  type: "button",
226
226
  onClick: ge,
227
227
  disabled: a,
228
228
  className: "flex items-center gap-2 px-4 py-2 text-sm font-medium text-action-primary-text bg-action-primary-bg rounded-md hover:bg-action-primary-bg-hover transition-colors disabled:opacity-50",
229
- children: a ? /* @__PURE__ */ w(S, { children: [/* @__PURE__ */ C(v, { className: "size-4 animate-spin" }), u("agentDetails.settingUp", "Setting up...")] }) : /* @__PURE__ */ w(S, { children: [/* @__PURE__ */ C(_, { className: "size-4" }), u("agentDetails.setupGatewayAuth", "Setup Gateway Auth")] })
229
+ children: a ? /* @__PURE__ */ C(x, { children: [/* @__PURE__ */ S(_, { className: "size-4 animate-spin" }), u("agentDetails.settingUp", "Setting up...")] }) : /* @__PURE__ */ C(x, { children: [/* @__PURE__ */ S(g, { className: "size-4" }), u("agentDetails.setupGatewayAuth", "Setup Gateway Auth")] })
230
230
  })] })]
231
231
  })] });
232
232
  }
233
233
  function bt() {
234
- let { t: ne } = Pe(), { id: _ } = ft(), { basePath: ut } = ce(), bt = ut || "", xt = le(), { hasPermission: St, isLoading: Ct, permissions: wt } = pt(), T = f((e, t, n) => {
234
+ let { t: ne } = Fe(), { id: g } = pt(), { basePath: ut } = ce(), bt = ut || "", xt = le(), { hasPermission: St, isLoading: Ct, permissions: wt } = mt(), T = f((e, t, n) => {
235
235
  let r = ne(e, n), i = r === e ? t : r;
236
236
  return n ? Object.entries(n).reduce((e, [t, n]) => e.replace(`{{${t}}}`, String(n)), i) : i;
237
- }, [ne]), [Tt] = ae({ refetchQueries: ["GetAgent"] }), [Et] = ee(), [Dt] = a({ refetchQueries: ["GetAgent"] }), [Ot] = re(), [kt] = ie(), [E, At] = g(null), [jt, Mt] = g(null), Nt = ue((e) => e.setActiveAgentId);
237
+ }, [ne]), [Tt] = ae({ refetchQueries: ["GetAgent"] }), [Et] = ee(), [Dt] = a({ refetchQueries: ["GetAgent"] }), [Ot] = re(), [kt] = ie(), [E, At] = h(null), [jt, Mt] = h(null), Nt = ue((e) => e.setActiveAgentId);
238
238
  p(() => {
239
- _ && Nt(_);
240
- }, [_, Nt]);
239
+ g && Nt(g);
240
+ }, [g, Nt]);
241
241
  let Pt = [
242
242
  "overview",
243
243
  "profiles",
@@ -249,84 +249,88 @@ function bt() {
249
249
  "notes",
250
250
  "aliases",
251
251
  "backup"
252
- ], [Ft, It] = g(!1), [Lt, D] = g(null), [Rt, zt] = g(!1), [Bt, O] = g(null), [Vt, Ht] = g(!1), Ut = h(null), Wt = h(null), Gt = h(null), Kt = h(null), qt = h(null), [k, Jt] = g(!1), [Yt, Xt] = g(!1), [Zt, A] = g(!1), [Qt, j] = g(null), [M, $t] = g(!1), N = h(null), P = h(null), en = h(null), tn = h(null), [nn] = o({ refetchQueries: ["GetAgent", "ListSessions"] });
252
+ ], [Ft, It] = h(!1), [Lt, D] = h(null), [Rt, zt] = h(!1), [Bt, O] = h(null), [Vt, Ht] = h(!1), Ut = m(null), Wt = m(null), Gt = m(null), Kt = m(null), qt = m(null), [Jt, Yt] = h(!1), [Xt, Zt] = h(!1), [k, A] = h(!1), [Qt, j] = h(null), [M, $t] = h(!1), N = m(null), P = m(null), F = m(null), en = m(null), [tn] = o({ refetchQueries: ["GetAgent", "ListSessions"] });
253
253
  p(() => {
254
- if (!Zt) return;
254
+ if (!k) return;
255
255
  let e = (e) => {
256
256
  e.key === "Escape" && !M && A(!1);
257
257
  };
258
258
  return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
259
- }, [Zt, M]);
260
- let { data: rn, loading: an, error: on, refetch: F } = s({
261
- variables: { id: _ || "" },
262
- skip: !_,
259
+ }, [k, M]), p(() => {
260
+ if (!k) return;
261
+ let e = requestAnimationFrame(() => N.current?.focus());
262
+ return () => cancelAnimationFrame(e);
263
+ }, [k]);
264
+ let { data: nn, loading: rn, error: an, refetch: I } = s({
265
+ variables: { id: g || "" },
266
+ skip: !g,
263
267
  fetchPolicy: "cache-and-network"
264
- }), I = rn?.vibecontrolsAgent, sn = se({
268
+ }), L = nn?.vibecontrolsAgent, R = se({
265
269
  fetchPolicy: "cache-and-network",
266
270
  nextFetchPolicy: "cache-first",
267
271
  notifyOnNetworkStatusChange: !0,
268
- skip: !_,
272
+ skip: !g,
269
273
  pollInterval: 3e4
270
- }), { data: cn } = oe({ skip: !_ }), ln = sn.data === void 0 && cn === void 0, L = m(() => {
271
- let e = /* @__PURE__ */ new Map(), t = cn?.vibecontrolsAgentHealthProbeStream ?? sn.data?.vibecontrolsAgentHealthProbes ?? [];
274
+ }), { data: on } = oe({ skip: !g }), sn = R.data === void 0 && on === void 0, z = Pe(() => {
275
+ let e = /* @__PURE__ */ new Map(), t = on?.vibecontrolsAgentHealthProbeStream ?? R.data?.vibecontrolsAgentHealthProbes ?? [];
272
276
  for (let n of t) e.set(n.agentId, {
273
277
  agentId: n.agentId,
274
278
  healthy: n.healthy,
275
279
  errorMessage: n.errorMessage
276
280
  });
277
281
  return e;
278
- }, [sn.data, cn]), R = m(() => I ? Ee({
279
- id: I.id,
280
- isActive: I.isActive,
281
- metadata: I.metadata
282
- }, L, { probesLoading: ln }) : "REGISTERING", [
283
- I,
282
+ }, [R.data, on]), B = Pe(() => L ? Ee({
283
+ id: L.id,
284
+ isActive: L.isActive,
285
+ metadata: L.metadata
286
+ }, z, { probesLoading: sn }) : "REGISTERING", [
284
287
  L,
285
- ln
286
- ]), un = R === "STOPPED" || R === "OFFLINE", { active: z } = ve(I?.id ?? null), B = ht("vibes.tabs.iframe-host")?.value === !0, dn = m(() => {
287
- if (!B || !I?.tunnelUrl) return [];
288
- let e = I.id, t = z ?? "default";
288
+ z,
289
+ sn
290
+ ]), cn = B === "STOPPED" || B === "OFFLINE", { active: V } = ve(L?.id ?? null), H = gt("vibes.tabs.iframe-host")?.value === !0, ln = Pe(() => {
291
+ if (!H || !L?.tunnelUrl) return [];
292
+ let e = L.id, t = V ?? "default";
289
293
  return [{
290
- tunnelUrl: I.tunnelUrl,
294
+ tunnelUrl: L.tunnelUrl,
291
295
  profile: t,
292
- label: I.name ?? I.id,
296
+ label: L.name ?? L.id,
293
297
  mintIframeToken: async ({ pathPrefixes: n }) => je(e, t, n)
294
298
  }];
295
299
  }, [
296
- B,
297
- I?.id,
298
- I?.tunnelUrl,
299
- I?.name,
300
- z
301
- ]), V = vt(dn, {
300
+ H,
301
+ L?.id,
302
+ L?.tunnelUrl,
303
+ L?.name,
304
+ V
305
+ ]), U = vt(ln, {
302
306
  mountPoint: "agent.detailTab",
303
- enabled: B && dn.length > 0
304
- }), [H, fn] = Ae(m(() => {
305
- let e = V.data.filter((e) => e.contribution.mountPoint === "agent.detailTab").map((e) => e.contribution.id);
307
+ enabled: H && ln.length > 0
308
+ }), [W, un] = Ae(Pe(() => {
309
+ let e = U.data.filter((e) => e.contribution.mountPoint === "agent.detailTab").map((e) => e.contribution.id);
306
310
  return [...Pt, ...e];
307
- }, [V.data, Pt]), "overview"), [pn, mn] = g(!1), hn = h(!1);
311
+ }, [U.data, Pt]), "overview"), [dn, fn] = h(!1), pn = m(!1);
308
312
  p(() => {
309
- I && !hn.current && (hn.current = !0, Dt().catch(() => {}));
310
- }, [I, Dt]);
311
- let [gn] = te(), _n = h(!1);
313
+ L && !pn.current && (pn.current = !0, Dt().catch(() => {}));
314
+ }, [L, Dt]);
315
+ let [mn] = te(), hn = m(!1);
312
316
  p(() => {
313
- if (!I || _n.current) return;
314
- let e = !!(I.appId && I.appClientId), t = !!(I.tunnelUrl && I.agentApiKey);
315
- !e || !t || (_n.current = !0, gn({ variables: { input: { agentId: I.id } } }).then(() => {
316
- F().catch(() => {});
317
+ if (!L || hn.current) return;
318
+ let e = !!(L.appId && L.appClientId), t = !!(L.tunnelUrl && L.agentApiKey);
319
+ !e || !t || (hn.current = !0, mn({ variables: { input: { agentId: L.id } } }).then(() => {
320
+ I().catch(() => {});
317
321
  }).catch(() => {}));
318
322
  }, [
319
- I,
320
- gn,
321
- F
323
+ L,
324
+ mn,
325
+ I
322
326
  ]);
323
- let [U, vn] = g([]), [yn, bn] = g([]), [xn, Sn] = g(!0), [W, Cn] = g(null), [wn, G] = g(null), [Tn, En] = g(!1), [Dn, On] = g("plugin"), kn = h(null), [K, q] = g("installed"), [J, An] = g(""), [Y, jn] = g([]), [Mn, Nn] = g(!1), [Pn, Fn] = g(null), [In, Ln] = g(null), [Rn] = i(), [zn] = c(), [Bn] = l(), X = f(async () => {
324
- if (I?.id) {
325
- Sn(!0), G(null);
327
+ let [G, gn] = h([]), [_n, vn] = h([]), [yn, bn] = h(!0), [xn, Sn] = h(null), [Cn, K] = h(null), [wn, Tn] = h(!1), [En, Dn] = h("plugin"), On = m(null), [q, kn] = h("installed"), [J, An] = h(""), [Y, jn] = h([]), [Mn, Nn] = h(!1), [Pn, Fn] = h(null), [In, Ln] = h(null), [Rn] = i(), [zn] = c(), [Bn] = l(), X = f(async () => {
328
+ if (L?.id) {
329
+ bn(!0), K(null);
326
330
  try {
327
331
  let { data: e } = await Rn({ variables: {
328
- agentId: I.id,
329
- profile: z
332
+ agentId: L.id,
333
+ profile: V
330
334
  } }), t = e?.agentPlugins;
331
335
  if (t) {
332
336
  let e = (t.installed || []).map((e) => ({
@@ -354,75 +358,75 @@ function bt() {
354
358
  tags: [...e.tags],
355
359
  installed: e.installed
356
360
  }));
357
- vn(e), bn(n), t.error && G(t.error);
361
+ gn(e), vn(n), t.error && K(t.error);
358
362
  }
359
363
  } catch {
360
- G("Agent unreachable — unable to fetch plugin list");
364
+ K("Agent unreachable — unable to fetch plugin list");
361
365
  } finally {
362
- Sn(!1);
366
+ bn(!1);
363
367
  }
364
368
  }
365
369
  }, [
366
- I?.id,
370
+ L?.id,
367
371
  Rn,
368
- z
372
+ V
369
373
  ]);
370
374
  p(() => {
371
- if (!I?.id) return;
372
- let e = `${I.id}:${z}`;
373
- kn.current !== e && (kn.current = e, X());
375
+ if (!L?.id) return;
376
+ let e = `${L.id}:${V}`;
377
+ On.current !== e && (On.current = e, X());
374
378
  }, [
375
- I?.id,
376
- z,
379
+ L?.id,
380
+ V,
377
381
  X
378
382
  ]);
379
383
  let Vn = f(async (e) => {
380
- if (I?.id) {
381
- Cn(e);
384
+ if (L?.id) {
385
+ Sn(e);
382
386
  try {
383
387
  let { data: t } = await zn({ variables: {
384
- agentId: I.id,
388
+ agentId: L.id,
385
389
  packageName: e
386
390
  } });
387
391
  if (t?.installAgentPlugin?.success) await X();
388
392
  else throw Error(t?.installAgentPlugin?.error || T("agentDetails.installFailed", "Install failed"));
389
393
  } catch (e) {
390
394
  if (n(e)) {
391
- r(), On("plugin"), En(!0);
395
+ r(), Dn("plugin"), Tn(!0);
392
396
  return;
393
397
  }
394
- G(e instanceof Error ? e.message : T("agentDetails.pluginInstallFailed", "Failed to install plugin")), setTimeout(() => G(null), 5e3);
398
+ K(e instanceof Error ? e.message : T("agentDetails.pluginInstallFailed", "Failed to install plugin")), setTimeout(() => K(null), 5e3);
395
399
  } finally {
396
- Cn(null);
400
+ Sn(null);
397
401
  }
398
402
  }
399
403
  }, [
400
- I?.id,
404
+ L?.id,
401
405
  zn,
402
406
  X,
403
407
  T
404
408
  ]), Hn = f(async (e) => {
405
- if (I?.id && window.confirm(T("agentDetails.removePluginConfirm", "Remove plugin {{packageName}}?", { packageName: e }))) {
406
- Cn(e);
409
+ if (L?.id && window.confirm(T("agentDetails.removePluginConfirm", "Remove plugin {{packageName}}?", { packageName: e }))) {
410
+ Sn(e);
407
411
  try {
408
412
  let { data: t } = await Bn({ variables: {
409
- agentId: I.id,
413
+ agentId: L.id,
410
414
  packageName: e
411
415
  } });
412
416
  if (t?.removeAgentPlugin?.success) await X();
413
417
  else throw Error(t?.removeAgentPlugin?.error || T("agentDetails.removeFailed", "Remove failed"));
414
418
  } catch (e) {
415
- G(e instanceof Error ? e.message : T("agentDetails.pluginRemoveFailed", "Failed to remove plugin")), setTimeout(() => G(null), 5e3);
419
+ K(e instanceof Error ? e.message : T("agentDetails.pluginRemoveFailed", "Failed to remove plugin")), setTimeout(() => K(null), 5e3);
416
420
  } finally {
417
- Cn(null);
421
+ Sn(null);
418
422
  }
419
423
  }
420
424
  }, [
421
- I?.id,
425
+ L?.id,
422
426
  Bn,
423
427
  X,
424
428
  T
425
- ]), Z = I?.sessions || [], Q = I?.vibes || [], Un = f(async () => {
429
+ ]), Z = L?.sessions || [], Q = L?.vibes || [], Un = f(async () => {
426
430
  Nn(!0), Fn(null);
427
431
  try {
428
432
  let e = await (await fetch(typeof window < "u" && window.__BURDENOFF_GLOBAL_GATEWAY__ || "/global/graphql", {
@@ -445,15 +449,15 @@ function bt() {
445
449
  }
446
450
  }, []);
447
451
  p(() => {
448
- K === "store" && Y.length === 0 && !Mn && Un();
452
+ q === "store" && Y.length === 0 && !Mn && Un();
449
453
  }, [
450
- K,
454
+ q,
451
455
  Y.length,
452
456
  Mn,
453
457
  Un
454
458
  ]);
455
459
  let Wn = f(async (e, t) => {
456
- if (I?.id) {
460
+ if (L?.id) {
457
461
  Ln(e);
458
462
  try {
459
463
  let n = await (await fetch(typeof window < "u" && window.__BURDENOFF_WSPACE_GATEWAY__ || "/workspaces/graphql", {
@@ -463,7 +467,7 @@ function bt() {
463
467
  body: JSON.stringify({
464
468
  query: "mutation InstallStorePlugin($agentId: ID!, $productId: ID!, $licenseKey: String) {\n installStorePluginOnAgent(agentId: $agentId, productId: $productId, licenseKey: $licenseKey) {\n success\n error\n }\n }",
465
469
  variables: {
466
- agentId: I.id,
470
+ agentId: L.id,
467
471
  productId: e,
468
472
  licenseKey: t
469
473
  }
@@ -472,41 +476,41 @@ function bt() {
472
476
  if (n.errors?.length) throw Error(n.errors[0]?.message ?? "Install failed");
473
477
  let r = n.data?.installStorePluginOnAgent;
474
478
  if (!r?.success) throw Error(r?.error ?? "Install failed");
475
- await X(), q("installed");
479
+ await X(), kn("installed");
476
480
  } catch (e) {
477
481
  Fn(e instanceof Error ? e.message : "Install failed");
478
482
  } finally {
479
483
  Ln(null);
480
484
  }
481
485
  }
482
- }, [I?.id, X]);
486
+ }, [L?.id, X]);
483
487
  if (p(() => {
484
- if (typeof window > "u" || !I?.id) return;
488
+ if (typeof window > "u" || !L?.id) return;
485
489
  let e = new URLSearchParams(window.location.search), t = e.get("install"), n = e.get("licenseKey");
486
490
  if (t && t !== In) {
487
- q("store"), Wn(t, n);
491
+ kn("store"), Wn(t, n);
488
492
  let e = new URL(window.location.href);
489
493
  e.searchParams.delete("install"), e.searchParams.delete("licenseKey"), window.history.replaceState({}, "", e.toString());
490
494
  }
491
495
  }, [
492
- I?.id,
496
+ L?.id,
493
497
  Wn,
494
498
  In
495
- ]), Ct) return /* @__PURE__ */ C("div", {
499
+ ]), Ct) return /* @__PURE__ */ S("div", {
496
500
  className: "flex items-center justify-center min-h-[400px]",
497
- children: /* @__PURE__ */ C("p", {
501
+ children: /* @__PURE__ */ S("p", {
498
502
  className: "text-text-secondary",
499
503
  children: "Loading permissions…"
500
504
  })
501
505
  });
502
- if (wt && (wt.permissionStrings?.length ?? 0) > 0 && !St(ye.AGENT_READ)) return /* @__PURE__ */ C("div", {
506
+ if (wt && (wt.permissionStrings?.length ?? 0) > 0 && !St(ye.AGENT_READ)) return /* @__PURE__ */ S("div", {
503
507
  className: "flex items-center justify-center min-h-[400px]",
504
- children: /* @__PURE__ */ w("div", {
508
+ children: /* @__PURE__ */ C("div", {
505
509
  className: "text-center space-y-2",
506
- children: [/* @__PURE__ */ C("h2", {
510
+ children: [/* @__PURE__ */ S("h2", {
507
511
  className: "text-lg font-semibold text-foreground",
508
512
  children: "Access Denied"
509
- }), /* @__PURE__ */ C("p", {
513
+ }), /* @__PURE__ */ S("p", {
510
514
  className: "text-sm text-text-secondary",
511
515
  children: "You don't have permission to access this page."
512
516
  })]
@@ -515,12 +519,12 @@ function bt() {
515
519
  let $ = () => {
516
520
  xt("/agents");
517
521
  }, Gn = async (e) => {
518
- if (!(!I?.id || E)) {
522
+ if (!(!L?.id || E)) {
519
523
  At(e), Mt(null);
520
524
  try {
521
- let t = e === "start" ? await Ot({ variables: { agentId: I.id } }) : await kt({ variables: { agentId: I.id } }), n = e === "start" ? t.data?.startVibecontrolsAgent : t.data?.stopVibecontrolsAgent;
525
+ let t = e === "start" ? await Ot({ variables: { agentId: L.id } }) : await kt({ variables: { agentId: L.id } }), n = e === "start" ? t.data?.startVibecontrolsAgent : t.data?.stopVibecontrolsAgent;
522
526
  if (!n || n.success === !1) throw Error(n?.error || `Failed to ${e} agent`);
523
- O(e === "start" ? T("agentDetails.agentStarted", "Agent started") : T("agentDetails.agentStopped", "Agent stopped")), setTimeout(() => O(null), 3e3), await Promise.all([F(), sn.refetch()]).catch(() => {});
527
+ O(e === "start" ? T("agentDetails.agentStarted", "Agent started") : T("agentDetails.agentStopped", "Agent stopped")), setTimeout(() => O(null), 3e3), await Promise.all([I(), R.refetch()]).catch(() => {});
524
528
  } catch (t) {
525
529
  let n = t instanceof Error ? t.message : "";
526
530
  Mt(/unable to connect|fetch failed|timed? ?out|ECONN|agent returned 5|network/i.test(n) ? T("agentDetails.agentUnreachable", `Couldn't reach the agent to ${e} it — it may be offline or its tunnel is down. Start it from the host with: vibe start`) : n || T("agentDetails.lifecycleFailed", `Failed to ${e} agent`)), setTimeout(() => Mt(null), 6e3);
@@ -531,7 +535,7 @@ function bt() {
531
535
  }, Kn = () => void Gn("start"), qn = () => void Gn("stop"), Jn = () => {
532
536
  D(null), It(!0);
533
537
  }, Yn = async () => {
534
- if (!I?.id) return;
538
+ if (!L?.id) return;
535
539
  let e = Ut.current?.value?.trim(), t = Wt.current?.value?.trim(), n = Gt.current?.value?.trim(), r = Kt.current?.value?.trim(), i = qt.current?.value?.trim();
536
540
  if (!e) {
537
541
  D(T("agentDetails.agentNameRequired", "Agent name is required"));
@@ -547,7 +551,7 @@ function bt() {
547
551
  zt(!0), D(null);
548
552
  try {
549
553
  await Tt({ variables: {
550
- id: I.id,
554
+ id: L.id,
551
555
  input: {
552
556
  name: e,
553
557
  ...t === void 0 ? {} : { tunnelUrl: t || null },
@@ -562,14 +566,14 @@ function bt() {
562
566
  zt(!1);
563
567
  }
564
568
  }, Xn = async () => {
565
- if (I?.agentApiKey) try {
566
- await me(I.agentApiKey), pe() && he("API key copied"), Xt(!0), setTimeout(() => Xt(!1), 2e3);
569
+ if (L?.agentApiKey) try {
570
+ await me(L.agentApiKey), pe() && he("API key copied"), Zt(!0), setTimeout(() => Zt(!1), 2e3);
567
571
  } catch {
568
572
  console.error("Failed to copy API key");
569
573
  }
570
574
  }, Zn = async () => {
571
- if (I?.id && window.confirm(T("agentDetails.removeAgentConfirm", "Are you sure you want to remove agent \"{{name}}\"?", { name: I.name }))) try {
572
- await Et({ variables: { id: I.id } }), $();
575
+ if (L?.id && window.confirm(T("agentDetails.removeAgentConfirm", "Are you sure you want to remove agent \"{{name}}\"?", { name: L.name }))) try {
576
+ await Et({ variables: { id: L.id } }), $();
573
577
  } catch (e) {
574
578
  console.error("Failed to remove agent:", e);
575
579
  }
@@ -578,32 +582,32 @@ function bt() {
578
582
  }, $n = () => {
579
583
  j(null), A(!0);
580
584
  }, er = async () => {
581
- let e = N.current?.value?.trim(), t = P.current?.value, i = en.current?.value?.trim() || void 0, a = tn.current?.value?.trim() || void 0;
585
+ let e = N.current?.value?.trim(), t = P.current?.value, i = F.current?.value?.trim() || void 0, a = en.current?.value?.trim() || void 0;
582
586
  if (!e) {
583
587
  j(T("vibeDetails.sessionNameRequired", "Session name is required"));
584
588
  return;
585
589
  }
586
- if (!I?.id) {
590
+ if (!L?.id) {
587
591
  j(T("agentDetails.noAgent", "Agent not loaded"));
588
592
  return;
589
593
  }
590
- let o = L.get(I.id);
594
+ let o = z.get(L.id);
591
595
  if (o && !o.healthy) {
592
596
  j(T("sessions.agentNotHealthy", "The selected agent isn’t fully reachable right now. Please wait for the agent badge to turn green and retry.") + (o.errorMessage ? ` (${o.errorMessage})` : ""));
593
597
  return;
594
598
  }
595
599
  $t(!0), j(null);
596
600
  try {
597
- await nn({ variables: { input: {
601
+ await tn({ variables: { input: {
598
602
  name: e,
599
603
  type: t || "TERMINAL",
600
- agentId: I.id,
604
+ agentId: L.id,
601
605
  command: i,
602
606
  workingDirectory: a
603
- } } }), A(!1), N.current && (N.current.value = ""), P.current && (P.current.selectedIndex = 0), en.current && (en.current.value = ""), tn.current && (tn.current.value = ""), O(T("sessions.createdSuccess", "Session created successfully")), setTimeout(() => O(null), 3e3);
607
+ } } }), A(!1), N.current && (N.current.value = ""), P.current && (P.current.selectedIndex = 0), F.current && (F.current.value = ""), en.current && (en.current.value = ""), O(T("sessions.createdSuccess", "Session created successfully")), setTimeout(() => O(null), 3e3);
604
608
  } catch (e) {
605
609
  if (n(e)) {
606
- A(!1), r(), On("session"), En(!0);
610
+ A(!1), r(), Dn("session"), Tn(!0);
607
611
  return;
608
612
  }
609
613
  j(e instanceof Error ? e.message : T("sessions.failedCreate", "Failed to create session"));
@@ -617,40 +621,40 @@ function bt() {
617
621
  let t = Date.now() - new Date(e).getTime();
618
622
  return t < 6e4 ? T("health.justNow", "Just now") : t < 36e5 ? T("agentDetails.minutesAgo", "{{count}}m ago", { count: Math.floor(t / 6e4) }) : t < 864e5 ? T("agentDetails.hoursAgo", "{{count}}h ago", { count: Math.floor(t / 36e5) }) : new Date(e).toLocaleDateString();
619
623
  };
620
- if (an && !I) return /* @__PURE__ */ w(gt, {
624
+ if (rn && !L) return /* @__PURE__ */ C(w, {
621
625
  className: "space-y-6 p-4 sm:p-6 bg-bg-surface min-h-screen",
622
- children: [/* @__PURE__ */ w("button", {
626
+ children: [/* @__PURE__ */ C("button", {
623
627
  type: "button",
624
628
  onClick: $,
625
629
  className: "flex items-center gap-2 text-text-secondary hover:text-text-primary transition-colors",
626
- children: [/* @__PURE__ */ C(Fe, { className: "size-4" }), T("agentDetails.backToAgents", "Back to Agents")]
627
- }), /* @__PURE__ */ C(be, { variant: "detail" })]
630
+ children: [/* @__PURE__ */ S(Ie, { className: "size-4" }), T("agentDetails.backToAgents", "Back to Agents")]
631
+ }), /* @__PURE__ */ S(be, { variant: "detail" })]
628
632
  });
629
- if (on && !I) return /* @__PURE__ */ w(gt, {
633
+ if (an && !L) return /* @__PURE__ */ C(w, {
630
634
  className: "space-y-6 p-4 sm:p-6 bg-bg-surface min-h-screen",
631
- children: [/* @__PURE__ */ w("button", {
635
+ children: [/* @__PURE__ */ C("button", {
632
636
  type: "button",
633
637
  onClick: $,
634
638
  className: "flex items-center gap-2 text-text-secondary hover:text-text-primary transition-colors",
635
- children: [/* @__PURE__ */ C(Fe, { className: "size-4" }), T("agentDetails.backToAgents", "Back to Agents")]
636
- }), /* @__PURE__ */ C(u, {
639
+ children: [/* @__PURE__ */ S(Ie, { className: "size-4" }), T("agentDetails.backToAgents", "Back to Agents")]
640
+ }), /* @__PURE__ */ S(u, {
637
641
  title: T("agentDetails.failedLoad", "Failed to load agent"),
638
- message: on.message,
639
- onRetry: () => F()
642
+ message: an.message,
643
+ onRetry: () => I()
640
644
  })]
641
645
  });
642
- if (!I) return /* @__PURE__ */ w(gt, {
646
+ if (!L) return /* @__PURE__ */ C(w, {
643
647
  className: "space-y-6 p-4 sm:p-6 bg-bg-surface min-h-screen",
644
- children: [/* @__PURE__ */ w("button", {
648
+ children: [/* @__PURE__ */ C("button", {
645
649
  type: "button",
646
650
  onClick: $,
647
651
  className: "flex items-center gap-2 text-text-secondary hover:text-text-primary transition-colors",
648
- children: [/* @__PURE__ */ C(Fe, { className: "size-4" }), T("agentDetails.backToAgents", "Back to Agents")]
649
- }), /* @__PURE__ */ C(ge, {
650
- icon: /* @__PURE__ */ C(rt, { className: "size-8 text-text-secondary" }),
652
+ children: [/* @__PURE__ */ S(Ie, { className: "size-4" }), T("agentDetails.backToAgents", "Back to Agents")]
653
+ }), /* @__PURE__ */ S(ge, {
654
+ icon: /* @__PURE__ */ S(rt, { className: "size-8 text-text-secondary" }),
651
655
  title: T("agentDetails.notFound", "Agent not found"),
652
- description: `${T("agentDetails.notFoundDescriptionPrefix", "No agent with ID")} "${_}" ${T("agentDetails.notFoundDescriptionSuffix", "exists")}`,
653
- action: /* @__PURE__ */ C("button", {
656
+ description: `${T("agentDetails.notFoundDescriptionPrefix", "No agent with ID")} "${g}" ${T("agentDetails.notFoundDescriptionSuffix", "exists")}`,
657
+ action: /* @__PURE__ */ S("button", {
654
658
  type: "button",
655
659
  onClick: $,
656
660
  className: "px-4 py-2 bg-action-primary-bg text-action-primary-text rounded-md hover:bg-action-primary-bg-hover transition-colors",
@@ -677,8 +681,8 @@ function bt() {
677
681
  {
678
682
  id: "plugins",
679
683
  label: T("agentDetails.plugins", "Plugins"),
680
- icon: $e,
681
- badge: `${U.length}`
684
+ icon: v,
685
+ badge: `${G.length}`
682
686
  },
683
687
  {
684
688
  id: "sessions",
@@ -694,170 +698,170 @@ function bt() {
694
698
  {
695
699
  id: "vibes",
696
700
  label: T("nav.vibes", "Vibes"),
697
- icon: b,
701
+ icon: ft,
698
702
  badge: `${Q.length}`
699
703
  },
700
704
  {
701
705
  id: "notes",
702
706
  label: T("vibeDetails.notes", "Notes"),
703
- icon: Ke
707
+ icon: qe
704
708
  },
705
709
  {
706
710
  id: "aliases",
707
711
  label: T("agentDetails.aliases", "Aliases"),
708
- icon: ze
712
+ icon: Be
709
713
  },
710
714
  {
711
715
  id: "backup",
712
716
  label: T("agentDetails.backup", "Backup"),
713
- icon: He
717
+ icon: Ue
714
718
  }
715
719
  ], ir = Z.filter((e) => e.status === "RUNNING").length;
716
- return I?.tunnelUrl, /* @__PURE__ */ w(gt, {
720
+ return L?.tunnelUrl, /* @__PURE__ */ C(w, {
717
721
  className: "space-y-6 p-4 sm:p-6 bg-bg-surface min-h-screen",
718
722
  children: [
719
- Bt && /* @__PURE__ */ C("div", {
723
+ Bt && /* @__PURE__ */ S("div", {
720
724
  className: "fixed top-4 left-4 right-4 sm:left-auto z-50 bg-status-success-bg text-status-success-text px-4 py-3 rounded-md shadow-lg",
721
725
  children: Bt
722
726
  }),
723
- jt && /* @__PURE__ */ C("div", {
727
+ jt && /* @__PURE__ */ S("div", {
724
728
  className: "fixed top-16 left-4 right-4 sm:left-auto z-50 bg-status-error-bg text-status-error-text px-4 py-3 rounded-md shadow-lg",
725
729
  children: jt
726
730
  }),
727
- /* @__PURE__ */ w("button", {
731
+ /* @__PURE__ */ C("button", {
728
732
  type: "button",
729
733
  onClick: $,
730
734
  className: "flex items-center gap-2 text-text-secondary hover:text-text-primary transition-colors",
731
- children: [/* @__PURE__ */ C(Fe, { className: "size-4" }), T("agentDetails.backToAgents", "Back to Agents")]
735
+ children: [/* @__PURE__ */ S(Ie, { className: "size-4" }), T("agentDetails.backToAgents", "Back to Agents")]
732
736
  }),
733
- /* @__PURE__ */ C(de, {
734
- title: I.name,
735
- description: I.hostname || T("agentDetails.noHostnameConfigured", "No hostname configured"),
737
+ /* @__PURE__ */ S(de, {
738
+ title: L.name,
739
+ description: L.hostname || T("agentDetails.noHostnameConfigured", "No hostname configured"),
736
740
  breadcrumb: [{
737
741
  label: T("nav.agents", "Agents"),
738
742
  path: bt ? `${bt}/agents` : "/agents"
739
- }, { label: I.name }],
740
- actions: /* @__PURE__ */ w("div", {
743
+ }, { label: L.name }],
744
+ actions: /* @__PURE__ */ C("div", {
741
745
  className: "flex flex-wrap items-center gap-2",
742
746
  children: [
743
- /* @__PURE__ */ C("button", {
747
+ /* @__PURE__ */ S("button", {
744
748
  type: "button",
745
- onClick: () => F(),
746
- disabled: an,
749
+ onClick: () => I(),
750
+ disabled: rn,
747
751
  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-50",
748
752
  title: T("common.refresh", "Refresh"),
749
- children: /* @__PURE__ */ C(et, { className: `size-4 ${an ? "animate-spin" : ""}` })
753
+ children: /* @__PURE__ */ S(et, { className: `size-4 ${rn ? "animate-spin" : ""}` })
750
754
  }),
751
- un ? /* @__PURE__ */ w("button", {
755
+ cn ? /* @__PURE__ */ C("button", {
752
756
  type: "button",
753
757
  onClick: Kn,
754
758
  disabled: E !== null,
755
759
  "aria-busy": E === "start",
756
760
  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",
757
- children: [E === "start" ? /* @__PURE__ */ C(v, { className: "size-4 animate-spin" }) : /* @__PURE__ */ C(Ze, { className: "size-4" }), E === "start" ? T("agentDetails.starting", "Starting…") : T("agentDetails.start", "Start")]
758
- }) : /* @__PURE__ */ w("button", {
761
+ children: [E === "start" ? /* @__PURE__ */ S(_, { className: "size-4 animate-spin" }) : /* @__PURE__ */ S(Qe, { className: "size-4" }), E === "start" ? T("agentDetails.starting", "Starting…") : T("agentDetails.start", "Start")]
762
+ }) : /* @__PURE__ */ C("button", {
759
763
  type: "button",
760
764
  onClick: qn,
761
765
  disabled: E !== null,
762
766
  "aria-busy": E === "stop",
763
767
  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",
764
- children: [E === "stop" ? /* @__PURE__ */ C(v, { className: "size-4 animate-spin" }) : /* @__PURE__ */ C(ot, { className: "size-4" }), E === "stop" ? T("agentDetails.stopping", "Stopping…") : T("sessions.stop", "Stop")]
768
+ children: [E === "stop" ? /* @__PURE__ */ S(_, { className: "size-4 animate-spin" }) : /* @__PURE__ */ S(ot, { className: "size-4" }), E === "stop" ? T("agentDetails.stopping", "Stopping…") : T("sessions.stop", "Stop")]
765
769
  }),
766
- R === "DEGRADED" && /* @__PURE__ */ w("button", {
770
+ B === "DEGRADED" && /* @__PURE__ */ C("button", {
767
771
  type: "button",
768
772
  onClick: Kn,
769
773
  disabled: E !== null,
770
774
  "aria-busy": E === "start",
771
775
  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",
772
- title: L.get(I.id)?.errorMessage ? `Retry lifecycle/start — last error: ${L.get(I.id)?.errorMessage}` : "Retry lifecycle/start",
773
- children: [E === "start" ? /* @__PURE__ */ C(v, { className: "size-4 animate-spin" }) : /* @__PURE__ */ C(et, { className: "size-4" }), E === "start" ? T("agentDetails.reconnecting", "Reconnecting…") : T("agentDetails.reconnect", "Reconnect")]
776
+ title: z.get(L.id)?.errorMessage ? `Retry lifecycle/start — last error: ${z.get(L.id)?.errorMessage}` : "Retry lifecycle/start",
777
+ children: [E === "start" ? /* @__PURE__ */ S(_, { className: "size-4 animate-spin" }) : /* @__PURE__ */ S(et, { className: "size-4" }), E === "start" ? T("agentDetails.reconnecting", "Reconnecting…") : T("agentDetails.reconnect", "Reconnect")]
774
778
  }),
775
- /* @__PURE__ */ C(Te, {
776
- tunnelUrl: I.tunnelUrl || null,
777
- agentApiKey: I.agentApiKey || null,
778
- profile: z
779
+ /* @__PURE__ */ S(Te, {
780
+ tunnelUrl: L.tunnelUrl || null,
781
+ agentApiKey: L.agentApiKey || null,
782
+ profile: V
779
783
  }),
780
- /* @__PURE__ */ w("button", {
784
+ /* @__PURE__ */ C("button", {
781
785
  type: "button",
782
786
  onClick: Jn,
783
787
  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",
784
- children: [/* @__PURE__ */ C(it, { className: "size-4" }), T("agentDetails.configure", "Configure")]
788
+ children: [/* @__PURE__ */ S(it, { className: "size-4" }), T("agentDetails.configure", "Configure")]
785
789
  }),
786
- /* @__PURE__ */ w("button", {
790
+ /* @__PURE__ */ C("button", {
787
791
  type: "button",
788
792
  onClick: Zn,
789
793
  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",
790
- children: [/* @__PURE__ */ C(lt, { className: "size-4" }), T("sessions.remove", "Remove")]
794
+ children: [/* @__PURE__ */ S(lt, { className: "size-4" }), T("sessions.remove", "Remove")]
791
795
  })
792
796
  ]
793
797
  })
794
798
  }),
795
- /* @__PURE__ */ w("div", {
799
+ /* @__PURE__ */ C("div", {
796
800
  className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4",
797
801
  children: [
798
- /* @__PURE__ */ C(d, {
802
+ /* @__PURE__ */ S(d, {
799
803
  className: "p-4",
800
- children: /* @__PURE__ */ w("div", {
804
+ children: /* @__PURE__ */ C("div", {
801
805
  className: "flex items-center gap-3",
802
- children: [/* @__PURE__ */ C("div", {
806
+ children: [/* @__PURE__ */ S("div", {
803
807
  className: "size-10 rounded-lg bg-bg-sunken flex items-center justify-center",
804
- children: /* @__PURE__ */ C(rt, { className: "size-5 text-text-secondary" })
805
- }), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
808
+ children: /* @__PURE__ */ S(rt, { className: "size-5 text-text-secondary" })
809
+ }), /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("p", {
806
810
  className: "text-sm text-text-secondary",
807
811
  children: T("sessions.filterStatus", "Status")
808
- }), /* @__PURE__ */ C(Ce, {
809
- status: R,
810
- reason: L.get(I.id)?.errorMessage ?? (I.lastGatewayAuthPushStatus === "failed" ? I.lastGatewayAuthPushError ?? "Gateway-auth push failed" : null)
812
+ }), /* @__PURE__ */ S(Ce, {
813
+ status: B,
814
+ reason: z.get(L.id)?.errorMessage ?? (L.lastGatewayAuthPushStatus === "failed" ? L.lastGatewayAuthPushError ?? "Gateway-auth push failed" : null)
811
815
  })] })]
812
816
  })
813
817
  }),
814
- /* @__PURE__ */ C(d, {
818
+ /* @__PURE__ */ S(d, {
815
819
  className: "p-4",
816
- children: /* @__PURE__ */ w("div", {
820
+ children: /* @__PURE__ */ C("div", {
817
821
  className: "flex items-center gap-3",
818
- children: [/* @__PURE__ */ C("div", {
822
+ children: [/* @__PURE__ */ S("div", {
819
823
  className: "size-10 rounded-lg bg-bg-sunken flex items-center justify-center",
820
- children: /* @__PURE__ */ C(Ve, { className: "size-5 text-text-secondary" })
821
- }), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
824
+ children: /* @__PURE__ */ S(He, { className: "size-5 text-text-secondary" })
825
+ }), /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("p", {
822
826
  className: "text-sm text-text-secondary",
823
827
  children: T("analytics.platform", "Platform")
824
- }), /* @__PURE__ */ w("p", {
828
+ }), /* @__PURE__ */ C("p", {
825
829
  className: "font-semibold text-text-primary",
826
830
  children: [
827
- I.platform,
831
+ L.platform,
828
832
  "/",
829
- I.architecture
833
+ L.architecture
830
834
  ]
831
835
  })] })]
832
836
  })
833
837
  }),
834
- /* @__PURE__ */ C(d, {
838
+ /* @__PURE__ */ S(d, {
835
839
  className: "p-4",
836
- children: /* @__PURE__ */ w("div", {
840
+ children: /* @__PURE__ */ C("div", {
837
841
  className: "flex items-center gap-3",
838
- children: [/* @__PURE__ */ C("div", {
842
+ children: [/* @__PURE__ */ S("div", {
839
843
  className: "size-10 rounded-lg bg-bg-sunken flex items-center justify-center",
840
- children: /* @__PURE__ */ C(qe, { className: "size-5 text-text-secondary" })
841
- }), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
844
+ children: /* @__PURE__ */ S(Je, { className: "size-5 text-text-secondary" })
845
+ }), /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("p", {
842
846
  className: "text-sm text-text-secondary",
843
847
  children: T("agentDetails.version", "Version")
844
- }), /* @__PURE__ */ w("p", {
848
+ }), /* @__PURE__ */ C("p", {
845
849
  className: "font-semibold text-text-primary",
846
- children: ["v", I.version]
850
+ children: ["v", L.version]
847
851
  })] })]
848
852
  })
849
853
  }),
850
- /* @__PURE__ */ C(d, {
854
+ /* @__PURE__ */ S(d, {
851
855
  className: "p-4",
852
- children: /* @__PURE__ */ w("div", {
856
+ children: /* @__PURE__ */ C("div", {
853
857
  className: "flex items-center gap-3",
854
- children: [/* @__PURE__ */ C("div", {
858
+ children: [/* @__PURE__ */ S("div", {
855
859
  className: "size-10 rounded-lg bg-bg-sunken flex items-center justify-center",
856
- children: /* @__PURE__ */ C(ct, { className: "size-5 text-text-secondary" })
857
- }), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
860
+ children: /* @__PURE__ */ S(ct, { className: "size-5 text-text-secondary" })
861
+ }), /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("p", {
858
862
  className: "text-sm text-text-secondary",
859
863
  children: T("nav.sessions", "Sessions")
860
- }), /* @__PURE__ */ w("p", {
864
+ }), /* @__PURE__ */ C("p", {
861
865
  className: "font-semibold text-text-primary",
862
866
  children: [
863
867
  ir,
@@ -869,35 +873,35 @@ function bt() {
869
873
  })
870
874
  ]
871
875
  }),
872
- /* @__PURE__ */ C("div", {
876
+ /* @__PURE__ */ S("div", {
873
877
  className: "border-b border-border-default",
874
- children: /* @__PURE__ */ w("nav", {
878
+ children: /* @__PURE__ */ C("nav", {
875
879
  className: "flex gap-1 -mb-px overflow-x-auto pb-1",
876
880
  "aria-label": T("agentDetails.tabsAriaLabel", "Agent tabs"),
877
881
  children: [
878
882
  rr.map((e) => {
879
- let t = e.icon, n = H === e.id;
880
- return /* @__PURE__ */ w("button", {
883
+ let t = e.icon, n = W === e.id;
884
+ return /* @__PURE__ */ C("button", {
881
885
  type: "button",
882
- onClick: () => fn(e.id),
886
+ onClick: () => un(e.id),
883
887
  className: `flex shrink-0 items-center gap-1.5 px-3 py-2.5 text-xs sm:gap-2 sm:px-4 sm:text-sm font-medium border-b-2 transition-colors whitespace-nowrap ${n ? "border-action-primary-bg text-action-primary-bg" : "border-transparent text-text-secondary hover:text-text-primary hover:border-border-default"}`,
884
888
  "aria-selected": n,
885
889
  role: "tab",
886
890
  children: [
887
- /* @__PURE__ */ C(t, { className: "size-4" }),
891
+ /* @__PURE__ */ S(t, { className: "size-4" }),
888
892
  e.label,
889
- e.badge && /* @__PURE__ */ C("span", {
893
+ e.badge && /* @__PURE__ */ S("span", {
890
894
  className: `hidden rounded-full px-1.5 py-0.5 text-[10px] sm:inline-flex sm:text-xs ${n ? "bg-action-primary-bg/10 text-action-primary-bg" : "bg-bg-sunken text-text-muted"}`,
891
895
  children: e.badge
892
896
  })
893
897
  ]
894
898
  }, e.id);
895
899
  }),
896
- B && V.data.map((e) => {
897
- let t = H === e.contribution.id;
898
- return /* @__PURE__ */ C("button", {
900
+ H && U.data.map((e) => {
901
+ let t = W === e.contribution.id;
902
+ return /* @__PURE__ */ S("button", {
899
903
  type: "button",
900
- onClick: () => fn(e.contribution.id),
904
+ onClick: () => un(e.contribution.id),
901
905
  className: `flex shrink-0 items-center gap-1.5 px-3 py-2.5 text-xs sm:gap-2 sm:px-4 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"}`,
902
906
  "aria-selected": t,
903
907
  role: "tab",
@@ -905,16 +909,16 @@ function bt() {
905
909
  children: e.contribution.title
906
910
  }, `plugin-${e.contribution.id}`);
907
911
  }),
908
- B && I && /* @__PURE__ */ w("button", {
912
+ H && L && /* @__PURE__ */ C("button", {
909
913
  type: "button",
910
- onClick: () => mn(!0),
914
+ onClick: () => fn(!0),
911
915
  className: "flex shrink-0 items-center gap-1 p-2 text-xs sm:text-sm border-b-2 border-transparent text-text-secondary hover:text-text-primary hover:border-border-default",
912
916
  title: "Install a UI plugin tab",
913
917
  "aria-label": "Add tab",
914
- children: [/* @__PURE__ */ C("span", {
918
+ children: [/* @__PURE__ */ S("span", {
915
919
  "aria-hidden": !0,
916
920
  children: "+"
917
- }), /* @__PURE__ */ C("span", {
921
+ }), /* @__PURE__ */ S("span", {
918
922
  className: "hidden sm:inline",
919
923
  children: "Add tab"
920
924
  })]
@@ -922,10 +926,10 @@ function bt() {
922
926
  ]
923
927
  })
924
928
  }),
925
- /* @__PURE__ */ w(mt, {
929
+ /* @__PURE__ */ C(ht, {
926
930
  mode: "wait",
927
931
  children: [
928
- H === "overview" && /* @__PURE__ */ w(x.div, {
932
+ W === "overview" && /* @__PURE__ */ C(b.div, {
929
933
  initial: {
930
934
  opacity: 0,
931
935
  y: 8
@@ -941,62 +945,62 @@ function bt() {
941
945
  transition: { duration: .2 },
942
946
  className: "space-y-6",
943
947
  children: [
944
- /* @__PURE__ */ w(d, { children: [/* @__PURE__ */ C("div", {
948
+ /* @__PURE__ */ C(d, { children: [/* @__PURE__ */ S("div", {
945
949
  className: "p-4 border-b border-border-default",
946
- children: /* @__PURE__ */ w("h3", {
950
+ children: /* @__PURE__ */ C("h3", {
947
951
  className: "font-semibold text-text-primary flex items-center gap-2",
948
- children: [/* @__PURE__ */ C(Le, { className: "size-5" }), T("agentDetails.capabilities", "Capabilities")]
952
+ children: [/* @__PURE__ */ S(Re, { className: "size-5" }), T("agentDetails.capabilities", "Capabilities")]
949
953
  })
950
- }), /* @__PURE__ */ C("div", {
954
+ }), /* @__PURE__ */ S("div", {
951
955
  className: "p-4",
952
- children: /* @__PURE__ */ C("div", {
956
+ children: /* @__PURE__ */ S("div", {
953
957
  className: "flex flex-wrap gap-2",
954
- children: I.capabilities && typeof I.capabilities == "object" && (Array.isArray(I.capabilities) ? I.capabilities.length > 0 : Object.keys(I.capabilities).length > 0) ? (Array.isArray(I.capabilities) ? I.capabilities : (() => {
955
- let e = I.capabilities, t = Object.keys(e);
958
+ children: L.capabilities && typeof L.capabilities == "object" && (Array.isArray(L.capabilities) ? L.capabilities.length > 0 : Object.keys(L.capabilities).length > 0) ? (Array.isArray(L.capabilities) ? L.capabilities : (() => {
959
+ let e = L.capabilities, t = Object.keys(e);
956
960
  return t.length > 0 && t.every((e) => /^\d+$/.test(e)) ? Object.values(e) : t;
957
- })()).map((e) => /* @__PURE__ */ C("span", {
961
+ })()).map((e) => /* @__PURE__ */ S("span", {
958
962
  className: "px-3 py-1 bg-bg-sunken text-text-primary text-sm rounded-full",
959
963
  children: e
960
- }, e)) : /* @__PURE__ */ w("div", {
964
+ }, e)) : /* @__PURE__ */ C("div", {
961
965
  className: "space-y-2 text-sm text-text-secondary",
962
966
  children: [
963
- /* @__PURE__ */ C("p", { children: T("agentDetails.noCapabilitiesConfigured", "No capabilities configured") }),
964
- /* @__PURE__ */ w("p", {
967
+ /* @__PURE__ */ S("p", { children: T("agentDetails.noCapabilitiesConfigured", "No capabilities configured") }),
968
+ /* @__PURE__ */ C("p", {
965
969
  className: "text-xs",
966
970
  children: [
967
971
  "Capabilities are feature tags the agent advertises to vibes (e.g.",
968
972
  " ",
969
- /* @__PURE__ */ C("code", {
973
+ /* @__PURE__ */ S("code", {
970
974
  className: "text-text-primary",
971
975
  children: "docker"
972
976
  }),
973
977
  ",",
974
978
  " ",
975
- /* @__PURE__ */ C("code", {
979
+ /* @__PURE__ */ S("code", {
976
980
  className: "text-text-primary",
977
981
  children: "gpu"
978
982
  }),
979
983
  ",",
980
984
  " ",
981
- /* @__PURE__ */ C("code", {
985
+ /* @__PURE__ */ S("code", {
982
986
  className: "text-text-primary",
983
987
  children: "node20"
984
988
  }),
985
989
  ",",
986
990
  " ",
987
- /* @__PURE__ */ C("code", {
991
+ /* @__PURE__ */ S("code", {
988
992
  className: "text-text-primary",
989
993
  children: "git"
990
994
  }),
991
995
  "). Vibes use them to pick an agent that can run their workloads."
992
996
  ]
993
997
  }),
994
- /* @__PURE__ */ w("p", {
998
+ /* @__PURE__ */ C("p", {
995
999
  className: "text-xs",
996
1000
  children: [
997
1001
  "Add from the agent host CLI:",
998
1002
  " ",
999
- /* @__PURE__ */ C("code", {
1003
+ /* @__PURE__ */ S("code", {
1000
1004
  className: "text-text-primary",
1001
1005
  children: "vibe agent caps add docker gpu"
1002
1006
  }),
@@ -1007,120 +1011,120 @@ function bt() {
1007
1011
  })
1008
1012
  })
1009
1013
  })] }),
1010
- /* @__PURE__ */ w(d, { children: [/* @__PURE__ */ C("div", {
1014
+ /* @__PURE__ */ C(d, { children: [/* @__PURE__ */ S("div", {
1011
1015
  className: "p-4 border-b border-border-default",
1012
- children: /* @__PURE__ */ w("h3", {
1016
+ children: /* @__PURE__ */ C("h3", {
1013
1017
  className: "font-semibold text-text-primary flex items-center gap-2",
1014
- children: [/* @__PURE__ */ C(st, { className: "size-5" }), "Tags"]
1018
+ children: [/* @__PURE__ */ S(st, { className: "size-5" }), "Tags"]
1015
1019
  })
1016
- }), /* @__PURE__ */ C("div", {
1020
+ }), /* @__PURE__ */ S("div", {
1017
1021
  className: "p-4",
1018
- children: /* @__PURE__ */ C(fe, {
1022
+ children: /* @__PURE__ */ S(fe, {
1019
1023
  entityType: "VIBECONTROLS_AGENT",
1020
- entityId: I.id
1024
+ entityId: L.id
1021
1025
  })
1022
1026
  })] }),
1023
- I.tunnelUrl && /* @__PURE__ */ w(d, { children: [/* @__PURE__ */ C("div", {
1027
+ L.tunnelUrl && /* @__PURE__ */ C(d, { children: [/* @__PURE__ */ S("div", {
1024
1028
  className: "p-4 border-b border-border-default",
1025
- children: /* @__PURE__ */ w("h3", {
1029
+ children: /* @__PURE__ */ C("h3", {
1026
1030
  className: "font-semibold text-text-primary flex items-center gap-2",
1027
- children: [/* @__PURE__ */ C(b, { className: "size-5" }), T("health.tunnel", "Tunnel")]
1031
+ children: [/* @__PURE__ */ S(ft, { className: "size-5" }), T("health.tunnel", "Tunnel")]
1028
1032
  })
1029
- }), /* @__PURE__ */ C("div", {
1033
+ }), /* @__PURE__ */ S("div", {
1030
1034
  className: "p-4",
1031
- children: /* @__PURE__ */ w("div", {
1035
+ children: /* @__PURE__ */ C("div", {
1032
1036
  className: "flex-1 min-w-0",
1033
- children: [/* @__PURE__ */ C("p", {
1037
+ children: [/* @__PURE__ */ S("p", {
1034
1038
  className: "text-sm text-text-secondary mb-1",
1035
1039
  children: T("agentDetails.tunnelUrl", "Tunnel URL")
1036
- }), /* @__PURE__ */ C("a", {
1037
- href: I.tunnelUrl,
1040
+ }), /* @__PURE__ */ S("a", {
1041
+ href: L.tunnelUrl,
1038
1042
  target: "_blank",
1039
1043
  rel: "noopener noreferrer",
1040
1044
  className: "text-action-primary-text hover:underline break-all",
1041
- children: I.tunnelUrl
1045
+ children: L.tunnelUrl
1042
1046
  })]
1043
1047
  })
1044
1048
  })] }),
1045
- /* @__PURE__ */ w(d, { children: [/* @__PURE__ */ C("div", {
1049
+ /* @__PURE__ */ C(d, { children: [/* @__PURE__ */ S("div", {
1046
1050
  className: "p-4 border-b border-border-default",
1047
- children: /* @__PURE__ */ w("h3", {
1051
+ children: /* @__PURE__ */ C("h3", {
1048
1052
  className: "font-semibold text-text-primary flex items-center gap-2",
1049
- children: [/* @__PURE__ */ C(it, { className: "size-5" }), T("agentDetails.configuration", "Configuration")]
1053
+ children: [/* @__PURE__ */ S(it, { className: "size-5" }), T("agentDetails.configuration", "Configuration")]
1050
1054
  })
1051
- }), /* @__PURE__ */ w("div", {
1055
+ }), /* @__PURE__ */ C("div", {
1052
1056
  className: "p-4 space-y-4",
1053
- children: [/* @__PURE__ */ w("div", {
1057
+ children: [/* @__PURE__ */ C("div", {
1054
1058
  className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",
1055
1059
  children: [
1056
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
1060
+ /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("p", {
1057
1061
  className: "text-sm text-text-secondary",
1058
1062
  children: T("analytics.platform", "Platform")
1059
- }), /* @__PURE__ */ C("p", {
1063
+ }), /* @__PURE__ */ S("p", {
1060
1064
  className: "font-medium text-text-primary",
1061
- children: I.platform
1065
+ children: L.platform
1062
1066
  })] }),
1063
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
1067
+ /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("p", {
1064
1068
  className: "text-sm text-text-secondary",
1065
1069
  children: T("analytics.architecture", "Architecture")
1066
- }), /* @__PURE__ */ C("p", {
1070
+ }), /* @__PURE__ */ S("p", {
1067
1071
  className: "font-medium text-text-primary",
1068
- children: I.architecture
1072
+ children: L.architecture
1069
1073
  })] }),
1070
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
1074
+ /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("p", {
1071
1075
  className: "text-sm text-text-secondary",
1072
1076
  children: T("agentDetails.version", "Version")
1073
- }), /* @__PURE__ */ C("p", {
1077
+ }), /* @__PURE__ */ S("p", {
1074
1078
  className: "font-medium text-text-primary",
1075
- children: I.version
1079
+ children: L.version
1076
1080
  })] })
1077
1081
  ]
1078
- }), I.aiContext && /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
1082
+ }), L.aiContext && /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("p", {
1079
1083
  className: "text-sm text-text-secondary mb-1",
1080
1084
  children: "AI Context"
1081
- }), /* @__PURE__ */ C("pre", {
1085
+ }), /* @__PURE__ */ S("pre", {
1082
1086
  className: "text-sm text-text-primary bg-bg-sunken border border-border-default rounded-md p-3 whitespace-pre-wrap font-sans",
1083
- children: I.aiContext
1087
+ children: L.aiContext
1084
1088
  })] })]
1085
1089
  })] }),
1086
- /* @__PURE__ */ w(d, { children: [/* @__PURE__ */ C("div", {
1090
+ /* @__PURE__ */ C(d, { children: [/* @__PURE__ */ S("div", {
1087
1091
  className: "p-4 border-b border-border-default",
1088
- children: /* @__PURE__ */ w("h3", {
1092
+ children: /* @__PURE__ */ C("h3", {
1089
1093
  className: "font-semibold text-text-primary flex items-center gap-2",
1090
- children: [/* @__PURE__ */ C(Re, { className: "size-5" }), T("vibeDetails.timeline", "Timeline")]
1094
+ children: [/* @__PURE__ */ S(ze, { className: "size-5" }), T("vibeDetails.timeline", "Timeline")]
1091
1095
  })
1092
- }), /* @__PURE__ */ C("div", {
1096
+ }), /* @__PURE__ */ S("div", {
1093
1097
  className: "p-4",
1094
- children: /* @__PURE__ */ w("div", {
1098
+ children: /* @__PURE__ */ C("div", {
1095
1099
  className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 text-sm",
1096
1100
  children: [
1097
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
1101
+ /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("p", {
1098
1102
  className: "text-text-secondary",
1099
1103
  children: T("health.lastHeartbeat", "Last Heartbeat")
1100
- }), /* @__PURE__ */ C("p", {
1104
+ }), /* @__PURE__ */ S("p", {
1101
1105
  className: "font-medium text-text-primary",
1102
- children: nr(I.lastHeartbeat)
1106
+ children: nr(L.lastHeartbeat)
1103
1107
  })] }),
1104
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
1108
+ /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("p", {
1105
1109
  className: "text-text-secondary",
1106
1110
  children: T("vibeDetails.created", "Created")
1107
- }), /* @__PURE__ */ C("p", {
1111
+ }), /* @__PURE__ */ S("p", {
1108
1112
  className: "font-medium text-text-primary",
1109
- children: nr(I.createdAt)
1113
+ children: nr(L.createdAt)
1110
1114
  })] }),
1111
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
1115
+ /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("p", {
1112
1116
  className: "text-text-secondary",
1113
1117
  children: T("vibeDetails.updated", "Updated")
1114
- }), /* @__PURE__ */ C("p", {
1118
+ }), /* @__PURE__ */ S("p", {
1115
1119
  className: "font-medium text-text-primary",
1116
- children: nr(I.updatedAt)
1120
+ children: nr(L.updatedAt)
1117
1121
  })] })
1118
1122
  ]
1119
1123
  })
1120
1124
  })] })
1121
1125
  ]
1122
1126
  }, "overview"),
1123
- H === "profiles" && /* @__PURE__ */ C(x.div, {
1127
+ W === "profiles" && /* @__PURE__ */ S(b.div, {
1124
1128
  initial: {
1125
1129
  opacity: 0,
1126
1130
  y: 8
@@ -1134,9 +1138,9 @@ function bt() {
1134
1138
  y: -8
1135
1139
  },
1136
1140
  transition: { duration: .2 },
1137
- children: /* @__PURE__ */ C(Oe, { agentId: I.id })
1141
+ children: /* @__PURE__ */ S(Oe, { agentId: L.id })
1138
1142
  }, "profiles"),
1139
- H === "security" && /* @__PURE__ */ w(x.div, {
1143
+ W === "security" && /* @__PURE__ */ C(b.div, {
1140
1144
  initial: {
1141
1145
  opacity: 0,
1142
1146
  y: 8
@@ -1152,57 +1156,57 @@ function bt() {
1152
1156
  transition: { duration: .2 },
1153
1157
  className: "space-y-6",
1154
1158
  children: [
1155
- I.tunnelUrl && I.agentApiKey && /* @__PURE__ */ w(d, { children: [/* @__PURE__ */ C("div", {
1159
+ L.tunnelUrl && L.agentApiKey && /* @__PURE__ */ C(d, { children: [/* @__PURE__ */ S("div", {
1156
1160
  className: "p-4 border-b border-border-default",
1157
- children: /* @__PURE__ */ w("h3", {
1161
+ children: /* @__PURE__ */ C("h3", {
1158
1162
  className: "font-semibold text-text-primary flex items-center gap-2",
1159
- children: [/* @__PURE__ */ C(Je, { className: "size-5" }), T("agentDetails.apiAuthentication", "API Authentication")]
1163
+ children: [/* @__PURE__ */ S(Ye, { className: "size-5" }), T("agentDetails.apiAuthentication", "API Authentication")]
1160
1164
  })
1161
- }), /* @__PURE__ */ w("div", {
1165
+ }), /* @__PURE__ */ C("div", {
1162
1166
  className: "p-4 space-y-3",
1163
1167
  children: [
1164
- /* @__PURE__ */ C("p", {
1168
+ /* @__PURE__ */ S("p", {
1165
1169
  className: "text-sm text-text-secondary",
1166
1170
  children: T("agentDetails.apiAuthenticationDescription", "All requests to the agent (except health checks) require authentication. You can pass the API key in two ways:")
1167
1171
  }),
1168
- /* @__PURE__ */ w("div", {
1172
+ /* @__PURE__ */ C("div", {
1169
1173
  className: "space-y-2",
1170
- children: [/* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
1174
+ children: [/* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("p", {
1171
1175
  className: "text-xs font-medium text-text-primary mb-1",
1172
1176
  children: T("agentDetails.authHeaderRecommended", "Header (recommended)")
1173
- }), /* @__PURE__ */ w("code", {
1177
+ }), /* @__PURE__ */ C("code", {
1174
1178
  className: "block text-xs font-mono bg-bg-sunken px-3 py-2 rounded-md text-text-primary overflow-x-auto",
1175
1179
  children: [
1176
1180
  "x-agent-api-key: ",
1177
- I.agentApiKey.slice(0, 12),
1181
+ L.agentApiKey.slice(0, 12),
1178
1182
  "..."
1179
1183
  ]
1180
- })] }), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
1184
+ })] }), /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("p", {
1181
1185
  className: "text-xs font-medium text-text-primary mb-1",
1182
1186
  children: T("agentDetails.authQueryParameter", "URL query parameter")
1183
- }), /* @__PURE__ */ w("code", {
1187
+ }), /* @__PURE__ */ C("code", {
1184
1188
  className: "block text-xs font-mono bg-bg-sunken px-3 py-2 rounded-md text-text-primary overflow-x-auto break-all",
1185
1189
  children: [
1186
- I.tunnelUrl,
1190
+ L.tunnelUrl,
1187
1191
  "/api/health?apiKey=",
1188
- I.agentApiKey.slice(0, 12),
1192
+ L.agentApiKey.slice(0, 12),
1189
1193
  "..."
1190
1194
  ]
1191
1195
  })] })]
1192
1196
  }),
1193
- /* @__PURE__ */ w("p", {
1197
+ /* @__PURE__ */ C("p", {
1194
1198
  className: "text-xs text-text-muted",
1195
1199
  children: [
1196
1200
  T("agentDetails.authExemptPrefix", "The"),
1197
1201
  " ",
1198
- /* @__PURE__ */ C("code", {
1202
+ /* @__PURE__ */ S("code", {
1199
1203
  className: "font-mono",
1200
1204
  children: "/health"
1201
1205
  }),
1202
1206
  " ",
1203
1207
  T("agentDetails.authExemptAnd", "and"),
1204
1208
  " ",
1205
- /* @__PURE__ */ C("code", {
1209
+ /* @__PURE__ */ S("code", {
1206
1210
  className: "font-mono",
1207
1211
  children: "/api/agent/identity"
1208
1212
  }),
@@ -1212,81 +1216,81 @@ function bt() {
1212
1216
  })
1213
1217
  ]
1214
1218
  })] }),
1215
- /* @__PURE__ */ w(d, { children: [/* @__PURE__ */ C("div", {
1219
+ /* @__PURE__ */ C(d, { children: [/* @__PURE__ */ S("div", {
1216
1220
  className: "p-4 border-b border-border-default",
1217
- children: /* @__PURE__ */ w("h3", {
1221
+ children: /* @__PURE__ */ C("h3", {
1218
1222
  className: "font-semibold text-text-primary flex items-center gap-2",
1219
- children: [/* @__PURE__ */ C(Ye, { className: "size-5" }), T("agentDetails.agentApiKey", "Agent API Key")]
1223
+ children: [/* @__PURE__ */ S(Xe, { className: "size-5" }), T("agentDetails.agentApiKey", "Agent API Key")]
1220
1224
  })
1221
- }), /* @__PURE__ */ w("div", {
1225
+ }), /* @__PURE__ */ C("div", {
1222
1226
  className: "p-4",
1223
- children: [I.agentApiKey ? /* @__PURE__ */ w("div", {
1227
+ children: [L.agentApiKey ? /* @__PURE__ */ C("div", {
1224
1228
  className: "flex items-center gap-3",
1225
1229
  children: [
1226
- /* @__PURE__ */ C("div", {
1230
+ /* @__PURE__ */ S("div", {
1227
1231
  className: "flex-1 min-w-0",
1228
- children: /* @__PURE__ */ C("code", {
1232
+ children: /* @__PURE__ */ S("code", {
1229
1233
  className: "text-sm font-mono text-text-primary bg-bg-sunken px-3 py-2 rounded-md block truncate",
1230
- children: k ? I.agentApiKey : "•".repeat(Math.min(I.agentApiKey.length, 32))
1234
+ children: Jt ? L.agentApiKey : "•".repeat(Math.min(L.agentApiKey.length, 32))
1231
1235
  })
1232
1236
  }),
1233
- /* @__PURE__ */ C("button", {
1237
+ /* @__PURE__ */ S("button", {
1234
1238
  type: "button",
1235
- onClick: () => Jt(!k),
1239
+ onClick: () => Yt(!Jt),
1236
1240
  className: "p-2 rounded hover:bg-bg-sunken transition-colors flex-shrink-0",
1237
- title: k ? T("agentDetails.hideApiKey", "Hide API key") : T("agentDetails.showApiKey", "Show API key"),
1238
- children: C(k ? Ge : We, { className: "size-4 text-text-secondary" })
1241
+ title: Jt ? T("agentDetails.hideApiKey", "Hide API key") : T("agentDetails.showApiKey", "Show API key"),
1242
+ children: S(Jt ? Ke : Ge, { className: "size-4 text-text-secondary" })
1239
1243
  }),
1240
- /* @__PURE__ */ C("button", {
1244
+ /* @__PURE__ */ S("button", {
1241
1245
  type: "button",
1242
1246
  onClick: Xn,
1243
1247
  className: "p-2 rounded hover:bg-bg-sunken transition-colors flex-shrink-0",
1244
1248
  title: T("agentDetails.copyApiKey", "Copy API key"),
1245
- children: Yt ? /* @__PURE__ */ C(Ie, { className: "size-4 text-status-success-text" }) : /* @__PURE__ */ C(Be, { className: "size-4 text-text-secondary" })
1249
+ children: Xt ? /* @__PURE__ */ S(Le, { className: "size-4 text-status-success-text" }) : /* @__PURE__ */ S(Ve, { className: "size-4 text-text-secondary" })
1246
1250
  })
1247
1251
  ]
1248
- }) : /* @__PURE__ */ C("p", {
1252
+ }) : /* @__PURE__ */ S("p", {
1249
1253
  className: "text-sm text-text-secondary",
1250
1254
  children: "No API key configured. Set one via the Configure button or agent CLI."
1251
- }), /* @__PURE__ */ C("p", {
1255
+ }), /* @__PURE__ */ S("p", {
1252
1256
  className: "mt-2 text-xs text-text-muted",
1253
1257
  children: "This key authenticates requests sent to the agent. It typically changes on each agent restart."
1254
1258
  })]
1255
1259
  })] }),
1256
- /* @__PURE__ */ C(yt, {
1257
- agent: I,
1258
- onUpdate: () => F()
1260
+ /* @__PURE__ */ S(yt, {
1261
+ agent: L,
1262
+ onUpdate: () => I()
1259
1263
  })
1260
1264
  ]
1261
1265
  }, "security"),
1262
- H === "plugins" && (() => {
1263
- let e = J.toLowerCase(), t = U.filter((t) => !e || t.pluginName.toLowerCase().includes(e) || t.packageName.toLowerCase().includes(e) || t.description?.toLowerCase().includes(e) || t.tags?.some((t) => t.toLowerCase().includes(e))), n = yn.filter((t) => !t.installed && (!e || t.name.toLowerCase().includes(e) || t.packageName.toLowerCase().includes(e) || t.description.toLowerCase().includes(e))), r = U.filter((e) => e.hasUI), i = r.filter((t) => !e || t.pluginName.toLowerCase().includes(e) || t.packageName.toLowerCase().includes(e)), a = [
1266
+ W === "plugins" && (() => {
1267
+ let e = J.toLowerCase(), t = G.filter((t) => !e || t.pluginName.toLowerCase().includes(e) || t.packageName.toLowerCase().includes(e) || t.description?.toLowerCase().includes(e) || t.tags?.some((t) => t.toLowerCase().includes(e))), n = _n.filter((t) => !t.installed && (!e || t.name.toLowerCase().includes(e) || t.packageName.toLowerCase().includes(e) || t.description.toLowerCase().includes(e))), r = G.filter((e) => e.hasUI), i = r.filter((t) => !e || t.pluginName.toLowerCase().includes(e) || t.packageName.toLowerCase().includes(e)), a = [
1264
1268
  {
1265
1269
  id: "installed",
1266
1270
  label: "Installed",
1267
1271
  count: t.length,
1268
- icon: $e
1272
+ icon: v
1269
1273
  },
1270
1274
  {
1271
1275
  id: "available",
1272
1276
  label: "Available",
1273
1277
  count: n.length,
1274
- icon: Ue
1278
+ icon: We
1275
1279
  },
1276
1280
  {
1277
1281
  id: "store",
1278
1282
  label: "Store",
1279
1283
  count: Y.length,
1280
- icon: Ue
1284
+ icon: We
1281
1285
  },
1282
1286
  {
1283
1287
  id: "ui-plugins",
1284
1288
  label: "UI Plugins",
1285
1289
  count: i.length,
1286
- icon: Xe
1290
+ icon: Ze
1287
1291
  }
1288
1292
  ];
1289
- return /* @__PURE__ */ C(x.div, {
1293
+ return /* @__PURE__ */ S(b.div, {
1290
1294
  initial: {
1291
1295
  opacity: 0,
1292
1296
  y: 8
@@ -1301,42 +1305,42 @@ function bt() {
1301
1305
  },
1302
1306
  transition: { duration: .2 },
1303
1307
  className: "space-y-6",
1304
- children: /* @__PURE__ */ w(d, { children: [/* @__PURE__ */ w("div", {
1308
+ children: /* @__PURE__ */ C(d, { children: [/* @__PURE__ */ C("div", {
1305
1309
  className: "p-4 border-b border-border-default space-y-3",
1306
1310
  children: [
1307
- /* @__PURE__ */ w("div", {
1311
+ /* @__PURE__ */ C("div", {
1308
1312
  className: "flex items-center justify-between",
1309
- children: [/* @__PURE__ */ w("h3", {
1313
+ children: [/* @__PURE__ */ C("h3", {
1310
1314
  className: "font-semibold text-text-primary flex items-center gap-2",
1311
1315
  children: [
1312
- /* @__PURE__ */ C($e, { className: "size-5" }),
1316
+ /* @__PURE__ */ S(v, { className: "size-5" }),
1313
1317
  "Plugins",
1314
- U.length > 0 && /* @__PURE__ */ w("span", {
1318
+ G.length > 0 && /* @__PURE__ */ C("span", {
1315
1319
  className: "text-sm font-normal text-text-secondary",
1316
1320
  children: [
1317
1321
  "(",
1318
- U.filter((e) => e.isCore).length,
1322
+ G.filter((e) => e.isCore).length,
1319
1323
  " core,",
1320
1324
  " ",
1321
- U.filter((e) => !e.isCore).length,
1325
+ G.filter((e) => !e.isCore).length,
1322
1326
  " external)"
1323
1327
  ]
1324
1328
  })
1325
1329
  ]
1326
- }), /* @__PURE__ */ C("button", {
1330
+ }), /* @__PURE__ */ S("button", {
1327
1331
  type: "button",
1328
1332
  onClick: X,
1329
- disabled: xn,
1333
+ disabled: yn,
1330
1334
  className: "p-1.5 text-text-secondary hover:bg-bg-sunken rounded transition-colors disabled:opacity-50",
1331
1335
  title: T("agentDetails.refreshPlugins", "Refresh plugins"),
1332
- children: /* @__PURE__ */ C(et, { className: `size-4 ${xn ? "animate-spin" : ""}` })
1336
+ children: /* @__PURE__ */ S(et, { className: `size-4 ${yn ? "animate-spin" : ""}` })
1333
1337
  })]
1334
1338
  }),
1335
- /* @__PURE__ */ w("div", {
1339
+ /* @__PURE__ */ C("div", {
1336
1340
  className: "relative",
1337
1341
  children: [
1338
- /* @__PURE__ */ C(nt, { className: "absolute left-3 top-1/2 -translate-y-1/2 size-4 text-text-muted" }),
1339
- /* @__PURE__ */ C("input", {
1342
+ /* @__PURE__ */ S(nt, { className: "absolute left-3 top-1/2 -translate-y-1/2 size-4 text-text-muted" }),
1343
+ /* @__PURE__ */ S("input", {
1340
1344
  "aria-label": "control",
1341
1345
  type: "text",
1342
1346
  value: J,
@@ -1344,26 +1348,26 @@ function bt() {
1344
1348
  placeholder: T("agentDetails.searchPluginsPlaceholder", "Search plugins by name, package, description, or tag..."),
1345
1349
  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"
1346
1350
  }),
1347
- J && /* @__PURE__ */ C("button", {
1351
+ J && /* @__PURE__ */ S("button", {
1348
1352
  type: "button",
1349
1353
  onClick: () => An(""),
1350
1354
  className: "absolute right-2 top-1/2 -translate-y-1/2 p-0.5 text-text-muted hover:text-text-secondary rounded",
1351
- children: /* @__PURE__ */ C(y, { className: "size-3.5" })
1355
+ children: /* @__PURE__ */ S(y, { className: "size-3.5" })
1352
1356
  })
1353
1357
  ]
1354
1358
  }),
1355
- /* @__PURE__ */ C("div", {
1359
+ /* @__PURE__ */ S("div", {
1356
1360
  className: "flex gap-1 border-b border-border-default -mx-4 overflow-x-auto px-4 pb-1",
1357
1361
  children: a.map((e) => {
1358
- let t = K === e.id, n = e.icon;
1359
- return /* @__PURE__ */ w("button", {
1362
+ let t = q === e.id, n = e.icon;
1363
+ return /* @__PURE__ */ C("button", {
1360
1364
  type: "button",
1361
- onClick: () => q(e.id),
1365
+ onClick: () => kn(e.id),
1362
1366
  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-text" : "border-transparent text-text-secondary hover:text-text-primary hover:border-border-default"}`,
1363
1367
  children: [
1364
- /* @__PURE__ */ C(n, { className: "size-3.5" }),
1368
+ /* @__PURE__ */ S(n, { className: "size-3.5" }),
1365
1369
  e.label,
1366
- /* @__PURE__ */ C("span", {
1370
+ /* @__PURE__ */ S("span", {
1367
1371
  className: `text-xs px-1.5 py-0.5 rounded-full ${t ? "bg-action-primary-bg/15 text-action-primary-bg" : "bg-bg-secondary text-text-muted"}`,
1368
1372
  children: e.count
1369
1373
  })
@@ -1372,90 +1376,90 @@ function bt() {
1372
1376
  })
1373
1377
  })
1374
1378
  ]
1375
- }), /* @__PURE__ */ w("div", {
1379
+ }), /* @__PURE__ */ C("div", {
1376
1380
  className: "p-4 space-y-4",
1377
1381
  children: [
1378
- wn && /* @__PURE__ */ w("div", {
1382
+ Cn && /* @__PURE__ */ C("div", {
1379
1383
  className: "flex items-center gap-2 p-3 bg-status-error-bg text-status-error-text rounded-md text-sm",
1380
1384
  children: [
1381
- /* @__PURE__ */ C(y, { className: "size-4 flex-shrink-0" }),
1382
- /* @__PURE__ */ C("span", {
1385
+ /* @__PURE__ */ S(y, { className: "size-4 flex-shrink-0" }),
1386
+ /* @__PURE__ */ S("span", {
1383
1387
  className: "flex-1",
1384
- children: wn
1388
+ children: Cn
1385
1389
  }),
1386
- /* @__PURE__ */ C("button", {
1390
+ /* @__PURE__ */ S("button", {
1387
1391
  type: "button",
1388
- onClick: () => G(null),
1392
+ onClick: () => K(null),
1389
1393
  className: "flex-shrink-0 p-0.5 hover:bg-status-error-text/10 rounded",
1390
- children: /* @__PURE__ */ C(y, { className: "size-3.5" })
1394
+ children: /* @__PURE__ */ S(y, { className: "size-3.5" })
1391
1395
  })
1392
1396
  ]
1393
1397
  }),
1394
- !I?.isActive && /* @__PURE__ */ w("p", {
1398
+ !L?.isActive && /* @__PURE__ */ C("p", {
1395
1399
  className: "text-sm text-text-muted flex items-center gap-1.5",
1396
- children: [/* @__PURE__ */ C(Je, { className: "size-4 flex-shrink-0" }), "Agent is offline — showing known plugin catalog. Live data will load when the agent is reachable."]
1400
+ children: [/* @__PURE__ */ S(Ye, { className: "size-4 flex-shrink-0" }), "Agent is offline — showing known plugin catalog. Live data will load when the agent is reachable."]
1397
1401
  }),
1398
- K === "installed" && /* @__PURE__ */ C(S, { children: t.length > 0 ? /* @__PURE__ */ C("div", {
1402
+ q === "installed" && /* @__PURE__ */ S(x, { children: t.length > 0 ? /* @__PURE__ */ S("div", {
1399
1403
  className: "space-y-2",
1400
- children: t.map((e) => /* @__PURE__ */ w("div", {
1404
+ children: t.map((e) => /* @__PURE__ */ C("div", {
1401
1405
  className: "flex flex-col sm:flex-row sm:items-center justify-between gap-2 p-3 bg-bg-sunken rounded-lg",
1402
- children: [/* @__PURE__ */ w("div", {
1406
+ children: [/* @__PURE__ */ C("div", {
1403
1407
  className: "min-w-0",
1404
1408
  children: [
1405
- /* @__PURE__ */ w("p", {
1409
+ /* @__PURE__ */ C("p", {
1406
1410
  className: "text-sm font-medium text-text-primary flex items-center gap-1.5 flex-wrap",
1407
1411
  children: [
1408
1412
  e.pluginName,
1409
- /* @__PURE__ */ C("span", {
1413
+ /* @__PURE__ */ S("span", {
1410
1414
  className: "text-xs text-text-muted font-normal",
1411
1415
  children: e.version === "latest" ? e.version : `v${e.version}`
1412
1416
  }),
1413
- e.isCore && /* @__PURE__ */ C("span", {
1417
+ e.isCore && /* @__PURE__ */ S("span", {
1414
1418
  className: "inline-flex items-center px-1.5 py-0.5 text-xs bg-action-primary-bg/10 text-action-primary-bg rounded border border-action-primary-bg/20",
1415
1419
  children: "core"
1416
1420
  }),
1417
- e.loaded && /* @__PURE__ */ C("span", {
1421
+ e.loaded && /* @__PURE__ */ S("span", {
1418
1422
  className: "inline-flex items-center px-1.5 py-0.5 text-xs bg-status-success-bg text-status-success-text rounded",
1419
1423
  children: "loaded"
1420
1424
  }),
1421
- e.hasProviders && /* @__PURE__ */ C("span", {
1425
+ e.hasProviders && /* @__PURE__ */ S("span", {
1422
1426
  className: "inline-flex items-center px-1.5 py-0.5 text-xs bg-status-warning-bg-subtle text-status-warning-text rounded",
1423
1427
  children: "provider"
1424
1428
  }),
1425
- e.hasUI && /* @__PURE__ */ C("span", {
1429
+ e.hasUI && /* @__PURE__ */ S("span", {
1426
1430
  className: "inline-flex items-center px-1.5 py-0.5 text-xs bg-accent-purple-subtle text-accent-purple rounded",
1427
1431
  children: "ui"
1428
1432
  })
1429
1433
  ]
1430
1434
  }),
1431
- e.description && /* @__PURE__ */ C("p", {
1435
+ e.description && /* @__PURE__ */ S("p", {
1432
1436
  className: "text-xs text-text-secondary mt-0.5",
1433
1437
  children: e.description
1434
1438
  }),
1435
- /* @__PURE__ */ w("div", {
1439
+ /* @__PURE__ */ C("div", {
1436
1440
  className: "flex items-center gap-2 mt-0.5 flex-wrap",
1437
1441
  children: [
1438
- !e.isCore && /* @__PURE__ */ C("span", {
1442
+ !e.isCore && /* @__PURE__ */ S("span", {
1439
1443
  className: "text-xs text-text-muted font-mono",
1440
1444
  children: e.packageName
1441
1445
  }),
1442
- e.cliCommand && /* @__PURE__ */ w("span", {
1446
+ e.cliCommand && /* @__PURE__ */ C("span", {
1443
1447
  className: "text-xs text-text-muted",
1444
1448
  children: [
1445
1449
  "cli:",
1446
1450
  " ",
1447
- /* @__PURE__ */ w("code", {
1451
+ /* @__PURE__ */ C("code", {
1448
1452
  className: "text-xs font-mono",
1449
1453
  children: ["vibe ", e.cliCommand]
1450
1454
  })
1451
1455
  ]
1452
1456
  }),
1453
- e.apiPrefix && /* @__PURE__ */ w("span", {
1457
+ e.apiPrefix && /* @__PURE__ */ C("span", {
1454
1458
  className: "text-xs text-text-muted",
1455
1459
  children: [
1456
1460
  "api:",
1457
1461
  " ",
1458
- /* @__PURE__ */ C("code", {
1462
+ /* @__PURE__ */ S("code", {
1459
1463
  className: "text-xs font-mono",
1460
1464
  children: e.apiPrefix
1461
1465
  })
@@ -1463,125 +1467,125 @@ function bt() {
1463
1467
  })
1464
1468
  ]
1465
1469
  }),
1466
- e.tags && e.tags.length > 0 && /* @__PURE__ */ C("div", {
1470
+ e.tags && e.tags.length > 0 && /* @__PURE__ */ S("div", {
1467
1471
  className: "flex gap-1 mt-1 flex-wrap",
1468
- children: e.tags.map((e) => /* @__PURE__ */ C("span", {
1472
+ children: e.tags.map((e) => /* @__PURE__ */ S("span", {
1469
1473
  className: "inline-flex px-1.5 py-0.5 text-[10px] bg-bg-secondary text-text-muted rounded",
1470
1474
  children: e
1471
1475
  }, e))
1472
1476
  })
1473
1477
  ]
1474
- }), /* @__PURE__ */ w("div", {
1478
+ }), /* @__PURE__ */ C("div", {
1475
1479
  className: "flex items-center gap-2 flex-shrink-0 sm:ml-3",
1476
- children: [e.hasUI && /* @__PURE__ */ w("button", {
1480
+ children: [e.hasUI && /* @__PURE__ */ C("button", {
1477
1481
  type: "button",
1478
- onClick: () => q("ui-plugins"),
1482
+ onClick: () => kn("ui-plugins"),
1479
1483
  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",
1480
1484
  title: `Open ${e.pluginName} UI`,
1481
- children: [/* @__PURE__ */ C(Xe, { className: "size-3" }), "Open UI"]
1482
- }), !e.isCore && /* @__PURE__ */ w("button", {
1485
+ children: [/* @__PURE__ */ S(Ze, { className: "size-3" }), "Open UI"]
1486
+ }), !e.isCore && /* @__PURE__ */ C("button", {
1483
1487
  type: "button",
1484
1488
  onClick: () => Hn(e.packageName),
1485
- disabled: W === e.packageName,
1489
+ disabled: xn === e.packageName,
1486
1490
  className: "flex items-center gap-1.5 px-2.5 py-1.5 text-xs text-status-error-text bg-status-error-bg rounded-md hover:bg-status-error-bg/80 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",
1487
- children: [W === e.packageName ? /* @__PURE__ */ C(v, { className: "size-3 animate-spin" }) : /* @__PURE__ */ C(lt, { className: "size-3" }), "Remove"]
1491
+ children: [xn === e.packageName ? /* @__PURE__ */ S(_, { className: "size-3 animate-spin" }) : /* @__PURE__ */ S(lt, { className: "size-3" }), "Remove"]
1488
1492
  })]
1489
1493
  })]
1490
1494
  }, e.packageName))
1491
- }) : /* @__PURE__ */ C("p", {
1495
+ }) : /* @__PURE__ */ S("p", {
1492
1496
  className: "text-sm text-text-muted",
1493
1497
  children: J ? "No installed plugins match your search." : "No plugin data available. Check agent connectivity or refresh."
1494
1498
  }) }),
1495
- K === "available" && /* @__PURE__ */ C(S, { children: n.length > 0 ? /* @__PURE__ */ C("div", {
1499
+ q === "available" && /* @__PURE__ */ S(x, { children: n.length > 0 ? /* @__PURE__ */ S("div", {
1496
1500
  className: "space-y-2",
1497
- children: n.map((e) => /* @__PURE__ */ w("div", {
1501
+ children: n.map((e) => /* @__PURE__ */ C("div", {
1498
1502
  className: "flex flex-col sm:flex-row sm:items-center justify-between gap-2 p-3 bg-bg-sunken rounded-lg",
1499
- children: [/* @__PURE__ */ w("div", {
1503
+ children: [/* @__PURE__ */ C("div", {
1500
1504
  className: "min-w-0",
1501
1505
  children: [
1502
- /* @__PURE__ */ C("p", {
1506
+ /* @__PURE__ */ S("p", {
1503
1507
  className: "text-sm font-medium text-text-primary",
1504
1508
  children: e.name
1505
1509
  }),
1506
- /* @__PURE__ */ C("p", {
1510
+ /* @__PURE__ */ S("p", {
1507
1511
  className: "text-xs text-text-secondary mt-0.5",
1508
1512
  children: e.description
1509
1513
  }),
1510
- /* @__PURE__ */ C("p", {
1514
+ /* @__PURE__ */ S("p", {
1511
1515
  className: "text-xs text-text-muted font-mono mt-0.5",
1512
1516
  children: e.packageName
1513
1517
  })
1514
1518
  ]
1515
- }), /* @__PURE__ */ w("button", {
1519
+ }), /* @__PURE__ */ C("button", {
1516
1520
  type: "button",
1517
1521
  onClick: () => Vn(e.packageName),
1518
- disabled: W === e.packageName,
1522
+ disabled: xn === e.packageName,
1519
1523
  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",
1520
- children: [W === e.packageName ? /* @__PURE__ */ C(v, { className: "size-3 animate-spin" }) : /* @__PURE__ */ C(Ue, { className: "size-3" }), "Install"]
1524
+ children: [xn === e.packageName ? /* @__PURE__ */ S(_, { className: "size-3 animate-spin" }) : /* @__PURE__ */ S(We, { className: "size-3" }), "Install"]
1521
1525
  })]
1522
1526
  }, e.packageName))
1523
- }) : /* @__PURE__ */ C("p", {
1527
+ }) : /* @__PURE__ */ S("p", {
1524
1528
  className: "text-sm text-text-muted",
1525
- children: J ? "No available plugins match your search." : yn.every((e) => e.installed) ? "All available plugins are already installed." : "No available plugins found."
1529
+ children: J ? "No available plugins match your search." : _n.every((e) => e.installed) ? "All available plugins are already installed." : "No available plugins found."
1526
1530
  }) }),
1527
- K === "store" && /* @__PURE__ */ w(S, { children: [Pn && /* @__PURE__ */ w("div", {
1531
+ q === "store" && /* @__PURE__ */ C(x, { children: [Pn && /* @__PURE__ */ C("div", {
1528
1532
  className: "flex items-center gap-2 p-3 bg-status-error-bg text-status-error-text rounded-md text-sm",
1529
- children: [/* @__PURE__ */ C(y, { className: "size-4 flex-shrink-0" }), /* @__PURE__ */ C("span", {
1533
+ children: [/* @__PURE__ */ S(y, { className: "size-4 flex-shrink-0" }), /* @__PURE__ */ S("span", {
1530
1534
  className: "flex-1",
1531
1535
  children: Pn
1532
1536
  })]
1533
- }), Mn ? /* @__PURE__ */ C("p", {
1537
+ }), Mn ? /* @__PURE__ */ S("p", {
1534
1538
  className: "text-sm text-text-muted",
1535
1539
  children: "Loading purchased plugins…"
1536
- }) : Y.length === 0 ? /* @__PURE__ */ w("div", {
1540
+ }) : Y.length === 0 ? /* @__PURE__ */ C("div", {
1537
1541
  className: "py-8 text-center",
1538
- children: [/* @__PURE__ */ C("p", {
1542
+ children: [/* @__PURE__ */ S("p", {
1539
1543
  className: "text-sm text-text-muted",
1540
1544
  children: "No plugins purchased from the Burdenoff store yet."
1541
- }), /* @__PURE__ */ C("a", {
1545
+ }), /* @__PURE__ */ S("a", {
1542
1546
  href: "/store/marketplace",
1543
1547
  className: "mt-2 inline-flex items-center gap-1 text-xs font-semibold text-action-primary-text hover:underline",
1544
1548
  children: "Browse the store →"
1545
1549
  })]
1546
- }) : /* @__PURE__ */ C("div", {
1550
+ }) : /* @__PURE__ */ S("div", {
1547
1551
  className: "space-y-2",
1548
1552
  children: Y.map((e) => {
1549
- let t = (e.product?.manifest ?? {}).digital?.install, n = typeof t?.packageName == "string" ? t.packageName : null, r = U.some((e) => e.packageName === n);
1550
- return /* @__PURE__ */ w("div", {
1553
+ let t = (e.product?.manifest ?? {}).digital?.install, n = typeof t?.packageName == "string" ? t.packageName : null, r = G.some((e) => e.packageName === n);
1554
+ return /* @__PURE__ */ C("div", {
1551
1555
  className: "flex flex-col sm:flex-row sm:items-center justify-between gap-2 p-3 bg-bg-sunken rounded-lg",
1552
- children: [/* @__PURE__ */ w("div", {
1556
+ children: [/* @__PURE__ */ C("div", {
1553
1557
  className: "flex items-start gap-3 min-w-0 flex-1",
1554
- children: [e.product?.icon ? /* @__PURE__ */ C("img", {
1558
+ children: [e.product?.icon ? /* @__PURE__ */ S("img", {
1555
1559
  src: e.product.icon,
1556
1560
  alt: "",
1557
1561
  className: "size-10 rounded-md object-cover flex-shrink-0"
1558
- }) : /* @__PURE__ */ C("div", {
1562
+ }) : /* @__PURE__ */ S("div", {
1559
1563
  className: "size-10 flex-shrink-0 rounded-md bg-bg-secondary flex items-center justify-center",
1560
- children: /* @__PURE__ */ C($e, { className: "size-5 text-text-muted" })
1561
- }), /* @__PURE__ */ w("div", {
1564
+ children: /* @__PURE__ */ S(v, { className: "size-5 text-text-muted" })
1565
+ }), /* @__PURE__ */ C("div", {
1562
1566
  className: "min-w-0 flex-1",
1563
1567
  children: [
1564
- /* @__PURE__ */ w("div", {
1568
+ /* @__PURE__ */ C("div", {
1565
1569
  className: "flex items-center gap-2",
1566
- children: [/* @__PURE__ */ C("h4", {
1570
+ children: [/* @__PURE__ */ S("h4", {
1567
1571
  className: "text-sm font-semibold text-text-primary truncate",
1568
1572
  children: e.product?.name ?? "Unknown"
1569
- }), e.licenseKey && /* @__PURE__ */ C("span", {
1573
+ }), e.licenseKey && /* @__PURE__ */ S("span", {
1570
1574
  className: "text-[10px] bg-status-success-bg text-status-success-text px-1.5 py-0.5 rounded-full",
1571
1575
  children: "Licensed"
1572
1576
  })]
1573
1577
  }),
1574
- n && /* @__PURE__ */ C("p", {
1578
+ n && /* @__PURE__ */ S("p", {
1575
1579
  className: "text-xs text-text-muted font-mono truncate",
1576
1580
  children: n
1577
1581
  }),
1578
- e.product?.description && /* @__PURE__ */ C("p", {
1582
+ e.product?.description && /* @__PURE__ */ S("p", {
1579
1583
  className: "text-xs text-text-secondary line-clamp-2 mt-1",
1580
1584
  children: e.product.description
1581
1585
  })
1582
1586
  ]
1583
1587
  })]
1584
- }), /* @__PURE__ */ C("button", {
1588
+ }), /* @__PURE__ */ S("button", {
1585
1589
  type: "button",
1586
1590
  onClick: () => void Wn(e.productId, e.licenseKey),
1587
1591
  disabled: r || In === e.productId || !n,
@@ -1591,8 +1595,8 @@ function bt() {
1591
1595
  }, e.id);
1592
1596
  })
1593
1597
  })] }),
1594
- K === "ui-plugins" && /* @__PURE__ */ C(S, { children: r.length > 0 || I?.tunnelUrl ? /* @__PURE__ */ C(we, {
1595
- availablePlugins: [...I?.tunnelUrl ? [{
1598
+ q === "ui-plugins" && /* @__PURE__ */ S(x, { children: r.length > 0 || L?.tunnelUrl ? /* @__PURE__ */ S(we, {
1599
+ availablePlugins: [...L?.tunnelUrl ? [{
1596
1600
  pluginName: "code-server",
1597
1601
  displayName: "Code Server (VS Code)",
1598
1602
  description: "Browser-based VS Code editor",
@@ -1604,21 +1608,21 @@ function bt() {
1604
1608
  description: e.description,
1605
1609
  version: e.version
1606
1610
  }))],
1607
- tunnelUrl: I?.tunnelUrl || null,
1608
- agentApiKey: I?.agentApiKey
1609
- }) : /* @__PURE__ */ C("p", {
1611
+ tunnelUrl: L?.tunnelUrl || null,
1612
+ agentApiKey: L?.agentApiKey
1613
+ }) : /* @__PURE__ */ S("p", {
1610
1614
  className: "text-sm text-text-muted",
1611
1615
  children: J ? "No UI plugins match your search." : "No plugins with UI are currently installed."
1612
1616
  }) }),
1613
- xn && U.length === 0 && /* @__PURE__ */ w("div", {
1617
+ yn && G.length === 0 && /* @__PURE__ */ C("div", {
1614
1618
  className: "flex items-center gap-2 text-sm text-text-secondary",
1615
- children: [/* @__PURE__ */ C(v, { className: "size-4 animate-spin" }), "Loading plugins..."]
1619
+ children: [/* @__PURE__ */ S(_, { className: "size-4 animate-spin" }), "Loading plugins..."]
1616
1620
  })
1617
1621
  ]
1618
1622
  })] })
1619
1623
  }, "plugins");
1620
1624
  })(),
1621
- H === "sessions" && /* @__PURE__ */ C(x.div, {
1625
+ W === "sessions" && /* @__PURE__ */ S(b.div, {
1622
1626
  initial: {
1623
1627
  opacity: 0,
1624
1628
  y: 8
@@ -1632,31 +1636,31 @@ function bt() {
1632
1636
  y: -8
1633
1637
  },
1634
1638
  transition: { duration: .2 },
1635
- children: /* @__PURE__ */ w(d, { children: [/* @__PURE__ */ w("div", {
1639
+ children: /* @__PURE__ */ C(d, { children: [/* @__PURE__ */ C("div", {
1636
1640
  className: "p-4 border-b border-border-default flex items-center justify-between gap-3 flex-wrap",
1637
- children: [/* @__PURE__ */ w("h3", {
1641
+ children: [/* @__PURE__ */ C("h3", {
1638
1642
  className: "font-semibold text-text-primary flex items-center gap-2",
1639
1643
  children: [
1640
- /* @__PURE__ */ C(ct, { className: "size-5" }),
1644
+ /* @__PURE__ */ S(ct, { className: "size-5" }),
1641
1645
  T("nav.sessions", "Sessions"),
1642
1646
  " (",
1643
1647
  Z.length,
1644
1648
  ")"
1645
1649
  ]
1646
- }), /* @__PURE__ */ C(_t, {
1650
+ }), /* @__PURE__ */ S(_t, {
1647
1651
  permission: ye.SESSION_CREATE,
1648
1652
  deniedBehavior: "disable",
1649
1653
  deniedTooltip: "You don't have permission to create sessions",
1650
- children: /* @__PURE__ */ w("button", {
1654
+ children: /* @__PURE__ */ C("button", {
1651
1655
  "data-testid": "create-session-btn",
1652
1656
  onClick: $n,
1653
1657
  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",
1654
- children: [/* @__PURE__ */ C(Qe, { className: "w-4 h-4" }), T("sessions.createSession", "Create Session")]
1658
+ children: [/* @__PURE__ */ S($e, { className: "w-4 h-4" }), T("sessions.createSession", "Create Session")]
1655
1659
  })
1656
1660
  })]
1657
- }), Z.length > 0 ? /* @__PURE__ */ C("div", {
1661
+ }), Z.length > 0 ? /* @__PURE__ */ S("div", {
1658
1662
  className: "divide-y divide-border-primary",
1659
- children: Z.map((e) => /* @__PURE__ */ w("div", {
1663
+ children: Z.map((e) => /* @__PURE__ */ C("div", {
1660
1664
  role: "button",
1661
1665
  tabIndex: 0,
1662
1666
  onKeyDown: (t) => {
@@ -1664,36 +1668,36 @@ function bt() {
1664
1668
  },
1665
1669
  onClick: () => Qn(e.id),
1666
1670
  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",
1667
- children: [/* @__PURE__ */ w("div", {
1671
+ children: [/* @__PURE__ */ C("div", {
1668
1672
  className: "flex items-center gap-3 min-w-0",
1669
- children: [/* @__PURE__ */ C(ct, { className: "size-5 text-text-secondary flex-shrink-0" }), /* @__PURE__ */ w("div", {
1673
+ children: [/* @__PURE__ */ S(ct, { className: "size-5 text-text-secondary flex-shrink-0" }), /* @__PURE__ */ C("div", {
1670
1674
  className: "min-w-0",
1671
- children: [/* @__PURE__ */ C("p", {
1675
+ children: [/* @__PURE__ */ S("p", {
1672
1676
  className: "font-medium text-text-primary truncate",
1673
1677
  children: e.name
1674
- }), /* @__PURE__ */ C("p", {
1678
+ }), /* @__PURE__ */ S("p", {
1675
1679
  className: "text-sm text-text-secondary truncate",
1676
1680
  children: e.type
1677
1681
  })]
1678
1682
  })]
1679
- }), /* @__PURE__ */ C(_e, { status: e.status })]
1683
+ }), /* @__PURE__ */ S(_e, { status: e.status })]
1680
1684
  }, e.id))
1681
- }) : /* @__PURE__ */ w("div", {
1685
+ }) : /* @__PURE__ */ C("div", {
1682
1686
  className: "p-6 text-center text-text-secondary flex flex-col items-center gap-3",
1683
- children: [/* @__PURE__ */ C("span", { children: T("agentDetails.noSessionsOnAgent", "No sessions on this agent") }), /* @__PURE__ */ C(_t, {
1687
+ children: [/* @__PURE__ */ S("span", { children: T("agentDetails.noSessionsOnAgent", "No sessions on this agent") }), /* @__PURE__ */ S(_t, {
1684
1688
  permission: ye.SESSION_CREATE,
1685
1689
  deniedBehavior: "disable",
1686
1690
  deniedTooltip: "You don't have permission to create sessions",
1687
- children: /* @__PURE__ */ w("button", {
1691
+ children: /* @__PURE__ */ C("button", {
1688
1692
  "data-testid": "create-session-empty-btn",
1689
1693
  onClick: $n,
1690
1694
  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",
1691
- children: [/* @__PURE__ */ C(Qe, { className: "w-4 h-4" }), T("sessions.createSession", "Create Session")]
1695
+ children: [/* @__PURE__ */ S($e, { className: "w-4 h-4" }), T("sessions.createSession", "Create Session")]
1692
1696
  })
1693
1697
  })]
1694
1698
  })] })
1695
1699
  }, "sessions"),
1696
- H === "logs" && /* @__PURE__ */ C(x.div, {
1700
+ W === "logs" && /* @__PURE__ */ S(b.div, {
1697
1701
  initial: {
1698
1702
  opacity: 0,
1699
1703
  y: 8
@@ -1707,22 +1711,22 @@ function bt() {
1707
1711
  y: -8
1708
1712
  },
1709
1713
  transition: { duration: .2 },
1710
- children: /* @__PURE__ */ w(d, { children: [/* @__PURE__ */ C("div", {
1714
+ children: /* @__PURE__ */ C(d, { children: [/* @__PURE__ */ S("div", {
1711
1715
  className: "p-4 border-b border-border-default flex items-center justify-between",
1712
- children: /* @__PURE__ */ w("h3", {
1716
+ children: /* @__PURE__ */ C("h3", {
1713
1717
  className: "font-semibold text-text-primary flex items-center gap-2",
1714
- children: [/* @__PURE__ */ C(tt, { className: "size-5" }), T("nav.logs", "Logs")]
1718
+ children: [/* @__PURE__ */ S(tt, { className: "size-5" }), T("nav.logs", "Logs")]
1715
1719
  })
1716
- }), /* @__PURE__ */ C("div", {
1720
+ }), /* @__PURE__ */ S("div", {
1717
1721
  className: "p-4",
1718
- children: /* @__PURE__ */ C(De, {
1719
- agentId: I.id,
1720
- profile: z,
1722
+ children: /* @__PURE__ */ S(De, {
1723
+ agentId: L.id,
1724
+ profile: V,
1721
1725
  className: "min-h-[28rem]"
1722
1726
  })
1723
1727
  })] })
1724
1728
  }, "logs"),
1725
- H === "vibes" && /* @__PURE__ */ C(x.div, {
1729
+ W === "vibes" && /* @__PURE__ */ S(b.div, {
1726
1730
  initial: {
1727
1731
  opacity: 0,
1728
1732
  y: 8
@@ -1736,21 +1740,21 @@ function bt() {
1736
1740
  y: -8
1737
1741
  },
1738
1742
  transition: { duration: .2 },
1739
- children: /* @__PURE__ */ w(d, { children: [/* @__PURE__ */ C("div", {
1743
+ children: /* @__PURE__ */ C(d, { children: [/* @__PURE__ */ S("div", {
1740
1744
  className: "p-4 border-b border-border-default flex items-center justify-between",
1741
- children: /* @__PURE__ */ w("h3", {
1745
+ children: /* @__PURE__ */ C("h3", {
1742
1746
  className: "font-semibold text-text-primary flex items-center gap-2",
1743
1747
  children: [
1744
- /* @__PURE__ */ C(b, { className: "size-5" }),
1748
+ /* @__PURE__ */ S(ft, { className: "size-5" }),
1745
1749
  T("nav.vibes", "Vibes"),
1746
1750
  " (",
1747
1751
  Q.length,
1748
1752
  ")"
1749
1753
  ]
1750
1754
  })
1751
- }), Q.length > 0 ? /* @__PURE__ */ C("div", {
1755
+ }), Q.length > 0 ? /* @__PURE__ */ S("div", {
1752
1756
  className: "divide-y divide-border-primary",
1753
- children: Q.map((e) => /* @__PURE__ */ w("div", {
1757
+ children: Q.map((e) => /* @__PURE__ */ C("div", {
1754
1758
  role: "button",
1755
1759
  tabIndex: 0,
1756
1760
  onKeyDown: (t) => {
@@ -1758,26 +1762,26 @@ function bt() {
1758
1762
  },
1759
1763
  onClick: () => tr(e.id),
1760
1764
  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",
1761
- children: [/* @__PURE__ */ w("div", {
1765
+ children: [/* @__PURE__ */ C("div", {
1762
1766
  className: "flex items-center gap-3 min-w-0",
1763
- children: [/* @__PURE__ */ C(b, { className: "size-5 text-text-secondary flex-shrink-0" }), /* @__PURE__ */ w("div", {
1767
+ children: [/* @__PURE__ */ S(ft, { className: "size-5 text-text-secondary flex-shrink-0" }), /* @__PURE__ */ C("div", {
1764
1768
  className: "min-w-0",
1765
- children: [/* @__PURE__ */ C("p", {
1769
+ children: [/* @__PURE__ */ S("p", {
1766
1770
  className: "font-medium text-text-primary truncate",
1767
1771
  children: e.name
1768
- }), /* @__PURE__ */ C("p", {
1772
+ }), /* @__PURE__ */ S("p", {
1769
1773
  className: "text-sm text-text-secondary truncate",
1770
1774
  children: e.type
1771
1775
  })]
1772
1776
  })]
1773
- }), /* @__PURE__ */ C(_e, { status: e.status })]
1777
+ }), /* @__PURE__ */ S(_e, { status: e.status })]
1774
1778
  }, e.id))
1775
- }) : /* @__PURE__ */ C("div", {
1779
+ }) : /* @__PURE__ */ S("div", {
1776
1780
  className: "p-6 text-center text-text-secondary",
1777
1781
  children: T("agentDetails.noVibesUsingAgent", "No vibes using this agent")
1778
1782
  })] })
1779
1783
  }, "vibes"),
1780
- H === "notes" && /* @__PURE__ */ C(x.div, {
1784
+ W === "notes" && /* @__PURE__ */ S(b.div, {
1781
1785
  initial: {
1782
1786
  opacity: 0,
1783
1787
  y: 8
@@ -1792,7 +1796,7 @@ function bt() {
1792
1796
  },
1793
1797
  transition: { duration: .2 },
1794
1798
  className: "space-y-6",
1795
- children: /* @__PURE__ */ C(ke, {
1799
+ children: /* @__PURE__ */ S(ke, {
1796
1800
  context: "agent",
1797
1801
  agentVibes: Q.map((e) => ({
1798
1802
  id: e.id,
@@ -1800,7 +1804,7 @@ function bt() {
1800
1804
  }))
1801
1805
  })
1802
1806
  }, "notes"),
1803
- H === "aliases" && /* @__PURE__ */ C(x.div, {
1807
+ W === "aliases" && /* @__PURE__ */ S(b.div, {
1804
1808
  initial: {
1805
1809
  opacity: 0,
1806
1810
  y: 8
@@ -1815,12 +1819,12 @@ function bt() {
1815
1819
  },
1816
1820
  transition: { duration: .2 },
1817
1821
  className: "space-y-6",
1818
- children: /* @__PURE__ */ C(Se, { agent: {
1819
- id: I.id,
1820
- profile: I.metadata?.profile ?? "default"
1822
+ children: /* @__PURE__ */ S(Se, { agent: {
1823
+ id: L.id,
1824
+ profile: L.metadata?.profile ?? "default"
1821
1825
  } })
1822
1826
  }, "aliases"),
1823
- H === "backup" && I.tunnelUrl && I.agentApiKey && /* @__PURE__ */ C(x.div, {
1827
+ W === "backup" && L.tunnelUrl && L.agentApiKey && /* @__PURE__ */ S(b.div, {
1824
1828
  initial: {
1825
1829
  opacity: 0,
1826
1830
  y: 8
@@ -1834,13 +1838,13 @@ function bt() {
1834
1838
  y: -8
1835
1839
  },
1836
1840
  transition: { duration: .2 },
1837
- children: /* @__PURE__ */ C(xe, {
1838
- agentTunnelUrl: I.tunnelUrl,
1839
- agentApiKey: I.agentApiKey,
1840
- profile: z
1841
+ children: /* @__PURE__ */ S(xe, {
1842
+ agentTunnelUrl: L.tunnelUrl,
1843
+ agentApiKey: L.agentApiKey,
1844
+ profile: V
1841
1845
  })
1842
1846
  }, "backup"),
1843
- H === "backup" && (!I.tunnelUrl || !I.agentApiKey) && /* @__PURE__ */ C(x.div, {
1847
+ W === "backup" && (!L.tunnelUrl || !L.agentApiKey) && /* @__PURE__ */ S(b.div, {
1844
1848
  initial: {
1845
1849
  opacity: 0,
1846
1850
  y: 8
@@ -1854,21 +1858,21 @@ function bt() {
1854
1858
  y: -8
1855
1859
  },
1856
1860
  transition: { duration: .2 },
1857
- children: /* @__PURE__ */ w(d, {
1861
+ children: /* @__PURE__ */ C(d, {
1858
1862
  className: "p-6 text-center text-text-secondary",
1859
1863
  children: [
1860
- /* @__PURE__ */ C(He, { className: "size-8 mx-auto mb-2 text-text-muted" }),
1861
- /* @__PURE__ */ C("p", { children: T("agentDetails.backupRequiresTunnelAndApiKey", "Agent tunnel URL and API key are required for backup management.") }),
1862
- /* @__PURE__ */ C("p", {
1864
+ /* @__PURE__ */ S(Ue, { className: "size-8 mx-auto mb-2 text-text-muted" }),
1865
+ /* @__PURE__ */ S("p", { children: T("agentDetails.backupRequiresTunnelAndApiKey", "Agent tunnel URL and API key are required for backup management.") }),
1866
+ /* @__PURE__ */ S("p", {
1863
1867
  className: "text-sm mt-1",
1864
1868
  children: T("agentDetails.configureConnectionInOverview", "Configure the agent connection in the Overview tab.")
1865
1869
  })
1866
1870
  ]
1867
1871
  })
1868
1872
  }, "backup-no-tunnel"),
1869
- B && (() => {
1870
- let e = V.data.find((e) => e.contribution.id === H);
1871
- return !e || !I ? null : /* @__PURE__ */ C(x.div, {
1873
+ H && (() => {
1874
+ let e = U.data.find((e) => e.contribution.id === W);
1875
+ return !e || !L ? null : /* @__PURE__ */ S(b.div, {
1872
1876
  initial: {
1873
1877
  opacity: 0,
1874
1878
  y: 8
@@ -1883,14 +1887,14 @@ function bt() {
1883
1887
  },
1884
1888
  transition: { duration: .2 },
1885
1889
  className: "space-y-6",
1886
- children: /* @__PURE__ */ C(d, { children: /* @__PURE__ */ C("div", {
1890
+ children: /* @__PURE__ */ S(d, { children: /* @__PURE__ */ S("div", {
1887
1891
  className: "p-0 h-[600px]",
1888
- children: /* @__PURE__ */ C(Ne, {
1892
+ children: /* @__PURE__ */ S(Ne, {
1889
1893
  contribution: e,
1890
1894
  tunnel: e.tunnel,
1891
1895
  restPaths: e.capabilities.restPaths.length > 0 ? e.capabilities.restPaths : [`/ui/${e.pluginKey}`],
1892
- context: { agentId: I.id },
1893
- agentId: I.id,
1896
+ context: { agentId: L.id },
1897
+ agentId: L.id,
1894
1898
  profile: e.tunnel.profile,
1895
1899
  theme: {
1896
1900
  colorMode: "light",
@@ -1905,121 +1909,121 @@ function bt() {
1905
1909
  })()
1906
1910
  ]
1907
1911
  }),
1908
- B && I && /* @__PURE__ */ C(Me, {
1909
- isOpen: pn,
1910
- onClose: () => mn(!1),
1912
+ H && L && /* @__PURE__ */ S(Me, {
1913
+ isOpen: dn,
1914
+ onClose: () => fn(!1),
1911
1915
  mountPoint: "agent.detailTab",
1912
- agentId: I.id,
1913
- profile: z ?? "default",
1916
+ agentId: L.id,
1917
+ profile: V ?? "default",
1914
1918
  onInstalled: () => {
1915
- V.refetch();
1919
+ U.refetch();
1916
1920
  }
1917
1921
  }),
1918
- Ft && /* @__PURE__ */ C("div", {
1922
+ Ft && /* @__PURE__ */ S("div", {
1919
1923
  className: "fixed inset-0 bg-bg-overlay flex items-center justify-center z-[100] p-4",
1920
- children: /* @__PURE__ */ w("div", {
1924
+ children: /* @__PURE__ */ C("div", {
1921
1925
  className: "bg-bg-surface rounded-lg w-full max-w-lg max-h-[90vh] flex flex-col",
1922
1926
  children: [
1923
- /* @__PURE__ */ C("div", {
1927
+ /* @__PURE__ */ S("div", {
1924
1928
  className: "px-6 pt-6 pb-3 border-b border-border-default flex-shrink-0",
1925
- children: /* @__PURE__ */ w("h2", {
1929
+ children: /* @__PURE__ */ C("h2", {
1926
1930
  className: "text-lg font-semibold text-text-primary",
1927
1931
  children: [
1928
1932
  T("agentDetails.configure", "Configure"),
1929
1933
  " ",
1930
- I.name
1934
+ L.name
1931
1935
  ]
1932
1936
  })
1933
1937
  }),
1934
- /* @__PURE__ */ w("div", {
1938
+ /* @__PURE__ */ C("div", {
1935
1939
  className: "px-6 py-4 overflow-y-auto flex-1",
1936
- children: [Lt && /* @__PURE__ */ C("div", {
1940
+ children: [Lt && /* @__PURE__ */ S("div", {
1937
1941
  className: "mb-4 p-3 bg-status-error-bg text-status-error-text rounded-md text-sm",
1938
1942
  children: Lt
1939
- }), /* @__PURE__ */ w("div", {
1943
+ }), /* @__PURE__ */ C("div", {
1940
1944
  className: "space-y-4",
1941
1945
  children: [
1942
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("label", {
1946
+ /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("label", {
1943
1947
  className: "block text-sm font-medium text-text-primary mb-1",
1944
1948
  children: T("webhooks.name", "Name")
1945
- }), /* @__PURE__ */ C("input", {
1949
+ }), /* @__PURE__ */ S("input", {
1946
1950
  "aria-label": "control",
1947
1951
  ref: Ut,
1948
1952
  type: "text",
1949
- defaultValue: I.name,
1953
+ defaultValue: L.name,
1950
1954
  className: "w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-primary"
1951
1955
  })] }),
1952
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("label", {
1956
+ /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("label", {
1953
1957
  className: "block text-sm font-medium text-text-primary mb-1",
1954
1958
  children: T("analytics.platform", "Platform")
1955
- }), /* @__PURE__ */ C("input", {
1959
+ }), /* @__PURE__ */ S("input", {
1956
1960
  "aria-label": "control",
1957
1961
  type: "text",
1958
- value: `${I.platform} / ${I.architecture}`,
1962
+ value: `${L.platform} / ${L.architecture}`,
1959
1963
  disabled: !0,
1960
1964
  className: "w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-secondary"
1961
1965
  })] }),
1962
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("label", {
1966
+ /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("label", {
1963
1967
  className: "block text-sm font-medium text-text-primary mb-1",
1964
1968
  children: T("agentDetails.version", "Version")
1965
- }), /* @__PURE__ */ C("input", {
1969
+ }), /* @__PURE__ */ S("input", {
1966
1970
  "aria-label": "control",
1967
1971
  type: "text",
1968
- value: I.version,
1972
+ value: L.version,
1969
1973
  disabled: !0,
1970
1974
  className: "w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-secondary"
1971
1975
  })] }),
1972
- /* @__PURE__ */ w("div", { children: [
1973
- /* @__PURE__ */ C("label", {
1976
+ /* @__PURE__ */ C("div", { children: [
1977
+ /* @__PURE__ */ S("label", {
1974
1978
  className: "block text-sm font-medium text-text-primary mb-1",
1975
1979
  children: T("agentDetails.tunnelUrl", "Tunnel URL")
1976
1980
  }),
1977
- /* @__PURE__ */ C("input", {
1981
+ /* @__PURE__ */ S("input", {
1978
1982
  "aria-label": "control",
1979
1983
  ref: Wt,
1980
1984
  type: "text",
1981
- defaultValue: I.tunnelUrl ?? "",
1985
+ defaultValue: L.tunnelUrl ?? "",
1982
1986
  placeholder: T("agentDetails.tunnelUrlPlaceholder", "https://xxx.trycloudflare.com"),
1983
1987
  className: "w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-primary font-mono text-sm"
1984
1988
  }),
1985
- /* @__PURE__ */ C("p", {
1989
+ /* @__PURE__ */ S("p", {
1986
1990
  className: "mt-1 text-xs text-text-muted",
1987
1991
  children: T("agentDetails.tunnelUrlHint", "The public URL for accessing this agent remotely. Auto-updates when gateway auth is configured.")
1988
1992
  })
1989
1993
  ] }),
1990
- /* @__PURE__ */ w("div", { children: [
1991
- /* @__PURE__ */ C("label", {
1994
+ /* @__PURE__ */ C("div", { children: [
1995
+ /* @__PURE__ */ S("label", {
1992
1996
  className: "block text-sm font-medium text-text-primary mb-1",
1993
1997
  children: T("agentDetails.agentApiKey", "Agent API Key")
1994
1998
  }),
1995
- /* @__PURE__ */ C("input", {
1999
+ /* @__PURE__ */ S("input", {
1996
2000
  "aria-label": "control",
1997
2001
  ref: Gt,
1998
2002
  type: "text",
1999
- defaultValue: I.agentApiKey ?? "",
2003
+ defaultValue: L.agentApiKey ?? "",
2000
2004
  placeholder: T("agentDetails.agentApiKeyPlaceholder", "sk-agent-..."),
2001
2005
  className: "w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-primary font-mono text-sm"
2002
2006
  }),
2003
- /* @__PURE__ */ C("p", {
2007
+ /* @__PURE__ */ S("p", {
2004
2008
  className: "mt-1 text-xs text-text-muted",
2005
2009
  children: T("agentDetails.agentApiKeyHint", "Used to authenticate requests to the agent. Leave empty to clear.")
2006
2010
  })
2007
2011
  ] }),
2008
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ w("div", {
2012
+ /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ C("div", {
2009
2013
  className: "flex items-center gap-1.5 mb-1",
2010
- children: [/* @__PURE__ */ C("label", {
2014
+ children: [/* @__PURE__ */ S("label", {
2011
2015
  htmlFor: "agentdetailspage-58",
2012
2016
  className: "text-sm font-medium text-text-primary",
2013
2017
  children: "AI Context"
2014
- }), /* @__PURE__ */ w("div", {
2018
+ }), /* @__PURE__ */ C("div", {
2015
2019
  className: "relative",
2016
- children: [/* @__PURE__ */ C("button", {
2020
+ children: [/* @__PURE__ */ S("button", {
2017
2021
  type: "button",
2018
2022
  onClick: () => Ht((e) => !e),
2019
2023
  className: "p-0.5 rounded-full text-text-muted hover:text-text-secondary transition-colors",
2020
2024
  "aria-label": "What is AI Context?",
2021
- children: /* @__PURE__ */ C(Je, { className: "size-3.5" })
2022
- }), Vt && /* @__PURE__ */ w(S, { children: [/* @__PURE__ */ C("div", {
2025
+ children: /* @__PURE__ */ S(Ye, { className: "size-3.5" })
2026
+ }), Vt && /* @__PURE__ */ C(x, { children: [/* @__PURE__ */ S("div", {
2023
2027
  role: "button",
2024
2028
  tabIndex: 0,
2025
2029
  onKeyDown: (e) => {
@@ -2027,52 +2031,52 @@ function bt() {
2027
2031
  },
2028
2032
  className: "fixed inset-0 z-10",
2029
2033
  onClick: () => Ht(!1)
2030
- }), /* @__PURE__ */ w("div", {
2034
+ }), /* @__PURE__ */ C("div", {
2031
2035
  className: "absolute left-0 top-6 z-20 w-72 bg-bg-elevated border border-border-default rounded-lg shadow-xl p-3 text-xs text-text-secondary space-y-1.5",
2032
2036
  children: [
2033
- /* @__PURE__ */ C("p", {
2037
+ /* @__PURE__ */ S("p", {
2034
2038
  className: "font-semibold text-text-primary",
2035
2039
  children: "What is AI Context?"
2036
2040
  }),
2037
- /* @__PURE__ */ C("p", { children: "A short description (Markdown supported) that AI tools running on this agent will read to understand the environment — e.g. what the machine is for, what services it runs, or any constraints to follow." }),
2038
- /* @__PURE__ */ C("p", {
2041
+ /* @__PURE__ */ S("p", { children: "A short description (Markdown supported) that AI tools running on this agent will read to understand the environment — e.g. what the machine is for, what services it runs, or any constraints to follow." }),
2042
+ /* @__PURE__ */ S("p", {
2039
2043
  className: "text-text-muted",
2040
2044
  children: "Example: \"Production billing server. Do not modify files outside /src. Node 20, Docker installed.\""
2041
2045
  })
2042
2046
  ]
2043
2047
  })] })]
2044
2048
  })]
2045
- }), /* @__PURE__ */ C("textarea", {
2049
+ }), /* @__PURE__ */ S("textarea", {
2046
2050
  id: "agentdetailspage-58",
2047
2051
  "aria-label": "e.g. This agent runs on the billing server. Node 20, Docker installed. Do not modify files outside /src.",
2048
2052
  ref: Kt,
2049
- defaultValue: I.aiContext ?? "",
2053
+ defaultValue: L.aiContext ?? "",
2050
2054
  rows: 4,
2051
2055
  placeholder: "e.g. This agent runs on the billing server. Node 20, Docker installed. Do not modify files outside /src.",
2052
2056
  className: "w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-primary text-sm"
2053
2057
  })] }),
2054
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("label", {
2058
+ /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("label", {
2055
2059
  className: "block text-sm font-medium text-text-primary mb-1",
2056
2060
  children: T("agentDetails.metadataLabel", "Metadata (JSON)")
2057
- }), /* @__PURE__ */ C("textarea", {
2061
+ }), /* @__PURE__ */ S("textarea", {
2058
2062
  "aria-label": "control",
2059
2063
  ref: qt,
2060
- defaultValue: I.metadata ? JSON.stringify(I.metadata, null, 2) : "{}",
2064
+ defaultValue: L.metadata ? JSON.stringify(L.metadata, null, 2) : "{}",
2061
2065
  rows: 4,
2062
2066
  className: "w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-primary font-mono text-sm"
2063
2067
  })] })
2064
2068
  ]
2065
2069
  })]
2066
2070
  }),
2067
- /* @__PURE__ */ w("div", {
2071
+ /* @__PURE__ */ C("div", {
2068
2072
  className: "px-6 py-4 border-t border-border-default flex-shrink-0 flex flex-wrap justify-end gap-3",
2069
- children: [/* @__PURE__ */ C("button", {
2073
+ children: [/* @__PURE__ */ S("button", {
2070
2074
  type: "button",
2071
2075
  onClick: () => It(!1),
2072
2076
  disabled: Rt,
2073
2077
  className: "px-4 py-2 text-text-primary hover:bg-bg-sunken rounded-md transition-colors disabled:opacity-50",
2074
2078
  children: T("common.cancel", "Cancel")
2075
- }), /* @__PURE__ */ C("button", {
2079
+ }), /* @__PURE__ */ S("button", {
2076
2080
  type: "button",
2077
2081
  onClick: Yn,
2078
2082
  disabled: Rt,
@@ -2083,12 +2087,12 @@ function bt() {
2083
2087
  ]
2084
2088
  })
2085
2089
  }),
2086
- Zt && /* @__PURE__ */ C("div", {
2090
+ k && /* @__PURE__ */ S("div", {
2087
2091
  className: "fixed inset-0 bg-bg-overlay flex items-center justify-center z-[100] p-4",
2088
2092
  onClick: () => {
2089
2093
  M || A(!1);
2090
2094
  },
2091
- children: /* @__PURE__ */ w("div", {
2095
+ children: /* @__PURE__ */ C("div", {
2092
2096
  className: "bg-bg-surface rounded-lg p-6 w-full max-w-lg",
2093
2097
  "data-testid": "create-session-modal",
2094
2098
  role: "dialog",
@@ -2096,89 +2100,89 @@ function bt() {
2096
2100
  "aria-labelledby": "create-session-title",
2097
2101
  onClick: (e) => e.stopPropagation(),
2098
2102
  children: [
2099
- /* @__PURE__ */ w("h2", {
2103
+ /* @__PURE__ */ C("h2", {
2100
2104
  id: "create-session-title",
2101
2105
  className: "text-lg font-semibold text-text-primary mb-4",
2102
2106
  children: [
2103
2107
  T("agentDetails.newSessionFor", "New Session for"),
2104
2108
  " ",
2105
- I.name
2109
+ L.name
2106
2110
  ]
2107
2111
  }),
2108
- Qt && /* @__PURE__ */ C("div", {
2112
+ Qt && /* @__PURE__ */ S("div", {
2109
2113
  className: "mb-4 p-3 bg-status-error-bg text-status-error-text rounded-md text-sm",
2110
2114
  children: Qt
2111
2115
  }),
2112
- /* @__PURE__ */ w("div", {
2116
+ /* @__PURE__ */ C("div", {
2113
2117
  className: "space-y-4",
2114
2118
  children: [
2115
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("label", {
2119
+ /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("label", {
2116
2120
  className: "block text-sm font-medium text-text-primary mb-1",
2117
2121
  children: T("vibeDetails.sessionName", "Session Name")
2118
- }), /* @__PURE__ */ C("input", {
2122
+ }), /* @__PURE__ */ S("input", {
2119
2123
  "data-testid": "session-name-input",
2120
2124
  ref: N,
2121
2125
  type: "text",
2122
2126
  placeholder: T("vibeDetails.sessionNamePlaceholder", "dev-terminal"),
2123
2127
  className: "w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-primary placeholder:text-text-placeholder"
2124
2128
  })] }),
2125
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("label", {
2129
+ /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("label", {
2126
2130
  className: "block text-sm font-medium text-text-primary mb-1",
2127
2131
  children: T("sessions.filterType", "Type")
2128
- }), /* @__PURE__ */ w("select", {
2132
+ }), /* @__PURE__ */ C("select", {
2129
2133
  ref: P,
2130
2134
  className: "w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-primary",
2131
2135
  children: [
2132
- /* @__PURE__ */ C("option", {
2136
+ /* @__PURE__ */ S("option", {
2133
2137
  value: "TERMINAL",
2134
2138
  children: T("sessions.typeTerminal", "Terminal")
2135
2139
  }),
2136
- /* @__PURE__ */ C("option", {
2140
+ /* @__PURE__ */ S("option", {
2137
2141
  value: "TMUX",
2138
2142
  children: T("sessions.typeTmux", "TMUX")
2139
2143
  }),
2140
- /* @__PURE__ */ C("option", {
2144
+ /* @__PURE__ */ S("option", {
2141
2145
  value: "SSH",
2142
2146
  children: T("sessions.typeSsh", "SSH")
2143
2147
  }),
2144
- /* @__PURE__ */ C("option", {
2148
+ /* @__PURE__ */ S("option", {
2145
2149
  value: "SCRIPT",
2146
2150
  children: T("sessions.typeScript", "Script")
2147
2151
  }),
2148
- /* @__PURE__ */ C("option", {
2152
+ /* @__PURE__ */ S("option", {
2149
2153
  value: "CUSTOM",
2150
2154
  children: T("sessions.typeCustom", "Custom")
2151
2155
  })
2152
2156
  ]
2153
2157
  })] }),
2154
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("label", {
2158
+ /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("label", {
2155
2159
  className: "block text-sm font-medium text-text-primary mb-1",
2156
2160
  children: T("sessions.command", "Command")
2157
- }), /* @__PURE__ */ C("input", {
2158
- ref: en,
2161
+ }), /* @__PURE__ */ S("input", {
2162
+ ref: F,
2159
2163
  type: "text",
2160
2164
  placeholder: T("vibeDetails.sessionCommandPlaceholder", "bash"),
2161
2165
  className: "w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-primary placeholder:text-text-placeholder"
2162
2166
  })] }),
2163
- /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("label", {
2167
+ /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("label", {
2164
2168
  className: "block text-sm font-medium text-text-primary mb-1",
2165
2169
  children: T("vibeDetails.workingDirectory", "Working Directory")
2166
- }), /* @__PURE__ */ C("input", {
2167
- ref: tn,
2170
+ }), /* @__PURE__ */ S("input", {
2171
+ ref: en,
2168
2172
  type: "text",
2169
2173
  placeholder: "/home/user",
2170
2174
  className: "w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-primary placeholder:text-text-placeholder"
2171
2175
  })] })
2172
2176
  ]
2173
2177
  }),
2174
- /* @__PURE__ */ w("div", {
2178
+ /* @__PURE__ */ C("div", {
2175
2179
  className: "flex flex-col sm:flex-row justify-end gap-3 mt-6",
2176
- children: [/* @__PURE__ */ C("button", {
2180
+ children: [/* @__PURE__ */ S("button", {
2177
2181
  onClick: () => A(!1),
2178
2182
  disabled: M,
2179
2183
  className: "px-4 py-2 text-text-primary hover:bg-bg-sunken rounded-md transition-colors disabled:opacity-50",
2180
2184
  children: T("common.cancel", "Cancel")
2181
- }), /* @__PURE__ */ C("button", {
2185
+ }), /* @__PURE__ */ S("button", {
2182
2186
  "data-testid": "create-session-submit",
2183
2187
  onClick: er,
2184
2188
  disabled: M,
@@ -2189,14 +2193,14 @@ function bt() {
2189
2193
  ]
2190
2194
  })
2191
2195
  }),
2192
- /* @__PURE__ */ C(e, {
2193
- isOpen: Tn,
2194
- onClose: () => En(!1),
2196
+ /* @__PURE__ */ S(e, {
2197
+ isOpen: wn,
2198
+ onClose: () => Tn(!1),
2195
2199
  onConfirm: () => {
2196
- En(!1), xt("/billing");
2200
+ Tn(!1), xt("/billing");
2197
2201
  },
2198
- title: t(Dn).title,
2199
- message: t(Dn).message
2202
+ title: t(En).title,
2203
+ message: t(En).message
2200
2204
  })
2201
2205
  ]
2202
2206
  });