@elevasis/ui 1.0.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 (97) hide show
  1. package/dist/api/index.d.ts +87 -0
  2. package/dist/api/index.js +3 -0
  3. package/dist/auth/context.d.ts +19 -0
  4. package/dist/auth/context.js +1 -0
  5. package/dist/auth/index.d.ts +85 -0
  6. package/dist/auth/index.js +3 -0
  7. package/dist/chunk-3KMDHCAR.js +52 -0
  8. package/dist/chunk-5UWFGBFM.js +129 -0
  9. package/dist/chunk-6BJOYF6E.js +8 -0
  10. package/dist/chunk-6M6OLGQY.js +36 -0
  11. package/dist/chunk-7AI5ZYJ4.js +202 -0
  12. package/dist/chunk-7PLEQFHO.js +18 -0
  13. package/dist/chunk-GDV44UWF.js +138 -0
  14. package/dist/chunk-GEFB5YIR.js +338 -0
  15. package/dist/chunk-HBRMWW6V.js +43 -0
  16. package/dist/chunk-HUWJXLLF.js +681 -0
  17. package/dist/chunk-J3FALDQE.js +176 -0
  18. package/dist/chunk-JKERRYVS.js +109 -0
  19. package/dist/chunk-KA7LO7U5.js +28 -0
  20. package/dist/chunk-LHQTTUL2.js +27 -0
  21. package/dist/chunk-MAAS6CGR.js +1299 -0
  22. package/dist/chunk-NE36BUGQ.js +146 -0
  23. package/dist/chunk-NGXCFBCS.js +398 -0
  24. package/dist/chunk-OEYU5O27.js +235 -0
  25. package/dist/chunk-OUHGHTE7.js +748 -0
  26. package/dist/chunk-OXVOHOP3.js +661 -0
  27. package/dist/chunk-PSLKGOBZ.js +58 -0
  28. package/dist/chunk-PYL4XW6H.js +107 -0
  29. package/dist/chunk-Q47SPRY7.js +1 -0
  30. package/dist/chunk-Q7DJKLEN.js +18 -0
  31. package/dist/chunk-RJCA5672.js +1664 -0
  32. package/dist/chunk-S66I2PYB.js +748 -0
  33. package/dist/chunk-W7ZBF5AA.js +1 -0
  34. package/dist/chunk-WNWKOCGJ.js +1067 -0
  35. package/dist/chunk-XCYKC6OZ.js +1 -0
  36. package/dist/chunk-YULUKCS6.js +56 -0
  37. package/dist/chunk-YZ6GTZXL.js +48 -0
  38. package/dist/chunk-ZGHDPDTF.js +379 -0
  39. package/dist/components/command-queue/index.css +53 -0
  40. package/dist/components/command-queue/index.d.ts +204 -0
  41. package/dist/components/command-queue/index.js +10 -0
  42. package/dist/components/forms/index.d.ts +56 -0
  43. package/dist/components/forms/index.js +2 -0
  44. package/dist/components/index.css +443 -0
  45. package/dist/components/index.d.ts +1354 -0
  46. package/dist/components/index.js +18 -0
  47. package/dist/components/monitoring/index.d.ts +66 -0
  48. package/dist/components/monitoring/index.js +2 -0
  49. package/dist/components/navigation/index.d.ts +54 -0
  50. package/dist/components/navigation/index.js +91 -0
  51. package/dist/components/notifications/index.d.ts +52 -0
  52. package/dist/components/notifications/index.js +4 -0
  53. package/dist/components/resource-definition/index.css +388 -0
  54. package/dist/components/resource-definition/index.d.ts +301 -0
  55. package/dist/components/resource-definition/index.js +3 -0
  56. package/dist/display/index.css +53 -0
  57. package/dist/display/index.d.ts +606 -0
  58. package/dist/display/index.js +6 -0
  59. package/dist/execution/index.css +388 -0
  60. package/dist/execution/index.d.ts +1090 -0
  61. package/dist/execution/index.js +4 -0
  62. package/dist/graph/index.css +388 -0
  63. package/dist/graph/index.d.ts +429 -0
  64. package/dist/graph/index.js +1 -0
  65. package/dist/hooks/index.d.ts +1927 -0
  66. package/dist/hooks/index.js +6 -0
  67. package/dist/hooks/published.d.ts +1653 -0
  68. package/dist/hooks/published.js +4 -0
  69. package/dist/index.css +505 -0
  70. package/dist/index.d.ts +7284 -0
  71. package/dist/index.js +31 -0
  72. package/dist/initialization/index.d.ts +2325 -0
  73. package/dist/initialization/index.js +4 -0
  74. package/dist/organization/index.d.ts +225 -0
  75. package/dist/organization/index.js +4 -0
  76. package/dist/profile/index.d.ts +2265 -0
  77. package/dist/profile/index.js +3 -0
  78. package/dist/provider/index.css +61 -0
  79. package/dist/provider/index.d.ts +291 -0
  80. package/dist/provider/index.js +7 -0
  81. package/dist/provider/published.d.ts +198 -0
  82. package/dist/provider/published.js +6 -0
  83. package/dist/router/context.d.ts +19 -0
  84. package/dist/router/context.js +1 -0
  85. package/dist/router/index.d.ts +31 -0
  86. package/dist/router/index.js +2 -0
  87. package/dist/sse/index.d.ts +83 -0
  88. package/dist/sse/index.js +185 -0
  89. package/dist/supabase/index.d.ts +4289 -0
  90. package/dist/supabase/index.js +47 -0
  91. package/dist/typeform/index.d.ts +458 -0
  92. package/dist/typeform/index.js +1976 -0
  93. package/dist/typeform/schemas.d.ts +67 -0
  94. package/dist/typeform/schemas.js +1 -0
  95. package/dist/utils/index.d.ts +177 -0
  96. package/dist/utils/index.js +1 -0
  97. package/package.json +88 -0
