@elevasis/ui 2.16.0 → 2.17.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 (78) hide show
  1. package/dist/api/index.js +3 -2
  2. package/dist/app/index.js +9 -7
  3. package/dist/auth/index.js +4 -3
  4. package/dist/charts/index.js +11 -10
  5. package/dist/{chunk-DT7ETYBT.js → chunk-2TDZBYXI.js} +3 -3
  6. package/dist/{chunk-5IBTTMWX.js → chunk-34NQLV2W.js} +2 -2
  7. package/dist/{chunk-FL67C3WY.js → chunk-6IA2OMAE.js} +1 -1
  8. package/dist/{chunk-5UQKR27N.js → chunk-7GCWOUFT.js} +32 -9
  9. package/dist/{chunk-LKU4JCPR.js → chunk-7L42RRHZ.js} +5 -4
  10. package/dist/{chunk-L4XXM55J.js → chunk-7YQKVWSD.js} +1 -1
  11. package/dist/{chunk-7MBONWZZ.js → chunk-ABUDMATM.js} +7 -8
  12. package/dist/{chunk-TUXTSEAF.js → chunk-DK2HVHCY.js} +1 -1
  13. package/dist/{chunk-GHIPBT5V.js → chunk-E4WQGJNS.js} +1 -1
  14. package/dist/{chunk-6SHOLCSV.js → chunk-FNWWVX5N.js} +5 -4
  15. package/dist/{chunk-IOKL7BKE.js → chunk-GCBWGGI6.js} +133 -1
  16. package/dist/chunk-GRGRBWIO.js +383 -0
  17. package/dist/{chunk-XNEYUG4B.js → chunk-HH3RNG2O.js} +33 -120
  18. package/dist/{chunk-SLVC5OJ2.js → chunk-HQ7M6PBW.js} +1 -1
  19. package/dist/chunk-IRW7JMQ4.js +28 -0
  20. package/dist/{chunk-C3INGWGK.js → chunk-JU6UB4YA.js} +4 -4
  21. package/dist/{chunk-M2RM3CC4.js → chunk-MDO4UCEJ.js} +4 -4
  22. package/dist/{chunk-STZJ7SY5.js → chunk-MJ6YV2B5.js} +3 -2
  23. package/dist/{chunk-BKSSVQM6.js → chunk-OCCZRPER.js} +1 -1
  24. package/dist/{chunk-ZB5GAV7J.js → chunk-P3TFNFZS.js} +6 -5
  25. package/dist/{chunk-QEPXAWE2.js → chunk-QHSW4WHM.js} +3 -26
  26. package/dist/{chunk-LXHZYSMQ.js → chunk-QSTH6T77.js} +2 -52
  27. package/dist/{chunk-F4VHHW4O.js → chunk-R7GKX4HW.js} +9 -409
  28. package/dist/{chunk-MTJ43R2E.js → chunk-SLH2QLKV.js} +1 -1
  29. package/dist/{chunk-RWFT46RK.js → chunk-TP5NMF6K.js} +6 -7
  30. package/dist/{chunk-SQQGLGHW.js → chunk-TTP62HWW.js} +3 -3
  31. package/dist/{chunk-NVOCKXUQ.js → chunk-VDM6DQES.js} +1 -1
  32. package/dist/chunk-ZTWA5H77.js +94 -0
  33. package/dist/components/index.d.ts +2648 -2642
  34. package/dist/components/index.js +38 -35
  35. package/dist/execution/index.js +2 -2
  36. package/dist/features/auth/index.js +5 -4
  37. package/dist/features/crm/index.d.ts +51 -51
  38. package/dist/features/crm/index.js +21 -19
  39. package/dist/features/dashboard/index.js +23 -21
  40. package/dist/features/delivery/index.d.ts +2604 -2604
  41. package/dist/features/delivery/index.js +21 -19
  42. package/dist/features/lead-gen/index.js +29 -26
  43. package/dist/features/monitoring/index.js +26 -24
  44. package/dist/features/monitoring/requests/index.d.ts +26 -26
  45. package/dist/features/monitoring/requests/index.js +20 -18
  46. package/dist/features/operations/index.d.ts +10 -10
  47. package/dist/features/operations/index.js +28 -25
  48. package/dist/features/seo/index.js +1 -1
  49. package/dist/features/settings/index.d.ts +34 -34
  50. package/dist/features/settings/index.js +22 -20
  51. package/dist/hooks/delivery/index.css +589 -0
  52. package/dist/hooks/delivery/index.d.ts +3044 -0
  53. package/dist/hooks/delivery/index.js +4 -0
  54. package/dist/hooks/index.d.ts +3095 -3095
  55. package/dist/hooks/index.js +20 -18
  56. package/dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts +506 -0
  57. package/dist/hooks/operations/command-view/utils/transformCommandViewData.js +1 -0
  58. package/dist/hooks/published.d.ts +3095 -3095
  59. package/dist/hooks/published.js +20 -18
  60. package/dist/index.d.ts +3396 -3335
  61. package/dist/index.js +21 -19
  62. package/dist/initialization/index.js +4 -3
  63. package/dist/layout/index.js +3 -3
  64. package/dist/organization/index.js +4 -3
  65. package/dist/profile/index.js +2 -1
  66. package/dist/provider/ElevasisServiceContext.d.ts +54 -0
  67. package/dist/provider/ElevasisServiceContext.js +1 -0
  68. package/dist/provider/index.d.ts +239 -239
  69. package/dist/provider/index.js +17 -16
  70. package/dist/provider/published.d.ts +239 -239
  71. package/dist/provider/published.js +15 -14
  72. package/dist/types/index.d.ts +2349 -2332
  73. package/dist/utils/index.d.ts +73 -1
  74. package/dist/utils/index.js +2 -1
  75. package/dist/zustand/index.d.ts +7 -7
  76. package/package.json +2 -2
  77. package/dist/{chunk-4BF74JVD.js → chunk-6GUW5GGF.js} +1 -1
  78. package/dist/{chunk-ELJIFLCB.js → chunk-KRWALB24.js} +6 -6
