@elevasis/ui 1.3.1 → 1.3.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.
Files changed (261) hide show
  1. package/dist/api/index.js +1 -1
  2. package/dist/auth/guards/AdminGuard.d.ts +32 -0
  3. package/dist/auth/guards/AdminGuard.d.ts.map +1 -0
  4. package/dist/auth/guards/ProtectedRoute.d.ts +60 -0
  5. package/dist/auth/guards/ProtectedRoute.d.ts.map +1 -0
  6. package/dist/auth/guards/__tests__/AdminGuard.test.d.ts +12 -0
  7. package/dist/auth/guards/__tests__/AdminGuard.test.d.ts.map +1 -0
  8. package/dist/auth/guards/__tests__/ProtectedRoute.test.d.ts +14 -0
  9. package/dist/auth/guards/__tests__/ProtectedRoute.test.d.ts.map +1 -0
  10. package/dist/auth/index.d.ts +14 -174
  11. package/dist/auth/index.d.ts.map +1 -0
  12. package/dist/auth/index.js +1 -1
  13. package/dist/{chunk-A3MCANC6.js → chunk-6IX5JZEH.js} +110 -50
  14. package/dist/chunk-GIFAF5ZS.js +313 -0
  15. package/dist/chunk-JQLT6HBI.js +850 -0
  16. package/dist/chunk-LFYO3MDC.js +58 -0
  17. package/dist/{chunk-72HOBFMP.js → chunk-LTQAAIGE.js} +3 -3
  18. package/dist/{chunk-JBFFCZI4.js → chunk-U34YGJQB.js} +1 -93
  19. package/dist/components/index.d.ts +1 -1353
  20. package/dist/components/index.js +1 -20
  21. package/dist/components/navigation/index.d.ts +2 -32
  22. package/dist/components/navigation/index.js +1 -29
  23. package/dist/execution/index.d.ts +63 -231
  24. package/dist/execution/index.js +1 -4
  25. package/dist/graph/index.css +0 -1
  26. package/dist/graph/index.d.ts +4 -203
  27. package/dist/graph/index.js +1 -1
  28. package/dist/hooks/command-queue/index.d.ts +7 -0
  29. package/dist/hooks/command-queue/index.d.ts.map +1 -0
  30. package/dist/hooks/command-queue/useCommandQueue.d.ts +33 -0
  31. package/dist/hooks/command-queue/useCommandQueue.d.ts.map +1 -0
  32. package/dist/hooks/command-queue/useCommandQueueTotals.d.ts +17 -0
  33. package/dist/hooks/command-queue/useCommandQueueTotals.d.ts.map +1 -0
  34. package/dist/hooks/command-queue/useDeleteTask.d.ts +5 -0
  35. package/dist/hooks/command-queue/useDeleteTask.d.ts.map +1 -0
  36. package/dist/hooks/command-queue/usePatchTask.d.ts +6 -0
  37. package/dist/hooks/command-queue/usePatchTask.d.ts.map +1 -0
  38. package/dist/hooks/command-queue/useSubmitAction.d.ts +29 -0
  39. package/dist/hooks/command-queue/useSubmitAction.d.ts.map +1 -0
  40. package/dist/hooks/executions/index.d.ts +16 -0
  41. package/dist/hooks/executions/index.d.ts.map +1 -0
  42. package/dist/hooks/executions/useBulkDeleteExecutions.d.ts +15 -0
  43. package/dist/hooks/executions/useBulkDeleteExecutions.d.ts.map +1 -0
  44. package/dist/hooks/executions/useCancelExecution.d.ts +20 -0
  45. package/dist/hooks/executions/useCancelExecution.d.ts.map +1 -0
  46. package/dist/hooks/executions/useDeleteExecution.d.ts +13 -0
  47. package/dist/hooks/executions/useDeleteExecution.d.ts.map +1 -0
  48. package/dist/hooks/executions/useExecuteAsync.d.ts +21 -0
  49. package/dist/hooks/executions/useExecuteAsync.d.ts.map +1 -0
  50. package/dist/hooks/executions/useExecution.d.ts +10 -0
  51. package/dist/hooks/executions/useExecution.d.ts.map +1 -0
  52. package/dist/hooks/executions/useExecutions.d.ts +16 -0
  53. package/dist/hooks/executions/useExecutions.d.ts.map +1 -0
  54. package/dist/hooks/executions/useResourceDefinition.d.ts +9 -0
  55. package/dist/hooks/executions/useResourceDefinition.d.ts.map +1 -0
  56. package/dist/hooks/executions/useResources.d.ts +15 -0
  57. package/dist/hooks/executions/useResources.d.ts.map +1 -0
  58. package/dist/hooks/executions/useRetryExecution.d.ts +16 -0
  59. package/dist/hooks/executions/useRetryExecution.d.ts.map +1 -0
  60. package/dist/hooks/feature-access/createUseFeatureAccess.d.ts +44 -0
  61. package/dist/hooks/feature-access/createUseFeatureAccess.d.ts.map +1 -0
  62. package/dist/hooks/feature-access/index.d.ts +2 -0
  63. package/dist/hooks/feature-access/index.d.ts.map +1 -0
  64. package/dist/hooks/index.d.ts +11 -4554
  65. package/dist/hooks/index.d.ts.map +1 -0
  66. package/dist/hooks/index.js +2 -4
  67. package/dist/hooks/monitoring/index.d.ts +9 -0
  68. package/dist/hooks/monitoring/index.d.ts.map +1 -0
  69. package/dist/hooks/monitoring/useActivities.d.ts +52 -0
  70. package/dist/hooks/monitoring/useActivities.d.ts.map +1 -0
  71. package/dist/hooks/monitoring/useCostSummary.d.ts +7 -0
  72. package/dist/hooks/monitoring/useCostSummary.d.ts.map +1 -0
  73. package/dist/hooks/monitoring/useExecutionHealth.d.ts +10 -0
  74. package/dist/hooks/monitoring/useExecutionHealth.d.ts.map +1 -0
  75. package/dist/hooks/monitoring/useExecutionLogs.d.ts +56 -0
  76. package/dist/hooks/monitoring/useExecutionLogs.d.ts.map +1 -0
  77. package/dist/hooks/monitoring/useNotifications.d.ts +11 -0
  78. package/dist/hooks/monitoring/useNotifications.d.ts.map +1 -0
  79. package/dist/hooks/notifications/index.d.ts +8 -0
  80. package/dist/hooks/notifications/index.d.ts.map +1 -0
  81. package/dist/hooks/notifications/useMarkAllAsRead.d.ts +2 -0
  82. package/dist/hooks/notifications/useMarkAllAsRead.d.ts.map +1 -0
  83. package/dist/hooks/notifications/useMarkAsRead.d.ts +2 -0
  84. package/dist/hooks/notifications/useMarkAsRead.d.ts.map +1 -0
  85. package/dist/hooks/notifications/useNotificationCount.d.ts +8 -0
  86. package/dist/hooks/notifications/useNotificationCount.d.ts.map +1 -0
  87. package/dist/hooks/observability/index.d.ts +19 -0
  88. package/dist/hooks/observability/index.d.ts.map +1 -0
  89. package/dist/hooks/observability/useBusinessImpact.d.ts +9 -0
  90. package/dist/hooks/observability/useBusinessImpact.d.ts.map +1 -0
  91. package/dist/hooks/observability/useCostBreakdown.d.ts +10 -0
  92. package/dist/hooks/observability/useCostBreakdown.d.ts.map +1 -0
  93. package/dist/hooks/observability/useCostByModel.d.ts +3 -0
  94. package/dist/hooks/observability/useCostByModel.d.ts.map +1 -0
  95. package/dist/hooks/observability/useCostTrends.d.ts +3 -0
  96. package/dist/hooks/observability/useCostTrends.d.ts.map +1 -0
  97. package/dist/hooks/observability/useDashboardMetrics.d.ts +3 -0
  98. package/dist/hooks/observability/useDashboardMetrics.d.ts.map +1 -0
  99. package/dist/hooks/observability/useErrorAnalysis.d.ts +7 -0
  100. package/dist/hooks/observability/useErrorAnalysis.d.ts.map +1 -0
  101. package/dist/hooks/observability/useErrorDetails.d.ts +20 -0
  102. package/dist/hooks/observability/useErrorDetails.d.ts.map +1 -0
  103. package/dist/hooks/observability/useErrorDistribution.d.ts +12 -0
  104. package/dist/hooks/observability/useErrorDistribution.d.ts.map +1 -0
  105. package/dist/hooks/observability/useErrorTrends.d.ts +12 -0
  106. package/dist/hooks/observability/useErrorTrends.d.ts.map +1 -0
  107. package/dist/hooks/observability/useResolveError.d.ts +17 -0
  108. package/dist/hooks/observability/useResolveError.d.ts.map +1 -0
  109. package/dist/hooks/observability/useTopFailingResources.d.ts +13 -0
  110. package/dist/hooks/observability/useTopFailingResources.d.ts.map +1 -0
  111. package/dist/hooks/published.d.ts +19 -4279
  112. package/dist/hooks/published.d.ts.map +1 -0
  113. package/dist/hooks/published.js +367 -4
  114. package/dist/hooks/scheduling/index.d.ts +5 -0
  115. package/dist/hooks/scheduling/index.d.ts.map +1 -0
  116. package/dist/hooks/scheduling/useSchedules.d.ts +185 -0
  117. package/dist/hooks/scheduling/useSchedules.d.ts.map +1 -0
  118. package/dist/hooks/sessions/index.d.ts +8 -0
  119. package/dist/hooks/sessions/index.d.ts.map +1 -0
  120. package/dist/hooks/sessions/useSessionExecutions.d.ts +13 -0
  121. package/dist/hooks/sessions/useSessionExecutions.d.ts.map +1 -0
  122. package/dist/hooks/sessions/useSessionMessages.d.ts +7 -0
  123. package/dist/hooks/sessions/useSessionMessages.d.ts.map +1 -0
  124. package/dist/hooks/sessions/useSessions.d.ts +26 -0
  125. package/dist/hooks/sessions/useSessions.d.ts.map +1 -0
  126. package/dist/index.css +0 -118
  127. package/dist/index.d.ts +15 -7889
  128. package/dist/index.d.ts.map +1 -0
  129. package/dist/index.js +1119 -24
  130. package/dist/initialization/InitializationProvider.d.ts +48 -0
  131. package/dist/initialization/InitializationProvider.d.ts.map +1 -0
  132. package/dist/initialization/hooks/useAppInitialization.d.ts +32 -0
  133. package/dist/initialization/hooks/useAppInitialization.d.ts.map +1 -0
  134. package/dist/initialization/index.d.ts +22 -2361
  135. package/dist/initialization/index.d.ts.map +1 -0
  136. package/dist/initialization/index.js +1 -1
  137. package/dist/organization/context/OrganizationProvider.d.ts +20 -0
  138. package/dist/organization/context/OrganizationProvider.d.ts.map +1 -0
  139. package/dist/organization/hooks/useOrgInitialization.d.ts +56 -0
  140. package/dist/organization/hooks/useOrgInitialization.d.ts.map +1 -0
  141. package/dist/organization/index.d.ts +21 -283
  142. package/dist/organization/index.d.ts.map +1 -0
  143. package/dist/organization/index.js +3 -3
  144. package/dist/profile/context/ProfileProvider.d.ts +27 -0
  145. package/dist/profile/context/ProfileProvider.d.ts.map +1 -0
  146. package/dist/profile/hooks/useUserProfile.d.ts +31 -0
  147. package/dist/profile/hooks/useUserProfile.d.ts.map +1 -0
  148. package/dist/profile/index.d.ts +14 -2290
  149. package/dist/profile/index.d.ts.map +1 -0
  150. package/dist/provider/CoreAuthKitInner.d.ts +12 -0
  151. package/dist/provider/CoreAuthKitInner.d.ts.map +1 -0
  152. package/dist/provider/ElevasisCoreProvider.d.ts +39 -0
  153. package/dist/provider/ElevasisCoreProvider.d.ts.map +1 -0
  154. package/dist/provider/ElevasisServiceContext.d.ts +31 -0
  155. package/dist/provider/ElevasisServiceContext.d.ts.map +1 -0
  156. package/dist/provider/__tests__/CoreAuthKitInner.test.d.ts +2 -0
  157. package/dist/provider/__tests__/CoreAuthKitInner.test.d.ts.map +1 -0
  158. package/dist/provider/__tests__/ElevasisCoreProvider.test.d.ts +2 -0
  159. package/dist/provider/__tests__/ElevasisCoreProvider.test.d.ts.map +1 -0
  160. package/dist/provider/index.d.ts +7 -372
  161. package/dist/provider/index.d.ts.map +1 -0
  162. package/dist/provider/index.js +6 -6
  163. package/dist/provider/published.d.ts +9 -263
  164. package/dist/provider/published.d.ts.map +1 -0
  165. package/dist/provider/published.js +5 -5
  166. package/dist/provider/types.d.ts +190 -0
  167. package/dist/provider/types.d.ts.map +1 -0
  168. package/dist/sdk-barrel.d.ts +20 -0
  169. package/dist/sdk-barrel.d.ts.map +1 -0
  170. package/dist/supabase/index.d.ts +0 -255
  171. package/dist/theme/cssVariables.d.ts +12 -0
  172. package/dist/theme/cssVariables.d.ts.map +1 -0
  173. package/dist/theme/index.d.ts +4 -0
  174. package/dist/theme/index.d.ts.map +1 -0
  175. package/dist/theme/presets/__tests__/getPreset.test.d.ts +2 -0
  176. package/dist/theme/presets/__tests__/getPreset.test.d.ts.map +1 -0
  177. package/dist/theme/presets/abyss.d.ts +3 -0
  178. package/dist/theme/presets/abyss.d.ts.map +1 -0
  179. package/dist/theme/presets/abyss.js +54 -0
  180. package/dist/theme/presets/aurora.d.ts +8 -0
  181. package/dist/theme/presets/aurora.d.ts.map +1 -0
  182. package/dist/theme/presets/aurora.js +59 -0
  183. package/dist/theme/presets/canopy.d.ts +3 -0
  184. package/dist/theme/presets/canopy.d.ts.map +1 -0
  185. package/dist/theme/presets/canopy.js +58 -0
  186. package/dist/theme/presets/cyber-flux.d.ts +8 -0
  187. package/dist/theme/presets/cyber-flux.d.ts.map +1 -0
  188. package/dist/theme/presets/cyber-strike.d.ts +9 -0
  189. package/dist/theme/presets/cyber-strike.d.ts.map +1 -0
  190. package/dist/theme/presets/cyber-void.d.ts +8 -0
  191. package/dist/theme/presets/cyber-void.d.ts.map +1 -0
  192. package/dist/theme/presets/cyber-volt.d.ts +8 -0
  193. package/dist/theme/presets/cyber-volt.d.ts.map +1 -0
  194. package/dist/theme/presets/default.d.ts +4 -0
  195. package/dist/theme/presets/default.d.ts.map +1 -0
  196. package/dist/theme/presets/ember.d.ts +8 -0
  197. package/dist/theme/presets/ember.d.ts.map +1 -0
  198. package/dist/theme/presets/ember.js +63 -0
  199. package/dist/theme/presets/honey.d.ts +3 -0
  200. package/dist/theme/presets/honey.d.ts.map +1 -0
  201. package/dist/theme/presets/honey.js +62 -0
  202. package/dist/theme/presets/index.d.ts +6 -0
  203. package/dist/theme/presets/index.d.ts.map +1 -0
  204. package/dist/theme/presets/midnight.d.ts +8 -0
  205. package/dist/theme/presets/midnight.d.ts.map +1 -0
  206. package/dist/theme/presets/midnight.js +68 -0
  207. package/dist/theme/presets/obsidian.d.ts +3 -0
  208. package/dist/theme/presets/obsidian.d.ts.map +1 -0
  209. package/dist/theme/presets/obsidian.js +56 -0
  210. package/dist/theme/presets/regal.d.ts +8 -0
  211. package/dist/theme/presets/regal.d.ts.map +1 -0
  212. package/dist/theme/presets/rose-gold.d.ts +8 -0
  213. package/dist/theme/presets/rose-gold.d.ts.map +1 -0
  214. package/dist/theme/presets/slate.d.ts +3 -0
  215. package/dist/theme/presets/slate.d.ts.map +1 -0
  216. package/dist/theme/presets/slate.js +56 -0
  217. package/dist/theme/presets/tactical.d.ts +8 -0
  218. package/dist/theme/presets/tactical.d.ts.map +1 -0
  219. package/dist/theme/presets/types.d.ts +26 -0
  220. package/dist/theme/presets/types.d.ts.map +1 -0
  221. package/dist/theme/presets/types.js +1 -0
  222. package/dist/utils/index.d.ts +1 -22
  223. package/dist/utils/index.js +1 -1
  224. package/package.json +67 -51
  225. package/dist/chunk-3KMDHCAR.js +0 -52
  226. package/dist/chunk-6BJOYF6E.js +0 -8
  227. package/dist/chunk-BLO4SISK.js +0 -113
  228. package/dist/chunk-HUWJXLLF.js +0 -681
  229. package/dist/chunk-JVAZHVNV.js +0 -110
  230. package/dist/chunk-JYSYHVLU.js +0 -379
  231. package/dist/chunk-NE36BUGQ.js +0 -146
  232. package/dist/chunk-O3PY6B6E.js +0 -749
  233. package/dist/chunk-OXVOHOP3.js +0 -661
  234. package/dist/chunk-PSLKGOBZ.js +0 -58
  235. package/dist/chunk-RJCA5672.js +0 -1664
  236. package/dist/chunk-TMFCNFLW.js +0 -107
  237. package/dist/chunk-TN3PU2WK.js +0 -748
  238. package/dist/chunk-TZPAA4RC.js +0 -1461
  239. package/dist/chunk-W7ZBF5AA.js +0 -1
  240. package/dist/chunk-YZ6GTZXL.js +0 -48
  241. package/dist/components/command-queue/index.css +0 -53
  242. package/dist/components/command-queue/index.d.ts +0 -204
  243. package/dist/components/command-queue/index.js +0 -12
  244. package/dist/components/forms/index.d.ts +0 -56
  245. package/dist/components/forms/index.js +0 -2
  246. package/dist/components/index.css +0 -443
  247. package/dist/components/monitoring/index.d.ts +0 -66
  248. package/dist/components/monitoring/index.js +0 -2
  249. package/dist/components/notifications/index.d.ts +0 -52
  250. package/dist/components/notifications/index.js +0 -5
  251. package/dist/components/resource-definition/index.css +0 -388
  252. package/dist/components/resource-definition/index.d.ts +0 -301
  253. package/dist/components/resource-definition/index.js +0 -3
  254. package/dist/display/index.css +0 -53
  255. package/dist/display/index.d.ts +0 -606
  256. package/dist/display/index.js +0 -7
  257. package/dist/execution/index.css +0 -388
  258. package/dist/provider/index.css +0 -61
  259. package/dist/{chunk-TYV5NJV2.js → chunk-BUZONXAW.js} +0 -0
  260. package/dist/{chunk-UMXDDEAG.js → chunk-SFF5MJEI.js} +1 -1
  261. /package/dist/{chunk-NXHL23JW.js → chunk-XXDDMASA.js} +0 -0
