@datatechsolutions/ui 2.11.80 → 2.11.82

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 (57) hide show
  1. package/dist/astrlabe/contracts.d.mts +24 -1
  2. package/dist/astrlabe/contracts.d.ts +24 -1
  3. package/dist/astrlabe/index.d.mts +25 -84
  4. package/dist/astrlabe/index.d.ts +25 -84
  5. package/dist/astrlabe/index.js +175 -4570
  6. package/dist/astrlabe/index.js.map +1 -1
  7. package/dist/astrlabe/index.mjs +3 -4535
  8. package/dist/astrlabe/index.mjs.map +1 -1
  9. package/dist/astrlabe/workflow-canvas.d.mts +69 -5
  10. package/dist/astrlabe/workflow-canvas.d.ts +69 -5
  11. package/dist/chunk-6PBTB5ZX.js +165 -0
  12. package/dist/chunk-6PBTB5ZX.js.map +1 -0
  13. package/dist/chunk-HAZP5J67.mjs +4781 -0
  14. package/dist/chunk-HAZP5J67.mjs.map +1 -0
  15. package/dist/chunk-HZ4LOVHM.js +46 -0
  16. package/dist/chunk-HZ4LOVHM.js.map +1 -0
  17. package/dist/chunk-K4QJV3GC.js +4825 -0
  18. package/dist/chunk-K4QJV3GC.js.map +1 -0
  19. package/dist/chunk-UHHPBREK.mjs +135 -0
  20. package/dist/chunk-UHHPBREK.mjs.map +1 -0
  21. package/dist/chunk-ZJPNP2YW.mjs +44 -0
  22. package/dist/chunk-ZJPNP2YW.mjs.map +1 -0
  23. package/dist/{workflow-canvas-NSxfr5dy.d.ts → index-AioB90qq.d.mts} +2 -67
  24. package/dist/{workflow-canvas-D4928AfA.d.mts → index-D5ai0cGZ.d.ts} +2 -67
  25. package/dist/platform/index.d.mts +41 -0
  26. package/dist/platform/index.d.ts +41 -0
  27. package/dist/platform/index.js +237 -0
  28. package/dist/platform/index.js.map +1 -0
  29. package/dist/platform/index.mjs +109 -0
  30. package/dist/platform/index.mjs.map +1 -0
  31. package/dist/platform/pages/index.d.mts +272 -0
  32. package/dist/platform/pages/index.d.ts +272 -0
  33. package/dist/platform/pages/index.js +1793 -0
  34. package/dist/platform/pages/index.js.map +1 -0
  35. package/dist/platform/pages/index.mjs +1777 -0
  36. package/dist/platform/pages/index.mjs.map +1 -0
  37. package/dist/platform/rbac.d.mts +41 -0
  38. package/dist/platform/rbac.d.ts +41 -0
  39. package/dist/platform/rbac.js +13 -0
  40. package/dist/platform/rbac.js.map +1 -0
  41. package/dist/platform/rbac.mjs +4 -0
  42. package/dist/platform/rbac.mjs.map +1 -0
  43. package/dist/platform/utils/index.d.mts +32 -0
  44. package/dist/platform/utils/index.d.ts +32 -0
  45. package/dist/platform/utils/index.js +131 -0
  46. package/dist/platform/utils/index.js.map +1 -0
  47. package/dist/platform/utils/index.mjs +119 -0
  48. package/dist/platform/utils/index.mjs.map +1 -0
  49. package/dist/platform/windsock-admin-client.d.mts +57 -0
  50. package/dist/platform/windsock-admin-client.d.ts +57 -0
  51. package/dist/platform/windsock-admin-client.js +125 -0
  52. package/dist/platform/windsock-admin-client.js.map +1 -0
  53. package/dist/platform/windsock-admin-client.mjs +4 -0
  54. package/dist/platform/windsock-admin-client.mjs.map +1 -0
  55. package/dist/rule-form-F5jBOeqk.d.mts +79 -0
  56. package/dist/rule-form-F5jBOeqk.d.ts +79 -0
  57. package/package.json +28 -1
@@ -219,6 +219,24 @@ type AgentNodeConfig = {
219
219
  userPrompt?: string;
220
220
  maxTokens?: number;
221
221
  temperature?: number;
222
+ /**
223
+ * Optional structured-output contract. When set, the engine parses the
224
+ * LLM's text as JSON, validates against the schema, and exposes the
225
+ * typed object under `output.parsed`. Validation failures fail the
226
+ * node with `AGENT_OUTPUT_SCHEMA_VIOLATION` so downstream nodes never
227
+ * see half-formed data. Schema is the JSON-Schema-Draft-7 subset the
228
+ * Rust validator understands today (`type`, `properties`, `required`,
229
+ * `items`, `enum`).
230
+ */
231
+ outputSchema?: AgentOutputSchema;
232
+ };
233
+ type AgentOutputSchema = {
234
+ type?: 'object' | 'array' | 'string' | 'number' | 'integer' | 'boolean' | 'null';
235
+ properties?: Record<string, AgentOutputSchema>;
236
+ required?: string[];
237
+ items?: AgentOutputSchema;
238
+ enum?: Array<string | number | boolean | null>;
239
+ description?: string;
222
240
  };
223
241
  type ModelProviderType = 'aws_bedrock' | 'openai_api' | 'google_vertex' | 'azure_openai' | 'anthropic_api' | 'groq' | 'mistral' | 'huggingface' | 'ollama' | 'custom';