@@ -1,4 +1,4 @@
1
- import { ElevasisFeaturesProvider } from './chunk-DT7ETYBT.js';
1
+ import { ElevasisFeaturesProvider } from './chunk-2TDZBYXI.js';
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
 
4
4
  function createTestFeaturesProvider({
@@ -1,9 +1,10 @@
1
- import { ApiClientProvider, useApiClient } from './chunk-NVOCKXUQ.js';
2
- import { OrganizationProvider } from './chunk-FL67C3WY.js';
3
- import { getErrorInfo, getErrorTitle, formatErrorMessage } from './chunk-IOKL7BKE.js';
4
- import { InitializationProvider } from './chunk-TUXTSEAF.js';
1
+ import { ApiClientProvider, useApiClient } from './chunk-VDM6DQES.js';
2
+ import { OrganizationProvider } from './chunk-6IA2OMAE.js';
3
+ import { getErrorInfo, getErrorTitle, formatErrorMessage } from './chunk-GCBWGGI6.js';
4
+ import { InitializationProvider } from './chunk-DK2HVHCY.js';
5
5
  import { useOrganization } from './chunk-DD3CCMCZ.js';
6
- import { ProfileProvider, ElevasisServiceProvider } from './chunk-QEPXAWE2.js';
6
+ import { ProfileProvider } from './chunk-QHSW4WHM.js';
7
+ import { ElevasisServiceProvider } from './chunk-IRW7JMQ4.js';
7
8
  import { useAuthContext } from './chunk-BRJ3QZ4E.js';
8
9
  import { createContext, lazy, useContext, Suspense, useRef } from 'react';
9
10
  import { jsx } from 'react/jsx-runtime';
@@ -1,29 +1,6 @@
1
+ import { ElevasisServiceContext } from './chunk-IRW7JMQ4.js';
1
2
  import { useAuthContext } from './chunk-BRJ3QZ4E.js';
2
- import { createContext, useContext, useMemo, useState, useEffect, createElement } from 'react';
3
- import { jsx } from 'react/jsx-runtime';
4
-
5
- var ElevasisServiceContext = createContext(null);
6
- function useElevasisServices() {
7
- const ctx = useContext(ElevasisServiceContext);
8
- if (!ctx) {
9
- throw new Error(
10
- "useElevasisServices must be used within an ElevasisServiceProvider or an ElevasisUIProvider with apiUrl configured."
11
- );
12
- }
13
- return ctx;
14
- }
15
- function ElevasisServiceProvider({
16
- apiRequest,
17
- organizationId,
18
- isReady,
19
- children
20
- }) {
21
- const value = useMemo(
22
- () => ({ apiRequest, organizationId, isReady }),
23
- [apiRequest, organizationId, isReady]
24
- );
25
- return /* @__PURE__ */ jsx(ElevasisServiceContext.Provider, { value, children });
26
- }
3
+ import { createContext, useContext, useState, useEffect, createElement } from 'react';
27
4
 
28
5
  // src/profile/services/UserProfileService.ts
29
6
  var UserProfileService = class {
@@ -173,4 +150,4 @@ function ProfileProvider({ apiRequest, children }) {
173
150
  return createElement(ProfileContext.Provider, { value }, children);
174
151
  }
175
152
 
176
- export { ElevasisServiceProvider, ProfileProvider, UserProfileService, useElevasisServices, useProfile, useUserProfile };
153
+ export { ProfileProvider, UserProfileService, useProfile, useUserProfile };
@@ -1,4 +1,4 @@
1
- import { useElevasisServices } from './chunk-QEPXAWE2.js';
1
+ import { useElevasisServices } from './chunk-IRW7JMQ4.js';
2
2
  import { useQuery } from '@tanstack/react-query';
3
3
 
4
4
  // src/hooks/observability/queryKeys.ts
@@ -47,54 +47,4 @@ function useErrorTrends({ startDate, endDate, granularity }) {
47
47
  });
48
48
  }
49
49
 
50
- // ../core/src/operations/observability/utils.ts
51
- function getTimeRangeDates(range) {
52
- const end = /* @__PURE__ */ new Date();
53
- const start = /* @__PURE__ */ new Date();
54
- switch (range) {
55
- case "1h":
56
- start.setHours(start.getHours() - 1);
57
- break;
58
- case "24h":
59
- start.setHours(start.getHours() - 24);
60
- break;
61
- case "7d":
62
- start.setDate(start.getDate() - 7);
63
- break;
64
- case "30d":
65
- start.setDate(start.getDate() - 30);
66
- break;
67
- }
68
- return {
69
- startDate: start.toISOString(),
70
- endDate: end.toISOString()
71
- };
72
- }
73
- function getTimeRangeLabel(range) {
74
- switch (range) {
75
- case "1h":
76
- return "Last 1 hour";
77
- case "24h":
78
- return "Last 24 hours";
79
- case "7d":
80
- return "Last 7 days";
81
- case "30d":
82
- return "Last 30 days";
83
- }
84
- }
85
- function formatBucketTime(timestamp, granularity) {
86
- const date = new Date(timestamp);
87
- if (granularity === "hour") {
88
- return date.toLocaleTimeString("en-US", {
89
- hour: "2-digit",
90
- minute: "2-digit",
91
- hour12: false
92
- });
93
- }
94
- return date.toLocaleDateString("en-US", {
95
- month: "short",
96
- day: "numeric"
97
- });
98
- }
99
-
100
- export { formatBucketTime, getTimeRangeDates, getTimeRangeLabel, observabilityKeys, useErrorTrends };
50
+ export { observabilityKeys, useErrorTrends };
@@ -1,13 +1,14 @@
1
- import { getTimeRangeDates, observabilityKeys } from './chunk-LXHZYSMQ.js';
2
1
  import { useSupabase } from './chunk-BRXELOHC.js';
2
+ import { observabilityKeys } from './chunk-QSTH6T77.js';
3
+ import { showApiErrorNotification, showSuccessNotification, projectKeys, noteKeys, taskKeys, milestoneKeys } from './chunk-GRGRBWIO.js';
3
4
  import { GRAPH_CONSTANTS } from './chunk-22UVE3RA.js';
4
- import { useOptionalElevasisFeatures } from './chunk-DT7ETYBT.js';
5
- import { useNotificationAdapter } from './chunk-ZB5GAV7J.js';
6
- import { HTTP_HEADERS } from './chunk-NVOCKXUQ.js';
7
- import { REFETCH_INTERVAL_DASHBOARD, STALE_TIME_MONITORING, REFETCH_INTERVAL_RUNNING, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, STALE_TIME_DEFAULT, STALE_TIME_ADMIN, getErrorInfo, formatErrorMessage, getErrorTitle, APIClientError, GC_TIME_MEDIUM, GC_TIME_SHORT } from './chunk-IOKL7BKE.js';
8
- import { useStableAccessToken } from './chunk-MTJ43R2E.js';
5
+ import { useOptionalElevasisFeatures } from './chunk-2TDZBYXI.js';
6
+ import { useNotificationAdapter } from './chunk-P3TFNFZS.js';
7
+ import { HTTP_HEADERS } from './chunk-VDM6DQES.js';
8
+ import { UuidSchema, ResourceTypeSchema, NonEmptyStringSchema, OriginResourceTypeSchema, CredentialNameSchema, REFETCH_INTERVAL_DASHBOARD, getTimeRangeDates, STALE_TIME_MONITORING, REFETCH_INTERVAL_RUNNING, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, STALE_TIME_DEFAULT, STALE_TIME_ADMIN, APIClientError, GC_TIME_MEDIUM, GC_TIME_SHORT } from './chunk-GCBWGGI6.js';
9
+ import { useStableAccessToken } from './chunk-SLH2QLKV.js';
9
10
  import { useOrganization } from './chunk-DD3CCMCZ.js';
10
- import { useElevasisServices } from './chunk-QEPXAWE2.js';
11
+ import { useElevasisServices } from './chunk-IRW7JMQ4.js';
11
12
  import { useAuthContext } from './chunk-BRJ3QZ4E.js';
12
13
  import { useQuery, useQueryClient, useMutation, useQueries } from '@tanstack/react-query';
13
14
  import { z } from 'zod';
@@ -165,31 +166,6 @@ function useBulkDeleteExecutions() {
165
166
  }
166
167
  });