package/dist/api/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import '../chunk-XCYKC6OZ.js';
2
2
  export { ApiClientProvider, useApiClient, useApiClientContext } from '../chunk-XLV6LYN2.js';
3
- import '../chunk-JVAZHVNV.js';
3
+ import '../chunk-LFYO3MDC.js';
4
4
  import '../chunk-4VGWQ5AN.js';
5
5
  import '../chunk-DD3CCMCZ.js';
@@ -0,0 +1,32 @@
1
+ import { type ReactNode } from 'react';
2
+ export interface AdminGuardProps {
3
+ children: ReactNode;
4
+ /**
5
+ * Path to redirect non-admin users to.
6
+ * @default '/'
7
+ */
8
+ redirectTo?: string;
9
+ /**
10
+ * Rendered while user readiness is being determined.
11
+ * When not provided, nothing is rendered during initialization.
12
+ */
13
+ fallback?: ReactNode;
14
+ }
15
+ /**
16
+ * Headless route guard for platform admin pages.
17
+ *
18
+ * Reads `profile.is_platform_admin` from the nearest InitializationProvider.
19
+ * Non-admin users are redirected to `redirectTo` (default: '/').
20
+ *
21
+ * Must be nested inside a ProtectedRoute (or equivalent) so that
22
+ * `userReady` is guaranteed to be true when this guard runs.
23
+ *
24
+ * @example
25
+ * <ProtectedRoute>
26
+ * <AdminGuard fallback={<AppShellLoader />}>
27
+ * <AdminDashboard />
28
+ * </AdminGuard>
29
+ * </ProtectedRoute>
30
+ */
31
+ export declare function AdminGuard({ children, redirectTo, fallback }: AdminGuardProps): import("react/jsx-runtime").JSX.Element | null;
32
+ //# sourceMappingURL=AdminGuard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdminGuard.d.ts","sourceRoot":"","sources":["../../../src/auth/guards/AdminGuard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAIjD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,SAAS,CAAA;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,UAAgB,EAAE,QAAe,EAAE,EAAE,eAAe,kDA0B1F"}
@@ -0,0 +1,60 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { InitializationError } from '../../initialization/hooks/useAppInitialization';
3
+ export interface ProtectedRouteProps {
4
+ children: ReactNode;
5
+ /**
6
+ * Path to redirect to when user is unauthenticated and the auth adapter
7
+ * does not provide a `signIn` function.
8
+ * @default '/login'
9
+ */
10
+ redirectTo?: string;
11
+ /**
12
+ * Rendered while initialization is in progress.
13
+ * When not provided, nothing is rendered during initialization.
14
+ */
15
+ fallback?: ReactNode;
16
+ /**
17
+ * Rendered when initialization fails with a non-organization error.
18
+ * Receives the error and a retry callback.
19
+ * When not provided, the error is silently swallowed (children not rendered).
20
+ */
21
+ errorFallback?: (error: InitializationError, retry: () => void) => ReactNode;
22
+ /**
23
+ * When true (default), waits for both user AND organization to be ready
24
+ * before rendering children. When false, only waits for user readiness.
25
+ * @default true
26
+ */
27
+ waitForOrganization?: boolean;
28
+ }
29
+ /**
30
+ * Headless route guard for authenticated pages.
31
+ *
32
+ * Reads initialization state from the nearest InitializationProvider.
33
+ *
34
+ * When `canRecover()` returns true (refresh token exists), unauthenticated users
35
+ * are sent directly to WorkOS AuthKit via `signIn()`. WorkOS checks its
36
+ * server-side session and either signs the user in immediately (page-reload case)
37
+ * or shows a login form (logged-out case). Explicit logout destroys the
38
+ * server-side session, so the next auto-signIn correctly presents a login form
39
+ * rather than looping.
40
+ *
41
+ * When `canRecover()` returns false, falls back to navigating to `redirectTo`
42
+ * (default: '/login') with a `returnTo` search param.
43
+ *
44
+ * Organization-layer errors are allowed through -- routes like /invitations
45
+ * must be accessible even when the user has no org membership.
46
+ *
47
+ * @example
48
+ * // With custom fallback (your Mantine loader):
49
+ * <ProtectedRoute fallback={<AppShellLoader />}>
50
+ * <DashboardPage />
51
+ * </ProtectedRoute>
52
+ *
53
+ * @example
54
+ * // Wait only for user, not org (e.g. /invitations route):
55
+ * <ProtectedRoute waitForOrganization={false}>
56
+ * <InvitationsPage />
57
+ * </ProtectedRoute>
58
+ */
59
+ export declare function ProtectedRoute({ children, redirectTo, fallback, errorFallback, waitForOrganization }: ProtectedRouteProps): import("react/jsx-runtime").JSX.Element | null;
60
+ //# sourceMappingURL=ProtectedRoute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProtectedRoute.d.ts","sourceRoot":"","sources":["../../../src/auth/guards/ProtectedRoute.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAIzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAA;AAE1F,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,SAAS,CAAA;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,IAAI,KAAK,SAAS,CAAA;IAC5E;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,UAAqB,EACrB,QAAe,EACf,aAAa,EACb,mBAA0B,EAC3B,EAAE,mBAAmB,kDAyDrB"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * AdminGuard Tests (shared @repo/ui guard)
3
+ *
4
+ * Tests role-based access control for platform admin pages:
5
+ * - Shows fallback while user is not ready
6
+ * - Renders children for platform admin users
7
+ * - Redirects non-admin users to redirectTo (default: '/')
8
+ * - Handles missing profile gracefully
9
+ * - Supports custom redirectTo
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=AdminGuard.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdminGuard.test.d.ts","sourceRoot":"","sources":["../../../../src/auth/guards/__tests__/AdminGuard.test.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * ProtectedRoute Tests (shared @repo/ui guard)
3
+ *
4
+ * Tests headless authentication guard behavior:
5
+ * - Shows fallback while initializing
6
+ * - Redirects unauthenticated users to login with returnTo
7
+ * - Renders children when user is ready
8
+ * - Renders children when org error (allows /invitations route pattern)
9
+ * - Shows errorFallback for non-organization errors
10
+ * - Waits for org readiness when waitForOrganization=true (default)
11
+ * - Renders after user ready when waitForOrganization=false
12
+ */
13
+ export {};
14
+ //# sourceMappingURL=ProtectedRoute.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProtectedRoute.test.d.ts","sourceRoot":"","sources":["../../../../src/auth/guards/__tests__/ProtectedRoute.test.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
@@ -1,176 +1,16 @@
1
- import * as react from 'react';
2
- import { ReactNode } from 'react';
3
- import * as react_jsx_runtime from 'react/jsx-runtime';
4
-
5
- interface AuthContextValue {
6
- user: {
7
- id: string;
8
- } | null;
9
- isLoading: boolean;
10
- getAccessToken: () => Promise<string>;
11
- organizationId?: string | null;
12
- /**
13
- * Trigger WorkOS AuthKit's sign-in flow (redirect to WorkOS hosted auth page).
14
- * Used by ProtectedRoute for auto-recovery when `canRecover()` returns true.
15
- */
16
- signIn: (options?: {
17
- state?: {
18
- returnTo?: string;
19
- };
20
- }) => void;
21
- /**
22
- * Returns true when a previous session can be recovered (refresh token
23
- * exists in storage). ProtectedRoute calls `signIn()` only when this returns
24
- * true; otherwise it navigates to the login page.
25
- *
26
- * Explicit logout clears the stored token, so canRecover() returns false
27
- * and the user sees the login page as expected.
28
- */
29
- canRecover: () => boolean;
30
- }
31
- declare function useAuthContext(): AuthContextValue;
32
- declare function AuthProvider({ value, children }: {
33
- value: AuthContextValue;
34
- children: ReactNode;
35
- }): react.FunctionComponentElement<react.ProviderProps<AuthContextValue | null>>;
36
-
37
1
  /**
38
- * Returns a stable reference to getAccessToken that won't change between renders
39
- *
40
- * This prevents SSE connections from reconnecting unnecessarily when the
41
- * WorkOS useAuth hook returns a new getAccessToken function reference
42
- *
43
- * @example
44
- * ```tsx
45
- * const getAccessToken = useStableAccessToken()
46
- *
47
- * useEffect(() => {
48
- * fetchEventSourceWithTokenRefresh({
49
- * getToken: getAccessToken,
50
- * // ...
51
- * })
52
- * }, [getAccessToken]) // Won't re-run on every render
53
- * ```
54
- */
55
- declare function useStableAccessToken(): () => Promise<string>;
56
-
57
- /**
58
- * Checks WorkOS session validity when window/tab regains focus
59
- *
60
- * When window or tab becomes visible after inactivity, validates session
61
- * by attempting to get access token. If session expired (WorkOS inactivity
62
- * timeout exceeded), signs out user and redirects to login.
63
- *
64
- * How it works:
65
- * 1. Window/tab regains focus after inactivity
66
- * 2. Cancel all pending queries to prevent 401 error cascade
67
- * 3. Attempt to get access token from WorkOS
68
- * 4. If successful: Resume queries with fresh token
69
- * 5. If failed (session expired): Sign out and redirect to login
70
- *
71
- * @example
72
- * // In __root.tsx
73
- * export function RootLayoutComponent() {
74
- * useSessionCheck()
75
- * return <YourApp />
76
- * }
77
- */
78
- declare function useSessionCheck(): void;
79
-
80
- interface InitializationError {
81
- layer: 'auth' | 'profile' | 'organization';
82
- message: string;
83
- originalError?: Error;
84
- }
85
-
86
- interface ProtectedRouteProps {
87
- children: ReactNode;
88
- /**
89
- * Path to redirect to when user is unauthenticated and the auth adapter
90
- * does not provide a `signIn` function.
91
- * @default '/login'
92
- */
93
- redirectTo?: string;
94
- /**
95
- * Rendered while initialization is in progress.
96
- * When not provided, nothing is rendered during initialization.
97
- */
98
- fallback?: ReactNode;
99
- /**
100
- * Rendered when initialization fails with a non-organization error.
101
- * Receives the error and a retry callback.
102
- * When not provided, the error is silently swallowed (children not rendered).
103
- */
104
- errorFallback?: (error: InitializationError, retry: () => void) => ReactNode;
105
- /**
106
- * When true (default), waits for both user AND organization to be ready
107
- * before rendering children. When false, only waits for user readiness.
108
- * @default true
109
- */
110
- waitForOrganization?: boolean;
111
- }
112
- /**
113
- * Headless route guard for authenticated pages.
114
- *
115
- * Reads initialization state from the nearest InitializationProvider.
116
- *
117
- * When `canRecover()` returns true (refresh token exists), unauthenticated users
118
- * are sent directly to WorkOS AuthKit via `signIn()`. WorkOS checks its
119
- * server-side session and either signs the user in immediately (page-reload case)
120
- * or shows a login form (logged-out case). Explicit logout destroys the
121
- * server-side session, so the next auto-signIn correctly presents a login form
122
- * rather than looping.
123
- *
124
- * When `canRecover()` returns false, falls back to navigating to `redirectTo`
125
- * (default: '/login') with a `returnTo` search param.
126
- *
127
- * Organization-layer errors are allowed through -- routes like /invitations
128
- * must be accessible even when the user has no org membership.
129
- *
130
- * @example
131
- * // With custom fallback (your Mantine loader):
132
- * <ProtectedRoute fallback={<AppShellLoader />}>
133
- * <DashboardPage />
134
- * </ProtectedRoute>
135
- *
136
- * @example
137
- * // Wait only for user, not org (e.g. /invitations route):
138
- * <ProtectedRoute waitForOrganization={false}>
139
- * <InvitationsPage />
140
- * </ProtectedRoute>
141
- */
142
- declare function ProtectedRoute({ children, redirectTo, fallback, errorFallback, waitForOrganization }: ProtectedRouteProps): react_jsx_runtime.JSX.Element | null;
143
-
144
- interface AdminGuardProps {
145
- children: ReactNode;
146
- /**
147
- * Path to redirect non-admin users to.
148
- * @default '/'
149
- */
150
- redirectTo?: string;
151
- /**
152
- * Rendered while user readiness is being determined.
153
- * When not provided, nothing is rendered during initialization.
154
- */
155
- fallback?: ReactNode;
156
- }
157
- /**
158
- * Headless route guard for platform admin pages.
159
- *
160
- * Reads `profile.is_platform_admin` from the nearest InitializationProvider.
161
- * Non-admin users are redirected to `redirectTo` (default: '/').
162
- *
163
- * Must be nested inside a ProtectedRoute (or equivalent) so that
164
- * `userReady` is guaranteed to be true when this guard runs.
165
- *
166
- * @example
167
- * <ProtectedRoute>
168
- * <AdminGuard fallback={<AppShellLoader />}>
169
- * <AdminDashboard />
170
- * </AdminGuard>
171
- * </ProtectedRoute>
2
+ * Auth module - Pure authentication concerns
3
+ *
4
+ * Exports:
5
+ * - AuthContextValue: Interface for auth state (user, isLoading, getAccessToken, organizationId, signIn, canRecover)
6
+ * - AuthProvider: React context provider for AuthContextValue
7
+ * - useAuthContext: Hook to consume AuthContextValue from context
8
+ * - useStableAccessToken: Stable reference to getAccessToken for SSE connections
9
+ * - useSessionCheck: Validates session on tab refocus
172
10
  */