@@ -0,0 +1,1354 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as react from 'react';
3
+ import react__default, { ReactElement, ReactNode, ComponentType, CSSProperties } from 'react';
4
+ import { MantineSpacing, MantineColor } from '@mantine/core';
5
+ import { Icon, IconCheck } from '@tabler/icons-react';
6
+ import { Components } from 'react-markdown';
7
+ import { UseFormReturnType } from '@mantine/form';
8
+ import { Node, Edge, NodeProps, EdgeProps } from '@xyflow/react';
9
+
10
+ interface ICustomModalProps {
11
+ opened: boolean;
12
+ onClose: () => void;
13
+ children: react__default.ReactNode | react__default.ReactNode[] | string;
14
+ loading?: boolean;
15
+ style?: react__default.CSSProperties;
16
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
17
+ }
18
+ declare const CustomModal: ({ children, opened, onClose, loading, style, size }: ICustomModalProps) => react_jsx_runtime.JSX.Element;
19
+
20
+ interface IConfirmationModalProps {
21
+ opened: boolean;
22
+ onClose: () => void;
23
+ icon: ReactElement<{
24
+ size?: number;
25
+ strokeWidth?: number;
26
+ }>;
27
+ confirmationHandler?: () => void;
28
+ loading?: boolean;
29
+ style?: React.CSSProperties;
30
+ title: string;
31
+ text?: ReactNode | string;
32
+ buttonText?: string;
33
+ buttonColor?: string;
34
+ centerText?: boolean;
35
+ }
36
+ declare const ConfirmationModal: ({ opened, onClose, loading, icon, confirmationHandler, style, title, text, buttonText, buttonColor, centerText }: IConfirmationModalProps) => react_jsx_runtime.JSX.Element;
37
+
38
+ interface IConfirmationInputModalProps {
39
+ opened: boolean;
40
+ onClose: () => void;
41
+ icon: ReactElement<{
42
+ size?: number;
43
+ strokeWidth?: number;
44
+ }>;
45
+ confirmationHandler?: () => void;
46
+ loading?: boolean;
47
+ style?: React.CSSProperties;
48
+ title: string | ReactNode;
49
+ text?: ReactNode | string;
50
+ buttonText?: string;
51
+ buttonColor?: string;
52
+ centerText?: boolean;
53
+ inputValue: string;
54
+ onInputChange: (value: string) => void;
55
+ expectedValue: string;
56
+ placeholder?: string;
57
+ }
58
+ declare const ConfirmationInputModal: ({ opened, onClose, loading, icon, confirmationHandler, style, title, text, buttonText, buttonColor, inputValue, onInputChange, expectedValue, placeholder }: IConfirmationInputModalProps) => react_jsx_runtime.JSX.Element;
59
+
60
+ interface APIErrorAlertProps {
61
+ /**
62
+ * The error to display. Can be an APIClientError, generic Error, or any unknown value.
63
+ */
64
+ error: unknown;
65
+ /**
66
+ * Optional title override. If not provided, uses getErrorTitle() based on error code.
67
+ */
68
+ title?: string;
69
+ /**
70
+ * Whether to show the request ID (if available). Defaults to true.
71
+ */
72
+ showRequestId?: boolean;
73
+ /**
74
+ * Optional custom icon. Defaults to IconAlertCircle.
75
+ */
76
+ icon?: React.ReactNode;
77
+ /**
78
+ * Alert color. Defaults to 'red'.
79
+ */
80
+ color?: string;
81
+ }
82
+ /**
83
+ * Alert component for displaying API errors with type-safe error handling.
84
+ *
85
+ * Automatically extracts error message, code, and request ID from APIClientError
86
+ * or falls back to generic Error handling.
87
+ *
88
+ * @example
89
+ * ```tsx
90
+ * const { data, error } = useQuery(...)
91
+ *
92
+ * if (error) {
93
+ * return <APIErrorAlert error={error} />
94
+ * }
95
+ * ```
96
+ *
97
+ * @example With custom title
98
+ * ```tsx
99
+ * <APIErrorAlert
100
+ * error={error}
101
+ * title="Failed to load resources"
102
+ * />
103
+ * ```
104
+ *
105
+ * @example Without request ID
106
+ * ```tsx
107
+ * <APIErrorAlert
108
+ * error={error}
109
+ * showRequestId={false}
110
+ * />
111
+ * ```
112
+ */
113
+ declare function APIErrorAlert({ error, title, showRequestId, icon, color }: APIErrorAlertProps): react_jsx_runtime.JSX.Element;
114
+
115
+ interface CollapsibleSectionProps {
116
+ title: string | ReactNode;
117
+ count?: number;
118
+ countLabel?: string;
119
+ children: ReactNode;
120
+ emptyMessage?: string;
121
+ defaultExpanded?: boolean;
122
+ maxHeight?: number;
123
+ }
124
+ /**
125
+ * Reusable collapsible section with header, badge, and scroll area
126
+ * Used for expandable content like memory sections, logs, etc.
127
+ */
128
+ declare function CollapsibleSection({ title, count, countLabel, children, emptyMessage, defaultExpanded, maxHeight }: CollapsibleSectionProps): react_jsx_runtime.JSX.Element;
129
+
130
+ interface EmptyStateProps {
131
+ /** Icon component to display (e.g., IconKey from @tabler/icons-react) */
132
+ icon: ComponentType<{
133
+ size: number;
134
+ style?: React.CSSProperties;
135
+ }>;
136
+ /** Main title text */
137
+ title: string;
138
+ /** Description text shown below title */
139
+ description?: string;
140
+ /** Optional action button */
141
+ action?: {
142
+ label: string;
143
+ onClick: () => void;
144
+ icon?: ReactNode;
145
+ };
146
+ /** Vertical padding - defaults to 'xl' */
147
+ py?: MantineSpacing;
148
+ }
149
+ /**
150
+ * EmptyState - Reusable empty state component for lists and tables
151
+ *
152
+ * Consolidates the Center + Stack + Icon + Text pattern used across:
153
+ * - ApiKeyList.tsx
154
+ * - CredentialList.tsx
155
+ * - Various other list components
156
+ *
157
+ * @example
158
+ * ```tsx
159
+ * <EmptyState
160
+ * icon={IconKey}
161
+ * title="No API keys yet"
162
+ * description="Create your first API key to enable external integrations"
163
+ * action={{ label: "Create API Key", onClick: handleCreate }}
164
+ * />
165
+ * ```
166
+ */
167
+ declare function EmptyState({ icon: Icon, title, description, action, py }: EmptyStateProps): react_jsx_runtime.JSX.Element;
168
+
169
+ interface NavigationButtonProps {
170
+ /** Icon component to display */
171
+ icon: react__default.ComponentType<{
172
+ size?: number;
173
+ stroke?: number;
174
+ }>;
175
+ /** Button label text */
176
+ label: string;
177
+ /** Whether the button is in collapsed state (hides text) */
178
+ isCollapsed?: boolean;
179
+ /** Whether this button has sub-items/links */
180
+ hasSubItems?: boolean;
181
+ /** Whether sub-items are expanded (controls chevron rotation) */
182
+ isExpanded?: boolean;
183
+ /** Whether the icon and text should be styled as active */
184
+ isActive?: boolean;
185
+ /** Whether the background should be styled as active */
186
+ hasActiveBackground?: boolean;
187
+ /** Click handler */
188
+ onClick?: () => void;
189
+ /** Additional styles for the button container */
190
+ style?: react__default.CSSProperties;
191
+ /** Custom transition duration in ms */
192
+ transitionDuration?: number;
193
+ }
194
+ declare const NavigationButton: react__default.FC<NavigationButtonProps>;
195
+
196
+ declare function PageNotFound(): react_jsx_runtime.JSX.Element;
197
+
198
+ interface PageTitleCaptionProps {
199
+ title: string;
200
+ caption?: string;
201
+ rightSection?: ReactNode;
202
+ }
203
+ declare const PageTitleCaption: ({ title, caption, rightSection }: PageTitleCaptionProps) => react_jsx_runtime.JSX.Element;
204
+
205
+ interface StatsCardSkeletonProps {
206
+ /** Height of the chart skeleton - defaults to 120 */
207
+ chartHeight?: number;
208
+ /** Whether to show a chart skeleton - defaults to true */
209
+ withChart?: boolean;
210
+ /** Number of stat columns - defaults to 3 */
211
+ statCount?: 2 | 3;
212
+ }
213
+ /**
214
+ * StatsCardSkeleton - Loading skeleton for dashboard metric cards
215
+ *
216
+ * Consolidates the identical card skeleton pattern used across:
217
+ * - ExecutionHealthCard.tsx
218
+ * - CostMetricsCard.tsx
219
+ * - ThroughputCard.tsx
220
+ * - BusinessImpactCard.tsx
221
+ *
222
+ * @example
223
+ * ```tsx
224
+ * if (isLoading) {
225
+ * return <StatsCardSkeleton />
226
+ * }
227
+ * ```
228
+ */
229
+ declare function StatsCardSkeleton({ chartHeight, withChart, statCount }: StatsCardSkeletonProps): react_jsx_runtime.JSX.Element;
230
+ interface ListSkeletonProps {
231
+ /** Number of skeleton rows to show - defaults to 3 */
232
+ rows?: number;
233
+ /** Height of each row - defaults to 50 */
234
+ rowHeight?: number;
235
+ }
236
+ /**
237
+ * ListSkeleton - Loading skeleton for table/list content
238
+ *
239
+ * Consolidates the Stack + Skeleton pattern used across:
240
+ * - ApiKeyList.tsx
241
+ * - CredentialList.tsx
242
+ * - Various other list components
243
+ *
244
+ * @example
245
+ * ```tsx
246
+ * if (isLoading) {
247
+ * return <ListSkeleton rows={5} />
248
+ * }
249
+ * ```
250
+ */
251
+ declare function ListSkeleton({ rows, rowHeight }: ListSkeletonProps): react_jsx_runtime.JSX.Element;
252
+ interface DetailCardSkeletonProps {
253
+ /** Number of detail rows - defaults to 3 */
254
+ rows?: number;
255
+ }
256
+ /**
257
+ * DetailCardSkeleton - Loading skeleton for cards with list of detail items
258
+ *
259
+ * Used for cards like CostBreakdownCard that show a list of items
260
+ *
261
+ * @example
262
+ * ```tsx
263
+ * if (isLoading) {
264
+ * return <DetailCardSkeleton rows={4} />
265
+ * }
266
+ * ```
267
+ */
268
+ declare function DetailCardSkeleton({ rows }: DetailCardSkeletonProps): react_jsx_runtime.JSX.Element;
269
+
270
+ interface StatCardBaseProps {
271
+ /** The label/description text */
272
+ label: string;
273
+ /** The value to display (number or formatted string) */
274
+ value: string | number;
275
+ /** Tabler icon component */
276
+ icon: Icon;
277
+ /** Optional extra content rendered below the label */
278
+ children?: ReactNode;
279
+ }
280
+ interface StatCardDefaultProps extends StatCardBaseProps {
281
+ variant?: 'default';
282
+ /** Theme color for the icon (defaults to theme primary) */
283
+ color?: MantineColor;
284
+ isLoading?: never;
285
+ valueColor?: never;
286
+ }
287
+ interface StatCardHeroProps extends StatCardBaseProps {
288
+ variant: 'hero';
289
+ /** Whether data is loading */
290
+ isLoading?: boolean;
291
+ /** Custom color for the value text */
292
+ valueColor?: string;
293
+ /** Card sizing — 'sm' (default) for compact layouts, 'md' for spacious layouts */
294
+ size?: 'sm' | 'md';
295
+ color?: never;
296
+ }
297
+ type StatCardProps = StatCardDefaultProps | StatCardHeroProps;
298
+ /**
299
+ * StatCard - Stat display card with icon, label, and value.
300
+ *
301
+ * Supports two variants:
302
+ * - `default`: Compact card with ThemeIcon (used in admin overviews)
303
+ * - `hero`: Glass card with glowing icon ring (used on dashboards)
304
+ *
305
+ * @example
306
+ * ```tsx
307
+ * // Default variant
308
+ * <StatCard label="Total Executions" value={150} icon={IconPlayerPlay} color="blue" />
309
+ *
310
+ * // Hero variant
311
+ * <StatCard variant="hero" label="Executions" value={43} icon={IconPlayerPlay} isLoading={false} />
312
+ * ```
313
+ */
314
+ declare function StatCard(props: StatCardProps): react_jsx_runtime.JSX.Element;
315
+ /**
316
+ * StatCardSkeleton - Loading skeleton for StatCard (default variant)
317
+ */
318
+ declare function StatCardSkeleton(): react_jsx_runtime.JSX.Element;
319
+
320
+ interface TabCountBadgeProps {
321
+ count: number;
322
+ isLoading?: boolean;
323
+ }
324
+ /**
325
+ * A badge that displays a count in tabs with consistent sizing.
326
+ * Uses a fixed-width container to prevent layout shift when switching
327
+ * between the loading spinner and the count badge.
328
+ */
329
+ declare function TabCountBadge({ count, isLoading }: TabCountBadgeProps): react_jsx_runtime.JSX.Element;
330
+
331
+ /**
332
+ * Shared form field types for dynamic form generation
333
+ * Used by: Command Queue, Execution Runner UI, future form-based features
334
+ */
335
+ /**
336
+ * Supported form field types for action payloads
337
+ * Maps to Mantine form components
338
+ */
339
+ type FormFieldType = 'text' | 'textarea' | 'number' | 'select' | 'checkbox' | 'radio' | 'richtext';
340
+ /**
341
+ * Form field definition
342
+ */
343
+ interface FormField {
344
+ /** Field key in payload object */
345
+ name: string;
346
+ /** Field label for UI */
347
+ label: string;
348
+ /** Field type (determines UI component) */
349
+ type: FormFieldType;
350
+ /** Default value */
351
+ defaultValue?: unknown;
352
+ /** Required field */
353
+ required?: boolean;
354
+ /** Placeholder text */
355
+ placeholder?: string;
356
+ /** Help text */
357
+ description?: string;
358
+ /** Options for select/radio */
359
+ options?: Array<{
360
+ label: string;
361
+ value: string | number;
362
+ }>;
363
+ /** Min/max for number */
364
+ min?: number;
365
+ max?: number;
366
+ /** Path to context value for pre-filling (dot notation, e.g., 'proposal.summary') */
367
+ defaultValueFromContext?: string;
368
+ }
369
+ /**
370
+ * Form schema for action payload collection
371
+ */
372
+ interface FormSchema {
373
+ /** Form title */
374
+ title?: string;
375
+ /** Form description */
376
+ description?: string;
377
+ /** Form fields */
378
+ fields: FormField[];
379
+ }
380
+
381
+ /**
382
+ * Serialized Registry Types
383
+ *
384
+ * Pre-computed JSON-safe types for API responses and Command View.
385
+ * Serialization happens once at API startup, enabling instant response times.
386
+ */
387
+
388
+ /**
389
+ * Serialized form field for API responses
390
+ */
391
+ interface SerializedFormField {
392
+ name: string;
393
+ label: string;
394
+ type: FormFieldType;
395
+ defaultValue?: unknown;
396
+ required?: boolean;
397
+ placeholder?: string;
398
+ description?: string;
399
+ options?: Array<{
400
+ label: string;
401
+ value: string | number;
402
+ }>;
403
+ min?: number;
404
+ max?: number;
405
+ }
406
+ /**
407
+ * Serialized form schema for API responses
408
+ */
409
+ interface SerializedFormSchema {
410
+ title?: string;
411
+ description?: string;
412
+ fields: SerializedFormField[];
413
+ layout?: 'vertical' | 'horizontal' | 'grid';
414
+ }
415
+ /**
416
+ * Serialized execution form schema for API responses
417
+ */
418
+ interface SerializedExecutionFormSchema extends SerializedFormSchema {
419
+ fieldMappings?: Record<string, string>;
420
+ submitButton?: {
421
+ label?: string;
422
+ loadingLabel?: string;
423
+ confirmMessage?: string;
424
+ };
425
+ }
426
+ /**
427
+ * Serialized schedule config for API responses
428
+ */
429
+ interface SerializedScheduleConfig {
430
+ enabled: boolean;
431
+ defaultSchedule?: string;
432
+ allowedPatterns?: string[];
433
+ }
434
+ /**
435
+ * Serialized webhook config for API responses
436
+ */
437
+ interface SerializedWebhookConfig {
438
+ enabled: boolean;
439
+ payloadSchema?: unknown;
440
+ }
441
+ /**
442
+ * Serialized execution interface for API responses
443
+ */
444
+ interface SerializedExecutionInterface {
445
+ form: SerializedExecutionFormSchema;
446
+ schedule?: SerializedScheduleConfig;
447
+ webhook?: SerializedWebhookConfig;
448
+ }
449
+ /**
450
+ * Serialized agent definition (JSON-safe)
451
+ * Result of serializeDefinition(AgentDefinition)
452
+ */
453
+ interface SerializedAgentDefinition {
454
+ config: {
455
+ resourceId: string;
456
+ name: string;
457
+ description: string;
458
+ version: string;
459
+ type: 'agent';
460
+ status: 'dev' | 'prod';
461
+ /** Whether this resource is archived and should be excluded from registration and deployment */
462
+ archived?: boolean;
463
+ systemPrompt: string;
464
+ constraints?: {
465
+ maxIterations?: number;
466
+ timeout?: number;
467
+ maxSessionMemoryKeys?: number;
468
+ maxMemoryTokens?: number;
469
+ };
470
+ sessionCapable?: boolean;
471
+ memoryPreferences?: string;
472
+ };
473
+ modelConfig: {
474
+ provider: string;
475
+ model: string;
476
+ apiKey: string;
477
+ temperature: number;
478
+ maxOutputTokens: number;
479
+ topP?: number;
480
+ modelOptions?: Record<string, unknown>;
481
+ };
482
+ contract: {
483
+ inputSchema: object;
484
+ outputSchema?: object;
485
+ };
486
+ tools: Array<{
487
+ name: string;
488
+ description: string;
489
+ inputSchema?: object;
490
+ outputSchema?: object;
491
+ }>;
492
+ knowledgeMap?: {
493
+ nodeCount: number;
494
+ nodes: Array<{
495
+ id: string;
496
+ description: string;
497
+ loaded: boolean;
498
+ hasPrompt: boolean;
499
+ }>;
500
+ };
501
+ metricsConfig?: object;
502
+ interface?: SerializedExecutionInterface;
503
+ }
504
+ /**
505
+ * Serialized workflow definition (JSON-safe)
506
+ * Result of serializeDefinition(WorkflowDefinition)
507
+ */
508
+ interface SerializedWorkflowDefinition {
509
+ config: {
510
+ resourceId: string;
511
+ name: string;
512
+ description: string;
513
+ version: string;
514
+ type: 'workflow';
515
+ status: 'dev' | 'prod';
516
+ /** Whether this resource is archived and should be excluded from registration and deployment */
517
+ archived?: boolean;
518
+ };
519
+ entryPoint: string;
520
+ steps: Array<{
521
+ id: string;
522
+ name: string;
523
+ description: string;
524
+ inputSchema?: object;
525
+ outputSchema?: object;
526
+ next: {
527
+ type: 'linear' | 'conditional';
528
+ target?: string;
529
+ routes?: Array<{
530
+ target: string;
531
+ }>;
532
+ default?: string;
533
+ } | null;
534
+ }>;
535
+ contract: {
536
+ inputSchema: object;
537
+ outputSchema?: object;
538
+ };
539
+ metricsConfig?: object;
540
+ interface?: SerializedExecutionInterface;
541
+ }
542
+
543
+ /**
544
+ * Action configuration for HITL tasks
545
+ * Defines available user actions and their behavior
546
+ */
547
+ interface ActionConfig {
548
+ /** Unique action identifier (e.g., 'approve', 'retry', 'escalate') */
549
+ id: string;
550
+ /** Display label for UI button */
551
+ label: string;
552
+ /** Button variant/style */
553
+ type: 'primary' | 'secondary' | 'danger' | 'outline';
554
+ /** Tabler icon name (e.g., 'IconCheck', 'IconRefresh') */
555
+ icon?: string;
556
+ /** Button color (Mantine theme colors) */
557
+ color?: string;
558
+ /** Button variant (Mantine button variant, e.g., 'light', 'filled', 'outline') */
559
+ variant?: string;
560
+ /** Execution target (agent/workflow to invoke) */
561
+ target?: {
562
+ resourceType: 'agent' | 'workflow';
563
+ resourceId: string;
564
+ /**
565
+ * Optional session ID for agent continuation.
566
+ * If provided, invokes a new turn on the existing session instead of standalone execution.
567
+ * Only valid when resourceType is 'agent'.
568
+ */
569
+ sessionId?: string;
570
+ };
571
+ /** Form schema for collecting action-specific data */
572
+ form?: FormSchema;
573
+ /** Payload template for pre-filling forms */
574
+ payloadTemplate?: unknown;
575
+ /** Requires confirmation dialog */
576
+ requiresConfirmation?: boolean;
577
+ /** Confirmation message */
578
+ confirmationMessage?: string;
579
+ /** Help text / tooltip */
580
+ description?: string;
581
+ }
582
+
583
+ /**
584
+ * Origin resource type - where an execution/task originated from.
585
+ * Used for audit trails and tracking execution lineage.
586
+ */
587
+ type OriginResourceType = 'agent' | 'workflow' | 'scheduler' | 'api';
588
+ /**
589
+ * Origin tracking metadata - who/what created this execution/task.
590
+ * Used by both TaskScheduler and CommandQueue for complete audit trails.
591
+ */
592
+ interface OriginTracking {
593
+ originExecutionId: string;
594
+ originResourceType: OriginResourceType;
595
+ originResourceId: string;
596
+ }
597
+
598
+ /**
599
+ * Command queue task with flexible action system
600
+ */
601
+ interface Task extends OriginTracking {
602
+ id: string;
603
+ organizationId: string;
604
+ actions: ActionConfig[];
605
+ context: unknown;
606
+ selectedAction?: string;
607
+ actionPayload?: unknown;
608
+ description?: string;
609
+ priority: number;
610
+ /** Optional checkpoint identifier for grouping related human approval tasks */
611
+ humanCheckpoint?: string;
612
+ status: TaskStatus;
613
+ /**
614
+ * Target resource tracking — mirrors origin columns.
615
+ * Set when task is created; patchable to redirect execution to a different resource.
616
+ */
617
+ targetResourceId?: string;
618
+ targetResourceType?: 'agent' | 'workflow';
619
+ /**
620
+ * Execution ID for the action that runs AFTER user approval.
621
+ * NULL until execution starts.
622
+ *
623
+ * Naming distinction:
624
+ * - originExecutionId = Parent execution that CREATED the HITL task
625
+ * - targetExecutionId = Child execution that RUNS AFTER user approval
626
+ */
627
+ targetExecutionId?: string;
628
+ createdAt: Date;
629
+ completedAt?: Date;
630
+ completedBy?: string;
631
+ expiresAt?: Date;
632
+ idempotencyKey?: string | null;
633
+ }
634
+ /**
635
+ * Task status values
636
+ * - pending: awaiting action
637
+ * - processing: execution in progress after user approval
638
+ * - completed: action was taken and execution succeeded
639
+ * - failed: execution failed, task can be retried
640
+ * - expired: timed out before action
641
+ */
642
+ type TaskStatus = 'pending' | 'processing' | 'completed' | 'failed' | 'expired';
643
+
644
+ /**
645
+ * Wire-format DTO for notification API responses.
646
+ * Dates are ISO 8601 strings (not Date objects like the domain Notification type).
647
+ * Used by frontend hooks that consume /api/notifications.
648
+ */
649
+ interface NotificationDTO {
650
+ id: string;
651
+ userId: string;
652
+ organizationId: string;
653
+ category: string;
654
+ title: string;
655
+ message: string;
656
+ actionUrl: string | null;
657
+ read: boolean;
658
+ readAt: string | null;
659
+ createdAt: string;
660
+ }
661
+
662
+ type MessageType = MessageEvent['type'];
663
+ interface ChatMessage {
664
+ id: string;
665
+ role: 'user' | 'assistant';
666
+ messageType: MessageType;
667
+ text: string;
668
+ metadata?: MessageEvent;
669
+ turnNumber: number;
670
+ messageIndex?: number;
671
+ createdAt: Date;
672
+ }
673
+
674
+ /**
675
+ * Time range selector for dashboard metrics
676
+ */
677
+ type TimeRange = '1h' | '24h' | '7d' | '30d';
678
+ /** Time-bucketed health data point */
679
+ interface ResourceHealthDataPoint {
680
+ time: string;
681
+ success: number;
682
+ failure: number;
683
+ warning: number;
684
+ rate: number;
685
+ }
686
+ /** Health data for a single resource */
687
+ interface ResourceHealth {
688
+ entityType: string;
689
+ entityId: string;
690
+ entityName: string | null;
691
+ trendData: ResourceHealthDataPoint[];
692
+ summary: {
693
+ total: number;
694
+ successRate: number;
695
+ };
696
+ }
697
+
698
+ /**
699
+ * Base Execution Engine type definitions
700
+ * Core types shared across all Execution Engine resources
701
+ */
702
+
703
+ /**
704
+ * Unified message event type - covers all message types in sessions
705
+ * Replaces separate SessionTurnMessages and AgentActivityEvent mechanisms
706
+ */
707
+ /**
708
+ * Structured action metadata attached to assistant messages.
709
+ * Frontend reads this instead of parsing text prefixes.
710
+ */
711
+ type AssistantAction = {
712
+ kind: 'navigate';
713
+ path: string;
714
+ reason: string;
715
+ } | {
716
+ kind: 'update_filters';
717
+ timeRange: string | null;
718
+ statusFilter: string | null;
719
+ searchQuery: string | null;
720
+ };
721
+ type MessageEvent = {
722
+ type: 'user_message';
723
+ text: string;
724
+ } | {
725
+ type: 'assistant_message';
726
+ text: string;
727
+ _action?: AssistantAction;
728
+ } | {
729
+ type: 'agent:started';
730
+ } | {
731
+ type: 'agent:completed';
732
+ } | {
733
+ type: 'agent:error';
734
+ error: string;
735
+ } | {
736
+ type: 'agent:reasoning';
737
+ iteration: number;
738
+ reasoning: string;
739
+ } | {
740
+ type: 'agent:tool_call';
741
+ toolName: string;
742
+ args: Record<string, unknown>;
743
+ } | {
744
+ type: 'agent:tool_result';
745
+ toolName: string;
746
+ success: boolean;
747
+ result?: unknown;
748
+ error?: string;
749
+ };
750
+ /**
751
+ * NOTE: AIResource interface has been removed and replaced with ResourceDefinition
752
+ * from registry/types.ts. All resources (executable and non-executable) now extend
753
+ * the unified ResourceDefinition base interface.
754
+ *
755
+ * AgentConfig and WorkflowConfig now extend ResourceDefinition directly.
756
+ * See packages/core/src/registry/types.ts for the base interface definition.
757
+ */
758
+ type AIResourceDefinition = SerializedWorkflowDefinition | SerializedAgentDefinition;
759
+
760
+ /**
761
+ * Resource Registry type definitions
762
+ */
763
+
764
+ /**
765
+ * Environment/deployment status for resources
766
+ */
767
+ type ResourceStatus = 'dev' | 'prod';
768
+ /**
769
+ * All resource types in the platform
770
+ * Used as the discriminator field in ResourceDefinition
771
+ */
772
+ type ResourceType = 'agent' | 'workflow' | 'trigger' | 'integration' | 'external' | 'human';
773
+ /**
774
+ * Base interface for ALL platform resources
775
+ * Shared by both executable (agents, workflows) and non-executable (triggers, integrations, etc.) resources
776
+ */
777
+ interface ResourceDefinition {
778
+ /** Unique resource identifier */
779
+ resourceId: string;
780
+ /** Display name */
781
+ name: string;
782
+ /** Purpose and functionality description */
783
+ description: string;
784
+ /** Version for change tracking and evolution */
785
+ version: string;
786
+ /** Resource type discriminator */
787
+ type: ResourceType;
788
+ /** Environment/deployment status */
789
+ status: ResourceStatus;
790
+ /** Domain tags for filtering and organization */
791
+ domains?: ResourceDomain[];
792
+ /** Whether the agent supports multi-turn sessions (agents only) */
793
+ sessionCapable?: boolean;
794
+ /** Whether the resource is local (monorepo) or remote (externally deployed) */
795
+ origin?: 'local' | 'remote';
796
+ /** Whether this resource is archived and should be excluded from registration and deployment */
797
+ archived?: boolean;
798
+ }
799
+
800
+ /**
801
+ * Standard Domain Definitions
802
+ * Centralized domain constants and definitions for all organization resources.
803
+ */
804
+
805
+ declare const DOMAINS: {
806
+ readonly INBOUND_PIPELINE: "inbound-pipeline";
807
+ readonly LEAD_GEN_PIPELINE: "lead-gen-pipeline";
808
+ readonly SUPPORT: "support";
809
+ readonly CLIENT_SUPPORT: "client-support";
810
+ readonly DELIVERY: "delivery";
811
+ readonly OPERATIONS: "operations";
812
+ readonly FINANCE: "finance";
813
+ readonly EXECUTIVE: "executive";
814
+ readonly INSTANTLY: "instantly";
815
+ readonly TESTING: "testing";
816
+ readonly INTERNAL: "internal";
817
+ readonly INTEGRATION: "integration";
818
+ readonly UTILITY: "utility";
819
+ readonly DIAGNOSTIC: "diagnostic";
820
+ };
821
+ /**
822
+ * ResourceDomain - Strongly typed domain identifier
823
+ * Use this type for all domain references to ensure compile-time validation.
824
+ */
825
+ type ResourceDomain = (typeof DOMAINS)[keyof typeof DOMAINS];
826
+
827
+ type ExecutionStatus = 'pending' | 'running' | 'completed' | 'failed' | 'warning';
828
+
829
+ /**
830
+ * Execution Runner Types
831
+ *
832
+ * Shared types for the Execution Runner UI feature.
833
+ * Used by both API (apps/api) and frontend (apps/command-center).
834
+ */
835
+
836
+ interface ExecutionRunnerCatalogItem {
837
+ resourceId: string;
838
+ resourceName: string;
839
+ resourceType: 'workflow' | 'agent';
840
+ description?: string;
841
+ status: 'dev' | 'prod';
842
+ version: string;
843
+ interface: SerializedExecutionInterface;
844
+ }
845
+
846
+ interface TimeRangeSelectorProps {
847
+ value: TimeRange;
848
+ onChange: (value: TimeRange) => void;
849
+ width?: number;
850
+ }
851
+ declare function TimeRangeSelector({ value, onChange, width }: TimeRangeSelectorProps): react_jsx_runtime.JSX.Element;
852
+
853
+ interface CustomSelectorProps {
854
+ value: string | null;
855
+ onChange: (value: string | null) => void;
856
+ data: {
857
+ value: string;
858
+ label: string;
859
+ }[] | readonly {
860
+ value: string;
861
+ label: string;
862
+ }[];
863
+ leftSection?: ReactNode;
864
+ placeholder?: string;
865
+ w?: number | string;
866
+ withCheckIcon?: boolean;
867
+ disabled?: boolean;
868
+ }
869
+ declare function CustomSelector({ value, onChange, data, leftSection, placeholder, w, withCheckIcon, disabled }: CustomSelectorProps): react_jsx_runtime.JSX.Element;
870
+
871
+ /**
872
+ * TrendIndicator - Reusable component for showing percentage change trends
873
+ * Displays up/down/flat arrow with colored badge
874
+ */
875
+ interface TrendIndicatorProps {
876
+ /** Current value */
877
+ current: number;
878
+ /** Previous value to compare against */
879
+ previous: number;
880
+ /** Optional formatter for the value (not used in display but kept for API compatibility) */
881
+ formatter?: (value: number) => string;
882
+ /** If true, negative change is considered positive (e.g., for costs) */
883
+ inverse?: boolean;
884
+ }
885
+ /**
886
+ * Shows a trend indicator with arrow icon and percentage change badge
887
+ *
888
+ * @example
889
+ * // Positive trend (green when going up)
890
+ * <TrendIndicator current={100} previous={80} />
891
+ *
892
+ * @example
893
+ * // Inverse trend (green when going down, useful for costs)
894
+ * <TrendIndicator current={100} previous={120} inverse />
895
+ */
896
+ declare function TrendIndicator({ current, previous, inverse }: TrendIndicatorProps): react_jsx_runtime.JSX.Element;
897
+
898
+ interface ContextViewerProps {
899
+ /** Any JSON-serializable data to display in a human-readable format */
900
+ data: unknown;
901
+ }
902
+ /**
903
+ * Auto-formats any JSON context into a human-readable layout.
904
+ *
905
+ * - Strings → rendered as markdown (supports formatting, lists, tables)
906
+ * - Flat key-value objects → labeled field list
907
+ * - Nested objects → indented subsections with left border
908
+ * - Arrays → bulleted lists or bordered cards
909
+ * - null/undefined/boolean/number → inline text
910
+ *
911
+ * No display configuration needed — the component infers layout from data shape.
912
+ */
913
+ declare function ContextViewer({ data }: ContextViewerProps): react_jsx_runtime.JSX.Element;
914
+
915
+ interface JsonViewerProps {
916
+ /** JSON data to display (will be stringified) or pre-formatted JSON string */
917
+ data: unknown;
918
+ /** Maximum height with scroll (e.g., '300px'). If not set, expands to content */
919
+ maxHeight?: string | number;
920
+ /** Font size override */
921
+ fontSize?: string | number;
922
+ }
923
+ /**
924
+ * Syntax-highlighted JSON viewer component
925
+ *
926
+ * @example
927
+ * ```tsx
928
+ * import { JsonViewer } from '@repo/ui'
929
+ *
930
+ * <JsonViewer data={{ foo: 'bar', count: 42 }} />
931
+ * <JsonViewer data={apiResponse} maxHeight={300} />
932
+ * ```
933
+ */
934
+ declare function JsonViewer({ data, maxHeight, fontSize }: JsonViewerProps): react_jsx_runtime.JSX.Element;
935
+
936
+ interface StyledMarkdownProps {
937
+ /** Markdown content to render */
938
+ children: string;
939
+ /** Custom component overrides */
940
+ components?: Partial<Components>;
941
+ /** Additional class name */
942
+ className?: string;
943
+ /** Inline styles for the wrapper div */
944
+ style?: React.CSSProperties;
945
+ }
946
+ /**
947
+ * Styled markdown renderer with Mantine components and syntax highlighting
948
+ *
949
+ * Features:
950
+ * - Colored headings using theme primary color
951
+ * - Syntax-highlighted code blocks (oneDark theme, no token backgrounds)
952
+ * - Styled inline code with Mantine Code component
953
+ * - Styled blockquotes with left border
954
+ * - Proper list styling
955
+ *
956
+ * @example
957
+ * ```tsx
958
+ * import { StyledMarkdown } from '@repo/ui'
959
+ *
960
+ * <StyledMarkdown>{markdownContent}</StyledMarkdown>
961
+ * ```
962
+ */
963
+ declare function StyledMarkdown({ children, components, className, style }: StyledMarkdownProps): react_jsx_runtime.JSX.Element;
964
+
965
+ interface ResourceCardProps {
966
+ resource: ResourceDefinition;
967
+ onClick: (resource: ResourceDefinition) => void;
968
+ /** Layout mode: 'stack' renders vertically (default), 'row' renders as a dense horizontal strip, 'grid' renders with a right section, 'card' renders with top section above details */
969
+ layout?: 'stack' | 'row' | 'grid' | 'card';
970
+ /** Content rendered in the right column when layout is 'grid' */
971
+ rightSection?: ReactNode;
972
+ /** Content rendered above the details when layout is 'card' */
973
+ topSection?: ReactNode;
974
+ /** Optional "Last run X ago" label shown below status badges */
975
+ lastRunLabel?: string;
976
+ /** HTML data attributes and style overrides passed to the root Card */
977
+ 'data-resource-id'?: string;
978
+ style?: CSSProperties;
979
+ }
980
+ declare function ResourceCard({ resource, onClick, layout, rightSection, topSection, lastRunLabel, style, ...rest }: ResourceCardProps): react_jsx_runtime.JSX.Element;
981
+
982
+ /**
983
+ * Converts ExecutionRunnerCatalogItem to ResourceDefinition format
984
+ * for use with the unified ResourceCard component.
985
+ *
986
+ * @param item - ExecutionRunnerCatalogItem from the execution runner API
987
+ * @returns ResourceDefinition compatible with ResourceCard
988
+ *
989
+ * @example
990
+ * const catalogItem = {
991
+ * resourceId: 'wf-001',
992
+ * resourceName: 'Order Processor',
993
+ * resourceType: 'workflow',
994
+ * description: 'Processes customer orders',
995
+ * status: 'prod',
996
+ * version: '1.0.0',
997
+ * interface: { ... }
998
+ * }
999
+ *
1000
+ * const resource = catalogItemToResourceDefinition(catalogItem)
1001
+ * <ResourceCard resource={resource} />
1002
+ */
1003
+ declare function catalogItemToResourceDefinition(item: ExecutionRunnerCatalogItem): ResourceDefinition;
1004
+
1005
+ interface MessageBubbleProps {
1006
+ message: ChatMessage;
1007
+ }
1008
+ /**
1009
+ * Shared chat message bubble component
1010
+ * Used across all chat interfaces in the monorepo
1011
+ * Supports all 8 message types including agent activity
1012
+ */
1013
+ declare const MessageBubble: react.NamedExoticComponent<MessageBubbleProps>;
1014
+
1015
+ interface ChatInterfaceProps {
1016
+ messages: ChatMessage[];
1017
+ input: string;
1018
+ onInputChange: (value: string) => void;
1019
+ onSendMessage: () => void;
1020
+ isProcessing?: boolean;
1021
+ isConnected?: boolean;
1022
+ error?: string | null;
1023
+ onClearError?: () => void;
1024
+ emptyStateText?: string;
1025
+ emptyStateSubtext?: string;
1026
+ placeholder?: string;
1027
+ }
1028
+ /**
1029
+ * Shared chat interface component
1030
+ * Used across ai studio sessions and production agent chat
1031
+ * Handles message display, auto-scroll, and input area
1032
+ */
1033
+ declare function ChatInterface({ messages, input, onInputChange, onSendMessage, isProcessing, isConnected, error, onClearError, emptyStateText, emptyStateSubtext, placeholder }: ChatInterfaceProps): react_jsx_runtime.JSX.Element;
1034
+
1035
+ interface ChatInputAreaProps {
1036
+ input: string;
1037
+ onInputChange: (value: string) => void;
1038
+ onSend: () => void;
1039
+ isDisabled?: boolean;
1040
+ isProcessing?: boolean;
1041
+ isConnected?: boolean;
1042
+ placeholder?: string;
1043
+ }
1044
+ /**
1045
+ * Tactical chat input area with focus glow and accent send button.
1046
+ */
1047
+ declare const ChatInputArea: react.NamedExoticComponent<ChatInputAreaProps>;
1048
+
1049
+ interface ChatHeaderProps {
1050
+ title: string;
1051
+ status?: {
1052
+ label: string;
1053
+ color: 'green' | 'gray' | 'red' | 'yellow' | 'blue';
1054
+ };
1055
+ contextUsage?: {
1056
+ used: number;
1057
+ total: number;
1058
+ };
1059
+ sidebarIcon?: ReactNode;
1060
+ onToggleSidebar?: () => void;
1061
+ isSidebarOpen?: boolean;
1062
+ sidebarTooltip?: string;
1063
+ }
1064
+ /**
1065
+ * Shared chat header component
1066
+ * Displays title, status badge, context usage, and optional sidebar toggle
1067
+ */
1068
+ declare function ChatHeader({ title, status, contextUsage, sidebarIcon, onToggleSidebar, isSidebarOpen, sidebarTooltip }: ChatHeaderProps): react_jsx_runtime.JSX.Element;
1069
+
1070
+ interface ChatSidebarProps {
1071
+ /**
1072
+ * Whether the sidebar is open
1073
+ */
1074
+ isOpen: boolean;
1075
+ /**
1076
+ * Optional title for the sidebar header
1077
+ * @default 'Details'
1078
+ */
1079
+ title?: string;
1080
+ /**
1081
+ * Sidebar content
1082
+ */
1083
+ children: ReactNode;
1084
+ /**
1085
+ * Optional fixed width in pixels
1086
+ * @default 320
1087
+ */
1088
+ width?: number;
1089
+ /**
1090
+ * Optional z-index for layering
1091
+ * @default 10
1092
+ */
1093
+ zIndex?: number;
1094
+ }
1095
+ /**
1096
+ * Shared chat sidebar component
1097
+ *
1098
+ * Provides a sliding sidebar panel that animates from the right side.
1099
+ * Used across AI Studio sessions and Agent Chat for displaying contextual details.
1100
+ *
1101
+ * Features:
1102
+ * - Smooth transform-based sliding animation
1103
+ * - Fixed width with absolute positioning
1104
+ * - Theme-aware styling with CSS variables
1105
+ * - Customizable header with optional actions
1106
+ * - Flexible content area via children prop
1107
+ *
1108
+ * Layout Pattern:
1109
+ * Parent container must have `position: relative` and the content area should
1110
+ * adjust its `marginRight` to match the sidebar width when open.
1111
+ *
1112
+ * @example
1113
+ * ```tsx
1114
+ * <div style={{ position: 'relative', height: '100vh' }}>
1115
+ * <div style={{
1116
+ * marginRight: isSidebarOpen ? '320px' : '0',
1117
+ * transition: 'margin-right 0.3s cubic-bezier(0.4, 0, 0.2, 1)'
1118
+ * }}>
1119
+ * // Main content
1120
+ * </div>
1121
+ * <ChatSidebar isOpen={isSidebarOpen} onClose={() => setIsOpen(false)}>
1122
+ * // Sidebar content
1123
+ * </ChatSidebar>
1124
+ * </div>
1125
+ * ```
1126
+ */
1127
+ declare function ChatSidebar({ isOpen, title, children, width, zIndex }: ChatSidebarProps): react_jsx_runtime.JSX.Element;
1128
+
1129
+ interface ExecutionLogEntry {
1130
+ id: string;
1131
+ resourceId: string;
1132
+ resourceName: string;
1133
+ resourceType: 'workflow' | 'agent' | 'pipeline';
1134
+ status: ExecutionStatus;
1135
+ startTime: number;
1136
+ endTime?: number;
1137
+ duration?: number;
1138
+ resourceStatus: 'dev' | 'prod';
1139
+ resourceVersion?: string | null;
1140
+ apiVersion?: string | null;
1141
+ sdkVersion?: string | null;
1142
+ }
1143
+ interface ExecutionLogsTableProps {
1144
+ executions: ExecutionLogEntry[];
1145
+ isLoading: boolean;
1146
+ onRowClick?: (params: {
1147
+ resourceType: string;
1148
+ resourceId: string;
1149
+ executionId: string;
1150
+ }) => void;
1151
+ }
1152
+ declare function ExecutionLogsTable({ executions, isLoading, onRowClick }: ExecutionLogsTableProps): react_jsx_runtime.JSX.Element;
1153
+
1154
+ /**
1155
+ * Get chart color based on success rate
1156
+ */
1157
+ declare function getHealthColor(successRate: number, hasExecutions?: boolean): string;
1158
+ interface ResourceHealthChartProps {
1159
+ healthData: ResourceHealth | undefined;
1160
+ hasExecutions?: boolean;
1161
+ width?: number | string;
1162
+ height?: number;
1163
+ }
1164
+ /**
1165
+ * Mini health chart for resource cards
1166
+ */
1167
+ declare function ResourceHealthChart({ healthData, hasExecutions, width, height }: ResourceHealthChartProps): react_jsx_runtime.JSX.Element;
1168
+
1169
+ interface FormFieldRendererProps {
1170
+ field: FormField;
1171
+ form: UseFormReturnType<any>;
1172
+ richTextRenderer?: (props: {
1173
+ content: string;
1174
+ onChange: (content: string) => void;
1175
+ placeholder?: string;
1176
+ }) => ReactNode;
1177
+ }
1178
+ declare function FormFieldRenderer({ field, form, richTextRenderer }: FormFieldRendererProps): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined;
1179
+
1180
+ interface TaskCardProps {
1181
+ task: Task;
1182
+ onViewExecution?: (params: {
1183
+ resourceType: string;
1184
+ resourceId: string;
1185
+ executionId: string;
1186
+ }) => void;
1187
+ richTextRenderer?: (props: {
1188
+ content: string;
1189
+ onChange: (content: string) => void;
1190
+ placeholder?: string;
1191
+ }) => ReactNode;
1192
+ }
1193
+ declare function TaskCard({ task, onViewExecution, richTextRenderer }: TaskCardProps): react_jsx_runtime.JSX.Element;
1194
+
1195
+ interface ActionModalProps {
1196
+ action: ActionConfig;
1197
+ task: Task;
1198
+ opened: boolean;
1199
+ onClose: () => void;
1200
+ onSubmit: (payload: unknown, notes?: string) => void;
1201
+ richTextRenderer?: (props: {
1202
+ content: string;
1203
+ onChange: (content: string) => void;
1204
+ placeholder?: string;
1205
+ }) => ReactNode;
1206
+ error?: unknown;
1207
+ isPending?: boolean;
1208
+ }
1209
+ declare function ActionModal({ action, task, opened, onClose, onSubmit, richTextRenderer, error, isPending }: ActionModalProps): react_jsx_runtime.JSX.Element | null;
1210
+
1211
+ declare const iconMap: Record<string, typeof IconCheck>;
1212
+ /** Allowed icon names: IconCheck, IconX, IconRefresh, IconAlertTriangle, IconEdit, IconEye, IconRocket, IconMessageCircle, IconArrowUp, IconClock, IconFileText, IconSend, IconMail */
1213
+ declare function getIcon(iconName?: string): typeof IconCheck | null;
1214
+
1215
+ interface NotificationItemProps {
1216
+ notification: NotificationDTO;
1217
+ onClose?: () => void;
1218
+ onNavigate?: (url: string) => void;
1219
+ }
1220
+ declare function NotificationItem({ notification, onClose, onNavigate }: NotificationItemProps): react_jsx_runtime.JSX.Element;
1221
+
1222
+ interface NotificationListProps {
1223
+ notifications: NotificationDTO[];
1224
+ isLoading?: boolean;
1225
+ onClose?: () => void;
1226
+ onNavigate?: (url: string) => void;
1227
+ }
1228
+ declare function NotificationList({ notifications, isLoading, onClose, onNavigate }: NotificationListProps): react_jsx_runtime.JSX.Element;
1229
+
1230
+ interface NotificationPanelProps {
1231
+ notifications: NotificationDTO[];
1232
+ isLoading?: boolean;
1233
+ onClose?: () => void;
1234
+ onNavigate?: (url: string) => void;
1235
+ }
1236
+ declare function NotificationPanel({ notifications, isLoading, onClose, onNavigate }: NotificationPanelProps): react_jsx_runtime.JSX.Element;
1237
+
1238
+ interface NotificationBellProps {
1239
+ /** Override unread count (e.g., from SSE-enhanced source) */
1240
+ unreadCount?: number;
1241
+ /** Callback for navigation when notification is clicked */
1242
+ onNavigate?: (url: string) => void;
1243
+ }
1244
+ declare function NotificationBell({ unreadCount, onNavigate }: NotificationBellProps): react_jsx_runtime.JSX.Element;
1245
+
1246
+ interface ResourceDefinitionSectionProps {
1247
+ resourceDefinition: AIResourceDefinition;
1248
+ defaultExpanded?: boolean;
1249
+ }
1250
+ declare function ResourceDefinitionSection({ resourceDefinition, defaultExpanded }: ResourceDefinitionSectionProps): react_jsx_runtime.JSX.Element;
1251
+
1252
+ interface AgentDefinitionDisplayProps {
1253
+ agent: SerializedAgentDefinition;
1254
+ defaultExpanded?: boolean;
1255
+ }
1256
+ declare function AgentDefinitionDisplay({ agent, defaultExpanded }: AgentDefinitionDisplayProps): react_jsx_runtime.JSX.Element;
1257
+
1258
+ interface WorkflowDefinitionDisplayProps {
1259
+ workflow: SerializedWorkflowDefinition;
1260
+ defaultExpanded?: boolean;
1261
+ }
1262
+ declare function WorkflowDefinitionDisplay({ workflow, defaultExpanded }: WorkflowDefinitionDisplayProps): react_jsx_runtime.JSX.Element;
1263
+
1264
+ interface ContractDisplayProps {
1265
+ contract: {
1266
+ inputSchema: unknown;
1267
+ outputSchema?: unknown;
1268
+ };
1269
+ defaultExpanded?: boolean;
1270
+ }
1271
+ declare function ContractDisplay({ contract, defaultExpanded }: ContractDisplayProps): react_jsx_runtime.JSX.Element;
1272
+
1273
+ interface ConfigItem {
1274
+ label: string;
1275
+ value: ReactNode;
1276
+ mono?: boolean;
1277
+ }
1278
+ interface ConfigCardProps {
1279
+ icon: ReactNode;
1280
+ title: string;
1281
+ badge?: string;
1282
+ items: ConfigItem[];
1283
+ color?: string;
1284
+ }
1285
+ declare function ConfigCard({ icon, title, badge, items, color }: ConfigCardProps): react_jsx_runtime.JSX.Element | null;
1286
+
1287
+ interface ToolInfo {
1288
+ name: string;
1289
+ description?: string;
1290
+ }
1291
+ interface ToolsListDisplayProps {
1292
+ tools: Array<string | ToolInfo>;
1293
+ compact?: boolean;
1294
+ maxVisible?: number;
1295
+ }
1296
+ declare function ToolsListDisplay({ tools, compact, maxVisible }: ToolsListDisplayProps): react_jsx_runtime.JSX.Element;
1297
+
1298
+ interface CollapsibleJsonSectionProps {
1299
+ title: React.ReactNode;
1300
+ data: unknown;
1301
+ defaultExpanded?: boolean;
1302
+ }
1303
+ declare function CollapsibleJsonSection({ title, data, defaultExpanded }: CollapsibleJsonSectionProps): react_jsx_runtime.JSX.Element;
1304
+
1305
+ /**
1306
+ * Shared types for ResourceDefinition components
1307
+ */
1308
+ /** Serialized knowledge node from API response */
1309
+ interface SerializedKnowledgeNode {
1310
+ id: string;
1311
+ description: string;
1312
+ loaded: boolean;
1313
+ hasPrompt: boolean;
1314
+ [key: string]: unknown;
1315
+ }
1316
+ /** Serialized knowledge map from API response */
1317
+ interface SerializedKnowledgeMap {
1318
+ nodeCount: number;
1319
+ nodes: SerializedKnowledgeNode[];
1320
+ }
1321
+
1322
+ interface NewKnowledgeMapGraphProps {
1323
+ knowledgeMap: SerializedKnowledgeMap;
1324
+ agentName: string;
1325
+ compact?: boolean;
1326
+ fitViewTrigger?: number;
1327
+ }
1328
+ declare function NewKnowledgeMapGraph(props: NewKnowledgeMapGraphProps): react_jsx_runtime.JSX.Element;
1329
+
1330
+ interface KnowledgeMapNodeData {
1331
+ id: string;
1332
+ name: string;
1333
+ description: string;
1334
+ loaded: boolean;
1335
+ hasPrompt: boolean;
1336
+ isAgentNode: boolean;
1337
+ [key: string]: unknown;
1338
+ }
1339
+ interface KnowledgeMapEdgeData {
1340
+ [key: string]: unknown;
1341
+ }
1342
+ declare function useNewKnowledgeMapLayout(knowledgeMap: SerializedKnowledgeMap | undefined, agentName: string): {
1343
+ nodes: Node<KnowledgeMapNodeData>[];
1344
+ edges: Edge<KnowledgeMapEdgeData>[];
1345
+ };
1346
+
1347
+ type NewKnowledgeMapNodeProps = NodeProps<Node<KnowledgeMapNodeData>>;
1348
+ declare const NewKnowledgeMapNode: react.NamedExoticComponent<NewKnowledgeMapNodeProps>;
1349
+
1350
+ type NewKnowledgeMapEdgeProps = EdgeProps<Edge<KnowledgeMapEdgeData, string>>;
1351
+ declare const NewKnowledgeMapEdge: react.NamedExoticComponent<NewKnowledgeMapEdgeProps>;
1352
+
1353
+ export { APIErrorAlert, ActionModal, AgentDefinitionDisplay, ChatHeader, ChatInputArea, ChatInterface, ChatSidebar, CollapsibleJsonSection, CollapsibleSection, ConfigCard, ConfirmationInputModal, ConfirmationModal, ContextViewer, ContractDisplay, CustomModal, CustomSelector, DetailCardSkeleton, EmptyState, ExecutionLogsTable, FormFieldRenderer, JsonViewer, ListSkeleton, MessageBubble, NavigationButton, NewKnowledgeMapEdge, NewKnowledgeMapGraph, NewKnowledgeMapNode, NotificationBell, NotificationItem, NotificationList, NotificationPanel, PageNotFound, PageTitleCaption, ResourceCard, ResourceDefinitionSection, ResourceHealthChart, StatCard, StatCardSkeleton, StatsCardSkeleton, StyledMarkdown, TabCountBadge, TaskCard, TimeRangeSelector, ToolsListDisplay, TrendIndicator, WorkflowDefinitionDisplay, catalogItemToResourceDefinition, getHealthColor, getIcon, iconMap, useNewKnowledgeMapLayout };
1354
+ export type { ContextViewerProps, ExecutionLogEntry, ExecutionLogsTableProps, JsonViewerProps, KnowledgeMapEdgeData, KnowledgeMapNodeData, NavigationButtonProps, SerializedKnowledgeMap, SerializedKnowledgeNode, StatCardProps, StyledMarkdownProps, TrendIndicatorProps };