@elevasis/ui 2.18.0 → 2.20.0
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/{CoreAuthKitInner-I32JCNE7.js → CoreAuthKitInner-QC62UHTZ.js} +1 -0
- package/dist/api/index.js +3 -2
- package/dist/app/index.js +6 -5
- package/dist/auth/context.js +1 -0
- package/dist/auth/index.js +1 -0
- package/dist/charts/index.js +4 -3
- package/dist/{chunk-LT33DSMO.js → chunk-2CFOFSSG.js} +4 -4
- package/dist/chunk-3JCMO7SD.js +14 -0
- package/dist/chunk-7XKCG5CT.js +125 -0
- package/dist/{chunk-SQPM2QDH.js → chunk-BHR7IV72.js} +3 -2
- package/dist/{chunk-DDZMBNTY.js → chunk-CTTY6FUT.js} +2 -2
- package/dist/chunk-DRQPEMJI.js +42 -0
- package/dist/{chunk-EY322HXF.js → chunk-FMFX4K6E.js} +19 -6
- package/dist/{chunk-UA36WILN.js → chunk-GP3AFJYG.js} +145 -211
- package/dist/{chunk-P6TC4K7I.js → chunk-GTYUP7MB.js} +4 -4
- package/dist/chunk-HJ4CJIWN.js +38 -0
- package/dist/chunk-I2KLQ2HA.js +19 -0
- package/dist/{chunk-B6FIIEFO.js → chunk-JR5WNTLA.js} +128 -117
- package/dist/{chunk-A2AZY5SF.js → chunk-LR5CRY5A.js} +1 -1
- package/dist/{chunk-GRGRBWIO.js → chunk-M7W7CGPL.js} +1 -1
- package/dist/{chunk-SS2UVUSG.js → chunk-MZFJWCPH.js} +73 -121
- package/dist/{chunk-P3TFNFZS.js → chunk-OUYH2SBS.js} +3 -3
- package/dist/{chunk-66VY5EMV.js → chunk-PJVG3ISO.js} +5 -5
- package/dist/{chunk-I3LQGLUC.js → chunk-Q4QJOSVS.js} +1 -1
- package/dist/{chunk-R73EHHPN.js → chunk-Q5HC6ENG.js} +18 -2
- package/dist/{chunk-VDM6DQES.js → chunk-R7OJCNL3.js} +1 -1
- package/dist/{chunk-6RWMRQN5.js → chunk-TIIPYB2Z.js} +1 -1
- package/dist/{chunk-34NQLV2W.js → chunk-TO7QXDBX.js} +3 -3
- package/dist/{chunk-WP3IYOVJ.js → chunk-YP6T426C.js} +107 -56
- package/dist/{chunk-FM6LSZ45.js → chunk-ZE2KQSHL.js} +4 -4
- package/dist/components/chat/index.js +1 -0
- package/dist/components/index.d.ts +218 -2808
- package/dist/components/index.js +26 -25
- package/dist/components/navigation/index.js +1 -0
- package/dist/execution/index.js +1 -0
- package/dist/features/auth/index.js +1 -0
- package/dist/features/crm/index.d.ts +54 -53
- package/dist/features/crm/index.js +12 -11
- package/dist/features/dashboard/index.js +13 -12
- package/dist/features/delivery/index.d.ts +2642 -2605
- package/dist/features/delivery/index.js +12 -11
- package/dist/features/lead-gen/index.js +12 -22
- package/dist/features/monitoring/index.js +14 -13
- package/dist/features/monitoring/requests/index.d.ts +38 -27
- package/dist/features/monitoring/requests/index.js +213 -106
- package/dist/features/operations/index.d.ts +8 -26
- package/dist/features/operations/index.js +16 -15
- package/dist/features/seo/index.js +1 -0
- package/dist/features/settings/index.d.ts +36 -37
- package/dist/features/settings/index.js +13 -12
- package/dist/graph/index.js +1 -0
- package/dist/hooks/delivery/index.d.ts +2712 -2699
- package/dist/hooks/delivery/index.js +3 -2
- package/dist/hooks/index.d.ts +1674 -4617
- package/dist/hooks/index.js +11 -10
- package/dist/hooks/operations/command-view/utils/transformCommandViewData.js +1 -0
- package/dist/hooks/published.d.ts +1674 -4617
- package/dist/hooks/published.js +11 -10
- package/dist/index.d.ts +773 -3635
- package/dist/index.js +12 -11
- package/dist/initialization/index.js +1 -0
- package/dist/layout/index.d.ts +14 -2
- package/dist/layout/index.js +2 -1
- package/dist/organization/index.js +1 -0
- package/dist/profile/index.js +1 -0
- package/dist/provider/ElevasisServiceContext.js +1 -0
- package/dist/provider/index.d.ts +320 -249
- package/dist/provider/index.js +9 -8
- package/dist/provider/published.d.ts +320 -249
- package/dist/provider/published.js +6 -5
- package/dist/router/context.js +1 -0
- package/dist/router/index.js +1 -0
- package/dist/sse/index.d.ts +1 -6
- package/dist/sse/index.js +1 -1
- package/dist/supabase/index.js +1 -0
- package/dist/test-utils/index.d.ts +117 -0
- package/dist/test-utils/index.js +136 -0
- package/dist/test-utils/setup-integration.d.ts +2 -0
- package/dist/test-utils/setup-integration.js +26 -0
- package/dist/test-utils/setup.d.ts +2 -0
- package/dist/test-utils/setup.js +47 -0
- package/dist/theme/index.js +3 -2
- package/dist/typeform/index.js +1 -0
- package/dist/typeform/schemas.js +1 -0
- package/dist/types/index.d.ts +1604 -2489
- package/dist/utils/index.d.ts +32 -1
- package/dist/utils/index.js +2 -1
- package/dist/zustand/index.d.ts +4 -8
- package/dist/zustand/index.js +2 -0
- package/package.json +33 -5
- package/src/test-utils/README.md +5 -0
- package/dist/chunk-ADSSLKKP.js +0 -10
- /package/dist/{chunk-GCBWGGI6.js → chunk-OD7GWIZS.js} +0 -0
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import '../../../chunk-TUMSNGTX.js';
|
|
1
|
+
import { TableSelectionToolbar } from '../../../chunk-TUMSNGTX.js';
|
|
2
2
|
import { FilterBar } from '../../../chunk-PDHTXPSF.js';
|
|
3
|
-
import { ConfirmationModal } from '../../../chunk-GBMNCNHX.js';
|
|
3
|
+
import { ConfirmationModal, CustomModal } from '../../../chunk-GBMNCNHX.js';
|
|
4
4
|
import '../../../chunk-7M2VOCYN.js';
|
|
5
|
-
import { usePaginationState, useRequestsList, useUpdateRequestStatus, useRequest } from '../../../chunk-
|
|
5
|
+
import { usePaginationState, useRequestsList, useUpdateRequestStatus, useDeleteRequest, useTableSelection, useRequest } from '../../../chunk-FMFX4K6E.js';
|
|
6
6
|
import '../../../chunk-BRXELOHC.js';
|
|
7
7
|
import '../../../chunk-QSTH6T77.js';
|
|
8
|
-
import '../../../chunk-
|
|
8
|
+
import '../../../chunk-M7W7CGPL.js';
|
|
9
9
|
import '../../../chunk-22UVE3RA.js';
|
|
10
10
|
import '../../../chunk-3ZMAGTWF.js';
|
|
11
|
-
import '../../../chunk-
|
|
12
|
-
import '../../../chunk-
|
|
13
|
-
import '../../../chunk-
|
|
11
|
+
import '../../../chunk-Q4QJOSVS.js';
|
|
12
|
+
import '../../../chunk-TO7QXDBX.js';
|
|
13
|
+
import '../../../chunk-Q5HC6ENG.js';
|
|
14
14
|
import '../../../chunk-WLOQ4IBG.js';
|
|
15
|
-
import '../../../chunk-
|
|
16
|
-
import '../../../chunk-
|
|
15
|
+
import '../../../chunk-LR5CRY5A.js';
|
|
16
|
+
import '../../../chunk-OUYH2SBS.js';
|
|
17
17
|
import '../../../chunk-RX4UWZZR.js';
|
|
18
|
-
import { PageTitleCaption, ContextViewer, JsonViewer } from '../../../chunk-
|
|
18
|
+
import { PageTitleCaption, CardHeader, ContextViewer, JsonViewer } from '../../../chunk-BHR7IV72.js';
|
|
19
19
|
import '../../../chunk-SZHARWKU.js';
|
|
20
20
|
import '../../../chunk-3KMDHCAR.js';
|
|
21
21
|
import '../../../chunk-NYBEU5TE.js';
|
|
22
|
-
import '../../../chunk-
|
|
22
|
+
import '../../../chunk-R7OJCNL3.js';
|
|
23
23
|
import '../../../chunk-2IFYDILW.js';
|
|
24
24
|
import '../../../chunk-Q7DJKLEN.js';
|
|
25
25
|
import '../../../chunk-7YQKVWSD.js';
|
|
@@ -28,7 +28,7 @@ import '../../../chunk-QJ2KCHKX.js';
|
|
|
28
28
|
import '../../../chunk-HQ7M6PBW.js';
|
|
29
29
|
import '../../../chunk-DT3QYZVU.js';
|
|
30
30
|
import '../../../chunk-RNP5R5I3.js';
|
|
31
|
-
import { formatTimeAgo } from '../../../chunk-
|
|
31
|
+
import { formatTimeAgo } from '../../../chunk-OD7GWIZS.js';
|
|
32
32
|
import '../../../chunk-KRWALB24.js';
|
|
33
33
|
import '../../../chunk-SLH2QLKV.js';
|
|
34
34
|
import '../../../chunk-DK2HVHCY.js';
|
|
@@ -36,11 +36,12 @@ import '../../../chunk-DD3CCMCZ.js';
|
|
|
36
36
|
import '../../../chunk-QHSW4WHM.js';
|
|
37
37
|
import '../../../chunk-IRW7JMQ4.js';
|
|
38
38
|
import '../../../chunk-BRJ3QZ4E.js';
|
|
39
|
+
import '../../../chunk-I2KLQ2HA.js';
|
|
39
40
|
import { useState } from 'react';
|
|
40
41
|
import { useNavigate } from '@tanstack/react-router';
|
|
41
|
-
import { Badge, Menu, Button, Stack, Paper, Select, Center, Loader, Text, Table, Group, Pagination, Skeleton, SimpleGrid,
|
|
42
|
+
import { Badge, Menu, Button, Stack, Paper, Select, Center, Loader, Text, Table, Checkbox, Group, Pagination, Title, Skeleton, SimpleGrid, CopyButton, Tooltip, ActionIcon, SegmentedControl } from '@mantine/core';
|
|
43
|
+
import { IconChevronDown, IconAlertTriangle, IconCheck, IconCopy, IconClipboardText, IconFileDescription, IconAlertCircle, IconInfoCircle, IconArrowLeft } from '@tabler/icons-react';
|
|
42
44
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
43
|
-
import { IconChevronDown, IconAlertTriangle, IconArrowLeft } from '@tabler/icons-react';
|
|
44
45
|
import { notifications } from '@mantine/notifications';
|
|
45
46
|
|
|
46
47
|
// src/features/monitoring/requests/manifest.ts
|
|
@@ -165,6 +166,7 @@ function RequestsListPage({
|
|
|
165
166
|
const [severityFilter, setSeverityFilter] = useState(severityProp);
|
|
166
167
|
const [statusFilter, setStatusFilter] = useState(statusProp ?? "open");
|
|
167
168
|
const [sourceFilter, setSourceFilter] = useState(sourceProp);
|
|
169
|
+
const [showBatchDelete, setShowBatchDelete] = useState(false);
|
|
168
170
|
const { page, setPage, offset, totalPages } = usePaginationState(PAGE_SIZE, [
|
|
169
171
|
typeFilter,
|
|
170
172
|
severityFilter,
|
|
@@ -180,6 +182,8 @@ function RequestsListPage({
|
|
|
180
182
|
offset
|
|
181
183
|
});
|
|
182
184
|
const { mutate: updateStatus } = useUpdateRequestStatus();
|
|
185
|
+
const deleteRequest = useDeleteRequest();
|
|
186
|
+
const selection = useTableSelection(requests);
|
|
183
187
|
function pushSearchParam(patch) {
|
|
184
188
|
navigate({
|
|
185
189
|
// @ts-expect-error — search type is narrowed by each route wrapper
|
|
@@ -206,6 +210,11 @@ function RequestsListPage({
|
|
|
206
210
|
setSourceFilter(next);
|
|
207
211
|
pushSearchParam({ source: next });
|
|
208
212
|
}
|
|
213
|
+
const handleDeleteSelected = async () => {
|
|
214
|
+
await Promise.all([...selection.selectedIds].map((id) => deleteRequest.mutateAsync(id)));
|
|
215
|
+
setShowBatchDelete(false);
|
|
216
|
+
selection.clear();
|
|
217
|
+
};
|
|
209
218
|
const estimatedTotal = requests.length < PAGE_SIZE ? offset + requests.length : offset + PAGE_SIZE + 1;
|
|
210
219
|
const pageCount = totalPages(estimatedTotal);
|
|
211
220
|
return /* @__PURE__ */ jsxs(Stack, { children: [
|
|
@@ -217,79 +226,100 @@ function RequestsListPage({
|
|
|
217
226
|
}
|
|
218
227
|
),
|
|
219
228
|
/* @__PURE__ */ jsx(Paper, { children: /* @__PURE__ */ jsxs(Stack, { gap: 0, children: [
|
|
220
|
-
/* @__PURE__ */ jsxs(
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
229
|
+
/* @__PURE__ */ jsxs(
|
|
230
|
+
FilterBar,
|
|
231
|
+
{
|
|
232
|
+
actions: /* @__PURE__ */ jsx(
|
|
233
|
+
TableSelectionToolbar,
|
|
234
|
+
{
|
|
235
|
+
selectedCount: selection.selectedCount,
|
|
236
|
+
onDelete: () => setShowBatchDelete(true),
|
|
237
|
+
isDeleting: deleteRequest.isPending
|
|
238
|
+
}
|
|
239
|
+
),
|
|
240
|
+
children: [
|
|
241
|
+
/* @__PURE__ */ jsx(
|
|
242
|
+
Select,
|
|
243
|
+
{
|
|
244
|
+
placeholder: "All types",
|
|
245
|
+
value: typeFilter ?? null,
|
|
246
|
+
onChange: handleTypeChange,
|
|
247
|
+
data: [
|
|
248
|
+
{ value: "bug", label: "Bug" },
|
|
249
|
+
{ value: "feature", label: "Feature" },
|
|
250
|
+
{ value: "question", label: "Question" },
|
|
251
|
+
{ value: "other", label: "Other" }
|
|
252
|
+
],
|
|
253
|
+
clearable: true,
|
|
254
|
+
size: "sm",
|
|
255
|
+
w: 150
|
|
256
|
+
}
|
|
257
|
+
),
|
|
258
|
+
/* @__PURE__ */ jsx(
|
|
259
|
+
Select,
|
|
260
|
+
{
|
|
261
|
+
placeholder: "All severities",
|
|
262
|
+
value: severityFilter ?? null,
|
|
263
|
+
onChange: handleSeverityChange,
|
|
264
|
+
data: [
|
|
265
|
+
{ value: "critical", label: "Critical" },
|
|
266
|
+
{ value: "warning", label: "Warning" },
|
|
267
|
+
{ value: "info", label: "Info" }
|
|
268
|
+
],
|
|
269
|
+
clearable: true,
|
|
270
|
+
size: "sm",
|
|
271
|
+
w: 160
|
|
272
|
+
}
|
|
273
|
+
),
|
|
274
|
+
/* @__PURE__ */ jsx(
|
|
275
|
+
Select,
|
|
276
|
+
{
|
|
277
|
+
placeholder: "All statuses",
|
|
278
|
+
value: statusFilter ?? null,
|
|
279
|
+
onChange: handleStatusChange,
|
|
280
|
+
data: [
|
|
281
|
+
{ value: "open", label: "Open" },
|
|
282
|
+
{ value: "investigating", label: "Investigating" },
|
|
283
|
+
{ value: "resolved", label: "Resolved" },
|
|
284
|
+
{ value: "wont_fix", label: "Won't Fix" }
|
|
285
|
+
],
|
|
286
|
+
clearable: true,
|
|
287
|
+
size: "sm",
|
|
288
|
+
w: 170
|
|
289
|
+
}
|
|
290
|
+
),
|
|
291
|
+
/* @__PURE__ */ jsx(
|
|
292
|
+
Select,
|
|
293
|
+
{
|
|
294
|
+
placeholder: "All sources",
|
|
295
|
+
value: sourceFilter ?? null,
|
|
296
|
+
onChange: handleSourceChange,
|
|
297
|
+
data: [
|
|
298
|
+
{ value: "agent", label: "Agent" },
|
|
299
|
+
{ value: "cli", label: "CLI" },
|
|
300
|
+
{ value: "api", label: "API" },
|
|
301
|
+
{ value: "webhook", label: "Webhook" },
|
|
302
|
+
{ value: "user", label: "User" },
|
|
303
|
+
{ value: "external", label: "External" }
|
|
304
|
+
],
|
|
305
|
+
clearable: true,
|
|
306
|
+
size: "sm",
|
|
307
|
+
w: 150
|
|
308
|
+
}
|
|
309
|
+
)
|
|
310
|
+
]
|
|
311
|
+
}
|
|
312
|
+
),
|
|
291
313
|
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: [
|
|
292
314
|
/* @__PURE__ */ jsx(Table.Thead, { children: /* @__PURE__ */ jsxs(Table.Tr, { children: [
|
|
315
|
+
/* @__PURE__ */ jsx(Table.Th, { w: 40, children: /* @__PURE__ */ jsx(
|
|
316
|
+
Checkbox,
|
|
317
|
+
{
|
|
318
|
+
checked: selection.isPageAllSelected,
|
|
319
|
+
indeterminate: selection.isPagePartiallySelected,
|
|
320
|
+
onChange: selection.togglePage
|
|
321
|
+
}
|
|
322
|
+
) }),
|
|
293
323
|
/* @__PURE__ */ jsx(Table.Th, { children: "Type" }),
|
|
294
324
|
/* @__PURE__ */ jsx(Table.Th, { children: "Severity" }),
|
|
295
325
|
/* @__PURE__ */ jsx(Table.Th, { children: "Title" }),
|
|
@@ -299,6 +329,13 @@ function RequestsListPage({
|
|
|
299
329
|
/* @__PURE__ */ jsx(Table.Th, { children: "Actions" })
|
|
300
330
|
] }) }),
|
|
301
331
|
/* @__PURE__ */ jsx(Table.Tbody, { children: requests.map((request) => /* @__PURE__ */ jsxs(Table.Tr, { onClick: () => onNavigateToRequest?.(request.id), children: [
|
|
332
|
+
/* @__PURE__ */ jsx(Table.Td, { onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsx(
|
|
333
|
+
Checkbox,
|
|
334
|
+
{
|
|
335
|
+
checked: selection.isSelected(request.id),
|
|
336
|
+
onChange: () => selection.toggle(request.id)
|
|
337
|
+
}
|
|
338
|
+
) }),
|
|
302
339
|
/* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsx(RequestTypeBadge, { type: request.type }) }),
|
|
303
340
|
/* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsx(SeverityBadge, { severity: request.severity }) }),
|
|
304
341
|
/* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsx(Text, { size: "sm", lineClamp: 1, children: request.title }) }),
|
|
@@ -315,7 +352,38 @@ function RequestsListPage({
|
|
|
315
352
|
] }, request.id)) })
|
|
316
353
|
] }),
|
|
317
354
|
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 }) })
|
|
318
|
-
] }) })
|
|
355
|
+
] }) }),
|
|
356
|
+
/* @__PURE__ */ jsx(
|
|
357
|
+
CustomModal,
|
|
358
|
+
{
|
|
359
|
+
opened: showBatchDelete,
|
|
360
|
+
onClose: () => !deleteRequest.isPending && setShowBatchDelete(false),
|
|
361
|
+
size: "sm",
|
|
362
|
+
loading: deleteRequest.isPending,
|
|
363
|
+
children: /* @__PURE__ */ jsxs(Stack, { gap: "md", children: [
|
|
364
|
+
/* @__PURE__ */ jsxs(Group, { gap: "sm", children: [
|
|
365
|
+
/* @__PURE__ */ jsx(IconAlertTriangle, { size: 24, color: "var(--color-error)" }),
|
|
366
|
+
/* @__PURE__ */ jsxs(Title, { order: 4, children: [
|
|
367
|
+
"Delete ",
|
|
368
|
+
selection.selectedCount,
|
|
369
|
+
" Requests"
|
|
370
|
+
] })
|
|
371
|
+
] }),
|
|
372
|
+
/* @__PURE__ */ jsxs(Text, { size: "sm", children: [
|
|
373
|
+
"Are you sure you want to delete",
|
|
374
|
+
" ",
|
|
375
|
+
/* @__PURE__ */ jsx(Text, { span: true, fw: 600, children: selection.selectedCount }),
|
|
376
|
+
" ",
|
|
377
|
+
"selected requests?"
|
|
378
|
+
] }),
|
|
379
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "This action cannot be undone." }),
|
|
380
|
+
/* @__PURE__ */ jsxs(Group, { justify: "flex-end", mt: "md", children: [
|
|
381
|
+
/* @__PURE__ */ jsx(Button, { variant: "light", onClick: () => setShowBatchDelete(false), disabled: deleteRequest.isPending, children: "Cancel" }),
|
|
382
|
+
/* @__PURE__ */ jsx(Button, { color: "red", loading: deleteRequest.isPending, onClick: () => void handleDeleteSelected(), children: "Delete" })
|
|
383
|
+
] })
|
|
384
|
+
] })
|
|
385
|
+
}
|
|
386
|
+
)
|
|
319
387
|
] });
|
|
320
388
|
}
|
|
321
389
|
function formatDateTime(isoString) {
|
|
@@ -331,24 +399,28 @@ function MetaField({ label, children }) {
|
|
|
331
399
|
/* @__PURE__ */ jsx("div", { children })
|
|
332
400
|
] });
|
|
333
401
|
}
|
|
334
|
-
function JsonSection({ title, data, emptyLabel }) {
|
|
402
|
+
function JsonSection({ title, icon, data, emptyLabel }) {
|
|
335
403
|
const [view, setView] = useState("formatted");
|
|
336
404
|
return /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsxs(Stack, { gap: "md", children: [
|
|
337
|
-
/* @__PURE__ */
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
405
|
+
/* @__PURE__ */ jsx(
|
|
406
|
+
CardHeader,
|
|
407
|
+
{
|
|
408
|
+
icon,
|
|
409
|
+
title,
|
|
410
|
+
rightSection: data !== null && data !== void 0 ? /* @__PURE__ */ jsx(
|
|
411
|
+
SegmentedControl,
|
|
412
|
+
{
|
|
413
|
+
value: view,
|
|
414
|
+
onChange: (v) => setView(v),
|
|
415
|
+
size: "xs",
|
|
416
|
+
data: [
|
|
417
|
+
{ label: "Formatted", value: "formatted" },
|
|
418
|
+
{ label: "JSON", value: "json" }
|
|
419
|
+
]
|
|
420
|
+
}
|
|
421
|
+
) : null
|
|
422
|
+
}
|
|
423
|
+
),
|
|
352
424
|
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 })
|
|
353
425
|
] }) });
|
|
354
426
|
}
|
|
@@ -417,7 +489,26 @@ function RequestsDetailPage({ requestId, onNavigateBack }) {
|
|
|
417
489
|
}
|
|
418
490
|
),
|
|
419
491
|
/* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsxs(Stack, { gap: "md", children: [
|
|
420
|
-
/* @__PURE__ */ jsx(
|
|
492
|
+
/* @__PURE__ */ jsx(
|
|
493
|
+
CardHeader,
|
|
494
|
+
{
|
|
495
|
+
icon: /* @__PURE__ */ jsx(IconClipboardText, { size: 18 }),
|
|
496
|
+
title: "Details",
|
|
497
|
+
rightSection: /* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
|
|
498
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", ff: "monospace", c: "var(--color-text-subtle)", children: request.id }),
|
|
499
|
+
/* @__PURE__ */ jsx(CopyButton, { value: `/requests review ${request.id}`, children: ({ copied, copy }) => /* @__PURE__ */ jsx(Tooltip, { label: copied ? "Copied!" : "Copy ID", withArrow: true, children: /* @__PURE__ */ jsx(
|
|
500
|
+
ActionIcon,
|
|
501
|
+
{
|
|
502
|
+
onClick: copy,
|
|
503
|
+
variant: "subtle",
|
|
504
|
+
size: "xs",
|
|
505
|
+
color: copied ? "green" : "var(--color-text-subtle)",
|
|
506
|
+
children: copied ? /* @__PURE__ */ jsx(IconCheck, { size: 14 }) : /* @__PURE__ */ jsx(IconCopy, { size: 14 })
|
|
507
|
+
}
|
|
508
|
+
) }) })
|
|
509
|
+
] })
|
|
510
|
+
}
|
|
511
|
+
),
|
|
421
512
|
/* @__PURE__ */ jsxs(SimpleGrid, { cols: 2, spacing: "md", children: [
|
|
422
513
|
/* @__PURE__ */ jsxs(MetaField, { label: "Status", children: [
|
|
423
514
|
/* @__PURE__ */ jsx(StatusBadge, { status: currentStatus }),
|
|
@@ -433,11 +524,27 @@ function RequestsDetailPage({ requestId, onNavigateBack }) {
|
|
|
433
524
|
] })
|
|
434
525
|
] }) }),
|
|
435
526
|
/* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsxs(Stack, { gap: "md", children: [
|
|
436
|
-
/* @__PURE__ */ jsx(
|
|
527
|
+
/* @__PURE__ */ jsx(CardHeader, { icon: /* @__PURE__ */ jsx(IconFileDescription, { size: 18 }), title: "Description" }),
|
|
437
528
|
/* @__PURE__ */ jsx(Text, { size: "sm", style: { whiteSpace: "pre-wrap" }, children: request.description })
|
|
438
529
|
] }) }),
|
|
439
|
-
/* @__PURE__ */ jsx(
|
|
440
|
-
|
|
530
|
+
/* @__PURE__ */ jsx(
|
|
531
|
+
JsonSection,
|
|
532
|
+
{
|
|
533
|
+
title: "Evidence",
|
|
534
|
+
icon: /* @__PURE__ */ jsx(IconAlertCircle, { size: 18 }),
|
|
535
|
+
data: request.evidence,
|
|
536
|
+
emptyLabel: "No evidence recorded."
|
|
537
|
+
}
|
|
538
|
+
),
|
|
539
|
+
/* @__PURE__ */ jsx(
|
|
540
|
+
JsonSection,
|
|
541
|
+
{
|
|
542
|
+
title: "Context",
|
|
543
|
+
icon: /* @__PURE__ */ jsx(IconInfoCircle, { size: 18 }),
|
|
544
|
+
data: request.context,
|
|
545
|
+
emptyLabel: "No context recorded."
|
|
546
|
+
}
|
|
547
|
+
)
|
|
441
548
|
] });
|
|
442
549
|
}
|
|
443
550
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { ReactNode, ComponentType } from 'react';
|
|
3
|
+
import { EventSourceMessage } from '@microsoft/fetch-event-source';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* Shared form field types for dynamic form generation
|
|
@@ -328,7 +329,7 @@ type ResourceStatus = 'dev' | 'prod';
|
|
|
328
329
|
* All resource types in the platform
|
|
329
330
|
* Used as the discriminator field in ResourceDefinition
|
|
330
331
|
*/
|
|
331
|
-
type ResourceType
|
|
332
|
+
type ResourceType = 'agent' | 'workflow' | 'trigger' | 'integration' | 'external' | 'human';
|
|
332
333
|
/**
|
|
333
334
|
* Base interface for ALL platform resources
|
|
334
335
|
* Shared by both executable (agents, workflows) and non-executable (triggers, integrations, etc.) resources
|
|
@@ -343,7 +344,7 @@ interface ResourceDefinition {
|
|
|
343
344
|
/** Version for change tracking and evolution */
|
|
344
345
|
version: string;
|
|
345
346
|
/** Resource type discriminator */
|
|
346
|
-
type: ResourceType
|
|
347
|
+
type: ResourceType;
|
|
347
348
|
/** Environment/deployment status */
|
|
348
349
|
status: ResourceStatus;
|
|
349
350
|
/** Domain tags for filtering and organization */
|
|
@@ -385,9 +386,9 @@ type ResourceDomain = (typeof DOMAINS)[keyof typeof DOMAINS];
|
|
|
385
386
|
|
|
386
387
|
interface ResourcesPageProps {
|
|
387
388
|
/** Initial filter type from the URL search param (caller-managed) */
|
|
388
|
-
initialFilter?: ResourceType
|
|
389
|
+
initialFilter?: ResourceType;
|
|
389
390
|
/** Called when the user changes the tab filter — caller should update its URL */
|
|
390
|
-
onTypeChange: (type: ResourceType
|
|
391
|
+
onTypeChange: (type: ResourceType | undefined) => void;
|
|
391
392
|
/** Current time range value — caller passes from its own store */
|
|
392
393
|
timeRange: TimeRange;
|
|
393
394
|
/** Called when the user clicks a resource row — caller handles navigation */
|
|
@@ -461,14 +462,14 @@ declare function ResourcesSidebar({ timeRange }: ResourcesSidebarProps): react_j
|
|
|
461
462
|
|
|
462
463
|
interface ResourceDetailPageRenderExecutionPanelArgs {
|
|
463
464
|
resourceId: string;
|
|
464
|
-
resourceType: ResourceType
|
|
465
|
+
resourceType: ResourceType;
|
|
465
466
|
resourceName: string;
|
|
466
467
|
resourceDefinition: AIResourceDefinition;
|
|
467
468
|
onConnectionStatus: (connected: boolean, count: number) => void;
|
|
468
469
|
}
|
|
469
470
|
interface ResourceDetailPageProps {
|
|
470
471
|
/** Resource type (workflow, agent, etc.) */
|
|
471
|
-
type: ResourceType
|
|
472
|
+
type: ResourceType;
|
|
472
473
|
/** Resource identifier */
|
|
473
474
|
resourceId: string;
|
|
474
475
|
/** Current time range value — caller passes from its own store */
|
|
@@ -488,31 +489,12 @@ interface ResourceDetailPageProps {
|
|
|
488
489
|
}
|
|
489
490
|
declare function ResourceDetailPage({ type, resourceId, timeRange, renderExecutionPanel, onNavigateToResources, onNavigateToSessions, onNavigateBack }: ResourceDetailPageProps): react_jsx_runtime.JSX.Element;
|
|
490
491
|
|
|
491
|
-
/**
|
|
492
|
-
* Resource Registry type definitions
|
|
493
|
-
*/
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
/**
|
|
498
|
-
* All resource types in the platform
|
|
499
|
-
* Used as the discriminator field in ResourceDefinition
|
|
500
|
-
*/
|
|
501
|
-
type ResourceType = 'agent' | 'workflow' | 'trigger' | 'integration' | 'external' | 'human'
|
|
502
|
-
|
|
503
492
|
interface ExecuteAsyncResult {
|
|
504
493
|
executionId: string;
|
|
505
494
|
status: string;
|
|
506
495
|
resourceId: string;
|
|
507
496
|
}
|
|
508
497
|
|
|
509
|
-
interface EventSourceMessage {
|
|
510
|
-
id: string;
|
|
511
|
-
event: string;
|
|
512
|
-
data: string;
|
|
513
|
-
retry?: number;
|
|
514
|
-
}
|
|
515
|
-
|
|
516
498
|
interface FetchEventSourceWithTokenRefreshOptions {
|
|
517
499
|
url: string;
|
|
518
500
|
getToken: () => Promise<string | undefined>;
|
|
@@ -657,7 +639,7 @@ declare function CommandViewSidebarContent({ timeRange }: CommandViewSidebarCont
|
|
|
657
639
|
type ExecutionSelectionControlProps$2 = Pick<UseExecutionPanelStateOptions, 'selectedId' | 'onSelectedIdChange'>;
|
|
658
640
|
interface ExecutionPanelProps extends ExecutionSelectionControlProps$2 {
|
|
659
641
|
resourceId: string;
|
|
660
|
-
resourceType: ResourceType
|
|
642
|
+
resourceType: ResourceType;
|
|
661
643
|
resourceName?: string;
|
|
662
644
|
resourceDefinition: AIResourceDefinition;
|
|
663
645
|
sseManager: SSEConnectionManagerLike;
|
|
@@ -1,36 +1,36 @@
|
|
|
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-
|
|
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-YP6T426C.js';
|
|
2
2
|
import '../../chunk-ROSMICXG.js';
|
|
3
|
-
import '../../chunk-
|
|
3
|
+
import '../../chunk-3JCMO7SD.js';
|
|
4
4
|
import '../../chunk-ZTWA5H77.js';
|
|
5
|
-
export { OperationsOverview } from '../../chunk-
|
|
5
|
+
export { OperationsOverview } from '../../chunk-PJVG3ISO.js';
|
|
6
6
|
import '../../chunk-442LZPIR.js';
|
|
7
|
-
import '../../chunk-
|
|
7
|
+
import '../../chunk-ZE2KQSHL.js';
|
|
8
8
|
import '../../chunk-LGKLC5MG.js';
|
|
9
|
-
import '../../chunk-
|
|
9
|
+
import '../../chunk-CTTY6FUT.js';
|
|
10
10
|
import '../../chunk-M25JL54Z.js';
|
|
11
11
|
import '../../chunk-BZZCNLT6.js';
|
|
12
12
|
import '../../chunk-IIMU5YAJ.js';
|
|
13
13
|
import '../../chunk-GBMNCNHX.js';
|
|
14
14
|
import '../../chunk-E4WQGJNS.js';
|
|
15
15
|
import '../../chunk-7M2VOCYN.js';
|
|
16
|
-
import '../../chunk-
|
|
16
|
+
import '../../chunk-FMFX4K6E.js';
|
|
17
17
|
import '../../chunk-BRXELOHC.js';
|
|
18
18
|
import '../../chunk-QSTH6T77.js';
|
|
19
|
-
import '../../chunk-
|
|
19
|
+
import '../../chunk-M7W7CGPL.js';
|
|
20
20
|
import '../../chunk-22UVE3RA.js';
|
|
21
21
|
import '../../chunk-3ZMAGTWF.js';
|
|
22
|
-
import '../../chunk-
|
|
23
|
-
import '../../chunk-
|
|
24
|
-
import '../../chunk-
|
|
22
|
+
import '../../chunk-Q4QJOSVS.js';
|
|
23
|
+
import '../../chunk-TO7QXDBX.js';
|
|
24
|
+
import '../../chunk-Q5HC6ENG.js';
|
|
25
25
|
import '../../chunk-WLOQ4IBG.js';
|
|
26
|
-
import '../../chunk-
|
|
27
|
-
import '../../chunk-
|
|
26
|
+
import '../../chunk-LR5CRY5A.js';
|
|
27
|
+
import '../../chunk-OUYH2SBS.js';
|
|
28
28
|
import '../../chunk-RX4UWZZR.js';
|
|
29
|
-
import '../../chunk-
|
|
29
|
+
import '../../chunk-BHR7IV72.js';
|
|
30
30
|
import '../../chunk-SZHARWKU.js';
|
|
31
31
|
import '../../chunk-3KMDHCAR.js';
|
|
32
32
|
import '../../chunk-NYBEU5TE.js';
|
|
33
|
-
import '../../chunk-
|
|
33
|
+
import '../../chunk-R7OJCNL3.js';
|
|
34
34
|
import '../../chunk-2IFYDILW.js';
|
|
35
35
|
import '../../chunk-Q7DJKLEN.js';
|
|
36
36
|
import '../../chunk-7YQKVWSD.js';
|
|
@@ -39,7 +39,7 @@ import '../../chunk-QJ2KCHKX.js';
|
|
|
39
39
|
import '../../chunk-HQ7M6PBW.js';
|
|
40
40
|
import '../../chunk-DT3QYZVU.js';
|
|
41
41
|
import '../../chunk-RNP5R5I3.js';
|
|
42
|
-
import '../../chunk-
|
|
42
|
+
import '../../chunk-OD7GWIZS.js';
|
|
43
43
|
import '../../chunk-KRWALB24.js';
|
|
44
44
|
import '../../chunk-SLH2QLKV.js';
|
|
45
45
|
import '../../chunk-DK2HVHCY.js';
|
|
@@ -47,3 +47,4 @@ import '../../chunk-DD3CCMCZ.js';
|
|
|
47
47
|
import '../../chunk-QHSW4WHM.js';
|
|
48
48
|
import '../../chunk-IRW7JMQ4.js';
|
|
49
49
|
import '../../chunk-BRJ3QZ4E.js';
|
|
50
|
+
import '../../chunk-I2KLQ2HA.js';
|