224
242
  type ModelProviderNodeConfig = {
@@ -393,6 +411,11 @@ type AgentPersistPayload = {
393
411
  status?: string;
394
412
  enabledToolIds?: string[];
395
413
  metadata?: Record<string, unknown>;
414
+ /** Structured-output contract — when set, the engine parses + validates
415
+ * the LLM's response against this schema. `undefined` clears any
416
+ * previously-stored schema. See `AgentOutputSchema` for the supported
417
+ * JSON Schema subset. */
418
+ outputSchema?: AgentOutputSchema;
396
419
  };
397
420
  type AgentModel = {
398
421
  id: string;
@@ -452,4 +475,4 @@ type AgentRule = {
452
475
  [key: string]: unknown;
453
476
  };
454
477
 
455
- export type { AgentConfig, AgentModel, AgentNodeConfig, AgentPersistPayload, AgentRule, AgentTool, AnswerNodeConfig, CodeNodeConfig, CodeOperation, DashboardOutputNodeConfig, DatasourceFilter, DatasourceFilterOp, DatasourceNodeConfig, DocumentExtractorNodeConfig, EndNodeConfig, EntityNodeConfig, GroupNodeConfig, HttpRequestNodeConfig, IfElseNodeConfig, IterationNodeConfig, IterationStartNodeConfig, KnowledgeBaseNodeConfig, ListOperatorNodeConfig, LogicNodeConfig, ModelProviderNodeConfig, ModelProviderType, NodeExecutionResult, NoteNodeConfig, ParameterExtractorNodeConfig, QuestionClassifierNodeConfig, RuleNodeConfig, StartNodeConfig, TemplateTransformNodeConfig, VariableAggregatorNodeConfig, VariableAssignerNodeConfig, VariableValue, Workflow, WorkflowEdge, WorkflowGraph, WorkflowNode, WorkflowNodeData, WorkflowNodeStatus, WorkflowNodeType, WorkflowRun, WorkflowRunStatus, WorkflowTool, WorkflowViewport };
478
+ export type { AgentConfig, AgentModel, AgentNodeConfig, AgentOutputSchema, AgentPersistPayload, AgentRule, AgentTool, AnswerNodeConfig, CodeNodeConfig, CodeOperation, DashboardOutputNodeConfig, DatasourceFilter, DatasourceFilterOp, DatasourceNodeConfig, DocumentExtractorNodeConfig, EndNodeConfig, EntityNodeConfig, GroupNodeConfig, HttpRequestNodeConfig, IfElseNodeConfig, IterationNodeConfig, IterationStartNodeConfig, KnowledgeBaseNodeConfig, ListOperatorNodeConfig, LogicNodeConfig, ModelProviderNodeConfig, ModelProviderType, NodeExecutionResult, NoteNodeConfig, ParameterExtractorNodeConfig, QuestionClassifierNodeConfig, RuleNodeConfig, StartNodeConfig, TemplateTransformNodeConfig, VariableAggregatorNodeConfig, VariableAssignerNodeConfig, VariableValue, Workflow, WorkflowEdge, WorkflowGraph, WorkflowNode, WorkflowNodeData, WorkflowNodeStatus, WorkflowNodeType, WorkflowRun, WorkflowRunStatus, WorkflowTool, WorkflowViewport };
@@ -219,6 +219,24 @@ type AgentNodeConfig = {
219
219
  userPrompt?: string;
220
220
  maxTokens?: number;
221
221
  temperature?: number;
222
+ /**
223
+ * Optional structured-output contract. When set, the engine parses the
224
+ * LLM's text as JSON, validates against the schema, and exposes the
225
+ * typed object under `output.parsed`. Validation failures fail the
226
+ * node with `AGENT_OUTPUT_SCHEMA_VIOLATION` so downstream nodes never
227
+ * see half-formed data. Schema is the JSON-Schema-Draft-7 subset the
228
+ * Rust validator understands today (`type`, `properties`, `required`,
229
+ * `items`, `enum`).
230
+ */
231
+ outputSchema?: AgentOutputSchema;
232
+ };
233
+ type AgentOutputSchema = {
234
+ type?: 'object' | 'array' | 'string' | 'number' | 'integer' | 'boolean' | 'null';
235
+ properties?: Record<string, AgentOutputSchema>;
236
+ required?: string[];
237
+ items?: AgentOutputSchema;
238
+ enum?: Array<string | number | boolean | null>;
239
+ description?: string;
222
240
  };
223
241
  type ModelProviderType = 'aws_bedrock' | 'openai_api' | 'google_vertex' | 'azure_openai' | 'anthropic_api' | 'groq' | 'mistral' | 'huggingface' | 'ollama' | 'custom';
224
242
  type ModelProviderNodeConfig = {
@@ -393,6 +411,11 @@ type AgentPersistPayload = {
393
411
  status?: string;
394
412
  enabledToolIds?: string[];
395
413
  metadata?: Record<string, unknown>;
414
+ /** Structured-output contract — when set, the engine parses + validates
415
+ * the LLM's response against this schema. `undefined` clears any
416
+ * previously-stored schema. See `AgentOutputSchema` for the supported
417
+ * JSON Schema subset. */
418
+ outputSchema?: AgentOutputSchema;
396
419
  };
397
420
  type AgentModel = {
398
421
  id: string;
@@ -452,4 +475,4 @@ type AgentRule = {
452
475
  [key: string]: unknown;
453
476
  };
454
477
 
455
- export type { AgentConfig, AgentModel, AgentNodeConfig, AgentPersistPayload, AgentRule, AgentTool, AnswerNodeConfig, CodeNodeConfig, CodeOperation, DashboardOutputNodeConfig, DatasourceFilter, DatasourceFilterOp, DatasourceNodeConfig, DocumentExtractorNodeConfig, EndNodeConfig, EntityNodeConfig, GroupNodeConfig, HttpRequestNodeConfig, IfElseNodeConfig, IterationNodeConfig, IterationStartNodeConfig, KnowledgeBaseNodeConfig, ListOperatorNodeConfig, LogicNodeConfig, ModelProviderNodeConfig, ModelProviderType, NodeExecutionResult, NoteNodeConfig, ParameterExtractorNodeConfig, QuestionClassifierNodeConfig, RuleNodeConfig, StartNodeConfig, TemplateTransformNodeConfig, VariableAggregatorNodeConfig, VariableAssignerNodeConfig, VariableValue, Workflow, WorkflowEdge, WorkflowGraph, WorkflowNode, WorkflowNodeData, WorkflowNodeStatus, WorkflowNodeType, WorkflowRun, WorkflowRunStatus, WorkflowTool, WorkflowViewport };
478
+ export type { AgentConfig, AgentModel, AgentNodeConfig, AgentOutputSchema, AgentPersistPayload, AgentRule, AgentTool, AnswerNodeConfig, CodeNodeConfig, CodeOperation, DashboardOutputNodeConfig, DatasourceFilter, DatasourceFilterOp, DatasourceNodeConfig, DocumentExtractorNodeConfig, EndNodeConfig, EntityNodeConfig, GroupNodeConfig, HttpRequestNodeConfig, IfElseNodeConfig, IterationNodeConfig, IterationStartNodeConfig, KnowledgeBaseNodeConfig, ListOperatorNodeConfig, LogicNodeConfig, ModelProviderNodeConfig, ModelProviderType, NodeExecutionResult, NoteNodeConfig, ParameterExtractorNodeConfig, QuestionClassifierNodeConfig, RuleNodeConfig, StartNodeConfig, TemplateTransformNodeConfig, VariableAggregatorNodeConfig, VariableAssignerNodeConfig, VariableValue, Workflow, WorkflowEdge, WorkflowGraph, WorkflowNode, WorkflowNodeData, WorkflowNodeStatus, WorkflowNodeType, WorkflowRun, WorkflowRunStatus, WorkflowTool, WorkflowViewport };
@@ -1,11 +1,15 @@
1
- import { A as AgentWithPrompts, a as AgentNodeData, T as ToolCanvasData, R as RuleNodeData, E as EntityNodeData, M as ModelProviderNodeData, S as StartNodeData, b as EndNodeData, I as IfElseNodeData, C as CodeNodeData, H as HttpRequestNodeData, c as TemplateTransformNodeData, d as IterationNodeData, K as KnowledgeBaseNodeData, e as AnswerNodeData, Q as QuestionClassifierNodeData, P as ParameterExtractorNodeData, V as VariableAssignerNodeData, f as VariableAggregatorNodeData, D as DocumentExtractorNodeData, L as ListOperatorNodeData, g as IterationStartNodeData, N as NoteNodeData, G as GroupNodeData, W as WorkflowEntityDefinition, h as WorkspaceProps } from '../workflow-canvas-D4928AfA.mjs';
2
- export { i as AgentNodeTool, j as Workspace } from '../workflow-canvas-D4928AfA.mjs';
1
+ import { WorkspaceProps } from './workflow-canvas.mjs';
2
+ export { Workspace } from './workflow-canvas.mjs';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
- import { Workflow, WorkflowGraph, AgentModel, WorkflowTool, AgentRule, AgentPersistPayload, LogicNodeConfig, AgentTool, WorkflowRun } from './contracts.mjs';
5
- export { ModelProviderNodeConfig, ModelProviderType } from './contracts.mjs';
4
+ import { Workflow, WorkflowGraph, AgentModel, WorkflowTool, AgentRule, AgentPersistPayload, LogicNodeConfig, AgentOutputSchema, AgentTool, WorkflowRun } from './contracts.mjs';
5
+ export { AgentNodeConfig, ModelProviderNodeConfig, ModelProviderType } from './contracts.mjs';
6
+ import { A as AgentWithPrompts, a as AgentNodeData, T as ToolCanvasData, R as RuleNodeData, E as EntityNodeData, M as ModelProviderNodeData, S as StartNodeData, b as EndNodeData, I as IfElseNodeData, C as CodeNodeData, H as HttpRequestNodeData, c as TemplateTransformNodeData, d as IterationNodeData, K as KnowledgeBaseNodeData, e as AnswerNodeData, Q as QuestionClassifierNodeData, P as ParameterExtractorNodeData, V as VariableAssignerNodeData, f as VariableAggregatorNodeData, D as DocumentExtractorNodeData, L as ListOperatorNodeData, g as IterationStartNodeData, N as NoteNodeData, G as GroupNodeData, W as WorkflowEntityDefinition } from '../index-AioB90qq.mjs';
7
+ export { h as AgentNodeTool } from '../index-AioB90qq.mjs';
6
8
  import * as React$1 from 'react';
7
9
  import { ReactNode, ComponentProps } from 'react';
8
10
  export { GraphNodeBadge, GraphNodeHeader, GraphNodeIconBubble, GraphNodeMeta } from './graph-node.mjs';
11
+ import { a as RuleCondition, b as RuleAction } from '../rule-form-F5jBOeqk.mjs';
12
+ export { c as RULE_STATUS_OPTIONS, d as RuleConditionOperator, e as RuleForm, R as RuleFormValue, f as RuleStatus, T as TIMEZONE_OPTIONS, g as TimeWindow, h as defaultRuleForm } from '../rule-form-F5jBOeqk.mjs';
9
13
  import { D as DynamicIslandConfirm$1 } from '../dynamic-island-confirm-BKsZkAEP.mjs';
10
14
  import * as zustand from 'zustand';
11
15
  import { Node, Edge } from '@xyflow/react';
@@ -273,57 +277,20 @@ type RunReplayModalProps = {
273
277
  };
274
278
  declare function RunReplayModal({ open, onClose, runId, workflowId, originalInputs, onReplay, }: RunReplayModalProps): react_jsx_runtime.JSX.Element;
275
279
 
276
- /**
277
- * Rule editing types.
278
- *
279
- * Mirrors the shape the Rust `RuleExecutor`
280
- * (`lambda-rs/crates/astrlabe-handlers/src/engine/executors/rule.rs`) reads
281
- * from `astrlabe.agent_rules.condition` + `action`. The UI builder below
282
- * writes exactly this shape, so round-tripping through the backend is a
283
- * no-op.
284
- */
285
- type SimpleComparisonOperator = 'truthy' | 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte' | 'contains';
286
- type RuleConditionOperator = SimpleComparisonOperator | 'regex_match' | 'threshold' | 'time_window' | 'boolean_expression';
287
- type TimeWindow = {
288
- startHour: number;
289
- endHour: number;
290
- startMinute?: number;
291
- endMinute?: number;
292
- /** 0 = Sunday, 6 = Saturday. Omit to match every day. */
293
- daysOfWeek?: number[];
280
+ type OutputSchemaBuilderProps = {
281
+ /** Stored schema. `undefined` renders the "no schema yet" state with
282
+ * a single button to create one. */
283
+ value?: AgentOutputSchema;
284
+ onChange: (next: AgentOutputSchema | undefined) => void;
285
+ /** Recursion depth used to cap the nesting UI offers (deeper trees
286
+ * are still expressible by hand-editing JSON, but the visual builder
287
+ * tops out at 2 to keep the page readable). */
288
+ depth?: number;
294
289
  };
295
- /**
296
- * Canonical rule-condition shape. The executor branches on `operator`,
297
- * so every form tree ultimately serializes to this.
298
- */
299
- type RuleCondition = {
300
- operator: RuleConditionOperator;
301
- /** Simple operators + regex_match + threshold + time_window */
302
- field?: string;
303
- /** Simple operators + threshold */
304
- value?: string | number | boolean | null;
305
- /** regex_match */
306
- pattern?: string;
307
- /** threshold — which direction `value` is compared in. */
308
- comparison?: 'gt' | 'gte' | 'lt' | 'lte';
309
- /** time_window */
310
- timezone?: string;
311
- windows?: TimeWindow[];
312
- /** boolean_expression */
313
- combinator?: 'and' | 'or';
314
- operands?: RuleCondition[];
315
- };
316
- type RuleAction = {
317
- type: string;
318
- params?: Record<string, unknown>;
319
- };
320
- /** `agent_rules.status` free-form string — keep the UI picker aligned
321
- * with the values the engine / audit trail recognizes today. */
322
- declare const RULE_STATUS_OPTIONS: readonly ["draft", "active", "archived"];
323
- type RuleStatus = (typeof RULE_STATUS_OPTIONS)[number];
324
- declare const TIMEZONE_OPTIONS: readonly ["UTC", "America/Sao_Paulo", "America/New_York", "America/Los_Angeles", "Europe/London", "Europe/Lisbon"];
325
-
326
- type Props$2 = {
290
+ declare function OutputSchemaBuilder({ value, onChange, depth }: OutputSchemaBuilderProps): react_jsx_runtime.JSX.Element;
291
+ declare function defaultAgentOutputSchema(): AgentOutputSchema;
292
+
293
+ type Props$1 = {
327
294
  value: RuleCondition;
328
295
  onChange: (next: RuleCondition) => void;
329
296
  /** Recursion depth. Boolean_expression is capped at one level to keep
@@ -332,10 +299,10 @@ type Props$2 = {
332
299
  * operands. */
333
300
  depth?: number;
334
301
  };
335
- declare function RuleConditionBuilder({ value, onChange, depth }: Props$2): react_jsx_runtime.JSX.Element;
302
+ declare function RuleConditionBuilder({ value, onChange, depth }: Props$1): react_jsx_runtime.JSX.Element;
336
303
  declare function defaultRuleCondition(): RuleCondition;
337
304
 
338
- type Props$1 = {
305
+ type Props = {
339
306
  value: RuleAction;
340
307
  onChange: (next: RuleAction) => void;
341
308
  };
@@ -344,35 +311,9 @@ type Props$1 = {
344
311
  * executor contract. The `custom` type drops to a raw key/value editor for
345
312
  * actions the UI doesn't have a dedicated template for.
346
313
  */
347
- declare function RuleActionBuilder({ value, onChange }: Props$1): react_jsx_runtime.JSX.Element;
314
+ declare function RuleActionBuilder({ value, onChange }: Props): react_jsx_runtime.JSX.Element;
348
315
  declare function defaultRuleAction(): RuleAction;
349
316
 
350
- type RuleFormValue = {
351
- ruleId?: string;
352
- name: string;
353
- description?: string;
354
- enabled: boolean;
355
- priority: number;
356
- status?: RuleStatus;
357
- validFrom?: string | null;
358
- validUntil?: string | null;
359
- tags?: string[];
360
- condition: RuleCondition;
361
- action: RuleAction;
362
- };
363
- type Props = {
364
- value: RuleFormValue;
365
- onChange: (next: RuleFormValue) => void;
366
- };
367
- /**
368
- * Full-field rule editor used inside the create/edit modal. Composes the
369
- * visual condition + action builders and exposes the schedule / tagging /
370
- * lifecycle fields that the `agent_rules` entity has but the old JSON-
371
- * textarea form never surfaced.
372
- */
373
- declare function RuleForm({ value, onChange }: Props): react_jsx_runtime.JSX.Element;
374
- declare function defaultRuleForm(): RuleFormValue;
375
-
376
317
  type ModelProvider = {
377
318
  id: string;
378
319
  name: string;
@@ -873,4 +814,4 @@ declare function getEntityBadgeColor(entityKey: string | undefined): string;
873
814
  declare function getEntityHandleColor(entityKey: string | undefined): string;
874
815
  declare function getEntityMinimapColor(entityKey: string | undefined): string;
875
816
 
876
- export { AgentFlowNode, type AgentFramework, AgentModal, AgentNodeData, AgentToolFlowNode, AgentWithPrompts, AmazonNovaIcon, AnswerFlowNode, AnswerNodeData, AnthropicIcon, AnthropicModelIcon, AutoSaveWorkspace, type AutoSaveWorkspaceProps, CodeFlowNode, CodeNodeData, CrewAIIcon, DocumentExtractorFlowNode, DocumentExtractorNodeData, DslExportModal, DslImportModal, DynamicIslandConfirm, type DynamicIslandConfirmProps, EndFlowNode, EndNodeData, EntityFlowNode, EntityNodeData, FRAMEWORK_META, GoogleADKIcon, GroupFlowNode, GroupNodeData, HttpRequestFlowNode, HttpRequestNodeData, IfElseFlowNode, IfElseNodeData, IterationFlowNode, IterationNodeData, IterationStartFlowNode, IterationStartNodeData, KnowledgeBaseFlowNode, KnowledgeBaseNodeData, LOGIC_ICON_MAP, LOGIC_NODE_BADGE_COLORS, LOGIC_NODE_GRADIENTS, LOGIC_NODE_HANDLE_COLORS, LangChainIcon, LayoutDirection, ListOperatorFlowNode, ListOperatorNodeData, LogicNodeModal, MINIMAP_NODE_COLORS, MetaLlamaIcon, type ModelProvider, ModelProviderFlowNode, ModelProviderNodeData, NODE_EXECUTION_ACCENT_COLORS, NodeCard, NodeContextMenu, NodePalette, type NodeRunResult, NoteFlowNode, NoteNodeData, OpenAIIcon, PanelContextMenu, ParameterExtractorFlowNode, ParameterExtractorNodeData, PipelineSettingsModal, type PipelineSettingsPatch, PreviewPanel, type PreviewPanelProps, QuestionClassifierFlowNode, QuestionClassifierNodeData, RULE_STATUS_OPTIONS, type ReplayInputVariables, type RuleAction, RuleActionBuilder, type RuleCondition, RuleConditionBuilder, type RuleConditionOperator, RuleFlowNode, RuleForm, type RuleFormValue, RuleNodeData, type RuleStatus, RunInputDialog, type RunInputDialogProps, RunPanel, RunReplayModal, type RunReplayModalProps, SaveStatusBadge, type SaveStatusBadgeProps, SelectionContextMenu, StartFlowNode, StartNodeData, StrandsIcon, SubworkflowModal, TIMEZONE_OPTIONS, TemplateTransformFlowNode, TemplateTransformNodeData, type TimeWindow, ToolCanvasData, ToolFlowNode, VariableAggregatorFlowNode, VariableAggregatorNodeData, VariableAssignerFlowNode, VariableAssignerNodeData, VariableInspector, VersionHistoryPanel, type WorkflowBuilderClient, WorkflowBuilderProvider, type WorkflowBuilderProviderProps, WorkflowEntityDefinition, WorkflowGraph, WorkflowListBar, type WorkflowStore, type WorkspaceBootstrapPayload, WorkspaceProps, defaultRuleAction, defaultRuleCondition, defaultRuleForm, getCompatibleModels, getDefaultFrameworkForModel, getEntityBadgeColor, getEntityGradient, getEntityHandleColor, getEntityIcon, getEntityMinimapColor, getFrameworkMeta, getModelIcon, getNodeExecutionAccent, getNodeExecutionAccentRgb, isModelCompatibleWithFramework, useCanRedo, useCanUndo, useCanvasShortcuts, useClipboard, useContextMenu, useEditingNodeId, useHasCopied, useHelpLines, useIsRunning, useModalStore, useNodeResults, useSelectedNodeCount, useSubworkflowStore, useUndoRedo, useWorkflowBuilderClient, useWorkflowBuilderClientOptional, useWorkflowStore };
817
+ export { AgentFlowNode, type AgentFramework, AgentModal, AgentNodeData, AgentOutputSchema, AgentToolFlowNode, AgentWithPrompts, AmazonNovaIcon, AnswerFlowNode, AnswerNodeData, AnthropicIcon, AnthropicModelIcon, AutoSaveWorkspace, type AutoSaveWorkspaceProps, CodeFlowNode, CodeNodeData, CrewAIIcon, DocumentExtractorFlowNode, DocumentExtractorNodeData, DslExportModal, DslImportModal, DynamicIslandConfirm, type DynamicIslandConfirmProps, EndFlowNode, EndNodeData, EntityFlowNode, EntityNodeData, FRAMEWORK_META, GoogleADKIcon, GroupFlowNode, GroupNodeData, HttpRequestFlowNode, HttpRequestNodeData, IfElseFlowNode, IfElseNodeData, IterationFlowNode, IterationNodeData, IterationStartFlowNode, IterationStartNodeData, KnowledgeBaseFlowNode, KnowledgeBaseNodeData, LOGIC_ICON_MAP, LOGIC_NODE_BADGE_COLORS, LOGIC_NODE_GRADIENTS, LOGIC_NODE_HANDLE_COLORS, LangChainIcon, LayoutDirection, ListOperatorFlowNode, ListOperatorNodeData, LogicNodeModal, MINIMAP_NODE_COLORS, MetaLlamaIcon, type ModelProvider, ModelProviderFlowNode, ModelProviderNodeData, NODE_EXECUTION_ACCENT_COLORS, NodeCard, NodeContextMenu, NodePalette, type NodeRunResult, NoteFlowNode, NoteNodeData, OpenAIIcon, OutputSchemaBuilder, type OutputSchemaBuilderProps, PanelContextMenu, ParameterExtractorFlowNode, ParameterExtractorNodeData, PipelineSettingsModal, type PipelineSettingsPatch, PreviewPanel, type PreviewPanelProps, QuestionClassifierFlowNode, QuestionClassifierNodeData, type ReplayInputVariables, RuleAction, RuleActionBuilder, RuleCondition, RuleConditionBuilder, RuleFlowNode, RuleNodeData, RunInputDialog, type RunInputDialogProps, RunPanel, RunReplayModal, type RunReplayModalProps, SaveStatusBadge, type SaveStatusBadgeProps, SelectionContextMenu, StartFlowNode, StartNodeData, StrandsIcon, SubworkflowModal, TemplateTransformFlowNode, TemplateTransformNodeData, ToolCanvasData, ToolFlowNode, VariableAggregatorFlowNode, VariableAggregatorNodeData, VariableAssignerFlowNode, VariableAssignerNodeData, VariableInspector, VersionHistoryPanel, type WorkflowBuilderClient, WorkflowBuilderProvider, type WorkflowBuilderProviderProps, WorkflowEntityDefinition, WorkflowGraph, WorkflowListBar, type WorkflowStore, type WorkspaceBootstrapPayload, WorkspaceProps, defaultAgentOutputSchema, defaultRuleAction, defaultRuleCondition, getCompatibleModels, getDefaultFrameworkForModel, getEntityBadgeColor, getEntityGradient, getEntityHandleColor, getEntityIcon, getEntityMinimapColor, getFrameworkMeta, getModelIcon, getNodeExecutionAccent, getNodeExecutionAccentRgb, isModelCompatibleWithFramework, useCanRedo, useCanUndo, useCanvasShortcuts, useClipboard, useContextMenu, useEditingNodeId, useHasCopied, useHelpLines, useIsRunning, useModalStore, useNodeResults, useSelectedNodeCount, useSubworkflowStore, useUndoRedo, useWorkflowBuilderClient, useWorkflowBuilderClientOptional, useWorkflowStore };
@@ -1,11 +1,15 @@
1
- import { A as AgentWithPrompts, a as AgentNodeData, T as ToolCanvasData, R as RuleNodeData, E as EntityNodeData, M as ModelProviderNodeData, S as StartNodeData, b as EndNodeData, I as IfElseNodeData, C as CodeNodeData, H as HttpRequestNodeData, c as TemplateTransformNodeData, d as IterationNodeData, K as KnowledgeBaseNodeData, e as AnswerNodeData, Q as QuestionClassifierNodeData, P as ParameterExtractorNodeData, V as VariableAssignerNodeData, f as VariableAggregatorNodeData, D as DocumentExtractorNodeData, L as ListOperatorNodeData, g as IterationStartNodeData, N as NoteNodeData, G as GroupNodeData, W as WorkflowEntityDefinition, h as WorkspaceProps } from '../workflow-canvas-NSxfr5dy.js';
2
- export { i as AgentNodeTool, j as Workspace } from '../workflow-canvas-NSxfr5dy.js';
1
+ import { WorkspaceProps } from './workflow-canvas.js';
2
+ export { Workspace } from './workflow-canvas.js';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
- import { Workflow, WorkflowGraph, AgentModel, WorkflowTool, AgentRule, AgentPersistPayload, LogicNodeConfig, AgentTool, WorkflowRun } from './contracts.js';
5
- export { ModelProviderNodeConfig, ModelProviderType } from './contracts.js';
4
+ import { Workflow, WorkflowGraph, AgentModel, WorkflowTool, AgentRule, AgentPersistPayload, LogicNodeConfig, AgentOutputSchema, AgentTool, WorkflowRun } from './contracts.js';
5
+ export { AgentNodeConfig, ModelProviderNodeConfig, ModelProviderType } from './contracts.js';
6
+ import { A as AgentWithPrompts, a as AgentNodeData, T as ToolCanvasData, R as RuleNodeData, E as EntityNodeData, M as ModelProviderNodeData, S as StartNodeData, b as EndNodeData, I as IfElseNodeData, C as CodeNodeData, H as HttpRequestNodeData, c as TemplateTransformNodeData, d as IterationNodeData, K as KnowledgeBaseNodeData, e as AnswerNodeData, Q as QuestionClassifierNodeData, P as ParameterExtractorNodeData, V as VariableAssignerNodeData, f as VariableAggregatorNodeData, D as DocumentExtractorNodeData, L as ListOperatorNodeData, g as IterationStartNodeData, N as NoteNodeData, G as GroupNodeData, W as WorkflowEntityDefinition } from '../index-D5ai0cGZ.js';
7
+ export { h as AgentNodeTool } from '../index-D5ai0cGZ.js';
6
8
  import * as React$1 from 'react';
7
9
  import { ReactNode, ComponentProps } from 'react';
8
10
  export { GraphNodeBadge, GraphNodeHeader, GraphNodeIconBubble, GraphNodeMeta } from './graph-node.js';
11
+ import { a as RuleCondition, b as RuleAction } from '../rule-form-F5jBOeqk.js';
12
+ export { c as RULE_STATUS_OPTIONS, d as RuleConditionOperator, e as RuleForm, R as RuleFormValue, f as RuleStatus, T as TIMEZONE_OPTIONS, g as TimeWindow, h as defaultRuleForm } from '../rule-form-F5jBOeqk.js';
9
13
  import { D as DynamicIslandConfirm$1 } from '../dynamic-island-confirm-BKsZkAEP.js';
10
14
  import * as zustand from 'zustand';
11
15
  import { Node, Edge } from '@xyflow/react';
@@ -273,57 +277,20 @@ type RunReplayModalProps = {
273
277
  };
274
278
  declare function RunReplayModal({ open, onClose, runId, workflowId, originalInputs, onReplay, }: RunReplayModalProps): react_jsx_runtime.JSX.Element;
275
279
 
276
- /**
277
- * Rule editing types.
278
- *
279
- * Mirrors the shape the Rust `RuleExecutor`
280
- * (`lambda-rs/crates/astrlabe-handlers/src/engine/executors/rule.rs`) reads
281
- * from `astrlabe.agent_rules.condition` + `action`. The UI builder below
282
- * writes exactly this shape, so round-tripping through the backend is a
283
- * no-op.
284
- */
285
- type SimpleComparisonOperator = 'truthy' | 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte' | 'contains';
286
- type RuleConditionOperator = SimpleComparisonOperator | 'regex_match' | 'threshold' | 'time_window' | 'boolean_expression';
287
- type TimeWindow = {
288
- startHour: number;
289
- endHour: number;
290
- startMinute?: number;
291
- endMinute?: number;
292
- /** 0 = Sunday, 6 = Saturday. Omit to match every day. */
293
- daysOfWeek?: number[];
280
+ type OutputSchemaBuilderProps = {
281
+ /** Stored schema. `undefined` renders the "no schema yet" state with
282
+ * a single button to create one. */
283
+ value?: AgentOutputSchema;
284
+ onChange: (next: AgentOutputSchema | undefined) => void;
285
+ /** Recursion depth used to cap the nesting UI offers (deeper trees
286
+ * are still expressible by hand-editing JSON, but the visual builder
287
+ * tops out at 2 to keep the page readable). */
288
+ depth?: number;
294
289
  };
295
- /**
296
- * Canonical rule-condition shape. The executor branches on `operator`,
297
- * so every form tree ultimately serializes to this.
298
- */
299
- type RuleCondition = {
300
- operator: RuleConditionOperator;
301
- /** Simple operators + regex_match + threshold + time_window */
302
- field?: string;
303
- /** Simple operators + threshold */
304
- value?: string | number | boolean | null;
305
- /** regex_match */
306
- pattern?: string;
307
- /** threshold — which direction `value` is compared in. */
308
- comparison?: 'gt' | 'gte' | 'lt' | 'lte';
309
- /** time_window */
310
- timezone?: string;
311
- windows?: TimeWindow[];
312
- /** boolean_expression */
313
- combinator?: 'and' | 'or';
314
- operands?: RuleCondition[];
315
- };
316
- type RuleAction = {
317
- type: string;
318
- params?: Record<string, unknown>;
319
- };
320
- /** `agent_rules.status` free-form string — keep the UI picker aligned
321
- * with the values the engine / audit trail recognizes today. */
322
- declare const RULE_STATUS_OPTIONS: readonly ["draft", "active", "archived"];
323
- type RuleStatus = (typeof RULE_STATUS_OPTIONS)[number];
324
- declare const TIMEZONE_OPTIONS: readonly ["UTC", "America/Sao_Paulo", "America/New_York", "America/Los_Angeles", "Europe/London", "Europe/Lisbon"];
325
-
326
- type Props$2 = {
290
+ declare function OutputSchemaBuilder({ value, onChange, depth }: OutputSchemaBuilderProps): react_jsx_runtime.JSX.Element;
291
+ declare function defaultAgentOutputSchema(): AgentOutputSchema;
292
+
293
+ type Props$1 = {
327
294
  value: RuleCondition;
328
295
  onChange: (next: RuleCondition) => void;
329
296
  /** Recursion depth. Boolean_expression is capped at one level to keep
@@ -332,10 +299,10 @@ type Props$2 = {
332
299
  * operands. */
333
300
  depth?: number;
334
301
  };
335
- declare function RuleConditionBuilder({ value, onChange, depth }: Props$2): react_jsx_runtime.JSX.Element;
302
+ declare function RuleConditionBuilder({ value, onChange, depth }: Props$1): react_jsx_runtime.JSX.Element;
336
303
  declare function defaultRuleCondition(): RuleCondition;
337
304
 
338
- type Props$1 = {
305
+ type Props = {
339
306
  value: RuleAction;
340
307
  onChange: (next: RuleAction) => void;
341
308
  };
@@ -344,35 +311,9 @@ type Props$1 = {
344
311
  * executor contract. The `custom` type drops to a raw key/value editor for
345
312
  * actions the UI doesn't have a dedicated template for.
346
313
  */
347
- declare function RuleActionBuilder({ value, onChange }: Props$1): react_jsx_runtime.JSX.Element;
314
+ declare function RuleActionBuilder({ value, onChange }: Props): react_jsx_runtime.JSX.Element;
348
315
  declare function defaultRuleAction(): RuleAction;
349
316
 
350
- type RuleFormValue = {
351
- ruleId?: string;
352
- name: string;
353
- description?: string;
354
- enabled: boolean;
355
- priority: number;
356
- status?: RuleStatus;
357
- validFrom?: string | null;
358
- validUntil?: string | null;
359
- tags?: string[];
360
- condition: RuleCondition;
361
- action: RuleAction;
362
- };
363
- type Props = {
364
- value: RuleFormValue;
365
- onChange: (next: RuleFormValue) => void;
366
- };
367
- /**
368
- * Full-field rule editor used inside the create/edit modal. Composes the
369
- * visual condition + action builders and exposes the schedule / tagging /
370
- * lifecycle fields that the `agent_rules` entity has but the old JSON-
371
- * textarea form never surfaced.
372
- */
373
- declare function RuleForm({ value, onChange }: Props): react_jsx_runtime.JSX.Element;
374
- declare function defaultRuleForm(): RuleFormValue;
375
-
376
317
  type ModelProvider = {
377
318
  id: string;
378
319
  name: string;
@@ -873,4 +814,4 @@ declare function getEntityBadgeColor(entityKey: string | undefined): string;
873
814
  declare function getEntityHandleColor(entityKey: string | undefined): string;
874
815
  declare function getEntityMinimapColor(entityKey: string | undefined): string;
875
816
 
876
- export { AgentFlowNode, type AgentFramework, AgentModal, AgentNodeData, AgentToolFlowNode, AgentWithPrompts, AmazonNovaIcon, AnswerFlowNode, AnswerNodeData, AnthropicIcon, AnthropicModelIcon, AutoSaveWorkspace, type AutoSaveWorkspaceProps, CodeFlowNode, CodeNodeData, CrewAIIcon, DocumentExtractorFlowNode, DocumentExtractorNodeData, DslExportModal, DslImportModal, DynamicIslandConfirm, type DynamicIslandConfirmProps, EndFlowNode, EndNodeData, EntityFlowNode, EntityNodeData, FRAMEWORK_META, GoogleADKIcon, GroupFlowNode, GroupNodeData, HttpRequestFlowNode, HttpRequestNodeData, IfElseFlowNode, IfElseNodeData, IterationFlowNode, IterationNodeData, IterationStartFlowNode, IterationStartNodeData, KnowledgeBaseFlowNode, KnowledgeBaseNodeData, LOGIC_ICON_MAP, LOGIC_NODE_BADGE_COLORS, LOGIC_NODE_GRADIENTS, LOGIC_NODE_HANDLE_COLORS, LangChainIcon, LayoutDirection, ListOperatorFlowNode, ListOperatorNodeData, LogicNodeModal, MINIMAP_NODE_COLORS, MetaLlamaIcon, type ModelProvider, ModelProviderFlowNode, ModelProviderNodeData, NODE_EXECUTION_ACCENT_COLORS, NodeCard, NodeContextMenu, NodePalette, type NodeRunResult, NoteFlowNode, NoteNodeData, OpenAIIcon, PanelContextMenu, ParameterExtractorFlowNode, ParameterExtractorNodeData, PipelineSettingsModal, type PipelineSettingsPatch, PreviewPanel, type PreviewPanelProps, QuestionClassifierFlowNode, QuestionClassifierNodeData, RULE_STATUS_OPTIONS, type ReplayInputVariables, type RuleAction, RuleActionBuilder, type RuleCondition, RuleConditionBuilder, type RuleConditionOperator, RuleFlowNode, RuleForm, type RuleFormValue, RuleNodeData, type RuleStatus, RunInputDialog, type RunInputDialogProps, RunPanel, RunReplayModal, type RunReplayModalProps, SaveStatusBadge, type SaveStatusBadgeProps, SelectionContextMenu, StartFlowNode, StartNodeData, StrandsIcon, SubworkflowModal, TIMEZONE_OPTIONS, TemplateTransformFlowNode, TemplateTransformNodeData, type TimeWindow, ToolCanvasData, ToolFlowNode, VariableAggregatorFlowNode, VariableAggregatorNodeData, VariableAssignerFlowNode, VariableAssignerNodeData, VariableInspector, VersionHistoryPanel, type WorkflowBuilderClient, WorkflowBuilderProvider, type WorkflowBuilderProviderProps, WorkflowEntityDefinition, WorkflowGraph, WorkflowListBar, type WorkflowStore, type WorkspaceBootstrapPayload, WorkspaceProps, defaultRuleAction, defaultRuleCondition, defaultRuleForm, getCompatibleModels, getDefaultFrameworkForModel, getEntityBadgeColor, getEntityGradient, getEntityHandleColor, getEntityIcon, getEntityMinimapColor, getFrameworkMeta, getModelIcon, getNodeExecutionAccent, getNodeExecutionAccentRgb, isModelCompatibleWithFramework, useCanRedo, useCanUndo, useCanvasShortcuts, useClipboard, useContextMenu, useEditingNodeId, useHasCopied, useHelpLines, useIsRunning, useModalStore, useNodeResults, useSelectedNodeCount, useSubworkflowStore, useUndoRedo, useWorkflowBuilderClient, useWorkflowBuilderClientOptional, useWorkflowStore };
817
+ export { AgentFlowNode, type AgentFramework, AgentModal, AgentNodeData, AgentOutputSchema, AgentToolFlowNode, AgentWithPrompts, AmazonNovaIcon, AnswerFlowNode, AnswerNodeData, AnthropicIcon, AnthropicModelIcon, AutoSaveWorkspace, type AutoSaveWorkspaceProps, CodeFlowNode, CodeNodeData, CrewAIIcon, DocumentExtractorFlowNode, DocumentExtractorNodeData, DslExportModal, DslImportModal, DynamicIslandConfirm, type DynamicIslandConfirmProps, EndFlowNode, EndNodeData, EntityFlowNode, EntityNodeData, FRAMEWORK_META, GoogleADKIcon, GroupFlowNode, GroupNodeData, HttpRequestFlowNode, HttpRequestNodeData, IfElseFlowNode, IfElseNodeData, IterationFlowNode, IterationNodeData, IterationStartFlowNode, IterationStartNodeData, KnowledgeBaseFlowNode, KnowledgeBaseNodeData, LOGIC_ICON_MAP, LOGIC_NODE_BADGE_COLORS, LOGIC_NODE_GRADIENTS, LOGIC_NODE_HANDLE_COLORS, LangChainIcon, LayoutDirection, ListOperatorFlowNode, ListOperatorNodeData, LogicNodeModal, MINIMAP_NODE_COLORS, MetaLlamaIcon, type ModelProvider, ModelProviderFlowNode, ModelProviderNodeData, NODE_EXECUTION_ACCENT_COLORS, NodeCard, NodeContextMenu, NodePalette, type NodeRunResult, NoteFlowNode, NoteNodeData, OpenAIIcon, OutputSchemaBuilder, type OutputSchemaBuilderProps, PanelContextMenu, ParameterExtractorFlowNode, ParameterExtractorNodeData, PipelineSettingsModal, type PipelineSettingsPatch, PreviewPanel, type PreviewPanelProps, QuestionClassifierFlowNode, QuestionClassifierNodeData, type ReplayInputVariables, RuleAction, RuleActionBuilder, RuleCondition, RuleConditionBuilder, RuleFlowNode, RuleNodeData, RunInputDialog, type RunInputDialogProps, RunPanel, RunReplayModal, type RunReplayModalProps, SaveStatusBadge, type SaveStatusBadgeProps, SelectionContextMenu, StartFlowNode, StartNodeData, StrandsIcon, SubworkflowModal, TemplateTransformFlowNode, TemplateTransformNodeData, ToolCanvasData, ToolFlowNode, VariableAggregatorFlowNode, VariableAggregatorNodeData, VariableAssignerFlowNode, VariableAssignerNodeData, VariableInspector, VersionHistoryPanel, type WorkflowBuilderClient, WorkflowBuilderProvider, type WorkflowBuilderProviderProps, WorkflowEntityDefinition, WorkflowGraph, WorkflowListBar, type WorkflowStore, type WorkspaceBootstrapPayload, WorkspaceProps, defaultAgentOutputSchema, defaultRuleAction, defaultRuleCondition, getCompatibleModels, getDefaultFrameworkForModel, getEntityBadgeColor, getEntityGradient, getEntityHandleColor, getEntityIcon, getEntityMinimapColor, getFrameworkMeta, getModelIcon, getNodeExecutionAccent, getNodeExecutionAccentRgb, isModelCompatibleWithFramework, useCanRedo, useCanUndo, useCanvasShortcuts, useClipboard, useContextMenu, useEditingNodeId, useHasCopied, useHelpLines, useIsRunning, useModalStore, useNodeResults, useSelectedNodeCount, useSubworkflowStore, useUndoRedo, useWorkflowBuilderClient, useWorkflowBuilderClientOptional, useWorkflowStore };