167
168
  }
168
- var UuidSchema = z.string().uuid();
169
- var NonEmptyStringSchema = z.string().trim().min(1).max(1e3);
170
- var ResourceTypeSchema = z.enum(["agent", "workflow"]);
171
- var OriginResourceTypeSchema = z.enum(["agent", "workflow", "scheduler", "api"]);
172
- var CredentialNameSchema = z.string().trim().toLowerCase().min(1, "Credential name required").max(100, "Credential name too long (max 100 chars)").regex(
173
- /^[a-z0-9]+(-[a-z0-9]+)+$/,
174
- "Credential name must be lowercase letters, numbers, and hyphens in format: service-environment (e.g., gmail-prod, attio-dev)"
175
- );
176
- z.enum(["google-sheets", "dropbox"]);
177
- z.string().min(10, "Authorization code too short").max(1e3, "Authorization code too long");
178
- z.string().min(10, "State parameter too short").max(2048, "State parameter too long");
179
- z.string().trim().transform((str) => str.replace(/[<>'"]/g, ""));
180
- z.string().email();
181
- z.string().url();
182
- z.object({
183
- limit: z.coerce.number().int().min(1).max(100).default(20),
184
- offset: z.coerce.number().int().min(0).default(0)
185
- });
186
- z.string().datetime();
187
- z.object({
188
- startDate: z.string().datetime(),
189
- endDate: z.string().datetime()
190
- });
191
-
192
- // ../core/src/operations/sessions/api-schemas.ts
193
169
  var SessionIdParamSchema = z.object({
194
170
  sessionId: UuidSchema
195
171
  }).strict();
@@ -2779,55 +2755,6 @@ function useResourceExecutions({ resourceId, timeRange, enabled = true }) {
2779
2755
  staleTime: STALE_TIME_MONITORING
2780
2756
  });
2781
2757
  }
2782
- var showInfoNotification = (message) => {
2783
- notifications.show({
2784
- title: "Info",
2785
- message,
2786
- autoClose: 5e3,
2787
- color: "blue",
2788
- position: "top-right"
2789
- });
2790
- };
2791
- var showSuccessNotification = (message) => {
2792
- notifications.show({
2793
- title: "Action Successful",
2794
- message,
2795
- autoClose: 5e3,
2796
- color: "green",
2797
- position: "top-right"
2798
- });
2799
- };
2800
- var showErrorNotification = (error) => {
2801
- if (error instanceof Error) {
2802
- error = error.message;
2803
- }
2804
- notifications.show({
2805
- title: "Action Failed",
2806
- message: error,
2807
- autoClose: 5e3,
2808
- color: "red",
2809
- position: "top-right"
2810
- });
2811
- };
2812
- var showWarningNotification = (message) => {
2813
- notifications.show({
2814
- title: "Warning",
2815
- message,
2816
- autoClose: 5e3,
2817
- color: "orange",
2818
- position: "top-right"
2819
- });
2820
- };
2821
- var showApiErrorNotification = (error) => {
2822
- const { message, code, requestId, fields, retryAfter } = getErrorInfo(error);
2823
- notifications.show({
2824
- title: getErrorTitle(code),
2825
- message: formatErrorMessage(message, requestId, fields, retryAfter),
2826
- autoClose: retryAfter ? retryAfter * 1e3 : 5e3,
2827
- color: "red",
2828
- position: "top-right"
2829
- });
2830
- };
2831
2758
 
2832
2759
  // src/hooks/settings/api-keys/apiKeyService.ts
2833
2760
  var ApiKeyService = class {
@@ -3673,126 +3600,6 @@ function useDeleteContacts() {
3673
3600
  }
3674
3601
  });
