@elevasis/ui 2.20.0 → 2.22.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 (100) hide show
  1. package/dist/api/index.js +2 -2
  2. package/dist/app/index.js +5 -5
  3. package/dist/charts/index.js +3 -3
  4. package/dist/{chunk-TO7QXDBX.js → chunk-3HEUGBOT.js} +3 -3
  5. package/dist/chunk-AXXTN44Z.js +26 -0
  6. package/dist/{chunk-FMFX4K6E.js → chunk-B4FHWKEF.js} +3390 -2929
  7. package/dist/{chunk-AL23U6C3.js → chunk-BIWHHWCJ.js} +1 -2
  8. package/dist/{chunk-MZFJWCPH.js → chunk-BSZRKBAW.js} +277 -92
  9. package/dist/{chunk-GP3AFJYG.js → chunk-COG4ABRI.js} +8 -13
  10. package/dist/chunk-DDZOHLHB.js +48 -0
  11. package/dist/{chunk-ZE2KQSHL.js → chunk-GJ7EIABJ.js} +4 -4
  12. package/dist/{chunk-YP6T426C.js → chunk-IBUYJXA3.js} +1326 -1110
  13. package/dist/{chunk-2CFOFSSG.js → chunk-IOTLB6ND.js} +8 -13
  14. package/dist/{chunk-GBMNCNHX.js → chunk-KVJ3LFH2.js} +3 -1
  15. package/dist/chunk-LJWV4TWV.js +335 -0
  16. package/dist/{chunk-PJVG3ISO.js → chunk-LKVBEE63.js} +7 -9
  17. package/dist/{chunk-JR5WNTLA.js → chunk-LVJGPE6H.js} +11 -24
  18. package/dist/{chunk-OUYH2SBS.js → chunk-LVUCBY7X.js} +2 -2
  19. package/dist/{chunk-TIIPYB2Z.js → chunk-QZJM3RYI.js} +1 -1
  20. package/dist/{chunk-OD7GWIZS.js → chunk-SGXXJE52.js} +1 -121
  21. package/dist/{chunk-7YQKVWSD.js → chunk-SQ5JGELM.js} +25 -5
  22. package/dist/{chunk-R7OJCNL3.js → chunk-T6INEVX6.js} +1 -1
  23. package/dist/{chunk-RX4UWZZR.js → chunk-TKAYX2SP.js} +8 -3
  24. package/dist/{chunk-CTTY6FUT.js → chunk-TSSKOQBX.js} +2 -2
  25. package/dist/{chunk-GTYUP7MB.js → chunk-WWJ6S2HQ.js} +10 -22
  26. package/dist/{chunk-Q5HC6ENG.js → chunk-XOTJNW4Q.js} +1 -1
  27. package/dist/{chunk-BHR7IV72.js → chunk-XUYBOO32.js} +1 -1
  28. package/dist/{chunk-M7W7CGPL.js → chunk-Z6FAH4XV.js} +1 -1
  29. package/dist/{chunk-Q4QJOSVS.js → chunk-ZBCTB5CA.js} +1 -1
  30. package/dist/components/index.css +85 -85
  31. package/dist/components/index.d.ts +970 -746
  32. package/dist/components/index.js +246 -39
  33. package/dist/components/navigation/index.css +589 -0
  34. package/dist/components/navigation/index.d.ts +1 -13
  35. package/dist/components/navigation/index.js +11 -1
  36. package/dist/execution/index.d.ts +27 -0
  37. package/dist/features/auth/index.css +2 -2
  38. package/dist/features/auth/index.d.ts +184 -3
  39. package/dist/features/crm/index.css +2 -2
  40. package/dist/features/crm/index.d.ts +201 -38
  41. package/dist/features/crm/index.js +15 -14
  42. package/dist/features/dashboard/index.css +2 -2
  43. package/dist/features/dashboard/index.d.ts +25 -27
  44. package/dist/features/dashboard/index.js +15 -14
  45. package/dist/features/delivery/index.css +85 -85
  46. package/dist/features/delivery/index.d.ts +201 -38
  47. package/dist/features/delivery/index.js +15 -14
  48. package/dist/features/lead-gen/index.css +2 -2
  49. package/dist/features/lead-gen/index.d.ts +19 -37
  50. package/dist/features/lead-gen/index.js +15 -14
  51. package/dist/features/monitoring/index.css +85 -85
  52. package/dist/features/monitoring/index.d.ts +18 -36
  53. package/dist/features/monitoring/index.js +17 -16
  54. package/dist/features/monitoring/requests/index.css +2 -2
  55. package/dist/features/monitoring/requests/index.d.ts +18 -36
  56. package/dist/features/monitoring/requests/index.js +15 -14
  57. package/dist/features/operations/index.css +2 -2
  58. package/dist/features/operations/index.d.ts +49 -67
  59. package/dist/features/operations/index.js +18 -17
  60. package/dist/features/seo/index.d.ts +17 -35
  61. package/dist/features/seo/index.js +1 -1
  62. package/dist/features/settings/index.css +2 -2
  63. package/dist/features/settings/index.d.ts +222 -44
  64. package/dist/features/settings/index.js +16 -15
  65. package/dist/graph/index.css +2 -2
  66. package/dist/hooks/delivery/index.css +2 -2
  67. package/dist/hooks/delivery/index.d.ts +184 -3
  68. package/dist/hooks/delivery/index.js +2 -2
  69. package/dist/hooks/index.css +85 -85
  70. package/dist/hooks/index.d.ts +1862 -1582
  71. package/dist/hooks/index.js +13 -12
  72. package/dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts +92 -121
  73. package/dist/hooks/published.css +85 -85
  74. package/dist/hooks/published.d.ts +1862 -1582
  75. package/dist/hooks/published.js +13 -12
  76. package/dist/index.css +12 -12
  77. package/dist/index.d.ts +689 -470
  78. package/dist/index.js +14 -13
  79. package/dist/initialization/index.d.ts +184 -3
  80. package/dist/layout/index.js +2 -2
  81. package/dist/organization/index.css +589 -0
  82. package/dist/organization/index.js +1 -1
  83. package/dist/profile/index.d.ts +184 -3
  84. package/dist/provider/index.css +384 -0
  85. package/dist/provider/index.d.ts +68 -125
  86. package/dist/provider/index.js +11 -10
  87. package/dist/provider/published.css +463 -0
  88. package/dist/provider/published.d.ts +68 -125
  89. package/dist/provider/published.js +8 -7
  90. package/dist/supabase/index.d.ts +359 -6
  91. package/dist/test-utils/index.d.ts +46 -2
  92. package/dist/test-utils/index.js +104 -3
  93. package/dist/theme/index.js +2 -2
  94. package/dist/types/index.d.ts +303 -141
  95. package/dist/utils/index.d.ts +26 -59
  96. package/dist/utils/index.js +1 -1
  97. package/package.json +4 -4
  98. package/dist/chunk-LR5CRY5A.js +0 -514
  99. package/dist/chunk-MG3NF7QL.js +0 -63
  100. /package/dist/{chunk-6GUW5GGF.js → chunk-6Z3G4U2R.js} +0 -0
@@ -1,552 +1,164 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { MantineSpacing, MantineColor, MantineLoaderComponent, BadgeProps } from '@mantine/core';
3
2
  import * as React$1 from 'react';
4
- import React__default, { ComponentType, ReactNode, CSSProperties, ReactElement } from 'react';
3
+ import React__default, { ReactNode, ComponentType, CSSProperties, ReactElement } from 'react';
4
+ import { MantineSpacing, MantineColor, MantineLoaderComponent, BadgeProps } from '@mantine/core';
5
5
  import { Icon, IconCheck } from '@tabler/icons-react';
6
6
  import { Components } from 'react-markdown';
7
- import { UseFormReturnType } from '@mantine/form';
8
7
  import { z } from 'zod';
8
+ import { UseFormReturnType } from '@mantine/form';
9
9
  import { NodeProps, Node, EdgeProps, Edge } from '@xyflow/react';
10
10
  export { default as graphStyles } from '../graph/Graph.module.css';
11
11
  import * as _tanstack_react_query from '@tanstack/react-query';
12
12
 
13
- interface EmptyStateProps {
14
- /** Icon component to display (e.g., IconKey from @tabler/icons-react) */
15
- icon: ComponentType<{
16
- size: number;
17
- style?: React.CSSProperties;
18
- }>;
19
- /** Main title text */
20
- title: string;
21
- /** Description text shown below title */
22
- description?: string;
23
- /** Optional action button */
24
- action?: {
25
- label: string;
26
- onClick: () => void;
27
- icon?: ReactNode;
28
- };
29
- /** Vertical padding - defaults to 'xl' */
30
- py?: MantineSpacing;
31
- }
32
13
  /**
33
- * EmptyState - Reusable empty state component for lists and tables
34
- *
35
- * Consolidates the Center + Stack + Icon + Text pattern used across:
36
- * - ApiKeyList.tsx
37
- * - CredentialList.tsx
38
- * - Various other list components
39
- *
40
- * @example
41
- * ```tsx
42
- * <EmptyState
43
- * icon={IconKey}
44
- * title="No API keys yet"
45
- * description="Create your first API key to enable external integrations"
46
- * action={{ label: "Create API Key", onClick: handleCreate }}
47
- * />
48
- * ```
14
+ * Workflow-specific logging types and utilities
49
15
  */
50
- declare function EmptyState({ icon: Icon, title, description, action, py }: EmptyStateProps): react_jsx_runtime.JSX.Element;
51
16
 
