@burdenoff/microfe-vibecontrols 2026.526.1 → 2026.526.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -32,13 +32,13 @@ import { AddTabDialog as Ae } from "../components/plugins/AddTabDialog.js";
32
32
  import { PluginIframeMount as je } from "../components/plugins/PluginIframeMount.js";
33
33
  import { useCallback as d, useEffect as f, useMemo as p, useRef as m, useState as h } from "react";
34
34
  import { useI18n as Me } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
35
- import { ArrowLeft as g, Check as Ne, CheckCircle2 as Pe, Clock as Fe, Command as Ie, Copy as Le, Cpu as Re, Database as ze, Download as Be, Eye as Ve, EyeOff as He, FileText as Ue, HardDrive as We, Info as _, Key as Ge, Link2 as v, Loader2 as y, Monitor as Ke, Play as qe, Puzzle as b, RefreshCw as Je, ScrollText as Ye, Search as Xe, Server as Ze, Settings as Qe, Shield as $e, Square as et, Tag as tt, Terminal as x, Trash2 as nt, Unlink as rt, Users as it, X as S, Zap as C } from "lucide-react";
36
- import { useParams as at } from "react-router-dom";
37
- import { usePermissions as ot } from "@burdenoff/fe-libs/shared/providers/shell";
38
- import { AnimatePresence as st, motion as w } from "framer-motion";
39
- import { Fragment as T, jsx as E, jsxs as D } from "react/jsx-runtime";
40
- import { useFeatureFlagDetails as ct } from "@burdenoff/fe-libs/shared/feature-flags";
41
- import { MotionPage as lt } from "@burdenoff/fe-libs/shared/motion";
35
+ import { ArrowLeft as g, Check as Ne, CheckCircle2 as Pe, Clock as Fe, Command as Ie, Copy as Le, Cpu as Re, Database as ze, Download as Be, Eye as Ve, EyeOff as He, FileText as Ue, HardDrive as We, Info as Ge, Key as Ke, Link2 as _, Loader2 as v, Monitor as qe, Play as Je, Puzzle as y, RefreshCw as Ye, ScrollText as Xe, Search as Ze, Server as Qe, Settings as $e, Shield as et, Square as tt, Tag as nt, Terminal as b, Trash2 as rt, Unlink as it, Users as at, X as x, Zap as S } from "lucide-react";
36
+ import { useParams as ot } from "react-router-dom";
37
+ import { usePermissions as st } from "@burdenoff/fe-libs/shared/providers/shell";
38
+ import { AnimatePresence as ct, motion as C } from "framer-motion";
39
+ import { Fragment as w, jsx as T, jsxs as E } from "react/jsx-runtime";
40
+ import { useFeatureFlagDetails as lt } from "@burdenoff/fe-libs/shared/feature-flags";
41
+ import { MotionPage as D } from "@burdenoff/fe-libs/shared/motion";
42
42
  import { usePluginContributions as ut } from "@burdenoff/fe-libs/shared/plugins";
43
43
  //#region src/pages/AgentDetailsPage.tsx
44
44
  function dt({ agent: e, onUpdate: t }) {
@@ -57,53 +57,53 @@ function dt({ agent: e, onUpdate: t }) {
57
57
  ee(!1);
58
58
  }
59
59
  };