3675
3602
  }
3676
- var projectKeys = {
3677
- all: ["projects"],
3678
- lists: () => [...projectKeys.all, "list"],
3679
- list: (orgId, filters) => [...projectKeys.all, "list", orgId, filters],
3680
- details: () => [...projectKeys.all, "detail"],
3681
- detail: (id) => [...projectKeys.all, "detail", id],
3682
- milestones: (id) => [...projectKeys.all, id, "milestones"],
3683
- tasks: (id) => [...projectKeys.all, id, "tasks"]
3684
- };
3685
- function useProjects(filters = {}) {
3686
- const { apiRequest, isReady, organizationId } = useElevasisServices();
3687
- return useQuery({
3688
- queryKey: projectKeys.list(organizationId, filters),
3689
- queryFn: async () => {
3690
- const params = new URLSearchParams();
3691
- if (filters.kind) params.set("kind", filters.kind);
3692
- const qs = params.toString();
3693
- const path = qs ? `/projects?${qs}` : "/projects";
3694
- const res = await apiRequest(path);
3695
- return res.projects;
3696
- },
3697
- enabled: isReady
3698
- });
3699
- }
3700
- function useProject(id) {
3701
- const { apiRequest, isReady, organizationId } = useElevasisServices();
3702
- return useQuery({
3703
- queryKey: [...projectKeys.detail(id), organizationId],
3704
- queryFn: async () => {
3705
- try {
3706
- const res = await apiRequest(`/projects/${id}`);
3707
- return res.project;
3708
- } catch (err) {
3709
- if (err && typeof err === "object" && "statusCode" in err && err.statusCode === 404) {
3710
- return null;
3711
- }
3712
- throw err;
3713
- }
3714
- },
3715
- enabled: isReady && !!id
3716
- });
3717
- }
3718
- function useProjectMilestones(projectId) {
3719
- const { apiRequest, isReady } = useElevasisServices();
3720
- return useQuery({
3721
- queryKey: projectKeys.milestones(projectId),
3722
- queryFn: async () => {
3723
- const res = await apiRequest(`/projects/${projectId}/milestones`);
3724
- return res.milestones;
3725
- },
3726
- enabled: isReady && !!projectId
3727
- });
3728
- }
3729
- function useProjectTasks(projectId) {
3730
- const { apiRequest, isReady } = useElevasisServices();
3731
- return useQuery({
3732
- queryKey: projectKeys.tasks(projectId),
3733
- queryFn: async () => {
3734
- const res = await apiRequest(`/projects/${projectId}/tasks`);
3735
- return res.tasks;
3736
- },
3737
- enabled: isReady && !!projectId
3738
- });
3739
- }
3740
- function useCreateProject() {
3741
- const { apiRequest } = useElevasisServices();
3742
- const queryClient = useQueryClient();
3743
- return useMutation({
3744
- mutationFn: async (params) => {
3745
- const res = await apiRequest("/projects", {
3746
- method: "POST",
3747
- body: JSON.stringify(params)
3748
- });
3749
- return res.project;
3750
- },
3751
- onSuccess: () => {
3752
- queryClient.invalidateQueries({ queryKey: projectKeys.all });
3753
- },
3754
- onError: (error) => {
3755
- showApiErrorNotification(error);
3756
- }
3757
- });
3758
- }
3759
- function useUpdateProject() {
3760
- const { apiRequest } = useElevasisServices();
3761
- const queryClient = useQueryClient();
3762
- return useMutation({
3763
- mutationFn: async (params) => {
3764
- const res = await apiRequest(`/projects/${params.id}`, {
3765
- method: "PATCH",
3766
- body: JSON.stringify(params.updates)
3767
- });
3768
- return res.project;
3769
- },
3770
- onSuccess: (data) => {
3771
- queryClient.invalidateQueries({ queryKey: projectKeys.all });
3772
- queryClient.invalidateQueries({ queryKey: projectKeys.detail(data.id) });
3773
- },
3774
- onError: (error) => {
3775
- showApiErrorNotification(error);
3776
- }
3777
- });
3778
- }
3779
- function useDeleteProject() {
3780
- const { apiRequest } = useElevasisServices();
3781
- const queryClient = useQueryClient();
3782
- return useMutation({
3783
- mutationFn: async (id) => {
3784
- await apiRequest(`/projects/${id}`, {
3785
- method: "DELETE"
3786
- });
3787
- },
3788
- onSuccess: () => {
3789
- queryClient.invalidateQueries({ queryKey: projectKeys.all });
3790
- },
3791
- onError: (error) => {
3792
- showApiErrorNotification(error);
3793
- }
3794
- });
3795
- }
3796
3603
 
