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