@burdenoff/microfe-vibecontrols 2026.602.7 → 2026.602.9

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.
@@ -17,13 +17,13 @@ import { ConnectionLogPanel as Se } from "../components/agents/ConnectionLogPane
17
17
  import { SharedTerminalPanel as Ce } from "../components/sessions/SharedTerminalPanel.js";
18
18
  import { useCallback as u, useEffect as d, useRef as f, useState as p } from "react";
19
19
  import { useI18n as we } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
20
- import { AlertCircle as Te, ArrowLeft as m, Check as Ee, ChevronDown as De, ChevronUp as Oe, Clock as ke, Code as Ae, ExternalLink as je, Folder as Me, Hash as Ne, Loader2 as h, Maximize2 as Pe, Minimize2 as Fe, Pencil as Ie, Play as Le, RefreshCw as Re, RotateCcw as ze, Server as Be, Square as Ve, Tag as He, Terminal as g, Variable as Ue, X as We, Zap as Ge } from "lucide-react";
21
- import { useParams as Ke } from "react-router-dom";
22
- import { usePermissions as qe } from "@burdenoff/fe-libs/shared/providers/shell";
23
- import { Fragment as _, jsx as v, jsxs as y } from "react/jsx-runtime";
24
- import { MotionItem as b, MotionList as Je, MotionPage as x } from "@burdenoff/fe-libs/shared/motion";
20
+ import { AlertCircle as m, ArrowLeft as h, Check as Te, ChevronDown as Ee, ChevronUp as De, Clock as Oe, Code as ke, ExternalLink as Ae, Folder as je, Hash as Me, Loader2 as g, Maximize2 as Ne, Minimize2 as Pe, Pencil as Fe, Play as Ie, RefreshCw as Le, RotateCcw as Re, Server as ze, Square as Be, Tag as Ve, Terminal as _, Variable as He, X as Ue, Zap as We } from "lucide-react";
21
+ import { useParams as Ge } from "react-router-dom";
22
+ import { usePermissions as Ke } from "@burdenoff/fe-libs/shared/providers/shell";
23
+ import { Fragment as v, jsx as y, jsxs as b } from "react/jsx-runtime";
24
+ import { MotionItem as x, MotionList as qe, MotionPage as S } from "@burdenoff/fe-libs/shared/motion";
25
25
  //#region src/pages/SessionDetailsPage.tsx