60
- return /* @__PURE__ */ D(u, { children: [/* @__PURE__ */ E("div", {
60
+ return /* @__PURE__ */ E(u, { children: [/* @__PURE__ */ T("div", {
61
61
  className: "p-4 border-b border-border-default",
62
- children: /* @__PURE__ */ D("h3", {
62
+ children: /* @__PURE__ */ E("h3", {
63
63
  className: "font-semibold text-text-primary flex items-center gap-2",
64
- children: [/* @__PURE__ */ E($e, { className: "w-5 h-5" }), l("agentDetails.gatewayAuthTitle", "Gateway Auth (OAuth2)")]
64
+ children: [/* @__PURE__ */ T(et, { className: "w-5 h-5" }), l("agentDetails.gatewayAuthTitle", "Gateway Auth (OAuth2)")]
65
65
  })
66
- }), /* @__PURE__ */ D("div", {
66
+ }), /* @__PURE__ */ E("div", {
67
67
  className: "p-4 space-y-3",
68
- children: [ne && /* @__PURE__ */ D("div", {
68
+ children: [ne && /* @__PURE__ */ E("div", {
69
69
  className: "flex items-center gap-2 p-3 bg-status-error-bg text-status-error-text rounded-md text-sm",
70
70
  children: [
71
- /* @__PURE__ */ E(S, { className: "w-4 h-4 flex-shrink-0" }),
72
- /* @__PURE__ */ E("span", {
71
+ /* @__PURE__ */ T(x, { className: "w-4 h-4 flex-shrink-0" }),
72
+ /* @__PURE__ */ T("span", {
73
73
  className: "flex-1",
74
74
  children: ne
75
75
  }),
76
- /* @__PURE__ */ E("button", {
76
+ /* @__PURE__ */ T("button", {
77
77
  onClick: () => o(null),
78
78
  className: "flex-shrink-0 p-0.5 hover:bg-status-error-text/10 rounded",
79
- children: /* @__PURE__ */ E(S, { className: "w-3.5 h-3.5" })
79
+ children: /* @__PURE__ */ T(x, { className: "w-3.5 h-3.5" })
80
80
  })
81
81
  ]
82
- }), he ? /* @__PURE__ */ D(T, { children: [
83
- /* @__PURE__ */ D("div", {
82
+ }), he ? /* @__PURE__ */ E(w, { children: [
83
+ /* @__PURE__ */ E("div", {
84
84
  className: "flex items-start gap-3",
85
- children: [/* @__PURE__ */ E("div", {
85
+ children: [/* @__PURE__ */ T("div", {
86
86
  className: "w-8 h-8 rounded-lg bg-status-success-bg flex items-center justify-center flex-shrink-0 mt-0.5",
87
- children: /* @__PURE__ */ E(v, { className: "w-4 h-4 text-status-success-text" })
88
- }), /* @__PURE__ */ D("div", {
87
+ children: /* @__PURE__ */ T(_, { className: "w-4 h-4 text-status-success-text" })
88
+ }), /* @__PURE__ */ E("div", {
89
89
  className: "flex-1 min-w-0 space-y-2",
90
- children: [/* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
90
+ children: [/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
91
91
  className: "text-sm font-medium text-text-primary",
92
92
  children: l("agentDetails.linkedToOauthApp", "Linked to OAuth App")
93
- }), /* @__PURE__ */ E("p", {
93
+ }), /* @__PURE__ */ T("p", {
94
94
  className: "text-xs text-text-muted",
95
95
  children: l("agentDetails.gatewayAuthLinkedDescription", "This agent can authenticate with the API gateway using Client Credentials.")
96
- })] }), /* @__PURE__ */ D("div", {
96
+ })] }), /* @__PURE__ */ E("div", {
97
97
  className: "grid grid-cols-1 sm:grid-cols-2 gap-3",
98
- children: [/* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
98
+ children: [/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
99
99
  className: "text-xs text-text-secondary mb-1",
100
100
  children: l("agentDetails.clientId", "Client ID")
101
- }), /* @__PURE__ */ D("div", {
101
+ }), /* @__PURE__ */ E("div", {
102
102
  className: "flex items-center gap-2",
103
- children: [/* @__PURE__ */ E("code", {
103
+ children: [/* @__PURE__ */ T("code", {
104
104
  className: "text-xs font-mono text-text-primary bg-bg-sunken px-2 py-1 rounded truncate block flex-1",
105
105
  children: e.appClientId
106
- }), /* @__PURE__ */ E("button", {
106
+ }), /* @__PURE__ */ T("button", {
107
107
  onClick: async () => {
108
108
  if (e.appClientId) try {
109
109
  await pe(e.appClientId), fe() && me("Copied"), le(!0), setTimeout(() => le(!1), 2e3);
@@ -111,70 +111,70 @@ function dt({ agent: e, onUpdate: t }) {
111
111
  },
112
112
  className: "p-1 rounded hover:bg-bg-sunken transition-colors flex-shrink-0",
113
113
  title: l("agentDetails.copyClientId", "Copy Client ID"),
114
- children: ce ? /* @__PURE__ */ E(Ne, { className: "w-3.5 h-3.5 text-status-success-text" }) : /* @__PURE__ */ E(Le, { className: "w-3.5 h-3.5 text-text-secondary" })
114
+ children: ce ? /* @__PURE__ */ T(Ne, { className: "w-3.5 h-3.5 text-status-success-text" }) : /* @__PURE__ */ T(Le, { className: "w-3.5 h-3.5 text-text-secondary" })
115
115
  })]
116
- })] }), /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
116
+ })] }), /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
117
117
  className: "text-xs text-text-secondary mb-1",
118
118
  children: l("agentDetails.appId", "App ID")
119
- }), /* @__PURE__ */ E("code", {
119
+ }), /* @__PURE__ */ T("code", {
120
120
  className: "text-xs font-mono text-text-muted bg-bg-sunken px-2 py-1 rounded truncate block",
121
121
  children: e.appId
122
122
  })] })]
123
123
  })]
124
124
  })]
125
125
  }),
126
- c && /* @__PURE__ */ D("div", {
126
+ c && /* @__PURE__ */ E("div", {
127
127
  className: "p-3 bg-status-warning-bg/20 border border-status-warning-text/20 rounded-lg space-y-2",
128
128
  children: [
129
- /* @__PURE__ */ E("p", {
129
+ /* @__PURE__ */ T("p", {
130
130
  className: "text-sm font-medium text-status-warning-text",
131
131
  children: l("agentDetails.clientSecretOneTimeTitle", "Client Secret (one-time display)")
132
132
  }),
133
- /* @__PURE__ */ E("p", {
133
+ /* @__PURE__ */ T("p", {
134
134
  className: "text-xs text-text-secondary",
135
135
  children: l("agentDetails.clientSecretOneTimeDescription", "This secret has been automatically sent to the agent. Save it now if you need it — it won't be shown again.")
136
136
  }),
137
- /* @__PURE__ */ D("div", {
137
+ /* @__PURE__ */ E("div", {
138
138
  className: "flex items-center gap-2",
139
139
  children: [
140
- /* @__PURE__ */ E("code", {
140
+ /* @__PURE__ */ T("code", {
141
141
  className: "text-xs font-mono text-text-primary bg-bg-sunken px-2 py-1 rounded flex-1 truncate",
142
142
  children: s ? c : "•".repeat(32)
143
143
  }),
144
- /* @__PURE__ */ E("button", {
144
+ /* @__PURE__ */ T("button", {
145
145
  onClick: () => ie(!s),
146
146
  className: "p-1 rounded hover:bg-bg-sunken transition-colors flex-shrink-0",
147
- children: E(s ? He : Ve, { className: "w-3.5 h-3.5 text-text-secondary" })
147
+ children: T(s ? He : Ve, { className: "w-3.5 h-3.5 text-text-secondary" })
148
148
  }),
149
- /* @__PURE__ */ E("button", {
149
+ /* @__PURE__ */ T("button", {
150
150
  onClick: async () => {
151
151
  if (c) try {
152
152
  await pe(c), fe() && me("Secret copied"), se(!0), setTimeout(() => se(!1), 2e3);
153
153
  } catch {}
154
154
  },
155
155
  className: "p-1 rounded hover:bg-bg-sunken transition-colors flex-shrink-0",
156
- children: oe ? /* @__PURE__ */ E(Ne, { className: "w-3.5 h-3.5 text-status-success-text" }) : /* @__PURE__ */ E(Le, { className: "w-3.5 h-3.5 text-text-secondary" })
156
+ children: oe ? /* @__PURE__ */ T(Ne, { className: "w-3.5 h-3.5 text-status-success-text" }) : /* @__PURE__ */ T(Le, { className: "w-3.5 h-3.5 text-text-secondary" })
157
157
  })
158
158
  ]
159
159
  })
160
160
  ]
161
161
  }),
162
- /* @__PURE__ */ D("div", {
162
+ /* @__PURE__ */ E("div", {
163
163
  className: "flex items-center gap-2",
164
164
  children: [
165
- ge && /* @__PURE__ */ D("a", {
165
+ ge && /* @__PURE__ */ E("a", {
166
166
  href: `/devportal/apps/${ge}`,
167
167
  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",
168
- children: [/* @__PURE__ */ E(Ke, { className: "w-3 h-3" }), l("agentDetails.viewInDeveloperPortal", "View in Developer Portal")]
168
+ children: [/* @__PURE__ */ T(qe, { className: "w-3 h-3" }), l("agentDetails.viewInDeveloperPortal", "View in Developer Portal")]
169
169
  }),
170
- /* @__PURE__ */ D("button", {
170
+ /* @__PURE__ */ E("button", {
171
171
  onClick: _e,
172
172
  disabled: a,
173
173
  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",
174
174
  title: l("agentDetails.repushCredentialsTitle", "Rotate the OAuth secret and push it to the agent. Use this if the agent shows degraded with \"boot state awaiting-config\"."),
175
- children: [a ? /* @__PURE__ */ E(y, { className: "w-3 h-3 animate-spin" }) : /* @__PURE__ */ E(Je, { className: "w-3 h-3" }), l("agentDetails.repushCredentials", "Re-push credentials")]
175
+ children: [a ? /* @__PURE__ */ T(v, { className: "w-3 h-3 animate-spin" }) : /* @__PURE__ */ T(Ye, { className: "w-3 h-3" }), l("agentDetails.repushCredentials", "Re-push credentials")]
176
176
  }),
177
- /* @__PURE__ */ D("button", {
177
+ /* @__PURE__ */ E("button", {
178
178
  onClick: async () => {
179
179
  if (window.confirm(l("agentDetails.confirmUnlinkOauthApp", "Remove the linked OAuth app from this agent? The app will still exist in auth-svc."))) {
180
180
  de(!0), o(null);
@@ -195,41 +195,41 @@ function dt({ agent: e, onUpdate: t }) {
195
195
  },
196
196
  disabled: ue,
197
197
  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",
198
- children: [ue ? /* @__PURE__ */ E(y, { className: "w-3 h-3 animate-spin" }) : /* @__PURE__ */ E(rt, { className: "w-3 h-3" }), l("agentDetails.unlinkApp", "Unlink App")]
198
+ children: [ue ? /* @__PURE__ */ T(v, { className: "w-3 h-3 animate-spin" }) : /* @__PURE__ */ T(it, { className: "w-3 h-3" }), l("agentDetails.unlinkApp", "Unlink App")]
199
199
  })
200
200
  ]
201
201
  })
202
- ] }) : /* @__PURE__ */ D(T, { children: [/* @__PURE__ */ D("div", {
202
+ ] }) : /* @__PURE__ */ E(w, { children: [/* @__PURE__ */ E("div", {
203
203
  className: "flex items-start gap-3",
204
- children: [/* @__PURE__ */ E("div", {
204
+ children: [/* @__PURE__ */ T("div", {
205
205
  className: "w-8 h-8 rounded-lg bg-bg-sunken flex items-center justify-center flex-shrink-0 mt-0.5",
206
- children: /* @__PURE__ */ E($e, { className: "w-4 h-4 text-text-muted" })
207
- }), /* @__PURE__ */ D("div", {
206
+ children: /* @__PURE__ */ T(et, { className: "w-4 h-4 text-text-muted" })
207
+ }), /* @__PURE__ */ E("div", {
208
208
  className: "flex-1",
209
- children: [/* @__PURE__ */ E("p", {
209
+ children: [/* @__PURE__ */ T("p", {
210
210
  className: "text-sm font-medium text-text-primary",
211
211
  children: l("agentDetails.noOauthAppLinked", "No OAuth App Linked")
212
- }), /* @__PURE__ */ E("p", {
212
+ }), /* @__PURE__ */ T("p", {
213
213
  className: "text-xs text-text-muted mt-0.5",
214
214
  children: l("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.")
215
215
  })]
216
216
  })]
217
- }), /* @__PURE__ */ E("button", {
217
+ }), /* @__PURE__ */ T("button", {
218
218
  onClick: _e,
219
219
  disabled: a,
220
220
  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",
221
- children: a ? /* @__PURE__ */ D(T, { children: [/* @__PURE__ */ E(y, { className: "w-4 h-4 animate-spin" }), l("agentDetails.settingUp", "Setting up...")] }) : /* @__PURE__ */ D(T, { children: [/* @__PURE__ */ E(v, { className: "w-4 h-4" }), l("agentDetails.setupGatewayAuth", "Setup Gateway Auth")] })
221
+ children: a ? /* @__PURE__ */ E(w, { children: [/* @__PURE__ */ T(v, { className: "w-4 h-4 animate-spin" }), l("agentDetails.settingUp", "Setting up...")] }) : /* @__PURE__ */ E(w, { children: [/* @__PURE__ */ T(_, { className: "w-4 h-4" }), l("agentDetails.setupGatewayAuth", "Setup Gateway Auth")] })
222
222
  })] })]
223
223
  })] });
224
224
  }
225
225
  function ft() {
226
- let { t: te } = Me(), { id: v } = at(), { basePath: rt } = c(), ft = rt || "", O = ae(), { hasPermission: pt, isLoading: mt } = ot(), k = d((e, t, n) => {
226
+ let { t: te } = Me(), { id: _ } = ot(), { basePath: it } = c(), ft = it || "", O = ae(), { hasPermission: pt, isLoading: mt } = st(), k = d((e, t, n) => {
227
227
  let r = te(e, n), i = r === e ? t : r;
228
228
  return n ? Object.entries(n).reduce((e, [t, n]) => e.replace(`{{${t}}}`, String(n)), i) : i;
229
229
  }, [te]), [ht] = re({ refetchQueries: ["GetAgent"] }), [gt] = n(), [_t] = t({ refetchQueries: ["GetAgent"] }), [vt] = ne(), [yt] = o(), [A, bt] = h(null), [xt, St] = h(null), Ct = oe((e) => e.setActiveAgentId);
230
230
  f(() => {
231
- v && Ct(v);
232
- }, [v, Ct]);
231
+ _ && Ct(_);
232
+ }, [_, Ct]);
233
233
  let wt = [
234
234
  "overview",
235
235
  "profiles",
@@ -242,16 +242,16 @@ function ft() {
242
242
  "aliases",
243
243
  "backup"
244
244
  ], [Tt, Et] = h(!1), [Dt, j] = h(null), [Ot, kt] = h(!1), [At, M] = h(null), [jt, Mt] = h(!1), Nt = m(null), Pt = m(null), Ft = m(null), It = m(null), Lt = m(null), [N, Rt] = h(!1), [zt, Bt] = h(!1), { data: Vt, loading: Ht, error: Ut, refetch: P } = r({
245
- variables: { id: v || "" },
246
- skip: !v,
245
+ variables: { id: _ || "" },
246
+ skip: !_,
247
247
  fetchPolicy: "cache-and-network"
248
248
  }), F = Vt?.vibecontrolsAgent, I = ie({
249
249
  fetchPolicy: "cache-and-network",
250
250
  nextFetchPolicy: "cache-first",
251
251
  notifyOnNetworkStatusChange: !0,
252
- skip: !v,
252
+ skip: !_,
253
253
  pollInterval: 3e4
254
- }), { data: Wt } = s({ skip: !v }), Gt = I.data === void 0 && Wt === void 0, Kt = p(() => {
254
+ }), { data: Wt } = s({ skip: !_ }), Gt = I.data === void 0 && Wt === void 0, Kt = p(() => {
255
255
  let e = /* @__PURE__ */ new Map(), t = Wt?.vibecontrolsAgentHealthProbeStream ?? I.data?.vibecontrolsAgentHealthProbes ?? [];
256
256
  for (let n of t) e.set(n.agentId, {
257
257
  agentId: n.agentId,
@@ -267,8 +267,8 @@ function ft() {
267
267
  F,
268
268
  Kt,
269
269
  Gt
270
- ]), Jt = qt === "STOPPED" || qt === "OFFLINE", { active: L } = ge(F?.id ?? null), R = L !== "default", z = ct("vibes.tabs.iframe-host")?.value === !0, Yt = p(() => {
271
- if (!z || !F?.tunnelUrl) return [];
270
+ ]), Jt = qt === "STOPPED" || qt === "OFFLINE", { active: L } = ge(F?.id ?? null), R = lt("vibes.tabs.iframe-host")?.value === !0, Yt = p(() => {
271
+ if (!R || !F?.tunnelUrl) return [];
272
272
  let e = F.id, t = L ?? "default";
273
273
  return [{
274
274
  tunnelUrl: F.tunnelUrl,
@@ -277,18 +277,18 @@ function ft() {
277
277
  mintIframeToken: async ({ pathPrefixes: n }) => ke(e, t, n)
278
278
  }];
279
279
  }, [
280
- z,
280
+ R,
281
281
  F?.id,
282
282
  F?.tunnelUrl,
283
283
  F?.name,
284
284
  L
285
- ]), B = ut(Yt, {
285
+ ]), z = ut(Yt, {
286
286
  mountPoint: "agent.detailTab",
287
- enabled: z && Yt.length > 0
288
- }), [V, Xt] = Oe(p(() => {
289
- let e = B.data.filter((e) => e.contribution.mountPoint === "agent.detailTab").map((e) => e.contribution.id);
287
+ enabled: R && Yt.length > 0
288
+ }), [B, Xt] = Oe(p(() => {
289
+ let e = z.data.filter((e) => e.contribution.mountPoint === "agent.detailTab").map((e) => e.contribution.id);
290
290
  return [...wt, ...e];
291
- }, [B.data, wt]), "overview"), [Zt, Qt] = h(!1), $t = m(!1);
291
+ }, [z.data, wt]), "overview"), [Zt, Qt] = h(!1), $t = m(!1);
292
292
  f(() => {
293
293
  F && !$t.current && ($t.current = !0, _t().catch(() => {}));
294
294
  }, [F, _t]);
@@ -304,11 +304,11 @@ function ft() {
304
304
  en,
305
305
  P
306
306
  ]);
307
- let [H, nn] = h([]), [rn, an] = h([]), [on, sn] = h(!0), [U, W] = h(null), [cn, G] = h(null), [ln, un] = h(!1), dn = m(null), [K, q] = h("installed"), [J, fn] = h(""), [Y, pn] = h([]), [mn, hn] = h(!1), [gn, _n] = h(null), [vn, yn] = h(null), [bn] = e(), [xn] = i(), [Sn] = ee(), X = d(async () => {
307
+ let [V, nn] = h([]), [rn, an] = h([]), [on, sn] = h(!0), [H, U] = h(null), [cn, W] = h(null), [ln, un] = h(!1), dn = m(null), [G, K] = h("installed"), [q, fn] = h(""), [J, pn] = h([]), [mn, hn] = h(!1), [gn, _n] = h(null), [Y, vn] = h(null), [yn] = e(), [bn] = i(), [xn] = ee(), X = d(async () => {
308
308
  if (F?.id) {
309
- sn(!0), G(null);
309
+ sn(!0), W(null);
310
310
  try {
311
- let { data: e } = await bn({ variables: {
311
+ let { data: e } = await yn({ variables: {
312
312
  agentId: F.id,
313
313
  profile: L
314
314
  } }), t = e?.agentPlugins;
@@ -338,17 +338,17 @@ function ft() {
338
338
  tags: [...e.tags],
339
339
  installed: e.installed
340
340
  }));
341
- nn(e), an(n), t.error && G(t.error);
341
+ nn(e), an(n), t.error && W(t.error);
342
342
  }
343
343
  } catch {
344
- G("Agent unreachable — unable to fetch plugin list");
344
+ W("Agent unreachable — unable to fetch plugin list");
345
345
  } finally {
346
346
  sn(!1);
347
347
  }
348
348
  }
349
349
  }, [
350
350
  F?.id,
351
- bn,
351
+ yn,
352
352
  L
353
353
  ]);
354
354
  f(() => {
@@ -360,11 +360,11 @@ function ft() {
360
360
  L,
361
361
  X
362
362
  ]);
363
- let Cn = d(async (e) => {
364
- if (F?.id && !R) {
365
- W(e);
363
+ let Sn = d(async (e) => {
364
+ if (F?.id) {
365
+ U(e);
366
366
  try {
367
- let { data: t } = await xn({ variables: {
367
+ let { data: t } = await bn({ variables: {
368
368
  agentId: F.id,
369
369
  packageName: e
370
370
  } });
@@ -375,40 +375,38 @@ function ft() {
375
375
  un(!0);
376
376
  return;
377
377
  }
378
- G(e instanceof Error ? e.message : k("agentDetails.pluginInstallFailed", "Failed to install plugin")), setTimeout(() => G(null), 5e3);
378
+ W(e instanceof Error ? e.message : k("agentDetails.pluginInstallFailed", "Failed to install plugin")), setTimeout(() => W(null), 5e3);
379
379
  } finally {
380
- W(null);
380
+ U(null);
381
381
  }
382
382
  }
383
383
  }, [
384
384
  F?.id,
385
- xn,
385
+ bn,
386
386
  X,
387
- k,
388
- R
389
- ]), wn = d(async (e) => {
390
- if (F?.id && !R && window.confirm(k("agentDetails.removePluginConfirm", "Remove plugin {{packageName}}?", { packageName: e }))) {
391
- W(e);
387
+ k
388
+ ]), Cn = d(async (e) => {
389
+ if (F?.id && window.confirm(k("agentDetails.removePluginConfirm", "Remove plugin {{packageName}}?", { packageName: e }))) {
390
+ U(e);
392
391
  try {
393
- let { data: t } = await Sn({ variables: {
392
+ let { data: t } = await xn({ variables: {
394
393
  agentId: F.id,
395
394
  packageName: e
396
395
  } });
397
396
  if (t?.removeAgentPlugin?.success) await X();
398
397
  else throw Error(t?.removeAgentPlugin?.error || k("agentDetails.removeFailed", "Remove failed"));
399
398
  } catch (e) {
400
- G(e instanceof Error ? e.message : k("agentDetails.pluginRemoveFailed", "Failed to remove plugin")), setTimeout(() => G(null), 5e3);
399
+ W(e instanceof Error ? e.message : k("agentDetails.pluginRemoveFailed", "Failed to remove plugin")), setTimeout(() => W(null), 5e3);
401
400
  } finally {
402
- W(null);
401
+ U(null);
403
402
  }
404
403
  }
405
404
  }, [
406
405
  F?.id,
407
- Sn,
406
+ xn,
408
407
  X,
409
- k,
410
- R
411
- ]), Z = F?.sessions || [], Q = F?.vibes || [], Tn = d(async () => {
408
+ k
409
+ ]), Z = F?.sessions || [], Q = F?.vibes || [], wn = d(async () => {
412
410
  hn(!0), _n(null);
413
411
  try {
414
412
  let e = await (await fetch(typeof window < "u" && window.__BURDENOFF_GLOBAL_GATEWAY__ || "/global/graphql", {
@@ -431,16 +429,16 @@ function ft() {
431
429
  }
432
430
  }, []);
433
431
  f(() => {
434
- K === "store" && Y.length === 0 && !mn && Tn();
432
+ G === "store" && J.length === 0 && !mn && wn();
435
433
  }, [
436
- K,
437
- Y.length,
434
+ G,
435
+ J.length,
438
436
  mn,
439
- Tn
437
+ wn
440
438
  ]);
441
- let En = d(async (e, t) => {
439
+ let Tn = d(async (e, t) => {
442
440
  if (F?.id) {
443
- yn(e);
441
+ vn(e);
444
442
  try {
445
443
  let n = await (await fetch(typeof window < "u" && window.__BURDENOFF_WSPACE_GATEWAY__ || "/workspaces/graphql", {
446
444
  method: "POST",
@@ -458,41 +456,41 @@ function ft() {
458
456
  if (n.errors?.length) throw Error(n.errors[0]?.message ?? "Install failed");
459
457
  let r = n.data?.installStorePluginOnAgent;
460
458
  if (!r?.success) throw Error(r?.error ?? "Install failed");
461
- await X(), q("installed");
459
+ await X(), K("installed");
462
460
  } catch (e) {
463
461
  _n(e instanceof Error ? e.message : "Install failed");
464
462
  } finally {
465
- yn(null);
463
+ vn(null);
466
464
  }
467
465
  }
468
466
  }, [F?.id, X]);
469
467
  if (f(() => {
470
468
  if (typeof window > "u" || !F?.id) return;
471
469
  let e = new URLSearchParams(window.location.search), t = e.get("install"), n = e.get("licenseKey");
472
- if (t && t !== vn) {
473
- q("store"), En(t, n);
470
+ if (t && t !== Y) {
471
+ K("store"), Tn(t, n);
474
472
  let e = new URL(window.location.href);
475
473
  e.searchParams.delete("install"), e.searchParams.delete("licenseKey"), window.history.replaceState({}, "", e.toString());
476
474
  }
477
475
  }, [
478
476
  F?.id,
479
- En,
480
- vn
481
- ]), mt) return /* @__PURE__ */ E("div", {
477
+ Tn,
478
+ Y
479
+ ]), mt) return /* @__PURE__ */ T("div", {
482
480
  className: "flex items-center justify-center min-h-[400px]",
483
- children: /* @__PURE__ */ E("p", {
481
+ children: /* @__PURE__ */ T("p", {
484
482
  className: "text-text-secondary",
485
483
  children: "Loading permissions..."
486
484
  })
487
485
  });
488
- if (!pt(_e.AGENT_READ)) return /* @__PURE__ */ E("div", {
486
+ if (!pt(_e.AGENT_READ)) return /* @__PURE__ */ T("div", {
489
487
  className: "flex items-center justify-center min-h-[400px]",
490
- children: /* @__PURE__ */ D("div", {
488
+ children: /* @__PURE__ */ E("div", {
491
489
  className: "text-center space-y-2",
492
- children: [/* @__PURE__ */ E("h2", {
490
+ children: [/* @__PURE__ */ T("h2", {
493
491
  className: "text-lg font-semibold text-foreground",
494
492
  children: "Access Denied"
495
- }), /* @__PURE__ */ E("p", {
493
+ }), /* @__PURE__ */ T("p", {
496
494
  className: "text-sm text-text-secondary",
497
495
  children: "You don't have permission to access this page."
498
496
  })]
@@ -500,7 +498,7 @@ function ft() {
500
498
  });
501
499
  let $ = () => {
502
500
  O("/agents");
503
- }, Dn = async (e) => {
501
+ }, En = async (e) => {
504
502
  if (!(!F?.id || A)) {
505
503
  bt(e), St(null);
506
504
  try {
@@ -514,9 +512,9 @@ function ft() {
514
512
  bt(null);
515
513
  }
516
514
  }
517
- }, On = () => void Dn("start"), kn = () => void Dn("stop"), An = () => {
515
+ }, Dn = () => void En("start"), On = () => void En("stop"), kn = () => {
518
516
  j(null), Et(!0);
519
- }, jn = async () => {
517
+ }, An = async () => {
520
518
  if (!F?.id) return;
521
519
  let e = Nt.current?.value?.trim(), t = Pt.current?.value?.trim(), n = Ft.current?.value?.trim(), r = It.current?.value?.trim(), i = Lt.current?.value?.trim();
522
520
  if (!e) {
@@ -547,101 +545,101 @@ function ft() {
547
545
  } finally {
548
546
  kt(!1);
549
547
  }
550
- }, Mn = async () => {
548
+ }, jn = async () => {
551
549
  if (F?.agentApiKey) try {
552
550
  await pe(F.agentApiKey), fe() && me("API key copied"), Bt(!0), setTimeout(() => Bt(!1), 2e3);
553
551
  } catch {
554
552
  console.error("Failed to copy API key");
555
553
  }
556
- }, Nn = async () => {
554
+ }, Mn = async () => {
557
555
  if (F?.id && window.confirm(k("agentDetails.removeAgentConfirm", "Are you sure you want to remove agent \"{{name}}\"?", { name: F.name }))) try {
558
556
  await gt({ variables: { id: F.id } }), $();
559
557
  } catch (e) {
560
558
  console.error("Failed to remove agent:", e);
561
559
  }
562
- }, Pn = (e) => {
560
+ }, Nn = (e) => {
563
561
  O(`/sessions/${e}`);
564
- }, Fn = (e) => {
562
+ }, Pn = (e) => {
565
563
  O(`/vibes/${e}`);
566
- }, In = (e) => {
564
+ }, Fn = (e) => {
567
565
  if (!e) return k("health.never", "Never");
568
566
  let t = Date.now() - new Date(e).getTime();
569
567
  return t < 6e4 ? k("health.justNow", "Just now") : t < 36e5 ? k("agentDetails.minutesAgo", "{{count}}m ago", { count: Math.floor(t / 6e4) }) : t < 864e5 ? k("agentDetails.hoursAgo", "{{count}}h ago", { count: Math.floor(t / 36e5) }) : new Date(e).toLocaleDateString();
570
568
  };
571
- if (Ht && !F) return /* @__PURE__ */ D(lt, {
569
+ if (Ht && !F) return /* @__PURE__ */ E(D, {
572
570
  className: "space-y-6 p-4 sm:p-6 bg-bg-surface min-h-screen",
573
- children: [/* @__PURE__ */ D("button", {
571
+ children: [/* @__PURE__ */ E("button", {
574
572
  onClick: $,
575
573
  className: "flex items-center gap-2 text-text-secondary hover:text-text-primary transition-colors",
576
- children: [/* @__PURE__ */ E(g, { className: "w-4 h-4" }), k("agentDetails.backToAgents", "Back to Agents")]
577
- }), /* @__PURE__ */ E(ve, { variant: "detail" })]
574
+ children: [/* @__PURE__ */ T(g, { className: "w-4 h-4" }), k("agentDetails.backToAgents", "Back to Agents")]
575
+ }), /* @__PURE__ */ T(ve, { variant: "detail" })]
578
576
  });
579
- if (Ut && !F) return /* @__PURE__ */ D(lt, {
577
+ if (Ut && !F) return /* @__PURE__ */ E(D, {
580
578
  className: "space-y-6 p-4 sm:p-6 bg-bg-surface min-h-screen",
581
- children: [/* @__PURE__ */ D("button", {
579
+ children: [/* @__PURE__ */ E("button", {
582
580
  onClick: $,
583
581
  className: "flex items-center gap-2 text-text-secondary hover:text-text-primary transition-colors",
584
- children: [/* @__PURE__ */ E(g, { className: "w-4 h-4" }), k("agentDetails.backToAgents", "Back to Agents")]
585
- }), /* @__PURE__ */ E(ce, {
582
+ children: [/* @__PURE__ */ T(g, { className: "w-4 h-4" }), k("agentDetails.backToAgents", "Back to Agents")]
583
+ }), /* @__PURE__ */ T(ce, {
586
584
  title: k("agentDetails.failedLoad", "Failed to load agent"),
587
585
  message: Ut.message,
588
586
  onRetry: () => P()
589
587
  })]
590
588
  });
591
- if (!F) return /* @__PURE__ */ D(lt, {
589
+ if (!F) return /* @__PURE__ */ E(D, {
592
590
  className: "space-y-6 p-4 sm:p-6 bg-bg-surface min-h-screen",
593
- children: [/* @__PURE__ */ D("button", {
591
+ children: [/* @__PURE__ */ E("button", {
594
592
  onClick: $,
595
593
  className: "flex items-center gap-2 text-text-secondary hover:text-text-primary transition-colors",
596
- children: [/* @__PURE__ */ E(g, { className: "w-4 h-4" }), k("agentDetails.backToAgents", "Back to Agents")]
597
- }), /* @__PURE__ */ E(he, {
598
- icon: /* @__PURE__ */ E(Ze, { className: "w-8 h-8 text-text-secondary" }),
594
+ children: [/* @__PURE__ */ T(g, { className: "w-4 h-4" }), k("agentDetails.backToAgents", "Back to Agents")]
595
+ }), /* @__PURE__ */ T(he, {
596
+ icon: /* @__PURE__ */ T(Qe, { className: "w-8 h-8 text-text-secondary" }),
599
597
  title: k("agentDetails.notFound", "Agent not found"),
600
- description: `${k("agentDetails.notFoundDescriptionPrefix", "No agent with ID")} "${v}" ${k("agentDetails.notFoundDescriptionSuffix", "exists")}`,
601
- action: /* @__PURE__ */ E("button", {
598
+ description: `${k("agentDetails.notFoundDescriptionPrefix", "No agent with ID")} "${_}" ${k("agentDetails.notFoundDescriptionSuffix", "exists")}`,
599
+ action: /* @__PURE__ */ T("button", {
602
600
  onClick: $,
603
601
  className: "px-4 py-2 bg-action-primary-bg text-action-primary-text rounded-md hover:bg-action-primary-bg-hover transition-colors",
604
602
  children: k("agentDetails.backToAgents", "Back to Agents")
605
603
  })
606
604
  })]
607
605
  });
608
- let Ln = [
606
+ let In = [
609
607
  {
610
608
  id: "overview",
611
609
  label: k("nav.overview", "Overview"),
612
- icon: Ze
610
+ icon: Qe
613
611
  },
614
612
  {
615
613
  id: "profiles",
616
614
  label: k("agentDetails.profiles", "Profiles"),
617
- icon: it
615
+ icon: at
618
616
  },
619
617
  {
620
618
  id: "security",
621
619
  label: k("agentDetails.security", "Security"),
622
- icon: $e
620
+ icon: et
623
621
  },
624
622
  {
625
623
  id: "plugins",
626
624
  label: k("agentDetails.plugins", "Plugins"),
627
- icon: b,
628
- badge: `${H.length}`
625
+ icon: y,
626
+ badge: `${V.length}`
629
627
  },
630
628
  {
631
629
  id: "sessions",
632
630
  label: k("nav.sessions", "Sessions"),
633
- icon: x,
631
+ icon: b,
634
632
  badge: `${Z.length}`
635
633
  },
636
634
  {
637
635
  id: "logs",
638
636
  label: k("nav.logs", "Logs"),
639
- icon: Ye
637
+ icon: Xe
640
638
  },
641
639
  {
642
640
  id: "vibes",
643
641
  label: k("nav.vibes", "Vibes"),
644
- icon: C,
642
+ icon: S,
645
643
  badge: `${Q.length}`
646
644
  },
647
645
  {
@@ -659,101 +657,101 @@ function ft() {
659
657
  label: k("agentDetails.backup", "Backup"),
660
658
  icon: ze
661
659
  }
662
- ], Rn = Z.filter((e) => e.status === "RUNNING").length;
663
- return F?.tunnelUrl, /* @__PURE__ */ D(lt, {
660
+ ], Ln = Z.filter((e) => e.status === "RUNNING").length;
661
+ return F?.tunnelUrl, /* @__PURE__ */ E(D, {
664
662
  className: "space-y-6 p-4 sm:p-6 bg-bg-surface min-h-screen",
665
663
  children: [
666
- At && /* @__PURE__ */ E("div", {
664
+ At && /* @__PURE__ */ T("div", {
667
665
  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",
668
666
  children: At
669
667
  }),
670
- xt && /* @__PURE__ */ E("div", {
668
+ xt && /* @__PURE__ */ T("div", {
671
669
  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",
672
670
  children: xt
673
671
  }),
674
- /* @__PURE__ */ D("button", {
672
+ /* @__PURE__ */ E("button", {
675
673
  onClick: $,
676
674
  className: "flex items-center gap-2 text-text-secondary hover:text-text-primary transition-colors",
677
- children: [/* @__PURE__ */ E(g, { className: "w-4 h-4" }), k("agentDetails.backToAgents", "Back to Agents")]
675
+ children: [/* @__PURE__ */ T(g, { className: "w-4 h-4" }), k("agentDetails.backToAgents", "Back to Agents")]
678
676
  }),
679
- /* @__PURE__ */ E(se, {
677
+ /* @__PURE__ */ T(se, {
680
678
  title: F.name,
681
679
  description: F.hostname || k("agentDetails.noHostnameConfigured", "No hostname configured"),
682
680
  breadcrumb: [{
683
681
  label: k("nav.agents", "Agents"),
684
682
  path: ft ? `${ft}/agents` : "/agents"
685
683
  }, { label: F.name }],
686
- actions: /* @__PURE__ */ D("div", {
684
+ actions: /* @__PURE__ */ E("div", {
687
685
  className: "flex flex-wrap items-center gap-2",
688
686
  children: [
689
- /* @__PURE__ */ E("button", {
687
+ /* @__PURE__ */ T("button", {
690
688
  onClick: () => P(),
691
689
  disabled: Ht,
692
690
  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",
693
691
  title: k("common.refresh", "Refresh"),
694
- children: /* @__PURE__ */ E(Je, { className: `w-4 h-4 ${Ht ? "animate-spin" : ""}` })
692
+ children: /* @__PURE__ */ T(Ye, { className: `w-4 h-4 ${Ht ? "animate-spin" : ""}` })
695
693
  }),
696
- Jt ? /* @__PURE__ */ D("button", {
697
- onClick: On,
694
+ Jt ? /* @__PURE__ */ E("button", {
695
+ onClick: Dn,
698
696
  disabled: A !== null,
699
697
  "aria-busy": A === "start",
700
698
  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",
701
- children: [A === "start" ? /* @__PURE__ */ E(y, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ E(qe, { className: "w-4 h-4" }), A === "start" ? k("agentDetails.starting", "Starting…") : k("agentDetails.start", "Start")]
702
- }) : /* @__PURE__ */ D("button", {
703
- onClick: kn,
699
+ children: [A === "start" ? /* @__PURE__ */ T(v, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ T(Je, { className: "w-4 h-4" }), A === "start" ? k("agentDetails.starting", "Starting…") : k("agentDetails.start", "Start")]
700
+ }) : /* @__PURE__ */ E("button", {
701
+ onClick: On,
704
702
  disabled: A !== null,
705
703
  "aria-busy": A === "stop",
706
704
  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",
707
- children: [A === "stop" ? /* @__PURE__ */ E(y, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ E(et, { className: "w-4 h-4" }), A === "stop" ? k("agentDetails.stopping", "Stopping…") : k("sessions.stop", "Stop")]
705
+ children: [A === "stop" ? /* @__PURE__ */ T(v, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ T(tt, { className: "w-4 h-4" }), A === "stop" ? k("agentDetails.stopping", "Stopping…") : k("sessions.stop", "Stop")]
708
706
  }),
709
- /* @__PURE__ */ E(Ce, {
707
+ /* @__PURE__ */ T(Ce, {
710
708
  tunnelUrl: F.tunnelUrl || null,
711
709
  agentApiKey: F.agentApiKey || null,
712
710
  profile: L
713
711
  }),
714
- /* @__PURE__ */ D("button", {
715
- onClick: An,
712
+ /* @__PURE__ */ E("button", {
713
+ onClick: kn,
716
714
  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",
717
- children: [/* @__PURE__ */ E(Qe, { className: "w-4 h-4" }), k("agentDetails.configure", "Configure")]
715
+ children: [/* @__PURE__ */ T($e, { className: "w-4 h-4" }), k("agentDetails.configure", "Configure")]
718
716
  }),
719
- /* @__PURE__ */ D("button", {
720
- onClick: Nn,
717
+ /* @__PURE__ */ E("button", {
718
+ onClick: Mn,
721
719
  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",
722
- children: [/* @__PURE__ */ E(nt, { className: "w-4 h-4" }), k("sessions.remove", "Remove")]
720
+ children: [/* @__PURE__ */ T(rt, { className: "w-4 h-4" }), k("sessions.remove", "Remove")]
723
721
  })
724
722
  ]
725
723
  })
726
724
  }),
727
- /* @__PURE__ */ D("div", {
725
+ /* @__PURE__ */ E("div", {
728
726
  className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4",
729
727
  children: [
730
- /* @__PURE__ */ E(u, {
728
+ /* @__PURE__ */ T(u, {
731
729
  className: "p-4",
732
- children: /* @__PURE__ */ D("div", {
730
+ children: /* @__PURE__ */ E("div", {
733
731
  className: "flex items-center gap-3",
734
- children: [/* @__PURE__ */ E("div", {
732
+ children: [/* @__PURE__ */ T("div", {
735
733
  className: "w-10 h-10 rounded-lg bg-bg-sunken flex items-center justify-center",
736
- children: /* @__PURE__ */ E(Ze, { className: "w-5 h-5 text-text-secondary" })
737
- }), /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
734
+ children: /* @__PURE__ */ T(Qe, { className: "w-5 h-5 text-text-secondary" })
735
+ }), /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
738
736
  className: "text-sm text-text-secondary",
739
737
  children: k("sessions.filterStatus", "Status")
740
- }), /* @__PURE__ */ E(xe, {
738
+ }), /* @__PURE__ */ T(xe, {
741
739
  status: qt,
742
740
  reason: Kt.get(F.id)?.errorMessage ?? (F.lastGatewayAuthPushStatus === "failed" ? F.lastGatewayAuthPushError ?? "Gateway-auth push failed" : null)
743
741
  })] })]
744
742
  })
745
743
  }),
746
- /* @__PURE__ */ E(u, {
744
+ /* @__PURE__ */ T(u, {
747
745
  className: "p-4",
748
- children: /* @__PURE__ */ D("div", {
746
+ children: /* @__PURE__ */ E("div", {
749
747
  className: "flex items-center gap-3",
750
- children: [/* @__PURE__ */ E("div", {
748
+ children: [/* @__PURE__ */ T("div", {
751
749
  className: "w-10 h-10 rounded-lg bg-bg-sunken flex items-center justify-center",
752
- children: /* @__PURE__ */ E(Re, { className: "w-5 h-5 text-text-secondary" })
753
- }), /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
750
+ children: /* @__PURE__ */ T(Re, { className: "w-5 h-5 text-text-secondary" })
751
+ }), /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
754
752
  className: "text-sm text-text-secondary",
755
753
  children: k("analytics.platform", "Platform")
756
- }), /* @__PURE__ */ D("p", {
754
+ }), /* @__PURE__ */ E("p", {
757
755
  className: "font-semibold text-text-primary",
758
756
  children: [
759
757
  F.platform,
@@ -763,36 +761,36 @@ function ft() {
763
761
  })] })]
764
762
  })
765
763
  }),
766
- /* @__PURE__ */ E(u, {
764
+ /* @__PURE__ */ T(u, {
767
765
  className: "p-4",
768
- children: /* @__PURE__ */ D("div", {
766
+ children: /* @__PURE__ */ E("div", {
769
767
  className: "flex items-center gap-3",
770
- children: [/* @__PURE__ */ E("div", {
768
+ children: [/* @__PURE__ */ T("div", {
771
769
  className: "w-10 h-10 rounded-lg bg-bg-sunken flex items-center justify-center",
772
- children: /* @__PURE__ */ E(We, { className: "w-5 h-5 text-text-secondary" })
773
- }), /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
770
+ children: /* @__PURE__ */ T(We, { className: "w-5 h-5 text-text-secondary" })
771
+ }), /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
774
772
  className: "text-sm text-text-secondary",
775
773
  children: k("agentDetails.version", "Version")
776
- }), /* @__PURE__ */ D("p", {
774
+ }), /* @__PURE__ */ E("p", {
777
775
  className: "font-semibold text-text-primary",
778
776
  children: ["v", F.version]
779
777
  })] })]
780
778
  })
781
779
  }),
782
- /* @__PURE__ */ E(u, {
780
+ /* @__PURE__ */ T(u, {
783
781
  className: "p-4",
784
- children: /* @__PURE__ */ D("div", {
782
+ children: /* @__PURE__ */ E("div", {
785
783
  className: "flex items-center gap-3",
786
- children: [/* @__PURE__ */ E("div", {
784
+ children: [/* @__PURE__ */ T("div", {
787
785
  className: "w-10 h-10 rounded-lg bg-bg-sunken flex items-center justify-center",
788
- children: /* @__PURE__ */ E(x, { className: "w-5 h-5 text-text-secondary" })
789
- }), /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
786
+ children: /* @__PURE__ */ T(b, { className: "w-5 h-5 text-text-secondary" })
787
+ }), /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
790
788
  className: "text-sm text-text-secondary",
791
789
  children: k("nav.sessions", "Sessions")
792
- }), /* @__PURE__ */ D("p", {
790
+ }), /* @__PURE__ */ E("p", {
793
791
  className: "font-semibold text-text-primary",
794
792
  children: [
795
- Rn,
793
+ Ln,
796
794
  " ",
797
795
  k("health.active", "active")
798
796
  ]
@@ -801,32 +799,32 @@ function ft() {
801
799
  })
802
800
  ]
803
801
  }),
804
- /* @__PURE__ */ E("div", {
802
+ /* @__PURE__ */ T("div", {
805
803
  className: "border-b border-border-default",
806
- children: /* @__PURE__ */ D("nav", {
804
+ children: /* @__PURE__ */ E("nav", {
807
805
  className: "flex gap-1 -mb-px overflow-x-auto pb-1",
808
806
  "aria-label": k("agentDetails.tabsAriaLabel", "Agent tabs"),
809
807
  children: [
810
- Ln.map((e) => {
811
- let t = e.icon, n = V === e.id;
812
- return /* @__PURE__ */ D("button", {
808
+ In.map((e) => {
809
+ let t = e.icon, n = B === e.id;
810
+ return /* @__PURE__ */ E("button", {
813
811
  onClick: () => Xt(e.id),
814
812
  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"}`,
815
813
  "aria-selected": n,
816
814
  role: "tab",
817
815
  children: [
818
- /* @__PURE__ */ E(t, { className: "w-4 h-4" }),
816
+ /* @__PURE__ */ T(t, { className: "w-4 h-4" }),
819
817
  e.label,
820
- e.badge && /* @__PURE__ */ E("span", {
818
+ e.badge && /* @__PURE__ */ T("span", {
821
819
  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"}`,
822
820
  children: e.badge
823
821
  })
824
822
  ]
825
823
  }, e.id);
826
824
  }),
827
- z && B.data.map((e) => {
828
- let t = V === e.contribution.id;
829
- return /* @__PURE__ */ E("button", {
825
+ R && z.data.map((e) => {
826
+ let t = B === e.contribution.id;
827
+ return /* @__PURE__ */ T("button", {
830
828
  onClick: () => Xt(e.contribution.id),
831
829
  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"}`,
832
830
  "aria-selected": t,
@@ -835,16 +833,16 @@ function ft() {
835
833
  children: e.contribution.title
836
834
  }, `plugin-${e.contribution.id}`);
837
835
  }),
838
- z && F && /* @__PURE__ */ D("button", {
836
+ R && F && /* @__PURE__ */ E("button", {
839
837
  type: "button",
840
838
  onClick: () => Qt(!0),
841
839
  className: "flex shrink-0 items-center gap-1 px-2 py-2 text-xs sm:text-sm border-b-2 border-transparent text-text-secondary hover:text-text-primary hover:border-border-default",
842
840
  title: "Install a UI plugin tab",
843
841
  "aria-label": "Add tab",
844
- children: [/* @__PURE__ */ E("span", {
842
+ children: [/* @__PURE__ */ T("span", {
845
843
  "aria-hidden": !0,
846
844
  children: "+"
847
- }), /* @__PURE__ */ E("span", {
845
+ }), /* @__PURE__ */ T("span", {
848
846
  className: "hidden sm:inline",
849
847
  children: "Add tab"
850
848
  })]
@@ -852,10 +850,10 @@ function ft() {
852
850
  ]
853
851
  })
854
852
  }),
855
- /* @__PURE__ */ D(st, {
853
+ /* @__PURE__ */ E(ct, {
856
854
  mode: "wait",
857
855
  children: [
858
- V === "overview" && /* @__PURE__ */ D(w.div, {
856
+ B === "overview" && /* @__PURE__ */ E(C.div, {
859
857
  initial: {
860
858
  opacity: 0,
861
859
  y: 8
@@ -871,62 +869,62 @@ function ft() {
871
869
  transition: { duration: .2 },
872
870
  className: "space-y-6",
873
871
  children: [
874
- /* @__PURE__ */ D(u, { children: [/* @__PURE__ */ E("div", {
872
+ /* @__PURE__ */ E(u, { children: [/* @__PURE__ */ T("div", {
875
873
  className: "p-4 border-b border-border-default",
876
- children: /* @__PURE__ */ D("h3", {
874
+ children: /* @__PURE__ */ E("h3", {
877
875
  className: "font-semibold text-text-primary flex items-center gap-2",
878
- children: [/* @__PURE__ */ E(Pe, { className: "w-5 h-5" }), k("agentDetails.capabilities", "Capabilities")]
876
+ children: [/* @__PURE__ */ T(Pe, { className: "w-5 h-5" }), k("agentDetails.capabilities", "Capabilities")]
879
877
  })
880
- }), /* @__PURE__ */ E("div", {
878
+ }), /* @__PURE__ */ T("div", {
881
879
  className: "p-4",
882
- children: /* @__PURE__ */ E("div", {
880
+ children: /* @__PURE__ */ T("div", {
883
881
  className: "flex flex-wrap gap-2",
884
882
  children: F.capabilities && typeof F.capabilities == "object" && (Array.isArray(F.capabilities) ? F.capabilities.length > 0 : Object.keys(F.capabilities).length > 0) ? (Array.isArray(F.capabilities) ? F.capabilities : (() => {
885
883
  let e = F.capabilities, t = Object.keys(e);
886
884
  return t.length > 0 && t.every((e) => /^\d+$/.test(e)) ? Object.values(e) : t;
887
- })()).map((e) => /* @__PURE__ */ E("span", {
885
+ })()).map((e) => /* @__PURE__ */ T("span", {
888
886
  className: "px-3 py-1 bg-bg-sunken text-text-primary text-sm rounded-full",
889
887
  children: e
890
- }, e)) : /* @__PURE__ */ D("div", {
888
+ }, e)) : /* @__PURE__ */ E("div", {
891
889
  className: "space-y-2 text-sm text-text-secondary",
892
890
  children: [
893
- /* @__PURE__ */ E("p", { children: k("agentDetails.noCapabilitiesConfigured", "No capabilities configured") }),
894
- /* @__PURE__ */ D("p", {
891
+ /* @__PURE__ */ T("p", { children: k("agentDetails.noCapabilitiesConfigured", "No capabilities configured") }),
892
+ /* @__PURE__ */ E("p", {
895
893
  className: "text-xs",
896
894
  children: [
897
895
  "Capabilities are feature tags the agent advertises to vibes (e.g.",
898
896
  " ",
899
- /* @__PURE__ */ E("code", {
897
+ /* @__PURE__ */ T("code", {
900
898
  className: "text-text-primary",
901
899
  children: "docker"
902
900
  }),
903
901
  ",",
904
902
  " ",
905
- /* @__PURE__ */ E("code", {
903
+ /* @__PURE__ */ T("code", {
906
904
  className: "text-text-primary",
907
905
  children: "gpu"
908
906
  }),
909
907
  ",",
910
908
  " ",
911
- /* @__PURE__ */ E("code", {
909
+ /* @__PURE__ */ T("code", {
912
910
  className: "text-text-primary",
913
911
  children: "node20"
914
912
  }),
915
913
  ",",
916
914
  " ",
917
- /* @__PURE__ */ E("code", {
915
+ /* @__PURE__ */ T("code", {
918
916
  className: "text-text-primary",
919
917
  children: "git"
920
918
  }),
921
919
  "). Vibes use them to pick an agent that can run their workloads."
922
920
  ]
923
921
  }),
924
- /* @__PURE__ */ D("p", {
922
+ /* @__PURE__ */ E("p", {
925
923
  className: "text-xs",
926
924
  children: [
927
925
  "Add from the agent host CLI:",
928
926
  " ",
929
- /* @__PURE__ */ E("code", {
927
+ /* @__PURE__ */ T("code", {
930
928
  className: "text-text-primary",
931
929
  children: "vibe agent caps add docker gpu"
932
930
  }),
@@ -937,33 +935,33 @@ function ft() {
937
935
  })
938
936
  })
939
937
  })] }),
940
- /* @__PURE__ */ D(u, { children: [/* @__PURE__ */ E("div", {
938
+ /* @__PURE__ */ E(u, { children: [/* @__PURE__ */ T("div", {
941
939
  className: "p-4 border-b border-border-default",
942
- children: /* @__PURE__ */ D("h3", {
940
+ children: /* @__PURE__ */ E("h3", {
943
941
  className: "font-semibold text-text-primary flex items-center gap-2",
944
- children: [/* @__PURE__ */ E(tt, { className: "w-5 h-5" }), "Tags"]
942
+ children: [/* @__PURE__ */ T(nt, { className: "w-5 h-5" }), "Tags"]
945
943
  })
946
- }), /* @__PURE__ */ E("div", {
944
+ }), /* @__PURE__ */ T("div", {
947
945
  className: "p-4",
948
- children: /* @__PURE__ */ E(de, {
946
+ children: /* @__PURE__ */ T(de, {
949
947
  entityType: "VIBECONTROLS_AGENT",
950
948
  entityId: F.id
951
949
  })
952
950
  })] }),
953
- F.tunnelUrl && /* @__PURE__ */ D(u, { children: [/* @__PURE__ */ E("div", {
951
+ F.tunnelUrl && /* @__PURE__ */ E(u, { children: [/* @__PURE__ */ T("div", {
954
952
  className: "p-4 border-b border-border-default",
955
- children: /* @__PURE__ */ D("h3", {
953
+ children: /* @__PURE__ */ E("h3", {
956
954
  className: "font-semibold text-text-primary flex items-center gap-2",
957
- children: [/* @__PURE__ */ E(C, { className: "w-5 h-5" }), k("health.tunnel", "Tunnel")]
955
+ children: [/* @__PURE__ */ T(S, { className: "w-5 h-5" }), k("health.tunnel", "Tunnel")]
958
956
  })
959
- }), /* @__PURE__ */ E("div", {
957
+ }), /* @__PURE__ */ T("div", {
960
958
  className: "p-4",
961
- children: /* @__PURE__ */ D("div", {
959
+ children: /* @__PURE__ */ E("div", {
962
960
  className: "flex-1 min-w-0",
963
- children: [/* @__PURE__ */ E("p", {
961
+ children: [/* @__PURE__ */ T("p", {
964
962
  className: "text-sm text-text-secondary mb-1",
965
963
  children: k("agentDetails.tunnelUrl", "Tunnel URL")
966
- }), /* @__PURE__ */ E("a", {
964
+ }), /* @__PURE__ */ T("a", {
967
965
  href: F.tunnelUrl,
968
966
  target: "_blank",
969
967
  rel: "noopener noreferrer",
@@ -972,85 +970,85 @@ function ft() {
972
970
  })]
973
971
  })
974
972
  })] }),
975
- /* @__PURE__ */ D(u, { children: [/* @__PURE__ */ E("div", {
973
+ /* @__PURE__ */ E(u, { children: [/* @__PURE__ */ T("div", {
976
974
  className: "p-4 border-b border-border-default",
977
- children: /* @__PURE__ */ D("h3", {
975
+ children: /* @__PURE__ */ E("h3", {
978
976
  className: "font-semibold text-text-primary flex items-center gap-2",
979
- children: [/* @__PURE__ */ E(Qe, { className: "w-5 h-5" }), k("agentDetails.configuration", "Configuration")]
977
+ children: [/* @__PURE__ */ T($e, { className: "w-5 h-5" }), k("agentDetails.configuration", "Configuration")]
980
978
  })
981
- }), /* @__PURE__ */ D("div", {
979
+ }), /* @__PURE__ */ E("div", {
982
980
  className: "p-4 space-y-4",
983
- children: [/* @__PURE__ */ D("div", {
981
+ children: [/* @__PURE__ */ E("div", {
984
982
  className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",
985
983
  children: [
986
- /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
984
+ /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
987
985
  className: "text-sm text-text-secondary",
988
986
  children: k("analytics.platform", "Platform")
989
- }), /* @__PURE__ */ E("p", {
987
+ }), /* @__PURE__ */ T("p", {
990
988
  className: "font-medium text-text-primary",
991
989
  children: F.platform
992
990
  })] }),
993
- /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
991
+ /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
994
992
  className: "text-sm text-text-secondary",
995
993
  children: k("analytics.architecture", "Architecture")
996
- }), /* @__PURE__ */ E("p", {
994
+ }), /* @__PURE__ */ T("p", {
997
995
  className: "font-medium text-text-primary",
998
996
  children: F.architecture
999
997
  })] }),
1000
- /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
998
+ /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
1001
999
  className: "text-sm text-text-secondary",
1002
1000
  children: k("agentDetails.version", "Version")
1003
- }), /* @__PURE__ */ E("p", {
1001
+ }), /* @__PURE__ */ T("p", {
1004
1002
  className: "font-medium text-text-primary",
1005
1003
  children: F.version
1006
1004
  })] })
1007
1005
  ]
1008
- }), F.aiContext && /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
1006
+ }), F.aiContext && /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
1009
1007
  className: "text-sm text-text-secondary mb-1",
1010
1008
  children: "AI Context"
1011
- }), /* @__PURE__ */ E("pre", {
1009
+ }), /* @__PURE__ */ T("pre", {
1012
1010
  className: "text-sm text-text-primary bg-bg-sunken border border-border-default rounded-md p-3 whitespace-pre-wrap font-sans",
1013
1011
  children: F.aiContext
1014
1012
  })] })]
1015
1013
  })] }),
1016
- /* @__PURE__ */ D(u, { children: [/* @__PURE__ */ E("div", {
1014
+ /* @__PURE__ */ E(u, { children: [/* @__PURE__ */ T("div", {
1017
1015
  className: "p-4 border-b border-border-default",
1018
- children: /* @__PURE__ */ D("h3", {
1016
+ children: /* @__PURE__ */ E("h3", {
1019
1017
  className: "font-semibold text-text-primary flex items-center gap-2",
1020
- children: [/* @__PURE__ */ E(Fe, { className: "w-5 h-5" }), k("vibeDetails.timeline", "Timeline")]
1018
+ children: [/* @__PURE__ */ T(Fe, { className: "w-5 h-5" }), k("vibeDetails.timeline", "Timeline")]
1021
1019
  })
1022
- }), /* @__PURE__ */ E("div", {
1020
+ }), /* @__PURE__ */ T("div", {
1023
1021
  className: "p-4",
1024
- children: /* @__PURE__ */ D("div", {
1022
+ children: /* @__PURE__ */ E("div", {
1025
1023
  className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 text-sm",
1026
1024
  children: [
1027
- /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
1025
+ /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
1028
1026
  className: "text-text-secondary",
1029
1027
  children: k("health.lastHeartbeat", "Last Heartbeat")
1030
- }), /* @__PURE__ */ E("p", {
1028
+ }), /* @__PURE__ */ T("p", {
1031
1029
  className: "font-medium text-text-primary",
1032
- children: In(F.lastHeartbeat)
1030
+ children: Fn(F.lastHeartbeat)
1033
1031
  })] }),
1034
- /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
1032
+ /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
1035
1033
  className: "text-text-secondary",
1036
1034
  children: k("vibeDetails.created", "Created")
1037
- }), /* @__PURE__ */ E("p", {
1035
+ }), /* @__PURE__ */ T("p", {
1038
1036
  className: "font-medium text-text-primary",
1039
- children: In(F.createdAt)
1037
+ children: Fn(F.createdAt)
1040
1038
  })] }),
1041
- /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
1039
+ /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
1042
1040
  className: "text-text-secondary",
1043
1041
  children: k("vibeDetails.updated", "Updated")
1044
- }), /* @__PURE__ */ E("p", {
1042
+ }), /* @__PURE__ */ T("p", {
1045
1043
  className: "font-medium text-text-primary",
1046
- children: In(F.updatedAt)
1044
+ children: Fn(F.updatedAt)
1047
1045
  })] })
1048
1046
  ]
1049
1047
  })
1050
1048
  })] })
1051
1049
  ]
1052
1050
  }, "overview"),
1053
- V === "profiles" && /* @__PURE__ */ E(w.div, {
1051
+ B === "profiles" && /* @__PURE__ */ T(C.div, {
1054
1052
  initial: {
1055
1053
  opacity: 0,
1056
1054
  y: 8
@@ -1064,9 +1062,9 @@ function ft() {
1064
1062
  y: -8
1065
1063
  },
1066
1064
  transition: { duration: .2 },
1067
- children: /* @__PURE__ */ E(Ee, { agentId: F.id })
1065
+ children: /* @__PURE__ */ T(Ee, { agentId: F.id })
1068
1066
  }, "profiles"),
1069
- V === "security" && /* @__PURE__ */ D(w.div, {
1067
+ B === "security" && /* @__PURE__ */ E(C.div, {
1070
1068
  initial: {
1071
1069
  opacity: 0,
1072
1070
  y: 8
@@ -1082,35 +1080,35 @@ function ft() {
1082
1080
  transition: { duration: .2 },
1083
1081
  className: "space-y-6",
1084
1082
  children: [
1085
- F.tunnelUrl && F.agentApiKey && /* @__PURE__ */ D(u, { children: [/* @__PURE__ */ E("div", {
1083
+ F.tunnelUrl && F.agentApiKey && /* @__PURE__ */ E(u, { children: [/* @__PURE__ */ T("div", {
1086
1084
  className: "p-4 border-b border-border-default",
1087
- children: /* @__PURE__ */ D("h3", {
1085
+ children: /* @__PURE__ */ E("h3", {
1088
1086
  className: "font-semibold text-text-primary flex items-center gap-2",
1089
- children: [/* @__PURE__ */ E(_, { className: "w-5 h-5" }), k("agentDetails.apiAuthentication", "API Authentication")]
1087
+ children: [/* @__PURE__ */ T(Ge, { className: "w-5 h-5" }), k("agentDetails.apiAuthentication", "API Authentication")]
1090
1088
  })
1091
- }), /* @__PURE__ */ D("div", {
1089
+ }), /* @__PURE__ */ E("div", {
1092
1090
  className: "p-4 space-y-3",
1093
1091
  children: [
1094
- /* @__PURE__ */ E("p", {
1092
+ /* @__PURE__ */ T("p", {
1095
1093
  className: "text-sm text-text-secondary",
1096
1094
  children: k("agentDetails.apiAuthenticationDescription", "All requests to the agent (except health checks) require authentication. You can pass the API key in two ways:")
1097
1095
  }),
1098
- /* @__PURE__ */ D("div", {
1096
+ /* @__PURE__ */ E("div", {
1099
1097
  className: "space-y-2",
1100
- children: [/* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
1098
+ children: [/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
1101
1099
  className: "text-xs font-medium text-text-primary mb-1",
1102
1100
  children: k("agentDetails.authHeaderRecommended", "Header (recommended)")
1103
- }), /* @__PURE__ */ D("code", {
1101
+ }), /* @__PURE__ */ E("code", {
1104
1102
  className: "block text-xs font-mono bg-bg-sunken px-3 py-2 rounded-md text-text-primary overflow-x-auto",
1105
1103
  children: [
1106
1104
  "x-agent-api-key: ",
1107
1105
  F.agentApiKey.slice(0, 12),
1108
1106
  "..."
1109
1107
  ]
1110
- })] }), /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
1108
+ })] }), /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
1111
1109
  className: "text-xs font-medium text-text-primary mb-1",
1112
1110
  children: k("agentDetails.authQueryParameter", "URL query parameter")
1113
- }), /* @__PURE__ */ D("code", {
1111
+ }), /* @__PURE__ */ E("code", {
1114
1112
  className: "block text-xs font-mono bg-bg-sunken px-3 py-2 rounded-md text-text-primary overflow-x-auto break-all",
1115
1113
  children: [
1116
1114
  F.tunnelUrl,
@@ -1120,19 +1118,19 @@ function ft() {
1120
1118
  ]
1121
1119
  })] })]
1122
1120
  }),
1123
- /* @__PURE__ */ D("p", {
1121
+ /* @__PURE__ */ E("p", {
1124
1122
  className: "text-xs text-text-muted",
1125
1123
  children: [
1126
1124
  k("agentDetails.authExemptPrefix", "The"),
1127
1125
  " ",
1128
- /* @__PURE__ */ E("code", {
1126
+ /* @__PURE__ */ T("code", {
1129
1127
  className: "font-mono",
1130
1128
  children: "/health"
1131
1129
  }),
1132
1130
  " ",
1133
1131
  k("agentDetails.authExemptAnd", "and"),
1134
1132
  " ",
1135
- /* @__PURE__ */ E("code", {
1133
+ /* @__PURE__ */ T("code", {
1136
1134
  className: "font-mono",
1137
1135
  children: "/api/agent/identity"
1138
1136
  }),
@@ -1142,58 +1140,58 @@ function ft() {
1142
1140
  })
1143
1141
  ]
1144
1142
  })] }),
1145
- /* @__PURE__ */ D(u, { children: [/* @__PURE__ */ E("div", {
1143
+ /* @__PURE__ */ E(u, { children: [/* @__PURE__ */ T("div", {
1146
1144
  className: "p-4 border-b border-border-default",
1147
- children: /* @__PURE__ */ D("h3", {
1145
+ children: /* @__PURE__ */ E("h3", {
1148
1146
  className: "font-semibold text-text-primary flex items-center gap-2",
1149
- children: [/* @__PURE__ */ E(Ge, { className: "w-5 h-5" }), k("agentDetails.agentApiKey", "Agent API Key")]
1147
+ children: [/* @__PURE__ */ T(Ke, { className: "w-5 h-5" }), k("agentDetails.agentApiKey", "Agent API Key")]
1150
1148
  })
1151
- }), /* @__PURE__ */ D("div", {
1149
+ }), /* @__PURE__ */ E("div", {
1152
1150
  className: "p-4",
1153
- children: [F.agentApiKey ? /* @__PURE__ */ D("div", {
1151
+ children: [F.agentApiKey ? /* @__PURE__ */ E("div", {
1154
1152
  className: "flex items-center gap-3",
1155
1153
  children: [
1156
- /* @__PURE__ */ E("div", {
1154
+ /* @__PURE__ */ T("div", {
1157
1155
  className: "flex-1 min-w-0",
1158
- children: /* @__PURE__ */ E("code", {
1156
+ children: /* @__PURE__ */ T("code", {
1159
1157
  className: "text-sm font-mono text-text-primary bg-bg-sunken px-3 py-2 rounded-md block truncate",
1160
1158
  children: N ? F.agentApiKey : "•".repeat(Math.min(F.agentApiKey.length, 32))
1161
1159
  })
1162
1160
  }),
1163
- /* @__PURE__ */ E("button", {
1161
+ /* @__PURE__ */ T("button", {
1164
1162
  onClick: () => Rt(!N),
1165
1163
  className: "p-2 rounded hover:bg-bg-sunken transition-colors flex-shrink-0",
1166
1164
  title: N ? k("agentDetails.hideApiKey", "Hide API key") : k("agentDetails.showApiKey", "Show API key"),
1167
- children: E(N ? He : Ve, { className: "w-4 h-4 text-text-secondary" })
1165
+ children: T(N ? He : Ve, { className: "w-4 h-4 text-text-secondary" })
1168
1166
  }),
1169
- /* @__PURE__ */ E("button", {
1170
- onClick: Mn,
1167
+ /* @__PURE__ */ T("button", {
1168
+ onClick: jn,
1171
1169
  className: "p-2 rounded hover:bg-bg-sunken transition-colors flex-shrink-0",
1172
1170
  title: k("agentDetails.copyApiKey", "Copy API key"),
1173
- children: zt ? /* @__PURE__ */ E(Ne, { className: "w-4 h-4 text-status-success-text" }) : /* @__PURE__ */ E(Le, { className: "w-4 h-4 text-text-secondary" })
1171
+ children: zt ? /* @__PURE__ */ T(Ne, { className: "w-4 h-4 text-status-success-text" }) : /* @__PURE__ */ T(Le, { className: "w-4 h-4 text-text-secondary" })
1174
1172
  })
1175
1173
  ]
1176
- }) : /* @__PURE__ */ E("p", {
1174
+ }) : /* @__PURE__ */ T("p", {
1177
1175
  className: "text-sm text-text-secondary",
1178
1176
  children: "No API key configured. Set one via the Configure button or agent CLI."
1179
- }), /* @__PURE__ */ E("p", {
1177
+ }), /* @__PURE__ */ T("p", {
1180
1178
  className: "mt-2 text-xs text-text-muted",
1181
1179
  children: "This key authenticates requests sent to the agent. It typically changes on each agent restart."
1182
1180
  })]
1183
1181
  })] }),
1184
- /* @__PURE__ */ E(dt, {
1182
+ /* @__PURE__ */ T(dt, {
1185
1183
  agent: F,
1186
1184
  onUpdate: () => P()
1187
1185
  })
1188
1186
  ]
1189
1187
  }, "security"),
1190
- V === "plugins" && (() => {
1191
- let e = J.toLowerCase(), t = H.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 = rn.filter((t) => !t.installed && (!e || t.name.toLowerCase().includes(e) || t.packageName.toLowerCase().includes(e) || t.description.toLowerCase().includes(e))), r = H.filter((e) => e.hasUI), i = r.filter((t) => !e || t.pluginName.toLowerCase().includes(e) || t.packageName.toLowerCase().includes(e)), a = [
1188
+ B === "plugins" && (() => {
1189
+ let e = q.toLowerCase(), t = V.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 = rn.filter((t) => !t.installed && (!e || t.name.toLowerCase().includes(e) || t.packageName.toLowerCase().includes(e) || t.description.toLowerCase().includes(e))), r = V.filter((e) => e.hasUI), i = r.filter((t) => !e || t.pluginName.toLowerCase().includes(e) || t.packageName.toLowerCase().includes(e)), a = [
1192
1190
  {
1193
1191
  id: "installed",
1194
1192
  label: "Installed",
1195
1193
  count: t.length,
1196
- icon: b
1194
+ icon: y
1197
1195
  },
1198
1196
  {
1199
1197
  id: "available",
@@ -1204,17 +1202,17 @@ function ft() {
1204
1202
  {
1205
1203
  id: "store",
1206
1204
  label: "Store",
1207
- count: Y.length,
1205
+ count: J.length,
1208
1206
  icon: Be
1209
1207
  },
1210
1208
  {
1211
1209
  id: "ui-plugins",
1212
1210
  label: "UI Plugins",
1213
1211
  count: i.length,
1214
- icon: Ke
1212
+ icon: qe
1215
1213
  }
1216
1214
  ];
1217
- return /* @__PURE__ */ E(w.div, {
1215
+ return /* @__PURE__ */ T(C.div, {
1218
1216
  initial: {
1219
1217
  opacity: 0,
1220
1218
  y: 8
@@ -1229,65 +1227,65 @@ function ft() {
1229
1227
  },
1230
1228
  transition: { duration: .2 },
1231
1229
  className: "space-y-6",
1232
- children: /* @__PURE__ */ D(u, { children: [/* @__PURE__ */ D("div", {
1230
+ children: /* @__PURE__ */ E(u, { children: [/* @__PURE__ */ E("div", {
1233
1231
  className: "p-4 border-b border-border-default space-y-3",
1234
1232
  children: [
1235
- /* @__PURE__ */ D("div", {
1233
+ /* @__PURE__ */ E("div", {
1236
1234
  className: "flex items-center justify-between",
1237
- children: [/* @__PURE__ */ D("h3", {
1235
+ children: [/* @__PURE__ */ E("h3", {
1238
1236
  className: "font-semibold text-text-primary flex items-center gap-2",
1239
1237
  children: [
1240
- /* @__PURE__ */ E(b, { className: "w-5 h-5" }),
1238
+ /* @__PURE__ */ T(y, { className: "w-5 h-5" }),
1241
1239
  "Plugins",
1242
- H.length > 0 && /* @__PURE__ */ D("span", {
1240
+ V.length > 0 && /* @__PURE__ */ E("span", {
1243
1241
  className: "text-sm font-normal text-text-secondary",
1244
1242
  children: [
1245
1243
  "(",
1246
- H.filter((e) => e.isCore).length,
1244
+ V.filter((e) => e.isCore).length,
1247
1245
  " core,",
1248
1246
  " ",
1249
- H.filter((e) => !e.isCore).length,
1247
+ V.filter((e) => !e.isCore).length,
1250
1248
  " external)"
1251
1249
  ]
1252
1250
  })
1253
1251
  ]
1254
- }), /* @__PURE__ */ E("button", {
1252
+ }), /* @__PURE__ */ T("button", {
1255
1253
  onClick: X,
1256
1254
  disabled: on,
1257
1255
  className: "p-1.5 text-text-secondary hover:bg-bg-sunken rounded transition-colors disabled:opacity-50",
1258
1256
  title: k("agentDetails.refreshPlugins", "Refresh plugins"),
1259
- children: /* @__PURE__ */ E(Je, { className: `w-4 h-4 ${on ? "animate-spin" : ""}` })
1257
+ children: /* @__PURE__ */ T(Ye, { className: `w-4 h-4 ${on ? "animate-spin" : ""}` })
1260
1258
  })]
1261
1259
  }),
1262
- /* @__PURE__ */ D("div", {
1260
+ /* @__PURE__ */ E("div", {
1263
1261
  className: "relative",
1264
1262
  children: [
1265
- /* @__PURE__ */ E(Xe, { className: "absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-text-muted" }),
1266
- /* @__PURE__ */ E("input", {
1263
+ /* @__PURE__ */ T(Ze, { className: "absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-text-muted" }),
1264
+ /* @__PURE__ */ T("input", {
1267
1265
  type: "text",
1268
- value: J,
1266
+ value: q,
1269
1267
  onChange: (e) => fn(e.target.value),
1270
1268
  placeholder: k("agentDetails.searchPluginsPlaceholder", "Search plugins by name, package, description, or tag..."),
1271
1269
  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"
1272
1270
  }),
1273
- J && /* @__PURE__ */ E("button", {
1271
+ q && /* @__PURE__ */ T("button", {
1274
1272
  onClick: () => fn(""),
1275
1273
  className: "absolute right-2 top-1/2 -translate-y-1/2 p-0.5 text-text-muted hover:text-text-secondary rounded",
1276
- children: /* @__PURE__ */ E(S, { className: "w-3.5 h-3.5" })
1274
+ children: /* @__PURE__ */ T(x, { className: "w-3.5 h-3.5" })
1277
1275
  })
1278
1276
  ]
1279
1277
  }),
1280
- /* @__PURE__ */ E("div", {
1278
+ /* @__PURE__ */ T("div", {
1281
1279
  className: "flex gap-1 border-b border-border-default -mx-4 overflow-x-auto px-4 pb-1",
1282
1280
  children: a.map((e) => {
1283
- let t = K === e.id, n = e.icon;
1284
- return /* @__PURE__ */ D("button", {
1285
- onClick: () => q(e.id),
1281
+ let t = G === e.id, n = e.icon;
1282
+ return /* @__PURE__ */ E("button", {
1283
+ onClick: () => K(e.id),
1286
1284
  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"}`,
1287
1285
  children: [
1288
- /* @__PURE__ */ E(n, { className: "w-3.5 h-3.5" }),
1286
+ /* @__PURE__ */ T(n, { className: "w-3.5 h-3.5" }),
1289
1287
  e.label,
1290
- /* @__PURE__ */ E("span", {
1288
+ /* @__PURE__ */ T("span", {
1291
1289
  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"}`,
1292
1290
  children: e.count
1293
1291
  })
@@ -1296,107 +1294,89 @@ function ft() {
1296
1294
  })
1297
1295
  })
1298
1296
  ]
1299
- }), /* @__PURE__ */ D("div", {
1297
+ }), /* @__PURE__ */ E("div", {
1300
1298
  className: "p-4 space-y-4",
1301
1299
  children: [
1302
- cn && /* @__PURE__ */ D("div", {
1300
+ cn && /* @__PURE__ */ E("div", {
1303
1301
  className: "flex items-center gap-2 p-3 bg-status-error-bg text-status-error-text rounded-md text-sm",
1304
1302
  children: [
1305
- /* @__PURE__ */ E(S, { className: "w-4 h-4 flex-shrink-0" }),
1306
- /* @__PURE__ */ E("span", {
1303
+ /* @__PURE__ */ T(x, { className: "w-4 h-4 flex-shrink-0" }),
1304
+ /* @__PURE__ */ T("span", {
1307
1305
  className: "flex-1",
1308
1306
  children: cn
1309
1307
  }),
1310
- /* @__PURE__ */ E("button", {
1311
- onClick: () => G(null),
1308
+ /* @__PURE__ */ T("button", {
1309
+ onClick: () => W(null),
1312
1310
  className: "flex-shrink-0 p-0.5 hover:bg-status-error-text/10 rounded",
1313
- children: /* @__PURE__ */ E(S, { className: "w-3.5 h-3.5" })
1311
+ children: /* @__PURE__ */ T(x, { className: "w-3.5 h-3.5" })
1314
1312
  })
1315
1313
  ]
1316
1314
  }),
1317
- !F?.isActive && /* @__PURE__ */ D("p", {
1315
+ !F?.isActive && /* @__PURE__ */ E("p", {
1318
1316
  className: "text-sm text-text-muted flex items-center gap-1.5",
1319
- children: [/* @__PURE__ */ E(_, { className: "w-4 h-4 flex-shrink-0" }), "Agent is offline — showing known plugin catalog. Live data will load when the agent is reachable."]
1320
- }),
1321
- R && /* @__PURE__ */ D("p", {
1322
- className: "text-sm text-status-warning-text bg-status-warning-bg border border-status-warning-border rounded-md px-3 py-2 flex items-center gap-1.5",
1323
- children: [
1324
- /* @__PURE__ */ E(_, { className: "w-4 h-4 flex-shrink-0" }),
1325
- "Viewing the ",
1326
- /* @__PURE__ */ E("span", {
1327
- className: "font-medium",
1328
- children: L
1329
- }),
1330
- " profile. Install/remove are temporarily disabled on non-default profiles — they currently only affect the ",
1331
- /* @__PURE__ */ E("span", {
1332
- className: "font-medium",
1333
- children: "default"
1334
- }),
1335
- " ",
1336
- "profile. Switch to the default profile to manage plugins."
1337
- ]
1317
+ children: [/* @__PURE__ */ T(Ge, { className: "w-4 h-4 flex-shrink-0" }), "Agent is offline — showing known plugin catalog. Live data will load when the agent is reachable."]
1338
1318
  }),
1339
- K === "installed" && /* @__PURE__ */ E(T, { children: t.length > 0 ? /* @__PURE__ */ E("div", {
1319
+ G === "installed" && /* @__PURE__ */ T(w, { children: t.length > 0 ? /* @__PURE__ */ T("div", {
1340
1320
  className: "space-y-2",
1341
- children: t.map((e) => /* @__PURE__ */ D("div", {
1321
+ children: t.map((e) => /* @__PURE__ */ E("div", {
1342
1322
  className: "flex flex-col sm:flex-row sm:items-center justify-between gap-2 p-3 bg-bg-sunken rounded-lg",
1343
- children: [/* @__PURE__ */ D("div", {
1323
+ children: [/* @__PURE__ */ E("div", {
1344
1324
  className: "min-w-0",
1345
1325
  children: [
1346
- /* @__PURE__ */ D("p", {
1326
+ /* @__PURE__ */ E("p", {
1347
1327
  className: "text-sm font-medium text-text-primary flex items-center gap-1.5 flex-wrap",
1348
1328
  children: [
1349
1329
  e.pluginName,
1350
- /* @__PURE__ */ E("span", {
1330
+ /* @__PURE__ */ T("span", {
1351
1331
  className: "text-xs text-text-muted font-normal",
1352
1332
  children: e.version === "latest" ? e.version : `v${e.version}`
1353
1333
  }),
1354
- e.isCore && /* @__PURE__ */ E("span", {
1334
+ e.isCore && /* @__PURE__ */ T("span", {
1355
1335
  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",
1356
1336
  children: "core"
1357
1337
  }),
1358
- e.loaded && /* @__PURE__ */ E("span", {
1338
+ e.loaded && /* @__PURE__ */ T("span", {
1359
1339
  className: "inline-flex items-center px-1.5 py-0.5 text-xs bg-status-success-bg text-status-success-text rounded",
1360
1340
  children: "loaded"
1361
1341
  }),
1362
- e.hasProviders && /* @__PURE__ */ E("span", {
1342
+ e.hasProviders && /* @__PURE__ */ T("span", {
1363
1343
  className: "inline-flex items-center px-1.5 py-0.5 text-xs bg-status-warning-bg-subtle text-status-warning-text rounded",
1364
1344
  children: "provider"
1365
1345
  }),
1366
- e.hasUI && /* @__PURE__ */ E("span", {
1346
+ e.hasUI && /* @__PURE__ */ T("span", {
1367
1347
  className: "inline-flex items-center px-1.5 py-0.5 text-xs bg-accent-purple-subtle text-accent-purple rounded",
1368
1348
  children: "ui"
1369
1349
  })
1370
1350
  ]
1371
1351
  }),
1372
- e.description && /* @__PURE__ */ E("p", {
1352
+ e.description && /* @__PURE__ */ T("p", {
1373
1353
  className: "text-xs text-text-secondary mt-0.5",
1374
1354
  children: e.description
1375
1355
  }),
1376
- /* @__PURE__ */ D("div", {
1356
+ /* @__PURE__ */ E("div", {
1377
1357
  className: "flex items-center gap-2 mt-0.5 flex-wrap",
1378
1358
  children: [
1379
- !e.isCore && /* @__PURE__ */ E("span", {
1359
+ !e.isCore && /* @__PURE__ */ T("span", {
1380
1360
  className: "text-xs text-text-muted font-mono",
1381
1361
  children: e.packageName
1382
1362
  }),
1383
- e.cliCommand && /* @__PURE__ */ D("span", {
1363
+ e.cliCommand && /* @__PURE__ */ E("span", {
1384
1364
  className: "text-xs text-text-muted",
1385
1365
  children: [
1386
1366
  "cli:",
1387
1367
  " ",
1388
- /* @__PURE__ */ D("code", {
1368
+ /* @__PURE__ */ E("code", {
1389
1369
  className: "text-xs font-mono",
1390
1370
  children: ["vibe ", e.cliCommand]
1391
1371
  })
1392
1372
  ]
1393
1373
  }),
1394
- e.apiPrefix && /* @__PURE__ */ D("span", {
1374
+ e.apiPrefix && /* @__PURE__ */ E("span", {
1395
1375
  className: "text-xs text-text-muted",
1396
1376
  children: [
1397
1377
  "api:",
1398
1378
  " ",
1399
- /* @__PURE__ */ E("code", {
1379
+ /* @__PURE__ */ T("code", {
1400
1380
  className: "text-xs font-mono",
1401
1381
  children: e.apiPrefix
1402
1382
  })
@@ -1404,133 +1384,131 @@ function ft() {
1404
1384
  })
1405
1385
  ]
1406
1386
  }),
1407
- e.tags && e.tags.length > 0 && /* @__PURE__ */ E("div", {
1387
+ e.tags && e.tags.length > 0 && /* @__PURE__ */ T("div", {
1408
1388
  className: "flex gap-1 mt-1 flex-wrap",
1409
- children: e.tags.map((e) => /* @__PURE__ */ E("span", {
1389
+ children: e.tags.map((e) => /* @__PURE__ */ T("span", {
1410
1390
  className: "inline-flex px-1.5 py-0.5 text-[10px] bg-bg-secondary text-text-muted rounded",
1411
1391
  children: e
1412
1392
  }, e))
1413
1393
  })
1414
1394
  ]
1415
- }), /* @__PURE__ */ D("div", {
1395
+ }), /* @__PURE__ */ E("div", {
1416
1396
  className: "flex items-center gap-2 flex-shrink-0 sm:ml-3",
1417
- children: [e.hasUI && /* @__PURE__ */ D("button", {
1418
- onClick: () => q("ui-plugins"),
1397
+ children: [e.hasUI && /* @__PURE__ */ E("button", {
1398
+ onClick: () => K("ui-plugins"),
1419
1399
  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",
1420
1400
  title: `Open ${e.pluginName} UI`,
1421
- children: [/* @__PURE__ */ E(Ke, { className: "w-3 h-3" }), "Open UI"]
1422
- }), !e.isCore && /* @__PURE__ */ D("button", {
1423
- onClick: () => wn(e.packageName),
1424
- disabled: U === e.packageName || R,
1425
- title: R ? `Plugin removal currently only affects the default profile, not "${L}". Switch to the default profile to manage plugins.` : void 0,
1401
+ children: [/* @__PURE__ */ T(qe, { className: "w-3 h-3" }), "Open UI"]
1402
+ }), !e.isCore && /* @__PURE__ */ E("button", {
1403
+ onClick: () => Cn(e.packageName),
1404
+ disabled: H === e.packageName,
1426
1405
  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",
1427
- children: [U === e.packageName ? /* @__PURE__ */ E(y, { className: "w-3 h-3 animate-spin" }) : /* @__PURE__ */ E(nt, { className: "w-3 h-3" }), "Remove"]
1406
+ children: [H === e.packageName ? /* @__PURE__ */ T(v, { className: "w-3 h-3 animate-spin" }) : /* @__PURE__ */ T(rt, { className: "w-3 h-3" }), "Remove"]
1428
1407
  })]
1429
1408
  })]
1430
1409
  }, e.packageName))
1431
- }) : /* @__PURE__ */ E("p", {
1410
+ }) : /* @__PURE__ */ T("p", {
1432
1411
  className: "text-sm text-text-muted",
1433
- children: J ? "No installed plugins match your search." : "No plugin data available. Check agent connectivity or refresh."
1412
+ children: q ? "No installed plugins match your search." : "No plugin data available. Check agent connectivity or refresh."
1434
1413
  }) }),
1435
- K === "available" && /* @__PURE__ */ E(T, { children: n.length > 0 ? /* @__PURE__ */ E("div", {
1414
+ G === "available" && /* @__PURE__ */ T(w, { children: n.length > 0 ? /* @__PURE__ */ T("div", {
1436
1415
  className: "space-y-2",
1437
- children: n.map((e) => /* @__PURE__ */ D("div", {
1416
+ children: n.map((e) => /* @__PURE__ */ E("div", {
1438
1417
  className: "flex flex-col sm:flex-row sm:items-center justify-between gap-2 p-3 bg-bg-sunken rounded-lg",
1439
- children: [/* @__PURE__ */ D("div", {
1418
+ children: [/* @__PURE__ */ E("div", {
1440
1419
  className: "min-w-0",
1441
1420
  children: [
1442
- /* @__PURE__ */ E("p", {
1421
+ /* @__PURE__ */ T("p", {
1443
1422
  className: "text-sm font-medium text-text-primary",
1444
1423
  children: e.name
1445
1424
  }),
1446
- /* @__PURE__ */ E("p", {
1425
+ /* @__PURE__ */ T("p", {
1447
1426
  className: "text-xs text-text-secondary mt-0.5",
1448
1427
  children: e.description
1449
1428
  }),
1450
- /* @__PURE__ */ E("p", {
1429
+ /* @__PURE__ */ T("p", {
1451
1430
  className: "text-xs text-text-muted font-mono mt-0.5",
1452
1431
  children: e.packageName
1453
1432
  })
1454
1433
  ]
1455
- }), /* @__PURE__ */ D("button", {
1456
- onClick: () => Cn(e.packageName),
1457
- disabled: U === e.packageName || R,
1458
- title: R ? `Plugin installs currently only affect the default profile, not "${L}". Switch to the default profile to manage plugins.` : void 0,
1434
+ }), /* @__PURE__ */ E("button", {
1435
+ onClick: () => Sn(e.packageName),
1436
+ disabled: H === e.packageName,
1459
1437
  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",
1460
- children: [U === e.packageName ? /* @__PURE__ */ E(y, { className: "w-3 h-3 animate-spin" }) : /* @__PURE__ */ E(Be, { className: "w-3 h-3" }), "Install"]
1438
+ children: [H === e.packageName ? /* @__PURE__ */ T(v, { className: "w-3 h-3 animate-spin" }) : /* @__PURE__ */ T(Be, { className: "w-3 h-3" }), "Install"]
1461
1439
  })]
1462
1440
  }, e.packageName))
1463
- }) : /* @__PURE__ */ E("p", {
1441
+ }) : /* @__PURE__ */ T("p", {
1464
1442
  className: "text-sm text-text-muted",
1465
- children: J ? "No available plugins match your search." : rn.every((e) => e.installed) ? "All available plugins are already installed." : "No available plugins found."
1443
+ children: q ? "No available plugins match your search." : rn.every((e) => e.installed) ? "All available plugins are already installed." : "No available plugins found."
1466
1444
  }) }),
1467
- K === "store" && /* @__PURE__ */ D(T, { children: [gn && /* @__PURE__ */ D("div", {
1445
+ G === "store" && /* @__PURE__ */ E(w, { children: [gn && /* @__PURE__ */ E("div", {
1468
1446
  className: "flex items-center gap-2 p-3 bg-status-error-bg text-status-error-text rounded-md text-sm",
1469
- children: [/* @__PURE__ */ E(S, { className: "w-4 h-4 flex-shrink-0" }), /* @__PURE__ */ E("span", {
1447
+ children: [/* @__PURE__ */ T(x, { className: "w-4 h-4 flex-shrink-0" }), /* @__PURE__ */ T("span", {
1470
1448
  className: "flex-1",
1471
1449
  children: gn
1472
1450
  })]
1473
- }), mn ? /* @__PURE__ */ E("p", {
1451
+ }), mn ? /* @__PURE__ */ T("p", {
1474
1452
  className: "text-sm text-text-muted",
1475
1453
  children: "Loading purchased plugins…"
1476
- }) : Y.length === 0 ? /* @__PURE__ */ D("div", {
1454
+ }) : J.length === 0 ? /* @__PURE__ */ E("div", {
1477
1455
  className: "py-8 text-center",
1478
- children: [/* @__PURE__ */ E("p", {
1456
+ children: [/* @__PURE__ */ T("p", {
1479
1457
  className: "text-sm text-text-muted",
1480
1458
  children: "No plugins purchased from the Burdenoff store yet."
1481
- }), /* @__PURE__ */ E("a", {
1459
+ }), /* @__PURE__ */ T("a", {
1482
1460
  href: "/store/marketplace",
1483
1461
  className: "mt-2 inline-flex items-center gap-1 text-xs font-semibold text-action-primary-text hover:underline",
1484
1462
  children: "Browse the store →"
1485
1463
  })]
1486
- }) : /* @__PURE__ */ E("div", {
1464
+ }) : /* @__PURE__ */ T("div", {
1487
1465
  className: "space-y-2",
1488
- children: Y.map((e) => {
1489
- let t = (e.product?.manifest ?? {}).digital?.install, n = typeof t?.packageName == "string" ? t.packageName : null, r = H.some((e) => e.packageName === n);
1490
- return /* @__PURE__ */ D("div", {
1466
+ children: J.map((e) => {
1467
+ let t = (e.product?.manifest ?? {}).digital?.install, n = typeof t?.packageName == "string" ? t.packageName : null, r = V.some((e) => e.packageName === n);
1468
+ return /* @__PURE__ */ E("div", {
1491
1469
  className: "flex flex-col sm:flex-row sm:items-center justify-between gap-2 p-3 bg-bg-sunken rounded-lg",
1492
- children: [/* @__PURE__ */ D("div", {
1470
+ children: [/* @__PURE__ */ E("div", {
1493
1471
  className: "flex items-start gap-3 min-w-0 flex-1",
1494
- children: [e.product?.icon ? /* @__PURE__ */ E("img", {
1472
+ children: [e.product?.icon ? /* @__PURE__ */ T("img", {
1495
1473
  src: e.product.icon,
1496
1474
  alt: "",
1497
1475
  className: "w-10 h-10 rounded-md object-cover flex-shrink-0"
1498
- }) : /* @__PURE__ */ E("div", {
1476
+ }) : /* @__PURE__ */ T("div", {
1499
1477
  className: "w-10 h-10 flex-shrink-0 rounded-md bg-bg-secondary flex items-center justify-center",
1500
- children: /* @__PURE__ */ E(b, { className: "w-5 h-5 text-text-muted" })
1501
- }), /* @__PURE__ */ D("div", {
1478
+ children: /* @__PURE__ */ T(y, { className: "w-5 h-5 text-text-muted" })
1479
+ }), /* @__PURE__ */ E("div", {
1502
1480
  className: "min-w-0 flex-1",
1503
1481
  children: [
1504
- /* @__PURE__ */ D("div", {
1482
+ /* @__PURE__ */ E("div", {
1505
1483
  className: "flex items-center gap-2",
1506
- children: [/* @__PURE__ */ E("h4", {
1484
+ children: [/* @__PURE__ */ T("h4", {
1507
1485
  className: "text-sm font-semibold text-text-primary truncate",
1508
1486
  children: e.product?.name ?? "Unknown"
1509
- }), e.licenseKey && /* @__PURE__ */ E("span", {
1487
+ }), e.licenseKey && /* @__PURE__ */ T("span", {
1510
1488
  className: "text-[10px] bg-status-success-bg text-status-success-text px-1.5 py-0.5 rounded-full",
1511
1489
  children: "Licensed"
1512
1490
  })]
1513
1491
  }),
1514
- n && /* @__PURE__ */ E("p", {
1492
+ n && /* @__PURE__ */ T("p", {
1515
1493
  className: "text-xs text-text-muted font-mono truncate",
1516
1494
  children: n
1517
1495
  }),
1518
- e.product?.description && /* @__PURE__ */ E("p", {
1496
+ e.product?.description && /* @__PURE__ */ T("p", {
1519
1497
  className: "text-xs text-text-secondary line-clamp-2 mt-1",
1520
1498
  children: e.product.description
1521
1499
  })
1522
1500
  ]
1523
1501
  })]
1524
- }), /* @__PURE__ */ E("button", {
1525
- onClick: () => void En(e.productId, e.licenseKey),
1526
- disabled: r || vn === e.productId || !n,
1502
+ }), /* @__PURE__ */ T("button", {
1503
+ onClick: () => void Tn(e.productId, e.licenseKey),
1504
+ disabled: r || Y === e.productId || !n,
1527
1505
  className: "inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-semibold rounded-md bg-action-primary-bg text-action-primary-text hover:opacity-90 disabled:opacity-60 flex-shrink-0",
1528
- children: r ? "Installed" : vn === e.productId ? "Installing…" : "Install"
1506
+ children: r ? "Installed" : Y === e.productId ? "Installing…" : "Install"
1529
1507
  })]
1530
1508
  }, e.id);
1531
1509
  })
1532
1510
  })] }),
1533
- K === "ui-plugins" && /* @__PURE__ */ E(T, { children: r.length > 0 || F?.tunnelUrl ? /* @__PURE__ */ E(Se, {
1511
+ G === "ui-plugins" && /* @__PURE__ */ T(w, { children: r.length > 0 || F?.tunnelUrl ? /* @__PURE__ */ T(Se, {
1534
1512
  availablePlugins: [...F?.tunnelUrl ? [{
1535
1513
  pluginName: "code-server",
1536
1514
  displayName: "Code Server (VS Code)",
@@ -1545,19 +1523,19 @@ function ft() {
1545
1523
  }))],
1546
1524
  tunnelUrl: F?.tunnelUrl || null,
1547
1525
  agentApiKey: F?.agentApiKey
1548
- }) : /* @__PURE__ */ E("p", {
1526
+ }) : /* @__PURE__ */ T("p", {
1549
1527
  className: "text-sm text-text-muted",
1550
- children: J ? "No UI plugins match your search." : "No plugins with UI are currently installed."
1528
+ children: q ? "No UI plugins match your search." : "No plugins with UI are currently installed."
1551
1529
  }) }),
1552
- on && H.length === 0 && /* @__PURE__ */ D("div", {
1530
+ on && V.length === 0 && /* @__PURE__ */ E("div", {
1553
1531
  className: "flex items-center gap-2 text-sm text-text-secondary",
1554
- children: [/* @__PURE__ */ E(y, { className: "w-4 h-4 animate-spin" }), "Loading plugins..."]
1532
+ children: [/* @__PURE__ */ T(v, { className: "w-4 h-4 animate-spin" }), "Loading plugins..."]
1555
1533
  })
1556
1534
  ]
1557
1535
  })] })
1558
1536
  }, "plugins");
1559
1537
  })(),
1560
- V === "sessions" && /* @__PURE__ */ E(w.div, {
1538
+ B === "sessions" && /* @__PURE__ */ T(C.div, {
1561
1539
  initial: {
1562
1540
  opacity: 0,
1563
1541
  y: 8
@@ -1571,43 +1549,43 @@ function ft() {
1571
1549
  y: -8
1572
1550
  },
1573
1551
  transition: { duration: .2 },
1574
- children: /* @__PURE__ */ D(u, { children: [/* @__PURE__ */ E("div", {
1552
+ children: /* @__PURE__ */ E(u, { children: [/* @__PURE__ */ T("div", {
1575
1553
  className: "p-4 border-b border-border-default flex items-center justify-between",
1576
- children: /* @__PURE__ */ D("h3", {
1554
+ children: /* @__PURE__ */ E("h3", {
1577
1555
  className: "font-semibold text-text-primary flex items-center gap-2",
1578
1556
  children: [
1579
- /* @__PURE__ */ E(x, { className: "w-5 h-5" }),
1557
+ /* @__PURE__ */ T(b, { className: "w-5 h-5" }),
1580
1558
  k("nav.sessions", "Sessions"),
1581
1559
  " (",
1582
1560
  Z.length,
1583
1561
  ")"
1584
1562
  ]
1585
1563
  })
1586
- }), Z.length > 0 ? /* @__PURE__ */ E("div", {
1564
+ }), Z.length > 0 ? /* @__PURE__ */ T("div", {
1587
1565
  className: "divide-y divide-border-primary",
1588
- children: Z.map((e) => /* @__PURE__ */ D("div", {
1589
- onClick: () => Pn(e.id),
1566
+ children: Z.map((e) => /* @__PURE__ */ E("div", {
1567
+ onClick: () => Nn(e.id),
1590
1568
  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",
1591
- children: [/* @__PURE__ */ D("div", {
1569
+ children: [/* @__PURE__ */ E("div", {
1592
1570
  className: "flex items-center gap-3 min-w-0",
1593
- children: [/* @__PURE__ */ E(x, { className: "w-5 h-5 text-text-secondary flex-shrink-0" }), /* @__PURE__ */ D("div", {
1571
+ children: [/* @__PURE__ */ T(b, { className: "w-5 h-5 text-text-secondary flex-shrink-0" }), /* @__PURE__ */ E("div", {
1594
1572
  className: "min-w-0",
1595
- children: [/* @__PURE__ */ E("p", {
1573
+ children: [/* @__PURE__ */ T("p", {
1596
1574
  className: "font-medium text-text-primary truncate",
1597
1575
  children: e.name
1598
- }), /* @__PURE__ */ E("p", {
1576
+ }), /* @__PURE__ */ T("p", {
1599
1577
  className: "text-sm text-text-secondary truncate",
1600
1578
  children: e.type
1601
1579
  })]
1602
1580
  })]
1603
- }), /* @__PURE__ */ E(l, { status: e.status })]
1581
+ }), /* @__PURE__ */ T(l, { status: e.status })]
1604
1582
  }, e.id))
1605
- }) : /* @__PURE__ */ E("div", {
1583
+ }) : /* @__PURE__ */ T("div", {
1606
1584
  className: "p-6 text-center text-text-secondary",
1607
1585
  children: k("agentDetails.noSessionsOnAgent", "No sessions on this agent")
1608
1586
  })] })
1609
1587
  }, "sessions"),
1610
- V === "logs" && /* @__PURE__ */ E(w.div, {
1588
+ B === "logs" && /* @__PURE__ */ T(C.div, {
1611
1589
  initial: {
1612
1590
  opacity: 0,
1613
1591
  y: 8
@@ -1621,22 +1599,22 @@ function ft() {
1621
1599
  y: -8
1622
1600
  },
1623
1601
  transition: { duration: .2 },
1624
- children: /* @__PURE__ */ D(u, { children: [/* @__PURE__ */ E("div", {
1602
+ children: /* @__PURE__ */ E(u, { children: [/* @__PURE__ */ T("div", {
1625
1603
  className: "p-4 border-b border-border-default flex items-center justify-between",
1626
- children: /* @__PURE__ */ D("h3", {
1604
+ children: /* @__PURE__ */ E("h3", {
1627
1605
  className: "font-semibold text-text-primary flex items-center gap-2",
1628
- children: [/* @__PURE__ */ E(Ye, { className: "w-5 h-5" }), k("nav.logs", "Logs")]
1606
+ children: [/* @__PURE__ */ T(Xe, { className: "w-5 h-5" }), k("nav.logs", "Logs")]
1629
1607
  })
1630
- }), /* @__PURE__ */ E("div", {
1608
+ }), /* @__PURE__ */ T("div", {
1631
1609
  className: "p-4",
1632
- children: /* @__PURE__ */ E(Te, {
1610
+ children: /* @__PURE__ */ T(Te, {
1633
1611
  agentId: F.id,
1634
1612
  profile: L,
1635
1613
  className: "min-h-[28rem]"
1636
1614
  })
1637
1615
  })] })
1638
1616
  }, "logs"),
1639
- V === "vibes" && /* @__PURE__ */ E(w.div, {
1617
+ B === "vibes" && /* @__PURE__ */ T(C.div, {
1640
1618
  initial: {
1641
1619
  opacity: 0,
1642
1620
  y: 8
@@ -1650,43 +1628,43 @@ function ft() {
1650
1628
  y: -8
1651
1629
  },
1652
1630
  transition: { duration: .2 },
1653
- children: /* @__PURE__ */ D(u, { children: [/* @__PURE__ */ E("div", {
1631
+ children: /* @__PURE__ */ E(u, { children: [/* @__PURE__ */ T("div", {
1654
1632
  className: "p-4 border-b border-border-default flex items-center justify-between",
1655
- children: /* @__PURE__ */ D("h3", {
1633
+ children: /* @__PURE__ */ E("h3", {
1656
1634
  className: "font-semibold text-text-primary flex items-center gap-2",
1657
1635
  children: [
1658
- /* @__PURE__ */ E(C, { className: "w-5 h-5" }),
1636
+ /* @__PURE__ */ T(S, { className: "w-5 h-5" }),
1659
1637
  k("nav.vibes", "Vibes"),
1660
1638
  " (",
1661
1639
  Q.length,
1662
1640
  ")"
1663
1641
  ]
1664
1642
  })
1665
- }), Q.length > 0 ? /* @__PURE__ */ E("div", {
1643
+ }), Q.length > 0 ? /* @__PURE__ */ T("div", {
1666
1644
  className: "divide-y divide-border-primary",
1667
- children: Q.map((e) => /* @__PURE__ */ D("div", {
1668
- onClick: () => Fn(e.id),
1645
+ children: Q.map((e) => /* @__PURE__ */ E("div", {
1646
+ onClick: () => Pn(e.id),
1669
1647
  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",
1670
- children: [/* @__PURE__ */ D("div", {
1648
+ children: [/* @__PURE__ */ E("div", {
1671
1649
  className: "flex items-center gap-3 min-w-0",
1672
- children: [/* @__PURE__ */ E(C, { className: "w-5 h-5 text-text-secondary flex-shrink-0" }), /* @__PURE__ */ D("div", {
1650
+ children: [/* @__PURE__ */ T(S, { className: "w-5 h-5 text-text-secondary flex-shrink-0" }), /* @__PURE__ */ E("div", {
1673
1651
  className: "min-w-0",
1674
- children: [/* @__PURE__ */ E("p", {
1652
+ children: [/* @__PURE__ */ T("p", {
1675
1653
  className: "font-medium text-text-primary truncate",
1676
1654
  children: e.name
1677
- }), /* @__PURE__ */ E("p", {
1655
+ }), /* @__PURE__ */ T("p", {
1678
1656
  className: "text-sm text-text-secondary truncate",
1679
1657
  children: e.type
1680
1658
  })]
1681
1659
  })]
1682
- }), /* @__PURE__ */ E(l, { status: e.status })]
1660
+ }), /* @__PURE__ */ T(l, { status: e.status })]
1683
1661
  }, e.id))
1684
- }) : /* @__PURE__ */ E("div", {
1662
+ }) : /* @__PURE__ */ T("div", {
1685
1663
  className: "p-6 text-center text-text-secondary",
1686
1664
  children: k("agentDetails.noVibesUsingAgent", "No vibes using this agent")
1687
1665
  })] })
1688
1666
  }, "vibes"),
1689
- V === "notes" && /* @__PURE__ */ E(w.div, {
1667
+ B === "notes" && /* @__PURE__ */ T(C.div, {
1690
1668
  initial: {
1691
1669
  opacity: 0,
1692
1670
  y: 8
@@ -1701,7 +1679,7 @@ function ft() {
1701
1679
  },
1702
1680
  transition: { duration: .2 },
1703
1681
  className: "space-y-6",
1704
- children: /* @__PURE__ */ E(De, {
1682
+ children: /* @__PURE__ */ T(De, {
1705
1683
  context: "agent",
1706
1684
  agentVibes: Q.map((e) => ({
1707
1685
  id: e.id,
@@ -1709,7 +1687,7 @@ function ft() {
1709
1687
  }))
1710
1688
  })
1711
1689
  }, "notes"),
1712
- V === "aliases" && /* @__PURE__ */ E(w.div, {
1690
+ B === "aliases" && /* @__PURE__ */ T(C.div, {
1713
1691
  initial: {
1714
1692
  opacity: 0,
1715
1693
  y: 8
@@ -1724,12 +1702,12 @@ function ft() {
1724
1702
  },
1725
1703
  transition: { duration: .2 },
1726
1704
  className: "space-y-6",
1727
- children: /* @__PURE__ */ E(be, { agent: {
1705
+ children: /* @__PURE__ */ T(be, { agent: {
1728
1706
  id: F.id,
1729
1707
  profile: F.metadata?.profile ?? "default"
1730
1708
  } })
1731
1709
  }, "aliases"),
1732
- V === "backup" && F.tunnelUrl && F.agentApiKey && /* @__PURE__ */ E(w.div, {
1710
+ B === "backup" && F.tunnelUrl && F.agentApiKey && /* @__PURE__ */ T(C.div, {
1733
1711
  initial: {
1734
1712
  opacity: 0,
1735
1713
  y: 8
@@ -1743,13 +1721,13 @@ function ft() {
1743
1721
  y: -8
1744
1722
  },
1745
1723
  transition: { duration: .2 },
1746
- children: /* @__PURE__ */ E(ye, {
1724
+ children: /* @__PURE__ */ T(ye, {
1747
1725
  agentTunnelUrl: F.tunnelUrl,
1748
1726
  agentApiKey: F.agentApiKey,
1749
1727
  profile: L
1750
1728
  })
1751
1729
  }, "backup"),
1752
- V === "backup" && (!F.tunnelUrl || !F.agentApiKey) && /* @__PURE__ */ E(w.div, {
1730
+ B === "backup" && (!F.tunnelUrl || !F.agentApiKey) && /* @__PURE__ */ T(C.div, {
1753
1731
  initial: {
1754
1732
  opacity: 0,
1755
1733
  y: 8
@@ -1763,21 +1741,21 @@ function ft() {
1763
1741
  y: -8
1764
1742
  },
1765
1743
  transition: { duration: .2 },
1766
- children: /* @__PURE__ */ D(u, {
1744
+ children: /* @__PURE__ */ E(u, {
1767
1745
  className: "p-6 text-center text-text-secondary",
1768
1746
  children: [
1769
- /* @__PURE__ */ E(ze, { className: "w-8 h-8 mx-auto mb-2 text-text-muted" }),
1770
- /* @__PURE__ */ E("p", { children: k("agentDetails.backupRequiresTunnelAndApiKey", "Agent tunnel URL and API key are required for backup management.") }),
1771
- /* @__PURE__ */ E("p", {
1747
+ /* @__PURE__ */ T(ze, { className: "w-8 h-8 mx-auto mb-2 text-text-muted" }),
1748
+ /* @__PURE__ */ T("p", { children: k("agentDetails.backupRequiresTunnelAndApiKey", "Agent tunnel URL and API key are required for backup management.") }),
1749
+ /* @__PURE__ */ T("p", {
1772
1750
  className: "text-sm mt-1",
1773
1751
  children: k("agentDetails.configureConnectionInOverview", "Configure the agent connection in the Overview tab.")
1774
1752
  })
1775
1753
  ]
1776
1754
  })
1777
1755
  }, "backup-no-tunnel"),
1778
- z && (() => {
1779
- let e = B.data.find((e) => e.contribution.id === V);
1780
- return !e || !F ? null : /* @__PURE__ */ E(w.div, {
1756
+ R && (() => {
1757
+ let e = z.data.find((e) => e.contribution.id === B);
1758
+ return !e || !F ? null : /* @__PURE__ */ T(C.div, {
1781
1759
  initial: {
1782
1760
  opacity: 0,
1783
1761
  y: 8
@@ -1792,9 +1770,9 @@ function ft() {
1792
1770
  },
1793
1771
  transition: { duration: .2 },
1794
1772
  className: "space-y-6",
1795
- children: /* @__PURE__ */ E(u, { children: /* @__PURE__ */ E("div", {
1773
+ children: /* @__PURE__ */ T(u, { children: /* @__PURE__ */ T("div", {
1796
1774
  className: "p-0 h-[600px]",
1797
- children: /* @__PURE__ */ E(je, {
1775
+ children: /* @__PURE__ */ T(je, {
1798
1776
  contribution: e,
1799
1777
  tunnel: e.tunnel,
1800
1778
  restPaths: e.capabilities.restPaths.length > 0 ? e.capabilities.restPaths : [`/ui/${e.pluginKey}`],
@@ -1814,24 +1792,24 @@ function ft() {
1814
1792
  })()
1815
1793
  ]
1816
1794
  }),
1817
- z && F && /* @__PURE__ */ E(Ae, {
1795
+ R && F && /* @__PURE__ */ T(Ae, {
1818
1796
  isOpen: Zt,
1819
1797
  onClose: () => Qt(!1),
1820
1798
  mountPoint: "agent.detailTab",
1821
1799
  agentId: F.id,
1822
1800
  profile: L ?? "default",
1823
1801
  onInstalled: () => {
1824
- B.refetch();
1802
+ z.refetch();
1825
1803
  }
1826
1804
  }),
1827
- Tt && /* @__PURE__ */ E("div", {
1805
+ Tt && /* @__PURE__ */ T("div", {
1828
1806
  className: "fixed inset-0 bg-bg-overlay flex items-center justify-center z-[100] p-4",
1829
- children: /* @__PURE__ */ D("div", {
1807
+ children: /* @__PURE__ */ E("div", {
1830
1808
  className: "bg-bg-surface rounded-lg w-full max-w-lg max-h-[90vh] flex flex-col",
1831
1809
  children: [
1832
- /* @__PURE__ */ E("div", {
1810
+ /* @__PURE__ */ T("div", {
1833
1811
  className: "px-6 pt-6 pb-3 border-b border-border-default flex-shrink-0",
1834
- children: /* @__PURE__ */ D("h2", {
1812
+ children: /* @__PURE__ */ E("h2", {
1835
1813
  className: "text-lg font-semibold text-text-primary",
1836
1814
  children: [
1837
1815
  k("agentDetails.configure", "Configure"),
@@ -1840,117 +1818,117 @@ function ft() {
1840
1818
  ]
1841
1819
  })
1842
1820
  }),
1843
- /* @__PURE__ */ D("div", {
1821
+ /* @__PURE__ */ E("div", {
1844
1822
  className: "px-6 py-4 overflow-y-auto flex-1",
1845
- children: [Dt && /* @__PURE__ */ E("div", {
1823
+ children: [Dt && /* @__PURE__ */ T("div", {
1846
1824
  className: "mb-4 p-3 bg-status-error-bg text-status-error-text rounded-md text-sm",
1847
1825
  children: Dt
1848
- }), /* @__PURE__ */ D("div", {
1826
+ }), /* @__PURE__ */ E("div", {
1849
1827
  className: "space-y-4",
1850
1828
  children: [
1851
- /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("label", {
1829
+ /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("label", {
1852
1830
  className: "block text-sm font-medium text-text-primary mb-1",
1853
1831
  children: k("webhooks.name", "Name")
1854
- }), /* @__PURE__ */ E("input", {
1832
+ }), /* @__PURE__ */ T("input", {
1855
1833
  ref: Nt,
1856
1834
  type: "text",
1857
1835
  defaultValue: F.name,
1858
1836
  className: "w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-primary"
1859
1837
  })] }),
1860
- /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("label", {
1838
+ /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("label", {
1861
1839
  className: "block text-sm font-medium text-text-primary mb-1",
1862
1840
  children: k("analytics.platform", "Platform")
1863
- }), /* @__PURE__ */ E("input", {
1841
+ }), /* @__PURE__ */ T("input", {
1864
1842
  type: "text",
1865
1843
  value: `${F.platform} / ${F.architecture}`,
1866
1844
  disabled: !0,
1867
1845
  className: "w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-secondary"
1868
1846
  })] }),
1869
- /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("label", {
1847
+ /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("label", {
1870
1848
  className: "block text-sm font-medium text-text-primary mb-1",
1871
1849
  children: k("agentDetails.version", "Version")
1872
- }), /* @__PURE__ */ E("input", {
1850
+ }), /* @__PURE__ */ T("input", {
1873
1851
  type: "text",
1874
1852
  value: F.version,
1875
1853
  disabled: !0,
1876
1854
  className: "w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-secondary"
1877
1855
  })] }),
1878
- /* @__PURE__ */ D("div", { children: [
1879
- /* @__PURE__ */ E("label", {
1856
+ /* @__PURE__ */ E("div", { children: [
1857
+ /* @__PURE__ */ T("label", {
1880
1858
  className: "block text-sm font-medium text-text-primary mb-1",
1881
1859
  children: k("agentDetails.tunnelUrl", "Tunnel URL")
1882
1860
  }),
1883
- /* @__PURE__ */ E("input", {
1861
+ /* @__PURE__ */ T("input", {
1884
1862
  ref: Pt,
1885
1863
  type: "text",
1886
1864
  defaultValue: F.tunnelUrl ?? "",
1887
1865
  placeholder: k("agentDetails.tunnelUrlPlaceholder", "https://xxx.trycloudflare.com"),
1888
1866
  className: "w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-primary font-mono text-sm"
1889
1867
  }),
1890
- /* @__PURE__ */ E("p", {
1868
+ /* @__PURE__ */ T("p", {
1891
1869
  className: "mt-1 text-xs text-text-muted",
1892
1870
  children: k("agentDetails.tunnelUrlHint", "The public URL for accessing this agent remotely. Auto-updates when gateway auth is configured.")
1893
1871
  })
1894
1872
  ] }),
1895
- /* @__PURE__ */ D("div", { children: [
1896
- /* @__PURE__ */ E("label", {
1873
+ /* @__PURE__ */ E("div", { children: [
1874
+ /* @__PURE__ */ T("label", {
1897
1875
  className: "block text-sm font-medium text-text-primary mb-1",
1898
1876
  children: k("agentDetails.agentApiKey", "Agent API Key")
1899
1877
  }),
1900
- /* @__PURE__ */ E("input", {
1878
+ /* @__PURE__ */ T("input", {
1901
1879
  ref: Ft,
1902
1880
  type: "text",
1903
1881
  defaultValue: F.agentApiKey ?? "",
1904
1882
  placeholder: k("agentDetails.agentApiKeyPlaceholder", "sk-agent-..."),
1905
1883
  className: "w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-primary font-mono text-sm"
1906
1884
  }),
1907
- /* @__PURE__ */ E("p", {
1885
+ /* @__PURE__ */ T("p", {
1908
1886
  className: "mt-1 text-xs text-text-muted",
1909
1887
  children: k("agentDetails.agentApiKeyHint", "Used to authenticate requests to the agent. Leave empty to clear.")
1910
1888
  })
1911
1889
  ] }),
1912
- /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ D("div", {
1890
+ /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ E("div", {
1913
1891
  className: "flex items-center gap-1.5 mb-1",
1914
- children: [/* @__PURE__ */ E("label", {
1892
+ children: [/* @__PURE__ */ T("label", {
1915
1893
  className: "text-sm font-medium text-text-primary",
1916
1894
  children: "AI Context"
1917
- }), /* @__PURE__ */ D("div", {
1895
+ }), /* @__PURE__ */ E("div", {
1918
1896
  className: "relative",
1919
- children: [/* @__PURE__ */ E("button", {
1897
+ children: [/* @__PURE__ */ T("button", {
1920
1898
  type: "button",
1921
1899
  onClick: () => Mt((e) => !e),
1922
1900
  className: "p-0.5 rounded-full text-text-muted hover:text-text-secondary transition-colors",
1923
1901
  "aria-label": "What is AI Context?",
1924
- children: /* @__PURE__ */ E(_, { className: "w-3.5 h-3.5" })
1925
- }), jt && /* @__PURE__ */ D(T, { children: [/* @__PURE__ */ E("div", {
1902
+ children: /* @__PURE__ */ T(Ge, { className: "w-3.5 h-3.5" })
1903
+ }), jt && /* @__PURE__ */ E(w, { children: [/* @__PURE__ */ T("div", {
1926
1904
  className: "fixed inset-0 z-10",
1927
1905
  onClick: () => Mt(!1)
1928
- }), /* @__PURE__ */ D("div", {
1906
+ }), /* @__PURE__ */ E("div", {
1929
1907
  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",
1930
1908
  children: [
1931
- /* @__PURE__ */ E("p", {
1909
+ /* @__PURE__ */ T("p", {
1932
1910
  className: "font-semibold text-text-primary",
1933
1911
  children: "What is AI Context?"
1934
1912
  }),
1935
- /* @__PURE__ */ E("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." }),
1936
- /* @__PURE__ */ E("p", {
1913
+ /* @__PURE__ */ T("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." }),
1914
+ /* @__PURE__ */ T("p", {
1937
1915
  className: "text-text-muted",
1938
1916
  children: "Example: \"Production billing server. Do not modify files outside /src. Node 20, Docker installed.\""
1939
1917
  })
1940
1918
  ]
1941
1919
  })] })]
1942
1920
  })]
1943
- }), /* @__PURE__ */ E("textarea", {
1921
+ }), /* @__PURE__ */ T("textarea", {
1944
1922
  ref: It,
1945
1923
  defaultValue: F.aiContext ?? "",
1946
1924
  rows: 4,
1947
1925
  placeholder: "e.g. This agent runs on the billing server. Node 20, Docker installed. Do not modify files outside /src.",
1948
1926
  className: "w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-primary text-sm"
1949
1927
  })] }),
1950
- /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("label", {
1928
+ /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("label", {
1951
1929
  className: "block text-sm font-medium text-text-primary mb-1",
1952
1930
  children: k("agentDetails.metadataLabel", "Metadata (JSON)")
1953
- }), /* @__PURE__ */ E("textarea", {
1931
+ }), /* @__PURE__ */ T("textarea", {
1954
1932
  ref: Lt,
1955
1933
  defaultValue: F.metadata ? JSON.stringify(F.metadata, null, 2) : "{}",
1956
1934
  rows: 4,
@@ -1959,15 +1937,15 @@ function ft() {
1959
1937
  ]
1960
1938
  })]
1961
1939
  }),
1962
- /* @__PURE__ */ D("div", {
1940
+ /* @__PURE__ */ E("div", {
1963
1941
  className: "px-6 py-4 border-t border-border-default flex-shrink-0 flex flex-wrap justify-end gap-3",
1964
- children: [/* @__PURE__ */ E("button", {
1942
+ children: [/* @__PURE__ */ T("button", {
1965
1943
  onClick: () => Et(!1),
1966
1944
  disabled: Ot,
1967
1945
  className: "px-4 py-2 text-text-primary hover:bg-bg-sunken rounded-md transition-colors disabled:opacity-50",
1968
1946
  children: k("common.cancel", "Cancel")
1969
- }), /* @__PURE__ */ E("button", {
1970
- onClick: jn,
1947
+ }), /* @__PURE__ */ T("button", {
1948
+ onClick: An,
1971
1949
  disabled: Ot,
1972
1950
  className: "px-4 py-2 bg-action-primary-bg text-action-primary-text rounded-md hover:bg-action-primary-bg-hover transition-colors disabled:opacity-50",
1973
1951
  children: Ot ? k("agentDetails.saving", "Saving...") : k("agentDetails.saveConfiguration", "Save Configuration")
@@ -1976,7 +1954,7 @@ function ft() {
1976
1954
  ]
1977
1955
  })
1978
1956
  }),
1979
- /* @__PURE__ */ E(le, {
1957
+ /* @__PURE__ */ T(le, {
1980
1958
  isOpen: ln,
1981
1959
  onClose: () => un(!1),
1982
1960
  onConfirm: () => {