@datatechsolutions/ui 3.5.0 → 3.6.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 (167) hide show
  1. package/dist/astrlabe/contracts.d.mts +517 -0
  2. package/dist/astrlabe/contracts.d.ts +517 -0
  3. package/dist/astrlabe/graph-node.d.mts +28 -0
  4. package/dist/astrlabe/graph-node.d.ts +28 -0
  5. package/dist/astrlabe/index.d.mts +743 -0
  6. package/dist/astrlabe/index.d.ts +743 -0
  7. package/dist/astrlabe/index.js +108 -108
  8. package/dist/astrlabe/index.mjs +4 -4
  9. package/dist/astrlabe/utils.d.mts +60 -0
  10. package/dist/astrlabe/utils.d.ts +60 -0
  11. package/dist/astrlabe/workflow-canvas.d.mts +6 -0
  12. package/dist/astrlabe/workflow-canvas.d.ts +6 -0
  13. package/dist/astrlabe/workflow-canvas.js +4 -4
  14. package/dist/astrlabe/workflow-canvas.mjs +3 -3
  15. package/dist/astrlabe/workflow-preview-canvas.d.mts +10 -0
  16. package/dist/astrlabe/workflow-preview-canvas.d.ts +10 -0
  17. package/dist/billing-panel-DsHhhJqG.d.mts +18 -0
  18. package/dist/billing-panel-DsHhhJqG.d.ts +18 -0
  19. package/dist/brand/index.d.mts +71 -0
  20. package/dist/brand/index.d.ts +71 -0
  21. package/dist/{chunk-AVM53A3Y.js → chunk-3WXMBAGN.js} +46 -44
  22. package/dist/chunk-3WXMBAGN.js.map +1 -0
  23. package/dist/{chunk-NOHHZ6FM.mjs → chunk-4OFG6POC.mjs} +10 -6
  24. package/dist/chunk-4OFG6POC.mjs.map +1 -0
  25. package/dist/{chunk-QLFSJ6HK.mjs → chunk-7LILNZMR.mjs} +3 -3
  26. package/dist/{chunk-QLFSJ6HK.mjs.map → chunk-7LILNZMR.mjs.map} +1 -1
  27. package/dist/{chunk-NKXQYFS7.js → chunk-AMYQSPQC.js} +16 -16
  28. package/dist/{chunk-NKXQYFS7.js.map → chunk-AMYQSPQC.js.map} +1 -1
  29. package/dist/{chunk-2MJAHST4.mjs → chunk-DYWSG42B.mjs} +4 -4
  30. package/dist/{chunk-2MJAHST4.mjs.map → chunk-DYWSG42B.mjs.map} +1 -1
  31. package/dist/{chunk-NJ5RVWLA.mjs → chunk-ESLKQJQS.mjs} +4 -4
  32. package/dist/{chunk-NJ5RVWLA.mjs.map → chunk-ESLKQJQS.mjs.map} +1 -1
  33. package/dist/{chunk-AWDH6WNA.js → chunk-GCYYGSHU.js} +10 -6
  34. package/dist/chunk-GCYYGSHU.js.map +1 -0
  35. package/dist/{chunk-UHMAKUON.mjs → chunk-HGWVJ3VB.mjs} +21 -21
  36. package/dist/{chunk-UHMAKUON.mjs.map → chunk-HGWVJ3VB.mjs.map} +1 -1
  37. package/dist/{chunk-4PFU6A2B.mjs → chunk-I63NFWIA.mjs} +3 -3
  38. package/dist/{chunk-4PFU6A2B.mjs.map → chunk-I63NFWIA.mjs.map} +1 -1
  39. package/dist/{chunk-QPSHM2JQ.mjs → chunk-IHHGT3LP.mjs} +19 -19
  40. package/dist/{chunk-QPSHM2JQ.mjs.map → chunk-IHHGT3LP.mjs.map} +1 -1
  41. package/dist/{chunk-6W7VTZG6.mjs → chunk-JQYDJ75Q.mjs} +3 -3
  42. package/dist/{chunk-6W7VTZG6.mjs.map → chunk-JQYDJ75Q.mjs.map} +1 -1
  43. package/dist/{chunk-V5VBYOF5.js → chunk-LVK7VXW7.js} +54 -54
  44. package/dist/{chunk-V5VBYOF5.js.map → chunk-LVK7VXW7.js.map} +1 -1
  45. package/dist/{chunk-7CEZB3ZD.mjs → chunk-MRRFDIUQ.mjs} +3 -3
  46. package/dist/{chunk-7CEZB3ZD.mjs.map → chunk-MRRFDIUQ.mjs.map} +1 -1
  47. package/dist/{chunk-A7FI4K7Z.js → chunk-NJZIE4EH.js} +5 -5
  48. package/dist/{chunk-A7FI4K7Z.js.map → chunk-NJZIE4EH.js.map} +1 -1
  49. package/dist/{chunk-P43PX75J.js → chunk-P5F257N3.js} +33 -33
  50. package/dist/{chunk-P43PX75J.js.map → chunk-P5F257N3.js.map} +1 -1
  51. package/dist/{chunk-BVXATTTA.js → chunk-QHP2MR2F.js} +4 -4
  52. package/dist/{chunk-BVXATTTA.js.map → chunk-QHP2MR2F.js.map} +1 -1
  53. package/dist/{chunk-CY2MBKVG.js → chunk-QRNFTG6A.js} +4 -4
  54. package/dist/{chunk-CY2MBKVG.js.map → chunk-QRNFTG6A.js.map} +1 -1
  55. package/dist/{chunk-OASC7NYV.mjs → chunk-QTA5I6FC.mjs} +3 -3
  56. package/dist/{chunk-OASC7NYV.mjs.map → chunk-QTA5I6FC.mjs.map} +1 -1
  57. package/dist/{chunk-QSMPKL27.js → chunk-S7AV6XEY.js} +74 -74
  58. package/dist/{chunk-QSMPKL27.js.map → chunk-S7AV6XEY.js.map} +1 -1
  59. package/dist/{chunk-VMGNQFRO.js → chunk-UGJZ3M4Q.js} +53 -53
  60. package/dist/{chunk-VMGNQFRO.js.map → chunk-UGJZ3M4Q.js.map} +1 -1
  61. package/dist/{chunk-5BEVTOZV.mjs → chunk-UOABOFKO.mjs} +4 -4
  62. package/dist/{chunk-5BEVTOZV.mjs.map → chunk-UOABOFKO.mjs.map} +1 -1
  63. package/dist/{chunk-74MHWEDC.js → chunk-UWSMHKOF.js} +161 -161
  64. package/dist/{chunk-74MHWEDC.js.map → chunk-UWSMHKOF.js.map} +1 -1
  65. package/dist/{chunk-ZM2Q2SMC.mjs → chunk-VDLAZR7S.mjs} +3 -3
  66. package/dist/{chunk-ZM2Q2SMC.mjs.map → chunk-VDLAZR7S.mjs.map} +1 -1
  67. package/dist/{chunk-FK3WDELF.js → chunk-VPOIX2DY.js} +40 -40
  68. package/dist/{chunk-FK3WDELF.js.map → chunk-VPOIX2DY.js.map} +1 -1
  69. package/dist/{chunk-IOEQ2GET.mjs → chunk-VUAGVZJM.mjs} +4 -4
  70. package/dist/{chunk-IOEQ2GET.mjs.map → chunk-VUAGVZJM.mjs.map} +1 -1
  71. package/dist/{chunk-Z7VY5M4T.js → chunk-W5YCZOXO.js} +77 -77
  72. package/dist/{chunk-Z7VY5M4T.js.map → chunk-W5YCZOXO.js.map} +1 -1
  73. package/dist/{chunk-C4NRF2G2.js → chunk-WBEZATIB.js} +13 -13
  74. package/dist/{chunk-C4NRF2G2.js.map → chunk-WBEZATIB.js.map} +1 -1
  75. package/dist/{chunk-6V3DUBOZ.mjs → chunk-WEZ722BS.mjs} +7 -7
  76. package/dist/{chunk-6V3DUBOZ.mjs.map → chunk-WEZ722BS.mjs.map} +1 -1
  77. package/dist/{chunk-3OLYSMI5.mjs → chunk-XTXLRQ3H.mjs} +24 -22
  78. package/dist/chunk-XTXLRQ3H.mjs.map +1 -0
  79. package/dist/{chunk-5I7F7KZ6.js → chunk-YOJIPZ72.js} +10 -10
  80. package/dist/{chunk-5I7F7KZ6.js.map → chunk-YOJIPZ72.js.map} +1 -1
  81. package/dist/{chunk-NCDBNGIB.js → chunk-YTE6WCBX.js} +76 -76
  82. package/dist/{chunk-NCDBNGIB.js.map → chunk-YTE6WCBX.js.map} +1 -1
  83. package/dist/{chunk-7UHV6A4C.mjs → chunk-ZYVDDSAC.mjs} +6 -6
  84. package/dist/{chunk-7UHV6A4C.mjs.map → chunk-ZYVDDSAC.mjs.map} +1 -1
  85. package/dist/dynamic-island-confirm-BKsZkAEP.d.mts +17 -0
  86. package/dist/dynamic-island-confirm-BKsZkAEP.d.ts +17 -0
  87. package/dist/index-BNRGVAS5.d.mts +222 -0
  88. package/dist/index-BoebbJ44.d.mts +49 -0
  89. package/dist/index-BoebbJ44.d.ts +49 -0
  90. package/dist/index-CnCY-b5V.d.ts +222 -0
  91. package/dist/index.d.mts +5310 -0
  92. package/dist/index.d.ts +5310 -0
  93. package/dist/index.js +721 -721
  94. package/dist/index.mjs +2 -2
  95. package/dist/layout-engine-YZcVr20M.d.mts +19 -0
  96. package/dist/layout-engine-YZcVr20M.d.ts +19 -0
  97. package/dist/lib/i18n-context.d.mts +36 -0
  98. package/dist/lib/i18n-context.d.ts +36 -0
  99. package/dist/lib/router-context.d.mts +35 -0
  100. package/dist/lib/router-context.d.ts +35 -0
  101. package/dist/navigation-BiWVffAN.d.mts +49 -0
  102. package/dist/navigation-BiWVffAN.d.ts +49 -0
  103. package/dist/platform/admin/index.d.mts +17 -0
  104. package/dist/platform/admin/index.d.ts +17 -0
  105. package/dist/platform/admin/index.js +11 -11
  106. package/dist/platform/admin/index.mjs +5 -5
  107. package/dist/platform/agents-workspace.d.mts +19 -0
  108. package/dist/platform/agents-workspace.d.ts +19 -0
  109. package/dist/platform/agents-workspace.js +7 -7
  110. package/dist/platform/agents-workspace.mjs +6 -6
  111. package/dist/platform/app-shell.d.mts +58 -0
  112. package/dist/platform/app-shell.d.ts +58 -0
  113. package/dist/platform/app-shell.js +4 -4
  114. package/dist/platform/app-shell.mjs +3 -3
  115. package/dist/platform/auth/index.d.mts +73 -0
  116. package/dist/platform/auth/index.d.ts +73 -0
  117. package/dist/platform/auth/index.js +28 -28
  118. package/dist/platform/auth/index.mjs +5 -5
  119. package/dist/platform/billing/index.d.mts +29 -0
  120. package/dist/platform/billing/index.d.ts +29 -0
  121. package/dist/platform/billing/index.js +4 -4
  122. package/dist/platform/billing/index.mjs +3 -3
  123. package/dist/platform/impersonation/index.d.mts +19 -0
  124. package/dist/platform/impersonation/index.d.ts +19 -0
  125. package/dist/platform/impersonation/index.js +4 -4
  126. package/dist/platform/impersonation/index.mjs +3 -3
  127. package/dist/platform/index.d.mts +188 -0
  128. package/dist/platform/index.d.ts +188 -0
  129. package/dist/platform/index.js +89 -89
  130. package/dist/platform/index.mjs +19 -19
  131. package/dist/platform/pages/index.d.mts +441 -0
  132. package/dist/platform/pages/index.d.ts +441 -0
  133. package/dist/platform/pages/index.js +326 -302
  134. package/dist/platform/pages/index.js.map +1 -1
  135. package/dist/platform/pages/index.mjs +148 -124
  136. package/dist/platform/pages/index.mjs.map +1 -1
  137. package/dist/platform/rbac.d.mts +42 -0
  138. package/dist/platform/rbac.d.ts +42 -0
  139. package/dist/platform/settings/index.d.mts +31 -0
  140. package/dist/platform/settings/index.d.ts +31 -0
  141. package/dist/platform/settings/index.js +8 -8
  142. package/dist/platform/settings/index.mjs +7 -7
  143. package/dist/platform/telemetry/index.d.mts +51 -0
  144. package/dist/platform/telemetry/index.d.ts +51 -0
  145. package/dist/platform/utils/index.d.mts +32 -0
  146. package/dist/platform/utils/index.d.ts +32 -0
  147. package/dist/platform/windsock-admin-client.d.mts +57 -0
  148. package/dist/platform/windsock-admin-client.d.ts +57 -0
  149. package/dist/platform/workflow-api-client.d.mts +6 -0
  150. package/dist/platform/workflow-api-client.d.ts +6 -0
  151. package/dist/platform/workflow-canvas-shell.d.mts +18 -0
  152. package/dist/platform/workflow-canvas-shell.d.ts +18 -0
  153. package/dist/platform/workflow-canvas-shell.js +5 -5
  154. package/dist/platform/workflow-canvas-shell.mjs +4 -4
  155. package/dist/rule-form-BYJzyork.d.mts +128 -0
  156. package/dist/rule-form-BYJzyork.d.ts +128 -0
  157. package/dist/workflow-api-client-CpFl3WcG.d.mts +468 -0
  158. package/dist/workflow-api-client-uLICOanv.d.ts +468 -0
  159. package/dist/workflow-canvas--qaYKuMm.d.ts +113 -0
  160. package/dist/workflow-canvas-B80fmD_n.d.mts +113 -0
  161. package/dist/workflow-store-o17I6L6A.d.ts +79 -0
  162. package/dist/workflow-store-ppVHdMZi.d.mts +79 -0
  163. package/package.json +1 -1
  164. package/dist/chunk-3OLYSMI5.mjs.map +0 -1
  165. package/dist/chunk-AVM53A3Y.js.map +0 -1
  166. package/dist/chunk-AWDH6WNA.js.map +0 -1
  167. package/dist/chunk-NOHHZ6FM.mjs.map +0 -1
