@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.
Files changed (43) hide show
  1. package/dist/api/index.js +2 -3
  2. package/dist/auth/index.js +3 -4
  3. package/dist/charts/index.js +6 -8
  4. package/dist/{chunk-SFF5MJEI.js → chunk-2YBPRE6H.js} +1 -2
  5. package/dist/{chunk-U34YGJQB.js → chunk-3I2LOKQU.js} +1 -1
  6. package/dist/{chunk-PVVQTENF.js → chunk-3PURTICE.js} +1 -1
  7. package/dist/{chunk-2JBWPFHF.js → chunk-6TMW6VQ2.js} +1 -1
  8. package/dist/{chunk-6HZAMY6T.js → chunk-ARZM3OTI.js} +6 -2
  9. package/dist/{chunk-OK3XFSJJ.js → chunk-BWZMI4KP.js} +963 -10
  10. package/dist/{chunk-4KPI7YCY.js → chunk-EHXOR5LA.js} +2 -3
  11. package/dist/{chunk-Y7UY3HI4.js → chunk-ESOQEOOX.js} +2 -2
  12. package/dist/{chunk-L2CM2CUA.js → chunk-GZVH423C.js} +26 -3
  13. package/dist/{chunk-Y6DNK5ZD.js → chunk-JRJW2H57.js} +35 -9
  14. package/dist/{chunk-LBPALY25.js → chunk-JUPCUF77.js} +2 -2
  15. package/dist/chunk-QWYJHM3S.js +1068 -0
  16. package/dist/{chunk-NEK6JKPW.js → chunk-WUQWCUCB.js} +1 -1
  17. package/dist/chunk-Z4TPHMRD.js +231 -0
  18. package/dist/components/index.css +65 -0
  19. package/dist/components/index.d.ts +261 -2
  20. package/dist/components/index.js +1136 -80
  21. package/dist/hooks/index.css +452 -0
  22. package/dist/hooks/index.d.ts +1831 -13
  23. package/dist/hooks/index.js +15 -6
  24. package/dist/hooks/published.css +452 -0
  25. package/dist/hooks/published.d.ts +866 -6
  26. package/dist/hooks/published.js +15 -370
  27. package/dist/index.css +3 -0
  28. package/dist/index.d.ts +1665 -2
  29. package/dist/index.js +14 -17
  30. package/dist/initialization/index.js +3 -4
  31. package/dist/organization/index.js +3 -4
  32. package/dist/profile/index.js +1 -2
  33. package/dist/provider/index.css +3 -0
  34. package/dist/provider/index.js +7 -10
  35. package/dist/provider/published.js +6 -9
  36. package/dist/utils/index.d.ts +92 -1
  37. package/dist/utils/index.js +1 -2
  38. package/package.json +7 -3
  39. package/dist/chunk-4VGWQ5AN.js +0 -91
  40. package/dist/chunk-KA7LO7U5.js +0 -28
  41. package/dist/chunk-LFYO3MDC.js +0 -58
  42. package/dist/chunk-TIRMFDM4.js +0 -33
  43. package/dist/chunk-TYV5NJV2.js +0 -1
@@ -1,4 +1,4 @@
1
- import { useProfile } from './chunk-L2CM2CUA.js';
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 };