@elevasis/ui 2.13.0 → 2.14.1

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.
Files changed (35) hide show
  1. package/dist/chunk-442LZPIR.js +5 -0
  2. package/dist/{chunk-T7R5P5JJ.js → chunk-A7346I7H.js} +1 -1
  3. package/dist/{chunk-BSW5MUAQ.js → chunk-C56A2MAS.js} +356 -25
  4. package/dist/{chunk-2CGYLRTX.js → chunk-ETQRV5A6.js} +1 -1
  5. package/dist/{chunk-6WPKE7C3.js → chunk-F2GI5TQT.js} +8 -5
  6. package/dist/{chunk-PCK553L4.js → chunk-IO75JNQE.js} +1 -1
  7. package/dist/{chunk-FT27I4S7.js → chunk-JAUU6TZU.js} +13 -4
  8. package/dist/{chunk-NLFAEJDH.js → chunk-JL7RHMV2.js} +3 -3
  9. package/dist/{chunk-H333SX3N.js → chunk-NPWJYY4B.js} +2 -2
  10. package/dist/{chunk-67BKMKFG.js → chunk-TAUPDLQ7.js} +1 -1
  11. package/dist/components/index.d.ts +2 -2
  12. package/dist/components/index.js +16 -16
  13. package/dist/features/auth/index.js +1 -1
  14. package/dist/features/crm/index.js +4 -4
  15. package/dist/features/dashboard/index.js +3 -3
  16. package/dist/features/delivery/index.js +5 -5
  17. package/dist/features/lead-gen/index.js +8 -8
  18. package/dist/features/monitoring/index.js +4 -4
  19. package/dist/features/monitoring/requests/index.css +589 -0
  20. package/dist/features/monitoring/requests/index.js +442 -0
  21. package/dist/features/operations/index.js +6 -6
  22. package/dist/features/settings/index.js +3 -3
  23. package/dist/hooks/index.d.ts +7 -7
  24. package/dist/hooks/index.js +2 -2
  25. package/dist/hooks/published.d.ts +7 -7
  26. package/dist/hooks/published.js +2 -2
  27. package/dist/index.d.ts +52 -6
  28. package/dist/index.js +2 -2
  29. package/dist/provider/index.d.ts +47 -1
  30. package/dist/provider/index.js +1 -1
  31. package/dist/provider/published.d.ts +47 -1
  32. package/dist/provider/published.js +1 -1
  33. package/dist/types/index.d.ts +3 -3
  34. package/package.json +2 -2
  35. package/dist/chunk-G2TDX3W6.js +0 -5