3797
3604
  // src/hooks/settings/webhooks/webhookEndpointService.ts
3798
3605
  var WebhookEndpointService = class {
@@ -4427,213 +4234,6 @@ function useOrganizationMembers(organizationId, params) {
4427
4234
  refetchOnWindowFocus: false
4428
4235
  });
4429
4236
  }
4430
- var milestoneKeys = {
4431
- all: ["project-milestones"],
4432
- lists: () => [...milestoneKeys.all, "list"],
4433
- list: (orgId, filters) => [...milestoneKeys.all, "list", orgId, filters],
4434
- details: () => [...milestoneKeys.all, "detail"],
4435
- detail: (id) => [...milestoneKeys.all, "detail", id]
4436
- };
4437
- function useMilestones(filters = {}) {
4438
- const { apiRequest, isReady, organizationId } = useElevasisServices();
4439
- return useQuery({
4440
- queryKey: milestoneKeys.list(organizationId, filters),
4441
- queryFn: async () => {
4442
- const res = await apiRequest(`/projects/${filters.projectId}/milestones`);
4443
- return res.milestones;
4444
- },
4445
- enabled: isReady && !!filters.projectId
4446
- });
4447
- }
4448
- function useCreateMilestone() {
4449
- const { apiRequest } = useElevasisServices();
4450
- const queryClient = useQueryClient();
4451
- return useMutation({
4452
- mutationFn: async (params) => {
4453
- const { project_id, ...body } = params;
4454
- if (!project_id) throw new Error("project_id is required to create a milestone");
4455
- const res = await apiRequest(`/projects/${project_id}/milestones`, {
4456
- method: "POST",
4457
- body: JSON.stringify(body)
4458
- });
4459
- return res.milestone;
4460
- },
4461
- onSuccess: (data) => {
4462
- queryClient.invalidateQueries({ queryKey: milestoneKeys.all });
4463
- queryClient.invalidateQueries({ queryKey: projectKeys.all });
4464
- queryClient.invalidateQueries({ queryKey: projectKeys.detail(data.project_id) });
4465
- },
4466
- onError: (error) => {
4467
- showApiErrorNotification(error);
4468
- }
4469
- });
4470
- }
4471
- function useUpdateMilestone() {
4472
- const { apiRequest } = useElevasisServices();
4473
- const queryClient = useQueryClient();
4474
- return useMutation({
4475
- mutationFn: async (params) => {
4476
- const res = await apiRequest(`/milestones/${params.id}`, {
4477
- method: "PATCH",
4478
- body: JSON.stringify(params.updates)
4479
- });
4480
- return res.milestone;
4481
- },
4482
- onSuccess: (data) => {
4483
- queryClient.invalidateQueries({ queryKey: milestoneKeys.all });
4484
- queryClient.invalidateQueries({ queryKey: projectKeys.all });
4485
- queryClient.invalidateQueries({ queryKey: projectKeys.detail(data.project_id) });
4486
- },
4487
- onError: (error) => {
4488
- showApiErrorNotification(error);
4489
- }
4490
- });
4491
- }
4492
- function useDeleteMilestone() {
4493
- const { apiRequest } = useElevasisServices();
4494
- const queryClient = useQueryClient();
4495
- return useMutation({
4496
- mutationFn: async (params) => {
4497
- await apiRequest(`/milestones/${params.id}`, {
4498
- method: "DELETE"
4499
- });
4500
- },
4501
- onSuccess: (_, params) => {
4502
- queryClient.invalidateQueries({ queryKey: milestoneKeys.all });
4503
- queryClient.invalidateQueries({ queryKey: projectKeys.all });
4504
- queryClient.invalidateQueries({ queryKey: projectKeys.detail(params.projectId) });
4505
- },
4506
- onError: (error) => {
4507
- showApiErrorNotification(error);
4508
- }
4509
- });
4510
- }
4511
- var taskKeys = {
4512
- all: ["project-tasks"],
4513
- lists: () => [...taskKeys.all, "list"],
4514
- list: (orgId, filters) => [...taskKeys.all, "list", orgId, filters],
4515
- details: () => [...taskKeys.all, "detail"],
4516
- detail: (id) => [...taskKeys.all, "detail", id]
4517
- };
4518
- function useTasks(filters = {}) {
4519
- const { apiRequest, isReady, organizationId } = useElevasisServices();
4520
- return useQuery({
4521
- queryKey: taskKeys.list(organizationId, filters),
4522
- queryFn: async () => {
4523
- const params = new URLSearchParams();
4524
- if (filters.status) params.set("status", filters.status);
4525
- if (filters.milestoneId) params.set("milestone_id", filters.milestoneId);
4526
- const qs = params.toString();
4527
- const base = `/projects/${filters.projectId}/tasks`;
4528
- const path = qs ? `${base}?${qs}` : base;
4529
- const res = await apiRequest(path);
4530
- return res.tasks;
4531
- },
4532
- enabled: isReady && !!filters.projectId
4533
- });
4534
- }
4535
- function useCreateTask() {
4536
- const { apiRequest } = useElevasisServices();
4537
- const queryClient = useQueryClient();
4538
- return useMutation({
4539
- mutationFn: async (params) => {
4540
- const res = await apiRequest("/project-tasks", {
4541
- method: "POST",
4542
- body: JSON.stringify(params)
4543
- });
4544
- return res.task;
4545
- },
4546
- onSuccess: (data) => {
4547
- queryClient.invalidateQueries({ queryKey: taskKeys.all });
4548
- queryClient.invalidateQueries({ queryKey: projectKeys.all });
4549
- queryClient.invalidateQueries({ queryKey: projectKeys.detail(data.project_id) });
4550
- },
4551
- onError: (error) => {
4552
- showApiErrorNotification(error);
4553
- }
4554
- });
4555
- }
4556
- function useUpdateTask() {
4557
- const { apiRequest } = useElevasisServices();
4558
- const queryClient = useQueryClient();
4559
- return useMutation({
4560
- mutationFn: async (params) => {
4561
- const res = await apiRequest(`/project-tasks/${params.id}`, {
4562
- method: "PATCH",
4563
- body: JSON.stringify(params.updates)
4564
- });
4565
- return res.task;
4566
- },
4567
- onSuccess: (data) => {
4568
- queryClient.invalidateQueries({ queryKey: taskKeys.all });
4569
- queryClient.invalidateQueries({ queryKey: projectKeys.all });
4570
- queryClient.invalidateQueries({ queryKey: projectKeys.detail(data.project_id) });
4571
- },
4572
- onError: (error) => {
4573
- showApiErrorNotification(error);
4574
- }
4575
- });
4576
- }
4577
- function useDeleteTask2() {
4578
- const { apiRequest } = useElevasisServices();
4579
- const queryClient = useQueryClient();
4580
- return useMutation({
4581
- mutationFn: async (params) => {
4582
- await apiRequest(`/project-tasks/${params.id}`, {
4583
- method: "DELETE"
4584
- });
4585
- },
4586
- onSuccess: (_, params) => {
4587
- queryClient.invalidateQueries({ queryKey: taskKeys.all });
4588
- queryClient.invalidateQueries({ queryKey: projectKeys.all });
4589
- queryClient.invalidateQueries({ queryKey: projectKeys.detail(params.projectId) });
4590
- },
4591
- onError: (error) => {
4592
- showApiErrorNotification(error);
4593
- }
4594
- });
4595
- }
4596
- var noteKeys = {
4597
- all: ["project-notes"],
4598
- lists: () => [...noteKeys.all, "list"],
4599
- list: (orgId, filters) => [...noteKeys.all, "list", orgId, filters],
4600
- details: () => [...noteKeys.all, "detail"],
4601
- detail: (id) => [...noteKeys.all, "detail", id]
4602
- };
4603
- function useProjectNotes(filters = {}) {
4604
- const { apiRequest, isReady, organizationId } = useElevasisServices();
4605
- return useQuery({
4606
- queryKey: noteKeys.list(organizationId, filters),
4607
- queryFn: async () => {
4608
- const res = await apiRequest(`/projects/${filters.projectId}/notes`);
4609
- return res.notes;
4610
- },
4611
- enabled: isReady && !!filters.projectId
4612
- });
4613
- }
4614
- function useCreateNote() {
4615
- const { apiRequest } = useElevasisServices();
4616
- const queryClient = useQueryClient();
4617
- return useMutation({
4618
- mutationFn: async (params) => {
4619
- const res = await apiRequest("/project-notes", {
4620
- method: "POST",
4621
- body: JSON.stringify(params)
4622
- });
4623
- return res.note;
4624
- },
4625
- onSuccess: (data) => {
4626
- queryClient.invalidateQueries({ queryKey: noteKeys.all });
4627
- queryClient.invalidateQueries({ queryKey: projectKeys.all });
4628
- queryClient.invalidateQueries({ queryKey: projectKeys.detail(data.project_id) });
4629
- },
4630
- onError: (error) => {
4631
- showApiErrorNotification(error);
4632
- }
4633
- });
4634
- }
4635
-
4636
- // src/hooks/projects/useProjectRealtime.ts
4637
4237
  var noopSSEManager = {
4638
4238
  subscribe: () => () => {
4639
4239
  },
@@ -4700,4 +4300,4 @@ function useProjectRealtime(projectId) {
4700
4300
  });