52
- interface TabCountBadgeProps {
53
- count: number;
54
- isLoading?: boolean;
17
+ interface WorkflowExecutionContext {
18
+ type: 'workflow';
19
+ contextType: 'workflow-execution';
20
+ executionId: string;
21
+ workflowId: string;
22
+ workflowName?: string;
23
+ organizationId: string;
24
+ executionPath?: string[];
25
+ }
26
+ interface WorkflowFailureContext {
27
+ type: 'workflow';
28
+ contextType: 'workflow-failure';
29
+ executionId: string;
30
+ workflowId: string;
31
+ error: string;
32
+ }
33
+ interface StepStartedContext {
34
+ type: 'workflow';
35
+ contextType: 'step-started';
36
+ stepId: string;
37
+ stepStatus: 'started';
38
+ input: unknown;
39
+ startTime: number;
40
+ }
41
+ interface StepCompletedContext {
42
+ type: 'workflow';
43
+ contextType: 'step-completed';
44
+ stepId: string;
45
+ stepStatus: 'completed';
46
+ output: unknown;
47
+ duration: number;
48
+ isTerminal: boolean;
49
+ startTime: number;
50
+ endTime: number;
51
+ }
52
+ interface StepFailedContext {
53
+ type: 'workflow';
54
+ contextType: 'step-failed';
55
+ stepId: string;
56
+ stepStatus: 'failed';
57
+ error: string;
58
+ duration: number;
59
+ startTime: number;
60
+ endTime: number;
61
+ }
62
+ interface ConditionalRouteContext {
63
+ type: 'workflow';
64
+ contextType: 'conditional-route';
65
+ stepId: string;
66
+ target: string;
67
+ error?: string;
68
+ }
69
+ interface ExecutionPathContext {
70
+ type: 'workflow';
71
+ contextType: 'execution-path';
72
+ executionPath: string[];
73
+ }
74
+ type WorkflowLogContext = WorkflowExecutionContext | WorkflowFailureContext | StepStartedContext | StepCompletedContext | StepFailedContext | ConditionalRouteContext | ExecutionPathContext;
75
+ interface WorkflowLogMessage {
76
+ level: ExecutionLogLevel;
77
+ message: string;
78
+ timestamp: number;
79
+ context?: WorkflowLogContext;
55
80
  }
81
+
56
82
  /**
57
- * A badge that displays a count in tabs with consistent sizing.
58
- * Uses a fixed-width container to prevent layout shift when switching
59
- * between the loading spinner and the count badge.
83
+ * Agent-specific logging types
84
+ * Simplified 2-event model: lifecycle, iteration
85
+ *
86
+ * Design Philosophy:
87
+ * - LIFECYCLE EVENTS: Structural checkpoints (initialization, iteration, completion)
88
+ * - ITERATION EVENTS: Execution activities (reasoning, actions during iterations)
60
89
  */
61
- declare function TabCountBadge({ count, isLoading }: TabCountBadgeProps): react_jsx_runtime.JSX.Element;
62
90
 
63
91
  /**
64
- * TrendIndicator - Reusable component for showing percentage change trends
65
- * Displays up/down/flat arrow with colored badge
92
+ * Agent lifecycle stages
93
+ * Universal checkpoints that apply to all agent executions
66
94
  */
67
- interface TrendIndicatorProps {
68
- /** Current value */
69
- current: number;
70
- /** Previous value to compare against */
71
- previous: number;
72
- /** Optional formatter for the value (not used in display but kept for API compatibility) */
73
- formatter?: (value: number) => string;
74
- /** If true, negative change is considered positive (e.g., for costs) */
75
- inverse?: boolean;
76
- }
95
+ type AgentLifecycle = 'initialization' | 'iteration' | 'completion';
77
96
  /**
78
- * Shows a trend indicator with arrow icon and percentage change badge
79
- *
80
- * @example
81
- * // Positive trend (green when going up)
82
- * <TrendIndicator current={100} previous={80} />
83
- *
84
- * @example
85
- * // Inverse trend (green when going down, useful for costs)
86
- * <TrendIndicator current={100} previous={120} inverse />
97
+ * Iteration event types
98
+ * Activities that occur during agent iterations
87
99
  */
88
- declare function TrendIndicator({ current, previous, inverse }: TrendIndicatorProps): react_jsx_runtime.JSX.Element;
89
-
90
- interface CollapsibleSectionProps {
91
- title: string | ReactNode;
92
- count?: number;
93
- countLabel?: string;
94
- children: ReactNode;
95
- emptyMessage?: string;
96
- defaultExpanded?: boolean;
97
- maxHeight?: number;
100
+ type IterationEventType = 'reasoning' | 'action' | 'tool-call';
101
+ /**
102
+ * Base fields shared by all lifecycle events
103
+ */
104
+ interface AgentLifecycleEventBase {
105
+ type: 'agent';
106
+ agentId: string;
107
+ lifecycle: AgentLifecycle;
108
+ sessionId?: string;
98
109
  }
99
110
  /**
100
- * Reusable collapsible section with header, badge, and scroll area
101
- * Used for expandable content like memory sections, logs, etc.
111
+ * Lifecycle started event - emitted when a phase begins
112
+ * REQUIRED: startTime (phase has started, no end yet)
102
113
  */
103
- declare function CollapsibleSection({ title, count, countLabel, children, emptyMessage, defaultExpanded, maxHeight }: CollapsibleSectionProps): react_jsx_runtime.JSX.Element;
104
-
105
- interface PageTitleCaptionProps {
106
- title: string;
107
- caption?: string;
108
- rightSection?: ReactNode;
114
+ interface AgentLifecycleStartedEvent extends AgentLifecycleEventBase {
115
+ stage: 'started';
116
+ startTime: number;
117
+ iteration?: number;
109
118
  }
110
- declare const PageTitleCaption: ({ title, caption, rightSection }: PageTitleCaptionProps) => react_jsx_runtime.JSX.Element;
111
-
112
- interface StatsCardSkeletonProps {
113
- /** Height of the loader area - defaults to 200 */
114
- chartHeight?: number;
115
- /** Kept for API compat, unused */
116
- withChart?: boolean;
117
- /** Kept for API compat, unused */
118
- statCount?: 2 | 3;
119
+ /**
120
+ * Lifecycle completed event - emitted when a phase succeeds
121
+ * REQUIRED: startTime, endTime, duration (phase has finished successfully)
122
+ */
123
+ interface AgentLifecycleCompletedEvent extends AgentLifecycleEventBase {
124
+ stage: 'completed';
125
+ startTime: number;
126
+ endTime: number;
127
+ duration: number;
128
+ iteration?: number;
129
+ attempts?: number;
130
+ memorySize?: {
131
+ sessionMemoryKeys: number;
132
+ historyEntries: number;
133
+ };
119
134
  }
120
135
  /**
121
- * StatsCardSkeleton - Loading state for dashboard metric cards
122
- *
123
- * Used across:
124
- * - ExecutionHealthCard.tsx
125
- * - CostMetricsCard.tsx
126
- * - ThroughputCard.tsx
127
- * - BusinessImpactCard.tsx
136
+ * Lifecycle failed event - emitted when a phase fails
137
+ * REQUIRED: startTime, endTime, duration, error (phase has finished with error)
128
138
  */
129
- declare function StatsCardSkeleton({ chartHeight }: StatsCardSkeletonProps): react_jsx_runtime.JSX.Element;
130
- interface ListSkeletonProps {
131
- /** Number of rows (used to calculate height) - defaults to 3 */
132
- rows?: number;
133
- /** Height of each row - defaults to 50 */
134
- rowHeight?: number;
139
+ interface AgentLifecycleFailedEvent extends AgentLifecycleEventBase {
140
+ stage: 'failed';
141
+ startTime: number;
142
+ endTime: number;
143
+ duration: number;
144
+ error: string;
145
+ iteration?: number;
135
146
  }
136
147
  /**
137
- * ListSkeleton - Loading state for table/list content
138
- *
139
- * Used across:
140
- * - ApiKeyList.tsx
141
- * - CredentialList.tsx
142
- * - DeploymentList.tsx
143
- * - WebhookEndpointList.tsx
148
+ * Union type for all lifecycle events
149
+ * Discriminated by 'stage' field for type narrowing
144
150
  */
145
- declare function ListSkeleton({ rows, rowHeight }: ListSkeletonProps): react_jsx_runtime.JSX.Element;
146
- interface DetailCardSkeletonProps {
147
- /** Number of detail rows (used to calculate height) - defaults to 3 */
148
- rows?: number;
151
+ type AgentLifecycleEvent = AgentLifecycleStartedEvent | AgentLifecycleCompletedEvent | AgentLifecycleFailedEvent;
152
+ /**
153
+ * Placeholder data for MVP
154
+ * Will be typed per actionType in future
155
+ */
156
+ interface ActionPlaceholderData {
157
+ message: string;
149
158
  }
150
159
  /**
151
- * DetailCardSkeleton - Loading state for cards with list of detail items
152
- *
153
- * Used for cards like CostBreakdownCard
154
- */
155
- declare function DetailCardSkeleton({ rows }: DetailCardSkeletonProps): react_jsx_runtime.JSX.Element;
156
-
157
- interface NavigationButtonProps {
158
- /** Icon component to display */
159
- icon: React__default.ComponentType<{
160
- size?: number;
161
- stroke?: number;
162
- }>;
163
- /** Button label text */
164
- label: string;
165
- /** Whether the button is in collapsed state (hides text) */
166
- isCollapsed?: boolean;
167
- /** Whether this button has sub-items/links */
168
- hasSubItems?: boolean;
169
- /** Whether sub-items are expanded (controls chevron rotation) */
170
- isExpanded?: boolean;
171
- /** Whether the icon and text should be styled as active */
172
- isActive?: boolean;
173
- /** Whether the background should be styled as active */
174
- hasActiveBackground?: boolean;
175
- /** Click handler */
176
- onClick?: () => void;
177
- /** Additional styles for the button container */
178
- style?: React__default.CSSProperties;
179
- /** Custom transition duration in ms */
180
- transitionDuration?: number;
181
- }
182
- declare const NavigationButton: React__default.FC<NavigationButtonProps>;
183
-
184
- interface CustomSelectorProps {
185
- value: string | null;
186
- onChange: (value: string | null) => void;
187
- data: {
188
- value: string;
189
- label: string;
190
- }[] | readonly {
191
- value: string;
192
- label: string;
193
- }[];
194
- leftSection?: ReactNode;
195
- placeholder?: string;
196
- w?: number | string;
197
- withCheckIcon?: boolean;
198
- disabled?: boolean;
199
- }
200
- declare function CustomSelector({ value, onChange, data, leftSection, placeholder, w, withCheckIcon, disabled }: CustomSelectorProps): react_jsx_runtime.JSX.Element;
201
-
202
- interface APIErrorAlertProps {
203
- /**
204
- * The error to display. Can be an APIClientError, generic Error, or any unknown value.
205
- */
206
- error: unknown;
207
- /**
208
- * Optional title override. If not provided, uses getErrorTitle() based on error code.
209
- */
210
- title?: string;
211
- /**
212
- * Whether to show the request ID (if available). Defaults to true.
213
- */
214
- showRequestId?: boolean;
215
- /**
216
- * Optional custom icon. Defaults to IconAlertCircle.
217
- */
218
- icon?: React.ReactNode;
219
- /**
220
- * Alert color. Defaults to 'red'.
221
- */
222
- color?: string;
223
- }
224
- /**
225
- * Alert component for displaying API errors with type-safe error handling.
226
- *
227
- * Automatically extracts error message, code, and request ID from APIClientError
228
- * or falls back to generic Error handling.
229
- *
230
- * @example
231
- * ```tsx
232
- * const { data, error } = useQuery(...)
233
- *
234
- * if (error) {
235
- * return <APIErrorAlert error={error} />
236
- * }
237
- * ```
238
- *
239
- * @example With custom title
240
- * ```tsx
241
- * <APIErrorAlert
242
- * error={error}
243
- * title="Failed to load resources"
244
- * />
245
- * ```
246
- *
247
- * @example Without request ID
248
- * ```tsx
249
- * <APIErrorAlert
250
- * error={error}
251
- * showRequestId={false}
252
- * />
253
- * ```
254
- */
255
- declare function APIErrorAlert({ error, title, showRequestId, icon, color }: APIErrorAlertProps): react_jsx_runtime.JSX.Element;
256
-
257
- interface CenteredErrorStateProps {
258
- error: unknown;
259
- title?: string;
260
- /** Minimum height of the centering container. Defaults to 300. */
261
- h?: number | string;
262
- /** Vertical padding (used when h is not set). */
263
- py?: MantineSpacing;
264
- }
265
- /**
266
- * CenteredErrorState - Displays an error centered inside its container.
267
- *
268
- * The caller is responsible for providing the container (e.g. `<Paper withBorder>`).
269
- * This component only handles centering + rendering the error alert.
270
- *
271
- * @example
272
- * ```tsx
273
- * if (error) {
274
- * return (
275
- * <Paper withBorder>
276
- * <CenteredErrorState error={error} title="Failed to load trends" />
277
- * </Paper>
278
- * )
279
- * }
280
- * ```
281
- */
282
- declare function CenteredErrorState({ error, title, h, py }: CenteredErrorStateProps): react_jsx_runtime.JSX.Element;
283
-
284
- interface StatCardBaseProps {
285
- /** The label/description text */
286
- label: string;
287
- /** The value to display (number or formatted string) */
288
- value: string | number;
289
- /** Tabler icon component */
290
- icon: Icon;
291
- /** Optional extra content rendered below the label */
292
- children?: ReactNode;
293
- }
294
- interface StatCardDefaultProps extends StatCardBaseProps {
295
- variant?: 'default';
296
- /** Theme color for the icon (defaults to theme primary) */
297
- color?: MantineColor;
298
- isLoading?: never;
299
- valueColor?: never;
300
- }
301
- interface StatCardHeroProps extends StatCardBaseProps {
302
- variant: 'hero';
303
- /** Whether data is loading */
304
- isLoading?: boolean;
305
- /** Custom color for the value text */
306
- valueColor?: string;
307
- /** Card sizing — 'sm' (default) for compact layouts, 'md' for spacious layouts */
308
- size?: 'sm' | 'md';
309
- color?: never;
310
- }
311
- type StatCardProps = StatCardDefaultProps | StatCardHeroProps;
312
- /**
313
- * StatCard - Stat display card with icon, label, and value.
314
- *
315
- * Supports two variants:
316
- * - `default`: Compact card with ThemeIcon (used in admin overviews)
317
- * - `hero`: Glass card with glowing icon ring (used on dashboards)
318
- *
319
- * @example
320
- * ```tsx
321
- * // Default variant
322
- * <StatCard label="Total Executions" value={150} icon={IconPlayerPlay} color="blue" />
323
- *
324
- * // Hero variant
325
- * <StatCard variant="hero" label="Executions" value={43} icon={IconPlayerPlay} isLoading={false} />
326
- * ```
327
- */
328
- declare function StatCard(props: StatCardProps): react_jsx_runtime.JSX.Element;
329
- /**
330
- * StatCardSkeleton - Loading skeleton for StatCard (default variant)
331
- */
332
- declare function StatCardSkeleton(): react_jsx_runtime.JSX.Element;
333
-
334
- interface StyledMarkdownProps {
335
- /** Markdown content to render */
336
- children: string;
337
- /** Custom component overrides */
338
- components?: Partial<Components>;
339
- /** Additional class name */
340
- className?: string;
341
- /** Inline styles for the wrapper div */
342
- style?: React.CSSProperties;
343
- }
344
- /**
345
- * Styled markdown renderer with Mantine components and syntax highlighting
346
- *
347
- * Features:
348
- * - Colored headings using theme primary color
349
- * - Syntax-highlighted code blocks (oneDark theme, no token backgrounds)
350
- * - Styled inline code with Mantine Code component
351
- * - Styled blockquotes with left border
352
- * - Proper list styling
353
- *
354
- * @example
355
- * ```tsx
356
- * import { StyledMarkdown } from '@repo/ui'
357
- *
358
- * <StyledMarkdown>{markdownContent}</StyledMarkdown>
359
- * ```
360
- */
361
- declare function StyledMarkdown({ children, components, className, style }: StyledMarkdownProps): react_jsx_runtime.JSX.Element;
362
-
363
- interface JsonViewerProps {
364
- /** JSON data to display (will be stringified) or pre-formatted JSON string */
365
- data: unknown;
366
- /** Maximum height with scroll (e.g., '300px'). If not set, expands to content */
367
- maxHeight?: string | number;
368
- /** Font size override */
369
- fontSize?: string | number;
370
- }
371
- /**
372
- * Syntax-highlighted JSON viewer component
373
- *
374
- * @example
375
- * ```tsx
376
- * import { JsonViewer } from '@repo/ui'
377
- *
378
- * <JsonViewer data={{ foo: 'bar', count: 42 }} />
379
- * <JsonViewer data={apiResponse} maxHeight={300} />
380
- * ```
381
- */
382
- declare function JsonViewer({ data, maxHeight, fontSize }: JsonViewerProps): react_jsx_runtime.JSX.Element;
383
-
384
- interface ContextViewerProps {
385
- /** Any JSON-serializable data to display in a human-readable format */
386
- data: unknown;
387
- }
388
- /**
389
- * Auto-formats any JSON context into a human-readable layout.
390
- *
391
- * - Strings → rendered as markdown (supports formatting, lists, tables)
392
- * - Flat key-value objects → labeled field list
393
- * - Nested objects → indented subsections with left border
394
- * - Arrays → bulleted lists or bordered cards
395
- * - null/undefined/boolean/number → inline text
396
- *
397
- * No display configuration needed — the component infers layout from data shape.
398
- */
399
- declare function ContextViewer({ data }: ContextViewerProps): react_jsx_runtime.JSX.Element;
400
-
401
- /**
402
- * Workflow-specific logging types and utilities
403
- */
404
-
405
- interface WorkflowExecutionContext {
406
- type: 'workflow';
407
- contextType: 'workflow-execution';
408
- executionId: string;
409
- workflowId: string;
410
- workflowName?: string;
411
- organizationId: string;
412
- executionPath?: string[];
413
- }
414
- interface WorkflowFailureContext {
415
- type: 'workflow';
416
- contextType: 'workflow-failure';
417
- executionId: string;
418
- workflowId: string;
419
- error: string;
420
- }
421
- interface StepStartedContext {
422
- type: 'workflow';
423
- contextType: 'step-started';
424
- stepId: string;
425
- stepStatus: 'started';
426
- input: unknown;
427
- startTime: number;
428
- }
429
- interface StepCompletedContext {
430
- type: 'workflow';
431
- contextType: 'step-completed';
432
- stepId: string;
433
- stepStatus: 'completed';
434
- output: unknown;
435
- duration: number;
436
- isTerminal: boolean;
437
- startTime: number;
438
- endTime: number;
439
- }
440
- interface StepFailedContext {
441
- type: 'workflow';
442
- contextType: 'step-failed';
443
- stepId: string;
444
- stepStatus: 'failed';
445
- error: string;
446
- duration: number;
447
- startTime: number;
448
- endTime: number;
449
- }
450
- interface ConditionalRouteContext {
451
- type: 'workflow';
452
- contextType: 'conditional-route';
453
- stepId: string;
454
- target: string;
455
- error?: string;
456
- }
457
- interface ExecutionPathContext {
458
- type: 'workflow';
459
- contextType: 'execution-path';
460
- executionPath: string[];
461
- }
462
- type WorkflowLogContext = WorkflowExecutionContext | WorkflowFailureContext | StepStartedContext | StepCompletedContext | StepFailedContext | ConditionalRouteContext | ExecutionPathContext;
463
- interface WorkflowLogMessage {
464
- level: ExecutionLogLevel;
465
- message: string;
466
- timestamp: number;
467
- context?: WorkflowLogContext;
468
- }
469
-
470
- /**
471
- * Agent-specific logging types
472
- * Simplified 2-event model: lifecycle, iteration
473
- *
474
- * Design Philosophy:
475
- * - LIFECYCLE EVENTS: Structural checkpoints (initialization, iteration, completion)
476
- * - ITERATION EVENTS: Execution activities (reasoning, actions during iterations)
477
- */
478
-
479
- /**
480
- * Agent lifecycle stages
481
- * Universal checkpoints that apply to all agent executions
482
- */
483
- type AgentLifecycle = 'initialization' | 'iteration' | 'completion';
484
- /**
485
- * Iteration event types
486
- * Activities that occur during agent iterations
487
- */
488
- type IterationEventType = 'reasoning' | 'action' | 'tool-call';
489
- /**
490
- * Base fields shared by all lifecycle events
491
- */
492
- interface AgentLifecycleEventBase {
493
- type: 'agent';
494
- agentId: string;
495
- lifecycle: AgentLifecycle;
496
- sessionId?: string;
497
- }
498
- /**
499
- * Lifecycle started event - emitted when a phase begins
500
- * REQUIRED: startTime (phase has started, no end yet)
501
- */
502
- interface AgentLifecycleStartedEvent extends AgentLifecycleEventBase {
503
- stage: 'started';
504
- startTime: number;
505
- iteration?: number;
506
- }
507
- /**
508
- * Lifecycle completed event - emitted when a phase succeeds
509
- * REQUIRED: startTime, endTime, duration (phase has finished successfully)
510
- */
511
- interface AgentLifecycleCompletedEvent extends AgentLifecycleEventBase {
512
- stage: 'completed';
513
- startTime: number;
514
- endTime: number;
515
- duration: number;
516
- iteration?: number;
517
- attempts?: number;
518
- memorySize?: {
519
- sessionMemoryKeys: number;
520
- historyEntries: number;
521
- };
522
- }
523
- /**
524
- * Lifecycle failed event - emitted when a phase fails
525
- * REQUIRED: startTime, endTime, duration, error (phase has finished with error)
526
- */
527
- interface AgentLifecycleFailedEvent extends AgentLifecycleEventBase {
528
- stage: 'failed';
529
- startTime: number;
530
- endTime: number;
531
- duration: number;
532
- error: string;
533
- iteration?: number;
534
- }
535
- /**
536
- * Union type for all lifecycle events
537
- * Discriminated by 'stage' field for type narrowing
538
- */
539
- type AgentLifecycleEvent = AgentLifecycleStartedEvent | AgentLifecycleCompletedEvent | AgentLifecycleFailedEvent;
540
- /**
541
- * Placeholder data for MVP
542
- * Will be typed per actionType in future
543
- */
544
- interface ActionPlaceholderData {
545
- message: string;
546
- }
547
- /**
548
- * Iteration event - captures activities during agent iterations
549
- * Consolidates reasoning (LLM thought process) and actions (tool use, memory ops, etc.)
160
+ * Iteration event - captures activities during agent iterations
161
+ * Consolidates reasoning (LLM thought process) and actions (tool use, memory ops, etc.)
550
162
  */
551
163
  interface AgentIterationEvent {
552
164
  type: 'agent';
@@ -731,6 +343,8 @@ interface SerializedAgentDefinition {
731
343
  version: string;
732
344
  type: 'agent';
733
345
  status: 'dev' | 'prod';
346
+ links?: ResourceLink[];
347
+ category?: ResourceCategory;
734
348
  /** Whether this resource is archived and should be excluded from registration and deployment */
735
349
  archived?: boolean;
736
350
  systemPrompt: string;
@@ -786,6 +400,8 @@ interface SerializedWorkflowDefinition {
786
400
  version: string;
787
401
  type: 'workflow';
788
402
  status: 'dev' | 'prod';
403
+ links?: ResourceLink[];
404
+ category?: ResourceCategory;
789
405
  /** Whether this resource is archived and should be excluded from registration and deployment */
790
406
  archived?: boolean;
791
407
  };
@@ -2551,6 +2167,7 @@ type Database = {
2551
2167
  Row: {
2552
2168
  config: Json;
2553
2169
  created_at: string | null;
2170
+ effective_permissions: string[];
2554
2171
  id: string;
2555
2172
  membership_status: string | null;
2556
2173
  organization_id: string;
@@ -2562,6 +2179,7 @@ type Database = {
2562
2179
  Insert: {
2563
2180
  config?: Json;
2564
2181
  created_at?: string | null;
2182
+ effective_permissions?: string[];
2565
2183
  id?: string;
2566
2184
  membership_status?: string | null;
2567
2185
  organization_id: string;
@@ -2573,6 +2191,7 @@ type Database = {
2573
2191
  Update: {
2574
2192
  config?: Json;
2575
2193
  created_at?: string | null;
2194
+ effective_permissions?: string[];
2576
2195
  id?: string;
2577
2196
  membership_status?: string | null;
2578
2197
  organization_id?: string;
@@ -2583,21 +2202,162 @@ type Database = {
2583
2202
  };
2584
2203
  Relationships: [
2585
2204
  {
2586
- foreignKeyName: "org_memberships_organization_id_fkey";
2205
+ foreignKeyName: "org_memberships_organization_id_fkey";
2206
+ columns: ["organization_id"];
2207
+ isOneToOne: false;
2208
+ referencedRelation: "organizations";
2209
+ referencedColumns: ["id"];
2210
+ },
2211
+ {
2212
+ foreignKeyName: "org_memberships_user_id_fkey";
2213
+ columns: ["user_id"];
2214
+ isOneToOne: false;
2215
+ referencedRelation: "users";
2216
+ referencedColumns: ["id"];
2217
+ }
2218
+ ];
2219
+ };
2220
+ org_rol_assignments: {
2221
+ Row: {
2222
+ granted_at: string;
2223
+ granted_by: string | null;
2224
+ membership_id: string;
2225
+ role_id: string;
2226
+ };
2227
+ Insert: {
2228
+ granted_at?: string;
2229
+ granted_by?: string | null;
2230
+ membership_id: string;
2231
+ role_id: string;
2232
+ };
2233
+ Update: {
2234
+ granted_at?: string;
2235
+ granted_by?: string | null;
2236
+ membership_id?: string;
2237
+ role_id?: string;
2238
+ };
2239
+ Relationships: [
2240
+ {
2241
+ foreignKeyName: "org_rol_assignments_granted_by_fkey";
2242
+ columns: ["granted_by"];
2243
+ isOneToOne: false;
2244
+ referencedRelation: "users";
2245
+ referencedColumns: ["id"];
2246
+ },
2247
+ {
2248
+ foreignKeyName: "org_rol_assignments_membership_id_fkey";
2249
+ columns: ["membership_id"];
2250
+ isOneToOne: false;
2251
+ referencedRelation: "org_memberships";
2252
+ referencedColumns: ["id"];
2253
+ },
2254
+ {
2255
+ foreignKeyName: "org_rol_assignments_role_id_fkey";
2256
+ columns: ["role_id"];
2257
+ isOneToOne: false;
2258
+ referencedRelation: "org_rol_definitions";
2259
+ referencedColumns: ["id"];
2260
+ }
2261
+ ];
2262
+ };
2263
+ org_rol_definitions: {
2264
+ Row: {
2265
+ created_at: string;
2266
+ description: string | null;
2267
+ id: string;
2268
+ is_system: boolean;
2269
+ name: string;
2270
+ organization_id: string | null;
2271
+ slug: string;
2272
+ updated_at: string;
2273
+ };
2274
+ Insert: {
2275
+ created_at?: string;
2276
+ description?: string | null;
2277
+ id?: string;
2278
+ is_system?: boolean;
2279
+ name: string;
2280
+ organization_id?: string | null;
2281
+ slug: string;
2282
+ updated_at?: string;
2283
+ };
2284
+ Update: {
2285
+ created_at?: string;
2286
+ description?: string | null;
2287
+ id?: string;
2288
+ is_system?: boolean;
2289
+ name?: string;
2290
+ organization_id?: string | null;
2291
+ slug?: string;
2292
+ updated_at?: string;
2293
+ };
2294
+ Relationships: [
2295
+ {
2296
+ foreignKeyName: "org_rol_definitions_organization_id_fkey";
2587
2297
  columns: ["organization_id"];
2588
2298
  isOneToOne: false;
2589
2299
  referencedRelation: "organizations";
2590
2300
  referencedColumns: ["id"];
2301
+ }
2302
+ ];
2303
+ };
2304
+ org_rol_grants: {
2305
+ Row: {
2306
+ granted_at: string;
2307
+ permission_key: string;
2308
+ role_id: string;
2309
+ };
2310
+ Insert: {
2311
+ granted_at?: string;
2312
+ permission_key: string;
2313
+ role_id: string;
2314
+ };
2315
+ Update: {
2316
+ granted_at?: string;
2317
+ permission_key?: string;
2318
+ role_id?: string;
2319
+ };
2320
+ Relationships: [
2321
+ {
2322
+ foreignKeyName: "org_rol_grants_permission_key_fkey";
2323
+ columns: ["permission_key"];
2324
+ isOneToOne: false;
2325
+ referencedRelation: "org_rol_permissions";
2326
+ referencedColumns: ["key"];
2591
2327
  },
2592
2328
  {
2593
- foreignKeyName: "org_memberships_user_id_fkey";
2594
- columns: ["user_id"];
2329
+ foreignKeyName: "org_rol_grants_role_id_fkey";
2330
+ columns: ["role_id"];
2595
2331
  isOneToOne: false;
2596
- referencedRelation: "users";
2332
+ referencedRelation: "org_rol_definitions";
2597
2333
  referencedColumns: ["id"];
2598
2334
  }
2599
2335
  ];
2600
2336
  };
2337
+ org_rol_permissions: {
2338
+ Row: {
2339
+ created_at: string;
2340
+ description: string;
2341
+ is_org_grantable: boolean;
2342
+ key: string;
2343
+ updated_at: string;
2344
+ };
2345
+ Insert: {
2346
+ created_at?: string;
2347
+ description: string;
2348
+ is_org_grantable?: boolean;
2349
+ key: string;
2350
+ updated_at?: string;
2351
+ };
2352
+ Update: {
2353
+ created_at?: string;
2354
+ description?: string;
2355
+ is_org_grantable?: boolean;
2356
+ key?: string;
2357
+ updated_at?: string;
2358
+ };
2359
+ Relationships: [];
2360
+ };
2601
2361
  organizations: {
2602
2362
  Row: {
2603
2363
  config: Json;
@@ -3355,7 +3115,8 @@ type Database = {
3355
3115
  created_at: string;
3356
3116
  description: string | null;
3357
3117
  id: string;
3358
- key: string;
3118
+ key_hash: string;
3119
+ key_prefix: string | null;
3359
3120
  last_triggered_at: string | null;
3360
3121
  name: string;
3361
3122
  organization_id: string;
@@ -3368,7 +3129,8 @@ type Database = {
3368
3129
  created_at?: string;
3369
3130
  description?: string | null;
3370
3131
  id?: string;
3371
- key: string;
3132
+ key_hash: string;
3133
+ key_prefix?: string | null;
3372
3134
  last_triggered_at?: string | null;
3373
3135
  name: string;
3374
3136
  organization_id: string;
@@ -3381,7 +3143,8 @@ type Database = {
3381
3143
  created_at?: string;
3382
3144
  description?: string | null;
3383
3145
  id?: string;
3384
- key?: string;
3146
+ key_hash?: string;
3147
+ key_prefix?: string | null;
3385
3148
  last_triggered_at?: string | null;
3386
3149
  name?: string;
3387
3150
  organization_id?: string;
@@ -3427,6 +3190,13 @@ type Database = {
3427
3190
  Args: never;
3428
3191
  Returns: string;
3429
3192
  };
3193
+ can_assign_role_in_org: {
3194
+ Args: {
3195
+ p_role_id: string;
3196
+ p_target_membership_id: string;
3197
+ };
3198
+ Returns: boolean;
3199
+ };
3430
3200
  current_user_is_platform_admin: {
3431
3201
  Args: never;
3432
3202
  Returns: boolean;
@@ -3456,6 +3226,10 @@ type Database = {
3456
3226
  user_id: string;
3457
3227
  }[];
3458
3228
  };
3229
+ get_platform_credential_kek: {
3230
+ Args: never;
3231
+ Returns: string;
3232
+ };
3459
3233
  get_storage_org_id: {
3460
3234
  Args: {
3461
3235
  file_path: string;
@@ -3466,6 +3240,13 @@ type Database = {
3466
3240
  Args: never;
3467
3241
  Returns: string;
3468
3242
  };
3243
+ has_org_permission: {
3244
+ Args: {
3245
+ org_id: string;
3246
+ perm_key: string;
3247
+ };
3248
+ Returns: boolean;
3249
+ };
3469
3250
  is_org_admin: {
3470
3251
  Args: {
3471
3252
  org_id: string;
@@ -3498,6 +3279,22 @@ type Database = {
3498
3279
  Args: never;
3499
3280
  Returns: Json;
3500
3281
  };
3282
+ recompute_all_memberships: {
3283
+ Args: never;
3284
+ Returns: undefined;
3285
+ };
3286
+ sync_all_memberships_with_role: {
3287
+ Args: {
3288
+ p_role_id: string;
3289
+ };
3290
+ Returns: undefined;
3291
+ };
3292
+ sync_one_membership: {
3293
+ Args: {
3294
+ p_membership_id: string;
3295
+ };
3296
+ Returns: undefined;
3297
+ };
3501
3298
  upsert_user_profile: {
3502
3299
  Args: never;
3503
3300
  Returns: {
@@ -4129,212 +3926,675 @@ interface CostSummaryResponse {
4129
3926
  };
4130
3927
  }
4131
3928
  /**
4132
- * Cost by model data for model-level breakdown
3929
+ * Cost by model data for model-level breakdown
3930
+ */
3931
+ interface CostByModelData {
3932
+ model: string;
3933
+ totalCostUsd: number;
3934
+ callCount: number;
3935
+ totalInputTokens: number;
3936
+ totalOutputTokens: number;
3937
+ avgCostPerCall: number;
3938
+ }
3939
+ /**
3940
+ * Cost by model response
3941
+ */
3942
+ interface CostByModelResponse {
3943
+ models: CostByModelData[];
3944
+ totalCostUsd: number;
3945
+ totalCallCount: number;
3946
+ }
3947
+
3948
+ /**
3949
+ * Base Execution Engine type definitions
3950
+ * Core types shared across all Execution Engine resources
3951
+ */
3952
+
3953
+ /**
3954
+ * NOTE: AIResource interface has been removed and replaced with ResourceDefinition
3955
+ * from registry/types.ts. All resources (executable and non-executable) now extend
3956
+ * the unified ResourceDefinition base interface.
3957
+ *
3958
+ * AgentConfig and WorkflowConfig now extend ResourceDefinition directly.
3959
+ * See packages/core/src/registry/types.ts for the base interface definition.
3960
+ */
3961
+ type AIResourceDefinition = SerializedWorkflowDefinition | SerializedAgentDefinition;
3962
+
3963
+ /**
3964
+ * Resource Registry type definitions
3965
+ */
3966
+
3967
+ /**
3968
+ * Environment/deployment status for resources
3969
+ */
3970
+ type ResourceStatus = 'dev' | 'prod';
3971
+ /**
3972
+ * All resource types in the platform
3973
+ * Used as the discriminator field in ResourceDefinition
3974
+ */
3975
+ type ResourceType = 'agent' | 'workflow' | 'trigger' | 'integration' | 'external' | 'human';
3976
+ /**
3977
+ * Base interface for ALL platform resources
3978
+ * Shared by both executable (agents, workflows) and non-executable (triggers, integrations, etc.) resources
3979
+ */
3980
+ interface ResourceDefinition {
3981
+ /** Unique resource identifier */
3982
+ resourceId: string;
3983
+ /** Display name */
3984
+ name: string;
3985
+ /** Purpose and functionality description */
3986
+ description: string;
3987
+ /** Version for change tracking and evolution */
3988
+ version: string;
3989
+ /** Resource type discriminator */
3990
+ type: ResourceType;
3991
+ /** Environment/deployment status */
3992
+ status: ResourceStatus;
3993
+ /** Graph links to Organization Model nodes */
3994
+ links?: ResourceLink[];
3995
+ /** Infrastructure category for filtering */
3996
+ category?: ResourceCategory;
3997
+ /** Whether the agent supports multi-turn sessions (agents only) */
3998
+ sessionCapable?: boolean;
3999
+ /** Whether the resource is local (monorepo) or remote (externally deployed) */
4000
+ origin?: 'local' | 'remote';
4001
+ /** Whether this resource is archived and should be excluded from registration and deployment */
4002
+ archived?: boolean;
4003
+ }
4004
+
4005
+ declare const LinkSchema: z.ZodObject<{
4006
+ nodeId: z.ZodString;
4007
+ kind: z.ZodEnum<{
4008
+ contains: "contains";
4009
+ references: "references";
4010
+ exposes: "exposes";
4011
+ maps_to: "maps_to";
4012
+ "operates-on": "operates-on";
4013
+ uses: "uses";
4014
+ }>;
4015
+ }, z.core.$strip>;
4016
+ type Link = z.infer<typeof LinkSchema>;
4017
+
4018
+ declare const ResourceCategorySchema: z.ZodEnum<{
4019
+ production: "production";
4020
+ diagnostic: "diagnostic";
4021
+ internal: "internal";
4022
+ testing: "testing";
4023
+ }>;
4024
+ type ResourceCategory = z.infer<typeof ResourceCategorySchema>;
4025
+ type ResourceLink = Link;
4026
+
4027
+ type ExecutionStatus = 'pending' | 'running' | 'completed' | 'failed' | 'warning';
4028
+ interface APIExecutionSummary {
4029
+ id: string;
4030
+ status: ExecutionStatus;
4031
+ startTime: number;
4032
+ endTime?: number;
4033
+ resourceStatus?: ResourceStatus;
4034
+ }
4035
+ interface APIExecutionDetail extends APIExecutionSummary {
4036
+ executionLogs: ExecutionLogMessage[];
4037
+ input?: unknown;
4038
+ result?: unknown;
4039
+ error?: string;
4040
+ resourceStatus: ResourceStatus;
4041
+ apiVersion?: string | null;
4042
+ resourceVersion?: string | null;
4043
+ sdkVersion?: string | null;
4044
+ isArchived?: boolean;
4045
+ archivedLogCount?: number;
4046
+ }
4047
+
4048
+ /**
4049
+ * Resource Type Metadata
4050
+ *
4051
+ * Centralized metadata for ResourceDefinition types including icon names and colors.
4052
+ * Icon names reference @tabler/icons-react - UI layer maps these to actual components.
4053
+ */
4054
+
4055
+ /**
4056
+ * Node color types for graph visualization
4057
+ * Used by both @repo/core (metadata) and @repo/ui (components)
4058
+ */
4059
+ type NodeColorType = 'violet' | 'blue' | 'orange' | 'teal' | 'gray' | 'yellow';
4060
+
4061
+ type ActivityType = 'workflow_execution' | 'agent_run' | 'hitl_action' | 'webhook_received' | 'webhook_executed' | 'webhook_failed' | 'credential_change' | 'credential_read' | 'api_key_change' | 'deployment_change' | 'membership_change';
4062
+ type ActivityStatus = 'success' | 'failure' | 'pending' | 'approved' | 'rejected' | 'completed';
4063
+ interface Activity {
4064
+ id: string;
4065
+ organizationId: string;
4066
+ activityType: ActivityType;
4067
+ status: ActivityStatus;
4068
+ title: string;
4069
+ description: string | null;
4070
+ entityType: string;
4071
+ entityId: string;
4072
+ entityName: string | null;
4073
+ metadata: Record<string, unknown> | null;
4074
+ actorId: string | null;
4075
+ actorType: string | null;
4076
+ occurredAt: Date;
4077
+ createdAt: Date;
4078
+ }
4079
+
4080
+ /**
4081
+ * Canonical permission catalog.
4082
+ *
4083
+ * Source of truth for the permission keys used by:
4084
+ * - RLS policies in Supabase (via has_org_permission(org_id, key))
4085
+ * - API middleware (via requireOrganizationPermission(key))
4086
+ * - UI hooks (via useOrganizationPermissions().hasPermission(key))
4087
+ *
4088
+ * The DB table `org_rol_permissions` mirrors this constant. Reconciliation
4089
+ * runs at API boot (insert-or-update only — never auto-delete; see the
4090
+ * deletion runbook in the auth-role-system-redesign doc).
4091
+ *
4092
+ * Adding a permission:
4093
+ * 1. Add an entry below.
4094
+ * 2. Add a row to the migration / via reconcilePermissionCatalog at boot.
4095
+ * 3. Reference it in RLS / middleware as needed.
4096
+ * 4. Optionally grant it to one or more system roles in org_rol_grants.
4097
+ *
4098
+ * Removing a permission: follow the deletion runbook — never just delete
4099
+ * the entry. Existing role grants and policy references must be cleared first.
4100
+ */
4101
+ declare const PERMISSIONS: {
4102
+ readonly ORG_READ: "org.read";
4103
+ readonly ORG_MANAGE: "org.manage";
4104
+ readonly ORG_DELETE: "org.delete";
4105
+ readonly MEMBERS_MANAGE: "members.manage";
4106
+ readonly ROLES_MANAGE: "roles.manage";
4107
+ readonly SECRETS_MANAGE: "secrets.manage";
4108
+ readonly OPERATIONS_READ: "operations.read";
4109
+ readonly OPERATIONS_MANAGE: "operations.manage";
4110
+ readonly WORK_MANAGE: "work.manage";
4111
+ };
4112
+ type PermissionKey = (typeof PERMISSIONS)[keyof typeof PERMISSIONS];
4113
+ /**
4114
+ * Static metadata for each permission. Mirrored into org_rol_permissions on
4115
+ * boot reconciliation. is_org_grantable=false means the permission is reserved
4116
+ * to system roles only — custom roles cannot include it (privilege-escalation guard).
4117
+ */
4118
+ interface PermissionDescriptor {
4119
+ key: PermissionKey;
4120
+ description: string;
4121
+ isOrgGrantable: boolean;
4122
+ }
4123
+
4124
+ /**
4125
+ * Execution Runner Types
4126
+ *
4127
+ * Shared types for the Execution Runner UI feature.
4128
+ * Used by both API (apps/api) and frontend (apps/command-center).
4129
+ */
4130
+
4131
+ interface ExecutionRunnerCatalogItem {
4132
+ resourceId: string;
4133
+ resourceName: string;
4134
+ resourceType: 'workflow' | 'agent';
4135
+ description?: string;
4136
+ status: 'dev' | 'prod';
4137
+ version: string;
4138
+ interface: SerializedExecutionInterface;
4139
+ }
4140
+
4141
+ /**
4142
+ * Deployment types — browser-safe
4143
+ *
4144
+ * Canonical API response types for the deployment resource.
4145
+ * The API's transformRow converts snake_case DB columns to these camelCase fields.
4146
+ */
4147
+ type DeploymentStatus = 'deploying' | 'active' | 'failed' | 'rolled_back' | 'stopped';
4148
+ interface Deployment {
4149
+ id: string;
4150
+ organizationId: string;
4151
+ status: DeploymentStatus;
4152
+ sdkVersion: string;
4153
+ deploymentVersion: string | null;
4154
+ port: number | null;
4155
+ pid: number | null;
4156
+ tarballPath: string | null;
4157
+ errorMessage: string | null;
4158
+ createdAt: string;
4159
+ updatedAt: string;
4160
+ }
4161
+
4162
+ /**
4163
+ * GET /api/credentials - List credentials
4164
+ */
4165
+ declare const ListCredentialsResponseSchema: z.ZodObject<{
4166
+ credentials: z.ZodArray<z.ZodObject<{
4167
+ id: z.ZodString;
4168
+ name: z.ZodString;
4169
+ type: z.ZodString;
4170
+ provider: z.ZodNullable<z.ZodString>;
4171
+ createdAt: z.ZodString;
4172
+ }, z.core.$strip>>;
4173
+ }, z.core.$strip>;
4174
+ /** API response type for a single credential list item */
4175
+ type CredentialListItem = z.infer<typeof ListCredentialsResponseSchema>['credentials'][number];
4176
+
4177
+ type Props$2 = {
4178
+ permission: PermissionKey | string;
4179
+ fallback?: ReactNode;
4180
+ children: ReactNode;
4181
+ };
4182
+ declare function Can({ permission, fallback, children }: Props$2): react_jsx_runtime.JSX.Element | null;
4183
+
4184
+ type Props$1 = {
4185
+ slug: string;
4186
+ name: string;
4187
+ isSystem: boolean;
4188
+ };
4189
+ declare function RoleBadge({ name, isSystem }: Props$1): react_jsx_runtime.JSX.Element;
4190
+
4191
+ type PermissionRow = PermissionDescriptor;
4192
+ type Props = {
4193
+ catalog: PermissionRow[];
4194
+ selectedKeys: string[];
4195
+ onChange?: (keys: string[]) => void;
4196
+ systemLocked?: boolean;
4197
+ };
4198
+ declare function PermissionMatrix({ catalog, selectedKeys, onChange, systemLocked }: Props): react_jsx_runtime.JSX.Element;
4199
+
4200
+ declare function NoAccessState(): react_jsx_runtime.JSX.Element;
4201
+
4202
+ type CreateRoleModalProps = {
4203
+ opened: boolean;
4204
+ onClose: () => void;
4205
+ onCreated?: (roleId: string) => void;
4206
+ };
4207
+ declare function CreateRoleModal({ opened, onClose, onCreated }: CreateRoleModalProps): react_jsx_runtime.JSX.Element;
4208
+
4209
+ declare function showAuthError(error: unknown): void;
4210
+
4211
+ interface EmptyStateProps {
4212
+ /** Icon component to display (e.g., IconKey from @tabler/icons-react) */
4213
+ icon: ComponentType<{
4214
+ size: number;
4215
+ style?: React.CSSProperties;
4216
+ }>;
4217
+ /** Main title text */
4218
+ title: string;
4219
+ /** Description text shown below title */
4220
+ description?: string;
4221
+ /** Optional action button */
4222
+ action?: {
4223
+ label: string;
4224
+ onClick: () => void;
4225
+ icon?: ReactNode;
4226
+ };
4227
+ /** Vertical padding - defaults to 'xl' */
4228
+ py?: MantineSpacing;
4229
+ }
4230
+ /**
4231
+ * EmptyState - Reusable empty state component for lists and tables
4232
+ *
4233
+ * Consolidates the Center + Stack + Icon + Text pattern used across:
4234
+ * - ApiKeyList.tsx
4235
+ * - CredentialList.tsx
4236
+ * - Various other list components
4237
+ *
4238
+ * @example
4239
+ * ```tsx
4240
+ * <EmptyState
4241
+ * icon={IconKey}
4242
+ * title="No API keys yet"
4243
+ * description="Create your first API key to enable external integrations"
4244
+ * action={{ label: "Create API Key", onClick: handleCreate }}
4245
+ * />
4246
+ * ```
4133
4247
  */
4134
- interface CostByModelData {
4135
- model: string;
4136
- totalCostUsd: number;
4137
- callCount: number;
4138
- totalInputTokens: number;
4139
- totalOutputTokens: number;
4140
- avgCostPerCall: number;
4248
+ declare function EmptyState({ icon: Icon, title, description, action, py }: EmptyStateProps): react_jsx_runtime.JSX.Element;
4249
+
4250
+ interface TabCountBadgeProps {
4251
+ count: number;
4252
+ isLoading?: boolean;
4141
4253
  }
4142
4254
  /**
4143
- * Cost by model response
4255
+ * A badge that displays a count in tabs with consistent sizing.
4256
+ * Uses a fixed-width container to prevent layout shift when switching
4257
+ * between the loading spinner and the count badge.
4144
4258
  */
4145
- interface CostByModelResponse {
4146
- models: CostByModelData[];
4147
- totalCostUsd: number;
4148
- totalCallCount: number;
4149
- }
4259
+ declare function TabCountBadge({ count, isLoading }: TabCountBadgeProps): react_jsx_runtime.JSX.Element;
4150
4260
 
4151
4261
  /**
4152
- * Base Execution Engine type definitions
4153
- * Core types shared across all Execution Engine resources
4262
+ * TrendIndicator - Reusable component for showing percentage change trends
4263
+ * Displays up/down/flat arrow with colored badge
4154
4264
  */
4155
-
4265
+ interface TrendIndicatorProps {
4266
+ /** Current value */
4267
+ current: number;
4268
+ /** Previous value to compare against */
4269
+ previous: number;
4270
+ /** Optional formatter for the value (not used in display but kept for API compatibility) */
4271
+ formatter?: (value: number) => string;
4272
+ /** If true, negative change is considered positive (e.g., for costs) */
4273
+ inverse?: boolean;
4274
+ }
4156
4275
  /**
4157
- * NOTE: AIResource interface has been removed and replaced with ResourceDefinition
4158
- * from registry/types.ts. All resources (executable and non-executable) now extend
4159
- * the unified ResourceDefinition base interface.
4276
+ * Shows a trend indicator with arrow icon and percentage change badge
4160
4277
  *
4161
- * AgentConfig and WorkflowConfig now extend ResourceDefinition directly.
4162
- * See packages/core/src/registry/types.ts for the base interface definition.
4278
+ * @example
4279
+ * // Positive trend (green when going up)
4280
+ * <TrendIndicator current={100} previous={80} />
4281
+ *
4282
+ * @example
4283
+ * // Inverse trend (green when going down, useful for costs)
4284
+ * <TrendIndicator current={100} previous={120} inverse />
4163
4285
  */
4164
- type AIResourceDefinition = SerializedWorkflowDefinition | SerializedAgentDefinition;
4286
+ declare function TrendIndicator({ current, previous, inverse }: TrendIndicatorProps): react_jsx_runtime.JSX.Element;
4165
4287
 
4288
+ interface CollapsibleSectionProps {
4289
+ title: string | ReactNode;
4290
+ count?: number;
4291
+ countLabel?: string;
4292
+ children: ReactNode;
4293
+ emptyMessage?: string;
4294
+ defaultExpanded?: boolean;
4295
+ maxHeight?: number;
4296
+ }
4166
4297
  /**
4167
- * Resource Registry type definitions
4298
+ * Reusable collapsible section with header, badge, and scroll area
4299
+ * Used for expandable content like memory sections, logs, etc.
4168
4300
  */
4301
+ declare function CollapsibleSection({ title, count, countLabel, children, emptyMessage, defaultExpanded, maxHeight }: CollapsibleSectionProps): react_jsx_runtime.JSX.Element;
4169
4302
 
4303
+ interface PageTitleCaptionProps {
4304
+ title: string;
4305
+ caption?: string;
4306
+ rightSection?: ReactNode;
4307
+ }
4308
+ declare const PageTitleCaption: ({ title, caption, rightSection }: PageTitleCaptionProps) => react_jsx_runtime.JSX.Element;
4309
+
4310
+ interface StatsCardSkeletonProps {
4311
+ /** Height of the loader area - defaults to 200 */
4312
+ chartHeight?: number;
4313
+ /** Kept for API compat, unused */
4314
+ withChart?: boolean;
4315
+ /** Kept for API compat, unused */
4316
+ statCount?: 2 | 3;
4317
+ }
4170
4318
  /**
4171
- * Environment/deployment status for resources
4319
+ * StatsCardSkeleton - Loading state for dashboard metric cards
4320
+ *
4321
+ * Used across:
4322
+ * - ExecutionHealthCard.tsx
4323
+ * - CostMetricsCard.tsx
4324
+ * - ThroughputCard.tsx
4325
+ * - BusinessImpactCard.tsx
4172
4326
  */
4173
- type ResourceStatus = 'dev' | 'prod';
4327
+ declare function StatsCardSkeleton({ chartHeight }: StatsCardSkeletonProps): react_jsx_runtime.JSX.Element;
4328
+ interface ListSkeletonProps {
4329
+ /** Number of rows (used to calculate height) - defaults to 3 */
4330
+ rows?: number;
4331
+ /** Height of each row - defaults to 50 */
4332
+ rowHeight?: number;
4333
+ }
4174
4334
  /**
4175
- * All resource types in the platform
4176
- * Used as the discriminator field in ResourceDefinition
4335
+ * ListSkeleton - Loading state for table/list content
4336
+ *
4337
+ * Used across:
4338
+ * - ApiKeyList.tsx
4339
+ * - CredentialList.tsx
4340
+ * - DeploymentList.tsx
4341
+ * - WebhookEndpointList.tsx
4177
4342
  */
4178
- type ResourceType = 'agent' | 'workflow' | 'trigger' | 'integration' | 'external' | 'human';
4343
+ declare function ListSkeleton({ rows, rowHeight }: ListSkeletonProps): react_jsx_runtime.JSX.Element;
4344
+ interface DetailCardSkeletonProps {
4345
+ /** Number of detail rows (used to calculate height) - defaults to 3 */
4346
+ rows?: number;
4347
+ }
4179
4348
  /**
4180
- * Base interface for ALL platform resources
4181
- * Shared by both executable (agents, workflows) and non-executable (triggers, integrations, etc.) resources
4349
+ * DetailCardSkeleton - Loading state for cards with list of detail items
4350
+ *
4351
+ * Used for cards like CostBreakdownCard
4182
4352
  */
4183
- interface ResourceDefinition {
4184
- /** Unique resource identifier */
4185
- resourceId: string;
4186
- /** Display name */
4187
- name: string;
4188
- /** Purpose and functionality description */
4189
- description: string;
4190
- /** Version for change tracking and evolution */
4191
- version: string;
4192
- /** Resource type discriminator */
4193
- type: ResourceType;
4194
- /** Environment/deployment status */
4195
- status: ResourceStatus;
4196
- /** Domain tags for filtering and organization */
4197
- domains?: ResourceDomain[];
4198
- /** Whether the agent supports multi-turn sessions (agents only) */
4199
- sessionCapable?: boolean;
4200
- /** Whether the resource is local (monorepo) or remote (externally deployed) */
4201
- origin?: 'local' | 'remote';
4202
- /** Whether this resource is archived and should be excluded from registration and deployment */
4203
- archived?: boolean;
4353
+ declare function DetailCardSkeleton({ rows }: DetailCardSkeletonProps): react_jsx_runtime.JSX.Element;
4354
+
4355
+ interface NavigationButtonProps {
4356
+ /** Icon component to display */
4357
+ icon: React__default.ComponentType<{
4358
+ size?: number;
4359
+ stroke?: number;
4360
+ }>;
4361
+ /** Button label text */
4362
+ label: string;
4363
+ /** Whether the button is in collapsed state (hides text) */
4364
+ isCollapsed?: boolean;
4365
+ /** Whether this button has sub-items/links */
4366
+ hasSubItems?: boolean;
4367
+ /** Whether sub-items are expanded (controls chevron rotation) */
4368
+ isExpanded?: boolean;
4369
+ /** Whether the icon and text should be styled as active */
4370
+ isActive?: boolean;
4371
+ /** Whether the background should be styled as active */
4372
+ hasActiveBackground?: boolean;
4373
+ /** Click handler */
4374
+ onClick?: () => void;
4375
+ /** Additional styles for the button container */
4376
+ style?: React__default.CSSProperties;
4377
+ /** Custom transition duration in ms */
4378
+ transitionDuration?: number;
4379
+ }
4380
+ declare const NavigationButton: React__default.FC<NavigationButtonProps>;
4381
+
4382
+ interface CustomSelectorProps {
4383
+ value: string | null;
4384
+ onChange: (value: string | null) => void;
4385
+ data: {
4386
+ value: string;
4387
+ label: string;
4388
+ }[] | readonly {
4389
+ value: string;
4390
+ label: string;
4391
+ }[];
4392
+ leftSection?: ReactNode;
4393
+ placeholder?: string;
4394
+ w?: number | string;
4395
+ withCheckIcon?: boolean;
4396
+ disabled?: boolean;
4397
+ }
4398
+ declare function CustomSelector({ value, onChange, data, leftSection, placeholder, w, withCheckIcon, disabled }: CustomSelectorProps): react_jsx_runtime.JSX.Element;
4399
+
4400
+ interface APIErrorAlertProps {
4401
+ /**
4402
+ * The error to display. Can be an APIClientError, generic Error, or any unknown value.
4403
+ */
4404
+ error: unknown;
4405
+ /**
4406
+ * Optional title override. If not provided, uses getErrorTitle() based on error code.
4407
+ */
4408
+ title?: string;
4409
+ /**
4410
+ * Whether to show the request ID (if available). Defaults to true.
4411
+ */
4412
+ showRequestId?: boolean;
4413
+ /**
4414
+ * Optional custom icon. Defaults to IconAlertCircle.
4415
+ */
4416
+ icon?: React.ReactNode;
4417
+ /**
4418
+ * Alert color. Defaults to 'red'.
4419
+ */
4420
+ color?: string;
4204
4421
  }
4205
-
4206
4422
  /**
4207
- * Standard Domain Definitions
4208
- * Centralized domain constants and definitions for all organization resources.
4423
+ * Alert component for displaying API errors with type-safe error handling.
4424
+ *
4425
+ * Automatically extracts error message, code, and request ID from APIClientError
4426
+ * or falls back to generic Error handling.
4427
+ *
4428
+ * @example
4429
+ * ```tsx
4430
+ * const { data, error } = useQuery(...)
4431
+ *
4432
+ * if (error) {
4433
+ * return <APIErrorAlert error={error} />
4434
+ * }
4435
+ * ```
4436
+ *
4437
+ * @example With custom title
4438
+ * ```tsx
4439
+ * <APIErrorAlert
4440
+ * error={error}
4441
+ * title="Failed to load resources"
4442
+ * />
4443
+ * ```
4444
+ *
4445
+ * @example Without request ID
4446
+ * ```tsx
4447
+ * <APIErrorAlert
4448
+ * error={error}
4449
+ * showRequestId={false}
4450
+ * />
4451
+ * ```
4209
4452
  */
4453
+ declare function APIErrorAlert({ error, title, showRequestId, icon, color }: APIErrorAlertProps): react_jsx_runtime.JSX.Element;
4210
4454
 
4211
- declare const DOMAINS: {
4212
- readonly INBOUND_PIPELINE: "inbound-pipeline";
4213
- readonly LEAD_GEN_PIPELINE: "lead-gen-pipeline";
4214
- readonly SUPPORT: "support";
4215
- readonly CLIENT_SUPPORT: "client-support";
4216
- readonly DELIVERY: "delivery";
4217
- readonly OPERATIONS: "operations";
4218
- readonly FINANCE: "finance";
4219
- readonly EXECUTIVE: "executive";
4220
- readonly INSTANTLY: "instantly";
4221
- readonly TESTING: "testing";
4222
- readonly INTERNAL: "internal";
4223
- readonly INTEGRATION: "integration";
4224
- readonly UTILITY: "utility";
4225
- readonly DIAGNOSTIC: "diagnostic";
4226
- };
4455
+ interface CenteredErrorStateProps {
4456
+ error: unknown;
4457
+ title?: string;
4458
+ /** Minimum height of the centering container. Defaults to 300. */
4459
+ h?: number | string;
4460
+ /** Vertical padding (used when h is not set). */
4461
+ py?: MantineSpacing;
4462
+ }
4227
4463
  /**
4228
- * ResourceDomain - Strongly typed domain identifier
4229
- * Use this type for all domain references to ensure compile-time validation.
4464
+ * CenteredErrorState - Displays an error centered inside its container.
4465
+ *
4466
+ * The caller is responsible for providing the container (e.g. `<Paper withBorder>`).
4467
+ * This component only handles centering + rendering the error alert.
4468
+ *
4469
+ * @example
4470
+ * ```tsx
4471
+ * if (error) {
4472
+ * return (
4473
+ * <Paper withBorder>
4474
+ * <CenteredErrorState error={error} title="Failed to load trends" />
4475
+ * </Paper>
4476
+ * )
4477
+ * }
4478
+ * ```
4230
4479
  */
4231
- type ResourceDomain = (typeof DOMAINS)[keyof typeof DOMAINS];
4480
+ declare function CenteredErrorState({ error, title, h, py }: CenteredErrorStateProps): react_jsx_runtime.JSX.Element;
4232
4481
 
4233
- type ExecutionStatus = 'pending' | 'running' | 'completed' | 'failed' | 'warning';
4234
- interface APIExecutionSummary {
4235
- id: string;
4236
- status: ExecutionStatus;
4237
- startTime: number;
4238
- endTime?: number;
4239
- resourceStatus?: ResourceStatus;
4482
+ interface StatCardBaseProps {
4483
+ /** The label/description text */
4484
+ label: string;
4485
+ /** The value to display (number or formatted string) */
4486
+ value: string | number;
4487
+ /** Tabler icon component */
4488
+ icon: Icon;
4489
+ /** Optional extra content rendered below the label */
4490
+ children?: ReactNode;
4240
4491
  }
4241
- interface APIExecutionDetail extends APIExecutionSummary {
4242
- executionLogs: ExecutionLogMessage[];
4243
- input?: unknown;
4244
- result?: unknown;
4245
- error?: string;
4246
- resourceStatus: ResourceStatus;
4247
- apiVersion?: string | null;
4248
- resourceVersion?: string | null;
4249
- sdkVersion?: string | null;
4250
- isArchived?: boolean;
4251
- archivedLogCount?: number;
4492
+ interface StatCardDefaultProps extends StatCardBaseProps {
4493
+ variant?: 'default';
4494
+ /** Theme color for the icon (defaults to theme primary) */
4495
+ color?: MantineColor;
4496
+ isLoading?: never;
4497
+ valueColor?: never;
4252
4498
  }
4253
-
4499
+ interface StatCardHeroProps extends StatCardBaseProps {
4500
+ variant: 'hero';
4501
+ /** Whether data is loading */
4502
+ isLoading?: boolean;
4503
+ /** Custom color for the value text */
4504
+ valueColor?: string;
4505
+ /** Card sizing — 'sm' (default) for compact layouts, 'md' for spacious layouts */
4506
+ size?: 'sm' | 'md';
4507
+ color?: never;
4508
+ }
4509
+ type StatCardProps = StatCardDefaultProps | StatCardHeroProps;
4254
4510
  /**
4255
- * Resource Type Metadata
4511
+ * StatCard - Stat display card with icon, label, and value.
4256
4512
  *
4257
- * Centralized metadata for ResourceDefinition types including icon names and colors.
4258
- * Icon names reference @tabler/icons-react - UI layer maps these to actual components.
4513
+ * Supports two variants:
4514
+ * - `default`: Compact card with ThemeIcon (used in admin overviews)
4515
+ * - `hero`: Glass card with glowing icon ring (used on dashboards)
4516
+ *
4517
+ * @example
4518
+ * ```tsx
4519
+ * // Default variant
4520
+ * <StatCard label="Total Executions" value={150} icon={IconPlayerPlay} color="blue" />
4521
+ *
4522
+ * // Hero variant
4523
+ * <StatCard variant="hero" label="Executions" value={43} icon={IconPlayerPlay} isLoading={false} />
4524
+ * ```
4259
4525
  */
4260
-
4526
+ declare function StatCard(props: StatCardProps): react_jsx_runtime.JSX.Element;
4261
4527
  /**
4262
- * Node color types for graph visualization
4263
- * Used by both @repo/core (metadata) and @repo/ui (components)
4528
+ * StatCardSkeleton - Loading skeleton for StatCard (default variant)
4264
4529
  */
4265
- type NodeColorType = 'violet' | 'blue' | 'orange' | 'teal' | 'gray' | 'yellow';
4530
+ declare function StatCardSkeleton(): react_jsx_runtime.JSX.Element;
4266
4531
 
4267
- type ActivityType = 'workflow_execution' | 'agent_run' | 'hitl_action' | 'webhook_received' | 'webhook_executed' | 'webhook_failed' | 'credential_change' | 'api_key_change' | 'deployment_change' | 'membership_change';
4268
- type ActivityStatus = 'success' | 'failure' | 'pending' | 'approved' | 'rejected' | 'completed';
4269
- interface Activity {
4270
- id: string;
4271
- organizationId: string;
4272
- activityType: ActivityType;
4273
- status: ActivityStatus;
4274
- title: string;
4275
- description: string | null;
4276
- entityType: string;
4277
- entityId: string;
4278
- entityName: string | null;
4279
- metadata: Record<string, unknown> | null;
4280
- actorId: string | null;
4281
- actorType: string | null;
4282
- occurredAt: Date;
4283
- createdAt: Date;
4532
+ interface StyledMarkdownProps {
4533
+ /** Markdown content to render */
4534
+ children: string;
4535
+ /** Custom component overrides */
4536
+ components?: Partial<Components>;
4537
+ /** Additional class name */
4538
+ className?: string;
4539
+ /** Inline styles for the wrapper div */
4540
+ style?: React.CSSProperties;
4284
4541
  }
4285
-
4286
4542
  /**
4287
- * Execution Runner Types
4543
+ * Styled markdown renderer with Mantine components and syntax highlighting
4288
4544
  *
4289
- * Shared types for the Execution Runner UI feature.
4290
- * Used by both API (apps/api) and frontend (apps/command-center).
4545
+ * Features:
4546
+ * - Colored headings using theme primary color
4547
+ * - Syntax-highlighted code blocks (oneDark theme, no token backgrounds)
4548
+ * - Styled inline code with Mantine Code component
4549
+ * - Styled blockquotes with left border
4550
+ * - Proper list styling
4551
+ *
4552
+ * @example
4553
+ * ```tsx
4554
+ * import { StyledMarkdown } from '@repo/ui'
4555
+ *
4556
+ * <StyledMarkdown>{markdownContent}</StyledMarkdown>
4557
+ * ```
4291
4558
  */
4559
+ declare function StyledMarkdown({ children, components, className, style }: StyledMarkdownProps): react_jsx_runtime.JSX.Element;
4292
4560
 
4293
- interface ExecutionRunnerCatalogItem {
4294
- resourceId: string;
4295
- resourceName: string;
4296
- resourceType: 'workflow' | 'agent';
4297
- description?: string;
4298
- status: 'dev' | 'prod';
4299
- version: string;
4300
- interface: SerializedExecutionInterface;
4561
+ interface JsonViewerProps {
4562
+ /** JSON data to display (will be stringified) or pre-formatted JSON string */
4563
+ data: unknown;
4564
+ /** Maximum height with scroll (e.g., '300px'). If not set, expands to content */
4565
+ maxHeight?: string | number;
4566
+ /** Font size override */
4567
+ fontSize?: string | number;
4301
4568
  }
4302
-
4303
4569
  /**
4304
- * Deployment types browser-safe
4570
+ * Syntax-highlighted JSON viewer component
4305
4571
  *
4306
- * Canonical API response types for the deployment resource.
4307
- * The API's transformRow converts snake_case DB columns to these camelCase fields.
4572
+ * @example
4573
+ * ```tsx
4574
+ * import { JsonViewer } from '@repo/ui'
4575
+ *
4576
+ * <JsonViewer data={{ foo: 'bar', count: 42 }} />
4577
+ * <JsonViewer data={apiResponse} maxHeight={300} />
4578
+ * ```
4308
4579
  */
4309
- type DeploymentStatus = 'deploying' | 'active' | 'failed' | 'rolled_back' | 'stopped';
4310
- interface Deployment {
4311
- id: string;
4312
- organizationId: string;
4313
- status: DeploymentStatus;
4314
- sdkVersion: string;
4315
- deploymentVersion: string | null;
4316
- port: number | null;
4317
- pid: number | null;
4318
- tarballPath: string | null;
4319
- errorMessage: string | null;
4320
- createdAt: string;
4321
- updatedAt: string;
4322
- }
4580
+ declare function JsonViewer({ data, maxHeight, fontSize }: JsonViewerProps): react_jsx_runtime.JSX.Element;
4323
4581
 
4582
+ interface ContextViewerProps {
4583
+ /** Any JSON-serializable data to display in a human-readable format */
4584
+ data: unknown;
4585
+ }
4324
4586
  /**
4325
- * GET /api/credentials - List credentials
4587
+ * Auto-formats any JSON context into a human-readable layout.
4588
+ *
4589
+ * - Strings → rendered as markdown (supports formatting, lists, tables)
4590
+ * - Flat key-value objects → labeled field list
4591
+ * - Nested objects → indented subsections with left border
4592
+ * - Arrays → bulleted lists or bordered cards
4593
+ * - null/undefined/boolean/number → inline text
4594
+ *
4595
+ * No display configuration needed — the component infers layout from data shape.
4326
4596
  */
4327
- declare const ListCredentialsResponseSchema: z.ZodObject<{
4328
- credentials: z.ZodArray<z.ZodObject<{
4329
- id: z.ZodString;
4330
- name: z.ZodString;
4331
- type: z.ZodString;
4332
- provider: z.ZodNullable<z.ZodString>;
4333
- createdAt: z.ZodString;
4334
- }, z.core.$strip>>;
4335
- }, z.core.$strip>;
4336
- /** API response type for a single credential list item */
4337
- type CredentialListItem = z.infer<typeof ListCredentialsResponseSchema>['credentials'][number];
4597
+ declare function ContextViewer({ data }: ContextViewerProps): react_jsx_runtime.JSX.Element;
4338
4598
 
4339
4599
  interface TimeRangeSelectorProps {
4340
4600
  value: TimeRange;
@@ -4445,7 +4705,7 @@ interface ICustomModalProps {
4445
4705
  children: React__default.ReactNode | React__default.ReactNode[] | string;
4446
4706
  loading?: boolean;
4447
4707
  style?: React__default.CSSProperties;
4448
- size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
4708
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full' | string;
4449
4709
  }
4450
4710
  declare const CustomModal: ({ children, opened, onClose, loading, style, size }: ICustomModalProps) => react_jsx_runtime.JSX.Element;
4451
4711
 
@@ -4632,7 +4892,8 @@ interface CreateCredentialResponse {
4632
4892
  declare const WebhookEndpointResponseSchema: z.ZodObject<{
4633
4893
  id: z.ZodString;
4634
4894
  organizationId: z.ZodString;
4635
- key: z.ZodString;
4895
+ key: z.ZodOptional<z.ZodString>;
4896
+ keyPrefix: z.ZodNullable<z.ZodString>;
4636
4897
  name: z.ZodString;
4637
4898
  description: z.ZodNullable<z.ZodString>;
4638
4899
  resourceId: z.ZodNullable<z.ZodString>;
@@ -5198,13 +5459,6 @@ interface RunResourceButtonProps {
5198
5459
  label?: string;
5199
5460
  icon?: ReactNode;
5200
5461
  color?: string;
5201
- organizationModel?: {
5202
- resourceMappings?: Array<{
5203
- resourceId: string;
5204
- label?: string;
5205
- color?: string;
5206
- }>;
5207
- };
5208
5462
  onSuccess?: (result: ExecuteAsyncResult) => void;
5209
5463
  onError?: (error: Error) => void;
5210
5464
  }
@@ -5214,9 +5468,9 @@ interface RunResourceButtonProps {
5214
5468
  * - If getInput() returns a plain object, executes immediately.
5215
5469
  * - If getInput() returns { schema, defaults? }, opens a modal with ZodFormRenderer.
5216
5470
  *
5217
- * Label and color resolve from: explicit props > resourceMappings entry > defaults.
5471
+ * Label and color resolve from explicit props, then defaults.
5218
5472
  */
5219
- declare function RunResourceButton({ resourceId, resourceType, getInput, label, icon, color, organizationModel, onSuccess, onError }: RunResourceButtonProps): react_jsx_runtime.JSX.Element;
5473
+ declare function RunResourceButton({ resourceId, resourceType, getInput, label, icon, color, onSuccess, onError }: RunResourceButtonProps): react_jsx_runtime.JSX.Element;
5220
5474
 
5221
5475
  /**
5222
5476
  * Graph Component Types
@@ -6109,23 +6363,11 @@ declare function MdxRenderer({ compiledSource }: MdxRendererProps): react_jsx_ru
6109
6363
  declare const mdxComponents: Record<string, React.ComponentType<Record<string, unknown>>>;
6110
6364
 
6111
6365
  interface UseBreadcrumbsOptions {
6112
- /** Navigation items to match against for proper labels */
6113
- navItems?: Array<{
6114
- label: string;
6115
- link?: string;
6116
- links?: Array<{
6117
- label: string;
6118
- link?: string;
6119
- links?: Array<{
6120
- label: string;
6121
- link: string;
6122
- }>;
6123
- }>;
6124
- }>;
6366
+ labelsByPath?: Record<string, string>;
6125
6367
  }
6126
6368
 
6127
6369
  type BreadcrumbsProps = UseBreadcrumbsOptions;
6128
- declare const Breadcrumbs: ({ navItems }: BreadcrumbsProps) => react_jsx_runtime.JSX.Element;
6370
+ declare const Breadcrumbs: (props: BreadcrumbsProps) => react_jsx_runtime.JSX.Element;
6129
6371
 
6130
6372
  interface KanbanBoardProps {
6131
6373
  /** Required column configuration. If omitted or empty, the board shows a configuration-required state. */
@@ -6309,50 +6551,32 @@ interface QuickCreateActionsProps {
6309
6551
  }
6310
6552
  declare function QuickCreateActions({ showSectionLabel }: QuickCreateActionsProps): react_jsx_runtime.JSX.Element;
6311
6553
 
6312
- interface FeatureNavLink {
6313
- label: string;
6314
- link: string;
6315
- featureKey?: string;
6316
- onClick?: () => void;
6317
- links?: FeatureNavLink[];
6318
- }
6319
- interface FeatureNavEntry {
6320
- label: string;
6321
- icon: ComponentType;
6322
- link?: string;
6323
- featureKey?: string;
6324
- requiresAdmin?: boolean;
6325
- dataOnboardingTourId?: string;
6326
- links?: FeatureNavLink[];
6327
- }
6328
6554
  type FeatureSidebarComponent = ComponentType;
6555
+ type FeatureIconComponent = ComponentType<{
6556
+ size?: number;
6557
+ stroke?: number;
6558
+ }>;
6559
+ type FeatureSidebarWidthResolver = number | ((context: {
6560
+ currentPath: string;
6561
+ }) => number);
6329
6562
  interface FeatureModule {
6330
- /** Unique stable identifier for this feature (e.g. `'crm'`, `'projects'`). */
6563
+ /** Unique stable identifier for this feature module. */
6331
6564
  key: string;
6332
- /** Feature ID used for access-flag gating — must match the `id` of a feature in the organization model. */
6565
+ /** Organization Model feature id this module presents. */
6333
6566
  featureId: string;
6334
- /**
6335
- * Capability identifiers contributed by this feature.
6336
- * Merged into `ResolvedFeatureSemantics.capabilityIds` at resolution time.
6337
- * Not queried at runtime — kept for semantic graph completeness so that
6338
- * capability membership is fully represented in the resolved model even when
6339
- * a surface does not declare it directly.
6340
- */
6567
+ /** Capability identifiers contributed by this feature module. */
6341
6568
  capabilityIds?: string[];
6342
- /** Top-level navigation entry rendered in the app shell when this feature is enabled. */
6343
- navEntry?: FeatureNavEntry;
6344
- /** Sidebar component rendered when a matching subshell route is active. */
6569
+ /** Icon used when this feature node appears in shell navigation. */
6570
+ icon?: FeatureIconComponent;
6571
+ /** Sidebar component rendered when this feature's subtree route is active. */
6345
6572
  sidebar?: FeatureSidebarComponent;
6346
- /** Route path prefixes that activate this feature's sidebar and subshell context. */
6347
- subshellRoutes?: string[];
6348
- /**
6349
- * Operations-only bridge surface connecting this feature to the organization graph.
6350
- * Ignored by all other features. Only one manifest in the registry should set this.
6351
- */
6573
+ /** Optional shell sidebar width override. Defaults to 250px. */
6574
+ sidebarWidth?: FeatureSidebarWidthResolver;
6575
+ /** Operations-only bridge connecting this feature to the organization graph node. */
6352
6576
  organizationGraph?: OrganizationGraphFeatureBridge;
6353
6577
  }
6354
6578
  interface OrganizationGraphFeatureBridge {
6355
- surfaceId: string;
6579
+ featureId: string;
6356
6580
  }
6357
6581
 
6358
6582
  declare const crmManifest: FeatureModule;
@@ -6394,7 +6618,7 @@ declare function LeadGenRouteShell({ title, caption, body, links }: {
6394
6618
  links?: LeadGenRouteLink[];
6395
6619
  }): react_jsx_runtime.JSX.Element;
6396
6620
  declare function getStatusColor(status: string | null): "green" | "red" | "gray";
6397
- declare function getEnrichmentColor(status: string): "green" | "red" | "gray" | "yellow";
6621
+ declare function getEnrichmentColor(status: string): "yellow" | "green" | "red" | "gray";
6398
6622
  declare const LIST_TEMPLATE_OPTIONS: readonly [{
6399
6623
  readonly value: "blank";
6400
6624
  readonly label: "Blank";
@@ -6517,5 +6741,5 @@ declare const OperationsSidebarMiddle: () => react_jsx_runtime.JSX.Element;
6517
6741
 
6518
6742
  declare const operationsManifest: FeatureModule;
6519
6743
 
6520
- export { APIErrorAlert, AbsoluteScheduleForm, ActionModal, ActivityCard, ActivityFeedWidget, ActivityFilters as ActivityFiltersBar, ActivityTable, ActivityTimeline, AgentDefinitionDisplay, AgentExecutionLogs, AgentExecutionTimeline, AgentExecutionVisualizer, AgentIterationEdge, AgentIterationNode, AllTasksPage, ApiKeyDisplayModal, ApiKeyList, ApiKeySettings, BaseEdge, BaseExecutionLogs, BaseExecutionLogsHeader, BaseExecutionLogsStates, BaseNode, Breadcrumbs, BusinessImpactCard, CONTAINER_CONSTANTS, CardHeader, CenteredErrorState, CheckpointGroup, CollapsibleJsonSection, CollapsibleSection, CommandQueueSidebar, CommandQueueSidebarMiddle, CommandQueueSidebarTop, CommandQueueTaskRow, CommandViewEdge, CommandViewGraph, CommandViewNode, ConfigCard, ConfirmationInputModal, ConfirmationModal, ContentSections, ContextUsageBadge, ContextViewer, ContractDisplay, CostBreakdownCard, CostByModelTable, CostMetricsCard, CrashErrorFallback, CreateApiKeyModal, CreateCredentialModal, CreateScheduleModal, CredentialList, CredentialSettings, CrmOverview, CrmSidebar, CrmSidebarMiddle, CrmSidebarTop, CustomModal, CustomSelector, DEAL_STAGES, DEFAULT_KANBAN_CONFIG, DealDetailPage, DealDrawer, DealKanbanCard, DealsListPage, DeleteScheduleModal, DeploymentDetailModal, DeploymentList, DeploymentSettings, DeploymentStatusBadge, DetailCardSkeleton, EditApiKeyModal, ElevasisLoader, EmptyState, EmptyVisualizer, ErrorAnalysisCard, ErrorBreakdownTable, ErrorReportCard, ExecutionBreakdownTable, ExecutionErrorSection, ExecutionHealthCard, ExecutionLogsFilters as ExecutionLogsFilterBar, ExecutionLogsTable, ExecutionStats, ExecutionStatusBadge, FeatureUnavailableState, FilterBar, FormFieldRenderer, GlowDot, GraphBackground, GraphContainer, GraphFitViewButton, GraphFitViewHandler, GraphLegend, HealthStatusCard, JsonViewer, KanbanBoard, LEAD_GEN_ROUTE_LINKS, LIST_TEMPLATE_OPTIONS, LeadGenCompaniesPage, LeadGenContactsPage, LeadGenListDetailPage, LeadGenListsPage, LeadGenOverviewPage, LeadGenRouteShell, LeadGenSidebar, LeadGenSidebarMiddle, LeadGenSidebarTop, ListSkeleton, LogEntry, LogGroup, MdxRenderer, MembershipFeaturePanel, MembershipStatusBadge, MetricsStrip, MilestoneTimeline, MyTasksPanel, NavigationButton, NewKnowledgeMapEdge, NewKnowledgeMapGraph, NewKnowledgeMapNode, NotificationBell, NotificationItem, NotificationList, NotificationPanel, OAuthConnectModal, OperationsSidebar, OperationsSidebarMiddle, OperationsSidebarTop, OrganizationMembershipsList, PIPELINE_FUNNEL_ORDER, PageNotFound, PageTitleCaption, PipelineFunnelWidget, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, QuickCreateActions, RecurringScheduleForm, RelativeScheduleForm, ResourceCard, ResourceDefinitionSection, ResourceErrorState, ResourceFilter, ResourceHeader, ResourceHealthChart, ResourceHealthPanel, ResourceNotFoundState, RichTextEditor, RunResourceButton, SAVED_VIEW_PRESETS, SEOSidebar, SEOSidebarMiddle, SEOSidebarTop, SHARED_VIZ_CONSTANTS, SavedViewsPanel, ScheduleCard, ScheduleDetailModal, ScheduleTypeSelector, SessionMemory, SortableHeader, StatCard, StatCardSkeleton, StatsCardSkeleton, StatusBadge, StyledMarkdown, TabCountBadge, TableSelectionToolbar, TaskCard, TaskScheduler, TasksDueWidget, TimeRangeSelector, TimelineAxis, TimelineBar, TimelineContainer, TimelineRow, ToolsListDisplay, TrendIndicator, UnifiedWorkflowEdge, UnifiedWorkflowGraph, UnifiedWorkflowNode, UpcomingMilestonesPage, VisualizerContainer, WebhookUrlDisplayModal, WorkflowDefinitionDisplay, WorkflowExecutionLogs, WorkflowExecutionTimeline, ZodFormRenderer, buildErrorReport, buildListConfig, calculateProgress, catalogItemToResourceDefinition, crmManifest, deliveryManifest, formatStatusLabel, getEnrichmentColor, getExecutionStatusConfig, getGraphBackgroundStyles, getHealthColor, getIcon, getLogLevelConfig, getStatusColor, iconMap, leadGenManifest, mdxComponents, milestoneStatusColors, monitoringManifest, noteTypeColors, operationsManifest, projectStatusColors, seoManifest, settingsManifest, showApiErrorNotification, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification, taskStatusColors, taskTypeColors, useCrmPipelineSummary, useCrmQuickMetrics, useDeleteLists, useGraphBackgroundStyles, useGraphTheme, useNewKnowledgeMapLayout, useRecentCrmActivity };
6521
- export type { ActivityEntry, ActivityFiltersProps, ActivityTableProps, BaseEdgeProps, BaseExecutionLogsProps, BreadcrumbsProps, CommandViewGraphRef, ContextViewerProps, CostByModelTableProps, CrashErrorFallbackProps, CrmOverviewProps, DealDrawerProps, DealKanbanCardProps, ErrorAnalysisCardProps, ErrorReportCardProps, ExecutionBreakdownTableProps, ExecutionHealthCardProps, ExecutionLogEntry, ExecutionLogsFiltersProps, ExecutionLogsTableProps, FeatureUnavailableStateProps, FitViewButtonVariant, FormFieldRendererProps, GraphFitViewHandlerProps, JsonViewerProps, KanbanBoardProps, KnowledgeMapEdgeData, KnowledgeMapNodeData, LogLevel, MdxRendererProps, NavigationButtonProps, ProjectsSidebarMiddleProps, ResourceHealthPanelProps, RichTextEditorProps, RunResourceButtonProps, RunResourceInputResolver, SavedViewPreset, ScheduleType, SerializedKnowledgeMap, SerializedKnowledgeNode, StatCardProps, StyledMarkdownProps, TaskFilterStatus, TrendIndicatorProps, ZodFormRendererProps };
6744
+ export { APIErrorAlert, AbsoluteScheduleForm, ActionModal, ActivityCard, ActivityFeedWidget, ActivityFilters as ActivityFiltersBar, ActivityTable, ActivityTimeline, AgentDefinitionDisplay, AgentExecutionLogs, AgentExecutionTimeline, AgentExecutionVisualizer, AgentIterationEdge, AgentIterationNode, AllTasksPage, ApiKeyDisplayModal, ApiKeyList, ApiKeySettings, BaseEdge, BaseExecutionLogs, BaseExecutionLogsHeader, BaseExecutionLogsStates, BaseNode, Breadcrumbs, BusinessImpactCard, CONTAINER_CONSTANTS, Can, CardHeader, CenteredErrorState, CheckpointGroup, CollapsibleJsonSection, CollapsibleSection, CommandQueueSidebar, CommandQueueSidebarMiddle, CommandQueueSidebarTop, CommandQueueTaskRow, CommandViewEdge, CommandViewGraph, CommandViewNode, ConfigCard, ConfirmationInputModal, ConfirmationModal, ContentSections, ContextUsageBadge, ContextViewer, ContractDisplay, CostBreakdownCard, CostByModelTable, CostMetricsCard, CrashErrorFallback, CreateApiKeyModal, CreateCredentialModal, CreateRoleModal, CreateScheduleModal, CredentialList, CredentialSettings, CrmOverview, CrmSidebar, CrmSidebarMiddle, CrmSidebarTop, CustomModal, CustomSelector, DEAL_STAGES, DEFAULT_KANBAN_CONFIG, DealDetailPage, DealDrawer, DealKanbanCard, DealsListPage, DeleteScheduleModal, DeploymentDetailModal, DeploymentList, DeploymentSettings, DeploymentStatusBadge, DetailCardSkeleton, EditApiKeyModal, ElevasisLoader, EmptyState, EmptyVisualizer, ErrorAnalysisCard, ErrorBreakdownTable, ErrorReportCard, ExecutionBreakdownTable, ExecutionErrorSection, ExecutionHealthCard, ExecutionLogsFilters as ExecutionLogsFilterBar, ExecutionLogsTable, ExecutionStats, ExecutionStatusBadge, FeatureUnavailableState, FilterBar, FormFieldRenderer, GlowDot, GraphBackground, GraphContainer, GraphFitViewButton, GraphFitViewHandler, GraphLegend, HealthStatusCard, JsonViewer, KanbanBoard, LEAD_GEN_ROUTE_LINKS, LIST_TEMPLATE_OPTIONS, LeadGenCompaniesPage, LeadGenContactsPage, LeadGenListDetailPage, LeadGenListsPage, LeadGenOverviewPage, LeadGenRouteShell, LeadGenSidebar, LeadGenSidebarMiddle, LeadGenSidebarTop, ListSkeleton, LogEntry, LogGroup, MdxRenderer, MembershipFeaturePanel, MembershipStatusBadge, MetricsStrip, MilestoneTimeline, MyTasksPanel, NavigationButton, NewKnowledgeMapEdge, NewKnowledgeMapGraph, NewKnowledgeMapNode, NoAccessState, NotificationBell, NotificationItem, NotificationList, NotificationPanel, OAuthConnectModal, OperationsSidebar, OperationsSidebarMiddle, OperationsSidebarTop, OrganizationMembershipsList, PIPELINE_FUNNEL_ORDER, PageNotFound, PageTitleCaption, PermissionMatrix, PipelineFunnelWidget, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, QuickCreateActions, RecurringScheduleForm, RelativeScheduleForm, ResourceCard, ResourceDefinitionSection, ResourceErrorState, ResourceFilter, ResourceHeader, ResourceHealthChart, ResourceHealthPanel, ResourceNotFoundState, RichTextEditor, RoleBadge, RunResourceButton, SAVED_VIEW_PRESETS, SEOSidebar, SEOSidebarMiddle, SEOSidebarTop, SHARED_VIZ_CONSTANTS, SavedViewsPanel, ScheduleCard, ScheduleDetailModal, ScheduleTypeSelector, SessionMemory, SortableHeader, StatCard, StatCardSkeleton, StatsCardSkeleton, StatusBadge, StyledMarkdown, TabCountBadge, TableSelectionToolbar, TaskCard, TaskScheduler, TasksDueWidget, TimeRangeSelector, TimelineAxis, TimelineBar, TimelineContainer, TimelineRow, ToolsListDisplay, TrendIndicator, UnifiedWorkflowEdge, UnifiedWorkflowGraph, UnifiedWorkflowNode, UpcomingMilestonesPage, VisualizerContainer, WebhookUrlDisplayModal, WorkflowDefinitionDisplay, WorkflowExecutionLogs, WorkflowExecutionTimeline, ZodFormRenderer, buildErrorReport, buildListConfig, calculateProgress, catalogItemToResourceDefinition, crmManifest, deliveryManifest, formatStatusLabel, getEnrichmentColor, getExecutionStatusConfig, getGraphBackgroundStyles, getHealthColor, getIcon, getLogLevelConfig, getStatusColor, iconMap, leadGenManifest, mdxComponents, milestoneStatusColors, monitoringManifest, noteTypeColors, operationsManifest, projectStatusColors, seoManifest, settingsManifest, showApiErrorNotification, showAuthError, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification, taskStatusColors, taskTypeColors, useCrmPipelineSummary, useCrmQuickMetrics, useDeleteLists, useGraphBackgroundStyles, useGraphTheme, useNewKnowledgeMapLayout, useRecentCrmActivity };
6745
+ export type { ActivityEntry, ActivityFiltersProps, ActivityTableProps, BaseEdgeProps, BaseExecutionLogsProps, BreadcrumbsProps, CommandViewGraphRef, ContextViewerProps, CostByModelTableProps, CrashErrorFallbackProps, CreateRoleModalProps, CrmOverviewProps, DealDrawerProps, DealKanbanCardProps, ErrorAnalysisCardProps, ErrorReportCardProps, ExecutionBreakdownTableProps, ExecutionHealthCardProps, ExecutionLogEntry, ExecutionLogsFiltersProps, ExecutionLogsTableProps, FeatureUnavailableStateProps, FitViewButtonVariant, FormFieldRendererProps, GraphFitViewHandlerProps, JsonViewerProps, KanbanBoardProps, KnowledgeMapEdgeData, KnowledgeMapNodeData, LogLevel, MdxRendererProps, NavigationButtonProps, PermissionRow, ProjectsSidebarMiddleProps, ResourceHealthPanelProps, RichTextEditorProps, RunResourceButtonProps, RunResourceInputResolver, SavedViewPreset, ScheduleType, SerializedKnowledgeMap, SerializedKnowledgeNode, StatCardProps, StyledMarkdownProps, TaskFilterStatus, TrendIndicatorProps, ZodFormRendererProps };