@elevasis/ui 1.7.5 → 1.8.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/api/index.js +2 -3
- package/dist/auth/index.js +3 -4
- package/dist/charts/index.js +6 -8
- package/dist/{chunk-SFF5MJEI.js → chunk-2YBPRE6H.js} +1 -2
- package/dist/{chunk-U34YGJQB.js → chunk-3I2LOKQU.js} +1 -1
- package/dist/{chunk-PVVQTENF.js → chunk-3PURTICE.js} +1 -1
- package/dist/{chunk-2JBWPFHF.js → chunk-6TMW6VQ2.js} +1 -1
- package/dist/{chunk-6HZAMY6T.js → chunk-ARZM3OTI.js} +6 -2
- package/dist/{chunk-OK3XFSJJ.js → chunk-BWZMI4KP.js} +963 -10
- package/dist/{chunk-4KPI7YCY.js → chunk-EHXOR5LA.js} +2 -3
- package/dist/{chunk-Y7UY3HI4.js → chunk-ESOQEOOX.js} +2 -2
- package/dist/{chunk-L2CM2CUA.js → chunk-GZVH423C.js} +26 -3
- package/dist/{chunk-Y6DNK5ZD.js → chunk-JRJW2H57.js} +35 -9
- package/dist/{chunk-LBPALY25.js → chunk-JUPCUF77.js} +2 -2
- package/dist/chunk-QWYJHM3S.js +1068 -0
- package/dist/{chunk-NEK6JKPW.js → chunk-WUQWCUCB.js} +1 -1
- package/dist/chunk-Z4TPHMRD.js +231 -0
- package/dist/components/index.css +65 -0
- package/dist/components/index.d.ts +261 -2
- package/dist/components/index.js +1136 -80
- package/dist/hooks/index.css +452 -0
- package/dist/hooks/index.d.ts +1831 -13
- package/dist/hooks/index.js +15 -6
- package/dist/hooks/published.css +452 -0
- package/dist/hooks/published.d.ts +866 -6
- package/dist/hooks/published.js +15 -370
- package/dist/index.css +3 -0
- package/dist/index.d.ts +1665 -2
- package/dist/index.js +14 -17
- package/dist/initialization/index.js +3 -4
- package/dist/organization/index.js +3 -4
- package/dist/profile/index.js +1 -2
- package/dist/provider/index.css +3 -0
- package/dist/provider/index.js +7 -10
- package/dist/provider/published.js +6 -9
- package/dist/utils/index.d.ts +92 -1
- package/dist/utils/index.js +1 -2
- package/package.json +7 -3
- package/dist/chunk-4VGWQ5AN.js +0 -91
- package/dist/chunk-KA7LO7U5.js +0 -28
- package/dist/chunk-LFYO3MDC.js +0 -58
- package/dist/chunk-TIRMFDM4.js +0 -33
- package/dist/chunk-TYV5NJV2.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useProfile } from './chunk-
|
|
1
|
+
import { useProfile } from './chunk-GZVH423C.js';
|
|
2
2
|
import { useOrganization } from './chunk-DD3CCMCZ.js';
|
|
3
3
|
import { useAuthContext } from './chunk-7PLEQFHO.js';
|
|
4
4
|
import { createContext, useContext, useMemo, useCallback, createElement } from 'react';
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { IconUser, IconExternalLink, IconPlug, IconBolt, IconGitBranch, IconBrain } from '@tabler/icons-react';
|
|
2
|
+
|
|
3
|
+
// src/utils/formatDate.ts
|
|
4
|
+
var formatDate = (dateString) => {
|
|
5
|
+
const date = new Date(dateString);
|
|
6
|
+
return date.toLocaleDateString("en-US", {
|
|
7
|
+
year: "numeric",
|
|
8
|
+
month: "long",
|
|
9
|
+
day: "numeric",
|
|
10
|
+
hour: "2-digit",
|
|
11
|
+
minute: "2-digit"
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
// src/utils/validateEmail.ts
|
|
16
|
+
var validateEmail = (email) => {
|
|
17
|
+
return /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+$/.test(email);
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
// src/utils/error-utils.ts
|
|
21
|
+
var APIClientError = class extends Error {
|
|
22
|
+
statusCode;
|
|
23
|
+
code;
|
|
24
|
+
requestId;
|
|
25
|
+
fields;
|
|
26
|
+
retryAfter;
|
|
27
|
+
constructor(message, code, statusCode, requestId, fields, retryAfter) {
|
|
28
|
+
super(message);
|
|
29
|
+
this.name = "APIClientError";
|
|
30
|
+
this.code = code;
|
|
31
|
+
this.statusCode = statusCode;
|
|
32
|
+
this.requestId = requestId;
|
|
33
|
+
this.fields = fields;
|
|
34
|
+
this.retryAfter = retryAfter;
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
function isAPIClientError(error) {
|
|
38
|
+
return error instanceof APIClientError;
|
|
39
|
+
}
|
|
40
|
+
function getErrorInfo(error) {
|
|
41
|
+
if (isAPIClientError(error)) {
|
|
42
|
+
return {
|
|
43
|
+
message: error.message,
|
|
44
|
+
code: error.code,
|
|
45
|
+
requestId: error.requestId,
|
|
46
|
+
statusCode: error.statusCode,
|
|
47
|
+
fields: error.fields,
|
|
48
|
+
retryAfter: error.retryAfter
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
if (error instanceof Error) {
|
|
52
|
+
return {
|
|
53
|
+
message: error.message
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
message: String(error)
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function getErrorTitle(code) {
|
|
61
|
+
if (!code) return "Error";
|
|
62
|
+
switch (code) {
|
|
63
|
+
case "VALIDATION_ERROR":
|
|
64
|
+
return "Validation Error";
|
|
65
|
+
case "AUTHENTICATION_FAILED":
|
|
66
|
+
return "Authentication Required";
|
|
67
|
+
case "FORBIDDEN":
|
|
68
|
+
return "Access Denied";
|
|
69
|
+
case "NOT_FOUND":
|
|
70
|
+
return "Not Found";
|
|
71
|
+
case "CONFLICT":
|
|
72
|
+
return "Conflict";
|
|
73
|
+
case "RATE_LIMIT_EXCEEDED":
|
|
74
|
+
return "Rate Limit Exceeded";
|
|
75
|
+
case "INTERNAL_SERVER_ERROR":
|
|
76
|
+
return "Server Error";
|
|
77
|
+
case "SERVICE_UNAVAILABLE":
|
|
78
|
+
return "Service Temporarily Unavailable";
|
|
79
|
+
default:
|
|
80
|
+
return "Error";
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function formatErrorMessage(message, requestId, fields, retryAfter) {
|
|
84
|
+
let formatted = message;
|
|
85
|
+
if (fields && Object.keys(fields).length > 0) {
|
|
86
|
+
const fieldErrors = [];
|
|
87
|
+
for (const [field, errors] of Object.entries(fields)) {
|
|
88
|
+
const fieldName = field === "root" || field === "_root" ? "Request" : field;
|
|
89
|
+
errors.forEach((error) => {
|
|
90
|
+
fieldErrors.push(`\u2022 ${fieldName}: ${error}`);
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
if (fieldErrors.length > 0) {
|
|
94
|
+
formatted = fieldErrors.join("\n");
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (retryAfter) {
|
|
98
|
+
formatted += `
|
|
99
|
+
|
|
100
|
+
Please wait ${retryAfter} seconds before retrying.`;
|
|
101
|
+
}
|
|
102
|
+
if (requestId) {
|
|
103
|
+
formatted += `
|
|
104
|
+
|
|
105
|
+
Request ID: ${requestId}`;
|
|
106
|
+
}
|
|
107
|
+
return formatted;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// ../core/src/platform/registry/resource-metadata.ts
|
|
111
|
+
var resourceTypeIconNames = {
|
|
112
|
+
agent: "IconBrain",
|
|
113
|
+
workflow: "IconGitBranch",
|
|
114
|
+
trigger: "IconBolt",
|
|
115
|
+
integration: "IconPlug",
|
|
116
|
+
external: "IconExternalLink",
|
|
117
|
+
human: "IconUser"
|
|
118
|
+
};
|
|
119
|
+
var resourceTypeColors = {
|
|
120
|
+
agent: "violet",
|
|
121
|
+
workflow: "blue",
|
|
122
|
+
trigger: "orange",
|
|
123
|
+
integration: "teal",
|
|
124
|
+
external: "gray",
|
|
125
|
+
human: "yellow"
|
|
126
|
+
};
|
|
127
|
+
function getResourceIconName(type) {
|
|
128
|
+
return resourceTypeIconNames[type];
|
|
129
|
+
}
|
|
130
|
+
function getResourceColor(type) {
|
|
131
|
+
return resourceTypeColors[type];
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// src/utils/resource-icons.tsx
|
|
135
|
+
var iconNameToComponent = {
|
|
136
|
+
IconBrain,
|
|
137
|
+
IconGitBranch,
|
|
138
|
+
IconBolt,
|
|
139
|
+
IconPlug,
|
|
140
|
+
IconExternalLink,
|
|
141
|
+
IconUser
|
|
142
|
+
};
|
|
143
|
+
function getResourceIcon(type) {
|
|
144
|
+
const iconName = getResourceIconName(type);
|
|
145
|
+
return iconNameToComponent[iconName];
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// src/utils/constants/cache.ts
|
|
149
|
+
var STALE_TIME_MONITORING = 3e4;
|
|
150
|
+
var STALE_TIME_ADMIN = 6e4;
|
|
151
|
+
var STALE_TIME_DEFAULT = 3e5;
|
|
152
|
+
var GC_TIME_SHORT = 3e5;
|
|
153
|
+
var GC_TIME_MEDIUM = 6e5;
|
|
154
|
+
var GC_TIME_LONG = 18e5;
|
|
155
|
+
|
|
156
|
+
// src/utils/constants/polling.ts
|
|
157
|
+
var REFETCH_INTERVAL_DASHBOARD = 6e4;
|
|
158
|
+
var REFETCH_INTERVAL_REALTIME = 3e4;
|
|
159
|
+
var REFETCH_INTERVAL_RUNNING = 2e3;
|
|
160
|
+
var REFETCH_INTERVAL_RUNNING_FAST = 1e3;
|
|
161
|
+
|
|
162
|
+
// src/utils/constants/reconnection.ts
|
|
163
|
+
var SSE_TOKEN_REFRESH_DELAY = 2e3;
|
|
164
|
+
var SSE_CLOSE_GRACE_PERIOD = 5e3;
|
|
165
|
+
var WS_RECONNECT_BASE_DELAY = 1e3;
|
|
166
|
+
var WS_RECONNECT_MAX_DELAY = 3e4;
|
|
167
|
+
var WS_MAX_RETRIES_BEFORE_ERROR = 3;
|
|
168
|
+
|
|
169
|
+
// src/utils/constants/ui.ts
|
|
170
|
+
var PAGE_SIZE_DEFAULT = 20;
|
|
171
|
+
var LIMIT_ACTIVITY_FEED = 50;
|
|
172
|
+
var DEBOUNCE_FILTER = 150;
|
|
173
|
+
var DEBOUNCE_SLIDER = 500;
|
|
174
|
+
var OAUTH_POPUP_CHECK_INTERVAL = 500;
|
|
175
|
+
var OAUTH_FLOW_TIMEOUT = 3e5;
|
|
176
|
+
|
|
177
|
+
// src/utils/dateFormatters.ts
|
|
178
|
+
function formatDateTime(dateString) {
|
|
179
|
+
if (!dateString) return "Never";
|
|
180
|
+
const date = new Date(dateString);
|
|
181
|
+
return date.toLocaleDateString("en-US", {
|
|
182
|
+
year: "numeric",
|
|
183
|
+
month: "short",
|
|
184
|
+
day: "numeric",
|
|
185
|
+
hour: "2-digit",
|
|
186
|
+
minute: "2-digit"
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
function formatChartAxisDate(dateString) {
|
|
190
|
+
if (!dateString) return "";
|
|
191
|
+
const date = new Date(dateString);
|
|
192
|
+
const month = date.getMonth() + 1;
|
|
193
|
+
const day = date.getDate();
|
|
194
|
+
const hour = date.getHours();
|
|
195
|
+
const period = hour >= 12 ? "PM" : "AM";
|
|
196
|
+
const hour12 = hour % 12 || 12;
|
|
197
|
+
return `${month}/${day}, ${hour12}${period}`;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
// src/utils/suppress-warnings.ts
|
|
201
|
+
var SUPPRESSED_WARNINGS = [
|
|
202
|
+
// Mantine SegmentedControl data-orientation deprecation warnings
|
|
203
|
+
/Unsupported style property.*data-orientation/i,
|
|
204
|
+
/Did you mean.*dataOrientation/i,
|
|
205
|
+
// Recharts/Mantine Charts dimension warnings (charts work fine after layout completes)
|
|
206
|
+
/The width\(-1\) and height\(-1\) of chart should be greater than 0/i
|
|
207
|
+
];
|
|
208
|
+
var originalConsoleError = console.error;
|
|
209
|
+
var originalConsoleWarn = console.warn;
|
|
210
|
+
function suppressKnownWarnings() {
|
|
211
|
+
console.error = (...args) => {
|
|
212
|
+
const message = args.join(" ");
|
|
213
|
+
const shouldSuppress = SUPPRESSED_WARNINGS.some((pattern) => pattern.test(message));
|
|
214
|
+
if (!shouldSuppress) {
|
|
215
|
+
originalConsoleError(...args);
|
|
216
|
+
}
|
|
217
|
+
};
|
|
218
|
+
console.warn = (...args) => {
|
|
219
|
+
const message = args.join(" ");
|
|
220
|
+
const shouldSuppress = SUPPRESSED_WARNINGS.some((pattern) => pattern.test(message));
|
|
221
|
+
if (!shouldSuppress) {
|
|
222
|
+
originalConsoleWarn(...args);
|
|
223
|
+
}
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
function restoreConsole() {
|
|
227
|
+
console.error = originalConsoleError;
|
|
228
|
+
console.warn = originalConsoleWarn;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
export { APIClientError, DEBOUNCE_FILTER, DEBOUNCE_SLIDER, GC_TIME_LONG, GC_TIME_MEDIUM, GC_TIME_SHORT, LIMIT_ACTIVITY_FEED, OAUTH_FLOW_TIMEOUT, OAUTH_POPUP_CHECK_INTERVAL, PAGE_SIZE_DEFAULT, REFETCH_INTERVAL_DASHBOARD, REFETCH_INTERVAL_REALTIME, REFETCH_INTERVAL_RUNNING, REFETCH_INTERVAL_RUNNING_FAST, SSE_CLOSE_GRACE_PERIOD, SSE_TOKEN_REFRESH_DELAY, STALE_TIME_ADMIN, STALE_TIME_DEFAULT, STALE_TIME_MONITORING, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, formatChartAxisDate, formatDate, formatDateTime, formatErrorMessage, getErrorInfo, getErrorTitle, getResourceColor, getResourceIcon, isAPIClientError, restoreConsole, suppressKnownWarnings, validateEmail };
|
|
@@ -111,6 +111,71 @@
|
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
113
|
|
|
114
|
+
/* src/theme/custom.css */
|
|
115
|
+
.mantine-Accordion-control:hover {
|
|
116
|
+
background-color: var(--color-surface-hover);
|
|
117
|
+
}
|
|
118
|
+
.mantine-Menu-item:hover:not([data-disabled]) {
|
|
119
|
+
background-color: var(--color-surface-hover);
|
|
120
|
+
}
|
|
121
|
+
.mantine-Select-option:hover {
|
|
122
|
+
background-color: var(--color-surface-hover) !important;
|
|
123
|
+
}
|
|
124
|
+
[data-mantine-color-scheme=dark] .mantine-Tabs-root {
|
|
125
|
+
--tab-border-color: var(--color-border);
|
|
126
|
+
}
|
|
127
|
+
.mantine-Tabs-tab:hover {
|
|
128
|
+
background-color: var(--color-surface-hover);
|
|
129
|
+
}
|
|
130
|
+
.mantine-Pagination-control:not([data-active]) {
|
|
131
|
+
background: var(--color-surface);
|
|
132
|
+
}
|
|
133
|
+
::-webkit-scrollbar {
|
|
134
|
+
width: 5px;
|
|
135
|
+
height: 5px;
|
|
136
|
+
}
|
|
137
|
+
::-webkit-scrollbar-track {
|
|
138
|
+
background: transparent;
|
|
139
|
+
}
|
|
140
|
+
::-webkit-scrollbar-thumb {
|
|
141
|
+
background: color-mix(in srgb, var(--color-text-subtle) 50%, var(--color-border));
|
|
142
|
+
border-radius: 4px;
|
|
143
|
+
}
|
|
144
|
+
::-webkit-scrollbar-thumb:hover {
|
|
145
|
+
background: var(--color-text-subtle);
|
|
146
|
+
}
|
|
147
|
+
.mantine-Skeleton-root[data-visible]::after {
|
|
148
|
+
background-color: color-mix(in srgb, var(--color-text-subtle) 30%, var(--color-surface)) !important;
|
|
149
|
+
}
|
|
150
|
+
.mantine-Checkbox-input {
|
|
151
|
+
background-color: var(--color-surface);
|
|
152
|
+
border-color: var(--color-border);
|
|
153
|
+
}
|
|
154
|
+
.mantine-Checkbox-input:checked {
|
|
155
|
+
background-color: var(--color-primary);
|
|
156
|
+
border-color: var(--color-primary);
|
|
157
|
+
}
|
|
158
|
+
.mantine-Switch-root:has(input:not(:checked)) .mantine-Switch-track {
|
|
159
|
+
background-color: var(--color-surface-hover);
|
|
160
|
+
border-color: var(--color-border);
|
|
161
|
+
}
|
|
162
|
+
.mantine-Timeline-root {
|
|
163
|
+
--tl-color: var(--color-primary);
|
|
164
|
+
}
|
|
165
|
+
.mantine-Timeline-item {
|
|
166
|
+
--item-border-color: var(--color-border);
|
|
167
|
+
}
|
|
168
|
+
.mantine-Timeline-itemBullet {
|
|
169
|
+
border-color: var(--color-border);
|
|
170
|
+
}
|
|
171
|
+
.mantine-Timeline-itemBullet:where([data-with-child]) {
|
|
172
|
+
background-color: var(--color-primary);
|
|
173
|
+
border-color: var(--color-primary);
|
|
174
|
+
}
|
|
175
|
+
.recharts-surface:focus {
|
|
176
|
+
outline: none;
|
|
177
|
+
}
|
|
178
|
+
|
|
114
179
|
/* src/graph/Graph.module.css */
|
|
115
180
|
@keyframes edgeFlow {
|
|
116
181
|
0% {
|
|
@@ -1009,6 +1009,72 @@ interface NotificationDTO {
|
|
|
1009
1009
|
* Time range selector for dashboard metrics
|
|
1010
1010
|
*/
|
|
1011
1011
|
type TimeRange = '1h' | '24h' | '7d' | '30d';
|
|
1012
|
+
/**
|
|
1013
|
+
* Execution health metrics response
|
|
1014
|
+
* Success rate, P95 duration, execution counts, and trend data
|
|
1015
|
+
* trendData includes executionCount for throughput visualization (eliminates separate API call)
|
|
1016
|
+
*/
|
|
1017
|
+
interface ExecutionHealthMetrics {
|
|
1018
|
+
successRate: number;
|
|
1019
|
+
p95Duration: number;
|
|
1020
|
+
totalExecutions: number;
|
|
1021
|
+
trendData: Array<{
|
|
1022
|
+
time: string;
|
|
1023
|
+
rate: number;
|
|
1024
|
+
successCount: number;
|
|
1025
|
+
errorCount: number;
|
|
1026
|
+
warningCount: number;
|
|
1027
|
+
executionCount: number;
|
|
1028
|
+
}>;
|
|
1029
|
+
statusCounts: {
|
|
1030
|
+
success: number;
|
|
1031
|
+
failed: number;
|
|
1032
|
+
pending: number;
|
|
1033
|
+
warning: number;
|
|
1034
|
+
};
|
|
1035
|
+
peakPeriod: string;
|
|
1036
|
+
granularity: 'hour' | 'day';
|
|
1037
|
+
}
|
|
1038
|
+
/**
|
|
1039
|
+
* Error analysis metrics response
|
|
1040
|
+
* Error categories and top failing resources
|
|
1041
|
+
*/
|
|
1042
|
+
interface ErrorAnalysisMetrics {
|
|
1043
|
+
totalErrors: number;
|
|
1044
|
+
errorsByCategory: Array<{
|
|
1045
|
+
category: string;
|
|
1046
|
+
count: number;
|
|
1047
|
+
percentage: number;
|
|
1048
|
+
}>;
|
|
1049
|
+
topFailingResources: Array<{
|
|
1050
|
+
resourceId: string;
|
|
1051
|
+
name: string;
|
|
1052
|
+
errorCount: number;
|
|
1053
|
+
failureRate: number;
|
|
1054
|
+
}>;
|
|
1055
|
+
}
|
|
1056
|
+
/**
|
|
1057
|
+
* Business impact metrics response
|
|
1058
|
+
* ROI, labor savings, and cost analysis
|
|
1059
|
+
*/
|
|
1060
|
+
interface BusinessImpactMetrics {
|
|
1061
|
+
totalSavingsUsd: number;
|
|
1062
|
+
totalCostUsd: number;
|
|
1063
|
+
netSavingsUsd: number;
|
|
1064
|
+
roi: number;
|
|
1065
|
+
}
|
|
1066
|
+
/**
|
|
1067
|
+
* Cost breakdown metrics response
|
|
1068
|
+
* Per-resource cost analysis
|
|
1069
|
+
*/
|
|
1070
|
+
interface CostBreakdownMetrics {
|
|
1071
|
+
resources: Array<{
|
|
1072
|
+
resourceId: string;
|
|
1073
|
+
totalCostUsd: number;
|
|
1074
|
+
executionCount: number;
|
|
1075
|
+
avgCostUsd: number;
|
|
1076
|
+
}>;
|
|
1077
|
+
}
|
|
1012
1078
|
/** Time-bucketed health data point */
|
|
1013
1079
|
interface ResourceHealthDataPoint {
|
|
1014
1080
|
time: string;
|
|
@@ -1028,6 +1094,69 @@ interface ResourceHealth {
|
|
|
1028
1094
|
successRate: number;
|
|
1029
1095
|
};
|
|
1030
1096
|
}
|
|
1097
|
+
/**
|
|
1098
|
+
* Cost trend data point for time-series charts
|
|
1099
|
+
* Represents a single time bucket (hour or day)
|
|
1100
|
+
*/
|
|
1101
|
+
interface CostTrendDataPoint {
|
|
1102
|
+
time: string;
|
|
1103
|
+
totalCostUsd: number;
|
|
1104
|
+
executionCount: number;
|
|
1105
|
+
avgCostPerExecution: number;
|
|
1106
|
+
}
|
|
1107
|
+
/**
|
|
1108
|
+
* Cost trends response (time-series data)
|
|
1109
|
+
*/
|
|
1110
|
+
interface CostTrendsResponse {
|
|
1111
|
+
trendData: CostTrendDataPoint[];
|
|
1112
|
+
granularity: 'hour' | 'day';
|
|
1113
|
+
totalCostUsd: number;
|
|
1114
|
+
totalExecutions: number;
|
|
1115
|
+
}
|
|
1116
|
+
/**
|
|
1117
|
+
* Cost summary response with MTD and projections
|
|
1118
|
+
*/
|
|
1119
|
+
interface CostSummaryResponse {
|
|
1120
|
+
current: {
|
|
1121
|
+
totalCostUsd: number;
|
|
1122
|
+
executionCount: number;
|
|
1123
|
+
};
|
|
1124
|
+
previous: {
|
|
1125
|
+
totalCostUsd: number;
|
|
1126
|
+
executionCount: number;
|
|
1127
|
+
};
|
|
1128
|
+
mtd: {
|
|
1129
|
+
totalCostUsd: number;
|
|
1130
|
+
daysElapsed: number;
|
|
1131
|
+
};
|
|
1132
|
+
projection: {
|
|
1133
|
+
monthlyCostUsd: number;
|
|
1134
|
+
confidence: 'low' | 'medium' | 'high';
|
|
1135
|
+
};
|
|
1136
|
+
trend: {
|
|
1137
|
+
changePercent: number;
|
|
1138
|
+
direction: 'up' | 'down' | 'flat';
|
|
1139
|
+
};
|
|
1140
|
+
}
|
|
1141
|
+
/**
|
|
1142
|
+
* Cost by model data for model-level breakdown
|
|
1143
|
+
*/
|
|
1144
|
+
interface CostByModelData {
|
|
1145
|
+
model: string;
|
|
1146
|
+
totalCostUsd: number;
|
|
1147
|
+
callCount: number;
|
|
1148
|
+
totalInputTokens: number;
|
|
1149
|
+
totalOutputTokens: number;
|
|
1150
|
+
avgCostPerCall: number;
|
|
1151
|
+
}
|
|
1152
|
+
/**
|
|
1153
|
+
* Cost by model response
|
|
1154
|
+
*/
|
|
1155
|
+
interface CostByModelResponse {
|
|
1156
|
+
models: CostByModelData[];
|
|
1157
|
+
totalCostUsd: number;
|
|
1158
|
+
totalCallCount: number;
|
|
1159
|
+
}
|
|
1031
1160
|
|
|
1032
1161
|
/**
|
|
1033
1162
|
* Base Execution Engine type definitions
|
|
@@ -1126,6 +1255,25 @@ type ExecutionStatus = 'pending' | 'running' | 'completed' | 'failed' | 'warning
|
|
|
1126
1255
|
*/
|
|
1127
1256
|
type NodeColorType = 'violet' | 'blue' | 'orange' | 'teal' | 'gray' | 'yellow';
|
|
1128
1257
|
|
|
1258
|
+
type ActivityType = 'workflow_execution' | 'agent_run' | 'hitl_action' | 'webhook_received' | 'webhook_executed' | 'webhook_failed' | 'credential_change' | 'api_key_change' | 'deployment_change' | 'membership_change';
|
|
1259
|
+
type ActivityStatus = 'success' | 'failure' | 'pending' | 'approved' | 'rejected' | 'completed';
|
|
1260
|
+
interface Activity {
|
|
1261
|
+
id: string;
|
|
1262
|
+
organizationId: string;
|
|
1263
|
+
activityType: ActivityType;
|
|
1264
|
+
status: ActivityStatus;
|
|
1265
|
+
title: string;
|
|
1266
|
+
description: string | null;
|
|
1267
|
+
entityType: string;
|
|
1268
|
+
entityId: string;
|
|
1269
|
+
entityName: string | null;
|
|
1270
|
+
metadata: Record<string, unknown> | null;
|
|
1271
|
+
actorId: string | null;
|
|
1272
|
+
actorType: string | null;
|
|
1273
|
+
occurredAt: Date;
|
|
1274
|
+
createdAt: Date;
|
|
1275
|
+
}
|
|
1276
|
+
|
|
1129
1277
|
/**
|
|
1130
1278
|
* Execution Runner Types
|
|
1131
1279
|
*
|
|
@@ -1265,6 +1413,18 @@ interface SortState {
|
|
|
1265
1413
|
direction: SortDirection;
|
|
1266
1414
|
}
|
|
1267
1415
|
|
|
1416
|
+
interface ActivityFilters$1 {
|
|
1417
|
+
activityType?: ActivityType | 'all';
|
|
1418
|
+
status?: ActivityStatus | 'all';
|
|
1419
|
+
search?: string;
|
|
1420
|
+
}
|
|
1421
|
+
|
|
1422
|
+
interface ExecutionLogsFilters$1 {
|
|
1423
|
+
resourceId: string | undefined;
|
|
1424
|
+
status: 'all' | ExecutionStatus;
|
|
1425
|
+
resourceStatus: 'all' | 'dev' | 'prod';
|
|
1426
|
+
}
|
|
1427
|
+
|
|
1268
1428
|
interface SortableHeaderProps {
|
|
1269
1429
|
column: string;
|
|
1270
1430
|
children: React.ReactNode;
|
|
@@ -1346,6 +1506,105 @@ interface ResourceHealthPanelProps {
|
|
|
1346
1506
|
}
|
|
1347
1507
|
declare function ResourceHealthPanel({ resourceId, resourceType, timeRange }: ResourceHealthPanelProps): react_jsx_runtime.JSX.Element;
|
|
1348
1508
|
|
|
1509
|
+
interface ActivityTableProps {
|
|
1510
|
+
activities: Activity[];
|
|
1511
|
+
isLoading: boolean;
|
|
1512
|
+
onRowClick?: (activity: Activity) => void;
|
|
1513
|
+
}
|
|
1514
|
+
declare function ActivityTable({ activities, isLoading, onRowClick }: ActivityTableProps): react_jsx_runtime.JSX.Element;
|
|
1515
|
+
|
|
1516
|
+
interface ActivityFiltersProps {
|
|
1517
|
+
filters: ActivityFilters$1;
|
|
1518
|
+
onFilterChange: <K extends keyof ActivityFilters$1>(key: K, value: ActivityFilters$1[K]) => void;
|
|
1519
|
+
onReset: () => void;
|
|
1520
|
+
}
|
|
1521
|
+
declare function ActivityFilters({ filters, onFilterChange, onReset }: ActivityFiltersProps): react_jsx_runtime.JSX.Element;
|
|
1522
|
+
|
|
1523
|
+
interface ActivityCardProps {
|
|
1524
|
+
activity: Activity;
|
|
1525
|
+
}
|
|
1526
|
+
declare function ActivityCard({ activity }: ActivityCardProps): react_jsx_runtime.JSX.Element;
|
|
1527
|
+
|
|
1528
|
+
interface ErrorAnalysisCardProps {
|
|
1529
|
+
data?: ErrorAnalysisMetrics;
|
|
1530
|
+
isLoading: boolean;
|
|
1531
|
+
error: Error | null;
|
|
1532
|
+
}
|
|
1533
|
+
declare function ErrorAnalysisCard({ data, isLoading, error }: ErrorAnalysisCardProps): react_jsx_runtime.JSX.Element;
|
|
1534
|
+
|
|
1535
|
+
interface ExecutionBreakdownTableProps {
|
|
1536
|
+
data?: ExecutionHealthMetrics;
|
|
1537
|
+
isLoading: boolean;
|
|
1538
|
+
error?: Error | null;
|
|
1539
|
+
}
|
|
1540
|
+
declare function ExecutionBreakdownTable({ data, isLoading, error }: ExecutionBreakdownTableProps): react_jsx_runtime.JSX.Element;
|
|
1541
|
+
|
|
1542
|
+
interface ExecutionHealthCardProps {
|
|
1543
|
+
data?: ExecutionHealthMetrics;
|
|
1544
|
+
isLoading: boolean;
|
|
1545
|
+
error: Error | null;
|
|
1546
|
+
}
|
|
1547
|
+
declare function ExecutionHealthCard({ data, isLoading, error }: ExecutionHealthCardProps): react_jsx_runtime.JSX.Element;
|
|
1548
|
+
|
|
1549
|
+
interface ExecutionLogsFiltersProps {
|
|
1550
|
+
filters: ExecutionLogsFilters$1;
|
|
1551
|
+
onFilterChange: <K extends keyof ExecutionLogsFilters$1>(key: K, value: ExecutionLogsFilters$1[K]) => void;
|
|
1552
|
+
onReset: () => void;
|
|
1553
|
+
}
|
|
1554
|
+
declare function ExecutionLogsFilters({ filters, onFilterChange, onReset }: ExecutionLogsFiltersProps): react_jsx_runtime.JSX.Element;
|
|
1555
|
+
|
|
1556
|
+
interface CostByModelTableProps {
|
|
1557
|
+
data?: CostByModelResponse;
|
|
1558
|
+
isLoading: boolean;
|
|
1559
|
+
error?: Error | null;
|
|
1560
|
+
}
|
|
1561
|
+
declare function CostByModelTable({ data, isLoading, error }: CostByModelTableProps): react_jsx_runtime.JSX.Element;
|
|
1562
|
+
|
|
1563
|
+
interface BusinessImpactCardProps {
|
|
1564
|
+
impactData?: BusinessImpactMetrics;
|
|
1565
|
+
summaryData?: CostSummaryResponse;
|
|
1566
|
+
trendsData?: CostTrendsResponse;
|
|
1567
|
+
data?: BusinessImpactMetrics;
|
|
1568
|
+
isLoading: boolean;
|
|
1569
|
+
error: Error | null;
|
|
1570
|
+
/** Labor rate in $/hour used to estimate hours saved. Defaults to 75. */
|
|
1571
|
+
laborRate?: number;
|
|
1572
|
+
}
|
|
1573
|
+
declare function BusinessImpactCard({ impactData, summaryData, trendsData, data, isLoading, error, laborRate }: BusinessImpactCardProps): react_jsx_runtime.JSX.Element;
|
|
1574
|
+
|
|
1575
|
+
interface CostBreakdownCardProps {
|
|
1576
|
+
breakdownData?: CostBreakdownMetrics;
|
|
1577
|
+
summaryData?: CostSummaryResponse;
|
|
1578
|
+
data?: CostBreakdownMetrics;
|
|
1579
|
+
isLoading: boolean;
|
|
1580
|
+
error: Error | null;
|
|
1581
|
+
/** Monthly budget threshold in USD. Defaults to 1500. */
|
|
1582
|
+
budget?: number;
|
|
1583
|
+
}
|
|
1584
|
+
declare function CostBreakdownCard({ breakdownData, summaryData, data, isLoading, error, budget }: CostBreakdownCardProps): react_jsx_runtime.JSX.Element;
|
|
1585
|
+
|
|
1586
|
+
interface CostMetricsCardProps {
|
|
1587
|
+
summaryData?: CostSummaryResponse;
|
|
1588
|
+
trendsData?: CostTrendsResponse;
|
|
1589
|
+
data?: CostBreakdownMetrics;
|
|
1590
|
+
isLoading: boolean;
|
|
1591
|
+
error: Error | null;
|
|
1592
|
+
/** Monthly budget threshold in USD. Defaults to 1500. */
|
|
1593
|
+
budget?: number;
|
|
1594
|
+
}
|
|
1595
|
+
declare function CostMetricsCard({ summaryData, trendsData, data, isLoading, error, budget }: CostMetricsCardProps): react_jsx_runtime.JSX.Element;
|
|
1596
|
+
|
|
1597
|
+
/**
|
|
1598
|
+
* ErrorBreakdownTable - Recent errors table with filtering and sorting
|
|
1599
|
+
* Shows recent errors with details and actions
|
|
1600
|
+
*/
|
|
1601
|
+
interface ErrorBreakdownTableProps {
|
|
1602
|
+
startDate?: string;
|
|
1603
|
+
endDate?: string;
|
|
1604
|
+
onErrorClick?: (executionId: string) => void;
|
|
1605
|
+
}
|
|
1606
|
+
declare function ErrorBreakdownTable({ startDate, endDate, onErrorClick }: ErrorBreakdownTableProps): react_jsx_runtime.JSX.Element;
|
|
1607
|
+
|
|
1349
1608
|
interface NotificationBellProps {
|
|
1350
1609
|
/** Override unread count (e.g., from SSE-enhanced source) */
|
|
1351
1610
|
unreadCount?: number;
|
|
@@ -2050,5 +2309,5 @@ declare const showWarningNotification: (message: string) => void;
|
|
|
2050
2309
|
*/
|
|
2051
2310
|
declare const showApiErrorNotification: (error: unknown) => void;
|
|
2052
2311
|
|
|
2053
|
-
export { APIErrorAlert, ActionModal, AgentDefinitionDisplay, AgentExecutionTimeline, AgentExecutionVisualizer, AgentIterationEdge, AgentIterationNode, BaseEdge, BaseNode, CONTAINER_CONSTANTS, CardHeader, CollapsibleJsonSection, CollapsibleSection, ConfigCard, ConfirmationInputModal, ConfirmationModal, ContentSections, ContextViewer, ContractDisplay, CustomModal, CustomSelector, DetailCardSkeleton, ElevasisLoader, EmptyState, EmptyVisualizer, ExecutionLogsTable, ExecutionStats, ExecutionStatusBadge, FilterBar, FormFieldRenderer, GraphBackground, GraphContainer, GraphFitViewButton, GraphFitViewHandler, GraphLegend, JsonViewer, ListSkeleton, NavigationButton, NewKnowledgeMapEdge, NewKnowledgeMapGraph, NewKnowledgeMapNode, NotificationBell, NotificationItem, NotificationList, NotificationPanel, PageNotFound, PageTitleCaption, ResourceCard, ResourceDefinitionSection, ResourceHealthChart, ResourceHealthPanel, SHARED_VIZ_CONSTANTS, SortableHeader, StatCard, StatCardSkeleton, StatsCardSkeleton, StyledMarkdown, TabCountBadge, TableSelectionToolbar, TaskCard, TimeRangeSelector, TimelineAxis, TimelineBar, TimelineContainer, TimelineRow, ToolsListDisplay, TrendIndicator, UnifiedWorkflowEdge, UnifiedWorkflowGraph, UnifiedWorkflowNode, VisualizerContainer, WorkflowDefinitionDisplay, WorkflowExecutionTimeline, catalogItemToResourceDefinition, getGraphBackgroundStyles, getHealthColor, getIcon, iconMap, showApiErrorNotification, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification, useGraphBackgroundStyles, useGraphTheme, useNewKnowledgeMapLayout };
|
|
2054
|
-
export type { BaseEdgeProps, ContextViewerProps, ExecutionLogEntry, ExecutionLogsTableProps, FitViewButtonVariant, GraphFitViewHandlerProps, JsonViewerProps, KnowledgeMapEdgeData, KnowledgeMapNodeData, NavigationButtonProps, ResourceHealthPanelProps, SerializedKnowledgeMap, SerializedKnowledgeNode, StatCardProps, StyledMarkdownProps, TrendIndicatorProps };
|
|
2312
|
+
export { APIErrorAlert, ActionModal, ActivityCard, ActivityFilters as ActivityFiltersBar, ActivityTable, AgentDefinitionDisplay, AgentExecutionTimeline, AgentExecutionVisualizer, AgentIterationEdge, AgentIterationNode, BaseEdge, BaseNode, BusinessImpactCard, CONTAINER_CONSTANTS, CardHeader, CollapsibleJsonSection, CollapsibleSection, ConfigCard, ConfirmationInputModal, ConfirmationModal, ContentSections, ContextViewer, ContractDisplay, CostBreakdownCard, CostByModelTable, CostMetricsCard, CustomModal, CustomSelector, DetailCardSkeleton, ElevasisLoader, EmptyState, EmptyVisualizer, ErrorAnalysisCard, ErrorBreakdownTable, ExecutionBreakdownTable, ExecutionHealthCard, ExecutionLogsFilters as ExecutionLogsFilterBar, ExecutionLogsTable, ExecutionStats, ExecutionStatusBadge, FilterBar, FormFieldRenderer, GraphBackground, GraphContainer, GraphFitViewButton, GraphFitViewHandler, GraphLegend, JsonViewer, ListSkeleton, NavigationButton, NewKnowledgeMapEdge, NewKnowledgeMapGraph, NewKnowledgeMapNode, NotificationBell, NotificationItem, NotificationList, NotificationPanel, PageNotFound, PageTitleCaption, ResourceCard, ResourceDefinitionSection, ResourceHealthChart, ResourceHealthPanel, SHARED_VIZ_CONSTANTS, SortableHeader, StatCard, StatCardSkeleton, StatsCardSkeleton, StyledMarkdown, TabCountBadge, TableSelectionToolbar, TaskCard, TimeRangeSelector, TimelineAxis, TimelineBar, TimelineContainer, TimelineRow, ToolsListDisplay, TrendIndicator, UnifiedWorkflowEdge, UnifiedWorkflowGraph, UnifiedWorkflowNode, VisualizerContainer, WorkflowDefinitionDisplay, WorkflowExecutionTimeline, catalogItemToResourceDefinition, getGraphBackgroundStyles, getHealthColor, getIcon, iconMap, showApiErrorNotification, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification, useGraphBackgroundStyles, useGraphTheme, useNewKnowledgeMapLayout };
|
|
2313
|
+
export type { ActivityFiltersProps, ActivityTableProps, BaseEdgeProps, ContextViewerProps, CostByModelTableProps, ErrorAnalysisCardProps, ExecutionBreakdownTableProps, ExecutionHealthCardProps, ExecutionLogEntry, ExecutionLogsFiltersProps, ExecutionLogsTableProps, FitViewButtonVariant, GraphFitViewHandlerProps, JsonViewerProps, KnowledgeMapEdgeData, KnowledgeMapNodeData, NavigationButtonProps, ResourceHealthPanelProps, SerializedKnowledgeMap, SerializedKnowledgeNode, StatCardProps, StyledMarkdownProps, TrendIndicatorProps };
|