4701
4301
  }
4702
4302
 
4703
- export { ApiKeyService, CredentialSchemas, CredentialService, DeploymentService, MEMBERSHIP_STATUS_COLORS, OperationsService, OrganizationMembershipService, WebhookEndpointService, acquisitionListKeys, companyKeys, contactKeys, dealKeys, dealNoteKeys, dealTaskKeys, executionsKeys, filterByDomainFilters, isSessionCapable, milestoneKeys, noteKeys, operationsKeys, projectActivityKeys, projectKeys, requestsKeys, scheduleKeys, sessionsKeys, showApiErrorNotification, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification, sortData, taskKeys, transformMembershipToTableRow, 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, useCreateList, useCreateMilestone, useCreateNote, useCreateProject, useCreateSchedule, useCreateSession, useCreateTask, useCreateWebhookEndpoint, useCredentials, useDashboardMetrics, useDeactivateDeployment, useDeactivateMembership, useDealDetail, useDealNotes, useDealTasks, useDealTasksDue, useDeals, useDeleteApiKey, useDeleteCompanies, useDeleteContacts, useDeleteCredential, useDeleteDeal, useDeleteDeployment, useDeleteExecution, useDeleteList, useDeleteMilestone, useDeleteProject, useDeleteSchedule, useDeleteSession, useDeleteTask, useDeleteTask2, useDeleteWebhookEndpoint, 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, 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, useUpdateList, useUpdateListConfig, useUpdateMemberConfig, useUpdateMilestone, useUpdateProject, useUpdateRequestStatus, useUpdateSchedule, useUpdateTask, useUpdateWebhookEndpoint, useUserMemberships, useVisibleResources, useWarningNotification };
4303
+ export { ApiKeyService, CredentialSchemas, CredentialService, DeploymentService, MEMBERSHIP_STATUS_COLORS, OperationsService, OrganizationMembershipService, WebhookEndpointService, acquisitionListKeys, companyKeys, contactKeys, dealKeys, dealNoteKeys, dealTaskKeys, executionsKeys, filterByDomainFilters, isSessionCapable, operationsKeys, projectActivityKeys, requestsKeys, scheduleKeys, sessionsKeys, sortData, transformMembershipToTableRow, 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, useCreateList, useCreateSchedule, useCreateSession, useCreateWebhookEndpoint, useCredentials, useDashboardMetrics, useDeactivateDeployment, useDeactivateMembership, useDealDetail, useDealNotes, useDealTasks, useDealTasksDue, useDeals, useDeleteApiKey, useDeleteCompanies, useDeleteContacts, useDeleteCredential, useDeleteDeal, useDeleteDeployment, useDeleteExecution, useDeleteList, useDeleteSchedule, useDeleteSession, useDeleteTask, useDeleteWebhookEndpoint, 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, useNotificationCount, useNotifications, useOrganizationMembers, usePaginationState, usePatchTask, usePauseSchedule, useProjectActivities, useProjectRealtime, 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, useTestNotification, useTimeRangeDates, useTopFailingResources, useUnresolveError, useUnresolvedErrors, useUpdateAnchor, useUpdateApiKey, useUpdateCompany, useUpdateContact, useUpdateCredential, useUpdateList, useUpdateListConfig, useUpdateMemberConfig, useUpdateRequestStatus, useUpdateSchedule, useUpdateWebhookEndpoint, useUserMemberships, useVisibleResources, useWarningNotification };
@@ -1,4 +1,4 @@
1
- import { useInitialization } from './chunk-TUXTSEAF.js';
1
+ import { useInitialization } from './chunk-DK2HVHCY.js';
2
2
  import { useAuthContext } from './chunk-BRJ3QZ4E.js';