@@ -0,0 +1,442 @@
1
+ import '../../../chunk-TUMSNGTX.js';
2
+ import { FilterBar } from '../../../chunk-PDHTXPSF.js';
3
+ import { ConfirmationModal } from '../../../chunk-GBMNCNHX.js';
4
+ import '../../../chunk-7M2VOCYN.js';
5
+ import { usePaginationState, useRequestsList, useUpdateRequestStatus, useRequest } from '../../../chunk-JAUU6TZU.js';
6
+ import '../../../chunk-LXHZYSMQ.js';
7
+ import '../../../chunk-BRXELOHC.js';
8
+ import '../../../chunk-22UVE3RA.js';
9
+ import '../../../chunk-3ZMAGTWF.js';
10
+ import '../../../chunk-DKQQK3WX.js';
11
+ import '../../../chunk-5IBTTMWX.js';
12
+ import '../../../chunk-R73EHHPN.js';
13
+ import '../../../chunk-WLOQ4IBG.js';
14
+ import '../../../chunk-C7BX547M.js';
15
+ import '../../../chunk-RX4UWZZR.js';
16
+ import { PageTitleCaption, ContextViewer, JsonViewer } from '../../../chunk-SQQGLGHW.js';
17
+ import '../../../chunk-3KMDHCAR.js';
18
+ import '../../../chunk-NYBEU5TE.js';
19
+ import '../../../chunk-ZB5GAV7J.js';
20
+ import '../../../chunk-SZHARWKU.js';
21
+ import '../../../chunk-NVOCKXUQ.js';
22
+ import '../../../chunk-2IFYDILW.js';
23
+ import '../../../chunk-ELJIFLCB.js';
24
+ import '../../../chunk-L4XXM55J.js';
25
+ import '../../../chunk-FL67C3WY.js';
26
+ import '../../../chunk-QJ2KCHKX.js';
27
+ import '../../../chunk-SLVC5OJ2.js';
28
+ import '../../../chunk-DT3QYZVU.js';
29
+ import '../../../chunk-RNP5R5I3.js';
30
+ import { formatTimeAgo } from '../../../chunk-IOKL7BKE.js';
31
+ import '../../../chunk-MTJ43R2E.js';
32
+ import '../../../chunk-TUXTSEAF.js';
33
+ import '../../../chunk-DD3CCMCZ.js';
34
+ import '../../../chunk-QEPXAWE2.js';
35
+ import '../../../chunk-BRJ3QZ4E.js';
36
+ import '../../../chunk-Q7DJKLEN.js';
37
+ import { useState } from 'react';
38
+ import { useNavigate } from '@tanstack/react-router';
39
+ import { Badge, Menu, Button, Stack, Paper, Select, Center, Loader, Text, Table, Group, Pagination, Skeleton, SimpleGrid, Title, SegmentedControl } from '@mantine/core';
40
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
41
+ import { IconChevronDown, IconAlertTriangle, IconArrowLeft } from '@tabler/icons-react';
42
+ import { notifications } from '@mantine/notifications';
43
+
44
+ // src/features/monitoring/requests/manifest.ts
45
+ var submittedRequestsManifest = {
46
+ key: "submitted-requests",
47
+ featureId: "submitted-requests"
48
+ };
49
+ var TYPE_COLORS = {
50
+ bug: "red",
51
+ feature: "blue",
52
+ question: "yellow",
53
+ other: "gray"
54
+ };
55
+ var TYPE_LABELS = {
56
+ bug: "Bug",
57
+ feature: "Feature",
58
+ question: "Question",
59
+ other: "Other"
60
+ };
61
+ function RequestTypeBadge({ type }) {
62
+ return /* @__PURE__ */ jsx(Badge, { variant: "light", color: TYPE_COLORS[type], size: "sm", children: TYPE_LABELS[type] });
63
+ }
64
+ var SEVERITY_COLORS = {
65
+ critical: "red",
66
+ warning: "orange",
67
+ info: "blue"
68
+ };
69
+ var SEVERITY_LABELS = {
70
+ critical: "Critical",
71
+ warning: "Warning",
72
+ info: "Info"
73
+ };
74
+ function SeverityBadge({ severity }) {
75
+ return /* @__PURE__ */ jsx(Badge, { variant: "light", color: SEVERITY_COLORS[severity], size: "sm", children: SEVERITY_LABELS[severity] });
76
+ }
77
+ var STATUS_COLORS = {
78
+ open: "blue",
79
+ investigating: "yellow",
80
+ resolved: "green",
81
+ wont_fix: "gray"
82
+ };
83
+ var STATUS_LABELS = {
84
+ open: "Open",
85
+ investigating: "Investigating",
86
+ resolved: "Resolved",
87
+ wont_fix: "Won't Fix"
88
+ };
89
+ function StatusBadge({ status }) {
90
+ return /* @__PURE__ */ jsx(Badge, { variant: "light", color: STATUS_COLORS[status], size: "sm", children: STATUS_LABELS[status] });
91
+ }
92
+ var VALID_TRANSITIONS = {
93
+ open: ["investigating", "wont_fix"],
94
+ investigating: ["resolved", "wont_fix", "open"],
95
+ resolved: ["open"],
96
+ wont_fix: ["open"]
97
+ };
98
+ var ALL_STATUSES = ["open", "investigating", "resolved", "wont_fix"];
99
+ var STATUS_LABELS2 = {
100
+ open: "Open",
101
+ investigating: "Investigating",
102
+ resolved: "Resolved",
103
+ wont_fix: "Won't Fix"
104
+ };
105
+ function StatusTransitionMenu({ currentStatus, onTransition }) {
106
+ const [wontFixConfirmOpen, setWontFixConfirmOpen] = useState(false);
107
+ const validNextStatuses = VALID_TRANSITIONS[currentStatus];
108
+ function handleSelect(status) {
109
+ if (status === "wont_fix") {
110
+ setWontFixConfirmOpen(true);
111
+ } else {
112
+ onTransition(status);
113
+ }
114
+ }
115
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
116
+ /* @__PURE__ */ jsxs(Menu, { withinPortal: true, position: "bottom-end", shadow: "md", children: [
117
+ /* @__PURE__ */ jsx(Menu.Target, { children: /* @__PURE__ */ jsx(Button, { variant: "light", size: "xs", rightSection: /* @__PURE__ */ jsx(IconChevronDown, { size: 14 }), children: STATUS_LABELS2[currentStatus] }) }),
118
+ /* @__PURE__ */ jsxs(Menu.Dropdown, { children: [
119
+ /* @__PURE__ */ jsx(Menu.Label, { children: "Transition to" }),
120
+ ALL_STATUSES.filter((s) => s !== currentStatus).map((status) => {
121
+ const isValid = validNextStatuses.includes(status);
122
+ return /* @__PURE__ */ jsx(
123
+ Menu.Item,
124
+ {
125
+ disabled: !isValid,
126
+ color: status === "wont_fix" ? "red" : void 0,
127
+ onClick: () => isValid && handleSelect(status),
128
+ children: STATUS_LABELS2[status]
129
+ },
130
+ status
131
+ );
132
+ })
133
+ ] })
134
+ ] }),
135
+ /* @__PURE__ */ jsx(
136
+ ConfirmationModal,
137
+ {
138
+ opened: wontFixConfirmOpen,
139
+ onClose: () => setWontFixConfirmOpen(false),
140
+ icon: /* @__PURE__ */ jsx(IconAlertTriangle, { color: "red" }),
141
+ title: "Mark as Won't Fix",
142
+ text: "Are you sure you want to mark this request as won't fix? This signals the issue will not be addressed.",
143
+ buttonText: "Confirm Won't Fix",
144
+ buttonColor: "red",
145
+ confirmationHandler: () => {
146
+ setWontFixConfirmOpen(false);
147
+ onTransition("wont_fix");
148
+ }
149
+ }
150
+ )
151
+ ] });
152
+ }
153
+ var PAGE_SIZE = 20;
154
+ function RequestsListPage({
155
+ type: typeProp,
156
+ severity: severityProp,
157
+ status: statusProp,
158
+ source: sourceProp,
159
+ onNavigateToRequest
160
+ }) {
161
+ const navigate = useNavigate();
162
+ const [typeFilter, setTypeFilter] = useState(typeProp);
163
+ const [severityFilter, setSeverityFilter] = useState(severityProp);
164
+ const [statusFilter, setStatusFilter] = useState(statusProp ?? "open");
165
+ const [sourceFilter, setSourceFilter] = useState(sourceProp);
166
+ const { page, setPage, offset, totalPages } = usePaginationState(PAGE_SIZE, [
167
+ typeFilter,
168
+ severityFilter,
169
+ statusFilter,
170
+ sourceFilter
171
+ ]);
172
+ const { data: requests = [], isLoading } = useRequestsList({
173
+ type: typeFilter,
174
+ severity: severityFilter,
175
+ status: statusFilter,
176
+ source: sourceFilter,
177
+ limit: PAGE_SIZE,
178
+ offset
179
+ });
180
+ const { mutate: updateStatus } = useUpdateRequestStatus();
181
+ function pushSearchParam(patch) {
182
+ navigate({
183
+ // @ts-expect-error — search type is narrowed by each route wrapper
184
+ search: (prev) => ({ ...prev, ...patch })
185
+ });
186
+ }
187
+ function handleTypeChange(value) {
188
+ const next = value ?? void 0;
189
+ setTypeFilter(next);
190
+ pushSearchParam({ type: next });
191
+ }
192
+ function handleSeverityChange(value) {
193
+ const next = value ?? void 0;
194
+ setSeverityFilter(next);
195
+ pushSearchParam({ severity: next });
196
+ }
197
+ function handleStatusChange(value) {
198
+ const next = value ?? void 0;
199
+ setStatusFilter(next);
200
+ pushSearchParam({ status: next });
201
+ }
202
+ function handleSourceChange(value) {
203
+ const next = value ?? void 0;
204
+ setSourceFilter(next);
205
+ pushSearchParam({ source: next });
206
+ }
207
+ const estimatedTotal = requests.length < PAGE_SIZE ? offset + requests.length : offset + PAGE_SIZE + 1;
208
+ const pageCount = totalPages(estimatedTotal);
209
+ return /* @__PURE__ */ jsxs(Stack, { children: [
210
+ /* @__PURE__ */ jsx(
211
+ PageTitleCaption,
212
+ {
213
+ title: "Submitted Requests",
214
+ caption: "Browse and triage user-submitted bug reports, feature requests, and questions"
215
+ }
216
+ ),
217
+ /* @__PURE__ */ jsx(Paper, { children: /* @__PURE__ */ jsxs(Stack, { gap: 0, children: [
218
+ /* @__PURE__ */ jsxs(FilterBar, { children: [
219
+ /* @__PURE__ */ jsx(
220
+ Select,
221
+ {
222
+ placeholder: "All types",
223
+ value: typeFilter ?? null,
224
+ onChange: handleTypeChange,
225
+ data: [
226
+ { value: "bug", label: "Bug" },
227
+ { value: "feature", label: "Feature" },
228
+ { value: "question", label: "Question" },
229
+ { value: "other", label: "Other" }
230
+ ],
231
+ clearable: true,
232
+ size: "sm",
233
+ w: 150
234
+ }
235
+ ),
236
+ /* @__PURE__ */ jsx(
237
+ Select,
238
+ {
239
+ placeholder: "All severities",
240
+ value: severityFilter ?? null,
241
+ onChange: handleSeverityChange,
242
+ data: [
243
+ { value: "critical", label: "Critical" },
244
+ { value: "warning", label: "Warning" },
245
+ { value: "info", label: "Info" }
246
+ ],
247
+ clearable: true,
248
+ size: "sm",
249
+ w: 160
250
+ }
251
+ ),
252
+ /* @__PURE__ */ jsx(
253
+ Select,
254
+ {
255
+ placeholder: "All statuses",
256
+ value: statusFilter ?? null,
257
+ onChange: handleStatusChange,
258
+ data: [
259
+ { value: "open", label: "Open" },
260
+ { value: "investigating", label: "Investigating" },
261
+ { value: "resolved", label: "Resolved" },
262
+ { value: "wont_fix", label: "Won't Fix" }
263
+ ],
264
+ clearable: true,
265
+ size: "sm",
266
+ w: 170
267
+ }
268
+ ),
269
+ /* @__PURE__ */ jsx(
270
+ Select,
271
+ {
272
+ placeholder: "All sources",
273
+ value: sourceFilter ?? null,
274
+ onChange: handleSourceChange,
275
+ data: [
276
+ { value: "agent", label: "Agent" },
277
+ { value: "cli", label: "CLI" },
278
+ { value: "api", label: "API" },
279
+ { value: "webhook", label: "Webhook" },
280
+ { value: "user", label: "User" },
281
+ { value: "external", label: "External" }
282
+ ],
283
+ clearable: true,
284
+ size: "sm",
285
+ w: 150
286
+ }
287
+ )
288
+ ] }),
289
+ isLoading ? /* @__PURE__ */ jsx(Center, { py: "xl", children: /* @__PURE__ */ jsx(Loader, { size: "md" }) }) : requests.length === 0 ? /* @__PURE__ */ jsx(Center, { py: "xl", children: /* @__PURE__ */ jsx(Text, { c: "dimmed", children: "No requests yet" }) }) : /* @__PURE__ */ jsxs(Table, { highlightOnHover: true, style: { cursor: "pointer" }, children: [
290
+ /* @__PURE__ */ jsx(Table.Thead, { children: /* @__PURE__ */ jsxs(Table.Tr, { children: [
291
+ /* @__PURE__ */ jsx(Table.Th, { children: "Type" }),
292
+ /* @__PURE__ */ jsx(Table.Th, { children: "Severity" }),
293
+ /* @__PURE__ */ jsx(Table.Th, { children: "Title" }),
294
+ /* @__PURE__ */ jsx(Table.Th, { children: "Status" }),
295
+ /* @__PURE__ */ jsx(Table.Th, { children: "Source" }),
296
+ /* @__PURE__ */ jsx(Table.Th, { children: "Reported at" }),
297
+ /* @__PURE__ */ jsx(Table.Th, { children: "Actions" })
298
+ ] }) }),
299
+ /* @__PURE__ */ jsx(Table.Tbody, { children: requests.map((request) => /* @__PURE__ */ jsxs(Table.Tr, { onClick: () => onNavigateToRequest?.(request.id), children: [
300
+ /* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsx(RequestTypeBadge, { type: request.type }) }),
301
+ /* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsx(SeverityBadge, { severity: request.severity }) }),
302
+ /* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsx(Text, { size: "sm", lineClamp: 1, children: request.title }) }),
303
+ /* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsx(StatusBadge, { status: request.status }) }),
304
+ /* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: request.source }) }),
305
+ /* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: formatTimeAgo(request.reported_at) }) }),
306
+ /* @__PURE__ */ jsx(Table.Td, { onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsx(
307
+ StatusTransitionMenu,
308
+ {
309
+ currentStatus: request.status,
310
+ onTransition: (newStatus) => updateStatus({ id: request.id, status: newStatus })
311
+ }
312
+ ) })
313
+ ] }, request.id)) })
314
+ ] }),
315
+ pageCount > 1 && /* @__PURE__ */ jsx(Group, { justify: "flex-start", px: "md", pb: "md", children: /* @__PURE__ */ jsx(Pagination, { size: "sm", total: pageCount, value: page, onChange: setPage, boundaries: 1 }) })
316
+ ] }) })
317
+ ] });
318
+ }
319
+ function formatDateTime(isoString) {
320
+ if (!isoString) return "N/A";
321
+ return new Date(isoString).toLocaleString(void 0, {
322
+ dateStyle: "medium",
323
+ timeStyle: "short"
324
+ });
325
+ }
326
+ function MetaField({ label, children }) {
327
+ return /* @__PURE__ */ jsxs(Stack, { gap: 2, children: [
328
+ /* @__PURE__ */ jsx(Text, { size: "xs", c: "var(--color-text-subtle)", tt: "uppercase", fw: 600, children: label }),
329
+ /* @__PURE__ */ jsx("div", { children })
330
+ ] });
331
+ }
332
+ function JsonSection({ title, data, emptyLabel }) {
333
+ const [view, setView] = useState("formatted");
334
+ return /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsxs(Stack, { gap: "md", children: [
335
+ /* @__PURE__ */ jsxs(Group, { justify: "space-between", align: "center", children: [
336
+ /* @__PURE__ */ jsx(Title, { order: 3, children: title }),
337
+ data !== null && data !== void 0 && /* @__PURE__ */ jsx(
338
+ SegmentedControl,
339
+ {
340
+ value: view,
341
+ onChange: (v) => setView(v),
342
+ size: "xs",
343
+ data: [
344
+ { label: "Formatted", value: "formatted" },
345
+ { label: "JSON", value: "json" }
346
+ ]
347
+ }
348
+ )
349
+ ] }),
350
+ data === null || data === void 0 ? /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", fs: "italic", children: emptyLabel }) : view === "formatted" ? /* @__PURE__ */ jsx(ContextViewer, { data }) : /* @__PURE__ */ jsx(JsonViewer, { data })
351
+ ] }) });
352
+ }
353
+ function RequestsDetailPage({ requestId, onNavigateBack }) {
354
+ const { data: request, isLoading } = useRequest(requestId);
355
+ const { mutate: updateStatus, isPending: isUpdating } = useUpdateRequestStatus();
356
+ function handleTransition(newStatus) {
357
+ updateStatus(
358
+ { id: requestId, status: newStatus },
359
+ {
360
+ onSuccess: () => {
361
+ notifications.show({
362
+ title: "Status updated",
363
+ message: `Request status changed to "${newStatus.replace("_", " ")}".`,
364
+ color: "green",
365
+ position: "top-right",
366
+ autoClose: 4e3
367
+ });
368
+ },
369
+ onError: (error) => {
370
+ const message = error instanceof Error ? error.message : "Failed to update status.";
371
+ notifications.show({
372
+ title: "Update failed",
373
+ message,
374
+ color: "red",
375
+ position: "top-right",
376
+ autoClose: 5e3
377
+ });
378
+ }
379
+ }
380
+ );
381
+ }
382
+ const backButton = onNavigateBack ? /* @__PURE__ */ jsx(Button, { variant: "light", leftSection: /* @__PURE__ */ jsx(IconArrowLeft, { size: 16 }), onClick: onNavigateBack, size: "sm", children: "Back" }) : null;
383
+ if (isLoading) {
384
+ return /* @__PURE__ */ jsxs(Stack, { children: [
385
+ /* @__PURE__ */ jsxs(Group, { justify: "space-between", align: "end", children: [
386
+ /* @__PURE__ */ jsx(Skeleton, { height: 36, width: 240 }),
387
+ backButton
388
+ ] }),
389
+ /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsxs(Stack, { gap: "md", children: [
390
+ /* @__PURE__ */ jsx(Skeleton, { height: 20, width: 180 }),
391
+ /* @__PURE__ */ jsx(SimpleGrid, { cols: 2, children: Array.from({ length: 6 }).map((_, i) => /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
392
+ /* @__PURE__ */ jsx(Skeleton, { height: 12, width: 80 }),
393
+ /* @__PURE__ */ jsx(Skeleton, { height: 20, width: 140 })
394
+ ] }, i)) })
395
+ ] }) }),
396
+ /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsx(Skeleton, { height: 80 }) })
397
+ ] });
398
+ }
399
+ if (!request) {
400
+ return /* @__PURE__ */ jsxs(Stack, { children: [
401
+ /* @__PURE__ */ jsx(PageTitleCaption, { title: "Request Not Found", rightSection: backButton ?? void 0 }),
402
+ /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsx(Text, { ta: "center", c: "dimmed", children: "This request no longer exists or could not be loaded." }) })
403
+ ] });
404
+ }
405
+ const currentStatus = request.status;
406
+ return /* @__PURE__ */ jsxs(Stack, { children: [
407
+ /* @__PURE__ */ jsx(
408
+ PageTitleCaption,
409
+ {
410
+ title: request.title,
411
+ rightSection: /* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
412
+ /* @__PURE__ */ jsx(StatusTransitionMenu, { currentStatus, onTransition: handleTransition }),
413
+ backButton
414
+ ] })
415
+ }
416
+ ),
417
+ /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsxs(Stack, { gap: "md", children: [
418
+ /* @__PURE__ */ jsx(Title, { order: 3, children: "Details" }),
419
+ /* @__PURE__ */ jsxs(SimpleGrid, { cols: 2, spacing: "md", children: [
420
+ /* @__PURE__ */ jsxs(MetaField, { label: "Status", children: [
421
+ /* @__PURE__ */ jsx(StatusBadge, { status: currentStatus }),
422
+ isUpdating && /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", ml: 4, span: true, children: "Updating\u2026" })
423
+ ] }),
424
+ /* @__PURE__ */ jsx(MetaField, { label: "Type", children: /* @__PURE__ */ jsx(RequestTypeBadge, { type: request.type }) }),
425
+ /* @__PURE__ */ jsx(MetaField, { label: "Severity", children: /* @__PURE__ */ jsx(SeverityBadge, { severity: request.severity }) }),
426
+ /* @__PURE__ */ jsx(MetaField, { label: "Category", children: /* @__PURE__ */ jsx(Text, { size: "sm", children: request.category }) }),
427
+ /* @__PURE__ */ jsx(MetaField, { label: "Source", children: /* @__PURE__ */ jsx(Text, { size: "sm", children: request.source }) }),
428
+ /* @__PURE__ */ jsx(MetaField, { label: "Reporter", children: /* @__PURE__ */ jsx(Text, { size: "sm", children: request.reporter_id ?? "Unknown" }) }),
429
+ /* @__PURE__ */ jsx(MetaField, { label: "Reported At", children: /* @__PURE__ */ jsx(Text, { size: "sm", children: formatDateTime(request.reported_at) }) }),
430
+ request.resolved_at && /* @__PURE__ */ jsx(MetaField, { label: "Resolved At", children: /* @__PURE__ */ jsx(Text, { size: "sm", children: formatDateTime(request.resolved_at) }) })
431
+ ] })
432
+ ] }) }),
433
+ /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsxs(Stack, { gap: "md", children: [
434
+ /* @__PURE__ */ jsx(Title, { order: 3, children: "Description" }),
435
+ /* @__PURE__ */ jsx(Text, { size: "sm", style: { whiteSpace: "pre-wrap" }, children: request.description })
436
+ ] }) }),
437
+ /* @__PURE__ */ jsx(JsonSection, { title: "Evidence", data: request.evidence, emptyLabel: "No evidence recorded." }),
438
+ /* @__PURE__ */ jsx(JsonSection, { title: "Context", data: request.context, emptyLabel: "No context recorded." })
439
+ ] });
440
+ }
441
+
442
+ export { RequestTypeBadge, RequestsDetailPage, RequestsListPage, SeverityBadge, StatusBadge, StatusTransitionMenu, submittedRequestsManifest };
@@ -1,18 +1,18 @@
1
- export { AgentExecutionPanel, AgentSessionGroup, CommandQueueDetailPage, CommandQueuePage, CommandQueueShell, CommandViewPage, CommandViewSidebarContent, ExecuteWorkflowModal, ExecutionPanel, OperationsSidebar, OperationsSidebarMiddle, OperationsSidebarTop, OrganizationGraphPage, ResourceDetailPage, ResourceExecuteDialog, ResourceExecuteForm, ResourcesPage, ResourcesSidebar, SessionChatArea, SessionChatInterface, SessionChatPage, SessionDetailsSidebar, SessionExecutionLogs, SessionHeader, SessionListItem, SessionsPage, SessionsSidebar, WorkflowExecutionPanel, operationsManifest } from '../../chunk-BSW5MUAQ.js';
1
+ export { AgentExecutionPanel, AgentSessionGroup, CommandQueueDetailPage, CommandQueuePage, CommandQueueShell, CommandViewPage, CommandViewSidebarContent, ExecuteWorkflowModal, ExecutionPanel, OperationsSidebar, OperationsSidebarMiddle, OperationsSidebarTop, OrganizationGraphPage, ResourceDetailPage, ResourceExecuteDialog, ResourceExecuteForm, ResourcesPage, ResourcesSidebar, SessionChatArea, SessionChatInterface, SessionChatPage, SessionDetailsSidebar, SessionExecutionLogs, SessionHeader, SessionListItem, SessionsPage, SessionsSidebar, WorkflowExecutionPanel, operationsManifest } from '../../chunk-C56A2MAS.js';
2
2
  import '../../chunk-ROSMICXG.js';