26
- function Ye(e) {
26
+ function Je(e) {
27
27
  let t = e.ttydUrl;
28
28
  if (!t) return null;
29
29
  try {
@@ -33,106 +33,106 @@ function Ye(e) {
33
33
  return t;
34
34
  }
35
35
  }
36
- var Xe = (e) => e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
37
- function Ze(e) {
36
+ var Ye = (e) => e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
37
+ function Xe(e) {
38
38
  if (!e) return "Never";
39
39
  let t = Date.now() - new Date(e).getTime();
40
40
  return t < 6e4 ? "Just now" : t < 36e5 ? `${Math.floor(t / 6e4)}m ago` : t < 864e5 ? `${Math.floor(t / 36e5)}h ago` : new Date(e).toLocaleDateString();
41
41
  }
42
- function Qe() {
43
- let { t: Qe } = we(), S = u((e, t, n) => {
44
- let r = Qe(e, n);
45
- return r === e ? n ? Object.entries(n).reduce((e, [t, n]) => e.replace(RegExp(`\\{\\{${Xe(t)}\\}\\}`, "g"), () => String(n)), t) : t : r;
46
- }, [Qe]), { id: C } = Ke(), { basePath: $e, currentUser: et } = ue(), tt = $e || "", w = et?.id ?? "", T = de(), { hasPermission: nt, isLoading: rt, permissions: it } = qe(), [at] = ie({ refetchQueries: ["GetSession"] }), [ot] = oe({ refetchQueries: ["GetSession"] }), [st] = te({ refetchQueries: ["GetSession"] }), [ct] = ae({ refetchQueries: ["GetSession"] }), [lt] = ne({ refetchQueries: ["GetSession"] }), [ut] = se({ refetchQueries: ["GetSession"] }), [dt, ft] = p(!1), [pt, mt] = p(""), [ht, gt] = p(""), [_t, vt] = p(!1), yt = () => {
47
- mt(O?.command || ""), gt(O?.workingDirectory || ""), ft(!0);
48
- }, bt = async () => {
49
- if (O?.id) {
50
- vt(!0);
42
+ function Ze() {
43
+ let { t: Ze } = we(), C = u((e, t, n) => {
44
+ let r = Ze(e, n);
45
+ return r === e ? n ? Object.entries(n).reduce((e, [t, n]) => e.replace(RegExp(`\\{\\{${Ye(t)}\\}\\}`, "g"), () => String(n)), t) : t : r;
46
+ }, [Ze]), { id: w } = Ge(), { basePath: Qe, currentUser: $e } = ue(), et = Qe || "", T = $e?.id ?? "", E = de(), { hasPermission: tt, isLoading: nt, permissions: rt } = Ke(), [it] = ie({ refetchQueries: ["GetSession"] }), [at] = oe({ refetchQueries: ["GetSession"] }), [ot] = te({ refetchQueries: ["GetSession"] }), [st] = ae({ refetchQueries: ["GetSession"] }), [ct] = ne({ refetchQueries: ["GetSession"] }), [lt] = se({ refetchQueries: ["GetSession"] }), [ut, dt] = p(!1), [ft, pt] = p(""), [mt, ht] = p(""), [gt, _t] = p(!1), vt = () => {
47
+ pt(k?.command || ""), ht(k?.workingDirectory || ""), dt(!0);
48
+ }, yt = async () => {
49
+ if (k?.id) {
50
+ _t(!0);
51
51
  try {
52
- await ut({ variables: {
53
- id: O.id,
52
+ await lt({ variables: {
53
+ id: k.id,
54
54
  input: {
55
- command: pt || null,
56
- workingDirectory: ht || null
55
+ command: ft || null,
56
+ workingDirectory: mt || null
57
57
  }
58
- } }), ft(!1);
58
+ } }), dt(!1);
59
59
  } finally {
60
- vt(!1);
60
+ _t(!1);
61
61
  }
62
62
  }
63
- }, { data: xt, loading: E, error: St, refetch: D } = n({
64
- variables: { id: C || "" },
65
- skip: !C,
63
+ }, { data: bt, loading: D, error: xt, refetch: O } = n({
64
+ variables: { id: w || "" },
65
+ skip: !w,
66
66
  fetchPolicy: "cache-and-network"
67
- }), O = xt?.session, k = O?.agent || null, A = O?.vibe || null;
67
+ }), k = bt?.session, A = k?.agent || null, j = k?.vibe || null;
68
68
  d(() => {
69
- O && fe.setState({
70
- activeAgentId: k?.id ?? null,
71
- selectedAgentId: k?.id ?? null,
72
- activeVibeId: A?.id ?? null,
73
- selectedVibeId: A?.id ?? null,
74
- activeSessionId: O.id,
75
- selectedSessionId: O.id
69
+ k && fe.setState({
70
+ activeAgentId: A?.id ?? null,
71
+ selectedAgentId: A?.id ?? null,
72
+ activeVibeId: j?.id ?? null,
73
+ selectedVibeId: j?.id ?? null,
74
+ activeSessionId: k.id,
75
+ selectedSessionId: k.id
76
76
  });
77
77
  }, [
78
- O?.id,
79
78
  k?.id,
80
- A?.id
79
+ A?.id,
80
+ j?.id
81
81
  ]);
82
- let j = O?.context?.userId ?? null, Ct = !!j && !!w && j === w, wt = O?.collaborators ?? [], M = wt.find((e) => e.userId === w) ?? null, N = !!O && !Ct && !!j, [Tt] = r(), [Et, { loading: Dt }] = ee(), [Ot, { loading: kt }] = a(), P = f(null);
82
+ let M = k?.context?.userId ?? null, St = !!M && !!T && M === T, Ct = k?.collaborators ?? [], N = Ct.find((e) => e.userId === T) ?? null, P = !!k && !St && (!!M || !!k?.myGrantRole || !!N), [wt] = r(), [Tt, { loading: Et }] = ee(), [Dt, { loading: Ot }] = a(), F = f(null);
83
83
  d(() => {
84
- let e = O?.id;
85
- e && (!N || M || P.current !== e && (P.current = e, Tt({ variables: { input: { sessionId: e } } }).then(() => {
86
- D();
84
+ let e = k?.id;
85
+ e && (!P || N || F.current !== e && (F.current = e, wt({ variables: { input: { sessionId: e } } }).then(() => {
86
+ O();
87
87
  }).catch((e) => {
88
- P.current = null, console.warn("[sessionDetails] joinSharedSession(sessionId) failed", e);
88
+ F.current = null, console.warn("[sessionDetails] joinSharedSession(sessionId) failed", e);
89
89
  })));
90
90
  }, [
91
- O?.id,
91
+ k?.id,
92
+ P,
92
93
  N,
93
- M,
94
- Tt,
95
- D
94
+ wt,
95
+ O
96
96
  ]);
97
- let { data: At } = e({
98
- variables: { sessionId: O?.id ?? "" },
99
- skip: !O?.id || !N
100
- }), { data: jt } = t({
101
- variables: { sessionId: O?.id ?? "" },
102
- skip: !O?.id || !N
103
- }), { data: Mt } = re({
104
- variables: { sessionId: O?.id ?? "" },
105
- skip: !O?.id || !N
97
+ let { data: kt } = e({
98
+ variables: { sessionId: k?.id ?? "" },
99
+ skip: !k?.id || !P
100
+ }), { data: At } = t({
101
+ variables: { sessionId: k?.id ?? "" },
102
+ skip: !k?.id || !P
103
+ }), { data: jt } = re({
104
+ variables: { sessionId: k?.id ?? "" },
105
+ skip: !k?.id || !P
106
106
  });
107
107
  d(() => {
108
- (At || jt || Mt) && D();
108
+ (kt || At || jt) && O();
109
109
  }, [
110
+ kt,
110
111
  At,
111
112
  jt,
112
- Mt,
113
- D
113
+ O
114
114
  ]);
115
- let Nt = M?.role === ge.Viewer ? _e.View : _e.Interact, Pt = u(async () => {
116
- if (O?.id) try {
117
- await Et({ variables: { sessionId: O.id } }), await D();
115
+ let Mt = N?.role === ge.Viewer ? _e.View : _e.Interact, Nt = u(async () => {
116
+ if (k?.id) try {
117
+ await Tt({ variables: { sessionId: k.id } }), await O();
118
118
  } catch (e) {
119
119
  console.error("Failed to request control:", e);
120
120
  }
121
121
  }, [
122
- O?.id,
123
- Et,
124
- D
125
- ]), Ft = u(async () => {
126
- if (O?.id) try {
127
- await Ot({ variables: { sessionId: O.id } }), await D();
122
+ k?.id,
123
+ Tt,
124
+ O
125
+ ]), Pt = u(async () => {
126
+ if (k?.id) try {
127
+ await Dt({ variables: { sessionId: k.id } }), await O();
128
128
  } catch (e) {
129
129
  console.error("Failed to release control:", e);
130
130
  }
131
131
  }, [
132
- O?.id,
133
- Ot,
134
- D
135
- ]), [F, I] = p(!0), [It, Lt] = p(!1), [L, Rt] = p(!1), [R, z] = p(null), [zt, B] = p(!1), [Bt, V] = p(!1), [H, U] = p(null), W = f(null), Vt = f(null), Ht = f(!1), G = f(!1), K = O ? Ye(O) : null, [Ut] = i(), [Wt, q] = p(null), [J, Y] = p(null), [Gt, Kt] = p(!1), [qt, Jt] = p(0), Yt = u(() => Jt((e) => e + 1), []), Xt = k?.id ?? null, Zt = O?.id ?? null;
132
+ k?.id,
133
+ Dt,
134
+ O
135
+ ]), [I, L] = p(!0), [Ft, It] = p(!1), [R, Lt] = p(!1), [Rt, z] = p(null), [zt, B] = p(!1), [Bt, V] = p(!1), [H, U] = p(null), W = f(null), Vt = f(null), Ht = f(!1), G = f(!1), K = k ? Je(k) : null, [Ut] = i(), [Wt, q] = p(null), [J, Y] = p(null), [Gt, Kt] = p(!1), [qt, Jt] = p(0), Yt = u(() => Jt((e) => e + 1), []), Xt = A?.id ?? null, Zt = k?.id ?? null;
136
136
  d(() => {
137
137
  let e = !1;
138
138
  if (!K || !Xt || !Zt) {
@@ -164,10 +164,10 @@ function Qe() {
164
164
  Ut
165
165
  ]);
166
166
  let X = K && Wt ? `${K}#vt=${encodeURIComponent(Wt)}` : null, Z = () => {
167
- T("/sessions");
167
+ E("/sessions");
168
168
  }, Qt = async () => {
169
- if (O?.id) try {
170
- await at({ variables: { id: O.id } });
169
+ if (k?.id) try {
170
+ await it({ variables: { id: k.id } });
171
171
  } catch (e) {
172
172
  if (o(e)) {
173
173
  s(), B(!0);
@@ -176,14 +176,14 @@ function Qe() {
176
176
  console.error("Failed to start session:", e);
177
177
  }
178
178
  }, $t = async () => {
179
- if (O?.id) try {
180
- await ot({ variables: { id: O.id } });
179
+ if (k?.id) try {
180
+ await at({ variables: { id: k.id } });
181
181
  } catch (e) {
182
182
  console.error("Failed to stop session:", e);
183
183
  }
184
184
  }, en = async () => {
185
- if (O?.id) try {
186
- await st({ variables: { id: O.id } });
185
+ if (k?.id) try {
186
+ await ot({ variables: { id: k.id } });
187
187
  } catch (e) {
188
188
  if (o(e)) {
189
189
  s(), B(!0);
@@ -199,13 +199,13 @@ function Qe() {
199
199
  });
200
200
  });
201
201
  }, []), $ = u(async (e, t, n) => {
202
- let r = O?.id;
202
+ let r = k?.id;
203
203
  if (!r) return;
204
- Rt(!0), z(null);
204
+ Lt(!0), z(null);
205
205
  let i = !1;
206
206
  try {
207
207
  let a = await e(r);
208
- a.error && o(a.error) ? (s(), B(!0)) : a.error ? z(a.error.message) : !a.data || !a.data[t] ? z(n) : (I(!0), i = !0);
208
+ a.error && o(a.error) ? (s(), B(!0)) : a.error ? z(a.error.message) : !a.data || !a.data[t] ? z(n) : (L(!0), i = !0);
209
209
  } catch (e) {
210
210
  if (o(e)) {
211
211
  s(), B(!0);
@@ -213,20 +213,20 @@ function Qe() {
213
213
  }
214
214
  z(e instanceof Error ? e.message : n);
215
215
  } finally {
216
- Rt(!1), i && Q();
216
+ Lt(!1), i && Q();
217
217
  }
218
- }, [O?.id, Q]), tn = u(() => $((e) => ct({ variables: { id: e } }), "startSessionTerminal", "Failed to start terminal"), [ct, $]), nn = u(() => $((e) => lt({ variables: { id: e } }), "restartSessionTerminal", "Failed to restart terminal"), [lt, $]);
218
+ }, [k?.id, Q]), tn = u(() => $((e) => st({ variables: { id: e } }), "startSessionTerminal", "Failed to start terminal"), [st, $]), nn = u(() => $((e) => ct({ variables: { id: e } }), "restartSessionTerminal", "Failed to restart terminal"), [ct, $]);
219
219
  d(() => {
220
220
  if (!Ht.current) {
221
- Ht.current = !0, G.current = F;
221
+ Ht.current = !0, G.current = I;
222
222
  return;
223
223
  }
224
- let e = F && !G.current;
225
- G.current = F, e && Q();
226
- }, [F, Q]);
227
- let rn = O?.id ?? null, an = f(null);
224
+ let e = I && !G.current;
225
+ G.current = I, e && Q();
226
+ }, [I, Q]);
227
+ let rn = k?.id ?? null, an = f(null);
228
228
  d(() => {
229
- let e = O?.status ?? null, t = O?.exitCode ?? null;
229
+ let e = k?.status ?? null, t = k?.exitCode ?? null;
230
230
  if (rn !== an.current) {
231
231
  an.current = rn, W.current = e, U(null);
232
232
  return;
@@ -236,327 +236,327 @@ function Qe() {
236
236
  return;
237
237
  }
238
238
  let n = W.current;
239
- e === "STOPPED" && (n === "RUNNING" || n === "STARTING") && F ? U({ exitCode: t }) : e === "STOPPED" && F && t !== null && U((e) => e && e.exitCode === null ? { exitCode: t } : e), W.current = e;
239
+ e === "STOPPED" && (n === "RUNNING" || n === "STARTING") && I ? U({ exitCode: t }) : e === "STOPPED" && I && t !== null && U((e) => e && e.exitCode === null ? { exitCode: t } : e), W.current = e;
240
240
  }, [
241
241
  rn,
242
- O?.status,
243
- O?.exitCode,
244
- F
242
+ k?.status,
243
+ k?.exitCode,
244
+ I
245
245
  ]);
246
246
  let on = u(() => {
247
247
  X && window.open(X, "_blank");
248
248
  }, [X]);
249
- if (rt) return /* @__PURE__ */ v("div", {
249
+ if (nt) return /* @__PURE__ */ y("div", {
250
250
  className: "flex items-center justify-center min-h-[400px]",
251
- children: /* @__PURE__ */ v("p", {
251
+ children: /* @__PURE__ */ y("p", {
252
252
  className: "text-text-secondary",
253
- children: S("sessionDetails.loadingPermissions", "Loading permissions...")
253
+ children: C("sessionDetails.loadingPermissions", "Loading permissions...")
254
254
  })
255
255
  });
256
- if (it && (it.permissionStrings?.length ?? 0) > 0 && !nt(be.SESSION_READ)) return /* @__PURE__ */ v("div", {
256
+ if (rt && (rt.permissionStrings?.length ?? 0) > 0 && !tt(be.SESSION_READ)) return /* @__PURE__ */ y("div", {
257
257
  className: "flex items-center justify-center min-h-[400px]",
258
- children: /* @__PURE__ */ y("div", {
258
+ children: /* @__PURE__ */ b("div", {
259
259
  className: "text-center space-y-2",
260
- children: [/* @__PURE__ */ v("h2", {
260
+ children: [/* @__PURE__ */ y("h2", {
261
261
  className: "text-lg font-semibold text-foreground",
262
- children: S("sessionDetails.accessDenied", "Access Denied")
263
- }), /* @__PURE__ */ v("p", {
262
+ children: C("sessionDetails.accessDenied", "Access Denied")
263
+ }), /* @__PURE__ */ y("p", {
264
264
  className: "text-sm text-text-secondary",
265
- children: S("sessionDetails.accessDeniedDesc", "You don't have permission to access this page.")
265
+ children: C("sessionDetails.accessDeniedDesc", "You don't have permission to access this page.")
266
266
  })]
267
267
  })
268
268
  });
269
269
  let sn = () => {
270
- k && T(`/agents/${k.id}`);
270
+ A && E(`/agents/${A.id}`);
271
271
  }, cn = () => {
272
- A && T(`/vibes/${A.id}`);
272
+ j && E(`/vibes/${j.id}`);
273
273
  };
274
- if (E && !O) return /* @__PURE__ */ y(x, {
274
+ if (D && !k) return /* @__PURE__ */ b(S, {
275
275
  className: "space-y-6 p-4 sm:p-6 bg-bg-surface min-h-screen",
276
- children: [/* @__PURE__ */ y("button", {
276
+ children: [/* @__PURE__ */ b("button", {
277
277
  type: "button",
278
278
  onClick: Z,
279
279
  className: "flex items-center gap-2 text-text-secondary hover:text-text-primary transition-colors",
280
- children: [/* @__PURE__ */ v(m, { className: "size-4" }), S("sessionDetails.backToSessions", "Back to Sessions")]
281
- }), /* @__PURE__ */ v(xe, { variant: "detail" })]
280
+ children: [/* @__PURE__ */ y(h, { className: "size-4" }), C("sessionDetails.backToSessions", "Back to Sessions")]
281
+ }), /* @__PURE__ */ y(xe, { variant: "detail" })]
282
282
  });
283
- if (St && !O) return /* @__PURE__ */ y(x, {
283
+ if (xt && !k) return /* @__PURE__ */ b(S, {
284
284
  className: "space-y-6 p-4 sm:p-6 bg-bg-surface min-h-screen",
285
- children: [/* @__PURE__ */ y("button", {
285
+ children: [/* @__PURE__ */ b("button", {
286
286
  type: "button",
287
287
  onClick: Z,
288
288
  className: "flex items-center gap-2 text-text-secondary hover:text-text-primary transition-colors",
289
- children: [/* @__PURE__ */ v(m, { className: "size-4" }), "Back to Sessions"]
290
- }), /* @__PURE__ */ v(me, {
291
- title: S("sessionDetails.failedLoad", "Failed to load session"),
292
- message: St.message,
293
- onRetry: () => D()
289
+ children: [/* @__PURE__ */ y(h, { className: "size-4" }), "Back to Sessions"]
290
+ }), /* @__PURE__ */ y(me, {
291
+ title: C("sessionDetails.failedLoad", "Failed to load session"),
292
+ message: xt.message,
293
+ onRetry: () => O()
294
294
  })]
295
295
  });
296
- if (!O) return /* @__PURE__ */ y(x, {
296
+ if (!k) return /* @__PURE__ */ b(S, {
297
297
  className: "space-y-6 p-4 sm:p-6 bg-bg-surface min-h-screen",
298
- children: [/* @__PURE__ */ y("button", {
298
+ children: [/* @__PURE__ */ b("button", {
299
299
  type: "button",
300
300
  onClick: Z,
301
301
  className: "flex items-center gap-2 text-text-secondary hover:text-text-primary transition-colors",
302
- children: [/* @__PURE__ */ v(m, { className: "size-4" }), "Back to Sessions"]
303
- }), /* @__PURE__ */ v(ye, {
304
- icon: /* @__PURE__ */ v(g, { className: "size-8 text-text-secondary" }),
305
- title: S("sessionDetails.notFound", "Session not found"),
306
- description: `${S("sessionDetails.notFoundDescPrefix", "No session with ID")} "${C}" ${S("sessionDetails.notFoundDescSuffix", "exists")}`,
307
- action: /* @__PURE__ */ v("button", {
302
+ children: [/* @__PURE__ */ y(h, { className: "size-4" }), "Back to Sessions"]
303
+ }), /* @__PURE__ */ y(ye, {
304
+ icon: /* @__PURE__ */ y(_, { className: "size-8 text-text-secondary" }),
305
+ title: C("sessionDetails.notFound", "Session not found"),
306
+ description: `${C("sessionDetails.notFoundDescPrefix", "No session with ID")} "${w}" ${C("sessionDetails.notFoundDescSuffix", "exists")}`,
307
+ action: /* @__PURE__ */ y("button", {
308
308
  type: "button",
309
309
  onClick: Z,
310
310
  className: "px-4 py-2 bg-action-primary-bg text-action-primary-text rounded-md hover:bg-action-primary-bg-hover transition-colors",
311
- children: S("sessionDetails.backToSessions", "Back to Sessions")
311
+ children: C("sessionDetails.backToSessions", "Back to Sessions")
312
312
  })
313
313
  })]
314
314
  });
315
- let ln = O.status === "RUNNING", un = It ? "h-[calc(100vh-200px)]" : "h-[280px] sm:h-[420px]";
316
- return /* @__PURE__ */ y(x, {
315
+ let ln = k.status === "RUNNING", un = Ft ? "h-[calc(100vh-200px)]" : "h-[280px] sm:h-[420px]";
316
+ return /* @__PURE__ */ b(S, {
317
317
  className: "flex flex-col bg-bg-surface min-h-screen",
318
318
  children: [
319
- /* @__PURE__ */ y("div", {
320
- className: `flex-1 overflow-y-auto space-y-6 p-4 sm:p-6 ${F && X ? "pb-2" : ""}`,
319
+ /* @__PURE__ */ b("div", {
320
+ className: `flex-1 overflow-y-auto space-y-6 p-4 sm:p-6 ${I && X ? "pb-2" : ""}`,
321
321
  children: [
322
- /* @__PURE__ */ y("button", {
322
+ /* @__PURE__ */ b("button", {
323
323
  type: "button",
324
324
  onClick: Z,
325
325
  className: "flex items-center gap-2 text-text-secondary hover:text-text-primary transition-colors",
326
- children: [/* @__PURE__ */ v(m, { className: "size-4" }), "Back to Sessions"]
326
+ children: [/* @__PURE__ */ y(h, { className: "size-4" }), "Back to Sessions"]
327
327
  }),
328
- /* @__PURE__ */ v(pe, {
329
- title: O.name,
330
- description: O.command || "No command specified",
328
+ /* @__PURE__ */ y(pe, {
329
+ title: k.name,
330
+ description: k.command || "No command specified",
331
331
  breadcrumb: [{
332
332
  label: "Sessions",
333
- path: tt ? `${tt}/sessions` : "/sessions"
334
- }, { label: O.name }],
335
- actions: /* @__PURE__ */ y("div", {
333
+ path: et ? `${et}/sessions` : "/sessions"
334
+ }, { label: k.name }],
335
+ actions: /* @__PURE__ */ b("div", {
336
336
  className: "flex items-center gap-2 flex-wrap",
337
337
  children: [
338
- /* @__PURE__ */ v("button", {
338
+ /* @__PURE__ */ y("button", {
339
339
  type: "button",
340
- onClick: () => D(),
341
- disabled: E,
340
+ onClick: () => O(),
341
+ disabled: D,
342
342
  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",
343
343
  title: "Refresh",
344
- children: /* @__PURE__ */ v(Re, { className: `size-4 ${E ? "animate-spin" : ""}` })
344
+ children: /* @__PURE__ */ y(Le, { className: `size-4 ${D ? "animate-spin" : ""}` })
345
345
  }),
346
- ln ? /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ y("button", {
346
+ ln ? /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ b("button", {
347
347
  type: "button",
348
348
  onClick: $t,
349
349
  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",
350
- children: [/* @__PURE__ */ v(Ve, { className: "size-4" }), S("sessionDetails.stopCommand", "Stop Command")]
351
- }), /* @__PURE__ */ y("button", {
350
+ children: [/* @__PURE__ */ y(Be, { className: "size-4" }), C("sessionDetails.stopCommand", "Stop Command")]
351
+ }), /* @__PURE__ */ b("button", {
352
352
  type: "button",
353
353
  onClick: en,
354
354
  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",
355
- children: [/* @__PURE__ */ v(ze, { className: "size-4" }), S("sessionDetails.restartCommand", "Restart Command")]
356
- })] }) : /* @__PURE__ */ y("button", {
355
+ children: [/* @__PURE__ */ y(Re, { className: "size-4" }), C("sessionDetails.restartCommand", "Restart Command")]
356
+ })] }) : /* @__PURE__ */ b("button", {
357
357
  type: "button",
358
358
  onClick: Qt,
359
359
  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",
360
- children: [/* @__PURE__ */ v(Le, { className: "size-4" }), S("sessionDetails.runCommand", "Run Command")]
360
+ children: [/* @__PURE__ */ y(Ie, { className: "size-4" }), C("sessionDetails.runCommand", "Run Command")]
361
361
  }),
362
- X ? /* @__PURE__ */ y(_, { children: [
363
- /* @__PURE__ */ y("button", {
362
+ X ? /* @__PURE__ */ b(v, { children: [
363
+ /* @__PURE__ */ b("button", {
364
364
  type: "button",
365
- onClick: () => I((e) => !e),
366
- className: `flex items-center gap-2 px-3 py-2 rounded-md transition-colors ${F ? "bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bg-hover" : "bg-bg-sunken text-text-primary hover:bg-bg-sunken/80"}`,
367
- title: F ? S("sessionDetails.hideTerminal", "Hide terminal") : S("sessionDetails.showTerminal", "Show terminal"),
368
- children: [/* @__PURE__ */ v(g, { className: "size-4" }), S("sessionDetails.terminal", "Terminal")]
365
+ onClick: () => L((e) => !e),
366
+ className: `flex items-center gap-2 px-3 py-2 rounded-md transition-colors ${I ? "bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bg-hover" : "bg-bg-sunken text-text-primary hover:bg-bg-sunken/80"}`,
367
+ title: I ? C("sessionDetails.hideTerminal", "Hide terminal") : C("sessionDetails.showTerminal", "Show terminal"),
368
+ children: [/* @__PURE__ */ y(_, { className: "size-4" }), C("sessionDetails.terminal", "Terminal")]
369
369
  }),
370
- /* @__PURE__ */ y("button", {
370
+ /* @__PURE__ */ b("button", {
371
371
  type: "button",
372
372
  onClick: () => V(!0),
373
- disabled: L,
373
+ disabled: R,
374
374
  className: "flex items-center gap-1.5 p-2 bg-bg-sunken text-text-secondary rounded-md hover:text-text-primary hover:bg-bg-sunken/80 transition-colors disabled:opacity-50",
375
- title: S("sessionDetails.restartTerminalTitle", "Restart terminal — kills the tmux session and re-runs the command"),
376
- children: [L ? /* @__PURE__ */ v(h, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ v(ze, { className: "size-3.5" }), /* @__PURE__ */ v("span", {
375
+ title: C("sessionDetails.restartTerminalTitle", "Restart terminal — kills the tmux session and re-runs the command"),
376
+ children: [R ? /* @__PURE__ */ y(g, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ y(Re, { className: "size-3.5" }), /* @__PURE__ */ y("span", {
377
377
  className: "text-xs",
378
- children: S("sessionDetails.restartTerminalShort", "Restart")
378
+ children: C("sessionDetails.restartTerminalShort", "Restart")
379
379
  })]
380
380
  }),
381
- /* @__PURE__ */ v("button", {
381
+ /* @__PURE__ */ y("button", {
382
382
  type: "button",
383
383
  onClick: on,
384
384
  className: "flex items-center p-2 bg-bg-sunken text-text-secondary rounded-md hover:text-text-primary hover:bg-bg-sunken/80 transition-colors",
385
- title: S("sessionDetails.openInNewTab", "Open terminal in new tab"),
386
- children: /* @__PURE__ */ v(je, { className: "size-4" })
385
+ title: C("sessionDetails.openInNewTab", "Open terminal in new tab"),
386
+ children: /* @__PURE__ */ y(Ae, { className: "size-4" })
387
387
  })
388
- ] }) : /* @__PURE__ */ y("button", {
388
+ ] }) : /* @__PURE__ */ b("button", {
389
389
  type: "button",
390
390
  onClick: tn,
391
- disabled: L || !k,
391
+ disabled: R || !A,
392
392
  className: "flex items-center gap-2 px-3 py-2 bg-action-primary-bg text-action-primary-text rounded-md hover:bg-action-primary-bg-hover transition-colors disabled:opacity-50",
393
- title: k ? k.tunnelUrl ? S("sessionDetails.openTerminal", "Open terminal") : S("sessionDetails.agentNoTunnelUrl", "Agent has no tunnel URL configured") : S("sessionDetails.noAgentAssigned", "No agent assigned"),
394
- children: [L ? /* @__PURE__ */ v(h, { className: "size-4 animate-spin" }) : /* @__PURE__ */ v(g, { className: "size-4" }), S("sessionDetails.openTerminal", "Open Terminal")]
393
+ title: A ? A.tunnelUrl ? C("sessionDetails.openTerminal", "Open terminal") : C("sessionDetails.agentNoTunnelUrl", "Agent has no tunnel URL configured") : C("sessionDetails.noAgentAssigned", "No agent assigned"),
394
+ children: [R ? /* @__PURE__ */ y(g, { className: "size-4 animate-spin" }) : /* @__PURE__ */ y(_, { className: "size-4" }), C("sessionDetails.openTerminal", "Open Terminal")]
395
395
  })
396
396
  ]
397
397
  })
398
398
  }),
399
- /* @__PURE__ */ y(Je, {
399
+ /* @__PURE__ */ b(qe, {
400
400
  stagger: .04,
401
401
  className: "grid grid-cols-2 sm:grid-cols-4 gap-4",
402
402
  children: [
403
- /* @__PURE__ */ v(b, { children: /* @__PURE__ */ v(l, {
403
+ /* @__PURE__ */ y(x, { children: /* @__PURE__ */ y(l, {
404
404
  className: "p-4",
405
- children: /* @__PURE__ */ y("div", {
405
+ children: /* @__PURE__ */ b("div", {
406
406
  className: "flex items-center gap-3",
407
- children: [/* @__PURE__ */ v("div", {
407
+ children: [/* @__PURE__ */ y("div", {
408
408
  className: "size-10 rounded-lg bg-bg-sunken flex items-center justify-center",
409
- children: /* @__PURE__ */ v(g, { className: "size-5 text-text-secondary" })
410
- }), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
409
+ children: /* @__PURE__ */ y(_, { className: "size-5 text-text-secondary" })
410
+ }), /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
411
411
  className: "text-sm text-text-secondary",
412
- children: S("sessionDetails.statusLabel", "Status")
413
- }), /* @__PURE__ */ v(c, {
414
- status: O.status,
412
+ children: C("sessionDetails.statusLabel", "Status")
413
+ }), /* @__PURE__ */ y(c, {
414
+ status: k.status,
415
415
  size: "md"
416
416
  })] })]
417
417
  })
418
418
  }) }),
419
- /* @__PURE__ */ v(b, { children: /* @__PURE__ */ v(l, {
419
+ /* @__PURE__ */ y(x, { children: /* @__PURE__ */ y(l, {
420
420
  className: "p-4",
421
- children: /* @__PURE__ */ y("div", {
421
+ children: /* @__PURE__ */ b("div", {
422
422
  className: "flex items-center gap-3",
423
- children: [/* @__PURE__ */ v("div", {
423
+ children: [/* @__PURE__ */ y("div", {
424
424
  className: "size-10 rounded-lg bg-bg-sunken flex items-center justify-center",
425
- children: /* @__PURE__ */ v(Ae, { className: "size-5 text-text-secondary" })
426
- }), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
425
+ children: /* @__PURE__ */ y(ke, { className: "size-5 text-text-secondary" })
426
+ }), /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
427
427
  className: "text-sm text-text-secondary",
428
- children: S("sessionDetails.typeLabel", "Type")
429
- }), /* @__PURE__ */ v("p", {
428
+ children: C("sessionDetails.typeLabel", "Type")
429
+ }), /* @__PURE__ */ y("p", {
430
430
  className: "font-semibold text-text-primary",
431
- children: O.type
431
+ children: k.type
432
432
  })] })]
433
433
  })
434
434
  }) }),
435
- /* @__PURE__ */ v(b, { children: /* @__PURE__ */ v(l, {
435
+ /* @__PURE__ */ y(x, { children: /* @__PURE__ */ y(l, {
436
436
  className: "p-4",
437
- children: /* @__PURE__ */ y("div", {
437
+ children: /* @__PURE__ */ b("div", {
438
438
  className: "flex items-center gap-3",
439
- children: [/* @__PURE__ */ v("div", {
439
+ children: [/* @__PURE__ */ y("div", {
440
440
  className: "size-10 rounded-lg bg-bg-sunken flex items-center justify-center",
441
- children: /* @__PURE__ */ v(Ne, { className: "size-5 text-text-secondary" })
442
- }), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
441
+ children: /* @__PURE__ */ y(Me, { className: "size-5 text-text-secondary" })
442
+ }), /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
443
443
  className: "text-sm text-text-secondary",
444
- children: S("sessionDetails.pidLabel", "PID")
445
- }), /* @__PURE__ */ v("p", {
444
+ children: C("sessionDetails.pidLabel", "PID")
445
+ }), /* @__PURE__ */ y("p", {
446
446
  className: "font-semibold text-text-primary",
447
- children: O.pid || "N/A"
447
+ children: k.pid || "N/A"
448
448
  })] })]
449
449
  })
450
450
  }) }),
451
- /* @__PURE__ */ v(b, { children: /* @__PURE__ */ v(l, {
451
+ /* @__PURE__ */ y(x, { children: /* @__PURE__ */ y(l, {
452
452
  className: "p-4",
453
- children: /* @__PURE__ */ y("div", {
453
+ children: /* @__PURE__ */ b("div", {
454
454
  className: "flex items-center gap-3",
455
- children: [/* @__PURE__ */ v("div", {
455
+ children: [/* @__PURE__ */ y("div", {
456
456
  className: "size-10 rounded-lg bg-bg-sunken flex items-center justify-center",
457
- children: /* @__PURE__ */ v(Be, { className: "size-5 text-text-secondary" })
458
- }), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
457
+ children: /* @__PURE__ */ y(ze, { className: "size-5 text-text-secondary" })
458
+ }), /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
459
459
  className: "text-sm text-text-secondary",
460
- children: S("sessionDetails.agentLabel", "Agent")
461
- }), /* @__PURE__ */ v("p", {
460
+ children: C("sessionDetails.agentLabel", "Agent")
461
+ }), /* @__PURE__ */ y("p", {
462
462
  className: "font-semibold text-text-primary truncate",
463
- children: k?.name || "Unknown"
463
+ children: A?.name || "Unknown"
464
464
  })] })]
465
465
  })
466
466
  }) })
467
467
  ]
468
468
  }),
469
- /* @__PURE__ */ y(l, { children: [/* @__PURE__ */ y("div", {
469
+ /* @__PURE__ */ b(l, { children: [/* @__PURE__ */ b("div", {
470
470
  className: "p-4 border-b border-border-default flex items-center justify-between",
471
- children: [/* @__PURE__ */ y("h3", {
471
+ children: [/* @__PURE__ */ b("h3", {
472
472
  className: "font-semibold text-text-primary flex items-center gap-2",
473
- children: [/* @__PURE__ */ v(Ae, { className: "size-5" }), S("sessionDetails.commandTitle", "Command")]
474
- }), !dt && /* @__PURE__ */ v("button", {
473
+ children: [/* @__PURE__ */ y(ke, { className: "size-5" }), C("sessionDetails.commandTitle", "Command")]
474
+ }), !ut && /* @__PURE__ */ y("button", {
475
475
  type: "button",
476
- onClick: yt,
476
+ onClick: vt,
477
477
  className: "p-1.5 rounded text-text-secondary hover:text-text-primary hover:bg-bg-sunken transition-colors",
478
- title: S("sessionDetails.editCommandTitle", "Edit command and working directory"),
479
- children: /* @__PURE__ */ v(Ie, { className: "size-4" })
478
+ title: C("sessionDetails.editCommandTitle", "Edit command and working directory"),
479
+ children: /* @__PURE__ */ y(Fe, { className: "size-4" })
480
480
  })]
481
- }), /* @__PURE__ */ v("div", {
481
+ }), /* @__PURE__ */ y("div", {
482
482
  className: "p-4",
483
- children: dt ? /* @__PURE__ */ y("div", {
483
+ children: ut ? /* @__PURE__ */ b("div", {
484
484
  className: "space-y-3",
485
485
  children: [
486
- /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
486
+ /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
487
487
  className: "block text-xs font-medium text-text-secondary mb-1",
488
- children: S("sessionDetails.commandLabel", "Command")
489
- }), /* @__PURE__ */ v("input", {
488
+ children: C("sessionDetails.commandLabel", "Command")
489
+ }), /* @__PURE__ */ y("input", {
490
490
  "aria-label": "control",
491
491
  type: "text",
492
- value: pt,
493
- onChange: (e) => mt(e.target.value),
494
- placeholder: S("sessionDetails.commandPlaceholder", "bun run dev"),
492
+ value: ft,
493
+ onChange: (e) => pt(e.target.value),
494
+ placeholder: C("sessionDetails.commandPlaceholder", "bun run dev"),
495
495
  className: "w-full px-3 py-2 text-sm bg-bg-sunken border border-border-default rounded-md text-text-primary placeholder:text-text-placeholder focus:outline-none focus:ring-2 focus:ring-action-primary-bg font-mono"
496
496
  })] }),
497
- /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
497
+ /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("label", {
498
498
  className: "block text-xs font-medium text-text-secondary mb-1",
499
- children: S("sessionDetails.workingDirLabel", "Working Directory")
500
- }), /* @__PURE__ */ v("input", {
499
+ children: C("sessionDetails.workingDirLabel", "Working Directory")
500
+ }), /* @__PURE__ */ y("input", {
501
501
  "aria-label": "control",
502
502
  type: "text",
503
- value: ht,
504
- onChange: (e) => gt(e.target.value),
505
- placeholder: S("sessionDetails.workingDirPlaceholder", "/home/user/myproject"),
503
+ value: mt,
504
+ onChange: (e) => ht(e.target.value),
505
+ placeholder: C("sessionDetails.workingDirPlaceholder", "/home/user/myproject"),
506
506
  className: "w-full px-3 py-2 text-sm bg-bg-sunken border border-border-default rounded-md text-text-primary placeholder:text-text-placeholder focus:outline-none focus:ring-2 focus:ring-action-primary-bg font-mono"
507
507
  })] }),
508
- /* @__PURE__ */ y("div", {
508
+ /* @__PURE__ */ b("div", {
509
509
  className: "flex items-center gap-2",
510
- children: [/* @__PURE__ */ y("button", {
510
+ children: [/* @__PURE__ */ b("button", {
511
511
  type: "button",
512
- onClick: bt,
513
- disabled: _t,
512
+ onClick: yt,
513
+ disabled: gt,
514
514
  className: "flex items-center gap-1.5 px-3 py-1.5 text-sm bg-action-primary-bg text-action-primary-text rounded-md hover:bg-action-primary-bg-hover transition-colors disabled:opacity-50",
515
- children: [_t ? /* @__PURE__ */ v(h, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ v(Ee, { className: "size-3.5" }), S("sessionDetails.save", "Save")]
516
- }), /* @__PURE__ */ y("button", {
515
+ children: [gt ? /* @__PURE__ */ y(g, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ y(Te, { className: "size-3.5" }), C("sessionDetails.save", "Save")]
516
+ }), /* @__PURE__ */ b("button", {
517
517
  type: "button",
518
- onClick: () => ft(!1),
519
- disabled: _t,
518
+ onClick: () => dt(!1),
519
+ disabled: gt,
520
520
  className: "flex items-center gap-1.5 px-3 py-1.5 text-sm bg-bg-sunken text-text-primary rounded-md hover:bg-bg-elevated transition-colors disabled:opacity-50",
521
- children: [/* @__PURE__ */ v(We, { className: "size-3.5" }), S("sessionDetails.cancel", "Cancel")]
521
+ children: [/* @__PURE__ */ y(Ue, { className: "size-3.5" }), C("sessionDetails.cancel", "Cancel")]
522
522
  })]
523
523
  })
524
524
  ]
525
- }) : /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ y("div", {
525
+ }) : /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ b("div", {
526
526
  className: "bg-bg-sunken rounded-md p-3 font-mono text-sm text-text-primary overflow-x-auto",
527
527
  children: [
528
528
  "$",
529
529
  " ",
530
- O.command || S("sessionDetails.noCommandSpecified", "No command specified")
530
+ k.command || C("sessionDetails.noCommandSpecified", "No command specified")
531
531
  ]
532
- }), /* @__PURE__ */ y("div", {
532
+ }), /* @__PURE__ */ b("div", {
533
533
  className: "mt-3 flex items-center gap-2 text-sm text-text-secondary",
534
534
  children: [
535
- /* @__PURE__ */ v(Me, { className: "size-4" }),
536
- S("sessionDetails.workingDirectory", "Working Directory"),
535
+ /* @__PURE__ */ y(je, { className: "size-4" }),
536
+ C("sessionDetails.workingDirectory", "Working Directory"),
537
537
  ":",
538
538
  " ",
539
- /* @__PURE__ */ v("span", {
539
+ /* @__PURE__ */ y("span", {
540
540
  className: "text-text-primary font-mono",
541
- children: O.workingDirectory || /* @__PURE__ */ v("em", {
541
+ children: k.workingDirectory || /* @__PURE__ */ y("em", {
542
542
  className: "not-italic text-text-placeholder",
543
- children: S("sessionDetails.workingDirDefault", "not set — defaults to OS home")
543
+ children: C("sessionDetails.workingDirDefault", "not set — defaults to OS home")
544
544
  })
545
545
  })
546
546
  ]
547
547
  })] })
548
548
  })] }),
549
- /* @__PURE__ */ y(l, { children: [/* @__PURE__ */ v("div", {
549
+ /* @__PURE__ */ b(l, { children: [/* @__PURE__ */ y("div", {
550
550
  className: "p-4 border-b border-border-default",
551
- children: /* @__PURE__ */ y("h3", {
551
+ children: /* @__PURE__ */ b("h3", {
552
552
  className: "font-semibold text-text-primary flex items-center gap-2",
553
- children: [/* @__PURE__ */ v(Ue, { className: "size-5" }), S("sessionDetails.envVars", "Environment Variables")]
553
+ children: [/* @__PURE__ */ y(He, { className: "size-5" }), C("sessionDetails.envVars", "Environment Variables")]
554
554
  })
555
- }), /* @__PURE__ */ v("div", {
555
+ }), /* @__PURE__ */ y("div", {
556
556
  className: "p-4",
557
- children: O.environmentVariables && Object.keys(O.environmentVariables).length > 0 ? /* @__PURE__ */ v("div", {
557
+ children: k.environmentVariables && Object.keys(k.environmentVariables).length > 0 ? /* @__PURE__ */ y("div", {
558
558
  className: "flex flex-wrap gap-2",
559
- children: Object.entries(O.environmentVariables).map(([e, t]) => /* @__PURE__ */ y("span", {
559
+ children: Object.entries(k.environmentVariables).map(([e, t]) => /* @__PURE__ */ b("span", {
560
560
  className: "px-3 py-1 bg-bg-sunken text-text-primary text-sm rounded-full font-mono",
561
561
  children: [
562
562
  e,
@@ -564,313 +564,313 @@ function Qe() {
564
564
  String(t)
565
565
  ]
566
566
  }, e))
567
- }) : /* @__PURE__ */ v("p", {
567
+ }) : /* @__PURE__ */ y("p", {
568
568
  className: "text-text-secondary",
569
- children: S("sessionDetails.noEnvVars", "No environment variables configured")
569
+ children: C("sessionDetails.noEnvVars", "No environment variables configured")
570
570
  })
571
571
  })] }),
572
- /* @__PURE__ */ y(l, { children: [/* @__PURE__ */ v("div", {
572
+ /* @__PURE__ */ b(l, { children: [/* @__PURE__ */ y("div", {
573
573
  className: "p-4 border-b border-border-default",
574
- children: /* @__PURE__ */ y("h3", {
574
+ children: /* @__PURE__ */ b("h3", {
575
575
  className: "font-semibold text-text-primary flex items-center gap-2",
576
- children: [/* @__PURE__ */ v(g, { className: "size-5" }), S("sessionDetails.lastOutput", "Last Output")]
576
+ children: [/* @__PURE__ */ y(_, { className: "size-5" }), C("sessionDetails.lastOutput", "Last Output")]
577
577
  })
578
- }), /* @__PURE__ */ v("div", {
578
+ }), /* @__PURE__ */ y("div", {
579
579
  className: "p-4",
580
- children: O.lastOutput ? /* @__PURE__ */ v("div", {
580
+ children: k.lastOutput ? /* @__PURE__ */ y("div", {
581
581
  className: "bg-bg-sunken rounded-md p-3 font-mono text-sm text-text-primary overflow-x-auto whitespace-pre-wrap",
582
- children: O.lastOutput
583
- }) : /* @__PURE__ */ v("p", {
582
+ children: k.lastOutput
583
+ }) : /* @__PURE__ */ y("p", {
584
584
  className: "text-text-secondary",
585
- children: S("sessionDetails.noOutput", "No output captured")
585
+ children: C("sessionDetails.noOutput", "No output captured")
586
586
  })
587
587
  })] }),
588
- A && /* @__PURE__ */ v(l, {
588
+ j && /* @__PURE__ */ y(l, {
589
589
  onClick: cn,
590
590
  hoverable: !0,
591
- children: /* @__PURE__ */ y("div", {
591
+ children: /* @__PURE__ */ b("div", {
592
592
  className: "p-4 flex items-center justify-between",
593
- children: [/* @__PURE__ */ y("div", {
593
+ children: [/* @__PURE__ */ b("div", {
594
594
  className: "flex items-center gap-3",
595
- children: [/* @__PURE__ */ v("div", {
595
+ children: [/* @__PURE__ */ y("div", {
596
596
  className: "size-10 rounded-lg bg-bg-sunken flex items-center justify-center",
597
- children: /* @__PURE__ */ v(Ge, { className: "size-5 text-text-secondary" })
598
- }), /* @__PURE__ */ y("div", { children: [
599
- /* @__PURE__ */ v("p", {
597
+ children: /* @__PURE__ */ y(We, { className: "size-5 text-text-secondary" })
598
+ }), /* @__PURE__ */ b("div", { children: [
599
+ /* @__PURE__ */ y("p", {
600
600
  className: "text-sm text-text-secondary",
601
- children: S("sessionDetails.relatedVibe", "Related Vibe")
601
+ children: C("sessionDetails.relatedVibe", "Related Vibe")
602
602
  }),
603
- /* @__PURE__ */ v("p", {
603
+ /* @__PURE__ */ y("p", {
604
604
  className: "font-medium text-text-primary",
605
- children: A.name
605
+ children: j.name
606
606
  }),
607
- A.path && /* @__PURE__ */ v("p", {
607
+ j.path && /* @__PURE__ */ y("p", {
608
608
  className: "text-sm text-text-secondary truncate max-w-md",
609
- children: A.path
609
+ children: j.path
610
610
  })
611
611
  ] })]
612
- }), /* @__PURE__ */ v(c, { status: A.status })]
612
+ }), /* @__PURE__ */ y(c, { status: j.status })]
613
613
  })
614
614
  }),
615
- k && /* @__PURE__ */ v(l, {
615
+ A && /* @__PURE__ */ y(l, {
616
616
  onClick: sn,
617
617
  hoverable: !0,
618
- children: /* @__PURE__ */ y("div", {
618
+ children: /* @__PURE__ */ b("div", {
619
619
  className: "p-4 flex items-center justify-between",
620
- children: [/* @__PURE__ */ y("div", {
620
+ children: [/* @__PURE__ */ b("div", {
621
621
  className: "flex items-center gap-3",
622
- children: [/* @__PURE__ */ v("div", {
622
+ children: [/* @__PURE__ */ y("div", {
623
623
  className: "size-10 rounded-lg bg-bg-sunken flex items-center justify-center",
624
- children: /* @__PURE__ */ v(Be, { className: "size-5 text-text-secondary" })
625
- }), /* @__PURE__ */ y("div", { children: [
626
- /* @__PURE__ */ v("p", {
624
+ children: /* @__PURE__ */ y(ze, { className: "size-5 text-text-secondary" })
625
+ }), /* @__PURE__ */ b("div", { children: [
626
+ /* @__PURE__ */ y("p", {
627
627
  className: "text-sm text-text-secondary",
628
- children: S("sessionDetails.runningOnAgent", "Running on Agent")
628
+ children: C("sessionDetails.runningOnAgent", "Running on Agent")
629
629
  }),
630
- /* @__PURE__ */ v("p", {
630
+ /* @__PURE__ */ y("p", {
631
631
  className: "font-medium text-text-primary",
632
- children: k.name
632
+ children: A.name
633
633
  }),
634
- /* @__PURE__ */ v("p", {
634
+ /* @__PURE__ */ y("p", {
635
635
  className: "text-sm text-text-secondary",
636
- children: k.hostname
636
+ children: A.hostname
637
637
  })
638
638
  ] })]
639
- }), /* @__PURE__ */ v(c, { status: k.isActive ? "ACTIVE" : "OFFLINE" })]
639
+ }), /* @__PURE__ */ y(c, { status: A.isActive ? "ACTIVE" : "OFFLINE" })]
640
640
  })
641
641
  }),
642
- /* @__PURE__ */ y(l, { children: [/* @__PURE__ */ v("div", {
642
+ /* @__PURE__ */ b(l, { children: [/* @__PURE__ */ y("div", {
643
643
  className: "p-4 border-b border-border-default",
644
- children: /* @__PURE__ */ y("h3", {
644
+ children: /* @__PURE__ */ b("h3", {
645
645
  className: "font-semibold text-text-primary flex items-center gap-2",
646
- children: [/* @__PURE__ */ v(ke, { className: "size-5" }), S("sessionDetails.timeline", "Timeline")]
646
+ children: [/* @__PURE__ */ y(Oe, { className: "size-5" }), C("sessionDetails.timeline", "Timeline")]
647
647
  })
648
- }), /* @__PURE__ */ y("div", {
648
+ }), /* @__PURE__ */ b("div", {
649
649
  className: "p-4",
650
- children: [/* @__PURE__ */ y("div", {
650
+ children: [/* @__PURE__ */ b("div", {
651
651
  className: "grid grid-cols-1 sm:grid-cols-3 gap-4 text-sm",
652
652
  children: [
653
- /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
653
+ /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
654
654
  className: "text-text-secondary",
655
- children: S("sessionDetails.autoStart", "Auto Start")
656
- }), /* @__PURE__ */ v("p", {
655
+ children: C("sessionDetails.autoStart", "Auto Start")
656
+ }), /* @__PURE__ */ y("p", {
657
657
  className: "font-medium text-text-primary",
658
- children: O.autoStart ? S("sessionDetails.yes", "Yes") : S("sessionDetails.no", "No")
658
+ children: k.autoStart ? C("sessionDetails.yes", "Yes") : C("sessionDetails.no", "No")
659
659
  })] }),
660
- /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
660
+ /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
661
661
  className: "text-text-secondary",
662
- children: S("sessionDetails.created", "Created")
663
- }), /* @__PURE__ */ v("p", {
662
+ children: C("sessionDetails.created", "Created")
663
+ }), /* @__PURE__ */ y("p", {
664
664
  className: "font-medium text-text-primary",
665
- children: Ze(O.createdAt)
665
+ children: Xe(k.createdAt)
666
666
  })] }),
667
- /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
667
+ /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
668
668
  className: "text-text-secondary",
669
- children: S("sessionDetails.updated", "Updated")
670
- }), /* @__PURE__ */ v("p", {
669
+ children: C("sessionDetails.updated", "Updated")
670
+ }), /* @__PURE__ */ y("p", {
671
671
  className: "font-medium text-text-primary",
672
- children: Ze(O.updatedAt)
672
+ children: Xe(k.updatedAt)
673
673
  })] })
674
674
  ]
675
- }), O.exitCode !== null && O.exitCode !== void 0 && /* @__PURE__ */ y("div", {
675
+ }), k.exitCode !== null && k.exitCode !== void 0 && /* @__PURE__ */ b("div", {
676
676
  className: "mt-4 pt-4 border-t border-border-default",
677
- children: [/* @__PURE__ */ v("p", {
677
+ children: [/* @__PURE__ */ y("p", {
678
678
  className: "text-sm text-text-secondary",
679
- children: S("sessionDetails.exitCode", "Exit Code")
680
- }), /* @__PURE__ */ v("p", {
681
- className: `font-medium ${O.exitCode === 0 ? "text-status-success-text" : "text-status-error-text"}`,
682
- children: O.exitCode
679
+ children: C("sessionDetails.exitCode", "Exit Code")
680
+ }), /* @__PURE__ */ y("p", {
681
+ className: `font-medium ${k.exitCode === 0 ? "text-status-success-text" : "text-status-error-text"}`,
682
+ children: k.exitCode
683
683
  })]
684
684
  })]
685
685
  })] }),
686
- /* @__PURE__ */ y(l, { children: [/* @__PURE__ */ v("div", {
686
+ /* @__PURE__ */ b(l, { children: [/* @__PURE__ */ y("div", {
687
687
  className: "p-4 border-b border-border-default",
688
- children: /* @__PURE__ */ y("h3", {
688
+ children: /* @__PURE__ */ b("h3", {
689
689
  className: "font-semibold text-text-primary flex items-center gap-2",
690
- children: [/* @__PURE__ */ v(He, { className: "size-5" }), S("sessionDetails.tags", "Tags")]
690
+ children: [/* @__PURE__ */ y(Ve, { className: "size-5" }), C("sessionDetails.tags", "Tags")]
691
691
  })
692
- }), /* @__PURE__ */ v("div", {
692
+ }), /* @__PURE__ */ y("div", {
693
693
  className: "p-4",
694
- children: /* @__PURE__ */ v(ve, {
694
+ children: /* @__PURE__ */ y(ve, {
695
695
  entityType: "VIBECONTROLS_SESSION",
696
- entityId: O.id
696
+ entityId: k.id
697
697
  })
698
698
  })] }),
699
- /* @__PURE__ */ v("div", {
699
+ /* @__PURE__ */ y("div", {
700
700
  id: "connection-log",
701
701
  className: "scroll-mt-20",
702
- children: /* @__PURE__ */ v(l, {
702
+ children: /* @__PURE__ */ y(l, {
703
703
  className: "min-h-[40vh]",
704
- children: /* @__PURE__ */ v(Se, {
705
- sessionId: O.id,
706
- sessionName: O.name
704
+ children: /* @__PURE__ */ y(Se, {
705
+ sessionId: k.id,
706
+ sessionName: k.name
707
707
  })
708
708
  })
709
709
  })
710
710
  ]
711
711
  }),
712
- F && /* @__PURE__ */ y("div", {
712
+ I && /* @__PURE__ */ b("div", {
713
713
  ref: Vt,
714
714
  className: "border-t border-border-default bg-bg-surface shrink-0",
715
715
  children: [
716
- /* @__PURE__ */ y("div", {
716
+ /* @__PURE__ */ b("div", {
717
717
  className: "flex items-center bg-bg-sunken border-b border-border-default",
718
718
  children: [
719
- /* @__PURE__ */ y("button", {
719
+ /* @__PURE__ */ b("button", {
720
720
  type: "button",
721
- onClick: () => I(!1),
721
+ onClick: () => L(!1),
722
722
  className: "flex items-center gap-1.5 px-3 py-2 text-text-secondary hover:text-text-primary transition-colors text-xs font-medium uppercase tracking-wide",
723
- title: S("sessionDetails.collapseTerminal", "Collapse terminal"),
723
+ title: C("sessionDetails.collapseTerminal", "Collapse terminal"),
724
724
  children: [
725
- /* @__PURE__ */ v(g, { className: "size-3.5" }),
726
- S("sessionDetails.terminal", "Terminal"),
727
- /* @__PURE__ */ v(De, { className: "size-3" })
725
+ /* @__PURE__ */ y(_, { className: "size-3.5" }),
726
+ C("sessionDetails.terminal", "Terminal"),
727
+ /* @__PURE__ */ y(Ee, { className: "size-3" })
728
728
  ]
729
729
  }),
730
- /* @__PURE__ */ y("div", {
730
+ /* @__PURE__ */ b("div", {
731
731
  className: "flex items-center px-3 py-1.5 text-xs bg-bg-surface text-text-primary border-r border-border-subtle border-b-2 border-b-action-primary-bg",
732
- children: [/* @__PURE__ */ v(g, { className: "size-3 mr-1.5" }), O.name]
732
+ children: [/* @__PURE__ */ y(_, { className: "size-3 mr-1.5" }), k.name]
733
733
  }),
734
- /* @__PURE__ */ v("div", { className: "flex-1" }),
735
- /* @__PURE__ */ y("div", {
734
+ /* @__PURE__ */ y("div", { className: "flex-1" }),
735
+ /* @__PURE__ */ b("div", {
736
736
  className: "flex items-center gap-1 px-2",
737
- children: [X && /* @__PURE__ */ v("button", {
737
+ children: [X && /* @__PURE__ */ y("button", {
738
738
  type: "button",
739
739
  onClick: on,
740
740
  className: "p-1 text-text-secondary hover:text-text-primary transition-colors",
741
- title: S("sessionDetails.openInNewTabShort", "Open in new tab"),
742
- children: /* @__PURE__ */ v(je, { className: "size-3.5" })
743
- }), /* @__PURE__ */ v("button", {
741
+ title: C("sessionDetails.openInNewTabShort", "Open in new tab"),
742
+ children: /* @__PURE__ */ y(Ae, { className: "size-3.5" })
743
+ }), /* @__PURE__ */ y("button", {
744
744
  type: "button",
745
- onClick: () => Lt((e) => !e),
745
+ onClick: () => It((e) => !e),
746
746
  className: "p-1 text-text-secondary hover:text-text-primary transition-colors",
747
- title: It ? S("sessionDetails.restoreSize", "Restore size") : S("sessionDetails.maximize", "Maximize"),
748
- children: v(It ? Fe : Pe, { className: "size-3.5" })
747
+ title: Ft ? C("sessionDetails.restoreSize", "Restore size") : C("sessionDetails.maximize", "Maximize"),
748
+ children: y(Ft ? Pe : Ne, { className: "size-3.5" })
749
749
  })]
750
750
  })
751
751
  ]
752
752
  }),
753
- H && /* @__PURE__ */ y("div", {
753
+ H && /* @__PURE__ */ b("div", {
754
754
  role: "status",
755
755
  className: "flex items-start justify-between gap-3 px-3 py-2 bg-status-warning-bg/30 text-status-warning-text border-b border-status-warning-bg/50 text-xs",
756
- children: [/* @__PURE__ */ y("div", {
756
+ children: [/* @__PURE__ */ b("div", {
757
757
  className: "flex items-center gap-2 flex-1",
758
- children: [/* @__PURE__ */ v(Te, { className: "size-3.5 shrink-0" }), /* @__PURE__ */ v("span", { children: S("sessionDetails.commandExited", "Command exited{{code}} — click Run Command to run it again.", { code: H.exitCode === null ? "" : ` (exit ${H.exitCode})` }) })]
759
- }), /* @__PURE__ */ v("button", {
758
+ children: [/* @__PURE__ */ y(m, { className: "size-3.5 shrink-0" }), /* @__PURE__ */ y("span", { children: C("sessionDetails.commandExited", "Command exited{{code}} — click Run Command to run it again.", { code: H.exitCode === null ? "" : ` (exit ${H.exitCode})` }) })]
759
+ }), /* @__PURE__ */ y("button", {
760
760
  type: "button",
761
761
  onClick: () => U(null),
762
762
  className: "text-text-secondary hover:text-text-primary",
763
- title: S("common.dismiss", "Dismiss"),
764
- children: /* @__PURE__ */ v(We, { className: "size-3.5" })
763
+ title: C("common.dismiss", "Dismiss"),
764
+ children: /* @__PURE__ */ y(Ue, { className: "size-3.5" })
765
765
  })]
766
766
  }),
767
- /* @__PURE__ */ v("div", {
767
+ /* @__PURE__ */ y("div", {
768
768
  className: `${un} bg-bg-inverse text-text-inverse`,
769
- children: L ? /* @__PURE__ */ v("div", {
769
+ children: R ? /* @__PURE__ */ y("div", {
770
770
  className: "flex items-center justify-center h-full",
771
- children: /* @__PURE__ */ y("div", {
771
+ children: /* @__PURE__ */ b("div", {
772
772
  className: "text-center",
773
773
  children: [
774
- /* @__PURE__ */ v(h, { className: "size-8 text-text-secondary animate-spin mx-auto mb-3" }),
775
- /* @__PURE__ */ y("p", {
774
+ /* @__PURE__ */ y(g, { className: "size-8 text-text-secondary animate-spin mx-auto mb-3" }),
775
+ /* @__PURE__ */ b("p", {
776
776
  className: "text-text-secondary text-sm",
777
777
  children: [
778
- S("sessionDetails.startingTerminal", "Starting terminal for"),
778
+ C("sessionDetails.startingTerminal", "Starting terminal for"),
779
779
  " ",
780
- O.name,
780
+ k.name,
781
781
  "..."
782
782
  ]
783
783
  }),
784
- /* @__PURE__ */ v("p", {
784
+ /* @__PURE__ */ y("p", {
785
785
  className: "text-text-tertiary text-xs mt-1",
786
- children: S("sessionDetails.settingUpTunnel", "Setting up session + web terminal tunnel")
786
+ children: C("sessionDetails.settingUpTunnel", "Setting up session + web terminal tunnel")
787
787
  })
788
788
  ]
789
789
  })
790
- }) : R ? /* @__PURE__ */ v("div", {
790
+ }) : Rt ? /* @__PURE__ */ y("div", {
791
791
  className: "flex items-center justify-center h-full",
792
- children: /* @__PURE__ */ y("div", {
792
+ children: /* @__PURE__ */ b("div", {
793
793
  className: "text-center max-w-md",
794
794
  children: [
795
- /* @__PURE__ */ v(Te, { className: "size-8 text-status-error-text mx-auto mb-3" }),
796
- /* @__PURE__ */ v("p", {
795
+ /* @__PURE__ */ y(m, { className: "size-8 text-status-error-text mx-auto mb-3" }),
796
+ /* @__PURE__ */ y("p", {
797
797
  className: "text-status-error-text text-sm font-medium",
798
- children: S("sessionDetails.failedStartTerminal", "Failed to start terminal")
798
+ children: C("sessionDetails.failedStartTerminal", "Failed to start terminal")
799
799
  }),
800
- /* @__PURE__ */ v("p", {
800
+ /* @__PURE__ */ y("p", {
801
801
  className: "text-text-secondary text-xs mt-2",
802
- children: R
802
+ children: Rt
803
803
  }),
804
- /* @__PURE__ */ v("button", {
804
+ /* @__PURE__ */ y("button", {
805
805
  type: "button",
806
806
  onClick: tn,
807
807
  className: "mt-4 px-4 py-2 bg-bg-muted text-text-primary text-sm rounded-md hover:bg-bg-sunken transition-colors",
808
- children: S("sessionDetails.retry", "Retry")
808
+ children: C("sessionDetails.retry", "Retry")
809
809
  })
810
810
  ]
811
811
  })
812
- }) : X ? /* @__PURE__ */ v(Ce, {
813
- isShared: N,
814
- collaborators: wt,
815
- currentUserId: w,
816
- permission: Nt,
817
- onRequestControl: Pt,
818
- onReleaseControl: Ft,
819
- isRequestingControl: Dt,
820
- isReleasingControl: kt,
812
+ }) : X ? /* @__PURE__ */ y(Ce, {
813
+ isShared: P,
814
+ collaborators: Ct,
815
+ currentUserId: T,
816
+ permission: Mt,
817
+ onRequestControl: Nt,
818
+ onReleaseControl: Pt,
819
+ isRequestingControl: Et,
820
+ isReleasingControl: Ot,
821
821
  className: "h-full",
822
- children: /* @__PURE__ */ v("iframe", {
822
+ children: /* @__PURE__ */ y("iframe", {
823
823
  src: X,
824
- title: `Terminal - ${O.name}`,
824
+ title: `Terminal - ${k.name}`,
825
825
  className: "w-full h-full border-0",
826
826
  allow: "clipboard-read; clipboard-write",
827
827
  onError: Yt
828
828
  })
829
- }) : K && (Gt || J) ? /* @__PURE__ */ v("div", {
829
+ }) : K && (Gt || J) ? /* @__PURE__ */ y("div", {
830
830
  className: "flex items-center justify-center h-full",
831
- children: /* @__PURE__ */ v("div", {
831
+ children: /* @__PURE__ */ y("div", {
832
832
  className: "text-center",
833
- children: J ? /* @__PURE__ */ y(_, { children: [
834
- /* @__PURE__ */ v(Te, { className: "size-8 text-status-error mx-auto mb-3" }),
835
- /* @__PURE__ */ v("p", {
833
+ children: J ? /* @__PURE__ */ b(v, { children: [
834
+ /* @__PURE__ */ y(m, { className: "size-8 text-status-error mx-auto mb-3" }),
835
+ /* @__PURE__ */ y("p", {
836
836
  className: "text-text-secondary text-sm",
837
- children: S("sessionDetails.terminalCapabilityFailed", "Could not prepare terminal access")
837
+ children: C("sessionDetails.terminalCapabilityFailed", "Could not prepare terminal access")
838
838
  }),
839
- /* @__PURE__ */ v("p", {
839
+ /* @__PURE__ */ y("p", {
840
840
  className: "text-text-tertiary text-xs mt-1",
841
841
  children: J
842
842
  }),
843
- /* @__PURE__ */ v("button", {
843
+ /* @__PURE__ */ y("button", {
844
844
  type: "button",
845
845
  onClick: Yt,
846
846
  className: "mt-4 px-4 py-2 bg-bg-muted text-text-primary text-sm rounded-md hover:bg-bg-sunken transition-colors",
847
- children: S("sessionDetails.retry", "Retry")
847
+ children: C("sessionDetails.retry", "Retry")
848
848
  })
849
- ] }) : /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v(h, { className: "size-6 text-text-tertiary mx-auto mb-3 animate-spin" }), /* @__PURE__ */ v("p", {
849
+ ] }) : /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y(g, { className: "size-6 text-text-tertiary mx-auto mb-3 animate-spin" }), /* @__PURE__ */ y("p", {
850
850
  className: "text-text-secondary text-sm",
851
- children: S("sessionDetails.preparingTerminal", "Preparing terminal…")
851
+ children: C("sessionDetails.preparingTerminal", "Preparing terminal…")
852
852
  })] })
853
853
  })
854
- }) : /* @__PURE__ */ v("div", {
854
+ }) : /* @__PURE__ */ y("div", {
855
855
  className: "flex items-center justify-center h-full",
856
- children: /* @__PURE__ */ y("div", {
856
+ children: /* @__PURE__ */ b("div", {
857
857
  className: "text-center",
858
858
  children: [
859
- /* @__PURE__ */ v(g, { className: "size-8 text-text-tertiary mx-auto mb-3" }),
860
- /* @__PURE__ */ v("p", {
859
+ /* @__PURE__ */ y(_, { className: "size-8 text-text-tertiary mx-auto mb-3" }),
860
+ /* @__PURE__ */ y("p", {
861
861
  className: "text-text-secondary text-sm",
862
- children: S("sessionDetails.noTerminalRunning", "No terminal running")
862
+ children: C("sessionDetails.noTerminalRunning", "No terminal running")
863
863
  }),
864
- /* @__PURE__ */ v("p", {
864
+ /* @__PURE__ */ y("p", {
865
865
  className: "text-text-tertiary text-xs mt-1",
866
- children: k ? S("sessionDetails.clickOpenTerminalHint", "Click \"Open Terminal\" to create a tmux session with a browser terminal.") : S("sessionDetails.noAgentForSession", "No agent is assigned to this session.")
866
+ children: A ? C("sessionDetails.clickOpenTerminalHint", "Click \"Open Terminal\" to create a tmux session with a browser terminal.") : C("sessionDetails.noAgentForSession", "No agent is assigned to this session.")
867
867
  }),
868
- k && /* @__PURE__ */ v("button", {
868
+ A && /* @__PURE__ */ y("button", {
869
869
  type: "button",
870
870
  onClick: tn,
871
- disabled: L,
871
+ disabled: R,
872
872
  className: "mt-4 px-4 py-2 bg-bg-muted text-text-primary text-sm rounded-md hover:bg-bg-sunken transition-colors disabled:opacity-50",
873
- children: L ? S("sessionDetails.opening", "Opening...") : S("sessionDetails.openTerminal", "Open Terminal")
873
+ children: R ? C("sessionDetails.opening", "Opening...") : C("sessionDetails.openTerminal", "Open Terminal")
874
874
  })
875
875
  ]
876
876
  })
@@ -878,27 +878,27 @@ function Qe() {
878
878
  })
879
879
  ]
880
880
  }),
881
- !F && (X || R) && /* @__PURE__ */ v("div", {
881
+ !I && (X || Rt) && /* @__PURE__ */ y("div", {
882
882
  className: "border-t border-border-default bg-bg-sunken shrink-0",
883
- children: /* @__PURE__ */ y("button", {
883
+ children: /* @__PURE__ */ b("button", {
884
884
  type: "button",
885
- onClick: () => I(!0),
885
+ onClick: () => L(!0),
886
886
  className: "flex items-center gap-1.5 px-3 py-1.5 text-text-secondary hover:text-text-primary transition-colors text-xs font-medium uppercase tracking-wide w-full",
887
- title: S("sessionDetails.expandTerminal", "Expand terminal"),
887
+ title: C("sessionDetails.expandTerminal", "Expand terminal"),
888
888
  children: [
889
- /* @__PURE__ */ v(g, { className: "size-3.5" }),
890
- S("sessionDetails.terminal", "Terminal"),
889
+ /* @__PURE__ */ y(_, { className: "size-3.5" }),
890
+ C("sessionDetails.terminal", "Terminal"),
891
891
  " - ",
892
- O.name,
893
- /* @__PURE__ */ v(Oe, { className: "size-3 ml-1" })
892
+ k.name,
893
+ /* @__PURE__ */ y(De, { className: "size-3 ml-1" })
894
894
  ]
895
895
  })
896
896
  }),
897
- /* @__PURE__ */ v(ce, {
897
+ /* @__PURE__ */ y(ce, {
898
898
  isOpen: zt,
899
899
  onClose: () => B(!1),
900
900
  onConfirm: () => {
901
- B(!1), T("/billing/plans");
901
+ B(!1), E("/billing/plans");
902
902
  },
903
903
  title: le("session").title,
904
904
  message: le("session").message,
@@ -906,22 +906,22 @@ function Qe() {
906
906
  cancelLabel: "Dismiss",
907
907
  variant: "warning"
908
908
  }),
909
- /* @__PURE__ */ v(ce, {
909
+ /* @__PURE__ */ y(ce, {
910
910
  isOpen: Bt,
911
911
  onClose: () => V(!1),
912
912
  onConfirm: () => {
913
913
  V(!1), nn();
914
914
  },
915
- title: S("sessionDetails.restartTerminalConfirmTitle", "Restart terminal?"),
916
- message: S("sessionDetails.restartTerminalConfirmBody", "This kills the current tmux session and re-runs the command from scratch. Any in-progress output will be lost."),
917
- confirmLabel: S("sessionDetails.restartTerminalConfirmLabel", "Restart terminal"),
918
- cancelLabel: S("common.cancel", "Cancel"),
915
+ title: C("sessionDetails.restartTerminalConfirmTitle", "Restart terminal?"),
916
+ message: C("sessionDetails.restartTerminalConfirmBody", "This kills the current tmux session and re-runs the command from scratch. Any in-progress output will be lost."),
917
+ confirmLabel: C("sessionDetails.restartTerminalConfirmLabel", "Restart terminal"),
918
+ cancelLabel: C("common.cancel", "Cancel"),
919
919
  variant: "warning"
920
920
  })
921
921
  ]
922
922
  });
923
923
  }
924
924
  //#endregion
925
- export { Qe as SessionDetailsPage };
925
+ export { Ze as SessionDetailsPage };
926
926
 
927
927
  //# sourceMappingURL=SessionDetailsPage.js.map