@elqnt/workflow 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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../index.tsx","../components/dynamic-schema-form.tsx","../components/schema-builder.tsx","../context/workflow-definition-context.tsx","../hooks/use-workflow-definition.ts","../models/workflow.ts","../models/subjects.ts","../store/workflow-definition-slice.ts","../hooks/use-workflow-instance.ts","../store/workflow-instance-slice.ts","../context/workflow-instance-context.tsx","../schema/schemas.ts"],"sourcesContent":["// export * from \"./consts\";\nexport * from \"./components\";\nexport * from \"./context\";\nexport * from \"./hooks\";\nexport * from \"./models\";\nexport * from \"./store\";\nexport * from \"./schema\";\n// export * from \"./utils\";\n// export * from \"./client-types\";\n","\"use client\";\n\nimport { JSONSchema } from \"@elqnt/types\";\nimport { useState, useMemo } from \"react\";\n\n// UI Components - these will be imported from the app's components\n// We use a render props pattern to allow apps to provide their own UI components\nexport interface DynamicSchemaFormUIComponents {\n Input: React.ComponentType<{\n type?: string;\n value: any;\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n disabled?: boolean;\n className?: string;\n placeholder?: string;\n min?: number;\n max?: number;\n step?: string | number;\n }>;\n Label: React.ComponentType<{\n htmlFor?: string;\n className?: string;\n children: React.ReactNode;\n }>;\n Textarea: React.ComponentType<{\n value: any;\n onChange: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;\n disabled?: boolean;\n rows?: number;\n className?: string;\n placeholder?: string;\n }>;\n Checkbox: React.ComponentType<{\n id?: string;\n checked: boolean;\n onCheckedChange: (checked: boolean) => void;\n disabled?: boolean;\n }>;\n Select: React.ComponentType<{\n value: string;\n onValueChange: (value: string) => void;\n disabled?: boolean;\n children: React.ReactNode;\n }>;\n SelectTrigger: React.ComponentType<{\n className?: string;\n children: React.ReactNode;\n }>;\n SelectValue: React.ComponentType<{\n placeholder?: string;\n }>;\n SelectContent: React.ComponentType<{\n children: React.ReactNode;\n }>;\n SelectItem: React.ComponentType<{\n value: string;\n className?: string;\n children: React.ReactNode;\n }>;\n Button: React.ComponentType<{\n type?: \"button\" | \"submit\" | \"reset\";\n variant?: string;\n size?: string;\n className?: string;\n onClick?: () => void;\n disabled?: boolean;\n children: React.ReactNode;\n }>;\n Card: React.ComponentType<{\n className?: string;\n children: React.ReactNode;\n }>;\n // Icons\n PlusIcon: React.ComponentType<{ className?: string }>;\n TrashIcon: React.ComponentType<{ className?: string }>;\n ChevronDownIcon: React.ComponentType<{ className?: string }>;\n ChevronRightIcon: React.ComponentType<{ className?: string }>;\n VariableIcon?: React.ComponentType<{ className?: string }>;\n CheckIcon?: React.ComponentType<{ className?: string }>;\n EditIcon?: React.ComponentType<{ className?: string }>;\n // Popover components for variable picker (optional)\n Popover?: React.ComponentType<{ open?: boolean; onOpenChange?: (open: boolean) => void; children: React.ReactNode }>;\n PopoverTrigger?: React.ComponentType<{ asChild?: boolean; children: React.ReactNode }>;\n PopoverContent?: React.ComponentType<{ className?: string; align?: \"start\" | \"center\" | \"end\"; children: React.ReactNode }>;\n // Dialog components for rich text editor (optional)\n Dialog?: React.ComponentType<{ open?: boolean; onOpenChange?: (open: boolean) => void; children: React.ReactNode }>;\n DialogContent?: React.ComponentType<{ className?: string; children: React.ReactNode }>;\n DialogHeader?: React.ComponentType<{ className?: string; children: React.ReactNode }>;\n DialogTitle?: React.ComponentType<{ className?: string; children: React.ReactNode }>;\n DialogFooter?: React.ComponentType<{ className?: string; children: React.ReactNode }>;\n // ScrollArea for variable picker in dialog\n ScrollArea?: React.ComponentType<{ className?: string; children: React.ReactNode }>;\n // MarkdownEditor for richtext fields\n MarkdownEditor?: React.ComponentType<{\n content: string;\n onChange: (markdown: string) => void;\n placeholder?: string;\n className?: string;\n readOnly?: boolean;\n minHeight?: string;\n variables?: Array<{ name: string; path: string; title?: string }>;\n }>;\n // Utility\n cn: (...classes: (string | undefined | null | false)[]) => string;\n}\n\n/**\n * Variable definition for workflow variables\n */\nexport interface WorkflowVariable {\n name: string;\n type: string; // JSON Schema type: \"string\", \"number\", \"boolean\", \"object\", \"array\"\n title?: string;\n path: string; // Full path like \"variables.customerEmail\" or \"input.recordId\"\n}\n\nexport interface DynamicSchemaFormProps {\n schema: JSONSchema;\n value: any;\n onChange: (value: any) => void;\n disabled?: boolean;\n path?: string[];\n components: DynamicSchemaFormUIComponents;\n /** Workflow variables available for selection */\n variables?: WorkflowVariable[];\n /** Whether to show variable picker buttons */\n showVariablePicker?: boolean;\n}\n\nexport function DynamicSchemaForm({\n schema,\n value = {},\n onChange,\n disabled = false,\n path = [],\n components,\n variables = [],\n showVariablePicker = false,\n}: DynamicSchemaFormProps) {\n const [collapsedSections, setCollapsedSections] = useState<Set<string>>(\n new Set()\n );\n const [openVariablePickers, setOpenVariablePickers] = useState<Set<string>>(\n new Set()\n );\n const [openRichTextDialogs, setOpenRichTextDialogs] = useState<Set<string>>(\n new Set()\n );\n const [richTextDraftValues, setRichTextDraftValues] = useState<Record<string, string>>({});\n\n const {\n Input,\n Label,\n Textarea,\n Checkbox,\n Select,\n SelectTrigger,\n SelectValue,\n SelectContent,\n SelectItem,\n Button,\n Card,\n PlusIcon,\n TrashIcon,\n ChevronDownIcon,\n ChevronRightIcon,\n VariableIcon,\n CheckIcon,\n EditIcon,\n Popover,\n PopoverTrigger,\n PopoverContent,\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogFooter,\n ScrollArea,\n MarkdownEditor,\n cn,\n } = components;\n\n // Check if a value is a variable reference (e.g., \"{{variables.email}}\")\n const isVariableReference = (val: any): boolean => {\n return typeof val === \"string\" && val.startsWith(\"{{\") && val.endsWith(\"}}\");\n };\n\n // Get variables that match a specific JSON Schema type\n const getMatchingVariables = (fieldType: string | undefined): WorkflowVariable[] => {\n if (!fieldType) return variables;\n\n // Type compatibility mapping\n const compatibleTypes: Record<string, string[]> = {\n string: [\"string\"],\n number: [\"number\", \"integer\"],\n integer: [\"number\", \"integer\"],\n boolean: [\"boolean\"],\n object: [\"object\"],\n array: [\"array\"],\n };\n\n const compatible = compatibleTypes[fieldType] || [fieldType];\n return variables.filter((v) => compatible.includes(v.type));\n };\n\n // Toggle variable picker for a field\n const toggleVariablePicker = (fieldPath: string) => {\n setOpenVariablePickers((prev) => {\n const next = new Set(prev);\n if (next.has(fieldPath)) {\n next.delete(fieldPath);\n } else {\n next.add(fieldPath);\n }\n return next;\n });\n };\n\n // Render a variable picker button for a field\n const renderVariablePicker = (\n fieldName: string,\n fieldType: string | undefined,\n fieldPath: string,\n onSelect: (variablePath: string) => void\n ) => {\n // Don't render if showVariablePicker is false\n if (!showVariablePicker) {\n return null;\n }\n\n // Need at least VariableIcon and Popover components to render\n if (!VariableIcon || !Popover || !PopoverTrigger || !PopoverContent) {\n return null;\n }\n\n const matchingVars = getMatchingVariables(fieldType);\n const isOpen = openVariablePickers.has(fieldPath);\n const currentValue = value[fieldName];\n const isVariable = isVariableReference(currentValue);\n\n return (\n <Popover\n open={isOpen}\n onOpenChange={(open) => {\n if (open) {\n setOpenVariablePickers((prev) => new Set(prev).add(fieldPath));\n } else {\n setOpenVariablePickers((prev) => {\n const next = new Set(prev);\n next.delete(fieldPath);\n return next;\n });\n }\n }}\n >\n <PopoverTrigger asChild>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className={cn(\n \"h-8 px-2 shrink-0\",\n isVariable && \"border-primary text-primary\"\n )}\n disabled={disabled}\n >\n <VariableIcon className=\"h-3.5 w-3.5\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-56 p-1\" align=\"end\">\n <div className=\"text-xs font-medium text-muted-foreground px-2 py-1.5\">\n Select Variable ({fieldType || \"any\"})\n </div>\n <div className=\"max-h-48 overflow-y-auto\">\n {matchingVars.length === 0 ? (\n <div className=\"px-2 py-3 text-xs text-muted-foreground text-center\">\n No variables available.\n <br />\n <span className=\"text-[10px]\">\n Add variables in Workflow Settings → Variables\n </span>\n </div>\n ) : (\n matchingVars.map((variable) => {\n const varRef = `{{${variable.path}}}`;\n const isSelected = currentValue === varRef;\n return (\n <button\n key={variable.path}\n type=\"button\"\n className={cn(\n \"w-full text-left px-2 py-1.5 text-xs rounded hover:bg-accent flex items-center justify-between\",\n isSelected && \"bg-accent\"\n )}\n onClick={() => {\n onSelect(varRef);\n setOpenVariablePickers((prev) => {\n const next = new Set(prev);\n next.delete(fieldPath);\n return next;\n });\n }}\n >\n <div>\n <div className=\"font-medium\">{variable.title || variable.name}</div>\n <div className=\"text-[10px] text-muted-foreground font-mono\">\n {variable.path}\n </div>\n </div>\n {isSelected && CheckIcon && <CheckIcon className=\"h-3 w-3\" />}\n </button>\n );\n })\n )}\n </div>\n </PopoverContent>\n </Popover>\n );\n };\n\n const toggleSection = (key: string) => {\n setCollapsedSections((prev) => {\n const next = new Set(prev);\n if (next.has(key)) {\n next.delete(key);\n } else {\n next.add(key);\n }\n return next;\n });\n };\n\n const handleFieldChange = (fieldName: string, fieldValue: any) => {\n onChange({\n ...value,\n [fieldName]: fieldValue,\n });\n };\n\n const renderField = (\n fieldSchema: JSONSchema,\n fieldName: string,\n fieldValue: any\n ) => {\n const fieldPath = [...path, fieldName].join(\".\");\n const isRequired = schema.required?.includes(fieldName);\n\n // Handle enum (dropdown)\n if (fieldSchema.enum) {\n const labels =\n (fieldSchema as any)[\"x-enumLabels\"] || fieldSchema.enum;\n return (\n <div key={fieldPath} className=\"space-y-1.5\">\n <Label className=\"text-xs font-medium\">\n {fieldSchema.title || fieldName}\n {isRequired && <span className=\"text-red-500 ml-0.5\">*</span>}\n </Label>\n <Select\n value={fieldValue || \"\"}\n onValueChange={(v) => handleFieldChange(fieldName, v)}\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue\n placeholder={`Select ${fieldSchema.title || fieldName}`}\n />\n </SelectTrigger>\n <SelectContent>\n {fieldSchema.enum.map((option: any, idx: number) => (\n <SelectItem key={option} value={option} className=\"text-xs\">\n {labels[idx] || option}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n {fieldSchema.description && (\n <p className=\"text-[10px] text-muted-foreground\">\n {fieldSchema.description}\n </p>\n )}\n </div>\n );\n }\n\n // Handle nested objects\n if (fieldSchema.type === \"object\" && fieldSchema.properties) {\n const isCollapsed = collapsedSections.has(fieldPath);\n return (\n <div key={fieldPath} className=\"space-y-2\">\n <button\n type=\"button\"\n onClick={() => toggleSection(fieldPath)}\n className=\"flex items-center gap-1 text-xs font-medium text-gray-700 hover:text-gray-900\"\n >\n {isCollapsed ? (\n <ChevronRightIcon className=\"h-3 w-3\" />\n ) : (\n <ChevronDownIcon className=\"h-3 w-3\" />\n )}\n {fieldSchema.title || fieldName}\n </button>\n {!isCollapsed && (\n <Card className=\"p-3 bg-gray-50/50\">\n <DynamicSchemaForm\n schema={fieldSchema}\n value={fieldValue || {}}\n onChange={(v) => handleFieldChange(fieldName, v)}\n disabled={disabled}\n path={[...path, fieldName]}\n components={components}\n variables={variables}\n showVariablePicker={showVariablePicker}\n />\n </Card>\n )}\n </div>\n );\n }\n\n // Handle arrays\n if (fieldSchema.type === \"array\" && fieldSchema.items) {\n const arrayValue = Array.isArray(fieldValue) ? fieldValue : [];\n const itemSchema = fieldSchema.items as JSONSchema;\n\n return (\n <div key={fieldPath} className=\"space-y-2\">\n <div className=\"flex items-center justify-between\">\n <Label className=\"text-xs font-medium\">\n {fieldSchema.title || fieldName}\n {isRequired && <span className=\"text-red-500 ml-0.5\">*</span>}\n </Label>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"h-6 text-xs px-2\"\n onClick={() => {\n const newItem = itemSchema.type === \"object\" ? {} : \"\";\n handleFieldChange(fieldName, [...arrayValue, newItem]);\n }}\n disabled={disabled}\n >\n <PlusIcon className=\"h-3 w-3 mr-1\" />\n Add\n </Button>\n </div>\n {fieldSchema.description && (\n <p className=\"text-[10px] text-muted-foreground\">\n {fieldSchema.description}\n </p>\n )}\n <div className=\"space-y-2\">\n {arrayValue.map((item: any, index: number) => (\n <div key={index} className=\"flex gap-2 items-start\">\n <div className=\"flex-1\">\n {itemSchema.type === \"object\" ? (\n <Card className=\"p-2 bg-gray-50/50\">\n <DynamicSchemaForm\n schema={itemSchema}\n value={item}\n onChange={(v) => {\n const newArray = [...arrayValue];\n newArray[index] = v;\n handleFieldChange(fieldName, newArray);\n }}\n disabled={disabled}\n path={[...path, fieldName, String(index)]}\n components={components}\n variables={variables}\n showVariablePicker={showVariablePicker}\n />\n </Card>\n ) : (\n <Input\n value={item || \"\"}\n onChange={(e) => {\n const newArray = [...arrayValue];\n newArray[index] = e.target.value;\n handleFieldChange(fieldName, newArray);\n }}\n disabled={disabled}\n className=\"h-8 text-xs\"\n />\n )}\n </div>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 text-red-500 hover:text-red-700\"\n onClick={() => {\n const newArray = arrayValue.filter(\n (_: any, i: number) => i !== index\n );\n handleFieldChange(fieldName, newArray);\n }}\n disabled={disabled}\n >\n <TrashIcon className=\"h-3 w-3\" />\n </Button>\n </div>\n ))}\n </div>\n </div>\n );\n }\n\n // Handle boolean\n if (fieldSchema.type === \"boolean\") {\n return (\n <div key={fieldPath} className=\"flex items-center space-x-2\">\n <Checkbox\n id={fieldPath}\n checked={!!fieldValue}\n onCheckedChange={(checked) => handleFieldChange(fieldName, checked)}\n disabled={disabled}\n />\n <Label htmlFor={fieldPath} className=\"text-xs font-normal\">\n {fieldSchema.title || fieldName}\n {isRequired && <span className=\"text-red-500 ml-0.5\">*</span>}\n </Label>\n {fieldSchema.description && (\n <span className=\"text-[10px] text-muted-foreground ml-2\">\n ({fieldSchema.description})\n </span>\n )}\n </div>\n );\n }\n\n // Handle number/integer\n if (fieldSchema.type === \"number\" || fieldSchema.type === \"integer\") {\n const isVarValue = isVariableReference(fieldValue);\n return (\n <div key={fieldPath} className=\"space-y-1.5\">\n <Label className=\"text-xs font-medium\">\n {fieldSchema.title || fieldName}\n {isRequired && <span className=\"text-red-500 ml-0.5\">*</span>}\n </Label>\n <div className=\"flex gap-1.5\">\n <Input\n type={isVarValue ? \"text\" : \"number\"}\n value={fieldValue ?? \"\"}\n onChange={(e) => {\n if (isVariableReference(e.target.value)) {\n handleFieldChange(fieldName, e.target.value);\n } else {\n const val =\n e.target.value === \"\" ? undefined : Number(e.target.value);\n handleFieldChange(fieldName, val);\n }\n }}\n min={fieldSchema.minimum}\n max={fieldSchema.maximum}\n step={fieldSchema.type === \"integer\" ? 1 : \"any\"}\n disabled={disabled}\n className={cn(\"h-8 text-xs flex-1\", isVarValue && \"font-mono text-primary\")}\n />\n {renderVariablePicker(fieldName, fieldSchema.type, fieldPath, (varPath) =>\n handleFieldChange(fieldName, varPath)\n )}\n </div>\n {fieldSchema.description && (\n <p className=\"text-[10px] text-muted-foreground\">\n {fieldSchema.description}\n </p>\n )}\n </div>\n );\n }\n\n // Handle string with format\n if (fieldSchema.type === \"string\") {\n // Rich text editor - opens in dialog\n if (fieldSchema.format === \"richtext\") {\n const isDialogOpen = openRichTextDialogs.has(fieldPath);\n const draftValue = richTextDraftValues[fieldPath] ?? fieldValue ?? \"\";\n const previewText = (fieldValue || \"\").replace(/<[^>]*>/g, \"\").slice(0, 50);\n const matchingVars = getMatchingVariables(\"string\");\n\n // Check if Dialog components are available\n if (!Dialog || !DialogContent || !DialogHeader || !DialogTitle || !DialogFooter) {\n // Fallback to regular textarea if Dialog not provided\n return (\n <div key={fieldPath} className=\"space-y-1.5\">\n <div className=\"flex items-center justify-between\">\n <Label className=\"text-xs font-medium\">\n {fieldSchema.title || fieldName}\n {isRequired && <span className=\"text-red-500 ml-0.5\">*</span>}\n </Label>\n {renderVariablePicker(fieldName, \"string\", fieldPath, (varPath) =>\n handleFieldChange(fieldName, (fieldValue || \"\") + varPath)\n )}\n </div>\n <Textarea\n value={fieldValue || \"\"}\n onChange={(e) => handleFieldChange(fieldName, e.target.value)}\n disabled={disabled}\n rows={3}\n className=\"text-xs\"\n placeholder={fieldSchema.description}\n />\n </div>\n );\n }\n\n return (\n <div key={fieldPath} className=\"space-y-1.5\">\n <Label className=\"text-xs font-medium\">\n {fieldSchema.title || fieldName}\n {isRequired && <span className=\"text-red-500 ml-0.5\">*</span>}\n </Label>\n <div className=\"flex gap-1.5\">\n <div className=\"flex-1 min-w-0 px-2 py-1.5 bg-muted/50 rounded text-xs text-muted-foreground truncate border\">\n {previewText || <span className=\"italic\">Click edit to add content...</span>}\n </div>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"h-8 px-2 shrink-0\"\n onClick={() => {\n setRichTextDraftValues((prev) => ({ ...prev, [fieldPath]: fieldValue || \"\" }));\n setOpenRichTextDialogs((prev) => new Set(prev).add(fieldPath));\n }}\n disabled={disabled}\n >\n {EditIcon ? <EditIcon className=\"h-3.5 w-3.5\" /> : \"Edit\"}\n </Button>\n </div>\n\n <Dialog\n open={isDialogOpen}\n onOpenChange={(open) => {\n if (!open) {\n setOpenRichTextDialogs((prev) => {\n const next = new Set(prev);\n next.delete(fieldPath);\n return next;\n });\n }\n }}\n >\n <DialogContent className=\"max-w-3xl max-h-[85vh] flex flex-col\">\n <DialogHeader>\n <DialogTitle>Edit {fieldSchema.title || fieldName}</DialogTitle>\n </DialogHeader>\n <div className=\"flex-1 overflow-hidden flex flex-col min-h-0\">\n {MarkdownEditor ? (\n <MarkdownEditor\n content={draftValue}\n onChange={(value) => {\n setRichTextDraftValues((prev) => ({ ...prev, [fieldPath]: value }));\n }}\n placeholder=\"Enter content... Use {{variables.name}} for dynamic values\"\n minHeight=\"300px\"\n variables={showVariablePicker ? matchingVars : []}\n />\n ) : (\n <>\n <Textarea\n value={draftValue}\n onChange={(e) => {\n setRichTextDraftValues((prev) => ({ ...prev, [fieldPath]: e.target.value }));\n }}\n rows={12}\n className=\"flex-1 text-sm font-mono resize-none\"\n placeholder=\"Enter content... Use {{variables.name}} for dynamic values\"\n />\n\n {/* Variable picker in dialog (fallback when no MarkdownEditor) */}\n {showVariablePicker && matchingVars.length > 0 && (\n <div className=\"border rounded-md p-2 bg-muted/30 mt-3\">\n <p className=\"text-xs font-medium mb-2\">Insert Variable:</p>\n <div className=\"flex flex-wrap gap-1\">\n {matchingVars.map((variable) => (\n <Button\n key={variable.path}\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"h-6 text-xs px-2\"\n onClick={() => {\n const varRef = `{{${variable.path}}}`;\n setRichTextDraftValues((prev) => ({\n ...prev,\n [fieldPath]: (prev[fieldPath] || \"\") + varRef,\n }));\n }}\n >\n {variable.title || variable.name}\n </Button>\n ))}\n </div>\n </div>\n )}\n </>\n )}\n </div>\n <DialogFooter>\n <Button\n type=\"button\"\n variant=\"outline\"\n onClick={() => {\n setOpenRichTextDialogs((prev) => {\n const next = new Set(prev);\n next.delete(fieldPath);\n return next;\n });\n }}\n >\n Cancel\n </Button>\n <Button\n type=\"button\"\n onClick={() => {\n handleFieldChange(fieldName, draftValue);\n setOpenRichTextDialogs((prev) => {\n const next = new Set(prev);\n next.delete(fieldPath);\n return next;\n });\n }}\n >\n Save\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </div>\n );\n }\n\n // Multiline / textarea\n if (\n fieldSchema.format === \"multiline\" ||\n fieldSchema.format === \"textarea\"\n ) {\n const isVarValue = isVariableReference(fieldValue);\n return (\n <div key={fieldPath} className=\"space-y-1.5\">\n <div className=\"flex items-center justify-between\">\n <Label className=\"text-xs font-medium\">\n {fieldSchema.title || fieldName}\n {isRequired && <span className=\"text-red-500 ml-0.5\">*</span>}\n </Label>\n {renderVariablePicker(fieldName, \"string\", fieldPath, (varPath) =>\n handleFieldChange(fieldName, (fieldValue || \"\") + varPath)\n )}\n </div>\n <Textarea\n value={fieldValue || \"\"}\n onChange={(e) => handleFieldChange(fieldName, e.target.value)}\n disabled={disabled}\n rows={3}\n className={cn(\"text-xs\", isVarValue && \"font-mono text-primary\")}\n placeholder={fieldSchema.description}\n />\n {fieldSchema.description && (\n <p className=\"text-[10px] text-muted-foreground\">\n {fieldSchema.description}\n </p>\n )}\n </div>\n );\n }\n\n // Regular string input\n const inputType =\n fieldSchema.format === \"email\"\n ? \"email\"\n : fieldSchema.format === \"uri\" || fieldSchema.format === \"url\"\n ? \"url\"\n : fieldSchema.format === \"password\"\n ? \"password\"\n : \"text\";\n\n const isVarValue = isVariableReference(fieldValue);\n\n return (\n <div key={fieldPath} className=\"space-y-1.5\">\n <Label className=\"text-xs font-medium\">\n {fieldSchema.title || fieldName}\n {isRequired && <span className=\"text-red-500 ml-0.5\">*</span>}\n </Label>\n <div className=\"flex gap-1.5\">\n <Input\n type={inputType}\n value={fieldValue || \"\"}\n onChange={(e) => handleFieldChange(fieldName, e.target.value)}\n disabled={disabled}\n className={cn(\"h-8 text-xs flex-1\", isVarValue && \"font-mono text-primary\")}\n placeholder={fieldSchema.description}\n />\n {renderVariablePicker(fieldName, \"string\", fieldPath, (varPath) =>\n handleFieldChange(fieldName, (fieldValue || \"\") + varPath)\n )}\n </div>\n {fieldSchema.description && (\n <p className=\"text-[10px] text-muted-foreground\">\n {fieldSchema.description}\n </p>\n )}\n </div>\n );\n }\n\n // Fallback for unknown types\n return (\n <div key={fieldPath} className=\"space-y-1.5\">\n <Label className=\"text-xs font-medium\">\n {fieldSchema.title || fieldName}\n {isRequired && <span className=\"text-red-500 ml-0.5\">*</span>}\n </Label>\n <Input\n value={\n typeof fieldValue === \"object\"\n ? JSON.stringify(fieldValue)\n : fieldValue || \"\"\n }\n onChange={(e) => {\n try {\n const parsed = JSON.parse(e.target.value);\n handleFieldChange(fieldName, parsed);\n } catch {\n handleFieldChange(fieldName, e.target.value);\n }\n }}\n disabled={disabled}\n className=\"h-8 text-xs font-mono\"\n />\n <p className=\"text-[10px] text-muted-foreground\">\n Type: {fieldSchema.type || \"unknown\"}\n </p>\n </div>\n );\n };\n\n // Render root object properties\n if (schema.type === \"object\" && schema.properties) {\n const sortedProperties = Object.entries(schema.properties).sort(\n ([, a], [, b]) => {\n const orderA = (a as any)[\"x-displayOrder\"] ?? 999;\n const orderB = (b as any)[\"x-displayOrder\"] ?? 999;\n return orderA - orderB;\n }\n );\n\n return (\n <div className=\"space-y-3\">\n {sortedProperties.map(([fieldName, fieldSchema]) =>\n renderField(fieldSchema as JSONSchema, fieldName, value[fieldName])\n )}\n </div>\n );\n }\n\n // If schema is not an object with properties, show message\n return (\n <p className=\"text-xs text-muted-foreground text-center py-4\">\n No configuration required for this node.\n </p>\n );\n}\n","\"use client\";\n\nimport { JSONSchema } from \"@elqnt/types\";\nimport { useState } from \"react\";\n\n// UI Components interface - same pattern as DynamicSchemaForm\nexport interface SchemaBuilderUIComponents {\n Input: React.ComponentType<{\n value: any;\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n disabled?: boolean;\n className?: string;\n placeholder?: string;\n }>;\n Label: React.ComponentType<{\n htmlFor?: string;\n className?: string;\n children: React.ReactNode;\n }>;\n Checkbox: React.ComponentType<{\n id?: string;\n checked: boolean;\n onCheckedChange: (checked: boolean) => void;\n disabled?: boolean;\n }>;\n Select: React.ComponentType<{\n value: string;\n onValueChange: (value: string) => void;\n disabled?: boolean;\n children: React.ReactNode;\n }>;\n SelectTrigger: React.ComponentType<{\n className?: string;\n children: React.ReactNode;\n }>;\n SelectValue: React.ComponentType<{\n placeholder?: string;\n }>;\n SelectContent: React.ComponentType<{\n children: React.ReactNode;\n }>;\n SelectItem: React.ComponentType<{\n value: string;\n className?: string;\n children: React.ReactNode;\n }>;\n Button: React.ComponentType<{\n type?: \"button\" | \"submit\" | \"reset\";\n variant?: string;\n size?: string;\n className?: string;\n onClick?: () => void;\n disabled?: boolean;\n children: React.ReactNode;\n }>;\n Card: React.ComponentType<{\n className?: string;\n children: React.ReactNode;\n }>;\n // Icons\n PlusIcon: React.ComponentType<{ className?: string }>;\n TrashIcon: React.ComponentType<{ className?: string }>;\n GripVerticalIcon: React.ComponentType<{ className?: string }>;\n ChevronDownIcon: React.ComponentType<{ className?: string }>;\n ChevronRightIcon: React.ComponentType<{ className?: string }>;\n // Utility\n cn: (...classes: (string | undefined | null | false)[]) => string;\n}\n\nexport interface SchemaBuilderProps {\n schema: JSONSchema;\n onChange: (schema: JSONSchema) => void;\n disabled?: boolean;\n components: SchemaBuilderUIComponents;\n}\n\ninterface FieldDefinition {\n name: string;\n type: string;\n title: string;\n description: string;\n required: boolean;\n format?: string;\n enum?: string[];\n items?: { type: string };\n}\n\nconst FIELD_TYPES = [\n { value: \"string\", label: \"Text\" },\n { value: \"number\", label: \"Number\" },\n { value: \"integer\", label: \"Integer\" },\n { value: \"boolean\", label: \"Boolean\" },\n { value: \"array\", label: \"Array\" },\n { value: \"object\", label: \"Object\" },\n];\n\nconst STRING_FORMATS = [\n { value: \"plain\", label: \"Plain Text\" },\n { value: \"email\", label: \"Email\" },\n { value: \"uri\", label: \"URL\" },\n { value: \"date\", label: \"Date\" },\n { value: \"date-time\", label: \"Date & Time\" },\n { value: \"multiline\", label: \"Multiline Text\" },\n];\n\nexport function SchemaBuilder({\n schema,\n onChange,\n disabled = false,\n components,\n}: SchemaBuilderProps) {\n const [expandedFields, setExpandedFields] = useState<Set<string>>(new Set());\n\n const {\n Input,\n Label,\n Checkbox,\n Select,\n SelectTrigger,\n SelectValue,\n SelectContent,\n SelectItem,\n Button,\n Card,\n PlusIcon,\n TrashIcon,\n GripVerticalIcon,\n ChevronDownIcon,\n ChevronRightIcon,\n } = components;\n\n // Convert schema to field definitions\n const getFieldsFromSchema = (): FieldDefinition[] => {\n if (!schema?.properties) return [];\n\n return Object.entries(schema.properties).map(([name, prop]) => {\n const fieldSchema = prop as JSONSchema;\n return {\n name,\n type: fieldSchema.type || \"string\",\n title: fieldSchema.title || name,\n description: fieldSchema.description || \"\",\n required: schema.required?.includes(name) || false,\n format: fieldSchema.format,\n enum: fieldSchema.enum,\n items: fieldSchema.items as { type: string } | undefined,\n };\n });\n };\n\n const fields = getFieldsFromSchema();\n\n // Convert field definitions back to schema\n const updateSchema = (newFields: FieldDefinition[]) => {\n const properties: Record<string, JSONSchema> = {};\n const required: string[] = [];\n\n newFields.forEach((field) => {\n if (!field.name) return;\n\n const fieldSchema: JSONSchema = {\n type: field.type,\n title: field.title || field.name,\n };\n\n if (field.description) {\n fieldSchema.description = field.description;\n }\n\n if (field.format && field.format !== \"plain\") {\n fieldSchema.format = field.format;\n }\n\n if (field.enum && field.enum.length > 0) {\n fieldSchema.enum = field.enum;\n }\n\n if (field.type === \"array\" && field.items) {\n fieldSchema.items = field.items;\n }\n\n properties[field.name] = fieldSchema;\n\n if (field.required) {\n required.push(field.name);\n }\n });\n\n onChange({\n type: \"object\",\n properties,\n required: required.length > 0 ? required : undefined,\n });\n };\n\n const addField = () => {\n const newFieldName = `field_${fields.length + 1}`;\n const newFields: FieldDefinition[] = [\n ...fields,\n {\n name: newFieldName,\n type: \"string\",\n title: \"\",\n description: \"\",\n required: false,\n },\n ];\n updateSchema(newFields);\n setExpandedFields((prev) => new Set([...prev, newFieldName]));\n };\n\n const updateField = (index: number, updates: Partial<FieldDefinition>) => {\n const newFields = [...fields];\n newFields[index] = { ...newFields[index], ...updates };\n updateSchema(newFields);\n };\n\n const removeField = (index: number) => {\n const newFields = fields.filter((_, i) => i !== index);\n updateSchema(newFields);\n };\n\n const toggleExpand = (name: string) => {\n setExpandedFields((prev) => {\n const next = new Set(prev);\n if (next.has(name)) {\n next.delete(name);\n } else {\n next.add(name);\n }\n return next;\n });\n };\n\n return (\n <div className=\"space-y-2\">\n {fields.length === 0 ? (\n <p className=\"text-xs text-muted-foreground italic py-3\">\n No fields defined. Click &quot;Add Field&quot; to create one.\n </p>\n ) : (\n <div className=\"space-y-3\">\n {fields.map((field, index) => {\n const isExpanded = expandedFields.has(field.name);\n return (\n <Card key={index} className=\"p-3 bg-gray-50/50\">\n {/* Field Header Row 1: Name and Delete */}\n <div className=\"flex items-center gap-2 mb-2\">\n <GripVerticalIcon className=\"h-4 w-4 text-gray-300 flex-shrink-0 cursor-grab\" />\n\n <button\n type=\"button\"\n onClick={() => toggleExpand(field.name)}\n className=\"flex-shrink-0 p-1 hover:bg-gray-200 rounded\"\n >\n {isExpanded ? (\n <ChevronDownIcon className=\"h-4 w-4 text-gray-500\" />\n ) : (\n <ChevronRightIcon className=\"h-4 w-4 text-gray-500\" />\n )}\n </button>\n\n {/* Field Name */}\n <div className=\"flex-1\">\n <Input\n value={field.name}\n onChange={(e) => {\n const oldName = field.name;\n const newName = e.target.value\n .toLowerCase()\n .replace(/\\s+/g, \"_\")\n .replace(/[^a-z0-9_]/g, \"\");\n updateField(index, { name: newName });\n if (expandedFields.has(oldName)) {\n setExpandedFields((prev) => {\n const next = new Set(prev);\n next.delete(oldName);\n next.add(newName);\n return next;\n });\n }\n }}\n placeholder=\"field_name\"\n className=\"h-9 text-sm font-mono\"\n disabled={disabled}\n />\n </div>\n\n {/* Delete button */}\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-9 w-9 p-0 text-red-500 hover:text-red-700 hover:bg-red-50 flex-shrink-0\"\n onClick={() => removeField(index)}\n disabled={disabled}\n >\n <TrashIcon className=\"h-4 w-4\" />\n </Button>\n </div>\n\n {/* Field Header Row 2: Type and Required */}\n <div className=\"flex items-center gap-3 pl-10\">\n {/* Field Type */}\n <div className=\"flex-1\">\n <Select\n value={field.type}\n onValueChange={(v) => updateField(index, { type: v })}\n disabled={disabled}\n >\n <SelectTrigger className=\"h-9 text-sm\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {FIELD_TYPES.map((type) => (\n <SelectItem key={type.value} value={type.value}>\n {type.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n\n {/* Required checkbox */}\n <div className=\"flex items-center gap-2 flex-shrink-0\">\n <Checkbox\n id={`required-${index}`}\n checked={field.required}\n onCheckedChange={(checked) =>\n updateField(index, { required: !!checked })\n }\n disabled={disabled}\n />\n <Label\n htmlFor={`required-${index}`}\n className=\"text-sm text-muted-foreground\"\n >\n Required\n </Label>\n </div>\n </div>\n\n {/* Expanded Details */}\n {isExpanded && (\n <div className=\"mt-3 pt-3 border-t space-y-3 pl-10\">\n {/* Title */}\n <div className=\"space-y-1\">\n <Label className=\"text-xs text-muted-foreground\">\n Display Title\n </Label>\n <Input\n value={field.title}\n onChange={(e) =>\n updateField(index, { title: e.target.value })\n }\n placeholder=\"Human readable title\"\n className=\"h-9 text-sm\"\n disabled={disabled}\n />\n </div>\n\n {/* Description */}\n <div className=\"space-y-1\">\n <Label className=\"text-xs text-muted-foreground\">\n Description\n </Label>\n <Input\n value={field.description}\n onChange={(e) =>\n updateField(index, { description: e.target.value })\n }\n placeholder=\"Help text for this field\"\n className=\"h-9 text-sm\"\n disabled={disabled}\n />\n </div>\n\n {/* String Format */}\n {field.type === \"string\" && (\n <div className=\"space-y-1\">\n <Label className=\"text-xs text-muted-foreground\">\n Format\n </Label>\n <Select\n value={field.format || \"plain\"}\n onValueChange={(v) =>\n updateField(index, { format: v })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-9 text-sm\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {STRING_FORMATS.map((format) => (\n <SelectItem key={format.value} value={format.value}>\n {format.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n )}\n\n {/* Array Item Type */}\n {field.type === \"array\" && (\n <div className=\"space-y-1\">\n <Label className=\"text-xs text-muted-foreground\">\n Item Type\n </Label>\n <Select\n value={field.items?.type || \"string\"}\n onValueChange={(v) =>\n updateField(index, { items: { type: v } })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-9 text-sm\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {FIELD_TYPES.filter((t) => t.value !== \"array\").map(\n (type) => (\n <SelectItem key={type.value} value={type.value}>\n {type.label}\n </SelectItem>\n )\n )}\n </SelectContent>\n </Select>\n </div>\n )}\n\n {/* Enum Options (for dropdowns) */}\n {field.type === \"string\" && (\n <div className=\"space-y-2\">\n <div className=\"flex items-center justify-between\">\n <Label className=\"text-xs text-muted-foreground\">\n Dropdown Options (optional)\n </Label>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"h-7 text-xs\"\n onClick={() => {\n const currentEnum = field.enum || [];\n updateField(index, {\n enum: [\n ...currentEnum,\n `option_${currentEnum.length + 1}`,\n ],\n });\n }}\n disabled={disabled}\n >\n <PlusIcon className=\"h-3 w-3 mr-1\" />\n Add Option\n </Button>\n </div>\n {field.enum && field.enum.length > 0 && (\n <div className=\"space-y-2\">\n {field.enum.map((option, optIdx) => (\n <div key={optIdx} className=\"flex items-center gap-2\">\n <Input\n value={option}\n onChange={(e) => {\n const newEnum = [...(field.enum || [])];\n newEnum[optIdx] = e.target.value;\n updateField(index, { enum: newEnum });\n }}\n placeholder={`Option ${optIdx + 1}`}\n className=\"h-8 text-sm flex-1\"\n disabled={disabled}\n />\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 text-red-400 hover:text-red-600\"\n onClick={() => {\n const newEnum = (field.enum || []).filter(\n (_, i) => i !== optIdx\n );\n updateField(index, {\n enum:\n newEnum.length > 0 ? newEnum : undefined,\n });\n }}\n disabled={disabled}\n >\n <TrashIcon className=\"h-3 w-3\" />\n </Button>\n </div>\n ))}\n </div>\n )}\n </div>\n )}\n </div>\n )}\n </Card>\n );\n })}\n </div>\n )}\n\n {/* Add Field Button */}\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"w-full h-9 text-sm\"\n onClick={addField}\n disabled={disabled}\n >\n <PlusIcon className=\"h-4 w-4 mr-2\" />\n Add Field\n </Button>\n </div>\n );\n}\n","\"use client\";\n\nimport React, { createContext, useContext, useMemo } from \"react\";\nimport {\n useWorkflowDefinition,\n UseWorkflowDefinitionOptions,\n UseWorkflowDefinitionType,\n} from \"../hooks\";\n\nexport const WorkflowDefinitionContext = createContext<\n UseWorkflowDefinitionType | undefined\n>(undefined);\n\nexport interface WorkflowDefinitionProviderProps {\n children: React.ReactNode;\n orgId?: string;\n definitionId?: string;\n options?: UseWorkflowDefinitionOptions;\n}\n\nexport function WorkflowDefinitionProvider({\n children,\n orgId,\n definitionId,\n options = {},\n}: WorkflowDefinitionProviderProps) {\n const hookValue = useWorkflowDefinition(orgId, definitionId, options);\n const value = useMemo(() => hookValue, [hookValue]);\n\n return (\n <WorkflowDefinitionContext.Provider value={value}>\n {children}\n </WorkflowDefinitionContext.Provider>\n );\n}\n\nexport function useWorkflowDefinitionContext() {\n const context = useContext(WorkflowDefinitionContext);\n\n if (!context) {\n throw new Error(\n \"useWorkflowDefinitionContext must be used within an WorkflowDefinitionProvider\"\n );\n }\n\n return context;\n}\n","\"use client\";\n\nimport { useNatsContext } from \"@elqnt/nats\";\nimport { useCallback, useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n CreateWorkflowDefinitionRequest,\n DeleteWorkflowDefinitionRequest,\n GetWorkflowDefinitionRequest,\n ListWorkflowDefinitionsRequest,\n ListWorkflowDefinitionsResponse,\n ResponseMetadata,\n UpdateWorkflowDefinitionRequest,\n WorkflowDefinition,\n WorkflowDefinitionCreate,\n WorkflowDefinitionDelete,\n WorkflowDefinitionGet,\n WorkflowDefinitionList,\n WorkflowDefinitionResponse,\n WorkflowDefinitionUpdate,\n} from \"../models\";\nimport {\n addDefinition,\n removeDefinition,\n setDefinitions,\n setError,\n setLoading,\n setOperationLoading,\n setSelectedDefinition,\n updateDefinition,\n WorkflowDefinitionSelector,\n} from \"../store/workflow-definition-slice\";\n\nexport type UseWorkflowDefinitionType = {\n // State\n definitions: Record<string, WorkflowDefinition>;\n selectedDefinition?: WorkflowDefinition;\n isLoading: boolean;\n loadingStates: Record<string, boolean>;\n error?: string;\n\n // Operations\n loadDefinitions: () => Promise<void>;\n loadDefinition: (id: string) => Promise<void>;\n resetSelectedDefinition: () => void;\n createDefinition: (\n definition: WorkflowDefinition\n ) => Promise<WorkflowDefinitionResponse>;\n updateDefinition: (\n id: string,\n definition: WorkflowDefinition\n ) => Promise<WorkflowDefinitionResponse>;\n deleteDefinition: (id: string) => Promise<ResponseMetadata>;\n\n // Utilities\n refresh: () => void;\n};\n\nexport interface UseWorkflowDefinitionOptions {\n autoLoad?: boolean;\n}\n\nexport function useWorkflowDefinition(\n orgId: string | undefined,\n definitionId?: string,\n options: UseWorkflowDefinitionOptions = {}\n): UseWorkflowDefinitionType {\n const { autoLoad } = options;\n const { natsConnected, request } = useNatsContext();\n const dispatch = useDispatch();\n\n const definitions = useSelector(\n (state: WorkflowDefinitionSelector) => state.workflowDefinition.definitions\n );\n const selectedDefinition = useSelector(\n (state: WorkflowDefinitionSelector) =>\n state.workflowDefinition.selectedDefinition\n );\n const isLoading = useSelector(\n (state: WorkflowDefinitionSelector) => state.workflowDefinition.isLoading\n );\n const loadingStates = useSelector(\n (state: WorkflowDefinitionSelector) =>\n state.workflowDefinition.loadingStates\n );\n const error = useSelector(\n (state: WorkflowDefinitionSelector) => state.workflowDefinition.error\n );\n\n const loadDefinitions = useCallback(async () => {\n if (!natsConnected || !orgId) return;\n\n const loadingKey = \"loadDefinitions\";\n if (loadingStates[loadingKey]) return;\n\n dispatch(setOperationLoading({ operation: loadingKey, loading: true }));\n\n try {\n const response = await request<\n ListWorkflowDefinitionsRequest,\n ListWorkflowDefinitionsResponse\n >(WorkflowDefinitionList, { orgId });\n\n if (response instanceof Error) {\n dispatch(setError(response.message));\n } else {\n dispatch(setDefinitions(response?.definitions ?? []));\n }\n } catch (err) {\n dispatch(setError(err instanceof Error ? err.message : \"Unknown error\"));\n } finally {\n dispatch(setOperationLoading({ operation: loadingKey, loading: false }));\n }\n }, [natsConnected, orgId, dispatch, request]);\n\n const loadDefinition = useCallback(\n async (id: string) => {\n if (!natsConnected || !orgId) return;\n\n dispatch(setOperationLoading({ operation: `load_${id}`, loading: true }));\n try {\n const response = await request<\n GetWorkflowDefinitionRequest,\n WorkflowDefinitionResponse\n >(WorkflowDefinitionGet, { id, orgId });\n\n if (response instanceof Error) {\n dispatch(setError(response.message));\n return;\n }\n\n dispatch(setSelectedDefinition(response.definition));\n } finally {\n dispatch(\n setOperationLoading({ operation: `load_${id}`, loading: false })\n );\n }\n },\n [natsConnected, orgId, dispatch, request]\n );\n\n const resetSelectedDefinition = useCallback(() => {\n dispatch(setSelectedDefinition(undefined));\n }, [dispatch]);\n\n const createDefinition = async (definition: WorkflowDefinition) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(setOperationLoading({ operation: \"create\", loading: true }));\n\n try {\n const response = await request<\n CreateWorkflowDefinitionRequest,\n WorkflowDefinitionResponse\n >(WorkflowDefinitionCreate, { definition, orgId });\n\n if (response instanceof Error) {\n throw response;\n }\n\n if (response.metadata.success) {\n dispatch(addDefinition(response.definition));\n }\n return response;\n } finally {\n dispatch(setOperationLoading({ operation: \"create\", loading: false }));\n }\n };\n\n const updateDefinitionById = async (\n id: string,\n definition: WorkflowDefinition\n ) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(setOperationLoading({ operation: `update_${id}`, loading: true }));\n try {\n const response = await request<\n UpdateWorkflowDefinitionRequest,\n WorkflowDefinitionResponse\n >(WorkflowDefinitionUpdate, {\n definition,\n orgId,\n });\n\n if (response instanceof Error) {\n throw response;\n }\n\n if (response.metadata.success) {\n dispatch(updateDefinition(response.definition));\n }\n\n return response;\n } finally {\n dispatch(\n setOperationLoading({ operation: `update_${id}`, loading: false })\n );\n }\n };\n\n const deleteDefinition = async (id: string) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(setOperationLoading({ operation: `delete_${id}`, loading: true }));\n try {\n const response = await request<\n DeleteWorkflowDefinitionRequest,\n ResponseMetadata\n >(WorkflowDefinitionDelete, { id, orgId });\n\n if (response instanceof Error) {\n throw response;\n }\n\n dispatch(removeDefinition(id));\n return response;\n } finally {\n dispatch(\n setOperationLoading({ operation: `delete_${id}`, loading: false })\n );\n }\n };\n\n const refresh = useCallback(() => {\n if (!natsConnected || !orgId) return;\n\n if (definitionId) {\n loadDefinition(definitionId);\n } else {\n dispatch(setLoading(true));\n loadDefinitions().finally(() => dispatch(setLoading(false)));\n }\n }, [natsConnected, orgId, definitionId, loadDefinition, dispatch]);\n\n useEffect(() => {\n let mounted = true;\n\n if (autoLoad && natsConnected && orgId && mounted) {\n loadDefinitions();\n }\n\n return () => {\n mounted = false;\n };\n }, [autoLoad, natsConnected, orgId]);\n\n useEffect(() => {\n if (natsConnected && orgId && definitionId) {\n loadDefinition(definitionId);\n }\n }, [natsConnected, orgId, definitionId, loadDefinition]);\n\n return {\n // State\n definitions,\n selectedDefinition,\n isLoading,\n loadingStates,\n error,\n\n // Operations\n loadDefinitions,\n loadDefinition,\n resetSelectedDefinition,\n createDefinition,\n updateDefinition: updateDefinitionById,\n deleteDefinition,\n\n // Utilities\n refresh,\n };\n}\n","// Code generated by tygo. DO NOT EDIT.\nimport { EntityFilterOperatorTS } from \"@elqnt/entity\";\nimport { JSONSchema } from \"@elqnt/types\";\nimport { NodeSubTypeTS, WorkflowTypeTS, WorkflowNodeTypeTS, WorkflowNodeSubTypeTS, WorkflowEdgeTypeTS } from \"../schema/schemas\";\n\n//////////\n// source: constants.go\n\n/**\n * NodeType represents the primary type of a workflow node\n */\nexport type NodeType = string;\nexport const NodeTypeTrigger: NodeType = \"trigger\";\nexport const NodeTypeHumanAction: NodeType = \"humanAction\";\nexport const NodeTypeAgent: NodeType = \"agent\";\nexport const NodeTypeAction: NodeType = \"action\";\nexport const NodeTypeLogic: NodeType = \"logic\";\nexport const NodeTypeLoop: NodeType = \"loop\";\nexport const NodeTypeParallel: NodeType = \"parallel\";\nexport const NodeTypeDelay: NodeType = \"delay\";\nexport const NodeTypeData: NodeType = \"data\";\nexport const NodeTypeIntegration: NodeType = \"integration\";\nexport const NodeTypeTimer: NodeType = \"timer\";\nexport const NodeTypeSubflow: NodeType = \"subflow\";\nexport const NodeTypeCustom: NodeType = \"custom\";\nexport const NodeTypeAccounting: NodeType = \"accounting\";\n/**\n * NodeSubType represents the subtype of a workflow node\n * All node subtypes are unified under this single type\n */\nexport type NodeSubType = string;\n/**\n * Trigger subtypes\n */\nexport const NodeSubTypeTriggerStart: NodeSubType = \"triggerStart\";\nexport const NodeSubTypeTriggerEntityRecordCreated: NodeSubType = \"triggerEntityRecordCreated\";\nexport const NodeSubTypeTriggerEntityRecordUpdated: NodeSubType = \"triggerEntityRecordUpdated\";\nexport const NodeSubTypeTriggerEntityRecordDeleted: NodeSubType = \"triggerEntityRecordDeleted\";\nexport const NodeSubTypeTriggerSLAWarning: NodeSubType = \"triggerSLAWarning\";\nexport const NodeSubTypeTriggerSLABreach: NodeSubType = \"triggerSLABreach\";\nexport const NodeSubTypeTriggerEscalation: NodeSubType = \"triggerEscalation\";\nexport const NodeSubTypeTriggerWebhookReceived: NodeSubType = \"triggerWebhookReceived\";\n/**\n * Human action subtypes\n */\nexport const NodeSubTypeHumanActionReview: NodeSubType = \"humanActionReview\"; // review means will be able to edit the fields and move to next node (no approval)\nexport const NodeSubTypeHumanActionApproval: NodeSubType = \"humanActionApproval\"; // approval means will be able to edit the fields and move to next node (with approval)\nexport const NodeSubTypeHumanActionDataEntry: NodeSubType = \"humanActionDataEntry\"; // data entry means will be able to fill the fields and move to next node (no approval)\nexport const NodeSubTypeHumanActionAssignment: NodeSubType = \"humanActionAssignment\"; // assignment means will be able to only assign the task to a user (no approval)\n/**\n * Agent subtypes\n */\nexport const NodeSubTypeAgentChat: NodeSubType = \"agentChat\";\nexport const NodeSubTypeAgentIntentDetector: NodeSubType = \"agentIntentDetector\";\nexport const NodeSubTypeAgentKnowledgeGraph: NodeSubType = \"agentKnowledgeGraph\";\nexport const NodeSubTypeAgentClientApiCall: NodeSubType = \"clientApiCall\";\nexport const NodeSubTypeAgentTransferToHuman: NodeSubType = \"agentTransferToHuman\";\nexport const NodeSubTypeAgentOpenTicket: NodeSubType = \"agentOpenTicket\";\nexport const NodeSubTypeAgentApiIntegration: NodeSubType = \"agentApiIntegration\";\nexport const NodeSubTypeAgentCustomResponse: NodeSubType = \"agentCustomResponse\";\nexport const NodeSubTypeAgentStructuredOutput: NodeSubType = \"agentStructuredOutput\"; // Generic structured output using OpenAI with dynamic input/output schemas\n/**\n * Action subtypes\n */\nexport const NodeSubTypeActionApiCall: NodeSubType = \"actionApiCall\";\nexport const NodeSubTypeActionDocumentExtraction: NodeSubType = \"actionDocumentExtraction\";\nexport const NodeSubTypeActionSendEmail: NodeSubType = \"actionSendEmail\";\nexport const NodeSubTypeActionSendSMS: NodeSubType = \"actionSendSMS\";\nexport const NodeSubTypeActionGenerateDocument: NodeSubType = \"actionGenerateDocument\";\nexport const NodeSubTypeActionProcessPayment: NodeSubType = \"actionProcessPayment\";\nexport const NodeSubTypeActionCreateEntityRecord: NodeSubType = \"actionCreateEntityRecord\";\nexport const NodeSubTypeActionUpdateEntityRecord: NodeSubType = \"actionUpdateEntityRecord\";\nexport const NodeSubTypeActionDeleteEntityRecord: NodeSubType = \"actionDeleteEntityRecord\";\nexport const NodeSubTypeActionMergeEntityRecords: NodeSubType = \"actionMergeEntityRecords\";\nexport const NodeSubTypeActionAssignSLAPolicy: NodeSubType = \"actionAssignSLAPolicy\";\nexport const NodeSubTypeActionChangeSLAStatus: NodeSubType = \"actionChangeSLAAssignmentStatus\";\nexport const NodeSubTypeActionEscalateSLA: NodeSubType = \"actionEscalateSLAAssignment\";\nexport const NodeSubTypeActionCSATSurvey: NodeSubType = \"actionCSATSurvey\";\nexport const NodeSubTypeActionSetVariables: NodeSubType = \"actionSetVariables\"; // Passthrough node that sets variables from config values\nexport const NodeSubTypeActionQueryEntityRecords: NodeSubType = \"actionQueryEntityRecords\"; // Query entity records with filters\nexport const NodeSubTypeActionNatsRequest: NodeSubType = \"actionNatsRequest\"; // Execute a NATS request-reply call\n/**\n * Logic subtypes\n */\nexport const NodeSubTypeLogicIf: NodeSubType = \"logicIf\";\nexport const NodeSubTypeLogicSwitch: NodeSubType = \"logicSwitch\";\nexport const NodeSubTypeLogicFor: NodeSubType = \"logicFor\";\nexport const NodeSubTypeLogicParallel: NodeSubType = \"logicParallel\";\n/**\n * Loop subtypes\n */\nexport const NodeSubTypeLoopData: NodeSubType = \"loopData\";\n/**\n * Delay subtypes\n */\nexport const NodeSubTypeDelay: NodeSubType = \"delay\";\n/**\n * Data subtypes\n */\nexport const NodeSubTypeDataFilter: NodeSubType = \"dataFilter\";\nexport const NodeSubTypeDataMap: NodeSubType = \"dataMap\";\nexport const NodeSubTypeDataCalculate: NodeSubType = \"dataCalculate\";\nexport const NodeSubTypeDataValidate: NodeSubType = \"dataValidate\";\n/**\n * Timer subtypes\n */\nexport const NodeSubTypeTimerDelay: NodeSubType = \"timerDelay\";\nexport const NodeSubTypeTimerSchedule: NodeSubType = \"timerSchedule\";\nexport const NodeSubTypeTimerBusinessHours: NodeSubType = \"timerBusinessHours\";\n/**\n * ExpressionType defines the type of expression evaluation to be used\n */\nexport type ExpressionType = string;\n/**\n * Simple filter-based expressions using predefined operators\n */\nexport const ExpressionTypeFilter: ExpressionType = \"filter\";\n/**\n * JavaScript-like expressions with full language features\n */\nexport const ExpressionTypeJavaScript: ExpressionType = \"javascript\";\n/**\n * Template expressions with variable interpolation\n */\nexport const ExpressionTypeTemplate: ExpressionType = \"template\";\n/**\n * Custom domain-specific language expressions\n */\nexport const ExpressionTypeDSL: ExpressionType = \"dsl\";\n/**\n * Complex rule-based expressions (e.g., business rules)\n */\nexport const ExpressionTypeRules: ExpressionType = \"rules\";\n/**\n * EdgeType defines the type and behavior of workflow edges\n */\nexport type EdgeType = string;\n/**\n * Standard flow between nodes\n */\nexport const EdgeTypeNormal: EdgeType = \"normal\";\n/**\n * Loop back to previous node\n */\nexport const EdgeTypeLoopBack: EdgeType = \"loopBack\";\n/**\n * Error handling path\n */\nexport const EdgeTypeError: EdgeType = \"error\";\n/**\n * Fallback/default path when no other conditions match\n */\nexport const EdgeTypeDefault: EdgeType = \"default\";\n/**\n * Path for parallel execution branch\n */\nexport const EdgeTypeParallel: EdgeType = \"parallel\";\n/**\n * Path for conditional branching\n */\nexport const EdgeTypeConditional: EdgeType = \"conditional\";\n/**\n * Path for merging parallel branches\n */\nexport const EdgeTypeMerge: EdgeType = \"merge\";\n/**\n * Compensating/rollback path\n */\nexport const EdgeTypeCompensation: EdgeType = \"compensation\";\n/**\n * Path for timeout/deadline handling\n */\nexport const EdgeTypeTimeout: EdgeType = \"timeout\";\nexport type WorkflowType = string;\nexport const WorkflowTypeEntity: WorkflowType = \"entity\";\nexport const WorkflowTypeDocument: WorkflowType = \"document\";\nexport const WorkflowTypeChat: WorkflowType = \"chat\";\nexport const WorkflowTypeAgent: WorkflowType = \"agent\";\nexport const WorkflowTypeProductivity: WorkflowType = \"productivity\";\n\n//////////\n// source: node-definitions.go\n\n/**\n * NodeDefinition is the design-time template for creating WorkflowNode instances.\n * This is the single source of truth for all node types in the workflow system.\n * Generated to TypeScript via schema-generator for use in the workflow designer UI.\n */\nexport interface NodeDefinition {\n type: NodeType;\n subType: NodeSubTypeTS;\n label: string;\n icon: string;\n description: string;\n category: string;\n config: JSONSchema;\n input: JSONSchema;\n output: JSONSchema;\n}\n/**\n * EdgeTypeDefinition defines metadata for an edge type\n */\nexport interface EdgeTypeDefinition {\n value: string;\n label: string;\n}\n/**\n * WorkflowTypeDefinition defines metadata for a workflow type\n */\nexport interface WorkflowTypeDefinition {\n value: string;\n label: string;\n}\n\n//////////\n// source: workflow-helper-models.go\n\nexport interface LogicPath {\n id: string;\n nodeId: string;\n condition: string; // \"true\"/\"false\" for if, value for switch\n priority: number /* int */; // For ordering multiple possible paths\n}\nexport interface Intent {\n id: string;\n nodeId: string;\n name: string;\n description: string;\n}\n\n//////////\n// source: workflows-base-models.go\n\nexport interface ResponseMetadata {\n success: boolean;\n timestamp: string /* RFC3339 */;\n message?: string;\n error?: string;\n}\nexport interface Metadata {\n createdBy: string;\n createdAt: string /* RFC3339 */;\n updatedBy?: string;\n updatedAt?: string /* RFC3339 */;\n isActive: boolean;\n version: number /* int */;\n}\nexport interface CreateWorkflowDefinitionRequest {\n definition: WorkflowDefinition;\n orgId: string;\n}\nexport interface UpdateWorkflowDefinitionRequest {\n definition: WorkflowDefinition;\n orgId: string;\n}\nexport interface WorkflowDefinitionResponse {\n definition: WorkflowDefinition;\n metadata: ResponseMetadata;\n}\nexport interface GetWorkflowDefinitionRequest {\n id: string;\n orgId: string;\n}\nexport interface GetWorkflowDefinitionByTitleRequest {\n title: string;\n orgId: string;\n}\nexport interface ListWorkflowDefinitionsRequest {\n orgId: string;\n status?: string; // Optional: active, inactive, etc\n}\nexport interface ListWorkflowDefinitionsResponse {\n definitions: WorkflowDefinition[];\n metadata: ResponseMetadata;\n}\nexport interface DeleteWorkflowDefinitionRequest {\n id: string;\n orgId: string;\n}\n/**\n * Workflow Definition models\n */\nexport interface WorkflowDefinition {\n /**\n * Core Identity\n */\n id?: string /* uuid */;\n title: string;\n description: string;\n type: WorkflowTypeTS; // entity, chat, document, etc.\n /**\n * Graph Structure\n */\n nodes: { [key: string]: WorkflowNode};\n edges: WorkflowEdge[];\n entryPoints: string[]; // List of start node IDs, currently only one\n /**\n * Data Management\n */\n variables: WorkflowVariables;\n constants?: { [key: string]: any};\n /**\n * Runtime Configuration\n */\n persistence?: PersistenceType;\n /**\n * Validation and Constraints\n */\n rules?: WorkflowRule[];\n permissions: WorkflowPermissions;\n /**\n * Metadata and Tracking\n */\n metadata: WorkflowMetadata;\n}\nexport interface WorkflowVariables {\n schema: JSONSchema;\n scope: { [key: string]: string}; // Variable visibility\n defaultValues: { [key: string]: any}; // Default values\n computed: { [key: string]: string}; // Expressions for computed variables\n}\nexport interface WorkflowRule {\n name: string;\n description: string;\n condition: string; // Expression\n action: string; // What to do if condition is met\n level: RuleLevel; // error, warning, info\n}\nexport type RuleLevel = string;\nexport const RuleLevelError: RuleLevel = \"error\";\nexport const RuleLevelWarning: RuleLevel = \"warning\";\nexport const RuleLevelInfo: RuleLevel = \"info\";\nexport interface WorkflowPermissions {\n roles: { [key: string]: string[]}; // Role-based permissions\n accessLevel: string; // public, private, restricted\n editableBy: string[]; // User/Role IDs\n viewableBy: string[]; // User/Role IDs\n}\nexport interface WorkflowMetadata {\n createdBy: string;\n createdAt: string /* RFC3339 */;\n updatedBy?: string;\n updatedAt?: string /* RFC3339 */;\n isActive: boolean;\n version: number /* int */;\n tags?: string[];\n category?: string;\n labels?: string[];\n}\nexport type PersistenceType = string;\nexport const PersistenceTypeEphemeral: PersistenceType = \"ephemeral\";\nexport const PersistenceTypePermanent: PersistenceType = \"permanent\";\n/**\n * todo: validate default values against schema\n */\nexport interface NodeInput {\n schema: JSONSchema;\n defaultValues?: { [key: string]: any};\n}\nexport interface NodeOutput {\n schema: JSONSchema;\n /**\n * Mapping map[string]string `json:\"mapping,omitempty\"`\n */\n values?: { [key: string]: any};\n}\nexport interface NodeConfig {\n schema: JSONSchema; // config schema, the ui must validate against this\n values: { [key: string]: any}; // actual config values\n promoteToVariables?: string[]; // output fields to promote to workflow-level variables\n}\nexport interface WorkflowNode {\n id: string;\n title: string;\n name: string; // ** normalized function name, for example: find_products **\n label?: string;\n description?: string;\n type: WorkflowNodeTypeTS;\n subType?: WorkflowNodeSubTypeTS;\n config: NodeConfig;\n settings: NodeSettings;\n input: NodeInput;\n output: NodeOutput;\n isStart: boolean;\n}\n/**\n * NodeSettings contains type-specific configuration\n */\nexport interface NodeSettings {\n /**\n * Shared configs\n */\n execution?: ExecutionConfig;\n retry?: RetryConfig;\n}\nexport interface ExecutionConfig {\n timeoutSeconds: number /* int */;\n priority: number /* int */;\n subject?: string;\n}\nexport interface RetryConfig {\n maxAttempts: number /* int */;\n initialDelay: any /* time.Duration */;\n maxDelay: any /* time.Duration */;\n backoffMultiplier: number /* float64 */;\n}\n/**\n * CacheConfig defines caching behavior for expression results\n */\nexport interface CacheConfig {\n enabled: boolean;\n ttl: any /* time.Duration */; // How long to cache\n key?: string; // Custom cache key\n tags?: string[];\n}\nexport interface ExpressionConfig {\n type: ExpressionType;\n expression: string;\n variables?: string[]; // Referenced variables\n timeout?: any /* time.Duration */; // Evaluation timeout\n cache?: CacheConfig; // Expression result caching\n}\n/**\n * Example usage in full edge structure\n */\nexport interface WorkflowEdge {\n id: string;\n fromNodeId: string;\n toNodeId: string;\n type: WorkflowEdgeTypeTS;\n label?: string;\n expression?: ExpressionConfig;\n priority: number /* int */;\n retry?: RetryConfig;\n timeout?: TimeoutConfig;\n properties?: { [key: string]: string};\n}\n/**\n * TimeoutConfig defines timeout behavior for nodes and edges\n */\nexport interface TimeoutConfig {\n duration: any /* time.Duration */; // How long to wait\n action: TimeoutAction; // What to do on timeout\n retryPolicy?: RetryConfig; // Optional retry on timeout\n}\nexport type TimeoutAction = string;\nexport const TimeoutActionFail: TimeoutAction = \"fail\"; // Mark as failed\nexport const TimeoutActionSkip: TimeoutAction = \"skip\"; // Skip and continue\nexport const TimeoutActionRetry: TimeoutAction = \"retry\"; // Attempt retry\nexport const TimeoutActionAlt: TimeoutAction = \"alt\"; // Take alternate path\nexport interface CreateWorkflowInstanceRequest {\n orgId: string;\n definitionId: string /* uuid */;\n variables: { [key: string]: any};\n autoExecute: boolean;\n}\nexport interface WorkflowInstanceResponse {\n instance?: WorkflowInstance;\n metadata: ResponseMetadata;\n}\nexport interface WorkflowInstanceExecuteNodeRequest {\n orgId: string;\n instanceId: string /* uuid */;\n nodeId: string;\n input: { [key: string]: any};\n}\nexport interface WorkflowInstanceResumeNodeRequest {\n orgId: string;\n instanceId: string /* uuid */;\n nodeId: string;\n result: { [key: string]: any};\n}\nexport interface WorkflowInstanceExecuteNodeLeanRequest {\n orgId: string;\n nodeDef: WorkflowNode;\n input: { [key: string]: any};\n}\nexport interface UpdateInstanceNodeMetadataRequest {\n orgId: string;\n instanceId: string /* uuid */;\n nodeId: string;\n metadataKey: string;\n payload: any;\n}\nexport interface GetWorkflowInstanceRequest {\n orgId: string;\n instanceId: string /* uuid */;\n}\nexport interface ListWorkflowInstancesRequest {\n orgId: string;\n definitionId: string /* uuid */;\n}\nexport interface ListWorkflowInstancesResponse {\n instances: WorkflowInstance[];\n metadata: ResponseMetadata;\n}\nexport interface UpdateInstanceStatusRequest {\n orgId: string;\n instanceId: string /* uuid */;\n status: InstanceStatus;\n}\nexport interface RetryNodeRequest {\n orgId: string;\n instanceId: string /* uuid */;\n nodeId: string;\n}\nexport interface ListInstancesOptions {\n definitionId: string /* uuid */;\n status: InstanceStatus;\n limit: number /* int */;\n offset: number /* int */;\n}\nexport interface InstanceState {\n variables: { [key: string]: any};\n constants: { [key: string]: any};\n nodeStates: { [key: string]: NodeState};\n edgeStates: { [key: string]: EdgeState};\n}\nexport interface ExecutionContext {\n currentNodes: string[];\n path: ExecutionPathEntry[];\n errors: ExecutionError[];\n}\n/**\n * Workflow Instance models\n */\nexport interface WorkflowInstance {\n id?: string /* uuid */;\n orgId?: string /* uuid */;\n definitionId: string /* uuid */;\n title?: string;\n description?: string;\n type?: WorkflowType;\n definitionVersion: number /* int */;\n status: InstanceStatus;\n state: InstanceState;\n context: ExecutionContext;\n persistence?: PersistenceType;\n metadata: WorkflowMetadata;\n}\nexport interface NodeState {\n status: NodeStatus;\n input?: { [key: string]: any};\n output?: { [key: string]: any};\n /**\n * Variables map[string]interface{} `json:\"variables,omitempty\"`\n */\n error?: string;\n startTime?: string /* RFC3339 */;\n endTime?: string /* RFC3339 */;\n retryCount: number /* int */;\n nextRetryAt?: string /* RFC3339 */;\n}\nexport interface EdgeState {\n status: EdgeStatus;\n timestamp: string /* RFC3339 */;\n error?: string;\n}\nexport interface ExecutionPathEntry {\n nodeId: string;\n edgeId: string;\n type: string; // node_enter, node_exit, edge_traverse\n timestamp: string /* RFC3339 */;\n data?: { [key: string]: any};\n}\nexport interface ExecutionError {\n nodeId?: string;\n edgeId?: string;\n error: string;\n timestamp: string /* RFC3339 */;\n retryable: boolean;\n}\nexport type InstanceStatus = string;\nexport const InstanceStatusNew: InstanceStatus = \"NEW\";\nexport const InstanceStatusRunning: InstanceStatus = \"RUNNING\";\nexport const InstanceStatusWaiting: InstanceStatus = \"WAITING\";\nexport const InstanceStatusPaused: InstanceStatus = \"PAUSED\";\nexport const InstanceStatusCompleted: InstanceStatus = \"COMPLETED\";\nexport const InstanceStatusFailed: InstanceStatus = \"FAILED\";\nexport interface NodeInstance {\n nodeId: string;\n status: NodeStatus;\n input?: { [key: string]: any};\n output?: { [key: string]: any};\n error?: string;\n startTime?: string /* RFC3339 */;\n endTime?: string /* RFC3339 */;\n retryCount: number /* int */;\n nextRetryAt?: string /* RFC3339 */;\n}\nexport type NodeStatus = string;\nexport const NodeStatusPending: NodeStatus = \"PENDING\";\nexport const NodeStatusRunning: NodeStatus = \"RUNNING\";\nexport const NodeStatusCompleted: NodeStatus = \"COMPLETED\";\nexport const NodeStatusFailed: NodeStatus = \"FAILED\";\nexport const NodeStatusWaiting: NodeStatus = \"WAITING\";\nexport const NodeStatusSkipped: NodeStatus = \"SKIPPED\";\nexport type EdgeStatus = string;\nexport const EdgeStatusPending: EdgeStatus = \"PENDING\";\nexport const EdgeStatusCompleted: EdgeStatus = \"COMPLETED\";\nexport const EdgeStatusSkipped: EdgeStatus = \"SKIPPED\";\n/**\n * WorkflowDefinitionInfo holds summarized info about an active workflow definition\n * Used by schedulers and services that need to process workflows without full definition details\n */\nexport interface WorkflowDefinitionInfo {\n id: string; // Workflow definition ID\n orgId: string; // Organization ID\n title: string;\n type: string; // e.g., \"productivity\", \"entity\"\n category: string; // e.g., \"email\" (from metadata)\n isActive: boolean;\n createdBy: string; // User who created this workflow\n /**\n * User config from definition.variables.defaultValues (workflow-specific)\n */\n provider?: string; // e.g., \"google\" or \"microsoft\" for email workflows\n userEmail?: string; // User's email address\n userId?: string; // User ID who owns this workflow\n}\n","// Code generated by tygo. DO NOT EDIT.\n\n//////////\n// source: subjects.go\n\nexport const WorkflowDefinitionCreate = \"workflow.definition.create\";\nexport const WorkflowDefinitionCreated = \"workflow.definition.created\";\nexport const WorkflowDefinitionUpdate = \"workflow.definition.update\";\nexport const WorkflowDefinitionUpdated = \"workflow.definition.updated\";\nexport const WorkflowDefinitionGet = \"workflow.definition.get\";\nexport const WorkflowDefinitionGetServer = \"workflow.definition.get.server\";\nexport const WorkflowDefinitionGetByTitle = \"workflow.definition.get.by.title\";\nexport const WorkflowDefinitionList = \"workflow.definition.list\";\nexport const WorkflowDefinitionDelete = \"workflow.definition.delete\";\nexport const WorkflowDefinitionDeleted = \"workflow.definition.deleted\";\nexport const WorkflowInstanceCreate = \"workflow.instance.create\";\nexport const WorkflowInstanceExecuteNode = \"workflow.instance.execute.node\";\nexport const WorkflowInstanceResumeNode = \"workflow.instance.resume.node\";\nexport const WorkflowInstanceExecuteNodeServer = \"workflow.instance.execute.node.server\";\nexport const WorkflowInstanceResumeNodeServer = \"workflow.instance.resume.node.server\";\nexport const WorkflowInstanceExecuteNodeLean = \"workflow.instance.execute.node.lean\";\nexport const WorkflowInstanceExecuteNodeLeanServer = \"workflow.instance.execute.node.lean.server\";\nexport const WorkflowInstanceGet = \"workflow.instance.get\";\nexport const WorkflowInstanceList = \"workflow.instance.list\";\nexport const WorkflowInstanceUpdate = \"workflow.instance.update\";\nexport const WorkflowInstanceUpdated = \"workflow.instance.updated\";\nexport const WorkflowInstanceUpdateNodeMetadata = \"workflow.instance.update.node.metadata\";\n/**\n * Template management\n */\nexport const WorkflowTemplateList = \"workflow.template.list\";\nexport const WorkflowTemplateGet = \"workflow.template.get\";\nexport const WorkflowTemplateInstantiate = \"workflow.template.instantiate\";\n/**\n * Schedule management\n */\nexport const WorkflowScheduleCreate = \"workflow.schedule.create\";\nexport const WorkflowScheduleUpdate = \"workflow.schedule.update\";\nexport const WorkflowScheduleDelete = \"workflow.schedule.delete\";\nexport const WorkflowScheduleList = \"workflow.schedule.list\";\nexport const WorkflowSchedulePause = \"workflow.schedule.pause\";\nexport const WorkflowScheduleResume = \"workflow.schedule.resume\";\n/**\n * Trigger management\n */\nexport const WorkflowTriggerRegister = \"workflow.trigger.register\";\nexport const WorkflowTriggerPause = \"workflow.trigger.pause\";\nexport const WorkflowTriggerResume = \"workflow.trigger.resume\";\nexport const WorkflowTriggerStatus = \"workflow.trigger.status\";\nexport const WorkflowTriggerFired = \"workflow.trigger.fired\";\n/**\n * Execution events\n */\nexport const WorkflowExecutionStarted = \"workflow.execution.started\";\nexport const WorkflowExecutionCompleted = \"workflow.execution.completed\";\nexport const WorkflowExecutionFailed = \"workflow.execution.failed\";\n","// workflow-definition-slice.ts\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\nimport { WorkflowDefinition } from \"../models\";\n\nexport interface WorkflowDefinitionState {\n definitions: Record<string, WorkflowDefinition>;\n selectedDefinition?: WorkflowDefinition;\n isLoading: boolean;\n error?: string;\n loadingStates: Record<string, boolean>;\n}\n\nexport interface WorkflowDefinitionSelector {\n workflowDefinition: WorkflowDefinitionState;\n}\n\nconst initialState: WorkflowDefinitionState = {\n definitions: {},\n isLoading: false,\n loadingStates: {},\n};\n\nconst workflowDefinitionSlice = createSlice({\n name: \"workflowDefinition\",\n initialState,\n reducers: {\n setLoading: (state, action: PayloadAction<boolean>) => {\n state.isLoading = action.payload;\n },\n setOperationLoading: (\n state,\n action: PayloadAction<{ operation: string; loading: boolean }>\n ) => {\n state.loadingStates[action.payload.operation] = action.payload.loading;\n },\n setError: (state, action: PayloadAction<string | undefined>) => {\n state.error = action.payload;\n },\n setDefinitions: (state, action: PayloadAction<WorkflowDefinition[]>) => {\n state.definitions = action.payload.reduce(\n (acc, def) => {\n if (def.id) {\n acc[def.id] = def;\n }\n return acc;\n },\n {} as Record<string, WorkflowDefinition>\n );\n },\n addDefinition: (state, action: PayloadAction<WorkflowDefinition>) => {\n const definition = action.payload;\n if (definition.id) {\n state.definitions[definition.id] = definition;\n }\n },\n updateDefinition: (state, action: PayloadAction<WorkflowDefinition>) => {\n const definition = action.payload;\n if (definition.id) {\n state.definitions[definition.id] = definition;\n }\n if (state.selectedDefinition?.id === definition.id) {\n state.selectedDefinition = definition;\n }\n },\n removeDefinition: (state, action: PayloadAction<string>) => {\n delete state.definitions[action.payload];\n if (state.selectedDefinition?.id === action.payload) {\n state.selectedDefinition = undefined;\n }\n },\n setSelectedDefinition: (\n state,\n action: PayloadAction<WorkflowDefinition | undefined>\n ) => {\n state.selectedDefinition = action.payload;\n },\n },\n});\n\nexport const {\n setLoading,\n setOperationLoading,\n setError,\n setDefinitions,\n addDefinition,\n updateDefinition,\n removeDefinition,\n setSelectedDefinition,\n} = workflowDefinitionSlice.actions;\n\nexport const workflowDefinitionReducer = workflowDefinitionSlice.reducer;","\"use client\";\n\nimport { useNatsContext } from \"@elqnt/nats\";\nimport { useCallback, useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n CreateWorkflowInstanceRequest,\n GetWorkflowInstanceRequest,\n ListWorkflowInstancesRequest,\n ListWorkflowInstancesResponse,\n UpdateInstanceNodeMetadataRequest,\n WorkflowInstance,\n WorkflowInstanceCreate,\n WorkflowInstanceExecuteNode,\n WorkflowInstanceExecuteNodeRequest,\n WorkflowInstanceGet,\n WorkflowInstanceList,\n WorkflowInstanceResponse,\n WorkflowInstanceResumeNode,\n WorkflowInstanceResumeNodeRequest,\n WorkflowInstanceUpdateNodeMetadata,\n} from \"../models\";\nimport {\n setError,\n setInstances,\n setLoading,\n setOperationLoading,\n setSelectedInstance,\n updateInstance,\n WorkflowInstanceSelector,\n} from \"../store/workflow-instance-slice\";\n\nexport type UseWorkflowInstanceType = {\n // State\n instances: Record<string, WorkflowInstance>;\n selectedInstance?: WorkflowInstance;\n doSetSelectedInstance: (instance: WorkflowInstance | undefined) => void;\n isLoading: boolean;\n loadingStates: Record<string, boolean>;\n error?: string;\n\n // Operations\n loadInstances: (definitionId: string) => Promise<void>;\n loadInstance: (id: string) => Promise<void>;\n getInstance: (id: string) => Promise<WorkflowInstanceResponse>;\n createInstance: (\n definitionId: string,\n variables?: { [key: string]: any }\n ) => Promise<WorkflowInstanceResponse>;\n executeNode: (\n instanceId: string,\n nodeId: string,\n input?: any\n ) => Promise<WorkflowInstanceResponse>;\n\n updateInstanceNodeMetadata: (\n instanceId: string,\n nodeId: string,\n metadataKey: string,\n payload: any\n ) => Promise<WorkflowInstanceResponse>;\n\n resumeInstanceNode: (\n instanceId: string,\n nodeId: string,\n result: { [key: string]: any }\n ) => Promise<WorkflowInstanceResponse>;\n\n // Utilities\n refresh: () => void;\n};\n\nexport interface UseWorkflowInstanceOptions {\n autoLoad?: boolean;\n}\n\nexport function useWorkflowInstance(\n orgId: string | undefined,\n instanceId?: string,\n definitionId?: string,\n options: UseWorkflowInstanceOptions = {}\n): UseWorkflowInstanceType {\n const { autoLoad } = options;\n const { natsConnected, request } = useNatsContext();\n const dispatch = useDispatch();\n\n const instances = useSelector(\n (state: WorkflowInstanceSelector) => state.workflowInstance.instances\n );\n const selectedInstance = useSelector(\n (state: WorkflowInstanceSelector) => state.workflowInstance.selectedInstance\n );\n const isLoading = useSelector(\n (state: WorkflowInstanceSelector) => state.workflowInstance.isLoading\n );\n const loadingStates = useSelector(\n (state: WorkflowInstanceSelector) => state.workflowInstance.loadingStates\n );\n const error = useSelector(\n (state: WorkflowInstanceSelector) => state.workflowInstance.error\n );\n\n const loadInstances = useCallback(\n async (defId: string) => {\n if (!natsConnected || !orgId) return;\n\n const loadingKey = `loadInstances_${defId}`;\n if (loadingStates[loadingKey]) return;\n\n dispatch(setOperationLoading({ operation: loadingKey, loading: true }));\n\n try {\n const response = await request<\n ListWorkflowInstancesRequest,\n ListWorkflowInstancesResponse\n >(WorkflowInstanceList, {\n orgId,\n definitionId: defId,\n });\n\n if (response instanceof Error) {\n dispatch(setError(response.message));\n } else {\n dispatch(setInstances(response?.instances ?? []));\n }\n } catch (err) {\n dispatch(\n setError(err instanceof Error ? err.message : \"Unknown error\")\n );\n } finally {\n dispatch(\n setOperationLoading({ operation: loadingKey, loading: false })\n );\n }\n },\n [natsConnected, orgId, dispatch, request]\n );\n\n const loadInstance = useCallback(\n async (id: string) => {\n if (!natsConnected || !orgId) return;\n\n dispatch(setOperationLoading({ operation: `load_${id}`, loading: true }));\n try {\n const response = await request<\n GetWorkflowInstanceRequest,\n WorkflowInstanceResponse\n >(WorkflowInstanceGet, {\n orgId,\n instanceId: id,\n });\n\n if (response instanceof Error) {\n dispatch(setError(response.message));\n return;\n }\n\n dispatch(setSelectedInstance(response.instance));\n } finally {\n dispatch(\n setOperationLoading({ operation: `load_${id}`, loading: false })\n );\n }\n },\n [natsConnected, orgId, dispatch, request]\n );\n\n const doSetSelectedInstance = useCallback(\n (instance: WorkflowInstance | undefined) => {\n dispatch(setSelectedInstance(instance));\n },\n [dispatch]\n );\n\n const getInstance = async (id: string) => {\n const response = await request<\n GetWorkflowInstanceRequest,\n WorkflowInstanceResponse\n >(WorkflowInstanceGet, {\n orgId: orgId ?? \"\",\n instanceId: id,\n });\n\n return response;\n };\n\n const createInstance = async (\n defId: string,\n variables?: { [key: string]: any }\n ) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(setOperationLoading({ operation: \"create\", loading: true }));\n\n try {\n const response = await request<\n CreateWorkflowInstanceRequest,\n WorkflowInstanceResponse\n >(WorkflowInstanceCreate, {\n orgId,\n definitionId: defId,\n variables: variables ?? {},\n autoExecute: true,\n });\n\n if (response instanceof Error) {\n throw response;\n }\n\n if (response.metadata.success && response.instance) {\n dispatch(updateInstance(response.instance));\n }\n return response;\n } finally {\n dispatch(setOperationLoading({ operation: \"create\", loading: false }));\n }\n };\n\n const executeNode = async (instId: string, nodeId: string, input?: any) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: `execute_${nodeId}`, loading: true })\n );\n try {\n const response = await request<\n WorkflowInstanceExecuteNodeRequest,\n WorkflowInstanceResponse\n >(WorkflowInstanceExecuteNode, {\n orgId,\n instanceId: instId,\n nodeId,\n input,\n });\n\n if (response instanceof Error) {\n throw response;\n }\n\n if (response.metadata.success && response.instance) {\n dispatch(updateInstance(response.instance));\n }\n\n return response;\n } finally {\n dispatch(\n setOperationLoading({ operation: `execute_${nodeId}`, loading: false })\n );\n }\n };\n\n const updateInstanceNodeMetadata = async (\n instanceId: string,\n nodeId: string,\n metadataKey: string,\n payload: any\n ) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: `update_${nodeId}`, loading: true })\n );\n\n try {\n const response = await request<\n UpdateInstanceNodeMetadataRequest,\n WorkflowInstanceResponse\n >(WorkflowInstanceUpdateNodeMetadata, {\n orgId,\n instanceId,\n nodeId,\n metadataKey,\n payload,\n });\n\n if (response instanceof Error) {\n throw response;\n }\n\n if (response.metadata.success && response.instance) {\n dispatch(updateInstance(response.instance));\n }\n\n return response;\n } finally {\n dispatch(\n setOperationLoading({ operation: `update_${nodeId}`, loading: false })\n );\n }\n };\n\n const resumeInstanceNode = async (\n instanceId: string,\n nodeId: string,\n result: { [key: string]: any }\n ) => {\n if (!natsConnected || !orgId) {\n throw new Error(\"Not connected or missing orgId\");\n }\n\n dispatch(\n setOperationLoading({ operation: `update_${nodeId}`, loading: true })\n );\n\n try {\n const response = await request<\n WorkflowInstanceResumeNodeRequest,\n WorkflowInstanceResponse\n >(WorkflowInstanceResumeNode, {\n orgId,\n instanceId,\n nodeId,\n result,\n });\n\n if (response instanceof Error) {\n throw response;\n }\n\n if (response.metadata.success && response.instance) {\n dispatch(updateInstance(response.instance));\n }\n\n return response;\n } finally {\n dispatch(\n setOperationLoading({ operation: `update_${nodeId}`, loading: false })\n );\n }\n };\n\n const refresh = useCallback(() => {\n if (!natsConnected || !orgId) return;\n\n if (instanceId) {\n loadInstance(instanceId);\n } else if (definitionId) {\n dispatch(setLoading(true));\n loadInstances(definitionId).finally(() => dispatch(setLoading(false)));\n }\n }, [natsConnected, orgId, instanceId, definitionId, loadInstance, dispatch]);\n\n useEffect(() => {\n let mounted = true;\n\n if (autoLoad && natsConnected && orgId && mounted) {\n if (instanceId) {\n loadInstance(instanceId);\n } else if (definitionId) {\n loadInstances(definitionId);\n }\n }\n\n return () => {\n mounted = false;\n };\n }, [autoLoad, natsConnected, orgId, instanceId, definitionId]);\n\n return {\n // State\n instances,\n selectedInstance,\n doSetSelectedInstance,\n isLoading,\n loadingStates,\n error,\n\n // Operations\n loadInstances,\n loadInstance,\n getInstance,\n createInstance,\n executeNode,\n updateInstanceNodeMetadata,\n resumeInstanceNode,\n // Utilities\n refresh,\n };\n}\n","// workflow-instance-slice.ts\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\nimport { WorkflowInstance } from \"../models\";\n\nexport interface WorkflowInstanceState {\n instances: Record<string, WorkflowInstance>;\n selectedInstance?: WorkflowInstance;\n isLoading: boolean;\n error?: string;\n loadingStates: Record<string, boolean>;\n}\n\nexport interface WorkflowInstanceSelector {\n workflowInstance: WorkflowInstanceState;\n}\n\nconst initialState: WorkflowInstanceState = {\n instances: {},\n isLoading: false,\n loadingStates: {},\n};\n\nconst workflowInstanceSlice = createSlice({\n name: \"workflowInstance\",\n initialState,\n reducers: {\n setLoading: (state, action: PayloadAction<boolean>) => {\n state.isLoading = action.payload;\n },\n setOperationLoading: (\n state,\n action: PayloadAction<{ operation: string; loading: boolean }>\n ) => {\n state.loadingStates[action.payload.operation] = action.payload.loading;\n },\n setError: (state, action: PayloadAction<string | undefined>) => {\n state.error = action.payload;\n },\n setInstances: (state, action: PayloadAction<WorkflowInstance[]>) => {\n state.instances = action.payload.reduce(\n (acc, inst) => {\n if (inst.id) {\n acc[inst.id] = inst;\n }\n return acc;\n },\n {} as Record<string, WorkflowInstance>\n );\n },\n updateInstance: (state, action: PayloadAction<WorkflowInstance>) => {\n const instance = action.payload;\n if (instance.id) {\n state.instances[instance.id] = instance;\n }\n if (state.selectedInstance?.id === instance.id) {\n state.selectedInstance = instance;\n }\n },\n setSelectedInstance: (\n state,\n action: PayloadAction<WorkflowInstance | undefined>\n ) => {\n state.selectedInstance = action.payload;\n },\n },\n});\n\nexport const {\n setLoading,\n setOperationLoading,\n setError,\n setInstances,\n updateInstance,\n setSelectedInstance,\n} = workflowInstanceSlice.actions;\n\nexport const workflowInstanceReducer = workflowInstanceSlice.reducer;","\"use client\";\n\nimport React, { createContext, useContext, useMemo } from \"react\";\nimport {\n useWorkflowInstance,\n UseWorkflowInstanceOptions,\n UseWorkflowInstanceType,\n} from \"../hooks\";\n\nexport const WorkflowInstanceContext = createContext<\n UseWorkflowInstanceType | undefined\n>(undefined);\n\nexport interface WorkflowInstanceProviderProps {\n children: React.ReactNode;\n orgId: string;\n instanceId?: string;\n definitionId?: string;\n options?: UseWorkflowInstanceOptions;\n}\n\nexport function WorkflowInstanceProvider({\n children,\n orgId,\n instanceId,\n definitionId,\n options = {},\n}: WorkflowInstanceProviderProps) {\n const hookValue = useWorkflowInstance(\n orgId,\n instanceId,\n definitionId,\n options\n );\n const value = useMemo(() => hookValue, [hookValue]);\n\n return (\n <WorkflowInstanceContext.Provider value={value}>\n {children}\n </WorkflowInstanceContext.Provider>\n );\n}\n\nexport function useWorkflowInstanceContext() {\n const context = useContext(WorkflowInstanceContext);\n\n if (!context) {\n throw new Error(\n \"useWorkflowInstanceContext must be used within an WorkflowInstanceProvider\"\n );\n }\n\n return context;\n}\n","// Generated file - DO NOT EDIT\n\nimport { JSONSchema } from \"@elqnt/types\";\nimport { NodeType, NodeDefinition, EdgeTypeDefinition, WorkflowTypeDefinition } from \"../models/workflow\";\n\n// Type-safe NodeSubType union (generated from Go NodeDefinitions)\nexport type NodeSubTypeTS = \"actionAIClassify\" | \"actionAIExtractData\" | \"actionAISummarize\" | \"actionApiCall\" | \"actionAssignSLAPolicy\" | \"actionCreateEntityRecord\" | \"actionDeleteEntityRecord\" | \"actionDocumentExtraction\" | \"actionNatsRequest\" | \"actionQueryEntityRecords\" | \"actionSendEmail\" | \"actionSendSMS\" | \"actionSetVariables\" | \"actionUpdateEntityRecord\" | \"agentChat\" | \"agentCustomResponse\" | \"agentIntentDetector\" | \"agentKnowledgeGraph\" | \"agentOpenTicket\" | \"agentStructuredOutput\" | \"agentTransferToHuman\" | \"delay\" | \"humanActionApproval\" | \"humanActionAssignment\" | \"humanActionDataEntry\" | \"humanActionReview\" | \"integrationCreateEvent\" | \"integrationGetDriveFile\" | \"integrationSearchCalendar\" | \"integrationSearchDrive\" | \"integrationSearchEmails\" | \"integrationSendEmail\" | \"logicFor\" | \"logicIf\" | \"logicSwitch\" | \"triggerCalendarEvent\" | \"triggerDriveFileChanged\" | \"triggerEmailReceived\" | \"triggerEntityRecordCreated\" | \"triggerEntityRecordDeleted\" | \"triggerEntityRecordUpdated\" | \"triggerEscalation\" | \"triggerSLABreach\" | \"triggerSLAWarning\" | \"triggerSchedule\" | \"triggerStart\" | \"triggerWebhookReceived\";\n\nexport interface NodeSubTypeInfo {\n value: string;\n label: string;\n icon: string;\n description: string;\n}\n\nexport const nodeDefinitions: Record<string, NodeDefinition> = {\n \"actionAIClassify\": {\n \"type\": \"agent\",\n \"subType\": \"actionAIClassify\",\n \"label\": \"AI Classify\",\n \"icon\": \"Tags\",\n \"description\": \"Classify content into categories using AI\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"AI Classify\",\n \"properties\": {\n \"categories\": {\n \"type\": \"array\",\n \"title\": \"Categories\",\n \"description\": \"List of possible categories\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"content\": {\n \"type\": \"string\",\n \"title\": \"Content\",\n \"format\": \"multiline\"\n },\n \"instructions\": {\n \"type\": \"string\",\n \"title\": \"Additional Instructions\",\n \"format\": \"multiline\"\n },\n \"multiLabel\": {\n \"type\": \"boolean\",\n \"title\": \"Allow Multiple Labels\",\n \"description\": \"Can content belong to multiple categories?\",\n \"default\": false\n }\n },\n \"required\": [\n \"content\",\n \"categories\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"categories\": {\n \"type\": \"array\",\n \"title\": \"Categories\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"category\": {\n \"type\": \"string\",\n \"title\": \"Primary Category\"\n },\n \"confidence\": {\n \"type\": \"number\",\n \"title\": \"Confidence\",\n \"minimum\": 0,\n \"maximum\": 1\n },\n \"reasoning\": {\n \"type\": \"string\",\n \"title\": \"Reasoning\"\n }\n }\n }\n },\n \"actionAIExtractData\": {\n \"type\": \"agent\",\n \"subType\": \"actionAIExtractData\",\n \"label\": \"AI Extract Data\",\n \"icon\": \"FileSearch\",\n \"description\": \"Extract structured data from unstructured content\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"AI Extract Data\",\n \"properties\": {\n \"content\": {\n \"type\": \"string\",\n \"title\": \"Content\",\n \"format\": \"multiline\"\n },\n \"extractionSchema\": {\n \"type\": \"object\",\n \"title\": \"Extraction Schema\",\n \"description\": \"JSON Schema defining what to extract\"\n },\n \"instructions\": {\n \"type\": \"string\",\n \"title\": \"Instructions\",\n \"format\": \"multiline\"\n }\n },\n \"required\": [\n \"content\",\n \"extractionSchema\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"description\": \"Extracted data matching the schema\"\n }\n },\n \"actionAISummarize\": {\n \"type\": \"agent\",\n \"subType\": \"actionAISummarize\",\n \"label\": \"AI Summarize\",\n \"icon\": \"FileText\",\n \"description\": \"Summarize text content using AI\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"AI Summarize\",\n \"properties\": {\n \"content\": {\n \"type\": \"string\",\n \"title\": \"Content\",\n \"description\": \"Text to summarize (supports {{variables}})\",\n \"format\": \"multiline\"\n },\n \"focusOn\": {\n \"type\": \"string\",\n \"title\": \"Focus On\",\n \"description\": \"Optional: specific aspects to focus on\"\n },\n \"maxLength\": {\n \"type\": \"integer\",\n \"title\": \"Max Length (words)\",\n \"minimum\": 10,\n \"maximum\": 1000\n },\n \"style\": {\n \"type\": \"string\",\n \"title\": \"Style\",\n \"default\": \"brief\",\n \"enum\": [\n \"brief\",\n \"detailed\",\n \"bullet_points\",\n \"executive\"\n ],\n \"x-enumLabels\": [\n \"Brief (1-2 sentences)\",\n \"Detailed\",\n \"Bullet Points\",\n \"Executive Summary\"\n ]\n }\n },\n \"required\": [\n \"content\",\n \"style\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"keyPoints\": {\n \"type\": \"array\",\n \"title\": \"Key Points\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"summary\": {\n \"type\": \"string\",\n \"title\": \"Summary\"\n },\n \"wordCount\": {\n \"type\": \"integer\",\n \"title\": \"Word Count\"\n }\n }\n }\n },\n \"actionApiCall\": {\n \"type\": \"action\",\n \"subType\": \"actionApiCall\",\n \"label\": \"API Call\",\n \"icon\": \"Globe\",\n \"description\": \"Make HTTP API requests\",\n \"category\": \"Integration\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"API Call\",\n \"properties\": {\n \"authorization\": {\n \"type\": \"string\",\n \"title\": \"Authorization\",\n \"x-displayOrder\": 5\n },\n \"callbackTimeout\": {\n \"type\": \"integer\",\n \"title\": \"Callback Timeout (ms)\",\n \"description\": \"For async mode only\",\n \"x-displayOrder\": 9\n },\n \"headers\": {\n \"type\": \"object\",\n \"title\": \"Headers\",\n \"x-displayOrder\": 4\n },\n \"method\": {\n \"type\": \"string\",\n \"title\": \"HTTP Method\",\n \"enum\": [\n \"GET\",\n \"POST\",\n \"PUT\",\n \"DELETE\",\n \"PATCH\"\n ],\n \"x-displayOrder\": 3\n },\n \"mode\": {\n \"type\": \"string\",\n \"title\": \"Mode\",\n \"enum\": [\n \"sync\",\n \"async\"\n ],\n \"x-enumLabels\": [\n \"Synchronous\",\n \"Asynchronous (Callback)\"\n ],\n \"x-displayOrder\": 1\n },\n \"retryCount\": {\n \"type\": \"integer\",\n \"title\": \"Retry Count\",\n \"minimum\": 0,\n \"maximum\": 5,\n \"x-displayOrder\": 7\n },\n \"retryDelay\": {\n \"type\": \"integer\",\n \"title\": \"Retry Delay (ms)\",\n \"minimum\": 100,\n \"x-displayOrder\": 8\n },\n \"timeout\": {\n \"type\": \"integer\",\n \"title\": \"Timeout (ms)\",\n \"minimum\": 1000,\n \"maximum\": 300000,\n \"x-displayOrder\": 6\n },\n \"url\": {\n \"type\": \"string\",\n \"title\": \"URL\",\n \"x-displayOrder\": 2\n }\n },\n \"required\": [\n \"url\",\n \"method\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"actionAssignSLAPolicy\": {\n \"type\": \"action\",\n \"subType\": \"actionAssignSLAPolicy\",\n \"label\": \"Assign SLA Policy\",\n \"icon\": \"Clock\",\n \"description\": \"Assign an SLA policy to a record\",\n \"category\": \"Data Operations\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Assign SLA Policy\",\n \"properties\": {\n \"entityRecordIdExpr\": {\n \"type\": \"string\",\n \"title\": \"Entity Record ID\"\n },\n \"policyId\": {\n \"type\": \"string\",\n \"title\": \"Policy ID\"\n }\n },\n \"required\": [\n \"policyId\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"assignmentId\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"actionCreateEntityRecord\": {\n \"type\": \"action\",\n \"subType\": \"actionCreateEntityRecord\",\n \"label\": \"Create Entity Record\",\n \"icon\": \"FilePlus\",\n \"description\": \"Create a new entity record\",\n \"category\": \"Data Operations\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Create Entity Record\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n },\n \"fields\": {\n \"type\": \"object\",\n \"title\": \"Field Values\"\n }\n },\n \"required\": [\n \"entityName\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"recordId\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"actionDeleteEntityRecord\": {\n \"type\": \"action\",\n \"subType\": \"actionDeleteEntityRecord\",\n \"label\": \"Delete Entity Record\",\n \"icon\": \"FileX\",\n \"description\": \"Delete an entity record\",\n \"category\": \"Data Operations\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Delete Entity Record\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n },\n \"recordIdExpr\": {\n \"type\": \"string\",\n \"title\": \"Record ID Expression\"\n }\n },\n \"required\": [\n \"entityName\",\n \"recordIdExpr\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"deleted\": {\n \"type\": \"boolean\"\n }\n }\n }\n },\n \"actionDocumentExtraction\": {\n \"type\": \"action\",\n \"subType\": \"actionDocumentExtraction\",\n \"label\": \"Document Extraction\",\n \"icon\": \"FileSearch\",\n \"description\": \"Extract data from documents using AI\",\n \"category\": \"Data Processing\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Document Extraction\",\n \"properties\": {\n \"documentType\": {\n \"type\": \"string\",\n \"title\": \"Document Type\"\n },\n \"instructions\": {\n \"type\": \"string\",\n \"title\": \"Instructions\",\n \"format\": \"multiline\"\n }\n },\n \"required\": [\n \"instructions\",\n \"documentType\"\n ]\n },\n \"input\": {\n \"type\": \"object\",\n \"properties\": {\n \"fileUrl\": {\n \"type\": \"string\"\n }\n }\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"actionNatsRequest\": {\n \"type\": \"action\",\n \"subType\": \"actionNatsRequest\",\n \"label\": \"NATS Request\",\n \"icon\": \"Send\",\n \"description\": \"Execute a NATS request-reply call with dynamic subject routing\",\n \"category\": \"Integration\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"NATS Request\",\n \"properties\": {\n \"actionTypeField\": {\n \"type\": \"string\",\n \"title\": \"Action Type Field\",\n \"description\": \"Dot-notation path to get action type from input (e.g., \\\"human_review.selectedAction.type\\\")\"\n },\n \"payloadTemplate\": {\n \"type\": \"object\",\n \"title\": \"Payload Template\",\n \"description\": \"JSON payload with {{variable}} interpolation\"\n },\n \"subjectMapping\": {\n \"type\": \"object\",\n \"title\": \"Subject Mapping\",\n \"description\": \"Map action types to NATS subjects (e.g., {\\\"reply\\\": \\\"hub.integration.email.send\\\"})\"\n },\n \"timeoutSeconds\": {\n \"type\": \"integer\",\n \"title\": \"Timeout (seconds)\",\n \"default\": 30,\n \"minimum\": 1,\n \"maximum\": 300\n }\n }\n },\n \"input\": {\n \"type\": \"object\",\n \"properties\": {\n \"subject\": {\n \"type\": \"string\",\n \"title\": \"NATS Subject\",\n \"description\": \"Direct NATS subject (alternative to subjectMapping)\"\n }\n }\n },\n \"output\": {\n \"type\": \"object\",\n \"description\": \"Response from NATS service\",\n \"properties\": {\n \"_actionType\": {\n \"type\": \"string\",\n \"title\": \"Action Type\",\n \"description\": \"The action type that was used (if subjectMapping was used)\"\n },\n \"_executedSubject\": {\n \"type\": \"string\",\n \"title\": \"Executed Subject\",\n \"description\": \"The NATS subject that was called\"\n }\n }\n }\n },\n \"actionQueryEntityRecords\": {\n \"type\": \"action\",\n \"subType\": \"actionQueryEntityRecords\",\n \"label\": \"Query Entity Records\",\n \"icon\": \"Search\",\n \"description\": \"Query entity records with filters\",\n \"category\": \"Data Operations\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Query Entity Records\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\",\n \"description\": \"Name of the entity to query\"\n },\n \"filters\": {\n \"type\": \"object\",\n \"title\": \"Filters\",\n \"description\": \"Field filters (e.g., {\\\"status\\\": \\\"open\\\"})\"\n },\n \"page\": {\n \"type\": \"integer\",\n \"title\": \"Page\",\n \"description\": \"Page number (default: 1)\",\n \"minimum\": 1\n },\n \"pageSize\": {\n \"type\": \"integer\",\n \"title\": \"Page Size\",\n \"description\": \"Records per page (default: 10)\",\n \"minimum\": 1,\n \"maximum\": 100\n },\n \"sortBy\": {\n \"type\": \"string\",\n \"title\": \"Sort By\",\n \"description\": \"Field to sort by\"\n },\n \"sortOrder\": {\n \"type\": \"integer\",\n \"title\": \"Sort Order\",\n \"description\": \"1 for ascending, -1 for descending\",\n \"enum\": [\n 1,\n -1\n ]\n }\n },\n \"required\": [\n \"entityName\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"page\": {\n \"type\": \"integer\",\n \"title\": \"Current Page\"\n },\n \"pageSize\": {\n \"type\": \"integer\",\n \"title\": \"Page Size\"\n },\n \"records\": {\n \"type\": \"array\",\n \"title\": \"Records\",\n \"description\": \"Array of matching entity records\",\n \"items\": {\n \"type\": \"object\"\n }\n },\n \"totalCount\": {\n \"type\": \"integer\",\n \"title\": \"Total Count\",\n \"description\": \"Total number of matching records\"\n },\n \"totalPages\": {\n \"type\": \"integer\",\n \"title\": \"Total Pages\"\n }\n }\n }\n },\n \"actionSendEmail\": {\n \"type\": \"action\",\n \"subType\": \"actionSendEmail\",\n \"label\": \"Send Email\",\n \"icon\": \"Mail\",\n \"description\": \"Send an email notification\",\n \"category\": \"Communication\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Send Email\",\n \"properties\": {\n \"bcc\": {\n \"type\": \"string\",\n \"title\": \"BCC\"\n },\n \"body\": {\n \"type\": \"string\",\n \"title\": \"Body\",\n \"format\": \"multiline\"\n },\n \"cc\": {\n \"type\": \"string\",\n \"title\": \"CC\"\n },\n \"from\": {\n \"type\": \"string\",\n \"title\": \"From\",\n \"description\": \"Sender email address (must be verified in SES)\"\n },\n \"subject\": {\n \"type\": \"string\",\n \"title\": \"Subject\"\n },\n \"template\": {\n \"type\": \"string\",\n \"title\": \"Template\",\n \"enum\": [\n \"welcome\",\n \"notification\",\n \"confirmation\",\n \"custom\"\n ],\n \"x-enumLabels\": [\n \"Welcome Email\",\n \"Notification\",\n \"Confirmation\",\n \"Custom\"\n ]\n },\n \"to\": {\n \"type\": \"string\",\n \"title\": \"To\"\n }\n },\n \"required\": [\n \"from\",\n \"to\",\n \"subject\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"emailSent\": {\n \"type\": \"boolean\"\n }\n }\n }\n },\n \"actionSendSMS\": {\n \"type\": \"action\",\n \"subType\": \"actionSendSMS\",\n \"label\": \"Send SMS\",\n \"icon\": \"Smartphone\",\n \"description\": \"Send an SMS message\",\n \"category\": \"Communication\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Send SMS\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\",\n \"title\": \"Message\",\n \"format\": \"multiline\"\n },\n \"to\": {\n \"type\": \"string\",\n \"title\": \"Phone Number\"\n }\n },\n \"required\": [\n \"to\",\n \"message\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"smsSent\": {\n \"type\": \"boolean\"\n }\n }\n }\n },\n \"actionSetVariables\": {\n \"type\": \"action\",\n \"subType\": \"actionSetVariables\",\n \"label\": \"Set Variables\",\n \"icon\": \"Variable\",\n \"description\": \"Set workflow variables\",\n \"category\": \"Data Operations\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Set Variables\"\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"actionUpdateEntityRecord\": {\n \"type\": \"action\",\n \"subType\": \"actionUpdateEntityRecord\",\n \"label\": \"Update Entity Record\",\n \"icon\": \"FileEdit\",\n \"description\": \"Update an existing entity record\",\n \"category\": \"Data Operations\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Update Entity Record\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n },\n \"fields\": {\n \"type\": \"object\",\n \"title\": \"Field Updates\"\n },\n \"recordIdExpr\": {\n \"type\": \"string\",\n \"title\": \"Record ID Expression\"\n }\n },\n \"required\": [\n \"entityName\",\n \"recordIdExpr\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"updated\": {\n \"type\": \"boolean\"\n }\n }\n }\n },\n \"agentChat\": {\n \"type\": \"agent\",\n \"subType\": \"agentChat\",\n \"label\": \"Chat\",\n \"icon\": \"MessageSquare\",\n \"description\": \"AI chat interaction\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Chat\",\n \"properties\": {\n \"maxTokens\": {\n \"type\": \"integer\",\n \"title\": \"Max Tokens\",\n \"minimum\": 1,\n \"maximum\": 4096\n },\n \"model\": {\n \"type\": \"string\",\n \"title\": \"Model\",\n \"enum\": [\n \"gpt-4\",\n \"gpt-4-turbo\",\n \"gpt-3.5-turbo\",\n \"claude-3-opus\",\n \"claude-3-sonnet\"\n ],\n \"x-enumLabels\": [\n \"GPT-4\",\n \"GPT-4 Turbo\",\n \"GPT-3.5 Turbo\",\n \"Claude 3 Opus\",\n \"Claude 3 Sonnet\"\n ]\n },\n \"systemPrompt\": {\n \"type\": \"string\",\n \"title\": \"System Prompt\",\n \"format\": \"multiline\"\n },\n \"temperature\": {\n \"type\": \"number\",\n \"title\": \"Temperature\",\n \"minimum\": 0,\n \"maximum\": 2\n }\n },\n \"required\": [\n \"systemPrompt\",\n \"model\"\n ]\n },\n \"input\": {\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\"\n }\n }\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"agentCustomResponse\": {\n \"type\": \"agent\",\n \"subType\": \"agentCustomResponse\",\n \"label\": \"Custom Response\",\n \"icon\": \"MessageCircle\",\n \"description\": \"Send a custom response message\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Custom Response\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\",\n \"title\": \"Response Message\",\n \"format\": \"multiline\"\n }\n },\n \"required\": [\n \"message\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"agentIntentDetector\": {\n \"type\": \"agent\",\n \"subType\": \"agentIntentDetector\",\n \"label\": \"Intent Detector\",\n \"icon\": \"Target\",\n \"description\": \"Detect user intent from message\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Intent Detector\",\n \"properties\": {\n \"intents\": {\n \"type\": \"array\",\n \"title\": \"Intents\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"title\": \"Description\"\n },\n \"id\": {\n \"type\": \"string\",\n \"title\": \"ID\"\n },\n \"name\": {\n \"type\": \"string\",\n \"title\": \"Name\"\n },\n \"nodeId\": {\n \"type\": \"string\",\n \"title\": \"Target Node ID\"\n }\n }\n }\n }\n },\n \"required\": [\n \"intents\"\n ]\n },\n \"input\": {\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\"\n }\n }\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"confidence\": {\n \"type\": \"number\"\n },\n \"intent\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"agentKnowledgeGraph\": {\n \"type\": \"agent\",\n \"subType\": \"agentKnowledgeGraph\",\n \"label\": \"Knowledge Graph\",\n \"icon\": \"Network\",\n \"description\": \"Query knowledge graph for information\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Knowledge Graph\",\n \"properties\": {\n \"fields\": {\n \"type\": \"array\",\n \"title\": \"Fields\",\n \"items\": {\n \"type\": \"object\"\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"title\": \"Label\"\n }\n },\n \"required\": [\n \"label\"\n ]\n },\n \"input\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\"\n }\n }\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"kg_response\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\"\n }\n }\n }\n }\n },\n \"agentOpenTicket\": {\n \"type\": \"agent\",\n \"subType\": \"agentOpenTicket\",\n \"label\": \"Open Ticket\",\n \"icon\": \"Ticket\",\n \"description\": \"Create a support ticket\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Open Ticket\",\n \"properties\": {\n \"priority\": {\n \"type\": \"string\",\n \"title\": \"Priority\",\n \"enum\": [\n \"low\",\n \"medium\",\n \"high\",\n \"urgent\"\n ]\n },\n \"ticketType\": {\n \"type\": \"string\",\n \"title\": \"Ticket Type\"\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"ticketId\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"agentStructuredOutput\": {\n \"type\": \"agent\",\n \"subType\": \"agentStructuredOutput\",\n \"label\": \"Structured Output\",\n \"icon\": \"Brain\",\n \"description\": \"AI-powered structured data extraction\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Structured Output\",\n \"properties\": {\n \"inputTemplate\": {\n \"type\": \"string\",\n \"title\": \"Input Template\",\n \"format\": \"multiline\"\n },\n \"instructions\": {\n \"type\": \"string\",\n \"title\": \"Instructions\",\n \"format\": \"multiline\"\n },\n \"model\": {\n \"type\": \"string\",\n \"title\": \"Model\"\n },\n \"systemPrompt\": {\n \"type\": \"string\",\n \"title\": \"System Prompt\",\n \"format\": \"multiline\"\n },\n \"temperature\": {\n \"type\": \"number\",\n \"title\": \"Temperature\",\n \"minimum\": 0,\n \"maximum\": 2\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"agentTransferToHuman\": {\n \"type\": \"agent\",\n \"subType\": \"agentTransferToHuman\",\n \"label\": \"Transfer to Human\",\n \"icon\": \"UserCheck\",\n \"description\": \"Transfer conversation to human agent\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Transfer to Human\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\",\n \"title\": \"Transfer Message\",\n \"format\": \"multiline\"\n },\n \"queueId\": {\n \"type\": \"string\",\n \"title\": \"Queue ID\"\n }\n },\n \"required\": [\n \"message\",\n \"queueId\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"delay\": {\n \"type\": \"delay\",\n \"subType\": \"delay\",\n \"label\": \"Delay\",\n \"icon\": \"Clock\",\n \"description\": \"Wait for a specified duration\",\n \"category\": \"Time \\u0026 Scheduling\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Delay\",\n \"properties\": {\n \"duration\": {\n \"type\": \"integer\",\n \"title\": \"Duration\",\n \"minimum\": 1\n },\n \"unit\": {\n \"type\": \"string\",\n \"title\": \"Unit\",\n \"enum\": [\n \"seconds\",\n \"minutes\",\n \"hours\",\n \"days\"\n ],\n \"x-enumLabels\": [\n \"Seconds\",\n \"Minutes\",\n \"Hours\",\n \"Days\"\n ]\n }\n },\n \"required\": [\n \"duration\",\n \"unit\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"humanActionApproval\": {\n \"type\": \"humanAction\",\n \"subType\": \"humanActionApproval\",\n \"label\": \"Approval\",\n \"icon\": \"CheckCircle\",\n \"description\": \"Request human approval\",\n \"category\": \"User Interaction\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Approval\",\n \"properties\": {\n \"allowEdit\": {\n \"type\": \"boolean\",\n \"title\": \"Allow Edit\"\n },\n \"assignTo\": {\n \"type\": \"string\",\n \"title\": \"Assign To\"\n },\n \"dueInHours\": {\n \"type\": \"integer\",\n \"title\": \"Due In (Hours)\",\n \"minimum\": 1\n },\n \"instructions\": {\n \"type\": \"string\",\n \"title\": \"Instructions\",\n \"format\": \"multiline\"\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"decision\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"humanActionAssignment\": {\n \"type\": \"humanAction\",\n \"subType\": \"humanActionAssignment\",\n \"label\": \"Task Assignment\",\n \"icon\": \"UserPlus\",\n \"description\": \"Assign a task to a user\",\n \"category\": \"User Interaction\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Task Assignment\",\n \"properties\": {\n \"assignTo\": {\n \"type\": \"string\",\n \"title\": \"Assign To\"\n },\n \"dueInHours\": {\n \"type\": \"integer\",\n \"title\": \"Due In (Hours)\",\n \"minimum\": 1\n },\n \"priority\": {\n \"type\": \"string\",\n \"title\": \"Priority\",\n \"enum\": [\n \"low\",\n \"medium\",\n \"high\",\n \"urgent\"\n ],\n \"x-enumLabels\": [\n \"Low\",\n \"Medium\",\n \"High\",\n \"Urgent\"\n ]\n },\n \"taskDescription\": {\n \"type\": \"string\",\n \"title\": \"Task Description\",\n \"format\": \"multiline\"\n },\n \"taskTitle\": {\n \"type\": \"string\",\n \"title\": \"Task Title\"\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"humanActionDataEntry\": {\n \"type\": \"humanAction\",\n \"subType\": \"humanActionDataEntry\",\n \"label\": \"Data Entry\",\n \"icon\": \"FormInput\",\n \"description\": \"Request human data entry\",\n \"category\": \"User Interaction\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Data Entry\",\n \"properties\": {\n \"assignTo\": {\n \"type\": \"string\",\n \"title\": \"Assign To\"\n },\n \"formSchema\": {\n \"type\": \"object\",\n \"title\": \"Form Schema\"\n },\n \"instructions\": {\n \"type\": \"string\",\n \"title\": \"Instructions\",\n \"format\": \"multiline\"\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"humanActionReview\": {\n \"type\": \"humanAction\",\n \"subType\": \"humanActionReview\",\n \"label\": \"Review\",\n \"icon\": \"Eye\",\n \"description\": \"Request human review\",\n \"category\": \"User Interaction\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Review\",\n \"properties\": {\n \"assignTo\": {\n \"type\": \"string\",\n \"title\": \"Assign To\"\n },\n \"dueInHours\": {\n \"type\": \"integer\",\n \"title\": \"Due In (Hours)\",\n \"minimum\": 1\n },\n \"editableFields\": {\n \"type\": \"array\",\n \"title\": \"Editable Fields\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"instructions\": {\n \"type\": \"string\",\n \"title\": \"Instructions\",\n \"format\": \"multiline\"\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"decision\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"integrationCreateEvent\": {\n \"type\": \"integration\",\n \"subType\": \"integrationCreateEvent\",\n \"label\": \"Create Calendar Event\",\n \"icon\": \"CalendarPlus\",\n \"description\": \"Create event in user's calendar\",\n \"category\": \"Integration\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Create Calendar Event\",\n \"properties\": {\n \"attendees\": {\n \"type\": \"string\",\n \"title\": \"Attendees\",\n \"description\": \"Comma-separated email addresses\"\n },\n \"description\": {\n \"type\": \"string\",\n \"title\": \"Description\",\n \"format\": \"multiline\"\n },\n \"endTime\": {\n \"type\": \"string\",\n \"title\": \"End Time\",\n \"format\": \"date-time\"\n },\n \"location\": {\n \"type\": \"string\",\n \"title\": \"Location\"\n },\n \"sendInvites\": {\n \"type\": \"boolean\",\n \"title\": \"Send Calendar Invites\",\n \"default\": true\n },\n \"startTime\": {\n \"type\": \"string\",\n \"title\": \"Start Time\",\n \"format\": \"date-time\"\n },\n \"title\": {\n \"type\": \"string\",\n \"title\": \"Title\"\n }\n },\n \"required\": [\n \"title\",\n \"startTime\",\n \"endTime\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"created\": {\n \"type\": \"boolean\",\n \"title\": \"Created\"\n },\n \"eventId\": {\n \"type\": \"string\",\n \"title\": \"Event ID\"\n },\n \"eventUrl\": {\n \"type\": \"string\",\n \"title\": \"Event URL\"\n }\n }\n }\n },\n \"integrationGetDriveFile\": {\n \"type\": \"integration\",\n \"subType\": \"integrationGetDriveFile\",\n \"label\": \"Get Drive File\",\n \"icon\": \"File\",\n \"description\": \"Get details of a specific file\",\n \"category\": \"Integration\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Get Drive File\",\n \"properties\": {\n \"fileId\": {\n \"type\": \"string\",\n \"title\": \"File ID\"\n }\n },\n \"required\": [\n \"fileId\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"file\": {\n \"type\": \"object\",\n \"properties\": {\n \"downloadUrl\": {\n \"type\": \"string\",\n \"title\": \"Download URL\"\n },\n \"id\": {\n \"type\": \"string\",\n \"title\": \"File ID\"\n },\n \"mimeType\": {\n \"type\": \"string\",\n \"title\": \"MIME Type\"\n },\n \"name\": {\n \"type\": \"string\",\n \"title\": \"Name\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"title\": \"Size (bytes)\"\n },\n \"webLink\": {\n \"type\": \"string\",\n \"title\": \"Web Link\"\n }\n }\n }\n }\n }\n },\n \"integrationSearchCalendar\": {\n \"type\": \"integration\",\n \"subType\": \"integrationSearchCalendar\",\n \"label\": \"Search Calendar\",\n \"icon\": \"CalendarSearch\",\n \"description\": \"Search calendar events\",\n \"category\": \"Integration\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Search Calendar\",\n \"properties\": {\n \"maxResults\": {\n \"type\": \"integer\",\n \"title\": \"Max Results\",\n \"default\": 20,\n \"minimum\": 1,\n \"maximum\": 100\n },\n \"query\": {\n \"type\": \"string\",\n \"title\": \"Search Query\",\n \"description\": \"Search in event titles and descriptions\"\n },\n \"timeMax\": {\n \"type\": \"string\",\n \"title\": \"End Date\",\n \"description\": \"Search events before this date\",\n \"format\": \"date-time\"\n },\n \"timeMin\": {\n \"type\": \"string\",\n \"title\": \"Start Date\",\n \"description\": \"Search events after this date\",\n \"format\": \"date-time\"\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"events\": {\n \"type\": \"array\",\n \"title\": \"Events\",\n \"items\": {\n \"type\": \"object\"\n }\n },\n \"total\": {\n \"type\": \"integer\",\n \"title\": \"Total\"\n }\n }\n }\n },\n \"integrationSearchDrive\": {\n \"type\": \"integration\",\n \"subType\": \"integrationSearchDrive\",\n \"label\": \"Search Drive\",\n \"icon\": \"FolderSearch\",\n \"description\": \"Search files in user's Drive\",\n \"category\": \"Integration\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Search Drive\",\n \"properties\": {\n \"folderId\": {\n \"type\": \"string\",\n \"title\": \"Folder ID\",\n \"description\": \"Search in specific folder\"\n },\n \"maxResults\": {\n \"type\": \"integer\",\n \"title\": \"Max Results\",\n \"default\": 20,\n \"minimum\": 1,\n \"maximum\": 100\n },\n \"mimeType\": {\n \"type\": \"string\",\n \"title\": \"File Type\",\n \"enum\": [\n \"\",\n \"document\",\n \"spreadsheet\",\n \"presentation\",\n \"pdf\",\n \"image\",\n \"folder\"\n ],\n \"x-enumLabels\": [\n \"Any\",\n \"Documents\",\n \"Spreadsheets\",\n \"Presentations\",\n \"PDFs\",\n \"Images\",\n \"Folders\"\n ]\n },\n \"query\": {\n \"type\": \"string\",\n \"title\": \"Search Query\",\n \"description\": \"Search in file names and content\"\n }\n },\n \"required\": [\n \"query\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"files\": {\n \"type\": \"array\",\n \"title\": \"Files\",\n \"items\": {\n \"type\": \"object\"\n }\n },\n \"total\": {\n \"type\": \"integer\",\n \"title\": \"Total\"\n }\n }\n }\n },\n \"integrationSearchEmails\": {\n \"type\": \"integration\",\n \"subType\": \"integrationSearchEmails\",\n \"label\": \"Search Emails\",\n \"icon\": \"MailSearch\",\n \"description\": \"Search user's emails\",\n \"category\": \"Integration\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Search Emails\",\n \"properties\": {\n \"dateRange\": {\n \"type\": \"string\",\n \"title\": \"Date Range\",\n \"enum\": [\n \"1d\",\n \"7d\",\n \"30d\",\n \"90d\",\n \"all\"\n ],\n \"x-enumLabels\": [\n \"Last 24 hours\",\n \"Last 7 days\",\n \"Last 30 days\",\n \"Last 90 days\",\n \"All time\"\n ]\n },\n \"maxResults\": {\n \"type\": \"integer\",\n \"title\": \"Max Results\",\n \"default\": 20,\n \"minimum\": 1,\n \"maximum\": 100\n },\n \"query\": {\n \"type\": \"string\",\n \"title\": \"Search Query\",\n \"description\": \"Gmail/Outlook search query\"\n }\n },\n \"required\": [\n \"query\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"emails\": {\n \"type\": \"array\",\n \"title\": \"Emails\",\n \"items\": {\n \"type\": \"object\"\n }\n },\n \"total\": {\n \"type\": \"integer\",\n \"title\": \"Total\"\n }\n }\n }\n },\n \"integrationSendEmail\": {\n \"type\": \"integration\",\n \"subType\": \"integrationSendEmail\",\n \"label\": \"Send Email\",\n \"icon\": \"Send\",\n \"description\": \"Send email via user's connected account\",\n \"category\": \"Integration\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Send Email\",\n \"properties\": {\n \"body\": {\n \"type\": \"string\",\n \"title\": \"Body\",\n \"format\": \"multiline\"\n },\n \"bodyType\": {\n \"type\": \"string\",\n \"title\": \"Body Type\",\n \"default\": \"text\",\n \"enum\": [\n \"text\",\n \"html\"\n ],\n \"x-enumLabels\": [\n \"Plain Text\",\n \"HTML\"\n ]\n },\n \"cc\": {\n \"type\": \"string\",\n \"title\": \"CC\"\n },\n \"replyToMessageId\": {\n \"type\": \"string\",\n \"title\": \"Reply To Message ID\",\n \"description\": \"Optional: message ID to reply to\"\n },\n \"subject\": {\n \"type\": \"string\",\n \"title\": \"Subject\"\n },\n \"to\": {\n \"type\": \"string\",\n \"title\": \"To\"\n }\n },\n \"required\": [\n \"to\",\n \"subject\",\n \"body\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"messageId\": {\n \"type\": \"string\",\n \"title\": \"Message ID\"\n },\n \"sent\": {\n \"type\": \"boolean\",\n \"title\": \"Sent\"\n }\n }\n }\n },\n \"logicFor\": {\n \"type\": \"logic\",\n \"subType\": \"logicFor\",\n \"label\": \"Loop\",\n \"icon\": \"Repeat\",\n \"description\": \"Iterate over a collection\",\n \"category\": \"Flow Control\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Loop\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"title\": \"Collection Expression\"\n },\n \"indexVariable\": {\n \"type\": \"string\",\n \"title\": \"Index Variable Name\"\n },\n \"itemVariable\": {\n \"type\": \"string\",\n \"title\": \"Item Variable Name\"\n },\n \"maxIterations\": {\n \"type\": \"integer\",\n \"title\": \"Max Iterations\",\n \"minimum\": 1,\n \"maximum\": 10000\n }\n },\n \"required\": [\n \"collection\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"logicIf\": {\n \"type\": \"logic\",\n \"subType\": \"logicIf\",\n \"label\": \"If Condition\",\n \"icon\": \"GitBranch\",\n \"description\": \"Conditional branching based on variables\",\n \"category\": \"Flow Control\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"If Condition Configuration\",\n \"properties\": {\n \"conditions\": {\n \"type\": \"array\",\n \"title\": \"Conditions\",\n \"description\": \"Define conditions to evaluate against workflow variables\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"field\": {\n \"type\": \"string\",\n \"title\": \"Variable\",\n \"description\": \"Variable path (e.g., emailSent, user.role)\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"title\": \"Operator\",\n \"enum\": [\n \"eq\",\n \"neq\",\n \"gt\",\n \"gte\",\n \"lt\",\n \"lte\",\n \"contains\",\n \"startsWith\",\n \"endsWith\",\n \"isEmpty\",\n \"isNotEmpty\"\n ]\n },\n \"value\": {\n \"type\": \"string\",\n \"title\": \"Value\",\n \"description\": \"Value to compare against\"\n }\n },\n \"required\": [\n \"field\",\n \"operator\"\n ]\n }\n },\n \"defaultPath\": {\n \"type\": \"string\",\n \"title\": \"Default Path ID\",\n \"description\": \"Path to use if no condition matches\"\n },\n \"expression\": {\n \"type\": \"string\",\n \"title\": \"Advanced Expression\",\n \"description\": \"JavaScript expression for complex conditions (e.g., amount \\u003e 1000 \\u0026\\u0026 status === 'approved')\",\n \"format\": \"multiline\"\n },\n \"logic\": {\n \"type\": \"string\",\n \"title\": \"Logic\",\n \"description\": \"How to combine multiple conditions\",\n \"default\": \"and\",\n \"enum\": [\n \"and\",\n \"or\"\n ]\n },\n \"paths\": {\n \"type\": \"array\",\n \"title\": \"Paths\",\n \"description\": \"Define target nodes for true/false outcomes\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"condition\": {\n \"type\": \"string\",\n \"title\": \"Condition\",\n \"enum\": [\n \"true\",\n \"false\"\n ]\n },\n \"id\": {\n \"type\": \"string\",\n \"title\": \"Path ID\"\n },\n \"nodeId\": {\n \"type\": \"string\",\n \"title\": \"Target Node ID\"\n }\n },\n \"required\": [\n \"id\",\n \"condition\"\n ]\n }\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"conditionResult\": {\n \"type\": \"boolean\"\n },\n \"pathTaken\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"logicSwitch\": {\n \"type\": \"logic\",\n \"subType\": \"logicSwitch\",\n \"label\": \"Switch\",\n \"icon\": \"GitMerge\",\n \"description\": \"Multi-way branching based on value\",\n \"category\": \"Flow Control\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Switch\",\n \"properties\": {\n \"cases\": {\n \"type\": \"array\",\n \"title\": \"Cases\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"nodeId\": {\n \"type\": \"string\",\n \"title\": \"Target Node ID\"\n },\n \"value\": {\n \"type\": \"string\",\n \"title\": \"Value\"\n }\n }\n }\n },\n \"expression\": {\n \"type\": \"string\",\n \"title\": \"Switch Expression\"\n }\n },\n \"required\": [\n \"expression\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"triggerCalendarEvent\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerCalendarEvent\",\n \"label\": \"Calendar Event\",\n \"icon\": \"CalendarClock\",\n \"description\": \"Trigger before or when calendar events occur\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Calendar Trigger\",\n \"properties\": {\n \"leadTime\": {\n \"type\": \"integer\",\n \"title\": \"Minutes Before\",\n \"description\": \"For reminder triggers\",\n \"default\": 30,\n \"minimum\": 5,\n \"maximum\": 1440\n },\n \"provider\": {\n \"type\": \"string\",\n \"title\": \"Provider\",\n \"enum\": [\n \"google\",\n \"microsoft\"\n ],\n \"x-enumLabels\": [\n \"Google Calendar\",\n \"Outlook Calendar\"\n ]\n },\n \"triggerType\": {\n \"type\": \"string\",\n \"title\": \"Trigger When\",\n \"enum\": [\n \"reminder\",\n \"event_start\",\n \"event_created\"\n ],\n \"x-enumLabels\": [\n \"Before Event (Reminder)\",\n \"Event Starts\",\n \"Event Created\"\n ]\n }\n },\n \"required\": [\n \"provider\",\n \"triggerType\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"event\": {\n \"type\": \"object\",\n \"properties\": {\n \"attendees\": {\n \"type\": \"array\",\n \"title\": \"Attendees\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"title\": \"Description\"\n },\n \"endTime\": {\n \"type\": \"string\",\n \"title\": \"End Time\",\n \"format\": \"date-time\"\n },\n \"id\": {\n \"type\": \"string\",\n \"title\": \"Event ID\"\n },\n \"location\": {\n \"type\": \"string\",\n \"title\": \"Location\"\n },\n \"startTime\": {\n \"type\": \"string\",\n \"title\": \"Start Time\",\n \"format\": \"date-time\"\n },\n \"title\": {\n \"type\": \"string\",\n \"title\": \"Title\"\n }\n }\n }\n }\n }\n },\n \"triggerDriveFileChanged\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerDriveFileChanged\",\n \"label\": \"File Changed\",\n \"icon\": \"FolderSync\",\n \"description\": \"Trigger when files are added or modified in Drive\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Drive Trigger\",\n \"properties\": {\n \"changeType\": {\n \"type\": \"string\",\n \"title\": \"Change Type\",\n \"enum\": [\n \"created\",\n \"modified\",\n \"any\"\n ],\n \"x-enumLabels\": [\n \"File Created\",\n \"File Modified\",\n \"Any Change\"\n ]\n },\n \"fileTypes\": {\n \"type\": \"array\",\n \"title\": \"File Types\",\n \"description\": \"Filter by extension (e.g., pdf, docx)\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"folderId\": {\n \"type\": \"string\",\n \"title\": \"Folder ID\",\n \"description\": \"Watch specific folder (leave empty for all)\"\n },\n \"pollInterval\": {\n \"type\": \"integer\",\n \"title\": \"Poll Interval (minutes)\",\n \"default\": 10,\n \"minimum\": 5\n },\n \"provider\": {\n \"type\": \"string\",\n \"title\": \"Provider\",\n \"enum\": [\n \"google\",\n \"microsoft\"\n ],\n \"x-enumLabels\": [\n \"Google Drive\",\n \"OneDrive\"\n ]\n }\n },\n \"required\": [\n \"provider\",\n \"changeType\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"file\": {\n \"type\": \"object\",\n \"properties\": {\n \"createdAt\": {\n \"type\": \"string\",\n \"title\": \"Created At\",\n \"format\": \"date-time\"\n },\n \"id\": {\n \"type\": \"string\",\n \"title\": \"File ID\"\n },\n \"mimeType\": {\n \"type\": \"string\",\n \"title\": \"MIME Type\"\n },\n \"name\": {\n \"type\": \"string\",\n \"title\": \"Name\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"title\": \"Size (bytes)\"\n },\n \"webLink\": {\n \"type\": \"string\",\n \"title\": \"Web Link\"\n }\n }\n }\n }\n }\n },\n \"triggerEmailReceived\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerEmailReceived\",\n \"label\": \"Email Received\",\n \"icon\": \"Mail\",\n \"description\": \"Trigger when a new email matches filters\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Email Trigger\",\n \"properties\": {\n \"fromFilter\": {\n \"type\": \"string\",\n \"title\": \"From (contains)\",\n \"description\": \"Filter by sender email or name\"\n },\n \"hasAttachment\": {\n \"type\": \"boolean\",\n \"title\": \"Has Attachment\"\n },\n \"isUnread\": {\n \"type\": \"boolean\",\n \"title\": \"Unread Only\",\n \"default\": true\n },\n \"labelFilter\": {\n \"type\": \"string\",\n \"title\": \"Label/Folder\",\n \"description\": \"Gmail label or Outlook folder\"\n },\n \"pollInterval\": {\n \"type\": \"integer\",\n \"title\": \"Poll Interval (minutes)\",\n \"default\": 5,\n \"minimum\": 1,\n \"maximum\": 60\n },\n \"provider\": {\n \"type\": \"string\",\n \"title\": \"Provider\",\n \"enum\": [\n \"google\",\n \"microsoft\"\n ],\n \"x-enumLabels\": [\n \"Gmail\",\n \"Outlook\"\n ]\n },\n \"subjectFilter\": {\n \"type\": \"string\",\n \"title\": \"Subject (contains)\"\n }\n },\n \"required\": [\n \"provider\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"email\": {\n \"type\": \"object\",\n \"properties\": {\n \"body\": {\n \"type\": \"string\",\n \"title\": \"Body\"\n },\n \"date\": {\n \"type\": \"string\",\n \"title\": \"Date\",\n \"format\": \"date-time\"\n },\n \"from\": {\n \"type\": \"string\",\n \"title\": \"From\"\n },\n \"id\": {\n \"type\": \"string\",\n \"title\": \"Email ID\"\n },\n \"snippet\": {\n \"type\": \"string\",\n \"title\": \"Snippet\"\n },\n \"subject\": {\n \"type\": \"string\",\n \"title\": \"Subject\"\n },\n \"to\": {\n \"type\": \"string\",\n \"title\": \"To\"\n }\n }\n }\n }\n }\n },\n \"triggerEntityRecordCreated\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerEntityRecordCreated\",\n \"label\": \"Entity Record Created\",\n \"icon\": \"Plus\",\n \"description\": \"Triggers when a new entity record is created\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Entity Record Created\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n },\n \"filters\": {\n \"type\": \"object\",\n \"title\": \"Filters\"\n }\n },\n \"required\": [\n \"entityName\"\n ]\n },\n \"input\": {\n \"type\": \"object\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\"\n },\n \"entityRecordId\": {\n \"type\": \"string\"\n }\n }\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n },\n \"entityRecordId\": {\n \"type\": \"string\",\n \"title\": \"Record ID\"\n },\n \"record\": {\n \"type\": \"object\",\n \"title\": \"Entity Record\",\n \"description\": \"The created entity record (fields vary by entity type)\"\n }\n }\n }\n },\n \"triggerEntityRecordDeleted\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerEntityRecordDeleted\",\n \"label\": \"Entity Record Deleted\",\n \"icon\": \"Trash\",\n \"description\": \"Triggers when an entity record is deleted\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Entity Record Deleted\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n }\n },\n \"required\": [\n \"entityName\"\n ]\n },\n \"input\": {\n \"type\": \"object\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\"\n },\n \"entityRecordId\": {\n \"type\": \"string\"\n }\n }\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n },\n \"entityRecordId\": {\n \"type\": \"string\",\n \"title\": \"Record ID\"\n },\n \"record\": {\n \"type\": \"object\",\n \"title\": \"Entity Record\",\n \"description\": \"The deleted entity record (fields vary by entity type)\"\n }\n }\n }\n },\n \"triggerEntityRecordUpdated\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerEntityRecordUpdated\",\n \"label\": \"Entity Record Updated\",\n \"icon\": \"Pencil\",\n \"description\": \"Triggers when an entity record is updated\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Entity Record Updated\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n },\n \"filters\": {\n \"type\": \"object\",\n \"title\": \"Filters\"\n },\n \"watchFields\": {\n \"type\": \"array\",\n \"title\": \"Watch Fields\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"entityName\"\n ]\n },\n \"input\": {\n \"type\": \"object\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\"\n },\n \"entityRecordId\": {\n \"type\": \"string\"\n }\n }\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n },\n \"entityRecordId\": {\n \"type\": \"string\",\n \"title\": \"Record ID\"\n },\n \"record\": {\n \"type\": \"object\",\n \"title\": \"Entity Record\",\n \"description\": \"The updated entity record (fields vary by entity type)\"\n }\n }\n }\n },\n \"triggerEscalation\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerEscalation\",\n \"label\": \"Escalation\",\n \"icon\": \"ArrowUpRight\",\n \"description\": \"Triggers when an escalation occurs\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Escalation\",\n \"properties\": {\n \"escalationLevel\": {\n \"type\": \"integer\",\n \"title\": \"Escalation Level\",\n \"minimum\": 1\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"triggerSLABreach\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerSLABreach\",\n \"label\": \"SLA Breach\",\n \"icon\": \"TriangleAlert\",\n \"description\": \"Triggers when an SLA breach occurs\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"SLA Breach\",\n \"properties\": {\n \"policyId\": {\n \"type\": \"string\",\n \"title\": \"SLA Policy ID\"\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"triggerSLAWarning\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerSLAWarning\",\n \"label\": \"SLA Warning\",\n \"icon\": \"Timer\",\n \"description\": \"Triggers when an SLA warning occurs\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"SLA Warning\",\n \"properties\": {\n \"policyId\": {\n \"type\": \"string\",\n \"title\": \"SLA Policy ID\"\n },\n \"warningThreshold\": {\n \"type\": \"number\",\n \"title\": \"Warning Threshold (%)\",\n \"minimum\": 0,\n \"maximum\": 100\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"triggerSchedule\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerSchedule\",\n \"label\": \"Schedule\",\n \"icon\": \"Calendar\",\n \"description\": \"Trigger workflow on a schedule (cron expression)\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Schedule Trigger\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"title\": \"Description\"\n },\n \"schedule\": {\n \"type\": \"string\",\n \"title\": \"Cron Expression\",\n \"description\": \"e.g., '0 9 * * MON-FRI' for weekdays at 9am\"\n },\n \"timezone\": {\n \"type\": \"string\",\n \"title\": \"Timezone\",\n \"default\": \"UTC\",\n \"enum\": [\n \"UTC\",\n \"America/New_York\",\n \"America/Chicago\",\n \"America/Denver\",\n \"America/Los_Angeles\",\n \"Europe/London\",\n \"Europe/Paris\",\n \"Asia/Tokyo\"\n ],\n \"x-enumLabels\": [\n \"UTC\",\n \"Eastern Time\",\n \"Central Time\",\n \"Mountain Time\",\n \"Pacific Time\",\n \"London\",\n \"Paris\",\n \"Tokyo\"\n ]\n }\n },\n \"required\": [\n \"schedule\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"schedule\": {\n \"type\": \"string\",\n \"title\": \"Schedule\"\n },\n \"triggeredAt\": {\n \"type\": \"string\",\n \"title\": \"Triggered At\",\n \"format\": \"date-time\"\n }\n }\n }\n },\n \"triggerStart\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerStart\",\n \"label\": \"Start\",\n \"icon\": \"Play\",\n \"description\": \"Workflow entry point - receives input and sets variables\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\"\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"triggerWebhookReceived\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerWebhookReceived\",\n \"label\": \"Webhook\",\n \"icon\": \"Webhook\",\n \"description\": \"Triggers when a webhook is received\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Webhook Trigger\",\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"title\": \"HTTP Method\",\n \"enum\": [\n \"POST\",\n \"GET\",\n \"PUT\"\n ]\n },\n \"secret\": {\n \"type\": \"string\",\n \"title\": \"Secret\",\n \"format\": \"password\"\n },\n \"webhookPath\": {\n \"type\": \"string\",\n \"title\": \"Webhook Path\"\n }\n },\n \"required\": [\n \"webhookPath\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n }\n} as const;\n\n// Helper to get just the config schemas (for backwards compatibility)\nexport const nodeSchemas: Record<string, JSONSchema> = Object.fromEntries(\n Object.entries(nodeDefinitions).map(([key, def]) => [key, def.config])\n);\n\n// Grouped subtypes for backwards compatibility with existing frontend code\nexport const TriggerNodeSubTypes: Record<string, NodeSubTypeInfo> = {\n \"triggerCalendarEvent\": {\n \"value\": \"triggerCalendarEvent\",\n \"label\": \"Calendar Event\",\n \"icon\": \"CalendarClock\",\n \"description\": \"Trigger before or when calendar events occur\"\n },\n \"triggerDriveFileChanged\": {\n \"value\": \"triggerDriveFileChanged\",\n \"label\": \"File Changed\",\n \"icon\": \"FolderSync\",\n \"description\": \"Trigger when files are added or modified in Drive\"\n },\n \"triggerEmailReceived\": {\n \"value\": \"triggerEmailReceived\",\n \"label\": \"Email Received\",\n \"icon\": \"Mail\",\n \"description\": \"Trigger when a new email matches filters\"\n },\n \"triggerEntityRecordCreated\": {\n \"value\": \"triggerEntityRecordCreated\",\n \"label\": \"Entity Record Created\",\n \"icon\": \"Plus\",\n \"description\": \"Triggers when a new entity record is created\"\n },\n \"triggerEntityRecordDeleted\": {\n \"value\": \"triggerEntityRecordDeleted\",\n \"label\": \"Entity Record Deleted\",\n \"icon\": \"Trash\",\n \"description\": \"Triggers when an entity record is deleted\"\n },\n \"triggerEntityRecordUpdated\": {\n \"value\": \"triggerEntityRecordUpdated\",\n \"label\": \"Entity Record Updated\",\n \"icon\": \"Pencil\",\n \"description\": \"Triggers when an entity record is updated\"\n },\n \"triggerEscalation\": {\n \"value\": \"triggerEscalation\",\n \"label\": \"Escalation\",\n \"icon\": \"ArrowUpRight\",\n \"description\": \"Triggers when an escalation occurs\"\n },\n \"triggerSLABreach\": {\n \"value\": \"triggerSLABreach\",\n \"label\": \"SLA Breach\",\n \"icon\": \"TriangleAlert\",\n \"description\": \"Triggers when an SLA breach occurs\"\n },\n \"triggerSLAWarning\": {\n \"value\": \"triggerSLAWarning\",\n \"label\": \"SLA Warning\",\n \"icon\": \"Timer\",\n \"description\": \"Triggers when an SLA warning occurs\"\n },\n \"triggerSchedule\": {\n \"value\": \"triggerSchedule\",\n \"label\": \"Schedule\",\n \"icon\": \"Calendar\",\n \"description\": \"Trigger workflow on a schedule (cron expression)\"\n },\n \"triggerStart\": {\n \"value\": \"triggerStart\",\n \"label\": \"Start\",\n \"icon\": \"Play\",\n \"description\": \"Workflow entry point - receives input and sets variables\"\n },\n \"triggerWebhookReceived\": {\n \"value\": \"triggerWebhookReceived\",\n \"label\": \"Webhook\",\n \"icon\": \"Webhook\",\n \"description\": \"Triggers when a webhook is received\"\n }\n} as const;\nexport const HumanActionNodeSubTypes: Record<string, NodeSubTypeInfo> = {\n \"humanActionApproval\": {\n \"value\": \"humanActionApproval\",\n \"label\": \"Approval\",\n \"icon\": \"CheckCircle\",\n \"description\": \"Request human approval\"\n },\n \"humanActionAssignment\": {\n \"value\": \"humanActionAssignment\",\n \"label\": \"Task Assignment\",\n \"icon\": \"UserPlus\",\n \"description\": \"Assign a task to a user\"\n },\n \"humanActionDataEntry\": {\n \"value\": \"humanActionDataEntry\",\n \"label\": \"Data Entry\",\n \"icon\": \"FormInput\",\n \"description\": \"Request human data entry\"\n },\n \"humanActionReview\": {\n \"value\": \"humanActionReview\",\n \"label\": \"Review\",\n \"icon\": \"Eye\",\n \"description\": \"Request human review\"\n }\n} as const;\nexport const AgentNodeSubTypes: Record<string, NodeSubTypeInfo> = {\n \"actionAIClassify\": {\n \"value\": \"actionAIClassify\",\n \"label\": \"AI Classify\",\n \"icon\": \"Tags\",\n \"description\": \"Classify content into categories using AI\"\n },\n \"actionAIExtractData\": {\n \"value\": \"actionAIExtractData\",\n \"label\": \"AI Extract Data\",\n \"icon\": \"FileSearch\",\n \"description\": \"Extract structured data from unstructured content\"\n },\n \"actionAISummarize\": {\n \"value\": \"actionAISummarize\",\n \"label\": \"AI Summarize\",\n \"icon\": \"FileText\",\n \"description\": \"Summarize text content using AI\"\n },\n \"agentChat\": {\n \"value\": \"agentChat\",\n \"label\": \"Chat\",\n \"icon\": \"MessageSquare\",\n \"description\": \"AI chat interaction\"\n },\n \"agentCustomResponse\": {\n \"value\": \"agentCustomResponse\",\n \"label\": \"Custom Response\",\n \"icon\": \"MessageCircle\",\n \"description\": \"Send a custom response message\"\n },\n \"agentIntentDetector\": {\n \"value\": \"agentIntentDetector\",\n \"label\": \"Intent Detector\",\n \"icon\": \"Target\",\n \"description\": \"Detect user intent from message\"\n },\n \"agentKnowledgeGraph\": {\n \"value\": \"agentKnowledgeGraph\",\n \"label\": \"Knowledge Graph\",\n \"icon\": \"Network\",\n \"description\": \"Query knowledge graph for information\"\n },\n \"agentOpenTicket\": {\n \"value\": \"agentOpenTicket\",\n \"label\": \"Open Ticket\",\n \"icon\": \"Ticket\",\n \"description\": \"Create a support ticket\"\n },\n \"agentStructuredOutput\": {\n \"value\": \"agentStructuredOutput\",\n \"label\": \"Structured Output\",\n \"icon\": \"Brain\",\n \"description\": \"AI-powered structured data extraction\"\n },\n \"agentTransferToHuman\": {\n \"value\": \"agentTransferToHuman\",\n \"label\": \"Transfer to Human\",\n \"icon\": \"UserCheck\",\n \"description\": \"Transfer conversation to human agent\"\n }\n} as const;\nexport const ActionNodeSubTypes: Record<string, NodeSubTypeInfo> = {\n \"actionApiCall\": {\n \"value\": \"actionApiCall\",\n \"label\": \"API Call\",\n \"icon\": \"Globe\",\n \"description\": \"Make HTTP API requests\"\n },\n \"actionAssignSLAPolicy\": {\n \"value\": \"actionAssignSLAPolicy\",\n \"label\": \"Assign SLA Policy\",\n \"icon\": \"Clock\",\n \"description\": \"Assign an SLA policy to a record\"\n },\n \"actionCreateEntityRecord\": {\n \"value\": \"actionCreateEntityRecord\",\n \"label\": \"Create Entity Record\",\n \"icon\": \"FilePlus\",\n \"description\": \"Create a new entity record\"\n },\n \"actionDeleteEntityRecord\": {\n \"value\": \"actionDeleteEntityRecord\",\n \"label\": \"Delete Entity Record\",\n \"icon\": \"FileX\",\n \"description\": \"Delete an entity record\"\n },\n \"actionDocumentExtraction\": {\n \"value\": \"actionDocumentExtraction\",\n \"label\": \"Document Extraction\",\n \"icon\": \"FileSearch\",\n \"description\": \"Extract data from documents using AI\"\n },\n \"actionNatsRequest\": {\n \"value\": \"actionNatsRequest\",\n \"label\": \"NATS Request\",\n \"icon\": \"Send\",\n \"description\": \"Execute a NATS request-reply call with dynamic subject routing\"\n },\n \"actionQueryEntityRecords\": {\n \"value\": \"actionQueryEntityRecords\",\n \"label\": \"Query Entity Records\",\n \"icon\": \"Search\",\n \"description\": \"Query entity records with filters\"\n },\n \"actionSendEmail\": {\n \"value\": \"actionSendEmail\",\n \"label\": \"Send Email\",\n \"icon\": \"Mail\",\n \"description\": \"Send an email notification\"\n },\n \"actionSendSMS\": {\n \"value\": \"actionSendSMS\",\n \"label\": \"Send SMS\",\n \"icon\": \"Smartphone\",\n \"description\": \"Send an SMS message\"\n },\n \"actionSetVariables\": {\n \"value\": \"actionSetVariables\",\n \"label\": \"Set Variables\",\n \"icon\": \"Variable\",\n \"description\": \"Set workflow variables\"\n },\n \"actionUpdateEntityRecord\": {\n \"value\": \"actionUpdateEntityRecord\",\n \"label\": \"Update Entity Record\",\n \"icon\": \"FileEdit\",\n \"description\": \"Update an existing entity record\"\n }\n} as const;\nexport const LogicNodeSubTypes: Record<string, NodeSubTypeInfo> = {\n \"logicFor\": {\n \"value\": \"logicFor\",\n \"label\": \"Loop\",\n \"icon\": \"Repeat\",\n \"description\": \"Iterate over a collection\"\n },\n \"logicIf\": {\n \"value\": \"logicIf\",\n \"label\": \"If Condition\",\n \"icon\": \"GitBranch\",\n \"description\": \"Conditional branching based on variables\"\n },\n \"logicSwitch\": {\n \"value\": \"logicSwitch\",\n \"label\": \"Switch\",\n \"icon\": \"GitMerge\",\n \"description\": \"Multi-way branching based on value\"\n }\n} as const;\nexport const DelayNodeSubTypes: Record<string, NodeSubTypeInfo> = {\n \"delay\": {\n \"value\": \"delay\",\n \"label\": \"Delay\",\n \"icon\": \"Clock\",\n \"description\": \"Wait for a specified duration\"\n }\n} as const;\nexport const ParallelNodeSubTypes: Record<string, NodeSubTypeInfo> = {} as const;\n\n// Empty placeholders for node types not yet defined in Go\nexport const DataNodeSubTypes: Record<string, NodeSubTypeInfo> = {} as const;\nexport const TimerNodeSubTypes: Record<string, NodeSubTypeInfo> = {} as const;\nexport const LoopNodeSubTypes: Record<string, NodeSubTypeInfo> = {} as const;\nexport const AccountingNodeSubTypes: Record<string, NodeSubTypeInfo> = {} as const;\n\n// Type aliases for backwards compatibility\nexport type TriggerNodeSubType = keyof typeof TriggerNodeSubTypes;\nexport type HumanActionNodeSubType = keyof typeof HumanActionNodeSubTypes;\nexport type AgentNodeSubType = keyof typeof AgentNodeSubTypes;\nexport type ActionNodeSubType = keyof typeof ActionNodeSubTypes;\nexport type LogicNodeSubType = keyof typeof LogicNodeSubTypes;\nexport type DelayNodeSubType = keyof typeof DelayNodeSubTypes;\nexport type DataNodeSubType = keyof typeof DataNodeSubTypes;\nexport type TimerNodeSubType = keyof typeof TimerNodeSubTypes;\nexport type LoopNodeSubType = keyof typeof LoopNodeSubTypes;\nexport type ParallelNodeSubType = keyof typeof ParallelNodeSubTypes;\nexport type AccountingNodeSubType = keyof typeof AccountingNodeSubTypes;\n\nexport type WorkflowNodeSubTypeTS =\n | TriggerNodeSubType\n | HumanActionNodeSubType\n | AgentNodeSubType\n | ActionNodeSubType\n | LogicNodeSubType\n | DelayNodeSubType\n | DataNodeSubType\n | TimerNodeSubType\n | LoopNodeSubType\n | ParallelNodeSubType\n | AccountingNodeSubType;\n\n// WorkflowNodeTypes constant for backwards compatibility\nexport const WorkflowNodeTypes = {\n trigger: { value: 'trigger', label: 'Trigger', category: 'Triggers' },\n humanAction: { value: 'humanAction', label: 'Human Action', category: 'User Interaction' },\n agent: { value: 'agent', label: 'Agent', category: 'Automation' },\n action: { value: 'action', label: 'Action', category: 'Automation' },\n logic: { value: 'logic', label: 'Logic', category: 'Flow Control' },\n data: { value: 'data', label: 'Data', category: 'Data Processing' },\n integration: { value: 'integration', label: 'Integration', category: 'Integration' },\n timer: { value: 'timer', label: 'Timer', category: 'Time & Scheduling' },\n loop: { value: 'loop', label: 'Loop', category: 'Flow Control' },\n parallel: { value: 'parallel', label: 'Parallel', category: 'Flow Control' },\n delay: { value: 'delay', label: 'Delay', category: 'Flow Control' },\n subflow: { value: 'subflow', label: 'Subflow', category: 'Flow Control' },\n custom: { value: 'custom', label: 'Custom', category: 'Custom' },\n documentExtraction: { value: 'documentExtraction', label: 'Document Extraction', category: 'Data Processing' },\n apiCall: { value: 'apiCall', label: 'API Call', category: 'Integration' },\n accounting: { value: 'accounting', label: 'Accounting', category: 'Accounting' },\n} as const;\n\nexport type WorkflowNodeTypeTS = keyof typeof WorkflowNodeTypes;\nexport type WorkflowNodeTypeOptionTS = typeof WorkflowNodeTypes[WorkflowNodeTypeTS];\n\nexport type NodeCategory =\n | \"Triggers\"\n | \"User Interaction\"\n | \"Automation\"\n | \"Integration\"\n | \"Flow Control\"\n | \"Data Processing\"\n | \"Time & Scheduling\"\n | \"Custom\"\n | \"Document Processing\"\n | \"API Integration\"\n | \"Accounting\";\n\n// Edge type definitions (generated from Go)\nexport const WorkflowEdgeTypes: Record<string, EdgeTypeDefinition> = {\n \"compensation\": {\n \"value\": \"compensation\",\n \"label\": \"Compensation\"\n },\n \"conditional\": {\n \"value\": \"conditional\",\n \"label\": \"Conditional\"\n },\n \"default\": {\n \"value\": \"default\",\n \"label\": \"Default\"\n },\n \"error\": {\n \"value\": \"error\",\n \"label\": \"Error\"\n },\n \"loopBack\": {\n \"value\": \"loopBack\",\n \"label\": \"Loop Back\"\n },\n \"merge\": {\n \"value\": \"merge\",\n \"label\": \"Merge\"\n },\n \"normal\": {\n \"value\": \"normal\",\n \"label\": \"Normal\"\n },\n \"parallel\": {\n \"value\": \"parallel\",\n \"label\": \"Parallel\"\n },\n \"timeout\": {\n \"value\": \"timeout\",\n \"label\": \"Timeout\"\n }\n} as const;\nexport type WorkflowEdgeTypeTS = keyof typeof WorkflowEdgeTypes;\nexport type WorkflowEdgeTypeOptionTS = typeof WorkflowEdgeTypes[WorkflowEdgeTypeTS];\n\n// Workflow type definitions (generated from Go)\nexport const WorkflowTypes: Record<string, WorkflowTypeDefinition> = {\n \"agent\": {\n \"value\": \"agent\",\n \"label\": \"Agent\"\n },\n \"chat\": {\n \"value\": \"chat\",\n \"label\": \"Chat\"\n },\n \"document\": {\n \"value\": \"document\",\n \"label\": \"Document\"\n },\n \"entity\": {\n \"value\": \"entity\",\n \"label\": \"Entity\"\n },\n \"productivity\": {\n \"value\": \"productivity\",\n \"label\": \"Productivity\"\n }\n} as const;\nexport type WorkflowTypeTS = keyof typeof WorkflowTypes;\nexport type WorkflowTypeOptionTS = typeof WorkflowTypes[WorkflowTypeTS];\n"],"mappings":"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","names":["value","isVarValue","import_react","import_jsx_runtime","import_react","import_react","import_nats","import_react","import_react_redux","import_toolkit","initialState","setLoading","setOperationLoading","setError","setOperationLoading","setError","instanceId","setLoading","import_jsx_runtime","import_react","import_jsx_runtime"]}