3
3
  import '../../chunk-ADSSLKKP.js';
4
- import '../../chunk-G2TDX3W6.js';
5
- import '../../chunk-2CGYLRTX.js';
4
+ import '../../chunk-442LZPIR.js';
5
+ import '../../chunk-ETQRV5A6.js';
6
6
  import '../../chunk-BZZCNLT6.js';
7
7
  import '../../chunk-IIMU5YAJ.js';
8
8
  import '../../chunk-GBMNCNHX.js';
9
- export { OperationsOverview } from '../../chunk-67BKMKFG.js';
9
+ export { OperationsOverview } from '../../chunk-TAUPDLQ7.js';
10
10
  import '../../chunk-LGKLC5MG.js';
11
11
  import '../../chunk-STZJ7SY5.js';
12
12
  import '../../chunk-M25JL54Z.js';
13
13
  import '../../chunk-GHIPBT5V.js';
14
14
  import '../../chunk-7M2VOCYN.js';
15
- import '../../chunk-FT27I4S7.js';
15
+ import '../../chunk-JAUU6TZU.js';
16
16
  import '../../chunk-LXHZYSMQ.js';
17
17
  import '../../chunk-BRXELOHC.js';
18
18
  import '../../chunk-22UVE3RA.js';
@@ -34,8 +34,8 @@ import '../../chunk-ELJIFLCB.js';
34
34
  import '../../chunk-L4XXM55J.js';
