@burdenoff/microfe-vibecontrols 2026.624.3 → 2026.625.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/shared/Card.js +3 -3
- package/dist/components/shared/Card.js.map +1 -1
- package/dist/components/shared/StatCard.js +29 -22
- package/dist/components/shared/StatCard.js.map +1 -1
- package/dist/pages/ActionsPage.js +131 -134
- package/dist/pages/ActionsPage.js.map +1 -1
- package/dist/pages/AnalyticsPage.js +79 -77
- package/dist/pages/AnalyticsPage.js.map +1 -1
- package/dist/pages/CatalogPage.js +120 -122
- package/dist/pages/CatalogPage.js.map +1 -1
- package/dist/pages/ComponentsPage.js +67 -69
- package/dist/pages/ComponentsPage.js.map +1 -1
- package/dist/pages/GettingStartedPage.js +104 -99
- package/dist/pages/GettingStartedPage.js.map +1 -1
- package/dist/pages/HealthPage.js +91 -91
- package/dist/pages/HealthPage.js.map +1 -1
- package/dist/pages/OverviewPage.js +80 -79
- package/dist/pages/OverviewPage.js.map +1 -1
- package/dist/pages/SettingsPage.js +57 -58
- package/dist/pages/SettingsPage.js.map +1 -1
- package/dist/pages/VibesPage.js +180 -181
- package/dist/pages/VibesPage.js.map +1 -1
- package/dist/pages/WebhooksPage.js +329 -330
- package/dist/pages/WebhooksPage.js.map +1 -1
- package/package.json +2 -2
|
@@ -17,10 +17,11 @@ import { useI18n as y } from "@burdenoff/fe-libs/shared/providers/shell/I18nProv
|
|
|
17
17
|
import { Download as b, Printer as x } from "lucide-react";
|
|
18
18
|
import { usePermissions as S } from "@burdenoff/fe-libs/shared/providers/shell";
|
|
19
19
|
import { Fragment as C, jsx as w, jsxs as T } from "react/jsx-runtime";
|
|
20
|
-
import {
|
|
20
|
+
import { GlassCard as E } from "@burdenoff/fe-libs/ui";
|
|
21
|
+
import { MotionPage as D } from "@burdenoff/fe-libs/shared/motion";
|
|
21
22
|
//#region src/pages/AnalyticsPage.tsx
|
|
22
|
-
var
|
|
23
|
-
className: "bg-bg-surface border border-border-
|
|
23
|
+
var O = h(() => import("../components/analytics/AnalyticsTimeSeriesChart.js").then((e) => ({ default: e.AnalyticsTimeSeriesChart }))), k = h(() => import("../components/analytics/AnalyticsBreakdownChart.js").then((e) => ({ default: e.AnalyticsBreakdownChart }))), A = () => /* @__PURE__ */ w("div", {
|
|
24
|
+
className: "bg-bg-surface border border-border-seam rounded-lg p-4 shadow-[var(--shadow-pop)]",
|
|
24
25
|
children: /* @__PURE__ */ w(a, { height: "h-40" })
|
|
25
26
|
}), ee = [
|
|
26
27
|
"overview",
|
|
@@ -33,14 +34,14 @@ var D = h(() => import("../components/analytics/AnalyticsTimeSeriesChart.js").th
|
|
|
33
34
|
"aievents",
|
|
34
35
|
"audit",
|
|
35
36
|
"docs"
|
|
36
|
-
],
|
|
37
|
+
], j = {
|
|
37
38
|
primary: "var(--color-text-link)",
|
|
38
39
|
success: "var(--color-status-success-text)",
|
|
39
40
|
accent: "var(--color-accent-purple)",
|
|
40
41
|
warning: "var(--color-status-warning-text)"
|
|
41
42
|
};
|
|
42
|
-
function
|
|
43
|
-
let { workspaceId: a } = t(), { t: h } = y(),
|
|
43
|
+
function M() {
|
|
44
|
+
let { workspaceId: a } = t(), { t: h } = y(), E = n(), { hasPermission: M, isLoading: L } = S(), [R, z] = v("LAST_7D"), [B, V] = v("DAY"), [H, U] = o(ee, "overview"), W = g((e, t) => {
|
|
44
45
|
let n = h(e);
|
|
45
46
|
return n === e ? t : n;
|
|
46
47
|
}, [h]), { startDate: G, endDate: K } = _(() => c(R), [R]), q = _(() => s(H), [H]), { data: J, loading: Y, error: X, refetch: Z } = e({
|
|
@@ -60,13 +61,13 @@ function j() {
|
|
|
60
61
|
typeof window < "u" && window.print();
|
|
61
62
|
}, []), ne = g(() => {
|
|
62
63
|
if (!Q) return;
|
|
63
|
-
let e =
|
|
64
|
+
let e = I(H, Q);
|
|
64
65
|
if (e.length === 0) return;
|
|
65
|
-
let t =
|
|
66
|
+
let t = F(e), n = new Blob([t], { type: "text/csv;charset=utf-8;" }), r = URL.createObjectURL(n), i = document.createElement("a");
|
|
66
67
|
i.href = r, i.download = `vibecontrols-analytics-${H}-${(/* @__PURE__ */ new Date()).toISOString().slice(0, 10)}.csv`, document.body.appendChild(i), i.click(), document.body.removeChild(i), URL.revokeObjectURL(r);
|
|
67
68
|
}, [Q, H]), re = g((e) => {
|
|
68
|
-
|
|
69
|
-
}, [
|
|
69
|
+
E(e);
|
|
70
|
+
}, [E]);
|
|
70
71
|
if (L) return /* @__PURE__ */ w("div", {
|
|
71
72
|
className: "flex items-center justify-center min-h-[400px]",
|
|
72
73
|
children: /* @__PURE__ */ w("p", {
|
|
@@ -74,7 +75,7 @@ function j() {
|
|
|
74
75
|
children: "Loading permissions…"
|
|
75
76
|
})
|
|
76
77
|
});
|
|
77
|
-
if (!
|
|
78
|
+
if (!M(i.ANALYTICS_READ)) return /* @__PURE__ */ w("div", {
|
|
78
79
|
className: "flex items-center justify-center min-h-[400px]",
|
|
79
80
|
children: /* @__PURE__ */ T("div", {
|
|
80
81
|
className: "text-center space-y-2",
|
|
@@ -87,7 +88,7 @@ function j() {
|
|
|
87
88
|
})]
|
|
88
89
|
})
|
|
89
90
|
});
|
|
90
|
-
if (!a) return /* @__PURE__ */ T(
|
|
91
|
+
if (!a) return /* @__PURE__ */ T(D, {
|
|
91
92
|
className: "min-h-screen space-y-6 bg-bg-canvas px-6 lg:px-8 py-6",
|
|
92
93
|
children: [/* @__PURE__ */ w(r, { title: W("nav.analytics", "Analytics") }), /* @__PURE__ */ w("div", {
|
|
93
94
|
className: "text-sm text-text-secondary",
|
|
@@ -96,7 +97,7 @@ function j() {
|
|
|
96
97
|
});
|
|
97
98
|
if (X && !Q) {
|
|
98
99
|
let e = X.message ?? "", t = e.includes("upstream connect error") || e.includes("Connection refused") || e.includes("disconnect/reset before headers") || e.includes("Unexpected response");
|
|
99
|
-
return /* @__PURE__ */ T(
|
|
100
|
+
return /* @__PURE__ */ T(D, {
|
|
100
101
|
className: "min-h-screen space-y-6 bg-bg-canvas px-6 lg:px-8 py-6",
|
|
101
102
|
children: [/* @__PURE__ */ w(r, { title: W("nav.analytics", "Analytics") }), /* @__PURE__ */ T("div", {
|
|
102
103
|
className: "space-y-3 rounded-card border border-status-warning-border bg-status-warning-bg-subtle p-4 text-sm text-text-primary",
|
|
@@ -115,7 +116,7 @@ function j() {
|
|
|
115
116
|
})]
|
|
116
117
|
});
|
|
117
118
|
}
|
|
118
|
-
return /* @__PURE__ */ T(
|
|
119
|
+
return /* @__PURE__ */ T(D, {
|
|
119
120
|
className: "min-h-screen space-y-6 bg-bg-canvas px-6 lg:px-8 py-6 vc-printable",
|
|
120
121
|
children: [
|
|
121
122
|
/* @__PURE__ */ w(r, { title: W("nav.analytics", "Analytics") }),
|
|
@@ -158,7 +159,7 @@ function j() {
|
|
|
158
159
|
})]
|
|
159
160
|
}),
|
|
160
161
|
/* @__PURE__ */ w(m, {
|
|
161
|
-
fallback: /* @__PURE__ */ w(
|
|
162
|
+
fallback: /* @__PURE__ */ w(A, {}),
|
|
162
163
|
children: /* @__PURE__ */ T("section", {
|
|
163
164
|
id: `analytics-panel-${H}`,
|
|
164
165
|
role: "tabpanel",
|
|
@@ -173,37 +174,37 @@ function j() {
|
|
|
173
174
|
loading: Y,
|
|
174
175
|
onCardClick: re
|
|
175
176
|
}),
|
|
176
|
-
/* @__PURE__ */ w(
|
|
177
|
+
/* @__PURE__ */ w(O, {
|
|
177
178
|
title: "Activity Over Time",
|
|
178
179
|
datasets: [
|
|
179
180
|
{
|
|
180
181
|
label: "Sessions",
|
|
181
182
|
data: Q?.sessions?.createdOverTime,
|
|
182
|
-
color:
|
|
183
|
+
color: j.primary
|
|
183
184
|
},
|
|
184
185
|
{
|
|
185
186
|
label: "Executions",
|
|
186
187
|
data: Q?.actions?.executionsOverTime,
|
|
187
|
-
color:
|
|
188
|
+
color: j.success
|
|
188
189
|
},
|
|
189
190
|
{
|
|
190
191
|
label: "AI Events",
|
|
191
192
|
data: Q?.aiEvents?.eventsOverTime,
|
|
192
|
-
color:
|
|
193
|
+
color: j.accent
|
|
193
194
|
},
|
|
194
195
|
{
|
|
195
196
|
label: "Audit Logs",
|
|
196
197
|
data: Q?.audit?.eventsOverTime,
|
|
197
|
-
color:
|
|
198
|
+
color: j.warning
|
|
198
199
|
}
|
|
199
200
|
]
|
|
200
201
|
}),
|
|
201
202
|
/* @__PURE__ */ T("div", {
|
|
202
203
|
className: "grid grid-cols-1 gap-4 lg:grid-cols-2",
|
|
203
|
-
children: [/* @__PURE__ */ w(
|
|
204
|
+
children: [/* @__PURE__ */ w(k, {
|
|
204
205
|
title: "Sessions by Status",
|
|
205
206
|
data: Q?.sessions?.byStatus
|
|
206
|
-
}), /* @__PURE__ */ w(
|
|
207
|
+
}), /* @__PURE__ */ w(k, {
|
|
207
208
|
title: "Vibes by Status",
|
|
208
209
|
data: Q?.vibes?.byStatus
|
|
209
210
|
})]
|
|
@@ -216,33 +217,33 @@ function j() {
|
|
|
216
217
|
/* @__PURE__ */ T("div", {
|
|
217
218
|
className: "grid grid-cols-2 gap-3 sm:grid-cols-4",
|
|
218
219
|
children: [
|
|
219
|
-
/* @__PURE__ */ w(
|
|
220
|
+
/* @__PURE__ */ w(N, {
|
|
220
221
|
label: "Total",
|
|
221
222
|
value: Q.agents.total
|
|
222
223
|
}),
|
|
223
|
-
/* @__PURE__ */ w(
|
|
224
|
+
/* @__PURE__ */ w(N, {
|
|
224
225
|
label: "Active",
|
|
225
226
|
value: Q.agents.active,
|
|
226
227
|
variant: "success"
|
|
227
228
|
}),
|
|
228
|
-
/* @__PURE__ */ w(
|
|
229
|
+
/* @__PURE__ */ w(N, {
|
|
229
230
|
label: "Inactive",
|
|
230
231
|
value: Q.agents.inactive,
|
|
231
232
|
variant: "warning"
|
|
232
233
|
}),
|
|
233
|
-
/* @__PURE__ */ w(
|
|
234
|
+
/* @__PURE__ */ w(N, {
|
|
234
235
|
label: "Stale Heartbeat",
|
|
235
236
|
value: Q.agents.staleHeartbeatCount,
|
|
236
237
|
variant: "error"
|
|
237
238
|
})
|
|
238
239
|
]
|
|
239
240
|
}),
|
|
240
|
-
/* @__PURE__ */ w(
|
|
241
|
+
/* @__PURE__ */ w(O, {
|
|
241
242
|
title: "Agents Created Over Time",
|
|
242
243
|
datasets: [{
|
|
243
244
|
label: "Agents",
|
|
244
245
|
data: Q.agents.createdOverTime,
|
|
245
|
-
color:
|
|
246
|
+
color: j.primary
|
|
246
247
|
}],
|
|
247
248
|
height: 250
|
|
248
249
|
}),
|
|
@@ -266,20 +267,20 @@ function j() {
|
|
|
266
267
|
/* @__PURE__ */ T("div", {
|
|
267
268
|
className: "grid grid-cols-2 gap-3 sm:grid-cols-4",
|
|
268
269
|
children: [
|
|
269
|
-
/* @__PURE__ */ w(
|
|
270
|
+
/* @__PURE__ */ w(N, {
|
|
270
271
|
label: "Total",
|
|
271
272
|
value: Q.sessions.total
|
|
272
273
|
}),
|
|
273
|
-
/* @__PURE__ */ w(
|
|
274
|
+
/* @__PURE__ */ w(N, {
|
|
274
275
|
label: "Running",
|
|
275
276
|
value: Q.sessions.active,
|
|
276
277
|
variant: "success"
|
|
277
278
|
}),
|
|
278
|
-
/* @__PURE__ */ w(
|
|
279
|
+
/* @__PURE__ */ w(N, {
|
|
279
280
|
label: "Collaborators",
|
|
280
281
|
value: Q.sessions.totalCollaborators
|
|
281
282
|
}),
|
|
282
|
-
/* @__PURE__ */ w(
|
|
283
|
+
/* @__PURE__ */ w(N, {
|
|
283
284
|
label: "Shares",
|
|
284
285
|
value: Q.sessions.totalShares + Q.sessions.totalShareLinks
|
|
285
286
|
})
|
|
@@ -292,22 +293,22 @@ function j() {
|
|
|
292
293
|
" ",
|
|
293
294
|
/* @__PURE__ */ w("span", {
|
|
294
295
|
className: "font-medium text-text-primary",
|
|
295
|
-
children:
|
|
296
|
+
children: P(Q.sessions.avgDurationMs)
|
|
296
297
|
})
|
|
297
298
|
]
|
|
298
299
|
}),
|
|
299
|
-
/* @__PURE__ */ w(
|
|
300
|
+
/* @__PURE__ */ w(O, {
|
|
300
301
|
title: "Sessions Created Over Time",
|
|
301
302
|
datasets: [{
|
|
302
303
|
label: "Sessions",
|
|
303
304
|
data: Q.sessions.createdOverTime,
|
|
304
|
-
color:
|
|
305
|
+
color: j.primary
|
|
305
306
|
}],
|
|
306
307
|
height: 250
|
|
307
308
|
}),
|
|
308
309
|
/* @__PURE__ */ T("div", {
|
|
309
310
|
className: "grid grid-cols-1 gap-4 lg:grid-cols-2",
|
|
310
|
-
children: [/* @__PURE__ */ w(
|
|
311
|
+
children: [/* @__PURE__ */ w(k, {
|
|
311
312
|
title: "Sessions by Type",
|
|
312
313
|
data: Q.sessions.byType
|
|
313
314
|
}), /* @__PURE__ */ w(d, {
|
|
@@ -325,36 +326,36 @@ function j() {
|
|
|
325
326
|
/* @__PURE__ */ T("div", {
|
|
326
327
|
className: "grid grid-cols-2 gap-3 sm:grid-cols-4",
|
|
327
328
|
children: [
|
|
328
|
-
/* @__PURE__ */ w(
|
|
329
|
+
/* @__PURE__ */ w(N, {
|
|
329
330
|
label: "Total",
|
|
330
331
|
value: Q.vibes.total
|
|
331
332
|
}),
|
|
332
|
-
/* @__PURE__ */ w(
|
|
333
|
+
/* @__PURE__ */ w(N, {
|
|
333
334
|
label: "With Agent",
|
|
334
335
|
value: Q.vibes.withAgent,
|
|
335
336
|
variant: "success"
|
|
336
337
|
}),
|
|
337
|
-
/* @__PURE__ */ w(
|
|
338
|
+
/* @__PURE__ */ w(N, {
|
|
338
339
|
label: "Without Agent",
|
|
339
340
|
value: Q.vibes.withoutAgent
|
|
340
341
|
})
|
|
341
342
|
]
|
|
342
343
|
}),
|
|
343
|
-
/* @__PURE__ */ w(
|
|
344
|
+
/* @__PURE__ */ w(O, {
|
|
344
345
|
title: "Vibes Created Over Time",
|
|
345
346
|
datasets: [{
|
|
346
347
|
label: "Vibes",
|
|
347
348
|
data: Q.vibes.createdOverTime,
|
|
348
|
-
color:
|
|
349
|
+
color: j.accent
|
|
349
350
|
}],
|
|
350
351
|
height: 250
|
|
351
352
|
}),
|
|
352
353
|
/* @__PURE__ */ T("div", {
|
|
353
354
|
className: "grid grid-cols-1 gap-4 lg:grid-cols-2",
|
|
354
|
-
children: [/* @__PURE__ */ w(
|
|
355
|
+
children: [/* @__PURE__ */ w(k, {
|
|
355
356
|
title: "Vibes by Type",
|
|
356
357
|
data: Q.vibes.byType
|
|
357
|
-
}), /* @__PURE__ */ w(
|
|
358
|
+
}), /* @__PURE__ */ w(k, {
|
|
358
359
|
title: "Vibes by Status",
|
|
359
360
|
data: Q.vibes.byStatus
|
|
360
361
|
})]
|
|
@@ -367,40 +368,40 @@ function j() {
|
|
|
367
368
|
/* @__PURE__ */ T("div", {
|
|
368
369
|
className: "grid grid-cols-2 gap-3 sm:grid-cols-4",
|
|
369
370
|
children: [
|
|
370
|
-
/* @__PURE__ */ w(
|
|
371
|
+
/* @__PURE__ */ w(N, {
|
|
371
372
|
label: "Total Actions",
|
|
372
373
|
value: Q.actions.total
|
|
373
374
|
}),
|
|
374
|
-
/* @__PURE__ */ w(
|
|
375
|
+
/* @__PURE__ */ w(N, {
|
|
375
376
|
label: "Executions",
|
|
376
377
|
value: Q.actions.totalExecutions
|
|
377
378
|
}),
|
|
378
|
-
/* @__PURE__ */ w(
|
|
379
|
+
/* @__PURE__ */ w(N, {
|
|
379
380
|
label: "Success Rate",
|
|
380
381
|
value: Q.actions.successRate == null ? "N/A" : `${Q.actions.successRate.toFixed(1)}%`,
|
|
381
382
|
variant: Q.actions.successRate != null && Q.actions.successRate >= 90 ? "success" : "warning"
|
|
382
383
|
}),
|
|
383
|
-
/* @__PURE__ */ w(
|
|
384
|
+
/* @__PURE__ */ w(N, {
|
|
384
385
|
label: "Avg Duration",
|
|
385
|
-
value: Q.actions.avgDurationMs == null ? "N/A" :
|
|
386
|
+
value: Q.actions.avgDurationMs == null ? "N/A" : P(Q.actions.avgDurationMs)
|
|
386
387
|
})
|
|
387
388
|
]
|
|
388
389
|
}),
|
|
389
|
-
/* @__PURE__ */ w(
|
|
390
|
+
/* @__PURE__ */ w(O, {
|
|
390
391
|
title: "Executions Over Time",
|
|
391
392
|
datasets: [{
|
|
392
393
|
label: "Executions",
|
|
393
394
|
data: Q.actions.executionsOverTime,
|
|
394
|
-
color:
|
|
395
|
+
color: j.success
|
|
395
396
|
}],
|
|
396
397
|
height: 250
|
|
397
398
|
}),
|
|
398
399
|
/* @__PURE__ */ T("div", {
|
|
399
400
|
className: "grid grid-cols-1 gap-4 lg:grid-cols-2",
|
|
400
|
-
children: [/* @__PURE__ */ w(
|
|
401
|
+
children: [/* @__PURE__ */ w(k, {
|
|
401
402
|
title: "By Action Type",
|
|
402
403
|
data: Q.actions.byActionType
|
|
403
|
-
}), /* @__PURE__ */ w(
|
|
404
|
+
}), /* @__PURE__ */ w(k, {
|
|
404
405
|
title: "Execution Status",
|
|
405
406
|
data: Q.actions.executionsByStatus
|
|
406
407
|
})]
|
|
@@ -423,14 +424,14 @@ function j() {
|
|
|
423
424
|
className: "space-y-4",
|
|
424
425
|
children: [/* @__PURE__ */ T("div", {
|
|
425
426
|
className: "grid grid-cols-2 gap-3 sm:grid-cols-3",
|
|
426
|
-
children: [/* @__PURE__ */ w(
|
|
427
|
+
children: [/* @__PURE__ */ w(N, {
|
|
427
428
|
label: "Decks",
|
|
428
429
|
value: Q.vibeDecks.totalDecks
|
|
429
|
-
}), /* @__PURE__ */ w(
|
|
430
|
+
}), /* @__PURE__ */ w(N, {
|
|
430
431
|
label: "Buttons",
|
|
431
432
|
value: Q.vibeDecks.totalButtons
|
|
432
433
|
})]
|
|
433
|
-
}), /* @__PURE__ */ w(
|
|
434
|
+
}), /* @__PURE__ */ w(k, {
|
|
434
435
|
title: "Buttons by Action Type",
|
|
435
436
|
data: Q.vibeDecks.buttonsByActionType
|
|
436
437
|
})]
|
|
@@ -438,22 +439,22 @@ function j() {
|
|
|
438
439
|
H === "aievents" && Q?.aiEvents ? /* @__PURE__ */ T("div", {
|
|
439
440
|
className: "space-y-4",
|
|
440
441
|
children: [
|
|
441
|
-
/* @__PURE__ */ w(
|
|
442
|
+
/* @__PURE__ */ w(N, {
|
|
442
443
|
label: "Total AI Events",
|
|
443
444
|
value: Q.aiEvents.total
|
|
444
445
|
}),
|
|
445
|
-
/* @__PURE__ */ w(
|
|
446
|
+
/* @__PURE__ */ w(O, {
|
|
446
447
|
title: "AI Events Over Time",
|
|
447
448
|
datasets: [{
|
|
448
449
|
label: "Events",
|
|
449
450
|
data: Q.aiEvents.eventsOverTime,
|
|
450
|
-
color:
|
|
451
|
+
color: j.accent
|
|
451
452
|
}],
|
|
452
453
|
height: 250
|
|
453
454
|
}),
|
|
454
455
|
/* @__PURE__ */ T("div", {
|
|
455
456
|
className: "grid grid-cols-1 gap-4 lg:grid-cols-2",
|
|
456
|
-
children: [/* @__PURE__ */ w(
|
|
457
|
+
children: [/* @__PURE__ */ w(k, {
|
|
457
458
|
title: "By Source",
|
|
458
459
|
data: Q.aiEvents.bySource
|
|
459
460
|
}), /* @__PURE__ */ w(d, {
|
|
@@ -467,25 +468,25 @@ function j() {
|
|
|
467
468
|
H === "audit" && Q?.audit ? /* @__PURE__ */ T("div", {
|
|
468
469
|
className: "space-y-4",
|
|
469
470
|
children: [
|
|
470
|
-
/* @__PURE__ */ w(
|
|
471
|
+
/* @__PURE__ */ w(N, {
|
|
471
472
|
label: "Total Audit Logs",
|
|
472
473
|
value: Q.audit.total
|
|
473
474
|
}),
|
|
474
|
-
/* @__PURE__ */ w(
|
|
475
|
+
/* @__PURE__ */ w(O, {
|
|
475
476
|
title: "Audit Events Over Time",
|
|
476
477
|
datasets: [{
|
|
477
478
|
label: "Events",
|
|
478
479
|
data: Q.audit.eventsOverTime,
|
|
479
|
-
color:
|
|
480
|
+
color: j.warning
|
|
480
481
|
}],
|
|
481
482
|
height: 250
|
|
482
483
|
}),
|
|
483
484
|
/* @__PURE__ */ T("div", {
|
|
484
485
|
className: "grid grid-cols-1 gap-4 lg:grid-cols-2",
|
|
485
|
-
children: [/* @__PURE__ */ w(
|
|
486
|
+
children: [/* @__PURE__ */ w(k, {
|
|
486
487
|
title: "By Action",
|
|
487
488
|
data: Q.audit.byAction
|
|
488
|
-
}), /* @__PURE__ */ w(
|
|
489
|
+
}), /* @__PURE__ */ w(k, {
|
|
489
490
|
title: "By Status",
|
|
490
491
|
data: Q.audit.byStatus
|
|
491
492
|
})]
|
|
@@ -502,19 +503,19 @@ function j() {
|
|
|
502
503
|
children: [/* @__PURE__ */ T("div", {
|
|
503
504
|
className: "grid grid-cols-2 gap-3 sm:grid-cols-4",
|
|
504
505
|
children: [
|
|
505
|
-
/* @__PURE__ */ w(
|
|
506
|
+
/* @__PURE__ */ w(N, {
|
|
506
507
|
label: "Sites",
|
|
507
508
|
value: Q.docs.totalSites
|
|
508
509
|
}),
|
|
509
|
-
/* @__PURE__ */ w(
|
|
510
|
+
/* @__PURE__ */ w(N, {
|
|
510
511
|
label: "Pages",
|
|
511
512
|
value: Q.docs.totalPages
|
|
512
513
|
}),
|
|
513
|
-
/* @__PURE__ */ w(
|
|
514
|
+
/* @__PURE__ */ w(N, {
|
|
514
515
|
label: "Revisions",
|
|
515
516
|
value: Q.docs.totalRevisions
|
|
516
517
|
}),
|
|
517
|
-
/* @__PURE__ */ w(
|
|
518
|
+
/* @__PURE__ */ w(N, {
|
|
518
519
|
label: "Build Success",
|
|
519
520
|
value: Q.docs.buildSuccessRate == null ? "N/A" : `${Q.docs.buildSuccessRate.toFixed(1)}%`,
|
|
520
521
|
variant: Q.docs.buildSuccessRate != null && Q.docs.buildSuccessRate >= 90 ? "success" : "warning"
|
|
@@ -522,10 +523,10 @@ function j() {
|
|
|
522
523
|
]
|
|
523
524
|
}), /* @__PURE__ */ T("div", {
|
|
524
525
|
className: "grid grid-cols-1 gap-4 lg:grid-cols-2",
|
|
525
|
-
children: [/* @__PURE__ */ w(
|
|
526
|
+
children: [/* @__PURE__ */ w(k, {
|
|
526
527
|
title: "Pages by Status",
|
|
527
528
|
data: Q.docs.pagesByStatus
|
|
528
|
-
}), /* @__PURE__ */ w(
|
|
529
|
+
}), /* @__PURE__ */ w(k, {
|
|
529
530
|
title: "Revisions by Status",
|
|
530
531
|
data: Q.docs.revisionsByStatus
|
|
531
532
|
})]
|
|
@@ -537,9 +538,10 @@ function j() {
|
|
|
537
538
|
]
|
|
538
539
|
});
|
|
539
540
|
}
|
|
540
|
-
function
|
|
541
|
-
return /* @__PURE__ */ T(
|
|
542
|
-
|
|
541
|
+
function N({ label: e, value: t, variant: n }) {
|
|
542
|
+
return /* @__PURE__ */ T(E, {
|
|
543
|
+
treatment: n ? "plain" : "metric",
|
|
544
|
+
className: `p-4 ${n ? `border ${n === "success" ? "bg-status-success-bg-subtle border-status-success-border" : n === "warning" ? "bg-status-warning-bg-subtle border-status-warning-border" : n === "error" ? "bg-status-error-bg-subtle border-status-error-border" : ""}` : ""}`,
|
|
543
545
|
children: [/* @__PURE__ */ w("p", {
|
|
544
546
|
className: "text-xs text-text-secondary",
|
|
545
547
|
children: e
|
|
@@ -549,16 +551,16 @@ function M({ label: e, value: t, variant: n }) {
|
|
|
549
551
|
})]
|
|
550
552
|
});
|
|
551
553
|
}
|
|
552
|
-
function
|
|
554
|
+
function P(e) {
|
|
553
555
|
return e < 1e3 ? `${Math.round(e)}ms` : e < 6e4 ? `${(e / 1e3).toFixed(1)}s` : `${Math.floor(e / 6e4)}m ${Math.round(e % 6e4 / 1e3)}s`;
|
|
554
556
|
}
|
|
555
|
-
function
|
|
557
|
+
function F(e) {
|
|
556
558
|
return e.map((e) => e.map((e) => {
|
|
557
559
|
let t = e == null ? "" : String(e);
|
|
558
560
|
return /[",\n\r]/.test(t) ? `"${t.replace(/"/g, "\"\"")}"` : t;
|
|
559
561
|
}).join(",")).join("\r\n");
|
|
560
562
|
}
|
|
561
|
-
function
|
|
563
|
+
function I(e, t) {
|
|
562
564
|
let n = [];
|
|
563
565
|
if (e === "overview") return n.push(["metric", "value"]), t.sessions && n.push(["sessions.total", t.sessions.total ?? 0]), t.agents && n.push(["agents.total", t.agents.total ?? 0]), t.vibes && n.push(["vibes.total", t.vibes.total ?? 0]), t.actions && n.push(["actions.total", t.actions.total ?? 0]), n;
|
|
564
566
|
if (e === "agents" && t.agents) {
|
|
@@ -578,6 +580,6 @@ function F(e, t) {
|
|
|
578
580
|
return e === "actions" && t.actions ? (n.push(["metric", "value"]), n.push(["total", t.actions.total ?? 0]), n.push(["totalExecutions", t.actions.totalExecutions ?? 0]), n.push(["successRate", t.actions.successRate ?? ""]), n.push(["avgDurationMs", t.actions.avgDurationMs ?? ""]), n) : e === "vibes" && t.vibes ? (n.push(["metric", "value"]), n.push(["total", t.vibes.total ?? 0]), n.push(["withAgent", t.vibes.withAgent ?? 0]), n.push(["withoutAgent", t.vibes.withoutAgent ?? 0]), n) : e === "vibedecks" && t.vibeDecks ? (n.push(["metric", "value"]), n.push(["decks", t.vibeDecks.totalDecks ?? 0]), n.push(["buttons", t.vibeDecks.totalButtons ?? 0]), n) : e === "aievents" && t.aiEvents ? (n.push(["metric", "value"]), n.push(["total", t.aiEvents.total ?? 0]), n) : e === "audit" && t.audit ? (n.push(["metric", "value"]), n.push(["total", t.audit.total ?? 0]), n) : e === "docs" && t.docs ? (n.push(["metric", "value"]), n.push(["sites", t.docs.totalSites ?? 0]), n.push(["pages", t.docs.totalPages ?? 0]), n.push(["revisions", t.docs.totalRevisions ?? 0]), n.push(["buildSuccessRate", t.docs.buildSuccessRate ?? ""]), n) : (n.push(["metric", "value"]), n.push(["note", `No CSV serialiser for ${e} tab yet`]), n);
|
|
579
581
|
}
|
|
580
582
|
//#endregion
|
|
581
|
-
export {
|
|
583
|
+
export { M as AnalyticsPage };
|
|
582
584
|
|
|
583
585
|
//# sourceMappingURL=AnalyticsPage.js.map
|