3
3
  import { useRef, useCallback, useEffect } from 'react';
4
4
  import { useQueryClient } from '@tanstack/react-query';
@@ -1,13 +1,12 @@
1
+ import { CyberAreaChart, CostTrendChart, ActivityTrendChart } from './chunk-MJ6YV2B5.js';
2
+ import { AppShellLoader } from './chunk-M25JL54Z.js';
1
3
  import { FilterBar } from './chunk-PDHTXPSF.js';
2
4
  import { CustomModal } from './chunk-GBMNCNHX.js';
3
- import { CyberAreaChart, CostTrendChart, ActivityTrendChart } from './chunk-STZJ7SY5.js';
4
- import { AppShellLoader } from './chunk-M25JL54Z.js';
5
- import { formatDuration } from './chunk-GHIPBT5V.js';
6
- import { useResolveError, useResolveAllErrors, usePaginationState, useErrorDetails, useMarkAsRead, useExecutionLogsFilters, useExecutionLogs, useExecutionHealth, useErrorAnalysis, useTimeRangeDates, useErrorDetail, useResolveErrorsByExecution, useResources, useCostTrends, useCostSummary, useCostByModel, useCostBreakdown, useActivityFilters, useActivityTrend, useActivities, useNotifications, useMarkAllAsRead, useTestNotification } from './chunk-F4VHHW4O.js';
7
- import { formatBucketTime, getTimeRangeDates } from './chunk-LXHZYSMQ.js';
8
- import { CenteredErrorState, CardHeader, StatsCardSkeleton, TrendIndicator, DetailCardSkeleton, EmptyState, PageTitleCaption, JsonViewer } from './chunk-SQQGLGHW.js';
9
- import { PAGE_SIZE_DEFAULT } from './chunk-IOKL7BKE.js';
5
+ import { formatDuration } from './chunk-E4WQGJNS.js';
6
+ import { useResolveError, useResolveAllErrors, usePaginationState, useErrorDetails, useMarkAsRead, useExecutionLogsFilters, useExecutionLogs, useExecutionHealth, useErrorAnalysis, useTimeRangeDates, useErrorDetail, useResolveErrorsByExecution, useResources, useCostTrends, useCostSummary, useCostByModel, useCostBreakdown, useActivityFilters, useActivityTrend, useActivities, useNotifications, useMarkAllAsRead, useTestNotification } from './chunk-R7GKX4HW.js';
7
+ import { CenteredErrorState, CardHeader, StatsCardSkeleton, TrendIndicator, DetailCardSkeleton, EmptyState, PageTitleCaption, JsonViewer } from './chunk-TTP62HWW.js';
10
8
  import { useRouterContext } from './chunk-Q7DJKLEN.js';