35
35
  import '../../chunk-FL67C3WY.js';
36
36
  import '../../chunk-QJ2KCHKX.js';
37
- import '../../chunk-DT3QYZVU.js';
38
37
  import '../../chunk-SLVC5OJ2.js';
38
+ import '../../chunk-DT3QYZVU.js';
39
39
  import '../../chunk-RNP5R5I3.js';
40
40
  import '../../chunk-IOKL7BKE.js';
41
41
  import '../../chunk-MTJ43R2E.js';
@@ -1,10 +1,10 @@
1
- export { AccountSettings, AppearanceSettings, CreateWebhookEndpointModal, EditCredentialModal, EditWebhookEndpointModal, MemberConfigModal, OAuthIntegrationsCard, OrgMembersList, OrganizationSettings, WebhookEndpointList, WebhookEndpointSettings, settingsManifest } from '../../chunk-T7R5P5JJ.js';
1
+ export { AccountSettings, AppearanceSettings, CreateWebhookEndpointModal, EditCredentialModal, EditWebhookEndpointModal, MemberConfigModal, OAuthIntegrationsCard, OrgMembersList, OrganizationSettings, WebhookEndpointList, WebhookEndpointSettings, settingsManifest } from '../../chunk-A7346I7H.js';
2
2
  import '../../chunk-PDHTXPSF.js';
