@burdenoff/microfe-vibecontrols 2026.522.4 → 2026.522.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,40 +8,40 @@ import { EmptyState as g } from "../components/shared/EmptyState.js";
8
8
  import { StatusBadge as _ } from "../components/shared/StatusBadge.js";
9
9
  import { Card as v } from "../components/shared/Card.js";
10
10
  import { SESSION_PROVIDER_PACKAGES as ee } from "../constants/pluginCatalog.js";
11
- import { PluginGate as te } from "../components/shared/PluginGate.js";
12
- import { useActiveAgentProfile as ne } from "../hooks/useActiveAgentProfile.js";
11
+ import { PluginGate as y } from "../components/shared/PluginGate.js";
12
+ import { useActiveAgentProfile as te } from "../hooks/useActiveAgentProfile.js";
13
13
  import "../components/shared/index.js";
14
- import { VIBE_PERMISSIONS as y } from "../constants/permissions.js";
15
- import { PageSkeleton as b } from "../components/shared/PageSkeleton.js";
14
+ import { VIBE_PERMISSIONS as b } from "../constants/permissions.js";
15
+ import { PageSkeleton as ne } from "../components/shared/PageSkeleton.js";
16
16
  import { VibeOpenInEditorMenu as re } from "../components/agents/VibeOpenInEditorMenu.js";
17
17
  import "../components/agents/index.js";
18
- import { NotesTabPanel as x } from "../components/notes/NotesTabPanel.js";
18
+ import { NotesTabPanel as ie } from "../components/notes/NotesTabPanel.js";
19
19
  import "../components/notes/index.js";
20
- import { useQueryBackedTab as S } from "../hooks/useQueryBackedTab.js";
21
- import { appendIframeTokenParam as ie, mintIframeToken as C, mintScopedIframeToken as ae, scheduleIframeTokenRefresh as w } from "../services/iframeToken.js";
22
- import { AddTabDialog as oe } from "../components/plugins/AddTabDialog.js";
23
- import { PluginIframeMount as se } from "../components/plugins/PluginIframeMount.js";
24
- import { ScorecardPanel as ce } from "../components/scorecard/ScorecardPanel.js";
20
+ import { useQueryBackedTab as x } from "../hooks/useQueryBackedTab.js";
21
+ import { appendIframeTokenParam as ae, mintIframeToken as S, mintScopedIframeToken as oe, scheduleIframeTokenRefresh as C } from "../services/iframeToken.js";
22
+ import { AddTabDialog as se } from "../components/plugins/AddTabDialog.js";
23
+ import { PluginIframeMount as ce } from "../components/plugins/PluginIframeMount.js";
24
+ import { ScorecardPanel as le } from "../components/scorecard/ScorecardPanel.js";
25
25
  import "../components/scorecard/index.js";
26
- import { DocsTabPanel as le } from "../components/docs/DocsTabPanel.js";
26
+ import { DocsTabPanel as ue } from "../components/docs/DocsTabPanel.js";
27
27
  import "../components/docs/index.js";
28
- import { VibeGitOpsTab as ue } from "../components/gitops/VibeGitOpsTab.js";
29
- import { VibeAgentEmptyState as de } from "../components/vibe/VibeAgentEmptyState.js";
30
- import { DEFAULT_VIBE_FEATURE_CATALOG as fe, isVibeFeatureEnabled as pe } from "../lib/vibeFeatures.js";
31
- import { SecurityTabPanel as me } from "../components/security/SecurityTabPanel.js";
28
+ import { VibeGitOpsTab as de } from "../components/gitops/VibeGitOpsTab.js";
29
+ import { VibeAgentEmptyState as fe } from "../components/vibe/VibeAgentEmptyState.js";
30
+ import { DEFAULT_VIBE_FEATURE_CATALOG as pe, isVibeFeatureEnabled as me } from "../lib/vibeFeatures.js";
31
+ import { SecurityTabPanel as he } from "../components/security/SecurityTabPanel.js";
32
32
  import "../components/security/index.js";
33
- import { useCallback as he, useEffect as ge, useMemo as T, useRef as _e, useState as E } from "react";
34
- import { useI18n as ve } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
35
- import { Archive as ye, ArrowLeft as D, BarChart3 as be, BookOpen as xe, Check as Se, Clock as Ce, ExternalLink as we, FileText as Te, Folder as Ee, GitBranch as De, GitMerge as Oe, Globe as ke, Info as Ae, Library as O, Link2 as je, Loader2 as Me, Network as Ne, Pause as Pe, Play as Fe, Plus as k, RefreshCw as Ie, Server as Le, Settings as Re, Shield as ze, Tag as Be, Terminal as A, Variable as Ve, X as He, Zap as j } from "lucide-react";
36
- import { useParams as Ue } from "react-router-dom";
37
- import { AnimatePresence as We, motion as M } from "framer-motion";
38
- import { Fragment as Ge, jsx as N, jsxs as P } from "react/jsx-runtime";
33
+ import { useCallback as ge, useEffect as w, useMemo as T, useRef as E, useState as D } from "react";
34
+ import { useI18n as _e } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
35
+ import { Archive as ve, ArrowLeft as O, BarChart3 as ye, BookOpen as be, Check as xe, Clock as Se, ExternalLink as Ce, FileText as we, Folder as Te, GitBranch as Ee, GitMerge as De, Globe as Oe, Info as ke, Library as Ae, Link2 as je, Loader2 as Me, MoreVertical as Ne, Network as Pe, Pause as Fe, Play as Ie, Plus as k, RefreshCw as Le, Server as Re, Settings as ze, Shield as Be, Tag as Ve, Terminal as He, Variable as Ue, X as We, Zap as A } from "lucide-react";
36
+ import { useParams as Ge } from "react-router-dom";
37
+ import { AnimatePresence as Ke, motion as j } from "framer-motion";
38
+ import { Fragment as M, jsx as N, jsxs as P } from "react/jsx-runtime";
39
39
  import { useFeatureFlagDetails as F } from "@burdenoff/fe-libs/shared/feature-flags";
40
- import { MotionItem as I, MotionList as Ke, MotionPage as L } from "@burdenoff/fe-libs/shared/motion";
41
- import { PermissionButton as qe } from "@burdenoff/fe-libs/shared/components";
42
- import { usePluginContributions as Je } from "@burdenoff/fe-libs/shared/plugins";
40
+ import { MotionItem as I, MotionList as qe, MotionPage as L } from "@burdenoff/fe-libs/shared/motion";
41
+ import { PermissionButton as Je } from "@burdenoff/fe-libs/shared/components";
42
+ import { usePluginContributions as Ye } from "@burdenoff/fe-libs/shared/plugins";
43
43
  //#region src/pages/VibeDetailsPage.tsx