9
+ import { formatBucketTime, PAGE_SIZE_DEFAULT, getTimeRangeDates } from './chunk-GCBWGGI6.js';
11
10
  import { useState, useMemo, useCallback } from 'react';
12
11
  import { Table, Text, Badge, Tooltip, Card, Group, Select, SegmentedControl, Button, TextInput, Stack, Paper, Center, Loader, ActionIcon, NumberFormatter, Box, Alert, Switch, Pagination, UnstyledButton, Title, Divider, Code, CopyButton, Accordion } from '@mantine/core';
13
12
  import { IconActivity, IconFilterOff, IconCircleCheck, IconThumbDown, IconThumbUp, IconClock, IconCircleX, IconSearch, IconArrowUpRight, IconAlertTriangle, IconAlertCircle, IconExternalLink, IconChartPie, IconHeartbeat, IconDownload, IconCpu, IconTrendingUp, IconChartBar, IconCash, IconInfoCircle, IconExclamationCircle, IconBug, IconChecks, IconCircle, IconCircleFilled, IconCheck, IconCopy, IconCircleDashed, IconPlus, IconArrowUp, IconArrowDown, IconFileOff, IconRobot, IconKey, IconUser } from '@tabler/icons-react';
@@ -1,8 +1,8 @@
1
1
  import { StyledMarkdown } from './chunk-3KMDHCAR.js';
2
- import { ResourceStatusColors } from './chunk-ELJIFLCB.js';
3
- import { getErrorInfo, getErrorTitle, getResourceIcon, formatTimeAgo } from './chunk-IOKL7BKE.js';
4
- import { useAuthContext } from './chunk-BRJ3QZ4E.js';
5
2
  import { useRouterContext } from './chunk-Q7DJKLEN.js';
3
+ import { getErrorInfo, getErrorTitle, getResourceIcon, formatTimeAgo } from './chunk-GCBWGGI6.js';
4
+ import { ResourceStatusColors } from './chunk-KRWALB24.js';
5
+ import { useAuthContext } from './chunk-BRJ3QZ4E.js';
6
6
  import { Center, Stack, Title, Text, Button, Box, Loader, Badge, Group, Collapse, ScrollArea, Card, Select, Alert, Code, ThemeIcon, Paper, Grid, Timeline, Space } from '@mantine/core';
7
7
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
8
8
  import { IconMinus, IconTrendingUp, IconTrendingDown, IconChevronUp, IconChevronDown, IconAlertCircle, IconClock, IconInfoCircle, IconBan, IconChevronRight, IconInbox, IconHeartHandshake, IconUserOff, IconMailForward, IconBell, IconCalendarEvent, IconCalendarCancel, IconMessageReply, IconCircleCheck, IconCreditCard, IconX, IconEye, IconSend, IconFileText, IconArrowRight, IconPlus, IconActivity } from '@tabler/icons-react';
@@ -1,4 +1,4 @@
1
- import { APIClientError } from './chunk-IOKL7BKE.js';
1
+ import { APIClientError } from './chunk-GCBWGGI6.js';
2
2
  import { OrganizationContext } from './chunk-DD3CCMCZ.js';
3
3
  import { createContext, useContext, useMemo, useCallback } from 'react';
4
4
  import { jsx } from 'react/jsx-runtime';