173
- declare function AdminGuard({ children, redirectTo, fallback }: AdminGuardProps): react_jsx_runtime.JSX.Element | null;
174
-
175
- export { AdminGuard, AuthProvider, ProtectedRoute, useAuthContext, useSessionCheck as useRefocusSessionCheck, useSessionCheck, useStableAccessToken };
176
- export type { AdminGuardProps, AuthContextValue, ProtectedRouteProps };
11
+ export { AuthProvider, useAuthContext, type AuthContextValue } from './context';
12
+ export * from './hooks/useStableAccessToken';
13
+ export * from './hooks/useSessionCheck';
14
+ export { ProtectedRoute, type ProtectedRouteProps } from './guards/ProtectedRoute';
15
+ export { AdminGuard, type AdminGuardProps } from './guards/AdminGuard';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC/E,cAAc,8BAA8B,CAAA;AAC5C,cAAc,yBAAyB,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAClF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAA"}
@@ -2,6 +2,6 @@ export { AdminGuard, ProtectedRoute, useSessionCheck as useRefocusSessionCheck,
2
2
  export { useStableAccessToken } from '../chunk-FWZJH3TL.js';
3
3
  import '../chunk-NEK6JKPW.js';
4
4
  import '../chunk-L2CM2CUA.js';
5
- import '../chunk-DD3CCMCZ.js';
6
5
  import '../chunk-KA7LO7U5.js';
6
+ import '../chunk-DD3CCMCZ.js';
7
7
  export { AuthProvider, useAuthContext } from '../chunk-7PLEQFHO.js';
@@ -1,5 +1,4 @@
1
1
  import { useSupabase } from './chunk-JGJSZ3UE.js';
2
- import { UuidSchema, ResourceTypeSchema, NonEmptyStringSchema, OriginResourceTypeSchema } from './chunk-BLO4SISK.js';
3
2
  import { useNotificationAdapter } from './chunk-TIRMFDM4.js';
4
3
  import { useStableAccessToken } from './chunk-FWZJH3TL.js';
5
4
  import { useElevasisServices } from './chunk-KA7LO7U5.js';
@@ -154,10 +153,35 @@ function useBulkDeleteExecutions() {
154
153
  }
155
154
  });