3
3
  import '../../chunk-GBMNCNHX.js';
4
4
  import '../../chunk-M25JL54Z.js';
5
5
  import '../../chunk-6RWMRQN5.js';
6
6
  import '../../chunk-7M2VOCYN.js';
7
- import '../../chunk-FT27I4S7.js';
7
+ import '../../chunk-JAUU6TZU.js';
8
8
  import '../../chunk-LXHZYSMQ.js';
9
9
  import '../../chunk-BRXELOHC.js';
10
10
  import '../../chunk-22UVE3RA.js';
@@ -26,8 +26,8 @@ import '../../chunk-ELJIFLCB.js';
26
26
  import '../../chunk-L4XXM55J.js';
27
27
  import '../../chunk-FL67C3WY.js';
28
28
  import '../../chunk-QJ2KCHKX.js';
29
- import '../../chunk-DT3QYZVU.js';
30
29
  import '../../chunk-SLVC5OJ2.js';
30
+ import '../../chunk-DT3QYZVU.js';
31
31
  import '../../chunk-RNP5R5I3.js';
32
32
  import '../../chunk-IOKL7BKE.js';
33
33
  import '../../chunk-MTJ43R2E.js';
@@ -2849,7 +2849,7 @@ type ProjectKind = 'client_engagement' | 'internal' | 'research' | 'other'
2849
2849
 
