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