@burdenoff/microfe-vibecontrols 2026.610.4 → 2026.610.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/VibeControlsRoot.js +102 -86
- package/dist/VibeControlsRoot.js.map +1 -1
- package/dist/VibeControlsRoutes.js +37 -42
- package/dist/VibeControlsRoutes.js.map +1 -1
- package/dist/components/webhooks/types.js +22 -0
- package/dist/components/webhooks/types.js.map +1 -0
- package/dist/generated/wspace-operations.js +1990 -1857
- package/dist/generated/wspace-operations.js.map +1 -1
- package/dist/generated/wspace-types.js +18 -16
- package/dist/generated/wspace-types.js.map +1 -1
- package/dist/index.js +10 -10
- package/dist/pages/EnvTopologyPage.js +277 -0
- package/dist/pages/EnvTopologyPage.js.map +1 -0
- package/dist/pages/WebhooksPage.js +778 -0
- package/dist/pages/WebhooksPage.js.map +1 -0
- package/dist/utils/nativeBridge.js +2 -2
- package/package.json +1 -1
package/dist/VibeControlsRoot.js
CHANGED
|
@@ -6,221 +6,237 @@ import n from "./components/shared/AgentEventsConnector.js";
|
|
|
6
6
|
import { useEffect as r } from "react";
|
|
7
7
|
import { useI18n as i } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
8
8
|
import { useRecordProductVisit as a } from "@burdenoff/fe-libs/shared/hooks";
|
|
9
|
-
import { Activity as o, BarChart2 as s, BookOpen as c, Bookmark as l, Bot as u, Box as d, Brain as f, CalendarClock as p, FileCode as m, GitBranch as h, Globe as g, LayoutDashboard as _, LayoutGrid as v,
|
|
10
|
-
import { jsx as
|
|
11
|
-
import { Toaster as
|
|
12
|
-
import { FeatureFlagProvider as
|
|
9
|
+
import { Activity as o, BarChart2 as s, BookOpen as c, Bookmark as l, Bot as u, Box as d, Brain as f, CalendarClock as p, FileCode as m, GitBranch as h, Globe as g, LayoutDashboard as _, LayoutGrid as v, Network as y, PlayCircle as b, Plug as x, Puzzle as S, Rocket as C, Server as w, Settings as T, Shield as E, Terminal as D, Webhook as O, Zap as k } from "lucide-react";
|
|
10
|
+
import { jsx as A, jsxs as j } from "react/jsx-runtime";
|
|
11
|
+
import { Toaster as M } from "@burdenoff/fe-libs/ui";
|
|
12
|
+
import { FeatureFlagProvider as N } from "@burdenoff/fe-libs/shared/feature-flags";
|
|
13
13
|
//#region src/VibeControlsRoot.tsx
|
|
14
|
-
var
|
|
15
|
-
let { registerNavItems:
|
|
14
|
+
var P = (P) => {
|
|
15
|
+
let { registerNavItems: F, registerFooterItems: I, basePath: L = "/", workspaceId: R } = P, { t: z, locale: B } = i(), V = typeof window < "u" && /^\/vibecontrols\/(share|deck)\//.test(window.location.pathname);
|
|
16
16
|
a({
|
|
17
17
|
productSlug: "vibecontrols",
|
|
18
|
-
enabled: !
|
|
18
|
+
enabled: !V
|
|
19
19
|
});
|
|
20
|
-
let
|
|
20
|
+
let H = (e, t) => (e.endsWith("/") ? e.slice(0, -1) : e) + (t.startsWith("/") ? t : `/${t}`);
|
|
21
21
|
return r(() => {
|
|
22
|
-
if (!(!
|
|
22
|
+
if (!(!F || V)) return F([
|
|
23
23
|
{
|
|
24
24
|
id: "vibecontrols-overview",
|
|
25
|
-
label:
|
|
26
|
-
path:
|
|
27
|
-
icon: /* @__PURE__ */
|
|
25
|
+
label: z("nav.overview"),
|
|
26
|
+
path: L === "/" ? "/" : L,
|
|
27
|
+
icon: /* @__PURE__ */ A(_, { size: 20 }),
|
|
28
28
|
order: 10,
|
|
29
29
|
group: "vibecontrols"
|
|
30
30
|
},
|
|
31
31
|
{
|
|
32
32
|
id: "vibecontrols-targets",
|
|
33
|
-
label:
|
|
34
|
-
path:
|
|
35
|
-
icon: /* @__PURE__ */
|
|
33
|
+
label: z("nav.targets"),
|
|
34
|
+
path: H(L, "targets"),
|
|
35
|
+
icon: /* @__PURE__ */ A(w, { size: 20 }),
|
|
36
36
|
order: 12,
|
|
37
37
|
group: "vibecontrols"
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
40
|
id: "vibecontrols-agents",
|
|
41
|
-
label:
|
|
42
|
-
path:
|
|
43
|
-
icon: /* @__PURE__ */
|
|
41
|
+
label: z("nav.agents"),
|
|
42
|
+
path: H(L, "agents"),
|
|
43
|
+
icon: /* @__PURE__ */ A(u, { size: 20 }),
|
|
44
44
|
order: 14,
|
|
45
45
|
group: "vibecontrols"
|
|
46
46
|
},
|
|
47
47
|
{
|
|
48
48
|
id: "vibecontrols-agent-graph",
|
|
49
|
-
label:
|
|
50
|
-
path:
|
|
51
|
-
icon: /* @__PURE__ */
|
|
49
|
+
label: z("nav.agentGraph"),
|
|
50
|
+
path: H(L, "agent-graph"),
|
|
51
|
+
icon: /* @__PURE__ */ A(h, { size: 20 }),
|
|
52
52
|
order: 16,
|
|
53
53
|
group: "vibecontrols"
|
|
54
54
|
},
|
|
55
55
|
{
|
|
56
56
|
id: "vibecontrols-vibes",
|
|
57
|
-
label:
|
|
58
|
-
path:
|
|
59
|
-
icon: /* @__PURE__ */
|
|
57
|
+
label: z("nav.vibes"),
|
|
58
|
+
path: H(L, "vibes"),
|
|
59
|
+
icon: /* @__PURE__ */ A(k, { size: 20 }),
|
|
60
60
|
order: 20,
|
|
61
61
|
group: "vibecontrols"
|
|
62
62
|
},
|
|
63
63
|
{
|
|
64
64
|
id: "vibecontrols-catalogs",
|
|
65
|
-
label:
|
|
66
|
-
path:
|
|
67
|
-
icon: /* @__PURE__ */
|
|
65
|
+
label: z("nav.catalogs") === "nav.catalogs" ? "Catalogs" : z("nav.catalogs"),
|
|
66
|
+
path: H(L, "catalogs"),
|
|
67
|
+
icon: /* @__PURE__ */ A(c, { size: 20 }),
|
|
68
68
|
order: 21,
|
|
69
69
|
group: "vibecontrols"
|
|
70
70
|
},
|
|
71
71
|
{
|
|
72
72
|
id: "vibecontrols-components",
|
|
73
|
-
label:
|
|
74
|
-
path:
|
|
75
|
-
icon: /* @__PURE__ */
|
|
73
|
+
label: z("nav.components") === "nav.components" ? "Components" : z("nav.components"),
|
|
74
|
+
path: H(L, "components"),
|
|
75
|
+
icon: /* @__PURE__ */ A(d, { size: 20 }),
|
|
76
76
|
order: 22,
|
|
77
77
|
group: "vibecontrols"
|
|
78
78
|
},
|
|
79
79
|
{
|
|
80
80
|
id: "vibecontrols-templates",
|
|
81
|
-
label:
|
|
82
|
-
path:
|
|
83
|
-
icon: /* @__PURE__ */
|
|
81
|
+
label: z("nav.templates") === "nav.templates" ? "Templates" : z("nav.templates"),
|
|
82
|
+
path: H(L, "templates"),
|
|
83
|
+
icon: /* @__PURE__ */ A(m, { size: 20 }),
|
|
84
84
|
order: 23,
|
|
85
85
|
group: "vibecontrols"
|
|
86
86
|
},
|
|
87
|
+
{
|
|
88
|
+
id: "vibecontrols-environments",
|
|
89
|
+
label: z("nav.environments") === "nav.environments" ? "Environments" : z("nav.environments"),
|
|
90
|
+
path: H(L, "environments"),
|
|
91
|
+
icon: /* @__PURE__ */ A(y, { size: 20 }),
|
|
92
|
+
order: 23.5,
|
|
93
|
+
group: "vibecontrols"
|
|
94
|
+
},
|
|
87
95
|
{
|
|
88
96
|
id: "vibecontrols-plugins",
|
|
89
|
-
label:
|
|
90
|
-
path:
|
|
91
|
-
icon: /* @__PURE__ */
|
|
97
|
+
label: z("nav.plugins") === "nav.plugins" ? "Plugins" : z("nav.plugins"),
|
|
98
|
+
path: H(L, "plugins"),
|
|
99
|
+
icon: /* @__PURE__ */ A(S, { size: 20 }),
|
|
92
100
|
order: 24,
|
|
93
101
|
group: "vibecontrols"
|
|
94
102
|
},
|
|
95
103
|
{
|
|
96
104
|
id: "vibecontrols-vibedeck",
|
|
97
|
-
label:
|
|
98
|
-
path:
|
|
99
|
-
icon: /* @__PURE__ */
|
|
105
|
+
label: z("nav.vibeDeck"),
|
|
106
|
+
path: H(L, "vibedeck"),
|
|
107
|
+
icon: /* @__PURE__ */ A(v, { size: 20 }),
|
|
100
108
|
order: 25,
|
|
101
109
|
group: "vibecontrols"
|
|
102
110
|
},
|
|
103
111
|
{
|
|
104
112
|
id: "vibecontrols-sessions",
|
|
105
|
-
label:
|
|
106
|
-
path:
|
|
107
|
-
icon: /* @__PURE__ */
|
|
113
|
+
label: z("nav.sessions"),
|
|
114
|
+
path: H(L, "sessions"),
|
|
115
|
+
icon: /* @__PURE__ */ A(D, { size: 20 }),
|
|
108
116
|
order: 30,
|
|
109
117
|
group: "vibecontrols"
|
|
110
118
|
},
|
|
111
119
|
{
|
|
112
120
|
id: "vibecontrols-vibecalendar",
|
|
113
|
-
label:
|
|
114
|
-
path:
|
|
115
|
-
icon: /* @__PURE__ */
|
|
121
|
+
label: z("nav.vibeCalendar"),
|
|
122
|
+
path: H(L, "calendar"),
|
|
123
|
+
icon: /* @__PURE__ */ A(p, { size: 20 }),
|
|
116
124
|
order: 35,
|
|
117
125
|
group: "vibecontrols"
|
|
118
126
|
},
|
|
119
127
|
{
|
|
120
128
|
id: "vibecontrols-ai",
|
|
121
|
-
label:
|
|
122
|
-
path:
|
|
123
|
-
icon: /* @__PURE__ */
|
|
129
|
+
label: z("nav.ai"),
|
|
130
|
+
path: H(L, "ai"),
|
|
131
|
+
icon: /* @__PURE__ */ A(f, { size: 20 }),
|
|
124
132
|
order: 38,
|
|
125
133
|
group: "vibecontrols"
|
|
126
134
|
},
|
|
127
135
|
{
|
|
128
136
|
id: "vibecontrols-ai-bookmarks",
|
|
129
|
-
label:
|
|
130
|
-
path:
|
|
131
|
-
icon: /* @__PURE__ */
|
|
137
|
+
label: z("nav.aiBookmarks"),
|
|
138
|
+
path: H(L, "ai/bookmarks"),
|
|
139
|
+
icon: /* @__PURE__ */ A(l, { size: 20 }),
|
|
132
140
|
order: 38.5,
|
|
133
141
|
group: "vibecontrols"
|
|
134
142
|
},
|
|
135
143
|
{
|
|
136
144
|
id: "vibecontrols-actions",
|
|
137
|
-
label:
|
|
138
|
-
path:
|
|
139
|
-
icon: /* @__PURE__ */
|
|
145
|
+
label: z("nav.actions"),
|
|
146
|
+
path: H(L, "actions"),
|
|
147
|
+
icon: /* @__PURE__ */ A(b, { size: 20 }),
|
|
140
148
|
order: 40,
|
|
141
149
|
group: "vibecontrols"
|
|
142
150
|
},
|
|
151
|
+
{
|
|
152
|
+
id: "vibecontrols-webhooks",
|
|
153
|
+
label: z("nav.webhooks") === "nav.webhooks" ? "Webhooks" : z("nav.webhooks"),
|
|
154
|
+
path: H(L, "webhooks"),
|
|
155
|
+
icon: /* @__PURE__ */ A(O, { size: 20 }),
|
|
156
|
+
order: 41,
|
|
157
|
+
group: "vibecontrols"
|
|
158
|
+
},
|
|
143
159
|
{
|
|
144
160
|
id: "vibecontrols-getting-started",
|
|
145
|
-
label:
|
|
146
|
-
path:
|
|
147
|
-
icon: /* @__PURE__ */
|
|
161
|
+
label: z("nav.gettingStarted"),
|
|
162
|
+
path: H(L, "getting-started"),
|
|
163
|
+
icon: /* @__PURE__ */ A(C, { size: 20 }),
|
|
148
164
|
order: 50,
|
|
149
165
|
group: "vibecontrols"
|
|
150
166
|
},
|
|
151
167
|
{
|
|
152
168
|
id: "vibecontrols-tunnels",
|
|
153
|
-
label:
|
|
154
|
-
path:
|
|
155
|
-
icon: /* @__PURE__ */
|
|
169
|
+
label: z("nav.tunnels"),
|
|
170
|
+
path: H(L, "tunnels"),
|
|
171
|
+
icon: /* @__PURE__ */ A(g, { size: 20 }),
|
|
156
172
|
order: 47,
|
|
157
173
|
group: "vibecontrols"
|
|
158
174
|
},
|
|
159
175
|
{
|
|
160
176
|
id: "vibecontrols-analytics",
|
|
161
|
-
label:
|
|
162
|
-
path:
|
|
163
|
-
icon: /* @__PURE__ */
|
|
177
|
+
label: z("nav.analytics"),
|
|
178
|
+
path: H(L, "analytics"),
|
|
179
|
+
icon: /* @__PURE__ */ A(s, { size: 20 }),
|
|
164
180
|
order: 55.5,
|
|
165
181
|
group: "vibecontrols-system"
|
|
166
182
|
},
|
|
167
183
|
{
|
|
168
184
|
id: "vibecontrols-audit",
|
|
169
|
-
label:
|
|
170
|
-
path:
|
|
171
|
-
icon: /* @__PURE__ */
|
|
185
|
+
label: z("nav.vibeAudit"),
|
|
186
|
+
path: H(L, "audit"),
|
|
187
|
+
icon: /* @__PURE__ */ A(E, { size: 20 }),
|
|
172
188
|
order: 56,
|
|
173
189
|
group: "vibecontrols-system"
|
|
174
190
|
},
|
|
175
191
|
{
|
|
176
192
|
id: "vibecontrols-health",
|
|
177
|
-
label:
|
|
178
|
-
path:
|
|
179
|
-
icon: /* @__PURE__ */
|
|
193
|
+
label: z("nav.health"),
|
|
194
|
+
path: H(L, "health"),
|
|
195
|
+
icon: /* @__PURE__ */ A(o, { size: 20 }),
|
|
180
196
|
order: 110,
|
|
181
197
|
group: "vibecontrols-system"
|
|
182
198
|
},
|
|
183
199
|
{
|
|
184
200
|
id: "vibecontrols-integrations",
|
|
185
|
-
label:
|
|
201
|
+
label: z("nav.integrations") === "nav.integrations" ? "Integrations" : z("nav.integrations"),
|
|
186
202
|
path: "/integrations",
|
|
187
|
-
icon: /* @__PURE__ */
|
|
203
|
+
icon: /* @__PURE__ */ A(x, { size: 20 }),
|
|
188
204
|
order: 115,
|
|
189
205
|
group: "vibecontrols-system"
|
|
190
206
|
},
|
|
191
207
|
{
|
|
192
208
|
id: "vibecontrols-settings",
|
|
193
|
-
label:
|
|
194
|
-
path:
|
|
195
|
-
icon: /* @__PURE__ */
|
|
209
|
+
label: z("nav.settings"),
|
|
210
|
+
path: H(L, "settings"),
|
|
211
|
+
icon: /* @__PURE__ */ A(T, { size: 20 }),
|
|
196
212
|
order: 120,
|
|
197
213
|
group: "vibecontrols-system"
|
|
198
214
|
}
|
|
199
215
|
]);
|
|
200
216
|
}, [
|
|
201
|
-
N,
|
|
202
217
|
F,
|
|
203
218
|
L,
|
|
204
|
-
|
|
205
|
-
|
|
219
|
+
z,
|
|
220
|
+
B,
|
|
221
|
+
V
|
|
206
222
|
]), r(() => {
|
|
207
|
-
if (!(!
|
|
223
|
+
if (!(!I || V)) return I([{
|
|
208
224
|
id: "vibecontrols-status",
|
|
209
225
|
label: "VibeControls Ready",
|
|
210
226
|
type: "status",
|
|
211
227
|
order: 10,
|
|
212
228
|
section: "left"
|
|
213
229
|
}]);
|
|
214
|
-
}, [
|
|
215
|
-
workspaceId:
|
|
230
|
+
}, [I, V]), /* @__PURE__ */ A(N, {
|
|
231
|
+
workspaceId: R ?? null,
|
|
216
232
|
gateway: "global",
|
|
217
233
|
defaultEnabled: !0,
|
|
218
|
-
children: /* @__PURE__ */
|
|
219
|
-
...
|
|
234
|
+
children: /* @__PURE__ */ j(e, {
|
|
235
|
+
...P,
|
|
220
236
|
children: [
|
|
221
|
-
|
|
222
|
-
/* @__PURE__ */
|
|
223
|
-
/* @__PURE__ */
|
|
237
|
+
V ? null : /* @__PURE__ */ A(n, {}),
|
|
238
|
+
/* @__PURE__ */ A(t, {}),
|
|
239
|
+
/* @__PURE__ */ A(M, {
|
|
224
240
|
position: "bottom-right",
|
|
225
241
|
offset: {
|
|
226
242
|
bottom: 96,
|
|
@@ -243,6 +259,6 @@ var M = (M) => {
|
|
|
243
259
|
});
|
|
244
260
|
};
|
|
245
261
|
//#endregion
|
|
246
|
-
export {
|
|
262
|
+
export { P as VibeControlsRoot };
|
|
247
263
|
|
|
248
264
|
//# sourceMappingURL=VibeControlsRoot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VibeControlsRoot.js","names":[],"sources":["../src/VibeControlsRoot.tsx"],"sourcesContent":["import type { CSSProperties, FC } from 'react';\nimport { useEffect, useMemo } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { useRecordProductVisit } from '@burdenoff/fe-libs/shared/hooks';\nimport {\n LayoutDashboard,\n Bot,\n Terminal,\n Zap,\n Globe,\n Settings,\n Activity,\n Rocket,\n LayoutGrid,\n CalendarClock,\n Shield,\n Server,\n GitBranch,\n Brain,\n Bookmark,\n PlayCircle,\n BarChart2,\n BookOpen,\n Box,\n FileCode,\n Plug,\n Puzzle,\n} from 'lucide-react';\nimport { VibeControlsProvider } from './providers/VibeControlsProvider';\nimport { FeatureFlagProvider } from '@burdenoff/fe-libs/shared/feature-flags';\nimport { Toaster } from '@burdenoff/fe-libs/ui';\nimport type { NavItem, VibeControlsRootProps } from './types';\nimport { VibeControlsRoutes } from './VibeControlsRoutes';\nimport { AgentEventsConnector } from './components/shared/AgentEventsConnector';\nimport './styles/vibecontrols.css';\nimport './styles/print.css';\n\n/**\n * Root component for the VibeControls microfrontend.\n *\n * This is the main entry point that host applications import and render.\n * It sets up the necessary providers and renders the internal routing.\n * Automatically registers navigation items with the shell if registration functions are provided.\n *\n * @example\n * ```tsx\n * import { VibeControlsRoot, type VibeControlsRootProps } from '@burdenoff/microfe-vibecontrols';\n *\n * function App() {\n * const props: VibeControlsRootProps = {\n * basePath: '/vibecontrols',\n * navigate: (path) => router.push(path),\n * currentUser: { id: '1', email: 'user@example.com', firstName: 'John', lastName: 'Doe' },\n * workspaceId: 'ws-123',\n * tenantId: 'tenant-123',\n * apiGatewayUrl: 'https://api.example.com',\n * authToken: 'token',\n * defaultView: 'agents',\n * onAgentSelect: (agent) => console.log('Agent selected:', agent),\n * onSessionStart: (session) => console.log('Session started:', session),\n * onVibeActivate: (vibe) => console.log('Vibe activated:', vibe),\n * registerNavItems: (items) => { return () => {}; },\n * };\n *\n * return <VibeControlsRoot {...props} />;\n * }\n * ```\n */\nexport const VibeControlsRoot: FC<VibeControlsRootProps> = (props) => {\n const { registerNavItems, registerFooterItems, basePath = '/', workspaceId } = props;\n const { t, locale } = useI18n();\n\n const isPublicLinkRoute =\n typeof window !== 'undefined' &&\n /^\\/vibecontrols\\/(share|deck)\\//.test(window.location.pathname);\n\n useRecordProductVisit({ productSlug: 'vibecontrols', enabled: !isPublicLinkRoute });\n\n // Helper to join paths correctly, avoiding double slashes\n const joinPath = (base: string, path: string): string => {\n const cleanBase = base.endsWith('/') ? base.slice(0, -1) : base;\n const cleanPath = path.startsWith('/') ? path : `/${path}`;\n return cleanBase + cleanPath;\n };\n\n // Register navigation items with the shell\n useEffect(() => {\n if (!registerNavItems || isPublicLinkRoute) return;\n\n const navItems: NavItem[] = [\n // Main navigation\n {\n id: 'vibecontrols-overview',\n label: t('nav.overview'),\n path: basePath === '/' ? '/' : basePath,\n icon: <LayoutDashboard size={20} />,\n order: 10,\n group: 'vibecontrols',\n },\n\n // Targets first — the primary entity\n {\n id: 'vibecontrols-targets',\n label: t('nav.targets'),\n path: joinPath(basePath, 'targets'),\n icon: <Server size={20} />,\n order: 12,\n group: 'vibecontrols',\n },\n {\n id: 'vibecontrols-agents',\n label: t('nav.agents'),\n path: joinPath(basePath, 'agents'),\n icon: <Bot size={20} />,\n order: 14,\n group: 'vibecontrols',\n },\n {\n id: 'vibecontrols-agent-graph',\n label: t('nav.agentGraph'),\n path: joinPath(basePath, 'agent-graph'),\n icon: <GitBranch size={20} />,\n order: 16,\n group: 'vibecontrols',\n },\n {\n id: 'vibecontrols-vibes',\n label: t('nav.vibes'),\n path: joinPath(basePath, 'vibes'),\n icon: <Zap size={20} />,\n order: 20,\n group: 'vibecontrols',\n },\n {\n id: 'vibecontrols-catalogs',\n label: t('nav.catalogs') === 'nav.catalogs' ? 'Catalogs' : t('nav.catalogs'),\n path: joinPath(basePath, 'catalogs'),\n icon: <BookOpen size={20} />,\n order: 21,\n group: 'vibecontrols',\n },\n {\n id: 'vibecontrols-components',\n label: t('nav.components') === 'nav.components' ? 'Components' : t('nav.components'),\n path: joinPath(basePath, 'components'),\n icon: <Box size={20} />,\n order: 22,\n group: 'vibecontrols',\n },\n {\n id: 'vibecontrols-templates',\n label: t('nav.templates') === 'nav.templates' ? 'Templates' : t('nav.templates'),\n path: joinPath(basePath, 'templates'),\n icon: <FileCode size={20} />,\n order: 23,\n group: 'vibecontrols',\n },\n {\n id: 'vibecontrols-plugins',\n label: t('nav.plugins') === 'nav.plugins' ? 'Plugins' : t('nav.plugins'),\n path: joinPath(basePath, 'plugins'),\n icon: <Puzzle size={20} />,\n order: 24,\n group: 'vibecontrols',\n },\n {\n id: 'vibecontrols-vibedeck',\n label: t('nav.vibeDeck'),\n path: joinPath(basePath, 'vibedeck'),\n icon: <LayoutGrid size={20} />,\n order: 25,\n group: 'vibecontrols',\n },\n {\n id: 'vibecontrols-sessions',\n label: t('nav.sessions'),\n path: joinPath(basePath, 'sessions'),\n icon: <Terminal size={20} />,\n order: 30,\n group: 'vibecontrols',\n },\n {\n id: 'vibecontrols-vibecalendar',\n label: t('nav.vibeCalendar'),\n path: joinPath(basePath, 'calendar'),\n icon: <CalendarClock size={20} />,\n order: 35,\n group: 'vibecontrols',\n },\n // AI Vibecoding\n {\n id: 'vibecontrols-ai',\n label: t('nav.ai'),\n path: joinPath(basePath, 'ai'),\n icon: <Brain size={20} />,\n order: 38,\n group: 'vibecontrols',\n },\n {\n id: 'vibecontrols-ai-bookmarks',\n label: t('nav.aiBookmarks'),\n path: joinPath(basePath, 'ai/bookmarks'),\n icon: <Bookmark size={20} />,\n order: 38.5,\n group: 'vibecontrols',\n },\n\n // Actions\n {\n id: 'vibecontrols-actions',\n label: t('nav.actions'),\n path: joinPath(basePath, 'actions'),\n icon: <PlayCircle size={20} />,\n order: 40,\n group: 'vibecontrols',\n },\n\n {\n id: 'vibecontrols-getting-started',\n label: t('nav.gettingStarted'),\n path: joinPath(basePath, 'getting-started'),\n icon: <Rocket size={20} />,\n order: 50,\n group: 'vibecontrols',\n },\n\n // Connection management\n {\n id: 'vibecontrols-tunnels',\n label: t('nav.tunnels'),\n path: joinPath(basePath, 'tunnels'),\n icon: <Globe size={20} />,\n order: 47,\n group: 'vibecontrols',\n },\n\n {\n id: 'vibecontrols-analytics',\n label: t('nav.analytics'),\n path: joinPath(basePath, 'analytics'),\n icon: <BarChart2 size={20} />,\n order: 55.5,\n group: 'vibecontrols-system',\n },\n {\n id: 'vibecontrols-audit',\n label: t('nav.vibeAudit'),\n path: joinPath(basePath, 'audit'),\n icon: <Shield size={20} />,\n order: 56,\n group: 'vibecontrols-system',\n },\n\n // Settings & System\n {\n id: 'vibecontrols-health',\n label: t('nav.health'),\n path: joinPath(basePath, 'health'),\n icon: <Activity size={20} />,\n order: 110,\n group: 'vibecontrols-system',\n },\n {\n id: 'vibecontrols-integrations',\n label:\n t('nav.integrations') === 'nav.integrations' ? 'Integrations' : t('nav.integrations'),\n // Absolute path — links out to the host shell's /integrations route\n // (microfe-integrations, mounted by vibecontrols-app). Keeps the\n // VibeControls MFE compliant with the no-cross-MFE-import rule.\n path: '/integrations',\n icon: <Plug size={20} />,\n order: 115,\n group: 'vibecontrols-system',\n },\n {\n id: 'vibecontrols-settings',\n label: t('nav.settings'),\n path: joinPath(basePath, 'settings'),\n icon: <Settings size={20} />,\n order: 120,\n group: 'vibecontrols-system',\n },\n ];\n\n // Register and get cleanup function\n const cleanup = registerNavItems(navItems);\n\n // Return cleanup function to unregister on unmount\n return cleanup;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [registerNavItems, basePath, t, locale, isPublicLinkRoute]);\n\n // Register footer items (example: status indicator in left section)\n useEffect(() => {\n if (!registerFooterItems || isPublicLinkRoute) return;\n\n const footerItems = [\n {\n id: 'vibecontrols-status',\n label: 'VibeControls Ready',\n type: 'status' as const,\n order: 10,\n section: 'left' as const,\n },\n ];\n\n const cleanup = registerFooterItems(footerItems);\n return cleanup;\n }, [registerFooterItems, isPublicLinkRoute]);\n\n return (\n <FeatureFlagProvider workspaceId={workspaceId ?? null} gateway=\"global\" defaultEnabled={true}>\n <VibeControlsProvider {...props}>\n {!isPublicLinkRoute ? (\n /* Agent events connector - syncs active agent to WebSocket */\n <AgentEventsConnector />\n ) : null}\n <VibeControlsRoutes />\n {/* Single sonner toaster for the whole module (lib/toast.ts emits\n to it). Offset clears the shell's page-discussion FAB at\n bottom-6 right-6. The style block remaps sonner's theme vars to\n this app's semantic tokens (the fe-libs defaults reference\n shadcn vars that are not defined in this shell). */}\n <Toaster\n position=\"bottom-right\"\n offset={{ bottom: 96, right: 16 }}\n mobileOffset={{ bottom: 96, left: 16, right: 16 }}\n style={\n {\n '--normal-bg': 'var(--color-bg-elevated)',\n '--normal-text': 'var(--color-text-primary)',\n '--normal-border': 'var(--color-border-default)',\n '--border-radius': 'var(--radius-card)',\n } as CSSProperties\n }\n />\n </VibeControlsProvider>\n </FeatureFlagProvider>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VibeControlsRoot.js","names":[],"sources":["../src/VibeControlsRoot.tsx"],"sourcesContent":["import type { CSSProperties, FC } from 'react';\nimport { useEffect, useMemo } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { useRecordProductVisit } from '@burdenoff/fe-libs/shared/hooks';\nimport {\n LayoutDashboard,\n Bot,\n Terminal,\n Zap,\n Globe,\n Settings,\n Activity,\n Rocket,\n LayoutGrid,\n CalendarClock,\n Shield,\n Server,\n GitBranch,\n Brain,\n Bookmark,\n PlayCircle,\n BarChart2,\n BookOpen,\n Box,\n FileCode,\n Plug,\n Puzzle,\n Network,\n Webhook,\n} from 'lucide-react';\nimport { VibeControlsProvider } from './providers/VibeControlsProvider';\nimport { FeatureFlagProvider } from '@burdenoff/fe-libs/shared/feature-flags';\nimport { Toaster } from '@burdenoff/fe-libs/ui';\nimport type { NavItem, VibeControlsRootProps } from './types';\nimport { VibeControlsRoutes } from './VibeControlsRoutes';\nimport { AgentEventsConnector } from './components/shared/AgentEventsConnector';\nimport './styles/vibecontrols.css';\nimport './styles/print.css';\n\n/**\n * Root component for the VibeControls microfrontend.\n *\n * This is the main entry point that host applications import and render.\n * It sets up the necessary providers and renders the internal routing.\n * Automatically registers navigation items with the shell if registration functions are provided.\n *\n * @example\n * ```tsx\n * import { VibeControlsRoot, type VibeControlsRootProps } from '@burdenoff/microfe-vibecontrols';\n *\n * function App() {\n * const props: VibeControlsRootProps = {\n * basePath: '/vibecontrols',\n * navigate: (path) => router.push(path),\n * currentUser: { id: '1', email: 'user@example.com', firstName: 'John', lastName: 'Doe' },\n * workspaceId: 'ws-123',\n * tenantId: 'tenant-123',\n * apiGatewayUrl: 'https://api.example.com',\n * authToken: 'token',\n * defaultView: 'agents',\n * onAgentSelect: (agent) => console.log('Agent selected:', agent),\n * onSessionStart: (session) => console.log('Session started:', session),\n * onVibeActivate: (vibe) => console.log('Vibe activated:', vibe),\n * registerNavItems: (items) => { return () => {}; },\n * };\n *\n * return <VibeControlsRoot {...props} />;\n * }\n * ```\n */\nexport const VibeControlsRoot: FC<VibeControlsRootProps> = (props) => {\n const { registerNavItems, registerFooterItems, basePath = '/', workspaceId } = props;\n const { t, locale } = useI18n();\n\n const isPublicLinkRoute =\n typeof window !== 'undefined' &&\n /^\\/vibecontrols\\/(share|deck)\\//.test(window.location.pathname);\n\n useRecordProductVisit({ productSlug: 'vibecontrols', enabled: !isPublicLinkRoute });\n\n // Helper to join paths correctly, avoiding double slashes\n const joinPath = (base: string, path: string): string => {\n const cleanBase = base.endsWith('/') ? base.slice(0, -1) : base;\n const cleanPath = path.startsWith('/') ? path : `/${path}`;\n return cleanBase + cleanPath;\n };\n\n // Register navigation items with the shell\n useEffect(() => {\n if (!registerNavItems || isPublicLinkRoute) return;\n\n const navItems: NavItem[] = [\n // Main navigation\n {\n id: 'vibecontrols-overview',\n label: t('nav.overview'),\n path: basePath === '/' ? '/' : basePath,\n icon: <LayoutDashboard size={20} />,\n order: 10,\n group: 'vibecontrols',\n },\n\n // Targets first — the primary entity\n {\n id: 'vibecontrols-targets',\n label: t('nav.targets'),\n path: joinPath(basePath, 'targets'),\n icon: <Server size={20} />,\n order: 12,\n group: 'vibecontrols',\n },\n {\n id: 'vibecontrols-agents',\n label: t('nav.agents'),\n path: joinPath(basePath, 'agents'),\n icon: <Bot size={20} />,\n order: 14,\n group: 'vibecontrols',\n },\n {\n id: 'vibecontrols-agent-graph',\n label: t('nav.agentGraph'),\n path: joinPath(basePath, 'agent-graph'),\n icon: <GitBranch size={20} />,\n order: 16,\n group: 'vibecontrols',\n },\n {\n id: 'vibecontrols-vibes',\n label: t('nav.vibes'),\n path: joinPath(basePath, 'vibes'),\n icon: <Zap size={20} />,\n order: 20,\n group: 'vibecontrols',\n },\n {\n id: 'vibecontrols-catalogs',\n label: t('nav.catalogs') === 'nav.catalogs' ? 'Catalogs' : t('nav.catalogs'),\n path: joinPath(basePath, 'catalogs'),\n icon: <BookOpen size={20} />,\n order: 21,\n group: 'vibecontrols',\n },\n {\n id: 'vibecontrols-components',\n label: t('nav.components') === 'nav.components' ? 'Components' : t('nav.components'),\n path: joinPath(basePath, 'components'),\n icon: <Box size={20} />,\n order: 22,\n group: 'vibecontrols',\n },\n {\n id: 'vibecontrols-templates',\n label: t('nav.templates') === 'nav.templates' ? 'Templates' : t('nav.templates'),\n path: joinPath(basePath, 'templates'),\n icon: <FileCode size={20} />,\n order: 23,\n group: 'vibecontrols',\n },\n {\n id: 'vibecontrols-environments',\n label:\n t('nav.environments') === 'nav.environments' ? 'Environments' : t('nav.environments'),\n path: joinPath(basePath, 'environments'),\n icon: <Network size={20} />,\n order: 23.5,\n group: 'vibecontrols',\n },\n {\n id: 'vibecontrols-plugins',\n label: t('nav.plugins') === 'nav.plugins' ? 'Plugins' : t('nav.plugins'),\n path: joinPath(basePath, 'plugins'),\n icon: <Puzzle size={20} />,\n order: 24,\n group: 'vibecontrols',\n },\n {\n id: 'vibecontrols-vibedeck',\n label: t('nav.vibeDeck'),\n path: joinPath(basePath, 'vibedeck'),\n icon: <LayoutGrid size={20} />,\n order: 25,\n group: 'vibecontrols',\n },\n {\n id: 'vibecontrols-sessions',\n label: t('nav.sessions'),\n path: joinPath(basePath, 'sessions'),\n icon: <Terminal size={20} />,\n order: 30,\n group: 'vibecontrols',\n },\n {\n id: 'vibecontrols-vibecalendar',\n label: t('nav.vibeCalendar'),\n path: joinPath(basePath, 'calendar'),\n icon: <CalendarClock size={20} />,\n order: 35,\n group: 'vibecontrols',\n },\n // AI Vibecoding\n {\n id: 'vibecontrols-ai',\n label: t('nav.ai'),\n path: joinPath(basePath, 'ai'),\n icon: <Brain size={20} />,\n order: 38,\n group: 'vibecontrols',\n },\n {\n id: 'vibecontrols-ai-bookmarks',\n label: t('nav.aiBookmarks'),\n path: joinPath(basePath, 'ai/bookmarks'),\n icon: <Bookmark size={20} />,\n order: 38.5,\n group: 'vibecontrols',\n },\n\n // Actions\n {\n id: 'vibecontrols-actions',\n label: t('nav.actions'),\n path: joinPath(basePath, 'actions'),\n icon: <PlayCircle size={20} />,\n order: 40,\n group: 'vibecontrols',\n },\n {\n id: 'vibecontrols-webhooks',\n label: t('nav.webhooks') === 'nav.webhooks' ? 'Webhooks' : t('nav.webhooks'),\n path: joinPath(basePath, 'webhooks'),\n icon: <Webhook size={20} />,\n order: 41,\n group: 'vibecontrols',\n },\n\n {\n id: 'vibecontrols-getting-started',\n label: t('nav.gettingStarted'),\n path: joinPath(basePath, 'getting-started'),\n icon: <Rocket size={20} />,\n order: 50,\n group: 'vibecontrols',\n },\n\n // Connection management\n {\n id: 'vibecontrols-tunnels',\n label: t('nav.tunnels'),\n path: joinPath(basePath, 'tunnels'),\n icon: <Globe size={20} />,\n order: 47,\n group: 'vibecontrols',\n },\n\n {\n id: 'vibecontrols-analytics',\n label: t('nav.analytics'),\n path: joinPath(basePath, 'analytics'),\n icon: <BarChart2 size={20} />,\n order: 55.5,\n group: 'vibecontrols-system',\n },\n {\n id: 'vibecontrols-audit',\n label: t('nav.vibeAudit'),\n path: joinPath(basePath, 'audit'),\n icon: <Shield size={20} />,\n order: 56,\n group: 'vibecontrols-system',\n },\n\n // Settings & System\n {\n id: 'vibecontrols-health',\n label: t('nav.health'),\n path: joinPath(basePath, 'health'),\n icon: <Activity size={20} />,\n order: 110,\n group: 'vibecontrols-system',\n },\n {\n id: 'vibecontrols-integrations',\n label:\n t('nav.integrations') === 'nav.integrations' ? 'Integrations' : t('nav.integrations'),\n // Absolute path — links out to the host shell's /integrations route\n // (microfe-integrations, mounted by vibecontrols-app). Keeps the\n // VibeControls MFE compliant with the no-cross-MFE-import rule.\n path: '/integrations',\n icon: <Plug size={20} />,\n order: 115,\n group: 'vibecontrols-system',\n },\n {\n id: 'vibecontrols-settings',\n label: t('nav.settings'),\n path: joinPath(basePath, 'settings'),\n icon: <Settings size={20} />,\n order: 120,\n group: 'vibecontrols-system',\n },\n ];\n\n // Register and get cleanup function\n const cleanup = registerNavItems(navItems);\n\n // Return cleanup function to unregister on unmount\n return cleanup;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [registerNavItems, basePath, t, locale, isPublicLinkRoute]);\n\n // Register footer items (example: status indicator in left section)\n useEffect(() => {\n if (!registerFooterItems || isPublicLinkRoute) return;\n\n const footerItems = [\n {\n id: 'vibecontrols-status',\n label: 'VibeControls Ready',\n type: 'status' as const,\n order: 10,\n section: 'left' as const,\n },\n ];\n\n const cleanup = registerFooterItems(footerItems);\n return cleanup;\n }, [registerFooterItems, isPublicLinkRoute]);\n\n return (\n <FeatureFlagProvider workspaceId={workspaceId ?? null} gateway=\"global\" defaultEnabled={true}>\n <VibeControlsProvider {...props}>\n {!isPublicLinkRoute ? (\n /* Agent events connector - syncs active agent to WebSocket */\n <AgentEventsConnector />\n ) : null}\n <VibeControlsRoutes />\n {/* Single sonner toaster for the whole module (lib/toast.ts emits\n to it). Offset clears the shell's page-discussion FAB at\n bottom-6 right-6. The style block remaps sonner's theme vars to\n this app's semantic tokens (the fe-libs defaults reference\n shadcn vars that are not defined in this shell). */}\n <Toaster\n position=\"bottom-right\"\n offset={{ bottom: 96, right: 16 }}\n mobileOffset={{ bottom: 96, left: 16, right: 16 }}\n style={\n {\n '--normal-bg': 'var(--color-bg-elevated)',\n '--normal-text': 'var(--color-text-primary)',\n '--normal-border': 'var(--color-border-default)',\n '--border-radius': 'var(--radius-card)',\n } as CSSProperties\n }\n />\n </VibeControlsProvider>\n </FeatureFlagProvider>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import { useTr as e } from "./shared/hooks/useTr.js";
|
|
2
2
|
import t, { Suspense as n, useEffect as r } from "react";
|
|
3
|
-
import { Navigate as i, Route as a, Routes as
|
|
3
|
+
import { Navigate as i, Route as a, Routes as o, useLocation as s, useParams as ee } from "react-router-dom";
|
|
4
4
|
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
5
5
|
import { FeatureGate as u } from "@burdenoff/fe-libs/shared/feature-flags";
|
|
6
6
|
//#region src/VibeControlsRoutes.tsx
|
|
7
|
-
var d = t.lazy(() => import("./pages/OverviewPage.js").then((e) => ({ default: e.OverviewPage }))), f = t.lazy(() => import("./pages/AgentsLandingPage.js").then((e) => ({ default: e.AgentsLandingPage }))), p = t.lazy(() => import("./pages/AgentDetailsPage.js").then((e) => ({ default: e.AgentDetailsPage }))), m = t.lazy(() => import("./pages/TargetDetailsPage.js").then((e) => ({ default: e.TargetDetailsPage }))), h = t.lazy(() => import("./pages/SessionsPage.js").then((e) => ({ default: e.SessionsPage }))), g = t.lazy(() => import("./pages/SessionDetailsPage.js").then((e) => ({ default: e.SessionDetailsPage }))), _ = t.lazy(() => import("./pages/VibesPage.js").then((e) => ({ default: e.VibesPage }))), v = t.lazy(() => import("./pages/VibeDetailsPage.js").then((e) => ({ default: e.VibeDetailsPage }))), y = t.lazy(() => import("./pages/NoteDetailsPage.js").then((e) => ({ default: e.NoteDetailsPage }))), b = t.lazy(() => import("./pages/TunnelsLandingPage.js").then((e) => ({ default: e.TunnelsLandingPage }))), x = t.lazy(() => import("./pages/tunnels/TunnelDetailsPage.js").then((e) => ({ default: e.TunnelDetailsPage }))), S = t.lazy(() => import("./components/tunnels/TunnelCreateWizard.js").then((e) => ({ default: e.TunnelCreateWizard }))), C = t.lazy(() => import("./pages/SettingsPage.js").then((e) => ({ default: e.SettingsPage }))), w = t.lazy(() => import("./pages/HealthPage.js").then((e) => ({ default: e.HealthPage }))), T = t.lazy(() => import("./pages/GettingStartedPage.js").then((e) => ({ default: e.GettingStartedPage }))), E = t.lazy(() => import("./pages/SharedSessionPage.js").then((e) => ({ default: e.SharedSessionPage }))), D = t.lazy(() => import("./pages/VibeDeckPage.js").then((e) => ({ default: e.VibeDeckPage }))), O = t.lazy(() => import("./pages/SharedVibeDeckPage.js").then((e) => ({ default: e.SharedVibeDeckPage }))), k = t.lazy(() => import("./pages/VibeCalendarPage.js").then((e) => ({ default: e.VibeCalendarPage }))), A = t.lazy(() => import("./pages/VibeTaskDetailPage.js").then((e) => ({ default: e.VibeTaskDetailPage }))),
|
|
8
|
-
function
|
|
7
|
+
var d = t.lazy(() => import("./pages/OverviewPage.js").then((e) => ({ default: e.OverviewPage }))), f = t.lazy(() => import("./pages/AgentsLandingPage.js").then((e) => ({ default: e.AgentsLandingPage }))), p = t.lazy(() => import("./pages/AgentDetailsPage.js").then((e) => ({ default: e.AgentDetailsPage }))), m = t.lazy(() => import("./pages/TargetDetailsPage.js").then((e) => ({ default: e.TargetDetailsPage }))), h = t.lazy(() => import("./pages/SessionsPage.js").then((e) => ({ default: e.SessionsPage }))), g = t.lazy(() => import("./pages/SessionDetailsPage.js").then((e) => ({ default: e.SessionDetailsPage }))), _ = t.lazy(() => import("./pages/VibesPage.js").then((e) => ({ default: e.VibesPage }))), v = t.lazy(() => import("./pages/VibeDetailsPage.js").then((e) => ({ default: e.VibeDetailsPage }))), y = t.lazy(() => import("./pages/NoteDetailsPage.js").then((e) => ({ default: e.NoteDetailsPage }))), b = t.lazy(() => import("./pages/TunnelsLandingPage.js").then((e) => ({ default: e.TunnelsLandingPage }))), x = t.lazy(() => import("./pages/tunnels/TunnelDetailsPage.js").then((e) => ({ default: e.TunnelDetailsPage }))), S = t.lazy(() => import("./components/tunnels/TunnelCreateWizard.js").then((e) => ({ default: e.TunnelCreateWizard }))), C = t.lazy(() => import("./pages/SettingsPage.js").then((e) => ({ default: e.SettingsPage }))), w = t.lazy(() => import("./pages/HealthPage.js").then((e) => ({ default: e.HealthPage }))), T = t.lazy(() => import("./pages/GettingStartedPage.js").then((e) => ({ default: e.GettingStartedPage }))), E = t.lazy(() => import("./pages/SharedSessionPage.js").then((e) => ({ default: e.SharedSessionPage }))), D = t.lazy(() => import("./pages/VibeDeckPage.js").then((e) => ({ default: e.VibeDeckPage }))), O = t.lazy(() => import("./pages/SharedVibeDeckPage.js").then((e) => ({ default: e.SharedVibeDeckPage }))), k = t.lazy(() => import("./pages/VibeCalendarPage.js").then((e) => ({ default: e.VibeCalendarPage }))), A = t.lazy(() => import("./pages/VibeTaskDetailPage.js").then((e) => ({ default: e.VibeTaskDetailPage }))), j = t.lazy(() => import("./pages/ScheduledJobDetailPage.js").then((e) => ({ default: e.ScheduledJobDetailPage }))), te = t.lazy(() => import("./pages/ActionsPage.js").then((e) => ({ default: e.ActionsPage }))), M = t.lazy(() => import("./pages/VibeAuditPage.js").then((e) => ({ default: e.VibeAuditPage }))), N = t.lazy(() => import("./pages/AnalyticsPage.js").then((e) => ({ default: e.AnalyticsPage }))), P = t.lazy(() => import("./pages/VibeDocsPage.js").then((e) => ({ default: e.VibeDocsPage }))), F = t.lazy(() => import("./pages/LogsPage.js").then((e) => ({ default: e.LogsPage }))), I = t.lazy(() => import("./pages/CatalogPage.js").then((e) => ({ default: e.CatalogPage }))), L = t.lazy(() => import("./pages/CatalogDetailPage.js").then((e) => ({ default: e.CatalogDetailPage }))), R = t.lazy(() => import("./pages/CatalogDocsPage.js").then((e) => ({ default: e.CatalogDocsPage }))), z = t.lazy(() => import("./pages/ComponentsPage.js").then((e) => ({ default: e.ComponentsPage }))), B = t.lazy(() => import("./pages/EnvTopologyPage.js").then((e) => ({ default: e.EnvTopologyPage }))), V = t.lazy(() => import("./pages/WebhooksPage.js").then((e) => ({ default: e.WebhooksPage }))), H = t.lazy(() => import("./pages/ComponentDetailPage.js").then((e) => ({ default: e.ComponentDetailPage }))), U = t.lazy(() => import("./pages/ComponentDocsPage.js").then((e) => ({ default: e.ComponentDocsPage }))), W = t.lazy(() => import("./pages/TemplatesPage.js").then((e) => ({ default: e.TemplatesPage }))), G = t.lazy(() => import("./pages/TemplateDetailPage.js").then((e) => ({ default: e.TemplateDetailPage }))), K = t.lazy(() => import("./pages/PluginsCatalogPage.js").then((e) => ({ default: e.PluginsCatalogPage }))), q = t.lazy(() => import("./pages/ai/AIPage.js").then((e) => ({ default: e.AIPage }))), J = t.lazy(() => import("./pages/ai/AISessionDetailPage.js").then((e) => ({ default: e.AISessionDetailPage }))), Y = t.lazy(() => import("./pages/ai/AgentManagerPage.js").then((e) => ({ default: e.AgentManagerPage }))), X = t.lazy(() => import("./pages/ai/AIBookmarksPage.js").then((e) => ({ default: e.AIBookmarksPage })));
|
|
8
|
+
function Z() {
|
|
9
9
|
return /* @__PURE__ */ c("div", {
|
|
10
10
|
className: "flex items-center justify-center h-full min-h-[200px]",
|
|
11
11
|
children: /* @__PURE__ */ c("div", { className: "animate-pulse bg-muted rounded w-full h-full" })
|
|
12
12
|
});
|
|
13
13
|
}
|
|
14
|
-
function
|
|
15
|
-
let { pathname: e } =
|
|
14
|
+
function Q() {
|
|
15
|
+
let { pathname: e } = s();
|
|
16
16
|
return r(() => {
|
|
17
17
|
let e = document.querySelector("main");
|
|
18
18
|
e && (e.scrollTop = 0);
|
|
19
19
|
}, [e]), null;
|
|
20
20
|
}
|
|
21
|
-
var
|
|
21
|
+
var ne = new Set([
|
|
22
22
|
"overview",
|
|
23
23
|
"templates",
|
|
24
24
|
"contexts",
|
|
@@ -29,12 +29,12 @@ var Z = new Set([
|
|
|
29
29
|
"playground",
|
|
30
30
|
"config"
|
|
31
31
|
]);
|
|
32
|
-
function
|
|
33
|
-
let { tab: e } =
|
|
32
|
+
function re() {
|
|
33
|
+
let { tab: e } = ee();
|
|
34
34
|
return e === "plan" ? /* @__PURE__ */ c(i, {
|
|
35
35
|
to: "/vibecontrols/ai-tools/plan",
|
|
36
36
|
replace: !0
|
|
37
|
-
}) : e &&
|
|
37
|
+
}) : e && ne.has(e) ? /* @__PURE__ */ c(i, {
|
|
38
38
|
to: `/vibecontrols/ai-tools/ai/${e}`,
|
|
39
39
|
replace: !0
|
|
40
40
|
}) : /* @__PURE__ */ c(i, {
|
|
@@ -42,7 +42,7 @@ function Q() {
|
|
|
42
42
|
replace: !0
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
|
-
function
|
|
45
|
+
function ie() {
|
|
46
46
|
return /* @__PURE__ */ c("div", {
|
|
47
47
|
className: "flex items-center justify-center h-full min-h-[200px] text-text-secondary text-sm",
|
|
48
48
|
children: e()("vibecontrols.pages.featureDisabled", "This feature is currently disabled. You can enable it from Feature Previews.")
|
|
@@ -52,21 +52,21 @@ function $(e, t, n = !0) {
|
|
|
52
52
|
return /* @__PURE__ */ c(u, {
|
|
53
53
|
flag: e,
|
|
54
54
|
defaultValue: n,
|
|
55
|
-
fallback: /* @__PURE__ */ c(
|
|
55
|
+
fallback: /* @__PURE__ */ c(ie, {}),
|
|
56
56
|
children: t
|
|
57
57
|
});
|
|
58
58
|
}
|
|
59
|
-
function
|
|
59
|
+
function ae() {
|
|
60
60
|
return /* @__PURE__ */ l(n, {
|
|
61
|
-
fallback: /* @__PURE__ */ c(
|
|
62
|
-
children: [/* @__PURE__ */ c(
|
|
61
|
+
fallback: /* @__PURE__ */ c(Z, {}),
|
|
62
|
+
children: [/* @__PURE__ */ c(Q, {}), /* @__PURE__ */ l(o, { children: [
|
|
63
63
|
/* @__PURE__ */ c(a, {
|
|
64
64
|
index: !0,
|
|
65
65
|
element: $("vibecontrols.overview", /* @__PURE__ */ c(d, {}))
|
|
66
66
|
}),
|
|
67
67
|
/* @__PURE__ */ c(a, {
|
|
68
68
|
path: "plugins",
|
|
69
|
-
element: $("vibecontrols.vibes", /* @__PURE__ */ c(
|
|
69
|
+
element: $("vibecontrols.vibes", /* @__PURE__ */ c(K, {}))
|
|
70
70
|
}),
|
|
71
71
|
/* @__PURE__ */ c(a, {
|
|
72
72
|
path: "agents",
|
|
@@ -116,19 +116,19 @@ function re() {
|
|
|
116
116
|
}),
|
|
117
117
|
/* @__PURE__ */ c(a, {
|
|
118
118
|
path: "ai",
|
|
119
|
-
element: $("vibecontrols.ai", /* @__PURE__ */ c(
|
|
119
|
+
element: $("vibecontrols.ai", /* @__PURE__ */ c(Y, {}))
|
|
120
120
|
}),
|
|
121
121
|
/* @__PURE__ */ c(a, {
|
|
122
122
|
path: "ai/bookmarks",
|
|
123
|
-
element: $("vibecontrols.ai", /* @__PURE__ */ c(
|
|
123
|
+
element: $("vibecontrols.ai", /* @__PURE__ */ c(X, {}))
|
|
124
124
|
}),
|
|
125
125
|
/* @__PURE__ */ c(a, {
|
|
126
126
|
path: "ai/:tab",
|
|
127
|
-
element: $("vibecontrols.ai", /* @__PURE__ */ c(
|
|
127
|
+
element: $("vibecontrols.ai", /* @__PURE__ */ c(Y, {}))
|
|
128
128
|
}),
|
|
129
129
|
/* @__PURE__ */ c(a, {
|
|
130
130
|
path: "ai/sessions/:sessionId",
|
|
131
|
-
element: $("vibecontrols.ai", /* @__PURE__ */ c(
|
|
131
|
+
element: $("vibecontrols.ai", /* @__PURE__ */ c(Y, {}))
|
|
132
132
|
}),
|
|
133
133
|
/* @__PURE__ */ c(a, {
|
|
134
134
|
path: "ai-tools",
|
|
@@ -139,7 +139,7 @@ function re() {
|
|
|
139
139
|
}),
|
|
140
140
|
/* @__PURE__ */ c(a, {
|
|
141
141
|
path: "ai-tools/plan",
|
|
142
|
-
element: $("vibecontrols.ai", /* @__PURE__ */ c(
|
|
142
|
+
element: $("vibecontrols.ai", /* @__PURE__ */ c(q, {}))
|
|
143
143
|
}),
|
|
144
144
|
/* @__PURE__ */ c(a, {
|
|
145
145
|
path: "ai-tools/ai",
|
|
@@ -150,15 +150,15 @@ function re() {
|
|
|
150
150
|
}),
|
|
151
151
|
/* @__PURE__ */ c(a, {
|
|
152
152
|
path: "ai-tools/ai/:tab",
|
|
153
|
-
element: $("vibecontrols.ai", /* @__PURE__ */ c(
|
|
153
|
+
element: $("vibecontrols.ai", /* @__PURE__ */ c(q, {}))
|
|
154
154
|
}),
|
|
155
155
|
/* @__PURE__ */ c(a, {
|
|
156
156
|
path: "ai-tools/:tab",
|
|
157
|
-
element: /* @__PURE__ */ c(
|
|
157
|
+
element: /* @__PURE__ */ c(re, {})
|
|
158
158
|
}),
|
|
159
159
|
/* @__PURE__ */ c(a, {
|
|
160
160
|
path: "ai-tools/sessions/:sessionId",
|
|
161
|
-
element: $("vibecontrols.ai", /* @__PURE__ */ c(
|
|
161
|
+
element: $("vibecontrols.ai", /* @__PURE__ */ c(J, {}))
|
|
162
162
|
}),
|
|
163
163
|
/* @__PURE__ */ c(a, {
|
|
164
164
|
path: "targets",
|
|
@@ -195,24 +195,28 @@ function re() {
|
|
|
195
195
|
element: $("vibecontrols.components", /* @__PURE__ */ c(z, {}))
|
|
196
196
|
}),
|
|
197
197
|
/* @__PURE__ */ c(a, {
|
|
198
|
-
path: "
|
|
198
|
+
path: "environments",
|
|
199
199
|
element: $("vibecontrols.components", /* @__PURE__ */ c(B, {}))
|
|
200
200
|
}),
|
|
201
|
+
/* @__PURE__ */ c(a, {
|
|
202
|
+
path: "components/:id",
|
|
203
|
+
element: $("vibecontrols.components", /* @__PURE__ */ c(H, {}))
|
|
204
|
+
}),
|
|
201
205
|
/* @__PURE__ */ c(a, {
|
|
202
206
|
path: "components/:id/docs/*",
|
|
203
|
-
element: $("vibecontrols.components", /* @__PURE__ */ c(
|
|
207
|
+
element: $("vibecontrols.components", /* @__PURE__ */ c(U, {}))
|
|
204
208
|
}),
|
|
205
209
|
/* @__PURE__ */ c(a, {
|
|
206
210
|
path: "templates",
|
|
207
|
-
element: $("vibecontrols.templates", /* @__PURE__ */ c(
|
|
211
|
+
element: $("vibecontrols.templates", /* @__PURE__ */ c(W, {}))
|
|
208
212
|
}),
|
|
209
213
|
/* @__PURE__ */ c(a, {
|
|
210
214
|
path: "templates/:id",
|
|
211
|
-
element: $("vibecontrols.templates", /* @__PURE__ */ c(
|
|
215
|
+
element: $("vibecontrols.templates", /* @__PURE__ */ c(G, {}))
|
|
212
216
|
}),
|
|
213
217
|
/* @__PURE__ */ c(a, {
|
|
214
218
|
path: "actions",
|
|
215
|
-
element: $("vibecontrols.actions", /* @__PURE__ */ c(
|
|
219
|
+
element: $("vibecontrols.actions", /* @__PURE__ */ c(te, {}))
|
|
216
220
|
}),
|
|
217
221
|
/* @__PURE__ */ c(a, {
|
|
218
222
|
path: "vibedeck",
|
|
@@ -232,28 +236,19 @@ function re() {
|
|
|
232
236
|
}),
|
|
233
237
|
/* @__PURE__ */ c(a, {
|
|
234
238
|
path: "calendar/scheduled-job/:jobId",
|
|
235
|
-
element: $("vibecontrols.calendar", /* @__PURE__ */ c(
|
|
239
|
+
element: $("vibecontrols.calendar", /* @__PURE__ */ c(j, {}))
|
|
236
240
|
}),
|
|
237
241
|
/* @__PURE__ */ c(a, {
|
|
238
242
|
path: "webhooks",
|
|
239
|
-
element: /* @__PURE__ */ c(
|
|
240
|
-
to: "/devportal/webhooks",
|
|
241
|
-
replace: !0
|
|
242
|
-
})
|
|
243
|
+
element: $("vibecontrols.webhooks", /* @__PURE__ */ c(V, {}))
|
|
243
244
|
}),
|
|
244
245
|
/* @__PURE__ */ c(a, {
|
|
245
246
|
path: "webhooks/new",
|
|
246
|
-
element: /* @__PURE__ */ c(
|
|
247
|
-
to: "/devportal/webhooks/new",
|
|
248
|
-
replace: !0
|
|
249
|
-
})
|
|
247
|
+
element: $("vibecontrols.webhooks", /* @__PURE__ */ c(V, {}))
|
|
250
248
|
}),
|
|
251
249
|
/* @__PURE__ */ c(a, {
|
|
252
250
|
path: "webhooks/:id",
|
|
253
|
-
element: /* @__PURE__ */ c(
|
|
254
|
-
to: "/devportal/webhooks",
|
|
255
|
-
replace: !0
|
|
256
|
-
})
|
|
251
|
+
element: $("vibecontrols.webhooks", /* @__PURE__ */ c(V, {}))
|
|
257
252
|
}),
|
|
258
253
|
/* @__PURE__ */ c(a, {
|
|
259
254
|
path: "gitops",
|
|
@@ -345,6 +340,6 @@ function re() {
|
|
|
345
340
|
});
|
|
346
341
|
}
|
|
347
342
|
//#endregion
|
|
348
|
-
export {
|
|
343
|
+
export { ae as VibeControlsRoutes };
|
|
349
344
|
|
|
350
345
|
//# sourceMappingURL=VibeControlsRoutes.js.map
|