2850
2850
  type MilestoneStatus = 'upcoming' | 'in_progress' | 'completed' | 'overdue' | 'blocked'
2851
2851
 
2852
- type TaskStatus$1 =
2852
+ type TaskStatus =
2853
2853
  | 'planned'
2854
2854
  | 'in_progress'
2855
2855
  | 'blocked'
@@ -2878,7 +2878,7 @@ interface MilestoneFilters {
2878
2878
  }
2879
2879
 
2880
2880
  interface TaskFilters {
2881
- status?: TaskStatus$1
2881
+ status?: TaskStatus
2882
2882
  type?: TaskType
2883
2883
  milestoneId?: string
2884
2884
  projectId?: string
@@ -6328,7 +6328,7 @@ interface Task extends OriginTracking {
6328
6328
  priority: number;
6329
6329
  /** Optional checkpoint identifier for grouping related human approval tasks */
6330
6330
  humanCheckpoint?: string;
6331
- status: TaskStatus;
6331
+ status: QueueTaskStatus;
6332
6332
  /**
6333
6333
  * Target resource tracking — mirrors origin columns.
6334
6334
  * Set when task is created; patchable to redirect execution to a different resource.
@@ -6358,7 +6358,7 @@ interface Task extends OriginTracking {
6358
6358
  * - failed: execution failed, task can be retried
6359
6359
  * - expired: timed out before action
6360
6360
  */
6361
- type TaskStatus = 'pending' | 'processing' | 'completed' | 'failed' | 'expired';
6361
+ type QueueTaskStatus = 'pending' | 'processing' | 'completed' | 'failed' | 'expired';
6362
6362
  /**
6363
6363
  * Parameters for patching mutable metadata on a task
6364
6364
  */
@@ -8675,8 +8675,8 @@ declare function useSessionWebSocket(sessionId: string, apiUrl: string): {
8675
8675
  lastTokenUsage: SessionTokenUsage | null;
8676
8676
  };
8677
8677
 
8678
- declare function useCommandQueue({ status, limit, offset, humanCheckpoint, timeRange, priorityMin, priorityMax, }?: {
8679
- status?: TaskStatus;
8678
+ declare function useCommandQueue({ status, limit, offset, humanCheckpoint, timeRange, priorityMin, priorityMax }?: {
8679
+ status?: QueueTaskStatus;
8680
8680
  limit?: number;
8681
8681
  offset?: number;
8682
8682
  humanCheckpoint?: string;
@@ -8696,7 +8696,7 @@ declare function useCommandQueue({ status, limit, offset, humanCheckpoint, timeR
8696
8696
  description?: string;
8697
8697
  priority: number;
8698
8698
  humanCheckpoint?: string;
8699
- status: TaskStatus;
8699
+ status: QueueTaskStatus;
8700
8700
  targetResourceId?: string;
8701
8701
  targetResourceType?: "agent" | "workflow";
8702
8702
  targetExecutionId?: string;
@@ -1,5 +1,5 @@
1
1
  import '../chunk-7M2VOCYN.js';
2
- export { ApiKeyService, CredentialService, DeploymentService, OperationsService, OrganizationMembershipService, WebhookEndpointService, acquisitionListKeys, companyKeys, contactKeys, dealKeys, dealNoteKeys, dealTaskKeys, executionsKeys, filterByDomainFilters, isSessionCapable, milestoneKeys, noteKeys, operationsKeys, projectActivityKeys, projectKeys, requestsKeys, scheduleKeys, sessionsKeys, sortData, taskKeys, useActivateDeployment, useActivities, useActivitiesRealtime, useActivityFilters, useActivityTrend, useArchiveSession, useArchivedLogs, useBatchDelete, useBatchTelemetry, useBatchedResourcesHealth, useBulkDeleteExecutions, useBusinessImpact, useCancelExecution, useCancelSchedule, useCheckpointTasks, useCommandQueue, useCommandQueueTotals, useCommandViewData, useCommandViewDomainFilters, useCommandViewLayout, useCommandViewStats, useCommandViewStore, useCompanies, useCompany, useCompleteDealTask, useContact, useContacts, useCostBreakdown, useCostByModel, useCostSummary, useCostTrends, useCreateApiKey, useCreateCompany, useCreateContact, useCreateCredential, useCreateDealNote, useCreateDealTask, useCreateProject as useCreateDeliveryProject, useCreateList, useCreateMilestone, useCreateNote, useCreateSchedule, useCreateSession, useCreateTask, useCreateWebhookEndpoint, useCredentials, useDashboardMetrics, useDeactivateDeployment, useDeactivateMembership, useDealDetail, useDealNotes, useDealTasks, useDealTasksDue, useDeals, useDeleteApiKey, useDeleteCompanies, useDeleteContacts, useDeleteCredential, useDeleteDeal, useDeleteProject as useDeleteDeliveryProject, useDeleteTask2 as useDeleteDeliveryTask, useDeleteDeployment, useDeleteExecution, useDeleteList, useDeleteMilestone, useDeleteSchedule, useDeleteSession, useDeleteTask, useDeleteWebhookEndpoint, useDeploymentDocs, useErrorAnalysis, useErrorDetail, useErrorDetails, useErrorDistribution, useErrorNotification, useExecuteAsync, useExecuteResource, useExecution, useExecutionHealth, useExecutionLogSSE, useExecutionLogs, useExecutionLogsFilters, useExecutionPanelState, useExecutions, useGetExecutionHistory, useGetSchedule, useGraphStats, useList, useListApiKeys, useListDeployments, useListExecutions, useListProgress, useListSchedules, useListWebhookEndpoints, useLists, useListsTelemetry, useMarkAllAsRead, useMarkAsRead, useMilestones, useNotificationCount as useNotificationCountSSE, useNotifications, useOrganizationMembers, usePaginationState, usePatchTask, usePauseSchedule, useProject, useProjectActivities, useProjectMilestones, useProjectNotes, useProjectRealtime, useProjectTasks, useProjects, useReactivateMembership, useRecentExecutionsByResource, useRequest, useRequestsList, useResolveAllErrors, useResolveError, useResolveErrorsByExecution, useResourceDefinition, useResourceErrors, useResourceExecutions, useResourceSearch, useResources, useResourcesDomainFilters, useResourcesHealth, useResumeSchedule, useRetryExecution, useSSEConnection, useScheduledTasks, useSession, useSessionExecution, useSessionExecutions, useSessionMessages, useSessionWebSocket, useSessions, useSortedData, useStatusFilter, useSubmitAction, useSuccessNotification, useSyncDealStage, useTableSelection, useTableSort, useTasks, useTestNotification, useTimeRangeDates, useTopFailingResources, useUnresolveError, useUnresolvedErrors, useUpdateAnchor, useUpdateApiKey, useUpdateCompany, useUpdateContact, useUpdateCredential, useUpdateProject as useUpdateDeliveryProject, useUpdateList, useUpdateListConfig, useUpdateMemberConfig, useUpdateMilestone, useUpdateRequestStatus, useUpdateSchedule, useUpdateTask, useUpdateWebhookEndpoint, useUserMemberships, useVisibleResources, useWarningNotification } from '../chunk-FT27I4S7.js';
2
+ export { ApiKeyService, CredentialService, DeploymentService, OperationsService, OrganizationMembershipService, WebhookEndpointService, acquisitionListKeys, companyKeys, contactKeys, dealKeys, dealNoteKeys, dealTaskKeys, executionsKeys, filterByDomainFilters, isSessionCapable, milestoneKeys, noteKeys, operationsKeys, projectActivityKeys, projectKeys, requestsKeys, scheduleKeys, sessionsKeys, sortData, taskKeys, useActivateDeployment, useActivities, useActivitiesRealtime, useActivityFilters, useActivityTrend, useArchiveSession, useArchivedLogs, useBatchDelete, useBatchTelemetry, useBatchedResourcesHealth, useBulkDeleteExecutions, useBusinessImpact, useCancelExecution, useCancelSchedule, useCheckpointTasks, useCommandQueue, useCommandQueueTotals, useCommandViewData, useCommandViewDomainFilters, useCommandViewLayout, useCommandViewStats, useCommandViewStore, useCompanies, useCompany, useCompleteDealTask, useContact, useContacts, useCostBreakdown, useCostByModel, useCostSummary, useCostTrends, useCreateApiKey, useCreateCompany, useCreateContact, useCreateCredential, useCreateDealNote, useCreateDealTask, useCreateProject as useCreateDeliveryProject, useCreateList, useCreateMilestone, useCreateNote, useCreateSchedule, useCreateSession, useCreateTask, useCreateWebhookEndpoint, useCredentials, useDashboardMetrics, useDeactivateDeployment, useDeactivateMembership, useDealDetail, useDealNotes, useDealTasks, useDealTasksDue, useDeals, useDeleteApiKey, useDeleteCompanies, useDeleteContacts, useDeleteCredential, useDeleteDeal, useDeleteProject as useDeleteDeliveryProject, useDeleteTask2 as useDeleteDeliveryTask, useDeleteDeployment, useDeleteExecution, useDeleteList, useDeleteMilestone, useDeleteSchedule, useDeleteSession, useDeleteTask, useDeleteWebhookEndpoint, useDeploymentDocs, useErrorAnalysis, useErrorDetail, useErrorDetails, useErrorDistribution, useErrorNotification, useExecuteAsync, useExecuteResource, useExecution, useExecutionHealth, useExecutionLogSSE, useExecutionLogs, useExecutionLogsFilters, useExecutionPanelState, useExecutions, useGetExecutionHistory, useGetSchedule, useGraphStats, useList, useListApiKeys, useListDeployments, useListExecutions, useListProgress, useListSchedules, useListWebhookEndpoints, useLists, useListsTelemetry, useMarkAllAsRead, useMarkAsRead, useMilestones, useNotificationCount as useNotificationCountSSE, useNotifications, useOrganizationMembers, usePaginationState, usePatchTask, usePauseSchedule, useProject, useProjectActivities, useProjectMilestones, useProjectNotes, useProjectRealtime, useProjectTasks, useProjects, useReactivateMembership, useRecentExecutionsByResource, useRequest, useRequestsList, useResolveAllErrors, useResolveError, useResolveErrorsByExecution, useResourceDefinition, useResourceErrors, useResourceExecutions, useResourceSearch, useResources, useResourcesDomainFilters, useResourcesHealth, useResumeSchedule, useRetryExecution, useSSEConnection, useScheduledTasks, useSession, useSessionExecution, useSessionExecutions, useSessionMessages, useSessionWebSocket, useSessions, useSortedData, useStatusFilter, useSubmitAction, useSuccessNotification, useSyncDealStage, useTableSelection, useTableSort, useTasks, useTestNotification, useTimeRangeDates, useTopFailingResources, useUnresolveError, useUnresolvedErrors, useUpdateAnchor, useUpdateApiKey, useUpdateCompany, useUpdateContact, useUpdateCredential, useUpdateProject as useUpdateDeliveryProject, useUpdateList, useUpdateListConfig, useUpdateMemberConfig, useUpdateMilestone, useUpdateRequestStatus, useUpdateSchedule, useUpdateTask, useUpdateWebhookEndpoint, useUserMemberships, useVisibleResources, useWarningNotification } from '../chunk-JAUU6TZU.js';
3
3
  export { observabilityKeys, useErrorTrends } from '../chunk-LXHZYSMQ.js';
4
4
  import '../chunk-BRXELOHC.js';
5
5
  import '../chunk-22UVE3RA.js';
@@ -21,8 +21,8 @@ import '../chunk-ELJIFLCB.js';
21
21
  import '../chunk-L4XXM55J.js';
22
22
  import '../chunk-FL67C3WY.js';
23
23
  import '../chunk-QJ2KCHKX.js';
24
- import '../chunk-DT3QYZVU.js';
25
24
  import '../chunk-SLVC5OJ2.js';
25
+ import '../chunk-DT3QYZVU.js';
26
26
  import '../chunk-RNP5R5I3.js';
27
27
  export { REFETCH_INTERVAL_RUNNING, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY } from '../chunk-IOKL7BKE.js';
28
28
  import '../chunk-MTJ43R2E.js';
@@ -2849,7 +2849,7 @@ type ProjectKind = 'client_engagement' | 'internal' | 'research' | 'other'
2849
2849
 
2850
2850
  type MilestoneStatus = 'upcoming' | 'in_progress' | 'completed' | 'overdue' | 'blocked'
2851
2851
 
2852
- type TaskStatus$1 =
2852
+ type TaskStatus =
2853
2853
  | 'planned'
2854
2854
  | 'in_progress'
2855
2855
  | 'blocked'
@@ -2878,7 +2878,7 @@ interface MilestoneFilters {
2878
2878
  }
2879
2879
 
2880
2880
  interface TaskFilters {
2881
- status?: TaskStatus$1
2881
+ status?: TaskStatus
2882
2882
  type?: TaskType
2883
2883
  milestoneId?: string
2884
2884
  projectId?: string
@@ -6328,7 +6328,7 @@ interface Task extends OriginTracking {
6328
6328
  priority: number;
6329
6329
  /** Optional checkpoint identifier for grouping related human approval tasks */
6330
6330
  humanCheckpoint?: string;
6331
- status: TaskStatus;
6331
+ status: QueueTaskStatus;
6332
6332
  /**
6333
6333
  * Target resource tracking — mirrors origin columns.
6334
6334
  * Set when task is created; patchable to redirect execution to a different resource.
@@ -6358,7 +6358,7 @@ interface Task extends OriginTracking {
6358
6358
  * - failed: execution failed, task can be retried
6359
6359
  * - expired: timed out before action
6360
6360
  */
6361
- type TaskStatus = 'pending' | 'processing' | 'completed' | 'failed' | 'expired';
6361
+ type QueueTaskStatus = 'pending' | 'processing' | 'completed' | 'failed' | 'expired';
6362
6362
  /**
6363
6363
  * Parameters for patching mutable metadata on a task
6364
6364
  */
@@ -8675,8 +8675,8 @@ declare function useSessionWebSocket(sessionId: string, apiUrl: string): {
8675
8675
  lastTokenUsage: SessionTokenUsage | null;
8676
8676
  };
8677
8677
 
8678
- declare function useCommandQueue({ status, limit, offset, humanCheckpoint, timeRange, priorityMin, priorityMax, }?: {
8679
- status?: TaskStatus;
8678
+ declare function useCommandQueue({ status, limit, offset, humanCheckpoint, timeRange, priorityMin, priorityMax }?: {
8679
+ status?: QueueTaskStatus;
8680
8680
  limit?: number;
8681
8681
  offset?: number;
8682
8682
  humanCheckpoint?: string;
@@ -8696,7 +8696,7 @@ declare function useCommandQueue({ status, limit, offset, humanCheckpoint, timeR
8696
8696
  description?: string;
8697
8697
  priority: number;
8698
8698
  humanCheckpoint?: string;
8699
- status: TaskStatus;
8699
+ status: QueueTaskStatus;
8700
8700
  targetResourceId?: string;
8701
8701
  targetResourceType?: "agent" | "workflow";
8702
8702
  targetExecutionId?: string;