@@ -0,0 +1,128 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ type ExecutionTimelineStatus = 'completed' | 'running' | 'failed' | 'pending' | 'skipped';
4
+ type ExecutionTimelineMetrics = {
5
+ tokensIn?: number;
6
+ tokensOut?: number;
7
+ costUsd?: number;
8
+ provider?: string;
9
+ model?: string;
10
+ };
11
+ type ExecutionTimelineEntry = {
12
+ nodeId: string;
13
+ nodeType: string;
14
+ status: ExecutionTimelineStatus;
15
+ startedAt: string | null;
16
+ completedAt: string | null;
17
+ durationMs: number | null;
18
+ inputs?: Record<string, unknown>;
19
+ outputs?: Record<string, unknown>;
20
+ error?: string | null;
21
+ metrics?: ExecutionTimelineMetrics;
22
+ };
23
+ type ExecutionTimelineLabels = {
24
+ status: string;
25
+ duration: string;
26
+ inputs: string;
27
+ outputs: string;
28
+ error: string;
29
+ started: string;
30
+ completed: string;
31
+ pending: string;
32
+ running: string;
33
+ failed: string;
34
+ skipped: string;
35
+ selectNode: string;
36
+ model: string;
37
+ tokens: string;
38
+ cost: string;
39
+ /** Used as the empty-state heading when `entries` is empty. */
40
+ empty?: string;
41
+ };
42
+ type ExecutionTimelinePanelProps = {
43
+ entries: ExecutionTimelineEntry[];
44
+ labels: ExecutionTimelineLabels;
45
+ /** When set, drives selection from the parent. Useful when the page
46
+ * syncs the selection with a URL query param. */
47
+ selectedNodeId?: string;
48
+ onSelect?: (nodeId: string) => void;
49
+ };
50
+ declare function ExecutionTimelinePanel({ entries, labels, selectedNodeId, onSelect, }: ExecutionTimelinePanelProps): react_jsx_runtime.JSX.Element;
51
+
52
+ /**
53
+ * Rule editing types.
54
+ *
55
+ * Mirrors the shape the Rust `RuleExecutor`
56
+ * (`lambda-rs/crates/astrlabe-handlers/src/engine/executors/rule.rs`) reads
57
+ * from `astrlabe.agent_rules.condition` + `action`. The UI builder below
58
+ * writes exactly this shape, so round-tripping through the backend is a
59
+ * no-op.
60
+ */
61
+ type SimpleComparisonOperator = 'truthy' | 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte' | 'contains';
62
+ type RuleConditionOperator = SimpleComparisonOperator | 'regex_match' | 'threshold' | 'time_window' | 'boolean_expression';
63
+ type TimeWindow = {
64
+ startHour: number;
65
+ endHour: number;
66
+ startMinute?: number;
67
+ endMinute?: number;
68
+ /** 0 = Sunday, 6 = Saturday. Omit to match every day. */
69
+ daysOfWeek?: number[];
70
+ };
71
+ /**
72
+ * Canonical rule-condition shape. The executor branches on `operator`,
73
+ * so every form tree ultimately serializes to this.
74
+ */
75
+ type RuleCondition = {
76
+ operator: RuleConditionOperator;
77
+ /** Simple operators + regex_match + threshold + time_window */
78
+ field?: string;
79
+ /** Simple operators + threshold */
80
+ value?: string | number | boolean | null;
81
+ /** regex_match */
82
+ pattern?: string;
83
+ /** threshold — which direction `value` is compared in. */
84
+ comparison?: 'gt' | 'gte' | 'lt' | 'lte';
85
+ /** time_window */
86
+ timezone?: string;
87
+ windows?: TimeWindow[];
88
+ /** boolean_expression */
89
+ combinator?: 'and' | 'or';
90
+ operands?: RuleCondition[];
91
+ };
92
+ type RuleAction = {
93
+ type: string;
94
+ params?: Record<string, unknown>;
95
+ };
96
+ /** `agent_rules.status` free-form string — keep the UI picker aligned
97
+ * with the values the engine / audit trail recognizes today. */
98
+ declare const RULE_STATUS_OPTIONS: readonly ["draft", "active", "archived"];
99
+ type RuleStatus = (typeof RULE_STATUS_OPTIONS)[number];
100
+ declare const TIMEZONE_OPTIONS: readonly ["UTC", "America/Sao_Paulo", "America/New_York", "America/Los_Angeles", "Europe/London", "Europe/Lisbon"];
101
+
102
+ type RuleFormValue = {
103
+ ruleId?: string;
104
+ name: string;
105
+ description?: string;
106
+ enabled: boolean;
107
+ priority: number;
108
+ status?: RuleStatus;
109
+ validFrom?: string | null;
110
+ validUntil?: string | null;
111
+ tags?: string[];
112
+ condition: RuleCondition;
113
+ action: RuleAction;
114
+ };
115
+ type Props = {
116
+ value: RuleFormValue;
117
+ onChange: (next: RuleFormValue) => void;
118
+ };
119
+ /**
120
+ * Full-field rule editor used inside the create/edit modal. Composes the
121
+ * visual condition + action builders and exposes the schedule / tagging /
122
+ * lifecycle fields that the `agent_rules` entity has but the old JSON-
123
+ * textarea form never surfaced.
124
+ */
125
+ declare function RuleForm({ value, onChange }: Props): react_jsx_runtime.JSX.Element;
126
+ declare function defaultRuleForm(): RuleFormValue;
127
+
128
+ export { type ExecutionTimelineLabels as E, type RuleFormValue as R, TIMEZONE_OPTIONS as T, type RuleCondition as a, type RuleAction as b, type ExecutionTimelineEntry as c, type ExecutionTimelineMetrics as d, ExecutionTimelinePanel as e, type ExecutionTimelinePanelProps as f, type ExecutionTimelineStatus as g, RULE_STATUS_OPTIONS as h, type RuleConditionOperator as i, RuleForm as j, type RuleStatus as k, type TimeWindow as l, defaultRuleForm as m };
@@ -0,0 +1,128 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ type ExecutionTimelineStatus = 'completed' | 'running' | 'failed' | 'pending' | 'skipped';
4
+ type ExecutionTimelineMetrics = {
5
+ tokensIn?: number;
6
+ tokensOut?: number;
7
+ costUsd?: number;
8
+ provider?: string;
9
+ model?: string;
10
+ };
11
+ type ExecutionTimelineEntry = {
12
+ nodeId: string;
13
+ nodeType: string;
14
+ status: ExecutionTimelineStatus;
15
+ startedAt: string | null;
16
+ completedAt: string | null;
17
+ durationMs: number | null;
18
+ inputs?: Record<string, unknown>;
19
+ outputs?: Record<string, unknown>;
20
+ error?: string | null;
21
+ metrics?: ExecutionTimelineMetrics;
22
+ };
23
+ type ExecutionTimelineLabels = {
24
+ status: string;
25
+ duration: string;
26
+ inputs: string;
27
+ outputs: string;
28
+ error: string;
29
+ started: string;
30
+ completed: string;
31
+ pending: string;
32
+ running: string;
33
+ failed: string;
34
+ skipped: string;
35
+ selectNode: string;
36
+ model: string;
37
+ tokens: string;
38
+ cost: string;
39
+ /** Used as the empty-state heading when `entries` is empty. */
40
+ empty?: string;
41
+ };
42
+ type ExecutionTimelinePanelProps = {
43
+ entries: ExecutionTimelineEntry[];
44
+ labels: ExecutionTimelineLabels;
45
+ /** When set, drives selection from the parent. Useful when the page
46
+ * syncs the selection with a URL query param. */
47
+ selectedNodeId?: string;
48
+ onSelect?: (nodeId: string) => void;
49
+ };
50
+ declare function ExecutionTimelinePanel({ entries, labels, selectedNodeId, onSelect, }: ExecutionTimelinePanelProps): react_jsx_runtime.JSX.Element;
51
+
52
+ /**
53
+ * Rule editing types.
54
+ *
55
+ * Mirrors the shape the Rust `RuleExecutor`
56
+ * (`lambda-rs/crates/astrlabe-handlers/src/engine/executors/rule.rs`) reads
57
+ * from `astrlabe.agent_rules.condition` + `action`. The UI builder below
58
+ * writes exactly this shape, so round-tripping through the backend is a
59
+ * no-op.
60
+ */
61
+ type SimpleComparisonOperator = 'truthy' | 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte' | 'contains';
62
+ type RuleConditionOperator = SimpleComparisonOperator | 'regex_match' | 'threshold' | 'time_window' | 'boolean_expression';
63
+ type TimeWindow = {
64
+ startHour: number;
65
+ endHour: number;
66
+ startMinute?: number;
67
+ endMinute?: number;
68
+ /** 0 = Sunday, 6 = Saturday. Omit to match every day. */
69
+ daysOfWeek?: number[];
70
+ };
71
+ /**
72
+ * Canonical rule-condition shape. The executor branches on `operator`,
73
+ * so every form tree ultimately serializes to this.
74
+ */
75
+ type RuleCondition = {
76
+ operator: RuleConditionOperator;
77
+ /** Simple operators + regex_match + threshold + time_window */
78
+ field?: string;
79
+ /** Simple operators + threshold */
80
+ value?: string | number | boolean | null;
81
+ /** regex_match */
82
+ pattern?: string;
83
+ /** threshold — which direction `value` is compared in. */
84
+ comparison?: 'gt' | 'gte' | 'lt' | 'lte';
85
+ /** time_window */
86
+ timezone?: string;
87
+ windows?: TimeWindow[];
88
+ /** boolean_expression */
89
+ combinator?: 'and' | 'or';
90
+ operands?: RuleCondition[];
91
+ };
92
+ type RuleAction = {
93
+ type: string;
94
+ params?: Record<string, unknown>;
95
+ };
96
+ /** `agent_rules.status` free-form string — keep the UI picker aligned
97
+ * with the values the engine / audit trail recognizes today. */
98
+ declare const RULE_STATUS_OPTIONS: readonly ["draft", "active", "archived"];
99
+ type RuleStatus = (typeof RULE_STATUS_OPTIONS)[number];
100
+ declare const TIMEZONE_OPTIONS: readonly ["UTC", "America/Sao_Paulo", "America/New_York", "America/Los_Angeles", "Europe/London", "Europe/Lisbon"];
101
+
102
+ type RuleFormValue = {
103
+ ruleId?: string;
104
+ name: string;
105
+ description?: string;
106
+ enabled: boolean;
107
+ priority: number;
108
+ status?: RuleStatus;
109
+ validFrom?: string | null;
110
+ validUntil?: string | null;
111
+ tags?: string[];
112
+ condition: RuleCondition;
113
+ action: RuleAction;
114
+ };
115
+ type Props = {
116
+ value: RuleFormValue;
117
+ onChange: (next: RuleFormValue) => void;
118
+ };
119
+ /**
120
+ * Full-field rule editor used inside the create/edit modal. Composes the
121
+ * visual condition + action builders and exposes the schedule / tagging /
122
+ * lifecycle fields that the `agent_rules` entity has but the old JSON-
123
+ * textarea form never surfaced.
124
+ */
125
+ declare function RuleForm({ value, onChange }: Props): react_jsx_runtime.JSX.Element;
126
+ declare function defaultRuleForm(): RuleFormValue;
127
+
128
+ export { type ExecutionTimelineLabels as E, type RuleFormValue as R, TIMEZONE_OPTIONS as T, type RuleCondition as a, type RuleAction as b, type ExecutionTimelineEntry as c, type ExecutionTimelineMetrics as d, ExecutionTimelinePanel as e, type ExecutionTimelinePanelProps as f, type ExecutionTimelineStatus as g, RULE_STATUS_OPTIONS as h, type RuleConditionOperator as i, RuleForm as j, type RuleStatus as k, type TimeWindow as l, defaultRuleForm as m };