156
155
  }
156
+ var UuidSchema = z.string().uuid();
157
+ var NonEmptyStringSchema = z.string().trim().min(1).max(1e3);
158
+ var ResourceTypeSchema = z.enum(["agent", "workflow"]);
159
+ var OriginResourceTypeSchema = z.enum(["agent", "workflow", "scheduler", "api"]);
160
+ z.string().trim().toLowerCase().min(1, "Credential name required").max(100, "Credential name too long (max 100 chars)").regex(
161
+ /^[a-z0-9]+(-[a-z0-9]+)+$/,
162
+ "Credential name must be lowercase letters, numbers, and hyphens in format: service-environment (e.g., gmail-prod, attio-dev)"
163
+ );
164
+ z.enum(["google-sheets", "dropbox"]);
165
+ z.string().min(10, "Authorization code too short").max(1e3, "Authorization code too long");
166
+ z.string().min(10, "State parameter too short").max(2048, "State parameter too long");
167
+ z.string().trim().transform((str) => str.replace(/[<>'"]/g, ""));
168
+ z.string().email();
169
+ z.string().url();
170
+ z.object({
171
+ limit: z.coerce.number().int().min(1).max(100).default(20),
172
+ offset: z.coerce.number().int().min(0).default(0)
173
+ });
174
+ z.string().datetime();
175
+ z.object({
176
+ startDate: z.string().datetime(),
177
+ endDate: z.string().datetime()
178
+ });
179
+
180
+ // ../core/src/operations/sessions/api-schemas.ts
157
181
  var SessionIdParamSchema = z.object({
158
182
  sessionId: UuidSchema
159
183
  }).strict();
160
- z.object({
184
+ var ExecutionIdParamsSchema = z.object({
161
185
  sessionId: UuidSchema,
162
186
  executionId: UuidSchema
163
187
  }).strict();
@@ -188,7 +212,7 @@ z.object({
188
212
  resourceId: z.string().optional(),
189
213
  limit: z.coerce.number().int().min(1).max(100).default(20)
190
214
  }).strict();
191
- z.object({
215
+ var WebSocketSessionTurnSchema = z.object({
192
216
  type: z.literal("session:turn"),
193
217
  input: z.unknown().refine(
194
218
  (val) => {
@@ -417,6 +441,38 @@ function useExecutionLogs(params = {}) {
417
441
  // Real-time data - always refetch on mount/org switch
418
442
  });
419
443
  }
444
+ var NotificationCategorySchema = z.enum(["info", "queue", "alert", "error", "system"]);
445
+ var GetNotificationsQuerySchema = z.object({
446
+ limit: z.coerce.number().int().min(1).max(100).default(50),
447
+ offset: z.coerce.number().int().min(0).default(0)
448
+ });
449
+ var MarkAsReadParamsSchema = z.object({
450
+ id: UuidSchema
451
+ });
452
+ z.object({
453
+ userId: UuidSchema,
454
+ organizationId: UuidSchema,
455
+ category: NotificationCategorySchema,
456
+ title: z.string().trim().min(1).max(200),
457
+ message: z.string().trim().min(1).max(1e3),
458
+ actionUrl: z.string().url().optional()
459
+ }).strict();
460
+
461
+ // src/hooks/monitoring/useNotifications.ts
462
+ function useNotifications({ limit = 20, offset = 0 } = {}) {
463
+ const { apiRequest, isReady, organizationId } = useElevasisServices();
464
+ return useQuery({
465
+ queryKey: ["notifications", organizationId, { limit, offset }],
466
+ queryFn: async () => {
467
+ const params = GetNotificationsQuerySchema.parse({ limit, offset });
468
+ const response = await apiRequest(
469
+ `/notifications?limit=${params.limit}&offset=${params.offset}`
470
+ );
471
+ return response;
472
+ },
473
+ enabled: isReady
474
+ });
475
+ }
420
476
  var RelativeScheduleItemSchema = z.object({
421
477
  offset: z.string().regex(/^[+-]\d+[dhm]$/, "Invalid offset format. Use +3d, -2h, +30m, etc."),
422
478
  payload: z.record(z.string(), z.unknown()),
@@ -662,6 +718,55 @@ function useExecutionHealth({ timeRange }) {
662
718
  // 30s monitoring stale time
663
719
  });
664
720
  }
721
+ function useMarkAsRead() {
722
+ const queryClient = useQueryClient();
723
+ const { apiRequest } = useElevasisServices();
724
+ const notify = useNotificationAdapter();
725
+ return useMutation({
726
+ mutationFn: async (notificationId) => {
727
+ MarkAsReadParamsSchema.parse({ id: notificationId });
728
+ await apiRequest(`/notifications/${notificationId}/read`, {
729
+ method: "PATCH"
730
+ });
731
+ },
732
+ onSuccess: () => {
733
+ queryClient.invalidateQueries({ queryKey: ["notifications"] });
734
+ },
735
+ onError: (error) => {
736
+ notify.apiError(error);
737
+ }
738
+ });
739
+ }
740
+ function useMarkAllAsRead() {
741
+ const queryClient = useQueryClient();
742
+ const { apiRequest } = useElevasisServices();
743
+ const notify = useNotificationAdapter();
744
+ return useMutation({
745
+ mutationFn: async () => {
746
+ await apiRequest("/notifications/mark-all-read", {
747
+ method: "PATCH"
748
+ });
749
+ },
750
+ onSuccess: () => {
751
+ queryClient.invalidateQueries({ queryKey: ["notifications"] });
752
+ },
753
+ onError: (error) => {
754
+ notify.apiError(error);
755
+ }
756
+ });
757
+ }
758
+ function useNotificationCount() {
759
+ const { apiRequest, isReady, organizationId } = useElevasisServices();
760
+ return useQuery({
761
+ queryKey: ["notifications", "unread-count", organizationId],
762
+ queryFn: async () => {
763
+ const response = await apiRequest("/notifications/unread-count");
764
+ return response.count;
765
+ },
766
+ enabled: isReady,
767
+ staleTime: 3e4
768
+ });
769
+ }
665
770
  function useErrorNotification() {
666
771
  const adapter = useNotificationAdapter();
667
772
  return useCallback(
@@ -1212,8 +1317,7 @@ function useSortedData(data, defaultColumn, accessors, defaultDirection = "desc"
1212
1317
  function createUseFeatureAccess({
1213
1318
  useInitialization,
1214
1319
  useOrganization,
1215
- optInFeatures = [],
1216
- getCoursesByGroup = () => []
1320
+ optInFeatures = []
1217
1321
  }) {
1218
1322
  return function useFeatureAccess() {
1219
1323
  const { profile, organizationReady } = useInitialization();
@@ -1241,56 +1345,12 @@ function createUseFeatureAccess({
1241
1345
  [profile?.is_platform_admin, membershipConfig, orgConfig]
1242
1346
  );
1243
1347
  const hasFeature = useCallback((featureKey) => checkFeature(featureKey).allowed, [checkFeature]);
1244
- const hasTrainingAccess = useCallback(() => {
1245
- if (profile?.is_platform_admin) return true;
1246
- return userConfig?.training?.enabled ?? true;
1247
- }, [profile?.is_platform_admin, userConfig?.training?.enabled]);
1248
- const getAllowedCourses = useCallback(() => {
1249
- if (userConfig?.training?.allowed_courses?.length) {
1250
- return userConfig.training.allowed_courses;
1251
- }
1252
- return null;
1253
- }, [userConfig?.training?.allowed_courses]);
1254
- const getResolvedCourseAccess = useCallback(() => {
1255
- if (profile?.is_platform_admin) return null;
1256
- const orgGroups = orgConfig?.training?.allowed_course_groups ?? [];
1257
- const userGroups = userConfig?.training?.allowed_course_groups ?? [];
1258
- const userCourses = userConfig?.training?.allowed_courses ?? [];
1259
- if (!orgGroups.length && !userGroups.length && !userCourses.length) return null;
1260
- const foundationCourses = getCoursesByGroup("foundation");
1261
- const orgCourseSlugs = orgGroups.flatMap(getCoursesByGroup);
1262
- const userGroupCourseSlugs = userGroups.flatMap(getCoursesByGroup);
1263
- return [.../* @__PURE__ */ new Set([...foundationCourses, ...orgCourseSlugs, ...userGroupCourseSlugs, ...userCourses])];
1264
- }, [
1265
- profile?.is_platform_admin,
1266
- orgConfig?.training?.allowed_course_groups,
1267
- userConfig?.training?.allowed_course_groups,
1268
- userConfig?.training?.allowed_courses
1269
- ]);
1270
- const hasAccessToCourse = useCallback(
1271
- (courseSlug) => {
1272
- const resolved = getResolvedCourseAccess();
1273
- if (resolved === null) return true;
1274
- return resolved.includes(courseSlug);
1275
- },
1276
- [getResolvedCourseAccess]
1277
- );
1278
- const getEnabledGroups = useCallback(() => {
1279
- const orgGroups = orgConfig?.training?.allowed_course_groups ?? [];
1280
- const userGroups = userConfig?.training?.allowed_course_groups ?? [];
1281
- return [.../* @__PURE__ */ new Set(["foundation", ...orgGroups, ...userGroups])];
1282
- }, [orgConfig?.training?.allowed_course_groups, userConfig?.training?.allowed_course_groups]);
1283
1348
  return {
1284
1349
  orgConfig,
1285
1350
  membershipConfig,
1286
1351
  userConfig,
1287
1352
  hasFeature,
1288
1353
  checkFeature,
1289
- hasTrainingAccess,
1290
- getAllowedCourses,
1291
- getResolvedCourseAccess,
1292
- hasAccessToCourse,
1293
- getEnabledGroups,
1294
1354
  isReady: organizationReady
1295
1355
  };
1296
1356
  };
@@ -1358,4 +1418,4 @@ function useSSEConnection({
1358
1418
  return { connected, error };
1359
1419
  }
1360
1420
 
1361
- export { OperationsService, createUseFeatureAccess, executionsKeys, observabilityKeys, scheduleKeys, sortData, useActivities, useActivityTrend, useBatchDelete, useBulkDeleteExecutions, useBusinessImpact, useCancelExecution, useCancelSchedule, useCostBreakdown, useCostByModel, useCostSummary, useCostTrends, useCreateSchedule, useDashboardMetrics, useDeleteExecution, useDeleteSchedule, useErrorAnalysis, useErrorDetail, useErrorDetails, useErrorDistribution, useErrorNotification, useErrorTrends, useExecuteAsync, useExecution, useExecutionHealth, useExecutionLogs, useExecutions, useGetExecutionHistory, useGetSchedule, useListSchedules, usePaginationState, usePauseSchedule, useResolveAllErrors, useResolveError, useResolveErrorsByExecution, useResourceDefinition, useResources, useResumeSchedule, useRetryExecution, useSSEConnection, useSortedData, useSuccessNotification, useTableSelection, useTableSort, useTopFailingResources, useUnresolveError, useUpdateAnchor, useUpdateSchedule, useWarningNotification };
1421
+ export { ExecutionIdParamsSchema, OperationsService, SessionIdParamSchema, WebSocketSessionTurnSchema, createUseFeatureAccess, executionsKeys, observabilityKeys, scheduleKeys, sortData, useActivities, useActivityTrend, useBatchDelete, useBulkDeleteExecutions, useBusinessImpact, useCancelExecution, useCancelSchedule, useCostBreakdown, useCostByModel, useCostSummary, useCostTrends, useCreateSchedule, useDashboardMetrics, useDeleteExecution, useDeleteSchedule, useErrorAnalysis, useErrorDetail, useErrorDetails, useErrorDistribution, useErrorNotification, useErrorTrends, useExecuteAsync, useExecution, useExecutionHealth, useExecutionLogs, useExecutions, useGetExecutionHistory, useGetSchedule, useListSchedules, useMarkAllAsRead, useMarkAsRead, useNotificationCount, useNotifications, usePaginationState, usePauseSchedule, useResolveAllErrors, useResolveError, useResolveErrorsByExecution, useResourceDefinition, useResources, useResumeSchedule, useRetryExecution, useSSEConnection, useSortedData, useSuccessNotification, useTableSelection, useTableSort, useTopFailingResources, useUnresolveError, useUpdateAnchor, useUpdateSchedule, useWarningNotification };