44
- var Ye = [
44
+ var Xe = [
45
45
  "overview",
46
46
  "config",
47
47
  "git",
@@ -54,7 +54,7 @@ var Ye = [
54
54
  "gitops",
55
55
  "security",
56
56
  "related"
57
- ], Xe = new Set(["overview", "config"]), Ze = new Set(["apiPlayground"]), Qe = new Set([
57
+ ], Ze = new Set(["overview", "config"]), Qe = new Set(["apiPlayground"]), $e = new Set([
58
58
  "sessions",
59
59
  "gitops",
60
60
  "graphqlPlayground",
@@ -62,26 +62,26 @@ var Ye = [
62
62
  "security"
63
63
  ]);
64
64
  function R() {
65
- let { t: e } = ve(), { id: r } = Ue(), { basePath: s } = u(), ie = s || "", C = d(), w = he((t, n) => {
65
+ let { t: e } = _e(), { id: r } = Ge(), { basePath: s } = u(), ae = s || "", S = d(), C = ge((t, n) => {
66
66
  let r = e(t);
67
67
  return r === t ? n : r;
68
- }, [e]), [Se] = l({ refetchQueries: ["GetVibe"] }), [we] = t({ refetchQueries: ["GetVibe"] }), [ke] = n({ refetchQueries: ["GetVibe", "ListSessions"] }), { data: Me } = i({
68
+ }, [e]), [xe] = l({ refetchQueries: ["GetVibe"] }), [Ce] = t({ refetchQueries: ["GetVibe"] }), [Oe] = n({ refetchQueries: ["GetVibe", "ListSessions"] }), { data: Me } = i({
69
69
  fetchPolicy: "cache-first",
70
70
  errorPolicy: "ignore"
71
- }), He = T(() => {
72
- let e = new Map(fe.map((e) => [e.id, e]));
71
+ }), We = T(() => {
72
+ let e = new Map(pe.map((e) => [e.id, e]));
73
73
  for (let t of Me?.vibeFeatureCatalog ?? []) e.set(t.id, t);
74
74
  return Array.from(e.values());
75
- }, [Me?.vibeFeatureCatalog]), R = T(() => He.filter((e) => !Ze.has(e.id)), [He]), [tt, { loading: nt }] = c({ refetchQueries: ["GetVibe"] }), [rt, it] = E(!1), [at, z] = E(null), [ot, st] = E(!1), [ct, lt] = E(null), ut = _e(null), dt = _e(null), ft = _e(null), pt = _e(null), { data: mt, loading: ht, error: gt, refetch: _t } = o({
75
+ }, [Me?.vibeFeatureCatalog]), R = T(() => We.filter((e) => !Qe.has(e.id)), [We]), [nt, { loading: rt }] = c({ refetchQueries: ["GetVibe"] }), [it, at] = D(!1), [ot, z] = D(null), [st, ct] = D(!1), [lt, ut] = D(null), B = E(null), dt = E(null), ft = E(null), pt = E(null), { data: mt, loading: ht, error: gt, refetch: _t } = o({
76
76
  variables: { id: r || "" },
77
77
  skip: !r,
78
78
  fetchPolicy: "cache-and-network"
79
- }), B = mt?.vibe, { data: vt } = a({
79
+ }), V = mt?.vibe, { data: vt } = a({
80
80
  variables: { id: r || "" },
81
81
  skip: !r,
82
82
  fetchPolicy: "cache-first",
83
83
  errorPolicy: "ignore"
84
- }), yt = B, V = vt?.vibe ?? yt, H = he((e) => pe(V ?? null, e, R), [V, R]), bt = F("vibes.tabs.git"), xt = F("vibes.tabs.scorecard"), St = F("vibes.tabs.graphql-playground"), Ct = F("vibes.tabs.git-iframe"), wt = F("vibes.tabs.graphiql-iframe"), Tt = F("vibes.tabs.gitops-iframe"), Et = he((e) => {
84
+ }), yt = V, H = vt?.vibe ?? yt, U = ge((e) => me(H ?? null, e, R), [H, R]), bt = F("vibes.tabs.git"), xt = F("vibes.tabs.scorecard"), St = F("vibes.tabs.graphql-playground"), Ct = F("vibes.tabs.git-iframe"), wt = F("vibes.tabs.graphiql-iframe"), Tt = F("vibes.tabs.gitops-iframe"), Et = ge((e) => {
85
85
  switch (e) {
86
86
  case "git": return bt ? !!bt.value : !0;
87
87
  case "scorecard": return xt ? !!xt.value : !0;
@@ -92,117 +92,125 @@ function R() {
92
92
  bt,
93
93
  xt,
94
94
  St
95
- ]), U = B?.agents ?? [], W = B?.sessions || [], Dt = B?.children || [], Ot = B?.parent || null, kt = f((e) => r ? e.defaultAgentForVibe?.[r] : void 0), G = (kt ? U.find((e) => e.id === kt) ?? null : null) ?? (U.length === 1 ? U[0] : U.find((e) => !!e.tunnelUrl) ?? U[0] ?? null), K = G, At = G?.tunnelUrl ?? null, jt = G?.agentApiKey ?? null, { active: q } = ne(G?.id ?? null), J = F("vibes.tabs.iframe-host")?.value === !0, Mt = T(() => {
96
- if (!J || !G?.tunnelUrl) return [];
97
- let e = G.id, t = q ?? "default";
95
+ ]), W = V?.agents ?? [], G = V?.sessions || [], Dt = V?.children || [], Ot = V?.parent || null, kt = f((e) => r ? e.defaultAgentForVibe?.[r] : void 0), K = (kt ? W.find((e) => e.id === kt) ?? null : null) ?? (W.length === 1 ? W[0] : W.find((e) => !!e.tunnelUrl) ?? W[0] ?? null), q = K, At = K?.tunnelUrl ?? null, jt = K?.agentApiKey ?? null, { active: J } = te(K?.id ?? null), Y = F("vibes.tabs.iframe-host")?.value === !0, Mt = T(() => {
96
+ if (!Y || !K?.tunnelUrl) return [];
97
+ let e = K.id, t = J ?? "default";
98
98
  return [{
99
- tunnelUrl: G.tunnelUrl,
99
+ tunnelUrl: K.tunnelUrl,
100
100
  profile: t,
101
- label: G.name ?? G.id,
102
- mintIframeToken: async ({ pathPrefixes: n }) => ae(e, t, n)
101
+ label: K.name ?? K.id,
102
+ mintIframeToken: async ({ pathPrefixes: n }) => oe(e, t, n)
103
103
  }];
104
104
  }, [
105
- J,
106
- G,
107
- q
108
- ]), Y = Je(Mt, {
105
+ Y,
106
+ K,
107
+ J
108
+ ]), X = Ye(Mt, {
109
109
  mountPoint: "vibe.detailTab",
110
- enabled: J && Mt.length > 0
111
- }), [X, Z] = S(T(() => {
112
- let e = Y.data.filter((e) => e.contribution.mountPoint === "vibe.detailTab").map((e) => e.contribution.id);
113
- return [...Ye, ...e];
114
- }, [Y.data]), "overview"), [Nt, Pt] = E(!1);
115
- ge(() => {
116
- B && f.setState({
117
- activeAgentId: G?.id ?? null,
118
- selectedAgentId: G?.id ?? null,
119
- activeVibeId: B.id,
120
- selectedVibeId: B.id,
110
+ enabled: Y && Mt.length > 0
111
+ }), [Z, Q] = x(T(() => {
112
+ let e = X.data.filter((e) => e.contribution.mountPoint === "vibe.detailTab").map((e) => e.contribution.id);
113
+ return [...Xe, ...e];
114
+ }, [X.data]), "overview"), [Nt, Pt] = D(!1);
115
+ w(() => {
116
+ V && f.setState({
117
+ activeAgentId: K?.id ?? null,
118
+ selectedAgentId: K?.id ?? null,
119
+ activeVibeId: V.id,
120
+ selectedVibeId: V.id,
121
121
  activeSessionId: null,
122
122
  selectedSessionId: null
123
123
  });
124
- }, [B?.id, G?.id]);
125
- let Q = U.length > 0;
126
- ge(() => {
127
- if (!Xe.has(X)) {
128
- if (!H(X) || !Et(X)) {
129
- Z("overview");
124
+ }, [V?.id, K?.id]);
125
+ let Ft = W.length > 0;
126
+ w(() => {
127
+ if (!Ze.has(Z)) {
128
+ if (!U(Z) || !Et(Z)) {
129
+ Q("overview");
130
130
  return;
131
131
  }
132
- !Q && Qe.has(X) && Z("overview");
132
+ !Ft && $e.has(Z) && Q("overview");
133
133
  }
134
134
  }, [
135
- X,
136
- H,
135
+ Z,
136
+ U,
137
137
  Et,
138
- Q,
139
- Z
138
+ Ft,
139
+ Q
140
140
  ]);
141
141
  let $ = () => {
142
- C("/vibes");
143
- }, Ft = async () => {
144
- if (B?.id) try {
145
- await Se({ variables: {
146
- id: B.id,
142
+ S("/vibes");
143
+ }, It = async () => {
144
+ if (V?.id) try {
145
+ await xe({ variables: {
146
+ id: V.id,
147
147
  status: "ACTIVE"
148
148
  } });
149
149
  } catch (e) {
150
150
  console.error("Failed to activate vibe:", e);
151
151
  }
152
- }, It = async () => {
153
- if (B?.id) try {
154
- await Se({ variables: {
155
- id: B.id,
152
+ }, Lt = async () => {
153
+ if (V?.id) try {
154
+ await xe({ variables: {
155
+ id: V.id,
156
156
  status: "INACTIVE"
157
157
  } });
158
158
  } catch (e) {
159
159
  console.error("Failed to deactivate vibe:", e);
160
160
  }
161
- }, Lt = async () => {
162
- if (B?.id) try {
163
- await we({ variables: { id: B.id } });
161
+ }, [Rt, zt] = D(!1), [Bt, Vt] = D(!1), Ht = E(null);
162
+ w(() => {
163
+ if (!Bt) return;
164
+ let e = (e) => {
165
+ Ht.current?.contains(e.target) || Vt(!1);
166
+ };
167
+ return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
168
+ }, [Bt]);
169
+ let Ut = async () => {
170
+ if (V?.id) try {
171
+ await Ce({ variables: { id: V.id } }), zt(!1);
164
172
  } catch (e) {
165
173
  console.error("Failed to archive vibe:", e);
166
174
  }
167
- }, Rt = () => {
168
- z(null), it(!0);
169
- }, zt = async () => {
170
- let e = ut.current?.value?.trim(), t = dt.current?.value, n = ft.current?.value?.trim() || void 0, r = pt.current?.value?.trim() || void 0;
175
+ }, Wt = () => {
176
+ z(null), at(!0);
177
+ }, Gt = async () => {
178
+ let e = B.current?.value?.trim(), t = dt.current?.value, n = ft.current?.value?.trim() || void 0, r = pt.current?.value?.trim() || void 0;
171
179
  if (!e) {
172
- z(w("vibeDetails.sessionNameRequired", "Session name is required"));
180
+ z(C("vibeDetails.sessionNameRequired", "Session name is required"));
173
181
  return;
174
182
  }
175
- let i = B?.agentId;
183
+ let i = V?.agentId;
176
184
  if (!i) {
177
- z(w("vibeDetails.noAgentAttached", "This vibe has no agent attached. Connect an agent to this vibe before creating a session."));
185
+ z(C("vibeDetails.noAgentAttached", "This vibe has no agent attached. Connect an agent to this vibe before creating a session."));
178
186
  return;
179
187
  }
180
- st(!0), z(null);
188
+ ct(!0), z(null);
181
189
  try {
182
- await ke({ variables: { input: {
190
+ await Oe({ variables: { input: {
183
191
  name: e,
184
192
  type: t || "TERMINAL",
185
193
  agentId: i,
186
- vibeId: B?.id,
194
+ vibeId: V?.id,
187
195
  command: n,
188
- workingDirectory: r || B?.path || void 0
189
- } } }), it(!1), ut.current && (ut.current.value = ""), dt.current && (dt.current.selectedIndex = 0), ft.current && (ft.current.value = ""), pt.current && (pt.current.value = ""), lt(w("sessions.createdSuccess", "Session created successfully")), setTimeout(() => lt(null), 3e3);
196
+ workingDirectory: r || V?.path || void 0
197
+ } } }), at(!1), B.current && (B.current.value = ""), dt.current && (dt.current.selectedIndex = 0), ft.current && (ft.current.value = ""), pt.current && (pt.current.value = ""), ut(C("sessions.createdSuccess", "Session created successfully")), setTimeout(() => ut(null), 3e3);
190
198
  } catch (e) {
191
- z(e instanceof Error ? e.message : w("sessions.failedCreate", "Failed to create session"));
199
+ z(e instanceof Error ? e.message : C("sessions.failedCreate", "Failed to create session"));
192
200
  } finally {
193
- st(!1);
201
+ ct(!1);
194
202
  }
195
- }, Bt = () => {
196
- K && C(`/agents/${K.id}`);
197
- }, Vt = (e) => {
198
- C(`/sessions/${e}`);
199
- }, Ht = (e) => {
200
- C(`/vibes/${e}`);
201
- }, Ut = (e) => {
202
- if (!e) return w("health.never", "Never");
203
+ }, Kt = () => {
204
+ q && S(`/agents/${q.id}`);
205
+ }, qt = (e) => {
206
+ S(`/sessions/${e}`);
207
+ }, Jt = (e) => {
208
+ S(`/vibes/${e}`);
209
+ }, Yt = (e) => {
210
+ if (!e) return C("health.never", "Never");
203
211
  let t = Date.now() - new Date(e).getTime();
204
- return t < 6e4 ? w("health.justNow", "Just now") : t < 36e5 ? `${Math.floor(t / 6e4)}m ago` : t < 864e5 ? `${Math.floor(t / 36e5)}h ago` : new Date(e).toLocaleDateString();
205
- }, Wt = (e) => {
212
+ return t < 6e4 ? C("health.justNow", "Just now") : t < 36e5 ? `${Math.floor(t / 6e4)}m ago` : t < 864e5 ? `${Math.floor(t / 36e5)}h ago` : new Date(e).toLocaleDateString();
213
+ }, Xt = (e) => {
206
214
  switch (e) {
207
215
  case "clean": return "text-status-success-text";
208
216
  case "modified": return "text-status-warning-text";
@@ -210,127 +218,127 @@ function R() {
210
218
  default: return "text-text-secondary";
211
219
  }
212
220
  };
213
- if (ht && !B) return /* @__PURE__ */ P(L, {
221
+ if (ht && !V) return /* @__PURE__ */ P(L, {
214
222
  className: "space-y-6 p-4 sm:p-6 bg-bg-surface min-h-screen",
215
223
  children: [/* @__PURE__ */ P("button", {
216
224
  onClick: $,
217
225
  className: "flex items-center gap-2 text-text-secondary hover:text-text-primary transition-colors",
218
- children: [/* @__PURE__ */ N(D, { className: "w-4 h-4" }), w("vibeDetails.backToVibes", "Back to Vibes")]
219
- }), /* @__PURE__ */ N(b, { variant: "detail" })]
226
+ children: [/* @__PURE__ */ N(O, { className: "w-4 h-4" }), C("vibeDetails.backToVibes", "Back to Vibes")]
227
+ }), /* @__PURE__ */ N(ne, { variant: "detail" })]
220
228
  });
221
- if (gt && !B) return /* @__PURE__ */ P(L, {
229
+ if (gt && !V) return /* @__PURE__ */ P(L, {
222
230
  className: "space-y-6 p-4 sm:p-6 bg-bg-surface min-h-screen",
223
231
  children: [/* @__PURE__ */ P("button", {
224
232
  onClick: $,
225
233
  className: "flex items-center gap-2 text-text-secondary hover:text-text-primary transition-colors",
226
- children: [/* @__PURE__ */ N(D, { className: "w-4 h-4" }), w("vibeDetails.backToVibes", "Back to Vibes")]
234
+ children: [/* @__PURE__ */ N(O, { className: "w-4 h-4" }), C("vibeDetails.backToVibes", "Back to Vibes")]
227
235
  }), /* @__PURE__ */ N(m, {
228
- title: w("vibeDetails.failedLoad", "Failed to load vibe"),
236
+ title: C("vibeDetails.failedLoad", "Failed to load vibe"),
229
237
  message: gt.message,
230
238
  onRetry: () => _t()
231
239
  })]
232
240
  });
233
- if (!B) return /* @__PURE__ */ P(L, {
241
+ if (!V) return /* @__PURE__ */ P(L, {
234
242
  className: "space-y-6 p-4 sm:p-6 bg-bg-surface min-h-screen",
235
243
  children: [/* @__PURE__ */ P("button", {
236
244
  onClick: $,
237
245
  className: "flex items-center gap-2 text-text-secondary hover:text-text-primary transition-colors",
238
- children: [/* @__PURE__ */ N(D, { className: "w-4 h-4" }), w("vibeDetails.backToVibes", "Back to Vibes")]
246
+ children: [/* @__PURE__ */ N(O, { className: "w-4 h-4" }), C("vibeDetails.backToVibes", "Back to Vibes")]
239
247
  }), /* @__PURE__ */ N(g, {
240
- icon: /* @__PURE__ */ N(j, { className: "w-8 h-8 text-text-secondary" }),
241
- title: w("vibeDetails.notFound", "Vibe not found"),
242
- description: `${w("vibeDetails.notFoundDescriptionPrefix", "No vibe with ID")} "${r}" ${w("vibeDetails.notFoundDescriptionSuffix", "exists")}`,
248
+ icon: /* @__PURE__ */ N(A, { className: "w-8 h-8 text-text-secondary" }),
249
+ title: C("vibeDetails.notFound", "Vibe not found"),
250
+ description: `${C("vibeDetails.notFoundDescriptionPrefix", "No vibe with ID")} "${r}" ${C("vibeDetails.notFoundDescriptionSuffix", "exists")}`,
243
251
  action: /* @__PURE__ */ N("button", {
244
252
  onClick: $,
245
253
  className: "px-4 py-2 bg-action-primary-bg text-action-primary-text rounded-md hover:bg-action-primary-bg-hover transition-colors",
246
- children: w("vibeDetails.backToVibes", "Back to Vibes")
254
+ children: C("vibeDetails.backToVibes", "Back to Vibes")
247
255
  })
248
256
  })]
249
257
  });
250
- let Gt = B.status === "ACTIVE" || B.status === "RUNNING", Kt = W.filter((e) => e.status === "RUNNING").length, qt = Dt.length + +!!Ot + +!!K, Jt = !!(B.gitBranch || B.gitRemote), Yt = [
258
+ let Zt = V.status === "ACTIVE" || V.status === "RUNNING", Qt = G.filter((e) => e.status === "RUNNING").length, $t = Dt.length + +!!Ot + +!!q, en = !!(V.gitBranch || V.gitRemote), tn = [
251
259
  {
252
260
  id: "overview",
253
- label: w("nav.overview", "Overview"),
254
- icon: Ae
261
+ label: C("nav.overview", "Overview"),
262
+ icon: ke
255
263
  },
256
264
  {
257
265
  id: "config",
258
- label: w("vibeDetails.config", "Config"),
259
- icon: Re
266
+ label: C("vibeDetails.config", "Config"),
267
+ icon: ze
260
268
  },
261
269
  {
262
270
  id: "git",
263
- label: w("vibeDetails.git", "Git"),
264
- icon: De,
265
- badge: Jt && B.gitBranch || void 0
271
+ label: C("vibeDetails.git", "Git"),
272
+ icon: Ee,
273
+ badge: en && V.gitBranch || void 0
266
274
  },
267
275
  {
268
276
  id: "sessions",
269
- label: w("nav.sessions", "Sessions"),
270
- icon: A,
271
- badge: `${W.length}`
277
+ label: C("nav.sessions", "Sessions"),
278
+ icon: He,
279
+ badge: `${G.length}`
272
280
  },
273
281
  {
274
282
  id: "notes",
275
- label: w("vibeDetails.notes", "Notes"),
276
- icon: Te
283
+ label: C("vibeDetails.notes", "Notes"),
284
+ icon: we
277
285
  },
278
286
  {
279
287
  id: "docs",
280
- label: w("vibeDetails.docs", "Docs"),
281
- icon: xe
288
+ label: C("vibeDetails.docs", "Docs"),
289
+ icon: be
282
290
  },
283
291
  {
284
292
  id: "scorecard",
285
- label: w("vibeDetails.scorecard", "Scorecard"),
286
- icon: be
293
+ label: C("vibeDetails.scorecard", "Scorecard"),
294
+ icon: ye
287
295
  },
288
296
  {
289
297
  id: "catalogs",
290
- label: w("vibeDetails.catalogs", "Catalogs"),
291
- icon: O
298
+ label: C("vibeDetails.catalogs", "Catalogs"),
299
+ icon: Ae
292
300
  },
293
301
  {
294
302
  id: "graphqlPlayground",
295
- label: w("vibeDetails.graphqlPlayground", "GraphQL"),
296
- icon: Ne
303
+ label: C("vibeDetails.graphqlPlayground", "GraphQL"),
304
+ icon: Pe
297
305
  },
298
306
  {
299
307
  id: "gitops",
300
- label: w("vibeDetails.gitops", "GitOps"),
301
- icon: Oe
308
+ label: C("vibeDetails.gitops", "GitOps"),
309
+ icon: De
302
310
  },
303
311
  {
304
312
  id: "security",
305
- label: w("vibeDetails.security", "Security"),
306
- icon: ze
313
+ label: C("vibeDetails.security", "Security"),
314
+ icon: Be
307
315
  },
308
316
  {
309
317
  id: "related",
310
- label: w("vibeDetails.related", "Related"),
318
+ label: C("vibeDetails.related", "Related"),
311
319
  icon: je,
312
- badge: qt > 0 ? `${qt}` : void 0
320
+ badge: $t > 0 ? `${$t}` : void 0
313
321
  }
314
- ].filter((e) => Xe.has(e.id) ? !0 : !(!H(e.id) || !Et(e.id) || !Q && Qe.has(e.id) || e.id === "git" && Ct?.value === !0 || e.id === "graphqlPlayground" && wt?.value === !0 || e.id === "gitops" && Tt?.value === !0));
322
+ ].filter((e) => Ze.has(e.id) ? !0 : !(!U(e.id) || !Et(e.id) || !Ft && $e.has(e.id) || e.id === "git" && Ct?.value === !0 || e.id === "graphqlPlayground" && wt?.value === !0 || e.id === "gitops" && Tt?.value === !0));
315
323
  return /* @__PURE__ */ P(L, {
316
324
  className: "space-y-6 p-4 sm:p-6 bg-bg-surface min-h-screen",
317
325
  children: [
318
- ct && /* @__PURE__ */ N("div", {
326
+ lt && /* @__PURE__ */ N("div", {
319
327
  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",
320
- children: ct
328
+ children: lt
321
329
  }),
322
330
  /* @__PURE__ */ P("button", {
323
331
  onClick: $,
324
332
  className: "flex items-center gap-2 text-text-secondary hover:text-text-primary transition-colors",
325
- children: [/* @__PURE__ */ N(D, { className: "w-4 h-4" }), w("vibeDetails.backToVibes", "Back to Vibes")]
333
+ children: [/* @__PURE__ */ N(O, { className: "w-4 h-4" }), C("vibeDetails.backToVibes", "Back to Vibes")]
326
334
  }),
327
335
  /* @__PURE__ */ N(p, {
328
- title: B.name,
329
- description: B.description || w("vibeDetails.noDescription", "No description"),
336
+ title: V.name,
337
+ description: V.description || C("vibeDetails.noDescription", "No description"),
330
338
  breadcrumb: [{
331
- label: w("nav.vibes", "Vibes"),
332
- path: ie ? `${ie}/vibes` : "/vibes"
333
- }, { label: B.name }],
339
+ label: C("nav.vibes", "Vibes"),
340
+ path: ae ? `${ae}/vibes` : "/vibes"
341
+ }, { label: V.name }],
334
342
  actions: /* @__PURE__ */ P("div", {
335
343
  className: "flex items-center gap-2 flex-wrap",
336
344
  children: [
@@ -338,75 +346,119 @@ function R() {
338
346
  onClick: () => _t(),
339
347
  disabled: ht,
340
348
  className: "flex items-center justify-center p-2 bg-bg-sunken text-text-primary rounded-md hover:bg-bg-sunken/80 transition-colors disabled:opacity-50",
341
- title: w("common.refresh", "Refresh"),
342
- children: /* @__PURE__ */ N(Ie, { className: `w-4 h-4 ${ht ? "animate-spin" : ""}` })
343
- }),
344
- /* @__PURE__ */ N(qe, {
345
- permission: y.VIBE_UPDATE,
346
- deniedBehavior: "disable",
347
- deniedTooltip: "You don't have permission to update vibes",
348
- children: Gt ? /* @__PURE__ */ P("button", {
349
- onClick: It,
350
- className: "flex items-center gap-1.5 px-2.5 py-1.5 sm:px-3 sm:py-2 text-xs sm:text-sm bg-bg-sunken text-text-primary rounded-md hover:bg-bg-sunken/80 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",
351
- children: [/* @__PURE__ */ N(Pe, { className: "w-3.5 h-3.5 sm:w-4 sm:h-4" }), /* @__PURE__ */ N("span", {
352
- className: "hidden sm:inline",
353
- children: w("vibeDetails.deactivate", "Deactivate")
354
- })]
355
- }) : /* @__PURE__ */ P("button", {
356
- onClick: Ft,
357
- className: "flex items-center gap-1.5 px-2.5 py-1.5 sm:px-3 sm:py-2 text-xs sm:text-sm bg-status-success-bg text-status-success-text rounded-md hover:opacity-80 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",
358
- children: [/* @__PURE__ */ N(Fe, { className: "w-3.5 h-3.5 sm:w-4 sm:h-4" }), /* @__PURE__ */ N("span", {
359
- className: "hidden sm:inline",
360
- children: w("vibeDetails.activate", "Activate")
361
- })]
362
- })
349
+ title: C("common.refresh", "Refresh"),
350
+ children: /* @__PURE__ */ N(Le, { className: `w-4 h-4 ${ht ? "animate-spin" : ""}` })
363
351
  }),
364
352
  /* @__PURE__ */ N(re, {
365
- vibeId: B.id,
366
- workspacePath: B.path,
353
+ vibeId: V.id,
354
+ workspacePath: V.path,
367
355
  tunnelUrl: At,
368
356
  agentApiKey: jt,
369
- profile: q ?? "default",
370
- browserEditorEnabled: H("browserEditor")
357
+ profile: J ?? "default",
358
+ browserEditorEnabled: U("browserEditor")
371
359
  }),
372
- /* @__PURE__ */ N(qe, {
373
- permission: y.SESSION_CREATE,
360
+ /* @__PURE__ */ N(Je, {
361
+ permission: b.SESSION_CREATE,
374
362
  deniedBehavior: "disable",
375
363
  deniedTooltip: "You don't have permission to create sessions",
376
364
  children: /* @__PURE__ */ P("button", {
377
- onClick: Rt,
365
+ onClick: Wt,
378
366
  className: "flex items-center gap-1.5 px-2.5 py-1.5 sm:px-3 sm:py-2 text-xs sm:text-sm bg-action-primary-bg text-action-primary-text rounded-md hover:bg-action-primary-bg-hover transition-colors disabled:opacity-50 disabled:cursor-not-allowed",
379
367
  children: [
380
368
  /* @__PURE__ */ N(k, { className: "w-3.5 h-3.5 sm:w-4 sm:h-4" }),
381
369
  /* @__PURE__ */ N("span", {
382
370
  className: "hidden sm:inline",
383
- children: w("vibeDetails.new", "New")
371
+ children: C("vibeDetails.new", "New")
384
372
  }),
385
373
  /* @__PURE__ */ N("span", {
386
374
  className: "hidden sm:inline",
387
- children: w("nav.sessions", "Session")
375
+ children: C("nav.sessions", "Session")
388
376
  })
389
377
  ]
390
378
  })
391
379
  }),
392
- /* @__PURE__ */ N(qe, {
393
- permission: y.VIBE_UPDATE,
380
+ /* @__PURE__ */ N(Je, {
381
+ permission: b.VIBE_UPDATE,
394
382
  deniedBehavior: "disable",
395
- deniedTooltip: "You don't have permission to archive vibes",
396
- children: /* @__PURE__ */ P("button", {
397
- onClick: Lt,
398
- className: "flex items-center gap-1.5 px-2.5 py-1.5 sm:px-3 sm:py-2 text-xs sm:text-sm bg-status-warning-bg text-status-warning-text rounded-md hover:opacity-80 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",
399
- title: w("vibeDetails.archive", "Archive"),
400
- children: [/* @__PURE__ */ N(ye, { className: "w-3.5 h-3.5 sm:w-4 sm:h-4" }), /* @__PURE__ */ N("span", {
401
- className: "hidden sm:inline",
402
- children: w("vibeDetails.archive", "Archive")
383
+ deniedTooltip: "You don't have permission to manage this vibe",
384
+ children: /* @__PURE__ */ P("div", {
385
+ className: "relative",
386
+ ref: Ht,
387
+ children: [/* @__PURE__ */ N("button", {
388
+ type: "button",
389
+ onClick: () => Vt((e) => !e),
390
+ "aria-haspopup": "menu",
391
+ "aria-expanded": Bt,
392
+ "aria-label": C("common.moreActions", "More actions"),
393
+ title: C("common.moreActions", "More actions"),
394
+ className: "flex items-center justify-center p-2 bg-bg-sunken text-text-primary rounded-md hover:bg-bg-sunken/80 transition-colors",
395
+ children: /* @__PURE__ */ N(Ne, { className: "w-4 h-4" })
396
+ }), Bt && /* @__PURE__ */ P("div", {
397
+ role: "menu",
398
+ className: "absolute right-0 mt-2 min-w-[12rem] bg-bg-elevated border border-border-default rounded-md shadow-lg z-20 py-1",
399
+ children: [
400
+ /* @__PURE__ */ N("button", {
401
+ role: "menuitem",
402
+ onClick: () => {
403
+ Vt(!1), Zt ? Lt() : It();
404
+ },
405
+ className: "w-full flex items-center gap-2 px-3 py-2 text-sm text-text-primary hover:bg-action-ghost-bg-hover text-left",
406
+ children: Zt ? /* @__PURE__ */ P(M, { children: [/* @__PURE__ */ N(Fe, { className: "w-4 h-4 text-text-secondary" }), /* @__PURE__ */ N("span", { children: C("vibeDetails.pauseVibe", "Pause vibe (stop scheduled runs)") })] }) : /* @__PURE__ */ P(M, { children: [/* @__PURE__ */ N(Ie, { className: "w-4 h-4 text-status-success-text" }), /* @__PURE__ */ N("span", { children: C("vibeDetails.resumeVibe", "Resume vibe (re-enable scheduled runs)") })] })
407
+ }),
408
+ /* @__PURE__ */ N("div", { className: "border-t border-border-subtle my-1" }),
409
+ /* @__PURE__ */ P("button", {
410
+ role: "menuitem",
411
+ onClick: () => {
412
+ Vt(!1), zt(!0);
413
+ },
414
+ className: "w-full flex items-center gap-2 px-3 py-2 text-sm text-status-warning-text hover:bg-action-ghost-bg-hover text-left",
415
+ children: [/* @__PURE__ */ N(ve, { className: "w-4 h-4" }), /* @__PURE__ */ N("span", { children: C("vibeDetails.archive", "Archive vibe…") })]
416
+ })
417
+ ]
403
418
  })]
404
419
  })
405
420
  })
406
421
  ]
407
422
  })
408
423
  }),
409
- /* @__PURE__ */ P(Ke, {
424
+ Rt && /* @__PURE__ */ N("div", {
425
+ role: "dialog",
426
+ "aria-modal": "true",
427
+ "aria-labelledby": "archive-vibe-title",
428
+ className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",
429
+ onClick: (e) => {
430
+ e.target === e.currentTarget && zt(!1);
431
+ },
432
+ children: /* @__PURE__ */ P("div", {
433
+ className: "w-full max-w-md rounded-lg bg-bg-elevated border border-border-default shadow-xl p-5",
434
+ children: [
435
+ /* @__PURE__ */ N("h2", {
436
+ id: "archive-vibe-title",
437
+ className: "text-base font-semibold text-text-primary mb-2",
438
+ children: C("vibeDetails.archiveConfirmTitle", "Archive this vibe?")
439
+ }),
440
+ /* @__PURE__ */ N("p", {
441
+ className: "text-sm text-text-secondary mb-4",
442
+ children: C("vibeDetails.archiveConfirmBody", "Archived vibes are hidden from the active list and their scheduled actions stop firing. You can restore the vibe later from the archived view. Existing sessions, tunnels, and audit history are preserved.")
443
+ }),
444
+ /* @__PURE__ */ P("div", {
445
+ className: "flex justify-end gap-2",
446
+ children: [/* @__PURE__ */ N("button", {
447
+ type: "button",
448
+ onClick: () => zt(!1),
449
+ className: "text-sm px-3 py-1.5 rounded-md border border-border-default text-text-primary hover:bg-action-ghost-bg-hover",
450
+ children: C("common.cancel", "Cancel")
451
+ }), /* @__PURE__ */ N("button", {
452
+ type: "button",
453
+ onClick: Ut,
454
+ className: "text-sm px-3 py-1.5 rounded-md bg-status-warning-bg text-status-warning-text hover:opacity-80",
455
+ children: C("vibeDetails.archive", "Archive")
456
+ })]
457
+ })
458
+ ]
459
+ })
460
+ }),
461
+ /* @__PURE__ */ P(qe, {
410
462
  stagger: .04,
411
463
  className: "grid grid-cols-2 sm:grid-cols-4 gap-3 sm:gap-4",
412
464
  children: [
@@ -416,14 +468,14 @@ function R() {
416
468
  className: "flex items-center gap-2 sm:gap-3",
417
469
  children: [/* @__PURE__ */ N("div", {
418
470
  className: "w-8 h-8 sm:w-10 sm:h-10 rounded-lg bg-bg-sunken flex items-center justify-center flex-shrink-0",
419
- children: /* @__PURE__ */ N(j, { className: "w-4 h-4 sm:w-5 sm:h-5 text-text-secondary" })
471
+ children: /* @__PURE__ */ N(A, { className: "w-4 h-4 sm:w-5 sm:h-5 text-text-secondary" })
420
472
  }), /* @__PURE__ */ P("div", {
421
473
  className: "min-w-0",
422
474
  children: [/* @__PURE__ */ N("p", {
423
475
  className: "text-xs sm:text-sm text-text-secondary",
424
- children: w("sessions.filterStatus", "Status")
476
+ children: C("sessions.filterStatus", "Status")
425
477
  }), /* @__PURE__ */ N(_, {
426
- status: B.status,
478
+ status: V.status,
427
479
  size: "md"
428
480
  })]
429
481
  })]
@@ -435,15 +487,15 @@ function R() {
435
487
  className: "flex items-center gap-2 sm:gap-3",
436
488
  children: [/* @__PURE__ */ N("div", {
437
489
  className: "w-8 h-8 sm:w-10 sm:h-10 rounded-lg bg-bg-sunken flex items-center justify-center flex-shrink-0",
438
- children: /* @__PURE__ */ N(Ee, { className: "w-4 h-4 sm:w-5 sm:h-5 text-text-secondary" })
490
+ children: /* @__PURE__ */ N(Te, { className: "w-4 h-4 sm:w-5 sm:h-5 text-text-secondary" })
439
491
  }), /* @__PURE__ */ P("div", {
440
492
  className: "min-w-0",
441
493
  children: [/* @__PURE__ */ N("p", {
442
494
  className: "text-xs sm:text-sm text-text-secondary",
443
- children: w("sessions.filterType", "Type")
495
+ children: C("sessions.filterType", "Type")
444
496
  }), /* @__PURE__ */ N("p", {
445
497
  className: "font-semibold text-text-primary text-sm sm:text-base truncate",
446
- children: B.type
498
+ children: V.type
447
499
  })]
448
500
  })]
449
501
  })
@@ -454,15 +506,15 @@ function R() {
454
506
  className: "flex items-center gap-2 sm:gap-3",
455
507
  children: [/* @__PURE__ */ N("div", {
456
508
  className: "w-8 h-8 sm:w-10 sm:h-10 rounded-lg bg-bg-sunken flex items-center justify-center flex-shrink-0",
457
- children: /* @__PURE__ */ N(Le, { className: "w-4 h-4 sm:w-5 sm:h-5 text-text-secondary" })
509
+ children: /* @__PURE__ */ N(Re, { className: "w-4 h-4 sm:w-5 sm:h-5 text-text-secondary" })
458
510
  }), /* @__PURE__ */ P("div", {
459
511
  className: "min-w-0 flex-1",
460
512
  children: [/* @__PURE__ */ N("p", {
461
513
  className: "text-xs sm:text-sm text-text-secondary",
462
- children: w("sessions.filterAgent", "Agent")
514
+ children: C("sessions.filterAgent", "Agent")
463
515
  }), /* @__PURE__ */ N("p", {
464
516
  className: "font-semibold text-text-primary text-sm sm:text-base truncate",
465
- children: K?.name || w("targets.unknown", "Unknown")
517
+ children: q?.name || C("targets.unknown", "Unknown")
466
518
  })]
467
519
  })]
468
520
  })
@@ -473,18 +525,18 @@ function R() {
473
525
  className: "flex items-center gap-2 sm:gap-3",
474
526
  children: [/* @__PURE__ */ N("div", {
475
527
  className: "w-8 h-8 sm:w-10 sm:h-10 rounded-lg bg-bg-sunken flex items-center justify-center flex-shrink-0",
476
- children: /* @__PURE__ */ N(A, { className: "w-4 h-4 sm:w-5 sm:h-5 text-text-secondary" })
528
+ children: /* @__PURE__ */ N(He, { className: "w-4 h-4 sm:w-5 sm:h-5 text-text-secondary" })
477
529
  }), /* @__PURE__ */ P("div", {
478
530
  className: "min-w-0",
479
531
  children: [/* @__PURE__ */ N("p", {
480
532
  className: "text-xs sm:text-sm text-text-secondary",
481
- children: w("nav.sessions", "Sessions")
533
+ children: C("nav.sessions", "Sessions")
482
534
  }), /* @__PURE__ */ P("p", {
483
535
  className: "font-semibold text-text-primary text-sm sm:text-base",
484
536
  children: [
485
- Kt,
537
+ Qt,
486
538
  " ",
487
- w("health.active", "active")
539
+ C("health.active", "active")
488
540
  ]
489
541
  })]
490
542
  })]
@@ -496,12 +548,12 @@ function R() {
496
548
  className: "border-b border-border-default",
497
549
  children: /* @__PURE__ */ P("nav", {
498
550
  className: "flex gap-1 -mb-px overflow-x-auto pb-1",
499
- "aria-label": w("vibeDetails.tabsAriaLabel", "Vibe tabs"),
551
+ "aria-label": C("vibeDetails.tabsAriaLabel", "Vibe tabs"),
500
552
  children: [
501
- Yt.map((e) => {
502
- let t = e.icon, n = X === e.id;
553
+ tn.map((e) => {
554
+ let t = e.icon, n = Z === e.id;
503
555
  return /* @__PURE__ */ P("button", {
504
- onClick: () => Z(e.id),
556
+ onClick: () => Q(e.id),
505
557
  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"}`,
506
558
  "aria-selected": n,
507
559
  role: "tab",
@@ -515,10 +567,10 @@ function R() {
515
567
  ]
516
568
  }, e.id);
517
569
  }),
518
- J && Y.data.map((e) => {
519
- let t = X === e.contribution.id;
570
+ Y && X.data.map((e) => {
571
+ let t = Z === e.contribution.id;
520
572
  return /* @__PURE__ */ N("button", {
521
- onClick: () => Z(e.contribution.id),
573
+ onClick: () => Q(e.contribution.id),
522
574
  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"}`,
523
575
  "aria-selected": t,
524
576
  role: "tab",
@@ -526,7 +578,7 @@ function R() {
526
578
  children: e.contribution.title
527
579
  }, `plugin-${e.contribution.id}`);
528
580
  }),
529
- J && G && /* @__PURE__ */ P("button", {
581
+ Y && K && /* @__PURE__ */ P("button", {
530
582
  type: "button",
531
583
  onClick: () => Pt(!0),
532
584
  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",
@@ -543,10 +595,10 @@ function R() {
543
595
  ]
544
596
  })
545
597
  }),
546
- /* @__PURE__ */ P(We, {
598
+ /* @__PURE__ */ P(Ke, {
547
599
  mode: "wait",
548
600
  children: [
549
- X === "overview" && /* @__PURE__ */ P(M.div, {
601
+ Z === "overview" && /* @__PURE__ */ P(j.div, {
550
602
  initial: {
551
603
  opacity: 0,
552
604
  y: 8
@@ -562,35 +614,36 @@ function R() {
562
614
  transition: { duration: .2 },
563
615
  className: "space-y-6",
564
616
  children: [
565
- B.description && /* @__PURE__ */ N(v, { children: /* @__PURE__ */ N("div", {
617
+ V.description && /* @__PURE__ */ N(v, { children: /* @__PURE__ */ N("div", {
566
618
  className: "p-4",
567
619
  children: /* @__PURE__ */ N("p", {
568
620
  className: "text-text-primary",
569
- children: B.description
621
+ children: V.description
570
622
  })
571
623
  }) }),
572
- !Q && /* @__PURE__ */ N(de, {
573
- vibeId: B.id,
574
- tr: w
624
+ !Ft && /* @__PURE__ */ N(fe, {
625
+ vibeId: V.id,
626
+ tr: C,
627
+ onAttached: () => _t()
575
628
  }),
576
629
  /* @__PURE__ */ P(v, { children: [/* @__PURE__ */ N("div", {
577
630
  className: "p-3 sm:p-4 border-b border-border-default",
578
631
  children: /* @__PURE__ */ P("h3", {
579
632
  className: "font-semibold text-text-primary flex items-center gap-2 text-sm sm:text-base",
580
- children: [/* @__PURE__ */ N(Ee, { className: "w-4 h-4 sm:w-5 sm:h-5" }), w("vibeDetails.path", "Path")]
633
+ children: [/* @__PURE__ */ N(Te, { className: "w-4 h-4 sm:w-5 sm:h-5" }), C("vibeDetails.path", "Path")]
581
634
  })
582
635
  }), /* @__PURE__ */ N("div", {
583
636
  className: "p-3 sm:p-4",
584
637
  children: /* @__PURE__ */ N("div", {
585
638
  className: "bg-bg-sunken rounded-md p-2 sm:p-3 font-mono text-xs sm:text-sm text-text-primary overflow-x-auto break-all",
586
- children: B.path
639
+ children: V.path
587
640
  })
588
641
  })] }),
589
642
  /* @__PURE__ */ P(v, { children: [/* @__PURE__ */ N("div", {
590
643
  className: "p-4 border-b border-border-default",
591
644
  children: /* @__PURE__ */ P("h3", {
592
645
  className: "font-semibold text-text-primary flex items-center gap-2",
593
- children: [/* @__PURE__ */ N(Ce, { className: "w-5 h-5" }), w("vibeDetails.timeline", "Timeline")]
646
+ children: [/* @__PURE__ */ N(Se, { className: "w-5 h-5" }), C("vibeDetails.timeline", "Timeline")]
594
647
  })
595
648
  }), /* @__PURE__ */ N("div", {
596
649
  className: "p-4",
@@ -598,22 +651,22 @@ function R() {
598
651
  className: "grid grid-cols-1 sm:grid-cols-2 gap-4 text-sm",
599
652
  children: [/* @__PURE__ */ P("div", { children: [/* @__PURE__ */ N("p", {
600
653
  className: "text-text-secondary",
601
- children: w("vibeDetails.created", "Created")
654
+ children: C("vibeDetails.created", "Created")
602
655
  }), /* @__PURE__ */ N("p", {
603
656
  className: "font-medium text-text-primary",
604
- children: Ut(B.createdAt)
657
+ children: Yt(V.createdAt)
605
658
  })] }), /* @__PURE__ */ P("div", { children: [/* @__PURE__ */ N("p", {
606
659
  className: "text-text-secondary",
607
- children: w("vibeDetails.updated", "Updated")
660
+ children: C("vibeDetails.updated", "Updated")
608
661
  }), /* @__PURE__ */ N("p", {
609
662
  className: "font-medium text-text-primary",
610
- children: Ut(B.updatedAt)
663
+ children: Yt(V.updatedAt)
611
664
  })] })]
612
665
  })
613
666
  })] })
614
667
  ]
615
668
  }, "overview"),
616
- X === "config" && /* @__PURE__ */ P(M.div, {
669
+ Z === "config" && /* @__PURE__ */ P(j.div, {
617
670
  initial: {
618
671
  opacity: 0,
619
672
  y: 8
@@ -633,13 +686,13 @@ function R() {
633
686
  className: "p-4 border-b border-border-default",
634
687
  children: /* @__PURE__ */ P("h3", {
635
688
  className: "font-semibold text-text-primary flex items-center gap-2",
636
- children: [/* @__PURE__ */ N(Ve, { className: "w-5 h-5" }), w("vibeDetails.environmentVariables", "Environment Variables")]
689
+ children: [/* @__PURE__ */ N(Ue, { className: "w-5 h-5" }), C("vibeDetails.environmentVariables", "Environment Variables")]
637
690
  })
638
691
  }), /* @__PURE__ */ N("div", {
639
692
  className: "p-4",
640
- children: B.environmentVariables && Object.keys(B.environmentVariables).length > 0 ? /* @__PURE__ */ N("div", {
693
+ children: V.environmentVariables && Object.keys(V.environmentVariables).length > 0 ? /* @__PURE__ */ N("div", {
641
694
  className: "flex flex-wrap gap-2",
642
- children: Object.entries(B.environmentVariables).map(([e, t]) => /* @__PURE__ */ P("span", {
695
+ children: Object.entries(V.environmentVariables).map(([e, t]) => /* @__PURE__ */ P("span", {
643
696
  className: "px-3 py-1 bg-bg-sunken text-text-primary text-sm rounded-full font-mono",
644
697
  children: [
645
698
  e,
@@ -649,35 +702,35 @@ function R() {
649
702
  }, e))
650
703
  }) : /* @__PURE__ */ N("p", {
651
704
  className: "text-text-secondary",
652
- children: w("vibeDetails.noEnvironmentVariables", "No environment variables configured")
705
+ children: C("vibeDetails.noEnvironmentVariables", "No environment variables configured")
653
706
  })
654
707
  })] }),
655
708
  /* @__PURE__ */ P(v, { children: [/* @__PURE__ */ N("div", {
656
709
  className: "p-4 border-b border-border-default",
657
710
  children: /* @__PURE__ */ P("h3", {
658
711
  className: "font-semibold text-text-primary flex items-center gap-2",
659
- children: [/* @__PURE__ */ N(Be, { className: "w-5 h-5" }), w("vibeDetails.tags", "Tags")]
712
+ children: [/* @__PURE__ */ N(Ve, { className: "w-5 h-5" }), C("vibeDetails.tags", "Tags")]
660
713
  })
661
714
  }), /* @__PURE__ */ N("div", {
662
715
  className: "p-4",
663
716
  children: /* @__PURE__ */ N(h, {
664
717
  entityType: "VIBECONTROLS_VIBE",
665
- entityId: B.id
718
+ entityId: V.id
666
719
  })
667
720
  })] }),
668
721
  /* @__PURE__ */ P(v, { children: [/* @__PURE__ */ P("div", {
669
722
  className: "p-4 border-b border-border-default",
670
723
  children: [/* @__PURE__ */ P("h3", {
671
724
  className: "font-semibold text-text-primary flex items-center gap-2",
672
- children: [/* @__PURE__ */ N(Re, { className: "w-5 h-5" }), w("vibeDetails.features", "Features")]
725
+ children: [/* @__PURE__ */ N(ze, { className: "w-5 h-5" }), C("vibeDetails.features", "Features")]
673
726
  }), /* @__PURE__ */ N("p", {
674
727
  className: "text-sm text-text-secondary mt-1",
675
- children: w("vibeDetails.featuresDescription", "Toggle which sections show up on this vibe. Changes apply to everyone viewing the vibe.")
728
+ children: C("vibeDetails.featuresDescription", "Toggle which sections show up on this vibe. Changes apply to everyone viewing the vibe.")
676
729
  })]
677
730
  }), /* @__PURE__ */ N("div", {
678
731
  className: "p-4 space-y-2",
679
732
  children: R.map((e) => {
680
- let t = H(e.id);
733
+ let t = U(e.id);
681
734
  return /* @__PURE__ */ P("label", {
682
735
  className: "flex items-center justify-between gap-4 py-2 cursor-pointer",
683
736
  children: [/* @__PURE__ */ N("span", {
@@ -688,25 +741,25 @@ function R() {
688
741
  role: "switch",
689
742
  "aria-label": e.label,
690
743
  checked: t,
691
- disabled: nt || !B.id,
744
+ disabled: rt || !V.id,
692
745
  onChange: async (t) => {
693
746
  let n = t.target.checked;
694
747
  try {
695
- await tt({
748
+ await nt({
696
749
  variables: {
697
- id: B.id,
750
+ id: V.id,
698
751
  featureId: e.id,
699
752
  enabled: n
700
753
  },
701
754
  optimisticResponse: { setVibeFeatureFlag: {
702
755
  __typename: "Vibe",
703
- id: B.id,
756
+ id: V.id,
704
757
  featureFlags: {
705
- ...V?.featureFlags ?? {},
758
+ ...H?.featureFlags ?? {},
706
759
  [e.id]: n
707
760
  },
708
761
  effectiveFeatureFlags: {
709
- ...V?.effectiveFeatureFlags ?? {},
762
+ ...H?.effectiveFeatureFlags ?? {},
710
763
  [e.id]: n
711
764
  }
712
765
  } }
@@ -722,7 +775,7 @@ function R() {
722
775
  })] })
723
776
  ]
724
777
  }, "config"),
725
- X === "git" && H("git") && /* @__PURE__ */ N(M.div, {
778
+ Z === "git" && U("git") && /* @__PURE__ */ N(j.div, {
726
779
  initial: {
727
780
  opacity: 0,
728
781
  y: 8
@@ -737,57 +790,57 @@ function R() {
737
790
  },
738
791
  transition: { duration: .2 },
739
792
  className: "space-y-6",
740
- children: /* @__PURE__ */ N(te, {
741
- agentId: G?.id ?? null,
793
+ children: /* @__PURE__ */ N(y, {
794
+ agentId: K?.id ?? null,
742
795
  required: ["@vibecontrols/vibe-plugin-tool-git"],
743
796
  mode: "all",
744
- eyebrow: w("vibeDetails.gitPluginEyebrow", "Git plugin required"),
745
- title: w("vibeDetails.gitPluginTitle", "Install the git plugin"),
746
- description: w("vibeDetails.gitPluginDescription", "Live git branch, status, and remote data for this vibe are served by the vibe-plugin-tool-git agent plugin."),
747
- children: Jt ? /* @__PURE__ */ P(v, { children: [/* @__PURE__ */ N("div", {
797
+ eyebrow: C("vibeDetails.gitPluginEyebrow", "Git plugin required"),
798
+ title: C("vibeDetails.gitPluginTitle", "Install the git plugin"),
799
+ description: C("vibeDetails.gitPluginDescription", "Live git branch, status, and remote data for this vibe are served by the vibe-plugin-tool-git agent plugin."),
800
+ children: en ? /* @__PURE__ */ P(v, { children: [/* @__PURE__ */ N("div", {
748
801
  className: "p-4 border-b border-border-default",
749
802
  children: /* @__PURE__ */ P("h3", {
750
803
  className: "font-semibold text-text-primary flex items-center gap-2",
751
- children: [/* @__PURE__ */ N(De, { className: "w-5 h-5" }), w("vibeDetails.gitInformation", "Git Information")]
804
+ children: [/* @__PURE__ */ N(Ee, { className: "w-5 h-5" }), C("vibeDetails.gitInformation", "Git Information")]
752
805
  })
753
806
  }), /* @__PURE__ */ P("div", {
754
807
  className: "p-4 space-y-3",
755
808
  children: [/* @__PURE__ */ P("div", {
756
809
  className: "flex items-center gap-4 flex-wrap",
757
- children: [B.gitBranch && /* @__PURE__ */ P("div", {
810
+ children: [V.gitBranch && /* @__PURE__ */ P("div", {
758
811
  className: "flex items-center gap-2",
759
812
  children: [/* @__PURE__ */ P("span", {
760
813
  className: "text-sm text-text-secondary",
761
- children: [w("vibeDetails.branch", "Branch"), ":"]
814
+ children: [C("vibeDetails.branch", "Branch"), ":"]
762
815
  }), /* @__PURE__ */ N("span", {
763
816
  className: "px-2 py-1 bg-bg-sunken text-text-primary text-sm rounded font-mono",
764
- children: B.gitBranch
817
+ children: V.gitBranch
765
818
  })]
766
- }), B.gitStatus && /* @__PURE__ */ P("div", {
819
+ }), V.gitStatus && /* @__PURE__ */ P("div", {
767
820
  className: "flex items-center gap-2",
768
821
  children: [/* @__PURE__ */ P("span", {
769
822
  className: "text-sm text-text-secondary",
770
- children: [w("sessions.filterStatus", "Status"), ":"]
823
+ children: [C("sessions.filterStatus", "Status"), ":"]
771
824
  }), /* @__PURE__ */ N("span", {
772
- className: `font-medium ${Wt(B.gitStatus)}`,
773
- children: B.gitStatus
825
+ className: `font-medium ${Xt(V.gitStatus)}`,
826
+ children: V.gitStatus
774
827
  })]
775
828
  })]
776
- }), B.gitRemote && /* @__PURE__ */ P("div", { children: [/* @__PURE__ */ P("span", {
829
+ }), V.gitRemote && /* @__PURE__ */ P("div", { children: [/* @__PURE__ */ P("span", {
777
830
  className: "text-sm text-text-secondary",
778
- children: [w("vibeDetails.remote", "Remote"), ":"]
831
+ children: [C("vibeDetails.remote", "Remote"), ":"]
779
832
  }), /* @__PURE__ */ N("p", {
780
833
  className: "font-mono text-sm text-text-primary mt-1 break-all",
781
- children: B.gitRemote
834
+ children: V.gitRemote
782
835
  })] })]
783
836
  })] }) : /* @__PURE__ */ N(g, {
784
- icon: /* @__PURE__ */ N(De, { className: "w-8 h-8 text-text-secondary" }),
785
- title: w("vibeDetails.noGitInformation", "No git information"),
786
- description: w("vibeDetails.noGitInformationDescription", "This vibe does not have any git repository linked")
837
+ icon: /* @__PURE__ */ N(Ee, { className: "w-8 h-8 text-text-secondary" }),
838
+ title: C("vibeDetails.noGitInformation", "No git information"),
839
+ description: C("vibeDetails.noGitInformationDescription", "This vibe does not have any git repository linked")
787
840
  })
788
841
  })
789
842
  }, "git"),
790
- X === "sessions" && H("sessions") && /* @__PURE__ */ N(M.div, {
843
+ Z === "sessions" && U("sessions") && /* @__PURE__ */ N(j.div, {
791
844
  initial: {
792
845
  opacity: 0,
793
846
  y: 8
@@ -801,47 +854,47 @@ function R() {
801
854
  y: -8
802
855
  },
803
856
  transition: { duration: .2 },
804
- children: /* @__PURE__ */ N(te, {
805
- agentId: G?.id ?? null,
857
+ children: /* @__PURE__ */ N(y, {
858
+ agentId: K?.id ?? null,
806
859
  requirements: [{
807
860
  packages: ["@vibecontrols/vibe-plugin-session-manager"],
808
861
  mode: "all",
809
- eyebrow: w("vibeDetails.sessionsManagerEyebrow", "Session manager required"),
810
- title: w("vibeDetails.sessionsManagerTitle", "Install the session manager"),
811
- description: w("vibeDetails.sessionsManagerDescription", "Sessions are orchestrated by the unified session manager plugin. Install it to continue.")
862
+ eyebrow: C("vibeDetails.sessionsManagerEyebrow", "Session manager required"),
863
+ title: C("vibeDetails.sessionsManagerTitle", "Install the session manager"),
864
+ description: C("vibeDetails.sessionsManagerDescription", "Sessions are orchestrated by the unified session manager plugin. Install it to continue.")
812
865
  }, {
813
866
  packages: ee,
814
867
  mode: "any",
815
- eyebrow: w("vibeDetails.sessionProviderEyebrow", "Session provider required"),
816
- title: w("vibeDetails.sessionProviderTitle", "Pick a session provider"),
817
- description: w("vibeDetails.sessionProviderDescription", "Choose the terminal multiplexer your sessions should run on. You can install more providers later.")
868
+ eyebrow: C("vibeDetails.sessionProviderEyebrow", "Session provider required"),
869
+ title: C("vibeDetails.sessionProviderTitle", "Pick a session provider"),
870
+ description: C("vibeDetails.sessionProviderDescription", "Choose the terminal multiplexer your sessions should run on. You can install more providers later.")
818
871
  }],
819
872
  children: /* @__PURE__ */ P(v, { children: [/* @__PURE__ */ P("div", {
820
873
  className: "p-4 border-b border-border-default flex items-center justify-between",
821
874
  children: [/* @__PURE__ */ P("h3", {
822
875
  className: "font-semibold text-text-primary flex items-center gap-2",
823
876
  children: [
824
- /* @__PURE__ */ N(A, { className: "w-5 h-5" }),
825
- w("nav.sessions", "Sessions"),
877
+ /* @__PURE__ */ N(He, { className: "w-5 h-5" }),
878
+ C("nav.sessions", "Sessions"),
826
879
  " (",
827
- W.length,
880
+ G.length,
828
881
  ")"
829
882
  ]
830
883
  }), /* @__PURE__ */ P("button", {
831
- onClick: Rt,
884
+ onClick: Wt,
832
885
  className: "flex items-center gap-1 px-2 py-1 text-sm bg-bg-sunken text-text-primary rounded hover:bg-bg-sunken/80 transition-colors",
833
- children: [/* @__PURE__ */ N(k, { className: "w-4 h-4" }), w("vibeDetails.new", "New")]
886
+ children: [/* @__PURE__ */ N(k, { className: "w-4 h-4" }), C("vibeDetails.new", "New")]
834
887
  })]
835
- }), W.length > 0 ? /* @__PURE__ */ N(Ke, {
888
+ }), G.length > 0 ? /* @__PURE__ */ N(qe, {
836
889
  className: "divide-y divide-border-primary",
837
- children: W.map((e) => /* @__PURE__ */ N(I, {
890
+ children: G.map((e) => /* @__PURE__ */ N(I, {
838
891
  variant: "fadeRight",
839
892
  children: /* @__PURE__ */ P("div", {
840
- onClick: () => Vt(e.id),
893
+ onClick: () => qt(e.id),
841
894
  className: "p-4 flex items-center justify-between cursor-pointer hover:bg-bg-sunken/50 transition-colors",
842
895
  children: [/* @__PURE__ */ P("div", {
843
896
  className: "flex items-center gap-3 min-w-0",
844
- children: [/* @__PURE__ */ N(A, { className: "w-5 h-5 text-text-secondary flex-shrink-0" }), /* @__PURE__ */ P("div", {
897
+ children: [/* @__PURE__ */ N(He, { className: "w-5 h-5 text-text-secondary flex-shrink-0" }), /* @__PURE__ */ P("div", {
845
898
  className: "min-w-0",
846
899
  children: [/* @__PURE__ */ N("p", {
847
900
  className: "font-medium text-text-primary truncate",
@@ -856,11 +909,11 @@ function R() {
856
909
  }, e.id))
857
910
  }) : /* @__PURE__ */ N("div", {
858
911
  className: "p-6 text-center text-text-secondary",
859
- children: w("vibeDetails.noSessionsForVibe", "No sessions for this vibe")
912
+ children: C("vibeDetails.noSessionsForVibe", "No sessions for this vibe")
860
913
  })] })
861
914
  })
862
915
  }, "sessions"),
863
- X === "notes" && H("notes") && /* @__PURE__ */ N(M.div, {
916
+ Z === "notes" && U("notes") && /* @__PURE__ */ N(j.div, {
864
917
  initial: {
865
918
  opacity: 0,
866
919
  y: 8
@@ -875,12 +928,12 @@ function R() {
875
928
  },
876
929
  transition: { duration: .2 },
877
930
  className: "space-y-6",
878
- children: /* @__PURE__ */ N(x, {
931
+ children: /* @__PURE__ */ N(ie, {
879
932
  context: "vibe",
880
- vibeId: B.id
933
+ vibeId: V.id
881
934
  })
882
935
  }, "notes"),
883
- X === "docs" && H("docs") && /* @__PURE__ */ N(M.div, {
936
+ Z === "docs" && U("docs") && /* @__PURE__ */ N(j.div, {
884
937
  initial: {
885
938
  opacity: 0,
886
939
  y: 8
@@ -895,9 +948,9 @@ function R() {
895
948
  },
896
949
  transition: { duration: .2 },
897
950
  className: "space-y-6",
898
- children: /* @__PURE__ */ N(le, { vibeId: B.id })
951
+ children: /* @__PURE__ */ N(ue, { vibeId: V.id })
899
952
  }, "docs"),
900
- X === "scorecard" && H("scorecard") && /* @__PURE__ */ N(M.div, {
953
+ Z === "scorecard" && U("scorecard") && /* @__PURE__ */ N(j.div, {
901
954
  initial: {
902
955
  opacity: 0,
903
956
  y: 8
@@ -912,12 +965,12 @@ function R() {
912
965
  },
913
966
  transition: { duration: .2 },
914
967
  className: "space-y-6",
915
- children: /* @__PURE__ */ N(ce, {
968
+ children: /* @__PURE__ */ N(le, {
916
969
  ownerType: "VIBE",
917
- ownerId: B.id
970
+ ownerId: V.id
918
971
  })
919
972
  }, "scorecard"),
920
- X === "catalogs" && H("catalogs") && /* @__PURE__ */ N(M.div, {
973
+ Z === "catalogs" && U("catalogs") && /* @__PURE__ */ N(j.div, {
921
974
  initial: {
922
975
  opacity: 0,
923
976
  y: 8
@@ -932,13 +985,13 @@ function R() {
932
985
  },
933
986
  transition: { duration: .2 },
934
987
  className: "space-y-6",
935
- children: /* @__PURE__ */ N($e, {
936
- vibeId: B.id,
937
- tr: w,
938
- navigate: C
988
+ children: /* @__PURE__ */ N(et, {
989
+ vibeId: V.id,
990
+ tr: C,
991
+ navigate: S
939
992
  })
940
993
  }, "catalogs"),
941
- X === "graphqlPlayground" && H("graphqlPlayground") && /* @__PURE__ */ N(M.div, {
994
+ Z === "graphqlPlayground" && U("graphqlPlayground") && /* @__PURE__ */ N(j.div, {
942
995
  initial: {
943
996
  opacity: 0,
944
997
  y: 8
@@ -953,37 +1006,37 @@ function R() {
953
1006
  },
954
1007
  transition: { duration: .2 },
955
1008
  className: "space-y-6",
956
- children: /* @__PURE__ */ N(te, {
957
- agentId: G?.id ?? null,
1009
+ children: /* @__PURE__ */ N(y, {
1010
+ agentId: K?.id ?? null,
958
1011
  required: ["@vibecontrols/vibe-plugin-tool-graphiql"],
959
1012
  mode: "all",
960
- eyebrow: w("vibeDetails.graphqlPluginEyebrow", "GraphQL playground plugin required"),
961
- title: w("vibeDetails.graphqlPluginTitle", "Install the GraphQL playground"),
962
- description: w("vibeDetails.graphqlPluginDescription", "The GraphQL Playground is served by the graphiql agent plugin. Install it to continue."),
963
- children: At ? /* @__PURE__ */ N(et, {
964
- vibeId: B.id,
965
- agentId: G?.id ?? null,
966
- profile: q,
1013
+ eyebrow: C("vibeDetails.graphqlPluginEyebrow", "GraphQL playground plugin required"),
1014
+ title: C("vibeDetails.graphqlPluginTitle", "Install the GraphQL playground"),
1015
+ description: C("vibeDetails.graphqlPluginDescription", "The GraphQL Playground is served by the graphiql agent plugin. Install it to continue."),
1016
+ children: At ? /* @__PURE__ */ N(tt, {
1017
+ vibeId: V.id,
1018
+ agentId: K?.id ?? null,
1019
+ profile: J,
967
1020
  tunnelUrl: At,
968
1021
  apiKey: jt,
969
1022
  type: "graphql",
970
- tr: w
1023
+ tr: C
971
1024
  }) : /* @__PURE__ */ N(g, {
972
- icon: /* @__PURE__ */ N(Ne, { className: "w-8 h-8 text-text-secondary" }),
973
- title: w("vibeDetails.noAgentTunnel", "No agent tunnel available"),
974
- description: w("vibeDetails.noAgentTunnelDesc2", "The GraphQL playground requires an active agent with a tunnel URL.")
1025
+ icon: /* @__PURE__ */ N(Pe, { className: "w-8 h-8 text-text-secondary" }),
1026
+ title: C("vibeDetails.noAgentTunnel", "No agent tunnel available"),
1027
+ description: C("vibeDetails.noAgentTunnelDesc2", "The GraphQL playground requires an active agent with a tunnel URL.")
975
1028
  })
976
1029
  })
977
1030
  }, "graphqlPlayground"),
978
- X === "gitops" && H("gitops") && /* @__PURE__ */ N(ue, {
1031
+ Z === "gitops" && U("gitops") && /* @__PURE__ */ N(de, {
979
1032
  vibeId: r || "",
980
- agentId: G?.id ?? "",
981
- profile: q,
1033
+ agentId: K?.id ?? "",
1034
+ profile: J,
982
1035
  tunnelUrl: At,
983
1036
  apiKey: jt,
984
- tr: w
1037
+ tr: C
985
1038
  }),
986
- X === "security" && H("security") && /* @__PURE__ */ N(M.div, {
1039
+ Z === "security" && U("security") && /* @__PURE__ */ N(j.div, {
987
1040
  initial: {
988
1041
  opacity: 0,
989
1042
  y: 8
@@ -998,9 +1051,9 @@ function R() {
998
1051
  },
999
1052
  transition: { duration: .2 },
1000
1053
  className: "space-y-6",
1001
- children: /* @__PURE__ */ N(me, { vibeId: r || "" })
1054
+ children: /* @__PURE__ */ N(he, { vibeId: r || "" })
1002
1055
  }, "security"),
1003
- X === "related" && H("related") && /* @__PURE__ */ N(M.div, {
1056
+ Z === "related" && U("related") && /* @__PURE__ */ N(j.div, {
1004
1057
  initial: {
1005
1058
  opacity: 0,
1006
1059
  y: 8
@@ -1015,29 +1068,29 @@ function R() {
1015
1068
  },
1016
1069
  transition: { duration: .2 },
1017
1070
  className: "space-y-6",
1018
- children: qt > 0 ? /* @__PURE__ */ P(Ge, { children: [
1071
+ children: $t > 0 ? /* @__PURE__ */ P(M, { children: [
1019
1072
  Dt.length > 0 && /* @__PURE__ */ P(v, { children: [/* @__PURE__ */ N("div", {
1020
1073
  className: "p-4 border-b border-border-default",
1021
1074
  children: /* @__PURE__ */ P("h3", {
1022
1075
  className: "font-semibold text-text-primary flex items-center gap-2",
1023
1076
  children: [
1024
- /* @__PURE__ */ N(j, { className: "w-5 h-5" }),
1025
- w("vibeDetails.childVibes", "Child Vibes"),
1077
+ /* @__PURE__ */ N(A, { className: "w-5 h-5" }),
1078
+ C("vibeDetails.childVibes", "Child Vibes"),
1026
1079
  " (",
1027
1080
  Dt.length,
1028
1081
  ")"
1029
1082
  ]
1030
1083
  })
1031
- }), /* @__PURE__ */ N(Ke, {
1084
+ }), /* @__PURE__ */ N(qe, {
1032
1085
  className: "divide-y divide-border-primary",
1033
1086
  children: Dt.map((e) => /* @__PURE__ */ N(I, {
1034
1087
  variant: "fadeRight",
1035
1088
  children: /* @__PURE__ */ P("div", {
1036
- onClick: () => Ht(e.id),
1089
+ onClick: () => Jt(e.id),
1037
1090
  className: "p-4 flex items-center justify-between cursor-pointer hover:bg-bg-sunken/50 transition-colors",
1038
1091
  children: [/* @__PURE__ */ P("div", {
1039
1092
  className: "flex items-center gap-3 min-w-0",
1040
- children: [/* @__PURE__ */ N(j, { className: "w-5 h-5 text-text-secondary flex-shrink-0" }), /* @__PURE__ */ P("div", {
1093
+ children: [/* @__PURE__ */ N(A, { className: "w-5 h-5 text-text-secondary flex-shrink-0" }), /* @__PURE__ */ P("div", {
1041
1094
  className: "min-w-0",
1042
1095
  children: [/* @__PURE__ */ N("p", {
1043
1096
  className: "font-medium text-text-primary truncate",
@@ -1052,24 +1105,24 @@ function R() {
1052
1105
  }, e.id))
1053
1106
  })] }),
1054
1107
  Ot && /* @__PURE__ */ N(v, {
1055
- onClick: () => Ht(Ot.id),
1108
+ onClick: () => Jt(Ot.id),
1056
1109
  hoverable: !0,
1057
1110
  children: /* @__PURE__ */ P("div", {
1058
1111
  className: "p-4 flex items-center gap-3",
1059
1112
  children: [/* @__PURE__ */ N("div", {
1060
1113
  className: "w-10 h-10 rounded-lg bg-bg-sunken flex items-center justify-center",
1061
- children: /* @__PURE__ */ N(j, { className: "w-5 h-5 text-text-secondary" })
1114
+ children: /* @__PURE__ */ N(A, { className: "w-5 h-5 text-text-secondary" })
1062
1115
  }), /* @__PURE__ */ P("div", { children: [/* @__PURE__ */ N("p", {
1063
1116
  className: "text-sm text-text-secondary",
1064
- children: w("vibeDetails.parentVibe", "Parent Vibe")
1117
+ children: C("vibeDetails.parentVibe", "Parent Vibe")
1065
1118
  }), /* @__PURE__ */ N("p", {
1066
1119
  className: "font-medium text-text-primary",
1067
1120
  children: Ot.name
1068
1121
  })] })]
1069
1122
  })
1070
1123
  }),
1071
- K && /* @__PURE__ */ N(v, {
1072
- onClick: Bt,
1124
+ q && /* @__PURE__ */ N(v, {
1125
+ onClick: Kt,
1073
1126
  hoverable: !0,
1074
1127
  children: /* @__PURE__ */ P("div", {
1075
1128
  className: "p-4 flex items-center justify-between",
@@ -1077,35 +1130,35 @@ function R() {
1077
1130
  className: "flex items-center gap-3",
1078
1131
  children: [/* @__PURE__ */ N("div", {
1079
1132
  className: "w-10 h-10 rounded-lg bg-bg-sunken flex items-center justify-center",
1080
- children: /* @__PURE__ */ N(Le, { className: "w-5 h-5 text-text-secondary" })
1133
+ children: /* @__PURE__ */ N(Re, { className: "w-5 h-5 text-text-secondary" })
1081
1134
  }), /* @__PURE__ */ P("div", { children: [
1082
1135
  /* @__PURE__ */ N("p", {
1083
1136
  className: "text-sm text-text-secondary",
1084
- children: w("vibeDetails.runningOnAgent", "Running on Agent")
1137
+ children: C("vibeDetails.runningOnAgent", "Running on Agent")
1085
1138
  }),
1086
1139
  /* @__PURE__ */ N("p", {
1087
1140
  className: "font-medium text-text-primary",
1088
- children: K.name
1141
+ children: q.name
1089
1142
  }),
1090
1143
  /* @__PURE__ */ N("p", {
1091
1144
  className: "text-sm text-text-secondary",
1092
- children: K.hostname
1145
+ children: q.hostname
1093
1146
  })
1094
1147
  ] })]
1095
- }), /* @__PURE__ */ N(_, { status: K.isActive ? "ACTIVE" : "OFFLINE" })]
1148
+ }), /* @__PURE__ */ N(_, { status: q.isActive ? "ACTIVE" : "OFFLINE" })]
1096
1149
  })
1097
1150
  })
1098
1151
  ] }) : /* @__PURE__ */ N(g, {
1099
1152
  icon: /* @__PURE__ */ N(je, { className: "w-8 h-8 text-text-secondary" }),
1100
- title: w("vibeDetails.noRelatedEntities", "No related entities"),
1101
- description: w("vibeDetails.noRelatedEntitiesDescription", "This vibe has no child vibes, parent vibe, or linked agent")
1153
+ title: C("vibeDetails.noRelatedEntities", "No related entities"),
1154
+ description: C("vibeDetails.noRelatedEntitiesDescription", "This vibe has no child vibes, parent vibe, or linked agent")
1102
1155
  })
1103
1156
  }, "related"),
1104
- J && (() => {
1105
- let e = Y.data.find((e) => e.contribution.id === X);
1157
+ Y && (() => {
1158
+ let e = X.data.find((e) => e.contribution.id === Z);
1106
1159
  if (!e) return null;
1107
1160
  let t = e.tunnel, n = e.capabilities.restPaths.length > 0 ? e.capabilities.restPaths : [`/ui/${e.pluginKey}`];
1108
- return /* @__PURE__ */ N(M.div, {
1161
+ return /* @__PURE__ */ N(j.div, {
1109
1162
  initial: {
1110
1163
  opacity: 0,
1111
1164
  y: 8
@@ -1122,19 +1175,19 @@ function R() {
1122
1175
  className: "space-y-6",
1123
1176
  children: /* @__PURE__ */ N(v, { children: /* @__PURE__ */ N("div", {
1124
1177
  className: "p-0 h-[600px]",
1125
- children: /* @__PURE__ */ N(se, {
1178
+ children: /* @__PURE__ */ N(ce, {
1126
1179
  contribution: e,
1127
1180
  tunnel: t,
1128
1181
  restPaths: n,
1129
- context: { vibeId: B.id },
1130
- agentId: G?.id ?? "",
1182
+ context: { vibeId: V.id },
1183
+ agentId: K?.id ?? "",
1131
1184
  profile: t.profile,
1132
1185
  theme: {
1133
1186
  colorMode: "light",
1134
1187
  tokens: {}
1135
1188
  },
1136
1189
  locale: "en",
1137
- featureFlags: V?.featureFlags ?? {},
1190
+ featureFlags: H?.featureFlags ?? {},
1138
1191
  hostVersion: "1.0.0"
1139
1192
  })
1140
1193
  }) })
@@ -1142,17 +1195,17 @@ function R() {
1142
1195
  })()
1143
1196
  ]
1144
1197
  }),
1145
- J && G && /* @__PURE__ */ N(oe, {
1198
+ Y && K && /* @__PURE__ */ N(se, {
1146
1199
  isOpen: Nt,
1147
1200
  onClose: () => Pt(!1),
1148
1201
  mountPoint: "vibe.detailTab",
1149
- agentId: G.id,
1150
- profile: q ?? "default",
1202
+ agentId: K.id,
1203
+ profile: J ?? "default",
1151
1204
  onInstalled: () => {
1152
- Y.refetch();
1205
+ X.refetch();
1153
1206
  }
1154
1207
  }),
1155
- rt && /* @__PURE__ */ N("div", {
1208
+ it && /* @__PURE__ */ N("div", {
1156
1209
  className: "fixed inset-0 bg-bg-overlay flex items-center justify-center z-50 p-4",
1157
1210
  children: /* @__PURE__ */ P("div", {
1158
1211
  className: "bg-bg-surface rounded-lg p-6 w-full max-w-lg",
@@ -1160,72 +1213,72 @@ function R() {
1160
1213
  /* @__PURE__ */ P("h2", {
1161
1214
  className: "text-lg font-semibold text-text-primary mb-4",
1162
1215
  children: [
1163
- w("vibeDetails.newSessionFor", "New Session for"),
1216
+ C("vibeDetails.newSessionFor", "New Session for"),
1164
1217
  " ",
1165
- B.name
1218
+ V.name
1166
1219
  ]
1167
1220
  }),
1168
- at && /* @__PURE__ */ N("div", {
1221
+ ot && /* @__PURE__ */ N("div", {
1169
1222
  className: "mb-4 p-3 bg-status-error-bg text-status-error-text rounded-md text-sm",
1170
- children: at
1223
+ children: ot
1171
1224
  }),
1172
1225
  /* @__PURE__ */ P("div", {
1173
1226
  className: "space-y-4",
1174
1227
  children: [
1175
1228
  /* @__PURE__ */ P("div", { children: [/* @__PURE__ */ N("label", {
1176
1229
  className: "block text-sm font-medium text-text-primary mb-1",
1177
- children: w("vibeDetails.sessionName", "Session Name")
1230
+ children: C("vibeDetails.sessionName", "Session Name")
1178
1231
  }), /* @__PURE__ */ N("input", {
1179
- ref: ut,
1232
+ ref: B,
1180
1233
  type: "text",
1181
- placeholder: w("vibeDetails.sessionNamePlaceholder", "dev-terminal"),
1234
+ placeholder: C("vibeDetails.sessionNamePlaceholder", "dev-terminal"),
1182
1235
  className: "w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-primary placeholder:text-text-placeholder"
1183
1236
  })] }),
1184
1237
  /* @__PURE__ */ P("div", { children: [/* @__PURE__ */ N("label", {
1185
1238
  className: "block text-sm font-medium text-text-primary mb-1",
1186
- children: w("sessions.filterType", "Type")
1239
+ children: C("sessions.filterType", "Type")
1187
1240
  }), /* @__PURE__ */ P("select", {
1188
1241
  ref: dt,
1189
1242
  className: "w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-primary",
1190
1243
  children: [
1191
1244
  /* @__PURE__ */ N("option", {
1192
1245
  value: "TERMINAL",
1193
- children: w("sessions.typeTerminal", "Terminal")
1246
+ children: C("sessions.typeTerminal", "Terminal")
1194
1247
  }),
1195
1248
  /* @__PURE__ */ N("option", {
1196
1249
  value: "TMUX",
1197
- children: w("sessions.typeTmux", "TMUX")
1250
+ children: C("sessions.typeTmux", "TMUX")
1198
1251
  }),
1199
1252
  /* @__PURE__ */ N("option", {
1200
1253
  value: "SSH",
1201
- children: w("sessions.typeSsh", "SSH")
1254
+ children: C("sessions.typeSsh", "SSH")
1202
1255
  }),
1203
1256
  /* @__PURE__ */ N("option", {
1204
1257
  value: "SCRIPT",
1205
- children: w("sessions.typeScript", "Script")
1258
+ children: C("sessions.typeScript", "Script")
1206
1259
  }),
1207
1260
  /* @__PURE__ */ N("option", {
1208
1261
  value: "CUSTOM",
1209
- children: w("sessions.typeCustom", "Custom")
1262
+ children: C("sessions.typeCustom", "Custom")
1210
1263
  })
1211
1264
  ]
1212
1265
  })] }),
1213
1266
  /* @__PURE__ */ P("div", { children: [/* @__PURE__ */ N("label", {
1214
1267
  className: "block text-sm font-medium text-text-primary mb-1",
1215
- children: w("sessions.command", "Command")
1268
+ children: C("sessions.command", "Command")
1216
1269
  }), /* @__PURE__ */ N("input", {
1217
1270
  ref: ft,
1218
1271
  type: "text",
1219
- placeholder: w("vibeDetails.sessionCommandPlaceholder", "bash"),
1272
+ placeholder: C("vibeDetails.sessionCommandPlaceholder", "bash"),
1220
1273
  className: "w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-primary placeholder:text-text-placeholder"
1221
1274
  })] }),
1222
1275
  /* @__PURE__ */ P("div", { children: [/* @__PURE__ */ N("label", {
1223
1276
  className: "block text-sm font-medium text-text-primary mb-1",
1224
- children: w("vibeDetails.workingDirectory", "Working Directory")
1277
+ children: C("vibeDetails.workingDirectory", "Working Directory")
1225
1278
  }), /* @__PURE__ */ N("input", {
1226
1279
  ref: pt,
1227
1280
  type: "text",
1228
- defaultValue: B.path || "",
1281
+ defaultValue: V.path || "",
1229
1282
  className: "w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-primary"
1230
1283
  })] })
1231
1284
  ]
@@ -1233,15 +1286,15 @@ function R() {
1233
1286
  /* @__PURE__ */ P("div", {
1234
1287
  className: "flex flex-col sm:flex-row justify-end gap-3 mt-6",
1235
1288
  children: [/* @__PURE__ */ N("button", {
1236
- onClick: () => it(!1),
1237
- disabled: ot,
1289
+ onClick: () => at(!1),
1290
+ disabled: st,
1238
1291
  className: "px-4 py-2 text-text-primary hover:bg-bg-sunken rounded-md transition-colors disabled:opacity-50",
1239
- children: w("common.cancel", "Cancel")
1292
+ children: C("common.cancel", "Cancel")
1240
1293
  }), /* @__PURE__ */ N("button", {
1241
- onClick: zt,
1242
- disabled: ot,
1294
+ onClick: Gt,
1295
+ disabled: st,
1243
1296
  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",
1244
- children: ot ? w("sessions.creating", "Creating...") : w("sessions.createSession", "Create Session")
1297
+ children: st ? C("sessions.creating", "Creating...") : C("sessions.createSession", "Create Session")
1245
1298
  })]
1246
1299
  })
1247
1300
  ]
@@ -1250,8 +1303,8 @@ function R() {
1250
1303
  ]
1251
1304
  });
1252
1305
  }
1253
- function $e({ vibeId: t, tr: n, navigate: i }) {
1254
- let [a, o] = E(!1), { data: c, loading: l, refetch: u } = r({ fetchPolicy: "cache-and-network" }), [d] = e({ refetchQueries: ["GetVibeCatalogs"] }), [f] = s({ refetchQueries: ["GetVibeCatalogs"] }), p = c?.vibecontrolsCatalogs?.items ?? [], m = p.filter((e) => e.vibes?.some((e) => e.vibeId === t)), h = p.filter((e) => !e.vibes?.some((e) => e.vibeId === t)), _ = async (e) => {
1306
+ function et({ vibeId: t, tr: n, navigate: i }) {
1307
+ let [a, o] = D(!1), { data: c, loading: l, refetch: u } = r({ fetchPolicy: "cache-and-network" }), [d] = e({ refetchQueries: ["GetVibeCatalogs"] }), [f] = s({ refetchQueries: ["GetVibeCatalogs"] }), p = c?.vibecontrolsCatalogs?.items ?? [], m = p.filter((e) => e.vibes?.some((e) => e.vibeId === t)), h = p.filter((e) => !e.vibes?.some((e) => e.vibeId === t)), _ = async (e) => {
1255
1308
  await d({ variables: {
1256
1309
  catalogId: e,
1257
1310
  vibeId: t
@@ -1262,13 +1315,13 @@ function $e({ vibeId: t, tr: n, navigate: i }) {
1262
1315
  vibeId: t
1263
1316
  } }), await u();
1264
1317
  };
1265
- return l && p.length === 0 ? /* @__PURE__ */ N(b, { variant: "detail" }) : /* @__PURE__ */ P(Ge, { children: [
1318
+ return l && p.length === 0 ? /* @__PURE__ */ N(ne, { variant: "detail" }) : /* @__PURE__ */ P(M, { children: [
1266
1319
  /* @__PURE__ */ P("div", {
1267
1320
  className: "flex items-center justify-between",
1268
1321
  children: [/* @__PURE__ */ P("h3", {
1269
1322
  className: "font-semibold text-text-primary flex items-center gap-2",
1270
1323
  children: [
1271
- /* @__PURE__ */ N(O, { className: "w-5 h-5" }),
1324
+ /* @__PURE__ */ N(Ae, { className: "w-5 h-5" }),
1272
1325
  n("vibeDetails.catalogsTitle", "Catalogs"),
1273
1326
  /* @__PURE__ */ P("span", {
1274
1327
  className: "text-sm font-normal text-text-secondary",
@@ -1292,7 +1345,7 @@ function $e({ vibeId: t, tr: n, navigate: i }) {
1292
1345
  children: [/* @__PURE__ */ P("button", {
1293
1346
  onClick: () => i(`/catalogs/${e.id}`),
1294
1347
  className: "flex items-center gap-3 text-left hover:opacity-80 transition-opacity",
1295
- children: [/* @__PURE__ */ N(O, { className: "w-5 h-5 text-action-primary-bg flex-shrink-0" }), /* @__PURE__ */ P("div", { children: [/* @__PURE__ */ N("p", {
1348
+ children: [/* @__PURE__ */ N(Ae, { className: "w-5 h-5 text-action-primary-bg flex-shrink-0" }), /* @__PURE__ */ P("div", { children: [/* @__PURE__ */ N("p", {
1296
1349
  className: "font-medium text-text-primary text-sm",
1297
1350
  children: e.name
1298
1351
  }), /* @__PURE__ */ N("p", {
@@ -1303,17 +1356,17 @@ function $e({ vibeId: t, tr: n, navigate: i }) {
1303
1356
  onClick: () => ee(e.id),
1304
1357
  className: "p-1.5 text-text-muted hover:text-status-error-text hover:bg-status-error-bg rounded-md transition-colors",
1305
1358
  title: n("vibeDetails.removeFromCatalog", "Remove from catalog"),
1306
- children: /* @__PURE__ */ N(He, { className: "w-4 h-4" })
1359
+ children: /* @__PURE__ */ N(We, { className: "w-4 h-4" })
1307
1360
  })]
1308
1361
  }) }, e.id))
1309
1362
  }) : /* @__PURE__ */ N(g, {
1310
- icon: /* @__PURE__ */ N(O, { className: "w-8 h-8 text-text-secondary" }),
1363
+ icon: /* @__PURE__ */ N(Ae, { className: "w-8 h-8 text-text-secondary" }),
1311
1364
  title: n("vibeDetails.noCatalogs", "Not in any catalogs"),
1312
1365
  description: n("vibeDetails.noCatalogsDesc", "Add this vibe to catalogs to organize and track it alongside other components")
1313
1366
  }),
1314
1367
  a && /* @__PURE__ */ N("div", {
1315
1368
  className: "fixed inset-0 bg-bg-overlay flex items-center justify-center z-50 p-4",
1316
- children: /* @__PURE__ */ P(M.div, {
1369
+ children: /* @__PURE__ */ P(j.div, {
1317
1370
  initial: {
1318
1371
  opacity: 0,
1319
1372
  scale: .95
@@ -1361,9 +1414,9 @@ function $e({ vibeId: t, tr: n, navigate: i }) {
1361
1414
  })
1362
1415
  ] });
1363
1416
  }
1364
- function et({ vibeId: e, agentId: t, profile: n, tunnelUrl: r, apiKey: i, type: a, tr: o }) {
1365
- let s = a === "rest", c = "graphiql", l = `${r}/api/profiles/${encodeURIComponent(n)}/${c}/config/${e}`, [u, d] = E(""), [f, p] = E(!1), [m, h] = E(!1), [g, _] = E(!1), [ee, te] = E(0);
1366
- ge(() => {
1417
+ function tt({ vibeId: e, agentId: t, profile: n, tunnelUrl: r, apiKey: i, type: a, tr: o }) {
1418
+ let s = a === "rest", c = "graphiql", l = `${r}/api/profiles/${encodeURIComponent(n)}/${c}/config/${e}`, [u, d] = D(""), [f, p] = D(!1), [m, h] = D(!1), [g, _] = D(!1), [ee, y] = D(0);
1419
+ w(() => {
1367
1420
  let e = { "Content-Type": "application/json" };
1368
1421
  i && (e["x-agent-api-key"] = i), fetch(l, { headers: e }).then((e) => e.ok ? e.json() : null).then((e) => {
1369
1422
  if (e) {
@@ -1377,7 +1430,7 @@ function et({ vibeId: e, agentId: t, profile: n, tunnelUrl: r, apiKey: i, type:
1377
1430
  i,
1378
1431
  s
1379
1432
  ]);
1380
- let ne = async () => {
1433
+ let te = async () => {
1381
1434
  if (u.trim()) {
1382
1435
  h(!0), _(!1);
1383
1436
  try {
@@ -1388,30 +1441,30 @@ function et({ vibeId: e, agentId: t, profile: n, tunnelUrl: r, apiKey: i, type:
1388
1441
  method: "PUT",
1389
1442
  headers: e,
1390
1443
  body: JSON.stringify(t)
1391
- }), _(!0), te((e) => e + 1), setTimeout(() => _(!1), 3e3);
1444
+ }), _(!0), y((e) => e + 1), setTimeout(() => _(!1), 3e3);
1392
1445
  } catch {} finally {
1393
1446
  h(!1);
1394
1447
  }
1395
1448
  }
1396
- }, [y, b] = E(null), [re, x] = E(null), S = `/ui/${c}`;
1397
- ge(() => {
1449
+ }, [b, ne] = D(null), [re, ie] = D(null), x = `/ui/${c}`;
1450
+ w(() => {
1398
1451
  if (!t) return;
1399
1452
  let e = !1, r = null, i = (a) => {
1400
- e || (b(a), r = w(t, n, S, a, i, (e) => x(e.message)));
1453
+ e || (ne(a), r = C(t, n, x, a, i, (e) => ie(e.message)));
1401
1454
  };
1402
- return C(t, n, S).then((a) => {
1403
- e || (b(a), r = w(t, n, S, a, i, (e) => x(e.message)));
1455
+ return S(t, n, x).then((a) => {
1456
+ e || (ne(a), r = C(t, n, x, a, i, (e) => ie(e.message)));
1404
1457
  }).catch((t) => {
1405
- e || x(t instanceof Error ? t.message : String(t));
1458
+ e || ie(t instanceof Error ? t.message : String(t));
1406
1459
  }), () => {
1407
1460
  e = !0, r?.cancel();
1408
1461
  };
1409
1462
  }, [
1410
1463
  t,
1411
1464
  n,
1412
- S
1465
+ x
1413
1466
  ]);
1414
- let ae = `${r}/ui/${c}?vibeId=${e}`, oe = y ? ie(ae, y.token) : ae;
1467
+ let oe = `${r}/ui/${c}?vibeId=${e}`, se = b ? ae(oe, b.token) : oe;
1415
1468
  return /* @__PURE__ */ P("div", {
1416
1469
  className: "space-y-4",
1417
1470
  children: [/* @__PURE__ */ N(v, { children: /* @__PURE__ */ P("div", {
@@ -1419,7 +1472,7 @@ function et({ vibeId: e, agentId: t, profile: n, tunnelUrl: r, apiKey: i, type:
1419
1472
  children: [
1420
1473
  /* @__PURE__ */ P("div", {
1421
1474
  className: "flex items-center gap-2 mb-2",
1422
- children: [N(s ? ke : Ne, { className: "w-5 h-5 text-text-secondary" }), /* @__PURE__ */ N("h3", {
1475
+ children: [N(s ? Oe : Pe, { className: "w-5 h-5 text-text-secondary" }), /* @__PURE__ */ N("h3", {
1423
1476
  className: "font-semibold text-text-primary",
1424
1477
  children: s ? o("vibeDetails.restPlaygroundTitle", "REST API Playground") : o("vibeDetails.graphqlPlaygroundTitle", "GraphQL Playground")
1425
1478
  })]
@@ -1432,12 +1485,12 @@ function et({ vibeId: e, agentId: t, profile: n, tunnelUrl: r, apiKey: i, type:
1432
1485
  onChange: (e) => d(e.target.value),
1433
1486
  placeholder: s ? o("vibeDetails.enterSwaggerUrl", "Enter OpenAPI/Swagger URL (e.g. https://petstore3.swagger.io/api/v3/openapi.json)") : o("vibeDetails.enterGraphqlUrl", "Enter GraphQL endpoint URL (e.g. https://countries.trevorblades.com/graphql)"),
1434
1487
  className: "flex-1 px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-primary placeholder:text-text-placeholder text-sm",
1435
- onKeyDown: (e) => e.key === "Enter" && ne()
1488
+ onKeyDown: (e) => e.key === "Enter" && te()
1436
1489
  }), /* @__PURE__ */ P("button", {
1437
- onClick: ne,
1490
+ onClick: te,
1438
1491
  disabled: m || !u.trim(),
1439
1492
  className: "flex items-center gap-2 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 text-sm whitespace-nowrap",
1440
- children: [m ? /* @__PURE__ */ N(Me, { className: "w-4 h-4 animate-spin" }) : N(g ? Se : we, { className: "w-4 h-4" }), m ? o("common.saving", "Saving...") : g ? o("common.saved", "Saved!") : o("vibeDetails.loadApi", "Load API")]
1493
+ children: [m ? /* @__PURE__ */ N(Me, { className: "w-4 h-4 animate-spin" }) : N(g ? xe : Ce, { className: "w-4 h-4" }), m ? o("common.saving", "Saving...") : g ? o("common.saved", "Saved!") : o("vibeDetails.loadApi", "Load API")]
1441
1494
  })]
1442
1495
  }),
1443
1496
  !f && /* @__PURE__ */ N("p", {
@@ -1445,11 +1498,11 @@ function et({ vibeId: e, agentId: t, profile: n, tunnelUrl: r, apiKey: i, type:
1445
1498
  children: o("vibeDetails.loadingConfig", "Loading saved configuration...")
1446
1499
  })
1447
1500
  ]
1448
- }) }), t && !y ? /* @__PURE__ */ N("div", {
1501
+ }) }), t && !b ? /* @__PURE__ */ N("div", {
1449
1502
  className: "p-8 text-center text-sm text-text-secondary rounded-md border border-border-default bg-bg-sunken",
1450
1503
  children: re ? o("vibeDetails.iframeTokenError", `Iframe token error: ${re}`) : o("vibeDetails.mintingIframeToken", "Authorizing iframe…")
1451
1504
  }) : /* @__PURE__ */ N("iframe", {
1452
- src: oe,
1505
+ src: se,
1453
1506
  title: s ? "REST API Playground" : "GraphQL Playground",
1454
1507
  className: "w-full rounded-md border border-border-default bg-bg-sunken",
1455
1508
  style: { height: "700px" },