@nuraly/lumenui 0.3.6 → 0.3.8
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.
- package/dist/nuralyui.bundle.js +14 -13
- package/dist/nuralyui.bundle.js.gz +0 -0
- package/dist/src/components/canvas/bundle.js +7 -6
- package/dist/src/components/canvas/bundle.js.gz +0 -0
- package/dist/src/components/canvas/workflow-canvas.types.js +2 -2
- package/dist/src/components/chatbot/bundle.js +22 -23
- package/dist/src/components/chatbot/bundle.js.gz +0 -0
- package/dist/src/components/chatbot/chatbot.style.js +0 -1
- package/dist/src/components/chatbot/plugins/artifact-plugin.js +0 -19
- package/dist/src/components/chatbot/plugins/flight-card-plugin.js +0 -35
- package/dist/src/components/chatbot/plugins/markdown-plugin.js +0 -4
- package/dist/src/components/chatbot/plugins/print-job-card-plugin.js +0 -36
- package/dist/src/components/chatbot/plugins/selection-card-plugin.js +0 -34
- package/dist/src/components/dropdown/bundle.js +2 -2
- package/dist/src/components/dropdown/bundle.js.gz +0 -0
- package/dist/src/components/dropdown/dropdown.style.js +2 -2
- package/dist/src/components/iconpicker/bundle.js +2 -2
- package/dist/src/components/iconpicker/bundle.js.gz +0 -0
- package/package.json +1 -1
- package/packages/common/dist/VERSIONS.md +1 -1
|
Binary file
|
|
@@ -103,7 +103,7 @@ var P,_;O.styles=e`
|
|
|
103
103
|
* @license
|
|
104
104
|
* Copyright 2024 Nuraly, Laabidi Aymen
|
|
105
105
|
* SPDX-License-Identifier: MIT
|
|
106
|
-
*/var U,V,H,q,G,W,K,J,Y;!function(e){e.START="START",e.END="END",e.HTTP_START="HTTP_START",e.HTTP_END="HTTP_END",e.CHAT_START="CHAT_START",e.CHAT_OUTPUT="CHAT_OUTPUT",e.SOCIAL_POST="SOCIAL_POST",e.FUNCTION="FUNCTION",e.HTTP="HTTP",e.CONDITION="CONDITION",e.SWITCH="SWITCH",e.DELAY="DELAY",e.PARALLEL="PARALLEL",e.MERGE="MERGE",e.LOOP="LOOP",e.BREAK="BREAK",e.WAIT="WAIT",e.TRY_CATCH="TRY_CATCH",e.TRANSFORM="TRANSFORM",e.SUB_WORKFLOW="SUB_WORKFLOW",e.EMAIL="EMAIL",e.EMAIL_READER="EMAIL_READER",e.SENDGRID="SENDGRID",e.NOTIFICATION="NOTIFICATION",e.DATABASE="DATABASE",e.VARIABLE="VARIABLE",e.CHATBOT="CHATBOT",e.DEBUG="DEBUG",e.LLM="LLM",e.OCR="OCR",e.WEB_SEARCH="WEB_SEARCH",e.WEB_CRAWL="WEB_CRAWL",e.DOCUMENT_GENERATOR="DOCUMENT_GENERATOR",e.FILE_STORAGE="FILE_STORAGE",e.GOOGLE_CLOUD_STORAGE="GOOGLE_CLOUD_STORAGE",e.S3="S3",e.EMBEDDING="EMBEDDING",e.DOCUMENT_LOADER="DOCUMENT_LOADER",e.TEXT_SPLITTER="TEXT_SPLITTER",e.VECTOR_WRITE="VECTOR_WRITE",e.VECTOR_SEARCH="VECTOR_SEARCH",e.CONTEXT_BUILDER="CONTEXT_BUILDER",e.SUMMARIZATION="SUMMARIZATION",e.GUARDRAIL="GUARDRAIL",e.SLACK_SEND_MESSAGE="SLACK_SEND_MESSAGE",e.SLACK_GET_CHANNEL_INFO="SLACK_GET_CHANNEL_INFO",e.SLACK_LIST_CHANNELS="SLACK_LIST_CHANNELS",e.SLACK_ADD_REACTION="SLACK_ADD_REACTION",e.SLACK_UPLOAD_FILE="SLACK_UPLOAD_FILE",e.RERANKER="RERANKER",e.SHOPIFY="SHOPIFY",e.TELEGRAM_SEND="TELEGRAM_SEND",e.TWILIO_SMS="TWILIO_SMS",e.TWILIO_VOICE="TWILIO_VOICE",e.TELEGRAM_BOT="TELEGRAM_BOT",e.SLACK_SOCKET="SLACK_SOCKET",e.DISCORD_BOT="DISCORD_BOT",e.WHATSAPP_WEBHOOK="WHATSAPP_WEBHOOK",e.CUSTOM_WEBSOCKET="CUSTOM_WEBSOCKET",e.GOOGLE_CALENDAR="GOOGLE_CALENDAR",e.RABBITMQ_TRIGGER="RABBITMQ_TRIGGER",e.KAFKA="KAFKA",e.KAFKA_TRIGGER="KAFKA_TRIGGER",e.ZENDESK="ZENDESK",e.GITLAB="GITLAB",e.MCP="MCP",e.INFORMATION_EXTRACTOR="INFORMATION_EXTRACTOR",e.HUBSPOT="HUBSPOT",e.JIRA="JIRA",e.ELASTICSEARCH="ELASTICSEARCH",e.CALENDLY_TRIGGER="CALENDLY_TRIGGER",e.UI_TABLE="UI_TABLE",e.NOTE="NOTE",e.FRAME="FRAME",e.CRON="CRON"}(U||(U={})),function(e){e.AGENT="AGENT",e.TOOL="TOOL",e.MEMORY="MEMORY",e.CONTEXT_MEMORY="CONTEXT_MEMORY",e.PROMPT="PROMPT",e.LLM="AGENT_LLM",e.RETRIEVER="RETRIEVER",e.CHAIN="CHAIN",e.ROUTER="ROUTER",e.HUMAN_INPUT="HUMAN_INPUT",e.OUTPUT_PARSER="OUTPUT_PARSER",e.STRUCTURED_OUTPUT="STRUCTURED_OUTPUT"}(V||(V={})),function(e){e.TABLE="DB_TABLE",e.VIEW="DB_VIEW",e.INDEX="DB_INDEX",e.RELATIONSHIP="DB_RELATIONSHIP",e.CONSTRAINT="DB_CONSTRAINT",e.QUERY="DB_QUERY"}(H||(H={})),function(e){e.STICKY_NOTE="WB_STICKY_NOTE",e.SHAPE_RECTANGLE="WB_SHAPE_RECTANGLE",e.SHAPE_CIRCLE="WB_SHAPE_CIRCLE",e.SHAPE_DIAMOND="WB_SHAPE_DIAMOND",e.SHAPE_TRIANGLE="WB_SHAPE_TRIANGLE",e.SHAPE_ARROW="WB_SHAPE_ARROW",e.SHAPE_LINE="WB_SHAPE_LINE",e.SHAPE_STAR="WB_SHAPE_STAR",e.SHAPE_HEXAGON="WB_SHAPE_HEXAGON",e.TEXT_BLOCK="WB_TEXT_BLOCK",e.IMAGE="WB_IMAGE",e.DRAWING="WB_DRAWING",e.FRAME="WB_FRAME",e.VOTING="WB_VOTING",e.MERMAID="WB_MERMAID",e.ANCHOR="WB_ANCHOR",e.WORKFLOW="WB_WORKFLOW",e.DATABASE="WB_DATABASE"}(q||(q={})),function(e){e.WORKFLOW="WORKFLOW",e.DATABASE="DATABASE",e.WHITEBOARD="WHITEBOARD"}(G||(G={})),function(e){e.DISCONNECTED="DISCONNECTED",e.CONNECTING="CONNECTING",e.CONNECTED="CONNECTED",e.PAUSED="PAUSED",e.HANDOFF_PENDING="HANDOFF_PENDING",e.ERROR="ERROR"}(W||(W={})),function(e){e.IDLE="IDLE",e.PENDING="PENDING",e.RUNNING="RUNNING",e.COMPLETED="COMPLETED",e.FAILED="FAILED",e.CANCELLED="CANCELLED",e.PAUSED="PAUSED",e.WAITING="WAITING"}(K||(K={})),function(e){e.INPUT="INPUT",e.OUTPUT="OUTPUT",e.CONFIG="CONFIG",e.CONDITIONAL_TRUE="CONDITIONAL_TRUE",e.CONDITIONAL_FALSE="CONDITIONAL_FALSE",e.CONDITIONAL_DEFAULT="CONDITIONAL_DEFAULT",e.LOOP_ITEM="LOOP_ITEM",e.LOOP_DONE="LOOP_DONE",e.PARALLEL_BRANCH="PARALLEL_BRANCH",e.ERROR="ERROR"}(J||(J={})),function(e){e.SELECT="SELECT",e.PAN="PAN",e.CONNECT="CONNECT",e.ADD_NODE="ADD_NODE"}(Y||(Y={}));const Q={[U.START]:"#22c55e",[U.END]:"#ef4444",[U.HTTP_START]:"#059669",[U.HTTP_END]:"#dc2626",[U.CHAT_START]:"#0ea5e9",[U.CHAT_OUTPUT]:"#06b6d4",[U.SOCIAL_POST]:"#7c3aed",[U.FUNCTION]:"#3b82f6",[U.HTTP]:"#8b5cf6",[U.CONDITION]:"#f59e0b",[U.SWITCH]:"#eab308",[U.DELAY]:"#6b7280",[U.PARALLEL]:"#06b6d4",[U.MERGE]:"#0891b2",[U.LOOP]:"#ec4899",[U.BREAK]:"#991b1b",[U.WAIT]:"#a78bfa",[U.TRY_CATCH]:"#f43f5e",[U.TRANSFORM]:"#14b8a6",[U.SUB_WORKFLOW]:"#6366f1",[U.EMAIL]:"#f97316",[U.EMAIL_READER]:"#06b6d4",[U.SENDGRID]:"#1A82E2",[U.NOTIFICATION]:"#84cc16",[U.DATABASE]:"#a855f7",[U.VARIABLE]:"#64748b",[U.CHATBOT]:"#0ea5e9",[U.DEBUG]:"#f97316",[U.LLM]:"#22d3ee",[U.OCR]:"#0d9488",[U.INFORMATION_EXTRACTOR]:"#8B5CF6",[U.WEB_SEARCH]:"#3b82f6",[U.WEB_CRAWL]:"#6366f1",[U.DOCUMENT_GENERATOR]:"#0284c7",[U.FILE_STORAGE]:"#f59e0b",[U.GOOGLE_CLOUD_STORAGE]:"#4285f4",[U.S3]:"#FF9900",[U.EMBEDDING]:"#8b5cf6",[U.DOCUMENT_LOADER]:"#ec4899",[U.TEXT_SPLITTER]:"#14b8a6",[U.VECTOR_WRITE]:"#10b981",[U.VECTOR_SEARCH]:"#06b6d4",[U.CONTEXT_BUILDER]:"#a855f7",[U.SUMMARIZATION]:"#8B5CF6",[U.GUARDRAIL]:"#ef4444",[U.SLACK_SEND_MESSAGE]:"#4A154B",[U.SLACK_GET_CHANNEL_INFO]:"#4A154B",[U.SLACK_LIST_CHANNELS]:"#4A154B",[U.SLACK_ADD_REACTION]:"#4A154B",[U.SLACK_UPLOAD_FILE]:"#4A154B",[U.RERANKER]:"#d946ef",[U.SHOPIFY]:"#96bf48",[U.TELEGRAM_SEND]:"#0088cc",[U.TWILIO_SMS]:"#F22F46",[U.TWILIO_VOICE]:"#F22F46",[U.TELEGRAM_BOT]:"#0088cc",[U.SLACK_SOCKET]:"#4A154B",[U.DISCORD_BOT]:"#5865F2",[U.WHATSAPP_WEBHOOK]:"#25D366",[U.CUSTOM_WEBSOCKET]:"#6366f1",[U.GOOGLE_CALENDAR]:"#4285F4",[U.RABBITMQ_TRIGGER]:"#FF6600",[U.KAFKA]:"#231F20",[U.KAFKA_TRIGGER]:"#231F20",[U.ZENDESK]:"#03363d",[U.GITLAB]:"#FC6D26",[U.MCP]:"#7c3aed",[U.HUBSPOT]:"#FF7A59",[U.JIRA]:"#0052CC",[U.ELASTICSEARCH]:"#00bfb3",[U.CALENDLY_TRIGGER]:"#006BFF",[U.UI_TABLE]:"#0891b2",[U.NOTE]:"#fef08a",[U.FRAME]:"#6366f1",[U.CRON]:"#d97706",[V.AGENT]:"#10b981",[V.TOOL]:"#0ea5e9",[V.MEMORY]:"#d946ef",[V.CONTEXT_MEMORY]:"#c026d3",[V.PROMPT]:"#f472b6",[V.LLM]:"#22d3ee",[V.RETRIEVER]:"#a78bfa",[V.CHAIN]:"#fbbf24",[V.ROUTER]:"#fb923c",[V.HUMAN_INPUT]:"#4ade80",[V.OUTPUT_PARSER]:"#2dd4bf",[V.STRUCTURED_OUTPUT]:"#f59e0b",[H.TABLE]:"#64748b",[H.VIEW]:"#a855f7",[H.INDEX]:"#f59e0b",[H.RELATIONSHIP]:"#ec4899",[H.CONSTRAINT]:"#ef4444",[H.QUERY]:"#06b6d4",[q.STICKY_NOTE]:"#fef08a",[q.SHAPE_RECTANGLE]:"#3b82f6",[q.SHAPE_CIRCLE]:"#8b5cf6",[q.SHAPE_DIAMOND]:"#f59e0b",[q.SHAPE_TRIANGLE]:"#22c55e",[q.SHAPE_ARROW]:"#6b7280",[q.SHAPE_LINE]:"#6b7280",[q.SHAPE_STAR]:"#f97316",[q.SHAPE_HEXAGON]:"#ec4899",[q.TEXT_BLOCK]:"#111827",[q.IMAGE]:"#06b6d4",[q.DRAWING]:"#14b8a6",[q.FRAME]:"#6366f1",[q.VOTING]:"#ef4444",[q.MERMAID]:"#8b5cf6",[q.ANCHOR]:"#f59e0b",[q.WORKFLOW]:"#6366f1",[q.DATABASE]:"#64748b"},X={[U.START]:"play",[U.END]:"stop",[U.HTTP_START]:"download",[U.HTTP_END]:"upload",[U.CHAT_START]:"message-circle",[U.CHAT_OUTPUT]:"message-square",[U.SOCIAL_POST]:"send",[U.FUNCTION]:"code",[U.HTTP]:"globe",[U.CONDITION]:"git-branch",[U.SWITCH]:"git-fork",[U.DELAY]:"clock",[U.PARALLEL]:"git-merge",[U.MERGE]:"merge",[U.LOOP]:"repeat",[U.BREAK]:"circle-stop",[U.WAIT]:"hourglass",[U.TRY_CATCH]:"shield-alert",[U.TRANSFORM]:"shuffle",[U.SUB_WORKFLOW]:"layers",[U.EMAIL]:"mail",[U.EMAIL_READER]:"mail-open",[U.SENDGRID]:"send",[U.NOTIFICATION]:"bell",[U.DATABASE]:"database",[U.VARIABLE]:"box",[U.CHATBOT]:"message-circle",[U.DEBUG]:"bug",[U.LLM]:"brain",[U.OCR]:"scan",[U.INFORMATION_EXTRACTOR]:"search",[U.WEB_SEARCH]:"search",[U.WEB_CRAWL]:"globe",[U.DOCUMENT_GENERATOR]:"file-text",[U.FILE_STORAGE]:"hard-drive",[U.GOOGLE_CLOUD_STORAGE]:"cloud",[U.S3]:"cloud",[U.EMBEDDING]:"hash",[U.DOCUMENT_LOADER]:"file-text",[U.TEXT_SPLITTER]:"scissors",[U.VECTOR_WRITE]:"database",[U.VECTOR_SEARCH]:"search",[U.CONTEXT_BUILDER]:"layers",[U.SUMMARIZATION]:"file-minus",[U.GUARDRAIL]:"shield",[U.SLACK_SEND_MESSAGE]:"message-square",[U.SLACK_GET_CHANNEL_INFO]:"hash",[U.SLACK_LIST_CHANNELS]:"list",[U.SLACK_ADD_REACTION]:"smile-plus",[U.SLACK_UPLOAD_FILE]:"upload",[U.RERANKER]:"arrow-up-down",[U.SHOPIFY]:"shopping-cart",[U.TELEGRAM_SEND]:"send",[U.TWILIO_SMS]:"message-square",[U.TWILIO_VOICE]:"phone",[U.TELEGRAM_BOT]:"send",[U.SLACK_SOCKET]:"message-square",[U.DISCORD_BOT]:"gamepad-2",[U.WHATSAPP_WEBHOOK]:"phone",[U.CUSTOM_WEBSOCKET]:"radio",[U.GOOGLE_CALENDAR]:"calendar",[U.RABBITMQ_TRIGGER]:"inbox",[U.KAFKA]:"message-square-share",[U.KAFKA_TRIGGER]:"radio",[U.ZENDESK]:"ticket",[U.GITLAB]:"git-merge",[U.MCP]:"plug",[U.HUBSPOT]:"users",[U.JIRA]:"ticket",[U.ELASTICSEARCH]:"search",[U.CALENDLY_TRIGGER]:"calendar",[U.UI_TABLE]:"table",[U.NOTE]:"sticky-note",[U.FRAME]:"square",[U.CRON]:"timer",[V.AGENT]:"cpu",[V.TOOL]:"tool",[V.MEMORY]:"hard-drive",[V.CONTEXT_MEMORY]:"brain",[V.PROMPT]:"message-square",[V.LLM]:"brain",[V.RETRIEVER]:"search",[V.CHAIN]:"link",[V.ROUTER]:"git-pull-request",[V.HUMAN_INPUT]:"user",[V.OUTPUT_PARSER]:"file-text",[V.STRUCTURED_OUTPUT]:"braces",[H.TABLE]:"table",[H.VIEW]:"eye",[H.INDEX]:"list",[H.RELATIONSHIP]:"git-merge",[H.CONSTRAINT]:"shield",[H.QUERY]:"terminal",[q.STICKY_NOTE]:"sticky-note",[q.SHAPE_RECTANGLE]:"square",[q.SHAPE_CIRCLE]:"circle",[q.SHAPE_DIAMOND]:"diamond",[q.SHAPE_TRIANGLE]:"triangle",[q.SHAPE_ARROW]:"arrow-right",[q.SHAPE_LINE]:"minus",[q.SHAPE_STAR]:"star",[q.SHAPE_HEXAGON]:"hexagon",[q.TEXT_BLOCK]:"type",[q.IMAGE]:"image",[q.DRAWING]:"pen-tool",[q.FRAME]:"frame",[q.VOTING]:"thumbs-up",[q.MERMAID]:"git-branch",[q.ANCHOR]:"anchor",[q.WORKFLOW]:"layers",[q.DATABASE]:"table"},Z=[{type:U.START,name:"Start",description:"Entry point of the workflow",icon:X[U.START],color:Q[U.START],category:"control",defaultConfig:{},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.END,name:"End",description:"Exit point of the workflow",icon:X[U.END],color:Q[U.END],category:"control",defaultConfig:{},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[]}},{type:U.HTTP_START,name:"HTTP Trigger",description:"Start workflow from HTTP request",icon:X[U.HTTP_START],color:Q[U.HTTP_START],category:"trigger",defaultConfig:{httpPath:"/webhook",httpMethod:"POST",httpAuth:"none",httpCors:!0,httpRateLimit:100,httpRequestSchema:{}},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Request"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.HTTP_END,name:"HTTP Response",description:"Return HTTP response to caller",icon:X[U.HTTP_END],color:Q[U.HTTP_END],category:"control",defaultConfig:{httpStatusCode:200,httpResponseHeaders:{"Content-Type":"application/json"},httpResponseBody:"{{data}}",httpContentType:"application/json"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[]}},{type:U.CHAT_START,name:"Chat Trigger",description:"Start workflow from chatbot message",icon:X[U.CHAT_START],color:Q[U.CHAT_START],category:"trigger",defaultConfig:{outputVariable:"chatInput",enableFileUpload:!1,maxFileSize:10,maxFiles:5,allowImages:!0,allowDocuments:!1,allowText:!1,allowAudio:!1,allowVideo:!1},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Message"},{id:"files",type:J.OUTPUT,label:"Files"}]}},{type:U.CHAT_OUTPUT,name:"Chat Output",description:"Send message to chatbot during execution",icon:X[U.CHAT_OUTPUT],color:Q[U.CHAT_OUTPUT],category:"action",defaultConfig:{message:"${variables.response}",messageType:"text",typing:!1,typingDelay:1e3},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.SOCIAL_POST,name:"Social Post",description:"Post to social feed on behalf of an agent",icon:X[U.SOCIAL_POST],color:Q[U.SOCIAL_POST],category:"action",defaultConfig:{agentId:"",content:"${variables.response}",mediaUrl:"",mediaType:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.LLM,name:"LLM",description:"Call AI language model (OpenAI, Anthropic, etc.)",icon:X[U.LLM],color:Q[U.LLM],category:"action",defaultConfig:{provider:"openai",model:"gpt-4",temperature:.7,maxTokens:2048,systemPrompt:"",userPrompt:"${variables.message}"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"},{id:"context_memory",type:J.INPUT,label:"Context Memory"}],outputs:[{id:"out",type:J.OUTPUT,label:"Response"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.OCR,name:"OCR",description:"Extract text from images using OCR",icon:X[U.OCR],color:Q[U.OCR],category:"action",defaultConfig:{imageSource:"variable",imageField:"${input.files[0].base64}",language:"fr",detectLayout:!1,outputVariable:"ocrResult"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Image"}],outputs:[{id:"out",type:J.OUTPUT,label:"Text"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.INFORMATION_EXTRACTOR,name:"Information Extractor",description:"Extract structured data from unstructured text using AI",icon:X[U.INFORMATION_EXTRACTOR],color:Q[U.INFORMATION_EXTRACTOR],category:"action",defaultConfig:{inputField:"text",schema:[{name:"field1",type:"string",description:"",required:!0}],model:"gpt-4o-mini",provider:"openai",instructions:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Extracted"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.FUNCTION,name:"Function",description:"Invoke a Nuraly function",icon:X[U.FUNCTION],color:Q[U.FUNCTION],category:"action",defaultConfig:{functionId:"",inputMapping:{},outputMapping:{}},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.HTTP,name:"HTTP Request",description:"Make an HTTP request",icon:X[U.HTTP],color:Q[U.HTTP],category:"action",defaultConfig:{method:"GET",url:"",headers:{},timeout:3e4},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Success"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.CONDITION,name:"Condition",description:"Branch based on a condition",icon:X[U.CONDITION],color:Q[U.CONDITION],category:"control",defaultConfig:{expression:"",language:"javascript"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"true",type:J.CONDITIONAL_TRUE,label:"True"},{id:"false",type:J.CONDITIONAL_FALSE,label:"False"}]}},{type:U.DELAY,name:"Delay",description:"Wait for a specified duration",icon:X[U.DELAY],color:Q[U.DELAY],category:"control",defaultConfig:{duration:1e3,unit:"milliseconds"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.PARALLEL,name:"Parallel",description:"Execute branches in parallel",icon:X[U.PARALLEL],color:Q[U.PARALLEL],category:"control",defaultConfig:{},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"branch1",type:J.PARALLEL_BRANCH,label:"Branch 1"},{id:"branch2",type:J.PARALLEL_BRANCH,label:"Branch 2"}]}},{type:U.LOOP,name:"Loop",description:"Iterate over an array",icon:X[U.LOOP],color:Q[U.LOOP],category:"control",defaultConfig:{iteratorVariable:"item",arrayExpression:"",maxIterations:100},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"item",type:J.LOOP_ITEM,label:"Each Item"},{id:"done",type:J.LOOP_DONE,label:"Done"}]}},{type:U.SWITCH,name:"Switch",description:"Route to a branch based on a value",icon:X[U.SWITCH],color:Q[U.SWITCH],category:"control",defaultConfig:{expression:"",language:"javascript",cases:[{value:"case1",label:"Case 1"},{value:"case2",label:"Case 2"}],includeDefault:!0},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"case1",type:J.OUTPUT,label:"Case 1"},{id:"case2",type:J.OUTPUT,label:"Case 2"},{id:"default",type:J.CONDITIONAL_DEFAULT,label:"Default"}]}},{type:U.MERGE,name:"Merge",description:"Join multiple branches into one",icon:X[U.MERGE],color:Q[U.MERGE],category:"control",defaultConfig:{mode:"waitAll"},defaultPorts:{inputs:[{id:"in1",type:J.INPUT,label:"Input 1",multiple:!0},{id:"in2",type:J.INPUT,label:"Input 2",multiple:!0}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.WAIT,name:"Wait",description:"Pause until a signal or event is received",icon:X[U.WAIT],color:Q[U.WAIT],category:"control",defaultConfig:{signalName:"",timeout:3e5},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Signal"},{id:"timeout",type:J.OUTPUT,label:"Timeout"}]}},{type:U.TRY_CATCH,name:"Try / Catch",description:"Catch errors from the connected branch",icon:X[U.TRY_CATCH],color:Q[U.TRY_CATCH],category:"control",defaultConfig:{catchTypes:["*"],errorVariable:"error"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"try",type:J.OUTPUT,label:"Try"},{id:"catch",type:J.ERROR,label:"Catch"}]}},{type:U.BREAK,name:"Break",description:"Exit the enclosing loop",icon:X[U.BREAK],color:Q[U.BREAK],category:"control",defaultConfig:{},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[]}},{type:U.TRANSFORM,name:"Transform",description:"Transform data using expressions",icon:X[U.TRANSFORM],color:Q[U.TRANSFORM],category:"data",defaultConfig:{transformExpression:"",language:"jsonata"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.SUB_WORKFLOW,name:"Sub-Workflow",description:"Invoke another workflow",icon:X[U.SUB_WORKFLOW],color:Q[U.SUB_WORKFLOW],category:"action",defaultConfig:{workflowId:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.EMAIL,name:"Email",description:"Send an email",icon:X[U.EMAIL],color:Q[U.EMAIL],category:"action",defaultConfig:{to:"",cc:"",bcc:"",subject:"",body:"",bodyType:"text",fromName:"",replyTo:"",priority:"normal"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.EMAIL_READER,name:"Email Reader",description:"Read and manage emails from Gmail, Outlook, Yahoo, or IMAP",icon:X[U.EMAIL_READER],color:Q[U.EMAIL_READER],category:"action",defaultConfig:{provider:"imap",operation:"LIST",folder:"INBOX",limit:10,includeAttachments:!1,markAsReadOnFetch:!1,searchQuery:"",host:"",port:993,tls:!0,credentialPath:"",sinceDate:"",beforeDate:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.SENDGRID,name:"SendGrid",description:"Send email via SendGrid API",icon:X[U.SENDGRID],color:Q[U.SENDGRID],category:"action",defaultConfig:{to:"",cc:"",bcc:"",fromEmail:"",fromName:"",replyTo:"",subject:"",body:"",contentType:"text/html",templateId:"",dynamicTemplateData:"",categories:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"},{id:"error",type:J.OUTPUT,label:"Error"}]}},{type:U.NOTIFICATION,name:"Notification",description:"Send a notification",icon:X[U.NOTIFICATION],color:Q[U.NOTIFICATION],category:"action",defaultConfig:{channel:"",message:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.DATABASE,name:"Data",description:"Read and write data to databases",icon:X[U.DATABASE],color:"#6366F1",category:"data",defaultConfig:{operation:P.QUERY,dataSource:null,entity:null,filter:null,fields:{},select:[],orderBy:[],limit:null,offset:null,outputVariable:"results"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.VARIABLE,name:"Variable",description:"Set or get a workflow variable",icon:X[U.VARIABLE],color:Q[U.VARIABLE],category:"data",defaultConfig:{variableOperation:"set",variableName:"",value:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.CHATBOT,name:"Chatbot Trigger",description:"Trigger workflow from chatbot interactions",icon:X[U.CHATBOT],color:Q[U.CHATBOT],category:"trigger",defaultConfig:{triggerEvents:["MESSAGE_SENT"],chatbotSize:"medium",chatbotVariant:"floating",title:"Chat Assistant",subtitle:"Ask me anything",placeholder:"Type a message...",initialMessage:"",enableTypingIndicator:!0,enableSuggestions:!1,suggestions:[],loadingType:"dots",enableFileUpload:!1,maxFileSize:10,maxFiles:5,allowImages:!0,allowDocuments:!1,allowText:!1,allowAudio:!1,allowVideo:!1},defaultPorts:{inputs:[],outputs:[{id:"message",type:J.OUTPUT,label:"Message"},{id:"files",type:J.OUTPUT,label:"Files"},{id:"session",type:J.OUTPUT,label:"Session Start"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.DEBUG,name:"Debug",description:"Display input, output, and variables for debugging",icon:X[U.DEBUG],color:Q[U.DEBUG],category:"data",defaultConfig:{},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.UI_TABLE,name:"Table",description:"Display data as an interactive table",icon:X[U.UI_TABLE],color:Q[U.UI_TABLE],category:"display",defaultConfig:{tableColumns:[],dataExpression:"",tablePageSize:10,tableEnableFilter:!1,tableEnableSort:!0,tableFixedHeader:!1,tableSize:"normal",tableEmptyText:"No data available"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Data"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.WEB_SEARCH,name:"Web Search",description:"Search the web using Google, Bing, Brave, or DuckDuckGo",icon:X[U.WEB_SEARCH],color:Q[U.WEB_SEARCH],category:"web",defaultConfig:{provider:"google",queryField:"query",numResults:10,safeSearch:!0,timeout:3e4},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Results"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.WEB_CRAWL,name:"Web Crawl",description:"Crawl web pages and extract text content",icon:X[U.WEB_CRAWL],color:Q[U.WEB_CRAWL],category:"web",defaultConfig:{urlField:"url",maxDepth:1,maxPages:10,sameDomainOnly:!0,renderJs:!1},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Pages"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.DOCUMENT_GENERATOR,name:"Document Generator",description:"Generate Word documents from templates with dynamic data",icon:X[U.DOCUMENT_GENERATOR],color:Q[U.DOCUMENT_GENERATOR],category:"documents",defaultConfig:{templateId:"",data:{},outputVariable:"documentResult"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Result"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.FILE_STORAGE,name:"File Storage",description:"Store files to S3, MinIO, or local filesystem",icon:X[U.FILE_STORAGE],color:Q[U.FILE_STORAGE],category:"storage",defaultConfig:{provider:"local",bucket:"default",path:"",fileField:"file",filenameField:"filename"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Result"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.GOOGLE_CLOUD_STORAGE,name:"Google Cloud Storage",description:"Manage objects in Google Cloud Storage buckets",icon:X[U.GOOGLE_CLOUD_STORAGE],color:Q[U.GOOGLE_CLOUD_STORAGE],category:"storage",defaultConfig:{operation:"LIST",bucketName:"",objectPath:"",serviceAccountPath:"",signedUrlExpiration:3600},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Result"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.S3,name:"AWS S3",description:"Upload, download, and manage files in Amazon S3",icon:X[U.S3],color:Q[U.S3],category:"integrations",defaultConfig:{s3Operation:"upload",s3Bucket:"",s3Key:"",s3Region:"us-east-1",s3ContentType:"auto"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Result"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.EMBEDDING,name:"Embedding",description:"Convert text to vector embeddings",icon:X[U.EMBEDDING],color:Q[U.EMBEDDING],category:"rag",defaultConfig:{provider:"openai",model:"text-embedding-3-small",inputField:"text",batchSize:100},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Text"}],outputs:[{id:"out",type:J.OUTPUT,label:"Embedding"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.DOCUMENT_LOADER,name:"Document Loader",description:"Load and parse documents (PDF, Word, HTML, etc.)",icon:X[U.DOCUMENT_LOADER],color:Q[U.DOCUMENT_LOADER],category:"rag",defaultConfig:{sourceType:"text",contentField:"content",filenameField:"filename",defaultType:"txt",timeout:3e4},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Document"}],outputs:[{id:"out",type:J.OUTPUT,label:"Content"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.TEXT_SPLITTER,name:"Text Splitter",description:"Split text into chunks for embedding",icon:X[U.TEXT_SPLITTER],color:Q[U.TEXT_SPLITTER],category:"rag",defaultConfig:{strategy:"recursive",chunkSize:1e3,chunkOverlap:200,contentField:"content"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Text"}],outputs:[{id:"out",type:J.OUTPUT,label:"Chunks"}]}},{type:U.VECTOR_WRITE,name:"Vector Write",description:"Store embeddings in vector database",icon:X[U.VECTOR_WRITE],color:Q[U.VECTOR_WRITE],category:"rag",defaultConfig:{collectionName:"",upsertMode:"replace"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Embeddings"}],outputs:[{id:"out",type:J.OUTPUT,label:"Result"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.VECTOR_SEARCH,name:"Vector Search",description:"Search for similar documents in vector store",icon:X[U.VECTOR_SEARCH],color:Q[U.VECTOR_SEARCH],category:"rag",defaultConfig:{collectionName:"",topK:5,minScore:.7,includeContent:!0,includeMetadata:!0,provider:"openai",model:"text-embedding-3-small"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Query"}],outputs:[{id:"out",type:J.OUTPUT,label:"Results"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.CONTEXT_BUILDER,name:"Context Builder",description:"Format retrieved documents into LLM-ready context",icon:X[U.CONTEXT_BUILDER],color:Q[U.CONTEXT_BUILDER],category:"rag",defaultConfig:{template:"default",maxTokens:4e3,maxDocuments:10,includeSourceInfo:!0,includeSimilarityScore:!1,separator:"\n\n---\n\n"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Results"}],outputs:[{id:"out",type:J.OUTPUT,label:"Context"}]}},{type:U.RERANKER,name:"Reranker",description:"Re-rank search results by relevance",icon:X[U.RERANKER],color:Q[U.RERANKER],category:"rag",defaultConfig:{model:"cross-encoder",topK:5,threshold:.5},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Results"}],outputs:[{id:"out",type:J.OUTPUT,label:"Reranked"}]}},{type:U.SUMMARIZATION,name:"Summarize Document",description:"Summarize long text using AI with chunking strategies",icon:X[U.SUMMARIZATION],color:Q[U.SUMMARIZATION],category:"action",defaultConfig:{inputField:"text",outputField:"summary",strategy:"map_reduce",chunkSize:4e3,chunkOverlap:200,model:"gpt-4o-mini"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Summary"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.GUARDRAIL,name:"Guardrail",description:"Validate and filter LLM inputs/outputs for safety",icon:X[U.GUARDRAIL],color:Q[U.GUARDRAIL],category:"safety",defaultConfig:{mode:"input",contentField:"content",onFail:"block",checks:[]},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Passed"},{id:"blocked",type:J.ERROR,label:"Blocked"}]}},{type:U.SLACK_SEND_MESSAGE,name:"Slack: Send Message",description:"Send a message to a Slack channel or user",icon:X[U.SLACK_SEND_MESSAGE],color:Q[U.SLACK_SEND_MESSAGE],category:"slack",defaultConfig:{slackMethod:"api",botToken:"",channel:"",text:"",unfurlLinks:!0,unfurlMedia:!0},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Response"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.SLACK_GET_CHANNEL_INFO,name:"Slack: Channel Info",description:"Get information about a Slack channel",icon:X[U.SLACK_GET_CHANNEL_INFO],color:Q[U.SLACK_GET_CHANNEL_INFO],category:"slack",defaultConfig:{botToken:"",channel:"",includeLocale:!1,includeNumMembers:!1},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Info"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.SLACK_LIST_CHANNELS,name:"Slack: List Channels",description:"List available Slack channels in the workspace",icon:X[U.SLACK_LIST_CHANNELS],color:Q[U.SLACK_LIST_CHANNELS],category:"slack",defaultConfig:{botToken:"",types:"public_channel",excludeArchived:!0,limit:100},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Channels"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.SLACK_ADD_REACTION,name:"Slack: Add Reaction",description:"Add a reaction emoji to a Slack message",icon:X[U.SLACK_ADD_REACTION],color:Q[U.SLACK_ADD_REACTION],category:"slack",defaultConfig:{botToken:"",channel:"",timestamp:"",name:"thumbsup"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Response"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.SLACK_UPLOAD_FILE,name:"Slack: Upload File",description:"Upload a file to a Slack channel",icon:X[U.SLACK_UPLOAD_FILE],color:Q[U.SLACK_UPLOAD_FILE],category:"slack",defaultConfig:{botToken:"",channels:"",filename:"",content:"",title:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Response"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.GOOGLE_CALENDAR,name:"Google Calendar",description:"Create, read, update, and delete Google Calendar events",icon:X[U.GOOGLE_CALENDAR],color:Q[U.GOOGLE_CALENDAR],category:"google-calendar",defaultConfig:{googleCalendarCredential:"",googleCalendarId:"primary",googleCalendarOperation:"getAll",googleCalendarEventSummary:"",googleCalendarEventDescription:"",googleCalendarEventStart:"",googleCalendarEventEnd:"",googleCalendarEventAttendees:"",googleCalendarEventLocation:"",googleCalendarTimeMin:"",googleCalendarTimeMax:"",googleCalendarRecurrence:"",googleCalendarConferenceData:!1},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Response"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.SHOPIFY,name:"Shopify",description:"Manage Shopify products, orders, customers, inventory, and fulfillments via the Admin API",icon:X[U.SHOPIFY],color:Q[U.SHOPIFY],category:"shopify",defaultConfig:{resource:"ORDER",operation:P.LIST,resourceId:"",filters:"",shopDomain:"",accessToken:""},defaultPorts:{inputs:[{id:"input",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.GITLAB,name:"GitLab",description:"Manage GitLab repositories, issues, merge requests, pipelines, and releases",icon:X[U.GITLAB],color:Q[U.GITLAB],category:"developer",defaultConfig:{gitlabBaseUrl:"https://gitlab.com",gitlabAccessToken:"",gitlabResource:"issue",gitlabOperation:"getAll",gitlabProjectId:"",gitlabTitle:"",gitlabDescription:"",gitlabLabels:[],gitlabAssigneeIds:[],gitlabSourceBranch:"",gitlabTargetBranch:"",gitlabRef:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Response"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.TELEGRAM_SEND,name:"Telegram: Send Message",description:"Send a message to a Telegram chat with typing indicator and optional emoji reaction",icon:X[U.TELEGRAM_SEND],color:Q[U.TELEGRAM_SEND],category:"telegram",defaultConfig:{botToken:"",chatId:"",text:"",parseMode:"",replyToMessageId:"",showTyping:!0,reaction:"",disableNotification:!1},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Response"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.ZENDESK,name:"Zendesk",description:"Manage Zendesk tickets, users, organizations, and satisfaction ratings",icon:X[U.ZENDESK],color:Q[U.ZENDESK],category:"zendesk",defaultConfig:{zendeskResource:"TICKET",zendeskOperation:"LIST",zendeskSubdomain:"",zendeskApiToken:"",zendeskEmail:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Response"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.TWILIO_SMS,name:"Twilio: Send SMS",description:"Send an SMS or WhatsApp message via the Twilio API",icon:X[U.TWILIO_SMS],color:Q[U.TWILIO_SMS],category:"twilio",defaultConfig:{twilioAccountSid:"",twilioAuthToken:"",twilioFromNumber:"",twilioToNumber:"",twilioMessageBody:"",twilioOperation:"send_sms",twilioStatusCallback:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Response"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.TWILIO_VOICE,name:"Twilio: Voice Call",description:"Make a voice call via the Twilio API",icon:X[U.TWILIO_VOICE],color:Q[U.TWILIO_VOICE],category:"twilio",defaultConfig:{twilioAccountSid:"",twilioAuthToken:"",twilioFromNumber:"",twilioToNumber:"",twilioOperation:"make_call",twilioVoiceUrl:"",twilioStatusCallback:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Response"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.TELEGRAM_BOT,name:"Telegram Bot",description:"Receive messages from a Telegram bot via polling or webhook",icon:X[U.TELEGRAM_BOT],color:Q[U.TELEGRAM_BOT],category:"trigger",defaultConfig:{botToken:"",mode:"polling",pollingTimeout:30,allowedUpdates:[],allowedChatIds:"",allowedUserIds:""},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Message"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.SLACK_SOCKET,name:"Slack Socket",description:"Receive events via Slack Socket Mode (WebSocket)",icon:X[U.SLACK_SOCKET],color:Q[U.SLACK_SOCKET],category:"trigger",defaultConfig:{appTokenPath:"",botTokenPath:"",eventTypes:[],interactionTypes:[],slashCommands:"",allowedTeamIds:"",allowedChannelIds:"",allowedUserIds:"",ignoreBots:!0},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Event"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.DISCORD_BOT,name:"Discord Bot",description:"Receive events from a Discord bot (Gateway WebSocket)",icon:X[U.DISCORD_BOT],color:Q[U.DISCORD_BOT],category:"trigger",defaultConfig:{botTokenPath:"",intents:["GUILDS","GUILD_MESSAGES","MESSAGE_CONTENT"],eventTypes:[],allowedGuildIds:"",allowedChannelIds:"",allowedUserIds:"",ignoreBots:!0},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Event"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.WHATSAPP_WEBHOOK,name:"WhatsApp",description:"Receive messages via WhatsApp Business API",icon:X[U.WHATSAPP_WEBHOOK],color:Q[U.WHATSAPP_WEBHOOK],category:"trigger",defaultConfig:{phoneNumberId:"",businessAccountId:"",accessTokenPath:"",appSecretPath:"",verifyToken:"",webhookFields:["messages"],messageTypes:[],allowedSenders:"",ignoreStatusUpdates:!1},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Message"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.CUSTOM_WEBSOCKET,name:"WebSocket Listener",description:"Listen for messages on a custom WebSocket endpoint",icon:X[U.CUSTOM_WEBSOCKET],color:Q[U.CUSTOM_WEBSOCKET],category:"trigger",defaultConfig:{url:"",subprotocol:"",authMode:"none",tokenPath:"",username:"",passwordPath:"",headerName:"",headerValuePath:"",queryParamName:"token",queryParamValuePath:"",initialMessage:"",autoReconnect:!0,reconnectDelayMs:5e3,maxReconnectAttempts:0,pingIntervalSec:30,messageFormat:"json",filterExpression:""},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Message"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.RABBITMQ_TRIGGER,name:"RabbitMQ Trigger",description:"Triggers workflow on new messages from a RabbitMQ queue",icon:X[U.RABBITMQ_TRIGGER],color:Q[U.RABBITMQ_TRIGGER],category:"trigger",defaultConfig:{connectionUrl:"",queueName:"",exchange:"",routingKey:"#",autoAck:!1,contentType:"application/json",prefetchCount:1},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Message"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.KAFKA,name:"Kafka: Send Message",description:"Produce a message to a Kafka topic",icon:X[U.KAFKA],color:Q[U.KAFKA],category:"messaging",defaultConfig:{kafkaBrokers:"localhost:9092",kafkaAcks:"all",kafkaCompressionType:"none"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.KAFKA_TRIGGER,name:"Kafka Trigger",description:"Triggers workflow on new messages from a Kafka topic",icon:X[U.KAFKA_TRIGGER],color:Q[U.KAFKA_TRIGGER],category:"messaging",defaultConfig:{kafkaBrokers:"localhost:9092",kafkaConsumerGroup:"nuraly-workflow",kafkaFromBeginning:!1,kafkaSessionTimeout:3e4},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Message"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.CRON,name:"Cron Trigger",description:"Triggers workflow on a scheduled cron expression",icon:X[U.CRON],color:Q[U.CRON],category:"trigger",defaultConfig:{cronExpression:"0 * * * *",timezone:"UTC"},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Tick"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.MCP,name:"MCP Server",description:"Connect to MCP server - provides tools to Agent/LLM nodes",icon:X[U.MCP],color:Q[U.MCP],category:"trigger",defaultConfig:{serverUrl:"",transportType:"streamable_http"},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Event"}]}},{type:U.HUBSPOT,name:"HubSpot",description:"Manage contacts, deals, companies, and tickets via HubSpot CRM",icon:X[U.HUBSPOT],color:Q[U.HUBSPOT],category:"crm",defaultConfig:{hubspotAccessToken:"",hubspotResource:"contact",hubspotOperation:"getAll",hubspotProperties:{},hubspotFilterGroups:[],hubspotLimit:100,hubspotAssociations:[]},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Result"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.JIRA,name:"Jira",description:"Create, update, and manage Jira issues",icon:X[U.JIRA],color:Q[U.JIRA],category:"jira",defaultConfig:{operation:"createIssue",jiraInstanceUrl:"",projectKey:"",issueType:"Task",summary:"",description:"",assignee:"",priority:"Medium",labels:"",jqlQuery:"",transitionId:"",issueKey:"",comment:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Result"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.ELASTICSEARCH,name:"Elasticsearch",description:"Search, index, and manage documents in Elasticsearch",icon:X[U.ELASTICSEARCH],color:Q[U.ELASTICSEARCH],category:"integration",defaultConfig:{elasticsearchUrl:"",elasticsearchCredentialPath:"",elasticsearchOperation:"search",elasticsearchIndex:"",elasticsearchDocumentId:"",elasticsearchQueryBody:"",elasticsearchSize:10,elasticsearchFrom:0,elasticsearchRefresh:"false",elasticsearchTimeout:"30s",elasticsearchRouting:"",outputVariable:"elasticsearchResult"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Result"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.CALENDLY_TRIGGER,name:"Calendly Trigger",description:"Triggers workflow when a Calendly event is booked or cancelled",icon:X[U.CALENDLY_TRIGGER],color:Q[U.CALENDLY_TRIGGER],category:"trigger",defaultConfig:{events:["invitee.created"],scope:"user",outputVariable:"calendlyEvent"},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Event"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.NOTE,name:"Note",description:"Add annotations and comments to your workflow",icon:X[U.NOTE],color:Q[U.NOTE],category:"annotation",defaultConfig:{noteContent:"Add your note here...",noteBackgroundColor:"#fef08a",noteTextColor:"#713f12",noteFontSize:"medium",noteShowBorder:!1},defaultPorts:{inputs:[],outputs:[]}},{type:U.FRAME,name:"Frame",description:"Group related nodes together with a labeled container",icon:X[U.FRAME],color:Q[U.FRAME],category:"annotation",defaultConfig:{frameLabel:"Group",frameWidth:400,frameHeight:300,frameBackgroundColor:"rgba(99, 102, 241, 0.05)",frameBorderColor:"rgba(99, 102, 241, 0.3)",frameLabelPosition:"top-left",frameLabelPlacement:"outside",frameShowLabel:!0,frameCollapsed:!1},defaultPorts:{inputs:[],outputs:[]}},{type:V.AGENT,name:"AI Agent",description:"Autonomous AI agent that can use tools",icon:X[V.AGENT],color:Q[V.AGENT],category:"agent",defaultConfig:{agentId:"",maxIterations:10},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"},{id:"retriever",type:J.INPUT,label:"Retriever"}],configs:[{id:"llm",type:J.CONFIG,label:"LLM"},{id:"prompt",type:J.CONFIG,label:"Prompt"},{id:"memory",type:J.CONFIG,label:"Memory"},{id:"tools",type:J.CONFIG,label:"Tools",multiple:!0},{id:"structured_output",type:J.CONFIG,label:"Structured Output"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:V.TOOL,name:"Tool",description:"A tool that can be used by an agent",icon:X[V.TOOL],color:Q[V.TOOL],category:"agent",defaultConfig:{toolName:"",description:"",parameters:[]},defaultPorts:{inputs:[{id:"function",type:J.INPUT,label:"Function"}],outputs:[{id:"out",type:J.OUTPUT,label:"Tool"}]}},{type:V.MEMORY,name:"Context Memory",description:"Conversation memory for agents - stores and retrieves chat history",icon:X[V.MEMORY],color:Q[V.MEMORY],category:"agent",defaultConfig:{cutoffMode:"message",maxMessages:50,maxTokens:4e3,conversationIdExpression:"${input.threadId}"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Memory Config"}]}},{type:V.CONTEXT_MEMORY,name:"Context Memory (RAG)",description:"RAG-enhanced conversation memory with buffer, semantic, or hybrid modes",icon:X[V.CONTEXT_MEMORY],color:Q[V.CONTEXT_MEMORY],category:"agent",defaultConfig:{memoryType:"hybrid",cutoffMode:"message",maxMessages:50,maxTokens:4e3,conversationIdExpression:"${input.threadId}"},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Memory Config"}]}},{type:V.PROMPT,name:"Prompt",description:"Prompt template for LLM",icon:X[V.PROMPT],color:Q[V.PROMPT],category:"agent",defaultConfig:{template:"",variables:[]},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Prompt"}]}},{type:V.LLM,name:"LLM",description:"Large Language Model call",icon:X[V.LLM],color:Q[V.LLM],category:"agent",defaultConfig:{provider:"openai",modelName:"gpt-4",temperature:.7,maxTokens:2048},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Response"}]}},{type:V.RETRIEVER,name:"Retriever",description:"Retrieve relevant documents from vector store",icon:X[V.RETRIEVER],color:Q[V.RETRIEVER],category:"agent",defaultConfig:{vectorStoreId:"",topK:5},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Query"}],outputs:[{id:"out",type:J.OUTPUT,label:"Documents"}]}},{type:V.CHAIN,name:"Chain",description:"Chain multiple LLM calls together",icon:X[V.CHAIN],color:Q[V.CHAIN],category:"agent",defaultConfig:{chainType:"sequential"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:V.ROUTER,name:"Router",description:"Route to different chains based on input",icon:X[V.ROUTER],color:Q[V.ROUTER],category:"agent",defaultConfig:{routingExpression:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"route1",type:J.OUTPUT,label:"Route 1"},{id:"route2",type:J.OUTPUT,label:"Route 2"},{id:"default",type:J.CONDITIONAL_DEFAULT,label:"Default"}]}},{type:V.HUMAN_INPUT,name:"Human Input",description:"Wait for human input in the workflow",icon:X[V.HUMAN_INPUT],color:Q[V.HUMAN_INPUT],category:"agent",defaultConfig:{prompt:"",timeout:864e5},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Context"}],outputs:[{id:"out",type:J.OUTPUT,label:"Response"}]}},{type:V.OUTPUT_PARSER,name:"Output Parser",description:"Parse LLM output into structured data",icon:X[V.OUTPUT_PARSER],color:Q[V.OUTPUT_PARSER],category:"agent",defaultConfig:{parserType:"json",schema:{}},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Raw Output"}],outputs:[{id:"out",type:J.OUTPUT,label:"Parsed Data"}]}},{type:V.STRUCTURED_OUTPUT,name:"Structured Output",description:"Define a JSON schema to enforce structured LLM output",icon:X[V.STRUCTURED_OUTPUT],color:Q[V.STRUCTURED_OUTPUT],category:"agent",defaultConfig:{schemaName:"structured_output",strict:!0,schema:{type:"object",properties:{},required:[],additionalProperties:!1}},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Schema"}]}},{type:H.TABLE,name:"Table",description:"Define a database table with columns",icon:X[H.TABLE],color:Q[H.TABLE],category:"db-tables-views",defaultConfig:{tableName:"",columns:[],primaryKey:""},defaultPorts:{inputs:[],outputs:[{id:"ref",type:J.OUTPUT,label:"Reference"}]}},{type:H.VIEW,name:"View",description:"Create a database view based on queries",icon:X[H.VIEW],color:Q[H.VIEW],category:"db-tables-views",defaultConfig:{viewName:"",query:"",materialized:!1},defaultPorts:{inputs:[{id:"source",type:J.INPUT,label:"Source Tables"}],outputs:[{id:"ref",type:J.OUTPUT,label:"Reference"}]}},{type:H.INDEX,name:"Index",description:"Create an index on table columns",icon:X[H.INDEX],color:Q[H.INDEX],category:"db-indexes-queries",defaultConfig:{indexName:"",indexColumns:[],unique:!1,indexType:"BTREE"},defaultPorts:{inputs:[{id:"table",type:J.INPUT,label:"Table"}],outputs:[]}},{type:H.RELATIONSHIP,name:"Relationship",description:"Define foreign key relationships between tables",icon:X[H.RELATIONSHIP],color:Q[H.RELATIONSHIP],category:"db-relations-constraints",defaultConfig:{relationshipType:"ONE_TO_MANY",sourceColumn:"",targetColumn:"",onDelete:"CASCADE",onUpdate:"CASCADE"},defaultPorts:{inputs:[{id:"source",type:J.INPUT,label:"Source Table"},{id:"target",type:J.INPUT,label:"Target Table"}],outputs:[]}},{type:H.CONSTRAINT,name:"Constraint",description:"Add constraints (unique, check, foreign_key)",icon:X[H.CONSTRAINT],color:Q[H.CONSTRAINT],category:"db-relations-constraints",defaultConfig:{constraintName:"",constraintType:"UNIQUE",constraintColumns:[],checkExpression:""},defaultPorts:{inputs:[{id:"table",type:J.INPUT,label:"Table"}],outputs:[]}},{type:H.QUERY,name:"Query",description:"Define saved queries or stored procedures",icon:X[H.QUERY],color:Q[H.QUERY],category:"db-indexes-queries",defaultConfig:{queryName:"",queryText:"",parameters:[]},defaultPorts:{inputs:[{id:"tables",type:J.INPUT,label:"Tables"}],outputs:[{id:"result",type:J.OUTPUT,label:"Result Schema"}]}},{type:q.STICKY_NOTE,name:"Sticky Note",description:"Add a sticky note to the whiteboard",icon:X[q.STICKY_NOTE],color:Q[q.STICKY_NOTE],category:"wb-notes-text",defaultConfig:{textContent:"",backgroundColor:"#fef08a",textColor:"#713f12",fontSize:14,width:200,height:200},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.TEXT_BLOCK,name:"Text Block",description:"Add a text block to the whiteboard",icon:X[q.TEXT_BLOCK],color:Q[q.TEXT_BLOCK],category:"wb-notes-text",defaultConfig:{textContent:"",fontSize:16,fontWeight:"normal",textAlign:"left",width:200,height:50},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.SHAPE_RECTANGLE,name:"Rectangle",description:"Add a rectangle shape",icon:X[q.SHAPE_RECTANGLE],color:Q[q.SHAPE_RECTANGLE],category:"wb-shapes",defaultConfig:{width:120,height:120,fillColor:"#3b82f6"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.SHAPE_CIRCLE,name:"Circle",description:"Add a circle shape",icon:X[q.SHAPE_CIRCLE],color:Q[q.SHAPE_CIRCLE],category:"wb-shapes",defaultConfig:{width:120,height:120,fillColor:"#8b5cf6"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.SHAPE_DIAMOND,name:"Diamond",description:"Add a diamond shape",icon:X[q.SHAPE_DIAMOND],color:Q[q.SHAPE_DIAMOND],category:"wb-shapes",defaultConfig:{width:120,height:120,fillColor:"#f59e0b"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.SHAPE_TRIANGLE,name:"Triangle",description:"Add a triangle shape",icon:X[q.SHAPE_TRIANGLE],color:Q[q.SHAPE_TRIANGLE],category:"wb-shapes",defaultConfig:{width:120,height:120,fillColor:"#22c55e"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.SHAPE_ARROW,name:"Arrow",description:"Add an arrow shape",icon:X[q.SHAPE_ARROW],color:Q[q.SHAPE_ARROW],category:"wb-shapes",defaultConfig:{width:120,height:60,fillColor:"#6b7280"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.SHAPE_LINE,name:"Line",description:"Add a line shape",icon:X[q.SHAPE_LINE],color:Q[q.SHAPE_LINE],category:"wb-shapes",defaultConfig:{width:120,height:4,fillColor:"#6b7280"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.SHAPE_STAR,name:"Star",description:"Add a star shape",icon:X[q.SHAPE_STAR],color:Q[q.SHAPE_STAR],category:"wb-shapes",defaultConfig:{width:120,height:120,fillColor:"#f97316"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.SHAPE_HEXAGON,name:"Hexagon",description:"Add a hexagon shape",icon:X[q.SHAPE_HEXAGON],color:Q[q.SHAPE_HEXAGON],category:"wb-shapes",defaultConfig:{width:120,height:120,fillColor:"#ec4899"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.IMAGE,name:"Image",description:"Add an image to the whiteboard",icon:X[q.IMAGE],color:Q[q.IMAGE],category:"wb-media",defaultConfig:{imageUrl:"",width:200,height:200},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.DRAWING,name:"Drawing",description:"Add a freehand drawing area",icon:X[q.DRAWING],color:Q[q.DRAWING],category:"wb-media",defaultConfig:{pathData:"",width:200,height:200},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.VOTING,name:"Voting",description:"Add a voting element for collaboration",icon:X[q.VOTING],color:Q[q.VOTING],category:"wb-media",defaultConfig:{textContent:"Vote",width:200,height:150},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.MERMAID,name:"Mermaid Diagram",description:"Add a Mermaid diagram to the whiteboard",icon:X[q.MERMAID],color:Q[q.MERMAID],category:"wb-media",defaultConfig:{textContent:"graph TD\n A[Start] --\x3e B[End]",width:400,height:300},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.ANCHOR,name:"Anchor",description:"Navigation anchor — other elements can link here",icon:X[q.ANCHOR],color:Q[q.ANCHOR],category:"wb-navigation",defaultConfig:{anchorLabel:"Anchor",width:120,height:48},defaultPorts:{inputs:[],outputs:[]}},{type:q.FRAME,name:"Frame",description:"Group whiteboard elements together",icon:X[q.FRAME],color:Q[q.FRAME],category:"wb-layout",defaultConfig:{frameLabel:"Group",frameWidth:400,frameHeight:300,frameBackgroundColor:"rgba(99, 102, 241, 0.05)",frameBorderColor:"rgba(99, 102, 241, 0.3)",frameLabelPosition:"top-left",frameLabelPlacement:"outside",frameShowLabel:!0,frameCollapsed:!1},defaultPorts:{inputs:[],outputs:[]}},{type:q.WORKFLOW,name:"Workflow",description:"Embed a workflow on the whiteboard",icon:X[q.WORKFLOW],color:Q[q.WORKFLOW],category:"wb-media",defaultConfig:{workflowId:"",workflowName:"Workflow",workflowSteps:[],width:280,height:200},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.DATABASE,name:"Database Table",description:"Embed a database table on the whiteboard",icon:X[q.DATABASE],color:Q[q.DATABASE],category:"wb-media",defaultConfig:{dbTableId:"",dbTableName:"Table",dbTableColumns:[],dbPrimaryKey:"",width:280,height:200},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}}],ee=[{id:"trigger",name:"Triggers",icon:"zap",nodeTypes:[U.START,U.HTTP_START,U.CHAT_START,U.CRON,U.TELEGRAM_BOT,U.SLACK_SOCKET,U.DISCORD_BOT,U.WHATSAPP_WEBHOOK,U.CUSTOM_WEBSOCKET,U.MCP,U.CALENDLY_TRIGGER],canvasType:G.WORKFLOW},{id:"control",name:"Control Flow",icon:"git-branch",nodeTypes:[U.END,U.HTTP_END,U.CONDITION,U.SWITCH,U.DELAY,U.WAIT,U.PARALLEL,U.MERGE,U.LOOP,U.BREAK,U.TRY_CATCH],canvasType:G.WORKFLOW},{id:"action",name:"Actions",icon:"zap",nodeTypes:[U.FUNCTION,U.HTTP,U.INFORMATION_EXTRACTOR,U.OCR,U.CHAT_OUTPUT,U.SOCIAL_POST,U.SUB_WORKFLOW,U.EMAIL,U.EMAIL_READER,U.SENDGRID,U.NOTIFICATION,U.DOCUMENT_GENERATOR,U.SUMMARIZATION],canvasType:G.WORKFLOW},{id:"data",name:"Data",icon:"database",nodeTypes:[U.TRANSFORM,U.DATABASE,U.ELASTICSEARCH,U.VARIABLE,U.DEBUG],canvasType:G.WORKFLOW},{id:"web",name:"Web",icon:"globe",nodeTypes:[U.WEB_SEARCH,U.WEB_CRAWL],canvasType:G.WORKFLOW},{id:"storage",name:"Storage",icon:"hard-drive",nodeTypes:[U.FILE_STORAGE,U.GOOGLE_CLOUD_STORAGE,U.S3],canvasType:G.WORKFLOW},{id:"messaging",name:"Messaging",icon:"inbox",nodeTypes:[U.RABBITMQ_TRIGGER,U.KAFKA,U.KAFKA_TRIGGER],canvasType:G.WORKFLOW},{id:"rag",name:"RAG",icon:"layers",nodeTypes:[U.DOCUMENT_LOADER,U.TEXT_SPLITTER,U.EMBEDDING,U.VECTOR_WRITE,U.VECTOR_SEARCH,U.CONTEXT_BUILDER,U.RERANKER],canvasType:G.WORKFLOW},{id:"safety",name:"Safety",icon:"shield",nodeTypes:[U.GUARDRAIL],canvasType:G.WORKFLOW},{id:"display",name:"Display",icon:"monitor",nodeTypes:[U.UI_TABLE],canvasType:G.WORKFLOW},{id:"google-calendar",name:"Google Calendar",icon:"calendar",nodeTypes:[U.GOOGLE_CALENDAR],canvasType:G.WORKFLOW},{id:"shopify",name:"Shopify",icon:"shopping-cart",nodeTypes:[U.SHOPIFY],canvasType:G.WORKFLOW},{id:"twilio",name:"Twilio",icon:"phone",nodeTypes:[U.TWILIO_SMS,U.TWILIO_VOICE],canvasType:G.WORKFLOW},{id:"telegram",name:"Telegram",icon:"send",nodeTypes:[U.TELEGRAM_SEND],canvasType:G.WORKFLOW},{id:"zendesk",name:"Zendesk",icon:"ticket",nodeTypes:[U.ZENDESK],canvasType:G.WORKFLOW},{id:"slack",name:"Slack",icon:"message-square",nodeTypes:[U.SLACK_SEND_MESSAGE,U.SLACK_GET_CHANNEL_INFO,U.SLACK_LIST_CHANNELS,U.SLACK_ADD_REACTION,U.SLACK_UPLOAD_FILE],canvasType:G.WORKFLOW},{id:"crm",name:"CRM",icon:"users",nodeTypes:[U.HUBSPOT],canvasType:G.WORKFLOW},{id:"jira",name:"Jira",icon:"ticket",nodeTypes:[U.JIRA],canvasType:G.WORKFLOW},{id:"gitlab",name:"GitLab",icon:"git-merge",nodeTypes:[U.GITLAB],canvasType:G.WORKFLOW},{id:"annotation",name:"Annotations",icon:"message-square",nodeTypes:[U.NOTE,U.FRAME],canvasType:G.WORKFLOW},{id:"agent",name:"AI Agents",icon:"cpu",nodeTypes:[V.AGENT,V.LLM,V.PROMPT,V.MEMORY,V.CONTEXT_MEMORY,V.TOOL,V.RETRIEVER,V.CHAIN,V.ROUTER,V.HUMAN_INPUT,V.OUTPUT_PARSER,V.STRUCTURED_OUTPUT],canvasType:G.WORKFLOW},{id:"db-tables-views",name:"Tables & Views",icon:"table",nodeTypes:[H.TABLE,H.VIEW],canvasType:G.DATABASE},{id:"db-relations-constraints",name:"Relations & Constraints",icon:"git-merge",nodeTypes:[H.RELATIONSHIP,H.CONSTRAINT],canvasType:G.DATABASE},{id:"db-indexes-queries",name:"Indexes & Queries",icon:"list",nodeTypes:[H.INDEX,H.QUERY],canvasType:G.DATABASE},{id:"wb-notes-text",name:"Notes & Text",icon:"sticky-note",nodeTypes:[q.STICKY_NOTE,q.TEXT_BLOCK],canvasType:G.WHITEBOARD},{id:"wb-shapes",name:"Shapes",icon:"square",nodeTypes:[q.SHAPE_RECTANGLE,q.SHAPE_CIRCLE,q.SHAPE_DIAMOND,q.SHAPE_TRIANGLE,q.SHAPE_ARROW,q.SHAPE_LINE,q.SHAPE_STAR,q.SHAPE_HEXAGON],canvasType:G.WHITEBOARD},{id:"wb-media",name:"Media & Interactive",icon:"image",nodeTypes:[q.IMAGE,q.DRAWING,q.VOTING,q.MERMAID],canvasType:G.WHITEBOARD},{id:"wb-navigation",name:"Navigation",icon:"anchor",nodeTypes:[q.ANCHOR],canvasType:G.WHITEBOARD},{id:"wb-layout",name:"Layout",icon:"frame",nodeTypes:[q.FRAME],canvasType:G.WHITEBOARD}];function te(e){return Z.find(t=>t.type===e)}function ie(e){return Object.values(V).includes(e)}function ne(e){return Object.values(U).includes(e)}function ae(e){return Object.values(H).includes(e)}function oe(e){return Object.values(q).includes(e)}function se(e){return ee.filter(t=>t.canvasType===e)}function re(e,t,i){var n;const a=te(e);return a?{id:i||"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}),name:a.name,type:a.type,position:t,configuration:Object.assign({},a.defaultConfig),ports:{inputs:a.defaultPorts.inputs.map(e=>Object.assign({},e)),configs:null===(n=a.defaultPorts.configs)||void 0===n?void 0:n.map(e=>Object.assign({},e)),outputs:a.defaultPorts.outputs.map(e=>Object.assign({},e))},metadata:{icon:a.icon,color:a.color,description:a.description},status:K.IDLE,selected:!1}:null}const le=[{name:"Yellow",bg:"#fef08a",text:"#713f12"},{name:"Blue",bg:"#bfdbfe",text:"#1e3a5f"},{name:"Green",bg:"#bbf7d0",text:"#14532d"},{name:"Pink",bg:"#fbcfe8",text:"#831843"},{name:"Orange",bg:"#fed7aa",text:"#7c2d12"},{name:"Purple",bg:"#ddd6fe",text:"#4c1d95"},{name:"Gray",bg:"#e5e7eb",text:"#374151"}],ce=[{name:"Indigo",bg:"rgba(99, 102, 241, 0.05)",border:"rgba(99, 102, 241, 0.3)",solid:"#6366f1"},{name:"Blue",bg:"rgba(59, 130, 246, 0.05)",border:"rgba(59, 130, 246, 0.3)",solid:"#3b82f6"},{name:"Green",bg:"rgba(34, 197, 94, 0.05)",border:"rgba(34, 197, 94, 0.3)",solid:"#22c55e"},{name:"Orange",bg:"rgba(249, 115, 22, 0.05)",border:"rgba(249, 115, 22, 0.3)",solid:"#f97316"},{name:"Red",bg:"rgba(239, 68, 68, 0.05)",border:"rgba(239, 68, 68, 0.3)",solid:"#ef4444"},{name:"Purple",bg:"rgba(168, 85, 247, 0.05)",border:"rgba(168, 85, 247, 0.3)",solid:"#a855f7"},{name:"Gray",bg:"rgba(107, 114, 128, 0.05)",border:"rgba(107, 114, 128, 0.3)",solid:"#6b7280"}];function de(e){return e===U.NOTE||e===U.FRAME}function pe(e){return e===U.FRAME}function he(e){return e===U.NOTE}const ue=new Set([U.TELEGRAM_BOT,U.SLACK_SOCKET,U.DISCORD_BOT,U.WHATSAPP_WEBHOOK,U.CUSTOM_WEBSOCKET,U.RABBITMQ_TRIGGER,U.CALENDLY_TRIGGER,U.KAFKA_TRIGGER,U.CRON]);function be(e){return ue.has(e)}
|
|
106
|
+
*/var U,V,H,q,G,W,K,J,Y;!function(e){e.START="START",e.END="END",e.HTTP_START="HTTP_START",e.HTTP_END="HTTP_END",e.CHAT_START="CHAT_START",e.CHAT_OUTPUT="CHAT_OUTPUT",e.SOCIAL_POST="SOCIAL_POST",e.FUNCTION="FUNCTION",e.HTTP="HTTP",e.CONDITION="CONDITION",e.SWITCH="SWITCH",e.DELAY="DELAY",e.PARALLEL="PARALLEL",e.MERGE="MERGE",e.LOOP="LOOP",e.BREAK="BREAK",e.WAIT="WAIT",e.TRY_CATCH="TRY_CATCH",e.TRANSFORM="TRANSFORM",e.SUB_WORKFLOW="SUB_WORKFLOW",e.EMAIL="EMAIL",e.EMAIL_READER="EMAIL_READER",e.SENDGRID="SENDGRID",e.NOTIFICATION="NOTIFICATION",e.DATABASE="DATABASE",e.VARIABLE="VARIABLE",e.CHATBOT="CHATBOT",e.DEBUG="DEBUG",e.LLM="LLM",e.OCR="OCR",e.WEB_SEARCH="WEB_SEARCH",e.WEB_CRAWL="WEB_CRAWL",e.DOCUMENT_GENERATOR="DOCUMENT_GENERATOR",e.FILE_STORAGE="FILE_STORAGE",e.GOOGLE_CLOUD_STORAGE="GOOGLE_CLOUD_STORAGE",e.S3="S3",e.EMBEDDING="EMBEDDING",e.DOCUMENT_LOADER="DOCUMENT_LOADER",e.TEXT_SPLITTER="TEXT_SPLITTER",e.VECTOR_WRITE="VECTOR_WRITE",e.VECTOR_SEARCH="VECTOR_SEARCH",e.CONTEXT_BUILDER="CONTEXT_BUILDER",e.SUMMARIZATION="SUMMARIZATION",e.GUARDRAIL="GUARDRAIL",e.SLACK_SEND_MESSAGE="SLACK_SEND_MESSAGE",e.SLACK_GET_CHANNEL_INFO="SLACK_GET_CHANNEL_INFO",e.SLACK_LIST_CHANNELS="SLACK_LIST_CHANNELS",e.SLACK_ADD_REACTION="SLACK_ADD_REACTION",e.SLACK_UPLOAD_FILE="SLACK_UPLOAD_FILE",e.RERANKER="RERANKER",e.SHOPIFY="SHOPIFY",e.TELEGRAM_SEND="TELEGRAM_SEND",e.TWILIO_SMS="TWILIO_SMS",e.TWILIO_VOICE="TWILIO_VOICE",e.TELEGRAM_BOT="TELEGRAM_BOT",e.SLACK_SOCKET="SLACK_SOCKET",e.DISCORD_BOT="DISCORD_BOT",e.WHATSAPP_WEBHOOK="WHATSAPP_WEBHOOK",e.CUSTOM_WEBSOCKET="CUSTOM_WEBSOCKET",e.GOOGLE_CALENDAR="GOOGLE_CALENDAR",e.RABBITMQ_TRIGGER="RABBITMQ_TRIGGER",e.KAFKA="KAFKA",e.KAFKA_TRIGGER="KAFKA_TRIGGER",e.ZENDESK="ZENDESK",e.GITLAB="GITLAB",e.MCP="MCP",e.INFORMATION_EXTRACTOR="INFORMATION_EXTRACTOR",e.HUBSPOT="HUBSPOT",e.JIRA="JIRA",e.ELASTICSEARCH="ELASTICSEARCH",e.CALENDLY_TRIGGER="CALENDLY_TRIGGER",e.UI_TABLE="UI_TABLE",e.NOTE="NOTE",e.FRAME="FRAME",e.CRON="CRON"}(U||(U={})),function(e){e.AGENT="AGENT",e.TOOL="TOOL",e.MEMORY="MEMORY",e.CONTEXT_MEMORY="CONTEXT_MEMORY",e.PROMPT="PROMPT",e.LLM="AGENT_LLM",e.RETRIEVER="RETRIEVER",e.CHAIN="CHAIN",e.ROUTER="ROUTER",e.HUMAN_INPUT="HUMAN_INPUT",e.OUTPUT_PARSER="OUTPUT_PARSER",e.STRUCTURED_OUTPUT="STRUCTURED_OUTPUT"}(V||(V={})),function(e){e.TABLE="DB_TABLE",e.VIEW="DB_VIEW",e.INDEX="DB_INDEX",e.RELATIONSHIP="DB_RELATIONSHIP",e.CONSTRAINT="DB_CONSTRAINT",e.QUERY="DB_QUERY"}(H||(H={})),function(e){e.STICKY_NOTE="WB_STICKY_NOTE",e.SHAPE_RECTANGLE="WB_SHAPE_RECTANGLE",e.SHAPE_CIRCLE="WB_SHAPE_CIRCLE",e.SHAPE_DIAMOND="WB_SHAPE_DIAMOND",e.SHAPE_TRIANGLE="WB_SHAPE_TRIANGLE",e.SHAPE_ARROW="WB_SHAPE_ARROW",e.SHAPE_LINE="WB_SHAPE_LINE",e.SHAPE_STAR="WB_SHAPE_STAR",e.SHAPE_HEXAGON="WB_SHAPE_HEXAGON",e.TEXT_BLOCK="WB_TEXT_BLOCK",e.IMAGE="WB_IMAGE",e.DRAWING="WB_DRAWING",e.FRAME="WB_FRAME",e.VOTING="WB_VOTING",e.MERMAID="WB_MERMAID",e.ANCHOR="WB_ANCHOR",e.WORKFLOW="WB_WORKFLOW",e.DATABASE="WB_DATABASE"}(q||(q={})),function(e){e.WORKFLOW="WORKFLOW",e.DATABASE="DATABASE",e.WHITEBOARD="WHITEBOARD"}(G||(G={})),function(e){e.DISCONNECTED="DISCONNECTED",e.CONNECTING="CONNECTING",e.CONNECTED="CONNECTED",e.PAUSED="PAUSED",e.HANDOFF_PENDING="HANDOFF_PENDING",e.ERROR="ERROR"}(W||(W={})),function(e){e.IDLE="IDLE",e.PENDING="PENDING",e.RUNNING="RUNNING",e.COMPLETED="COMPLETED",e.FAILED="FAILED",e.CANCELLED="CANCELLED",e.PAUSED="PAUSED",e.WAITING="WAITING"}(K||(K={})),function(e){e.INPUT="INPUT",e.OUTPUT="OUTPUT",e.CONFIG="CONFIG",e.CONDITIONAL_TRUE="CONDITIONAL_TRUE",e.CONDITIONAL_FALSE="CONDITIONAL_FALSE",e.CONDITIONAL_DEFAULT="CONDITIONAL_DEFAULT",e.LOOP_ITEM="LOOP_ITEM",e.LOOP_DONE="LOOP_DONE",e.PARALLEL_BRANCH="PARALLEL_BRANCH",e.ERROR="ERROR"}(J||(J={})),function(e){e.SELECT="SELECT",e.PAN="PAN",e.CONNECT="CONNECT",e.ADD_NODE="ADD_NODE"}(Y||(Y={}));const Q={[U.START]:"#22c55e",[U.END]:"#ef4444",[U.HTTP_START]:"#059669",[U.HTTP_END]:"#dc2626",[U.CHAT_START]:"#0ea5e9",[U.CHAT_OUTPUT]:"#06b6d4",[U.SOCIAL_POST]:"#7c3aed",[U.FUNCTION]:"#3b82f6",[U.HTTP]:"#8b5cf6",[U.CONDITION]:"#f59e0b",[U.SWITCH]:"#eab308",[U.DELAY]:"#6b7280",[U.PARALLEL]:"#06b6d4",[U.MERGE]:"#0891b2",[U.LOOP]:"#ec4899",[U.BREAK]:"#991b1b",[U.WAIT]:"#a78bfa",[U.TRY_CATCH]:"#f43f5e",[U.TRANSFORM]:"#14b8a6",[U.SUB_WORKFLOW]:"#6366f1",[U.EMAIL]:"#f97316",[U.EMAIL_READER]:"#06b6d4",[U.SENDGRID]:"#1A82E2",[U.NOTIFICATION]:"#84cc16",[U.DATABASE]:"#a855f7",[U.VARIABLE]:"#64748b",[U.CHATBOT]:"#0ea5e9",[U.DEBUG]:"#f97316",[U.LLM]:"#22d3ee",[U.OCR]:"#0d9488",[U.INFORMATION_EXTRACTOR]:"#8B5CF6",[U.WEB_SEARCH]:"#3b82f6",[U.WEB_CRAWL]:"#6366f1",[U.DOCUMENT_GENERATOR]:"#0284c7",[U.FILE_STORAGE]:"#f59e0b",[U.GOOGLE_CLOUD_STORAGE]:"#4285f4",[U.S3]:"#FF9900",[U.EMBEDDING]:"#8b5cf6",[U.DOCUMENT_LOADER]:"#ec4899",[U.TEXT_SPLITTER]:"#14b8a6",[U.VECTOR_WRITE]:"#10b981",[U.VECTOR_SEARCH]:"#06b6d4",[U.CONTEXT_BUILDER]:"#a855f7",[U.SUMMARIZATION]:"#8B5CF6",[U.GUARDRAIL]:"#ef4444",[U.SLACK_SEND_MESSAGE]:"#4A154B",[U.SLACK_GET_CHANNEL_INFO]:"#4A154B",[U.SLACK_LIST_CHANNELS]:"#4A154B",[U.SLACK_ADD_REACTION]:"#4A154B",[U.SLACK_UPLOAD_FILE]:"#4A154B",[U.RERANKER]:"#d946ef",[U.SHOPIFY]:"#96bf48",[U.TELEGRAM_SEND]:"#0088cc",[U.TWILIO_SMS]:"#F22F46",[U.TWILIO_VOICE]:"#F22F46",[U.TELEGRAM_BOT]:"#0088cc",[U.SLACK_SOCKET]:"#4A154B",[U.DISCORD_BOT]:"#5865F2",[U.WHATSAPP_WEBHOOK]:"#25D366",[U.CUSTOM_WEBSOCKET]:"#6366f1",[U.GOOGLE_CALENDAR]:"#4285F4",[U.RABBITMQ_TRIGGER]:"#FF6600",[U.KAFKA]:"#231F20",[U.KAFKA_TRIGGER]:"#231F20",[U.ZENDESK]:"#03363d",[U.GITLAB]:"#FC6D26",[U.MCP]:"#7c3aed",[U.HUBSPOT]:"#FF7A59",[U.JIRA]:"#0052CC",[U.ELASTICSEARCH]:"#00bfb3",[U.CALENDLY_TRIGGER]:"#006BFF",[U.UI_TABLE]:"#0891b2",[U.NOTE]:"#fef08a",[U.FRAME]:"#6366f1",[U.CRON]:"#d97706",[V.AGENT]:"#10b981",[V.TOOL]:"#0ea5e9",[V.MEMORY]:"#d946ef",[V.CONTEXT_MEMORY]:"#c026d3",[V.PROMPT]:"#f472b6",[V.LLM]:"#22d3ee",[V.RETRIEVER]:"#a78bfa",[V.CHAIN]:"#fbbf24",[V.ROUTER]:"#fb923c",[V.HUMAN_INPUT]:"#4ade80",[V.OUTPUT_PARSER]:"#2dd4bf",[V.STRUCTURED_OUTPUT]:"#f59e0b",[H.TABLE]:"#64748b",[H.VIEW]:"#a855f7",[H.INDEX]:"#f59e0b",[H.RELATIONSHIP]:"#ec4899",[H.CONSTRAINT]:"#ef4444",[H.QUERY]:"#06b6d4",[q.STICKY_NOTE]:"#fef08a",[q.SHAPE_RECTANGLE]:"#3b82f6",[q.SHAPE_CIRCLE]:"#8b5cf6",[q.SHAPE_DIAMOND]:"#f59e0b",[q.SHAPE_TRIANGLE]:"#22c55e",[q.SHAPE_ARROW]:"#6b7280",[q.SHAPE_LINE]:"#6b7280",[q.SHAPE_STAR]:"#f97316",[q.SHAPE_HEXAGON]:"#ec4899",[q.TEXT_BLOCK]:"#111827",[q.IMAGE]:"#06b6d4",[q.DRAWING]:"#14b8a6",[q.FRAME]:"#6366f1",[q.VOTING]:"#ef4444",[q.MERMAID]:"#8b5cf6",[q.ANCHOR]:"#f59e0b",[q.WORKFLOW]:"#6366f1",[q.DATABASE]:"#64748b"},X={[U.START]:"play",[U.END]:"stop",[U.HTTP_START]:"download",[U.HTTP_END]:"upload",[U.CHAT_START]:"message-circle",[U.CHAT_OUTPUT]:"message-square",[U.SOCIAL_POST]:"send",[U.FUNCTION]:"code",[U.HTTP]:"globe",[U.CONDITION]:"git-branch",[U.SWITCH]:"git-fork",[U.DELAY]:"clock",[U.PARALLEL]:"git-merge",[U.MERGE]:"merge",[U.LOOP]:"repeat",[U.BREAK]:"circle-stop",[U.WAIT]:"hourglass",[U.TRY_CATCH]:"shield-alert",[U.TRANSFORM]:"shuffle",[U.SUB_WORKFLOW]:"layers",[U.EMAIL]:"mail",[U.EMAIL_READER]:"mail-open",[U.SENDGRID]:"send",[U.NOTIFICATION]:"bell",[U.DATABASE]:"database",[U.VARIABLE]:"box",[U.CHATBOT]:"message-circle",[U.DEBUG]:"bug",[U.LLM]:"brain",[U.OCR]:"scan",[U.INFORMATION_EXTRACTOR]:"search",[U.WEB_SEARCH]:"search",[U.WEB_CRAWL]:"globe",[U.DOCUMENT_GENERATOR]:"file-text",[U.FILE_STORAGE]:"hard-drive",[U.GOOGLE_CLOUD_STORAGE]:"cloud",[U.S3]:"cloud",[U.EMBEDDING]:"hash",[U.DOCUMENT_LOADER]:"file-text",[U.TEXT_SPLITTER]:"scissors",[U.VECTOR_WRITE]:"database",[U.VECTOR_SEARCH]:"search",[U.CONTEXT_BUILDER]:"layers",[U.SUMMARIZATION]:"file-minus",[U.GUARDRAIL]:"shield",[U.SLACK_SEND_MESSAGE]:"message-square",[U.SLACK_GET_CHANNEL_INFO]:"hash",[U.SLACK_LIST_CHANNELS]:"list",[U.SLACK_ADD_REACTION]:"smile-plus",[U.SLACK_UPLOAD_FILE]:"upload",[U.RERANKER]:"arrow-up-down",[U.SHOPIFY]:"shopping-cart",[U.TELEGRAM_SEND]:"send",[U.TWILIO_SMS]:"message-square",[U.TWILIO_VOICE]:"phone",[U.TELEGRAM_BOT]:"send",[U.SLACK_SOCKET]:"message-square",[U.DISCORD_BOT]:"gamepad-2",[U.WHATSAPP_WEBHOOK]:"phone",[U.CUSTOM_WEBSOCKET]:"radio",[U.GOOGLE_CALENDAR]:"calendar",[U.RABBITMQ_TRIGGER]:"inbox",[U.KAFKA]:"message-square-share",[U.KAFKA_TRIGGER]:"radio",[U.ZENDESK]:"ticket",[U.GITLAB]:"git-merge",[U.MCP]:"plug",[U.HUBSPOT]:"users",[U.JIRA]:"ticket",[U.ELASTICSEARCH]:"search",[U.CALENDLY_TRIGGER]:"calendar",[U.UI_TABLE]:"table",[U.NOTE]:"sticky-note",[U.FRAME]:"square",[U.CRON]:"timer",[V.AGENT]:"cpu",[V.TOOL]:"tool",[V.MEMORY]:"hard-drive",[V.CONTEXT_MEMORY]:"brain",[V.PROMPT]:"message-square",[V.LLM]:"brain",[V.RETRIEVER]:"search",[V.CHAIN]:"link",[V.ROUTER]:"git-pull-request",[V.HUMAN_INPUT]:"user",[V.OUTPUT_PARSER]:"file-text",[V.STRUCTURED_OUTPUT]:"braces",[H.TABLE]:"table",[H.VIEW]:"eye",[H.INDEX]:"list",[H.RELATIONSHIP]:"git-merge",[H.CONSTRAINT]:"shield",[H.QUERY]:"terminal",[q.STICKY_NOTE]:"sticky-note",[q.SHAPE_RECTANGLE]:"square",[q.SHAPE_CIRCLE]:"circle",[q.SHAPE_DIAMOND]:"diamond",[q.SHAPE_TRIANGLE]:"triangle",[q.SHAPE_ARROW]:"arrow-right",[q.SHAPE_LINE]:"minus",[q.SHAPE_STAR]:"star",[q.SHAPE_HEXAGON]:"hexagon",[q.TEXT_BLOCK]:"type",[q.IMAGE]:"image",[q.DRAWING]:"pen-tool",[q.FRAME]:"frame",[q.VOTING]:"thumbs-up",[q.MERMAID]:"git-branch",[q.ANCHOR]:"anchor",[q.WORKFLOW]:"layers",[q.DATABASE]:"table"},Z=[{type:U.START,name:"Start",description:"Entry point of the workflow",icon:X[U.START],color:Q[U.START],category:"control",defaultConfig:{},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.END,name:"End",description:"Exit point of the workflow",icon:X[U.END],color:Q[U.END],category:"control",defaultConfig:{},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[]}},{type:U.HTTP_START,name:"HTTP Trigger",description:"Start workflow from HTTP request",icon:X[U.HTTP_START],color:Q[U.HTTP_START],category:"trigger",defaultConfig:{httpPath:"/webhook",httpMethod:"POST",httpAuth:"none",httpAuthSecretKey:"",httpCors:!0,httpRateLimit:100,httpRequestSchema:{}},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Request"}]}},{type:U.HTTP_END,name:"HTTP Response",description:"Return HTTP response to caller",icon:X[U.HTTP_END],color:Q[U.HTTP_END],category:"control",defaultConfig:{httpStatusCode:200,httpResponseHeaders:{"Content-Type":"application/json"},httpResponseBody:"{{data}}",httpContentType:"application/json"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[]}},{type:U.CHAT_START,name:"Chat Trigger",description:"Start workflow from chatbot message",icon:X[U.CHAT_START],color:Q[U.CHAT_START],category:"trigger",defaultConfig:{outputVariable:"chatInput",enableFileUpload:!1,maxFileSize:10,maxFiles:5,allowImages:!0,allowDocuments:!1,allowText:!1,allowAudio:!1,allowVideo:!1},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Message"},{id:"files",type:J.OUTPUT,label:"Files"}]}},{type:U.CHAT_OUTPUT,name:"Chat Output",description:"Send message to chatbot during execution",icon:X[U.CHAT_OUTPUT],color:Q[U.CHAT_OUTPUT],category:"action",defaultConfig:{message:"${variables.response}",messageType:"text",typing:!1,typingDelay:1e3},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.SOCIAL_POST,name:"Social Post",description:"Post to social feed on behalf of an agent",icon:X[U.SOCIAL_POST],color:Q[U.SOCIAL_POST],category:"action",defaultConfig:{agentId:"",content:"${variables.response}",mediaUrl:"",mediaType:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.LLM,name:"LLM",description:"Call AI language model (OpenAI, Anthropic, etc.)",icon:X[U.LLM],color:Q[U.LLM],category:"action",defaultConfig:{provider:"openai",model:"gpt-4",temperature:.7,maxTokens:2048,systemPrompt:"",userPrompt:"${variables.message}"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"},{id:"context_memory",type:J.INPUT,label:"Context Memory"}],outputs:[{id:"out",type:J.OUTPUT,label:"Response"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.OCR,name:"OCR",description:"Extract text from images using OCR",icon:X[U.OCR],color:Q[U.OCR],category:"action",defaultConfig:{imageSource:"variable",imageField:"${input.files[0].base64}",language:"fr",detectLayout:!1,outputVariable:"ocrResult"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Image"}],outputs:[{id:"out",type:J.OUTPUT,label:"Text"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.INFORMATION_EXTRACTOR,name:"Information Extractor",description:"Extract structured data from unstructured text using AI",icon:X[U.INFORMATION_EXTRACTOR],color:Q[U.INFORMATION_EXTRACTOR],category:"action",defaultConfig:{inputField:"text",schema:[{name:"field1",type:"string",description:"",required:!0}],model:"gpt-4o-mini",provider:"openai",instructions:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Extracted"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.FUNCTION,name:"Function",description:"Invoke a Nuraly function",icon:X[U.FUNCTION],color:Q[U.FUNCTION],category:"action",defaultConfig:{functionId:"",inputMapping:{},outputMapping:{}},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.HTTP,name:"HTTP Request",description:"Make an HTTP request",icon:X[U.HTTP],color:Q[U.HTTP],category:"action",defaultConfig:{method:"GET",url:"",headers:{},timeout:3e4},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Success"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.CONDITION,name:"Condition",description:"Branch based on a condition",icon:X[U.CONDITION],color:Q[U.CONDITION],category:"control",defaultConfig:{conditionMode:"expression",expression:"",language:"javascript"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"true",type:J.CONDITIONAL_TRUE,label:"True"},{id:"false",type:J.CONDITIONAL_FALSE,label:"False"}]}},{type:U.DELAY,name:"Delay",description:"Wait for a specified duration",icon:X[U.DELAY],color:Q[U.DELAY],category:"control",defaultConfig:{duration:1e3,unit:"milliseconds"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.PARALLEL,name:"Parallel",description:"Execute branches in parallel",icon:X[U.PARALLEL],color:Q[U.PARALLEL],category:"control",defaultConfig:{},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"branch1",type:J.PARALLEL_BRANCH,label:"Branch 1"},{id:"branch2",type:J.PARALLEL_BRANCH,label:"Branch 2"}]}},{type:U.LOOP,name:"Loop",description:"Iterate over an array",icon:X[U.LOOP],color:Q[U.LOOP],category:"control",defaultConfig:{iteratorVariable:"item",arrayExpression:"",maxIterations:100},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"item",type:J.LOOP_ITEM,label:"Each Item"},{id:"done",type:J.LOOP_DONE,label:"Done"}]}},{type:U.SWITCH,name:"Switch",description:"Route to a branch based on a value",icon:X[U.SWITCH],color:Q[U.SWITCH],category:"control",defaultConfig:{expression:"",language:"javascript",cases:[{value:"case1",label:"Case 1"},{value:"case2",label:"Case 2"}],includeDefault:!0},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"case1",type:J.OUTPUT,label:"Case 1"},{id:"case2",type:J.OUTPUT,label:"Case 2"},{id:"default",type:J.CONDITIONAL_DEFAULT,label:"Default"}]}},{type:U.MERGE,name:"Merge",description:"Join multiple branches into one",icon:X[U.MERGE],color:Q[U.MERGE],category:"control",defaultConfig:{mode:"waitAll"},defaultPorts:{inputs:[{id:"in1",type:J.INPUT,label:"Input 1",multiple:!0},{id:"in2",type:J.INPUT,label:"Input 2",multiple:!0}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.WAIT,name:"Wait",description:"Pause until a signal or event is received",icon:X[U.WAIT],color:Q[U.WAIT],category:"control",defaultConfig:{signalName:"",timeout:3e5},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Signal"},{id:"timeout",type:J.OUTPUT,label:"Timeout"}]}},{type:U.TRY_CATCH,name:"Try / Catch",description:"Catch errors from the connected branch",icon:X[U.TRY_CATCH],color:Q[U.TRY_CATCH],category:"control",defaultConfig:{catchTypes:["*"],errorVariable:"error"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"try",type:J.OUTPUT,label:"Try"},{id:"catch",type:J.ERROR,label:"Catch"}]}},{type:U.BREAK,name:"Break",description:"Exit the enclosing loop",icon:X[U.BREAK],color:Q[U.BREAK],category:"control",defaultConfig:{},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[]}},{type:U.TRANSFORM,name:"Transform",description:"Transform data using expressions",icon:X[U.TRANSFORM],color:Q[U.TRANSFORM],category:"data",defaultConfig:{transformExpression:"",language:"jsonata"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.SUB_WORKFLOW,name:"Sub-Workflow",description:"Invoke another workflow",icon:X[U.SUB_WORKFLOW],color:Q[U.SUB_WORKFLOW],category:"action",defaultConfig:{workflowId:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.EMAIL,name:"Email",description:"Send an email",icon:X[U.EMAIL],color:Q[U.EMAIL],category:"action",defaultConfig:{to:"",cc:"",bcc:"",subject:"",body:"",bodyType:"text",fromName:"",replyTo:"",priority:"normal"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.EMAIL_READER,name:"Email Reader",description:"Read and manage emails from Gmail, Outlook, Yahoo, or IMAP",icon:X[U.EMAIL_READER],color:Q[U.EMAIL_READER],category:"action",defaultConfig:{provider:"imap",operation:"LIST",folder:"INBOX",limit:10,includeAttachments:!1,markAsReadOnFetch:!1,searchQuery:"",host:"",port:993,tls:!0,credentialPath:"",sinceDate:"",beforeDate:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.SENDGRID,name:"SendGrid",description:"Send email via SendGrid API",icon:X[U.SENDGRID],color:Q[U.SENDGRID],category:"action",defaultConfig:{to:"",cc:"",bcc:"",fromEmail:"",fromName:"",replyTo:"",subject:"",body:"",contentType:"text/html",templateId:"",dynamicTemplateData:"",categories:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"},{id:"error",type:J.OUTPUT,label:"Error"}]}},{type:U.NOTIFICATION,name:"Notification",description:"Send a notification",icon:X[U.NOTIFICATION],color:Q[U.NOTIFICATION],category:"action",defaultConfig:{channel:"",message:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.DATABASE,name:"Data",description:"Read and write data to databases",icon:X[U.DATABASE],color:"#6366F1",category:"data",defaultConfig:{operation:P.QUERY,dataSource:null,entity:null,filter:null,fields:{},select:[],orderBy:[],limit:null,offset:null,outputVariable:"results"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.VARIABLE,name:"Variable",description:"Set or get a workflow variable",icon:X[U.VARIABLE],color:Q[U.VARIABLE],category:"data",defaultConfig:{variableOperation:"set",variableName:"",value:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.CHATBOT,name:"Chatbot Trigger",description:"Trigger workflow from chatbot interactions",icon:X[U.CHATBOT],color:Q[U.CHATBOT],category:"trigger",defaultConfig:{triggerEvents:["MESSAGE_SENT"],chatbotSize:"medium",chatbotVariant:"floating",title:"Chat Assistant",subtitle:"Ask me anything",placeholder:"Type a message...",initialMessage:"",enableTypingIndicator:!0,enableSuggestions:!1,suggestions:[],loadingType:"dots",enableFileUpload:!1,maxFileSize:10,maxFiles:5,allowImages:!0,allowDocuments:!1,allowText:!1,allowAudio:!1,allowVideo:!1},defaultPorts:{inputs:[],outputs:[{id:"message",type:J.OUTPUT,label:"Message"},{id:"files",type:J.OUTPUT,label:"Files"},{id:"session",type:J.OUTPUT,label:"Session Start"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.DEBUG,name:"Debug",description:"Display input, output, and variables for debugging",icon:X[U.DEBUG],color:Q[U.DEBUG],category:"data",defaultConfig:{},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.UI_TABLE,name:"Table",description:"Display data as an interactive table",icon:X[U.UI_TABLE],color:Q[U.UI_TABLE],category:"display",defaultConfig:{tableColumns:[],dataExpression:"",tablePageSize:10,tableEnableFilter:!1,tableEnableSort:!0,tableFixedHeader:!1,tableSize:"normal",tableEmptyText:"No data available"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Data"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:U.WEB_SEARCH,name:"Web Search",description:"Search the web using Google, Bing, Brave, or DuckDuckGo",icon:X[U.WEB_SEARCH],color:Q[U.WEB_SEARCH],category:"web",defaultConfig:{provider:"google",queryField:"query",numResults:10,safeSearch:!0,timeout:3e4},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Results"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.WEB_CRAWL,name:"Web Crawl",description:"Crawl web pages and extract text content",icon:X[U.WEB_CRAWL],color:Q[U.WEB_CRAWL],category:"web",defaultConfig:{urlField:"url",maxDepth:1,maxPages:10,sameDomainOnly:!0,renderJs:!1},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Pages"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.DOCUMENT_GENERATOR,name:"Document Generator",description:"Generate Word documents from templates with dynamic data",icon:X[U.DOCUMENT_GENERATOR],color:Q[U.DOCUMENT_GENERATOR],category:"documents",defaultConfig:{templateId:"",data:{},outputVariable:"documentResult"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Result"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.FILE_STORAGE,name:"File Storage",description:"Store files to S3, MinIO, or local filesystem",icon:X[U.FILE_STORAGE],color:Q[U.FILE_STORAGE],category:"storage",defaultConfig:{provider:"local",bucket:"default",path:"",fileField:"file",filenameField:"filename"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Result"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.GOOGLE_CLOUD_STORAGE,name:"Google Cloud Storage",description:"Manage objects in Google Cloud Storage buckets",icon:X[U.GOOGLE_CLOUD_STORAGE],color:Q[U.GOOGLE_CLOUD_STORAGE],category:"storage",defaultConfig:{operation:"LIST",bucketName:"",objectPath:"",serviceAccountPath:"",signedUrlExpiration:3600},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Result"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.S3,name:"AWS S3",description:"Upload, download, and manage files in Amazon S3",icon:X[U.S3],color:Q[U.S3],category:"integrations",defaultConfig:{s3Operation:"upload",s3Bucket:"",s3Key:"",s3Region:"us-east-1",s3ContentType:"auto"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Result"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.EMBEDDING,name:"Embedding",description:"Convert text to vector embeddings",icon:X[U.EMBEDDING],color:Q[U.EMBEDDING],category:"rag",defaultConfig:{provider:"openai",model:"text-embedding-3-small",inputField:"text",batchSize:100},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Text"}],outputs:[{id:"out",type:J.OUTPUT,label:"Embedding"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.DOCUMENT_LOADER,name:"Document Loader",description:"Load and parse documents (PDF, Word, HTML, etc.)",icon:X[U.DOCUMENT_LOADER],color:Q[U.DOCUMENT_LOADER],category:"rag",defaultConfig:{sourceType:"text",contentField:"content",filenameField:"filename",defaultType:"txt",timeout:3e4},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Document"}],outputs:[{id:"out",type:J.OUTPUT,label:"Content"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.TEXT_SPLITTER,name:"Text Splitter",description:"Split text into chunks for embedding",icon:X[U.TEXT_SPLITTER],color:Q[U.TEXT_SPLITTER],category:"rag",defaultConfig:{strategy:"recursive",chunkSize:1e3,chunkOverlap:200,contentField:"content"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Text"}],outputs:[{id:"out",type:J.OUTPUT,label:"Chunks"}]}},{type:U.VECTOR_WRITE,name:"Vector Write",description:"Store embeddings in vector database",icon:X[U.VECTOR_WRITE],color:Q[U.VECTOR_WRITE],category:"rag",defaultConfig:{collectionName:"",upsertMode:"replace"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Embeddings"}],outputs:[{id:"out",type:J.OUTPUT,label:"Result"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.VECTOR_SEARCH,name:"Vector Search",description:"Search for similar documents in vector store",icon:X[U.VECTOR_SEARCH],color:Q[U.VECTOR_SEARCH],category:"rag",defaultConfig:{collectionName:"",topK:5,minScore:.7,includeContent:!0,includeMetadata:!0,provider:"openai",model:"text-embedding-3-small"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Query"}],outputs:[{id:"out",type:J.OUTPUT,label:"Results"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.CONTEXT_BUILDER,name:"Context Builder",description:"Format retrieved documents into LLM-ready context",icon:X[U.CONTEXT_BUILDER],color:Q[U.CONTEXT_BUILDER],category:"rag",defaultConfig:{template:"default",maxTokens:4e3,maxDocuments:10,includeSourceInfo:!0,includeSimilarityScore:!1,separator:"\n\n---\n\n"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Results"}],outputs:[{id:"out",type:J.OUTPUT,label:"Context"}]}},{type:U.RERANKER,name:"Reranker",description:"Re-rank search results by relevance",icon:X[U.RERANKER],color:Q[U.RERANKER],category:"rag",defaultConfig:{model:"cross-encoder",topK:5,threshold:.5},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Results"}],outputs:[{id:"out",type:J.OUTPUT,label:"Reranked"}]}},{type:U.SUMMARIZATION,name:"Summarize Document",description:"Summarize long text using AI with chunking strategies",icon:X[U.SUMMARIZATION],color:Q[U.SUMMARIZATION],category:"action",defaultConfig:{inputField:"text",outputField:"summary",strategy:"map_reduce",chunkSize:4e3,chunkOverlap:200,model:"gpt-4o-mini"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Summary"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.GUARDRAIL,name:"Guardrail",description:"Validate and filter LLM inputs/outputs for safety",icon:X[U.GUARDRAIL],color:Q[U.GUARDRAIL],category:"safety",defaultConfig:{mode:"input",contentField:"content",onFail:"block",checks:[]},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Passed"},{id:"blocked",type:J.ERROR,label:"Blocked"}]}},{type:U.SLACK_SEND_MESSAGE,name:"Slack: Send Message",description:"Send a message to a Slack channel or user",icon:X[U.SLACK_SEND_MESSAGE],color:Q[U.SLACK_SEND_MESSAGE],category:"slack",defaultConfig:{slackMethod:"api",botToken:"",channel:"",text:"",unfurlLinks:!0,unfurlMedia:!0},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Response"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.SLACK_GET_CHANNEL_INFO,name:"Slack: Channel Info",description:"Get information about a Slack channel",icon:X[U.SLACK_GET_CHANNEL_INFO],color:Q[U.SLACK_GET_CHANNEL_INFO],category:"slack",defaultConfig:{botToken:"",channel:"",includeLocale:!1,includeNumMembers:!1},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Info"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.SLACK_LIST_CHANNELS,name:"Slack: List Channels",description:"List available Slack channels in the workspace",icon:X[U.SLACK_LIST_CHANNELS],color:Q[U.SLACK_LIST_CHANNELS],category:"slack",defaultConfig:{botToken:"",types:"public_channel",excludeArchived:!0,limit:100},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Channels"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.SLACK_ADD_REACTION,name:"Slack: Add Reaction",description:"Add a reaction emoji to a Slack message",icon:X[U.SLACK_ADD_REACTION],color:Q[U.SLACK_ADD_REACTION],category:"slack",defaultConfig:{botToken:"",channel:"",timestamp:"",name:"thumbsup"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Response"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.SLACK_UPLOAD_FILE,name:"Slack: Upload File",description:"Upload a file to a Slack channel",icon:X[U.SLACK_UPLOAD_FILE],color:Q[U.SLACK_UPLOAD_FILE],category:"slack",defaultConfig:{botToken:"",channels:"",filename:"",content:"",title:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Response"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.GOOGLE_CALENDAR,name:"Google Calendar",description:"Create, read, update, and delete Google Calendar events",icon:X[U.GOOGLE_CALENDAR],color:Q[U.GOOGLE_CALENDAR],category:"google-calendar",defaultConfig:{googleCalendarCredential:"",googleCalendarId:"primary",googleCalendarOperation:"getAll",googleCalendarEventSummary:"",googleCalendarEventDescription:"",googleCalendarEventStart:"",googleCalendarEventEnd:"",googleCalendarEventAttendees:"",googleCalendarEventLocation:"",googleCalendarTimeMin:"",googleCalendarTimeMax:"",googleCalendarRecurrence:"",googleCalendarConferenceData:!1},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Response"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.SHOPIFY,name:"Shopify",description:"Manage Shopify products, orders, customers, inventory, and fulfillments via the Admin API",icon:X[U.SHOPIFY],color:Q[U.SHOPIFY],category:"shopify",defaultConfig:{resource:"ORDER",operation:P.LIST,resourceId:"",filters:"",shopDomain:"",accessToken:""},defaultPorts:{inputs:[{id:"input",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.GITLAB,name:"GitLab",description:"Manage GitLab repositories, issues, merge requests, pipelines, and releases",icon:X[U.GITLAB],color:Q[U.GITLAB],category:"developer",defaultConfig:{gitlabBaseUrl:"https://gitlab.com",gitlabAccessToken:"",gitlabResource:"issue",gitlabOperation:"getAll",gitlabProjectId:"",gitlabTitle:"",gitlabDescription:"",gitlabLabels:[],gitlabAssigneeIds:[],gitlabSourceBranch:"",gitlabTargetBranch:"",gitlabRef:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Response"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.TELEGRAM_SEND,name:"Telegram: Send Message",description:"Send a message to a Telegram chat with typing indicator and optional emoji reaction",icon:X[U.TELEGRAM_SEND],color:Q[U.TELEGRAM_SEND],category:"telegram",defaultConfig:{botToken:"",chatId:"",text:"",parseMode:"",replyToMessageId:"",showTyping:!0,reaction:"",disableNotification:!1},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Response"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.ZENDESK,name:"Zendesk",description:"Manage Zendesk tickets, users, organizations, and satisfaction ratings",icon:X[U.ZENDESK],color:Q[U.ZENDESK],category:"zendesk",defaultConfig:{zendeskResource:"TICKET",zendeskOperation:"LIST",zendeskSubdomain:"",zendeskApiToken:"",zendeskEmail:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Response"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.TWILIO_SMS,name:"Twilio: Send SMS",description:"Send an SMS or WhatsApp message via the Twilio API",icon:X[U.TWILIO_SMS],color:Q[U.TWILIO_SMS],category:"twilio",defaultConfig:{twilioAccountSid:"",twilioAuthToken:"",twilioFromNumber:"",twilioToNumber:"",twilioMessageBody:"",twilioOperation:"send_sms",twilioStatusCallback:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Response"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.TWILIO_VOICE,name:"Twilio: Voice Call",description:"Make a voice call via the Twilio API",icon:X[U.TWILIO_VOICE],color:Q[U.TWILIO_VOICE],category:"twilio",defaultConfig:{twilioAccountSid:"",twilioAuthToken:"",twilioFromNumber:"",twilioToNumber:"",twilioOperation:"make_call",twilioVoiceUrl:"",twilioStatusCallback:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Response"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.TELEGRAM_BOT,name:"Telegram Bot",description:"Receive messages from a Telegram bot via polling or webhook",icon:X[U.TELEGRAM_BOT],color:Q[U.TELEGRAM_BOT],category:"trigger",defaultConfig:{botToken:"",mode:"polling",pollingTimeout:30,allowedUpdates:[],allowedChatIds:"",allowedUserIds:""},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Message"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.SLACK_SOCKET,name:"Slack Socket",description:"Receive events via Slack Socket Mode (WebSocket)",icon:X[U.SLACK_SOCKET],color:Q[U.SLACK_SOCKET],category:"trigger",defaultConfig:{appTokenPath:"",botTokenPath:"",eventTypes:[],interactionTypes:[],slashCommands:"",allowedTeamIds:"",allowedChannelIds:"",allowedUserIds:"",ignoreBots:!0},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Event"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.DISCORD_BOT,name:"Discord Bot",description:"Receive events from a Discord bot (Gateway WebSocket)",icon:X[U.DISCORD_BOT],color:Q[U.DISCORD_BOT],category:"trigger",defaultConfig:{botTokenPath:"",intents:["GUILDS","GUILD_MESSAGES","MESSAGE_CONTENT"],eventTypes:[],allowedGuildIds:"",allowedChannelIds:"",allowedUserIds:"",ignoreBots:!0},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Event"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.WHATSAPP_WEBHOOK,name:"WhatsApp",description:"Receive messages via WhatsApp Business API",icon:X[U.WHATSAPP_WEBHOOK],color:Q[U.WHATSAPP_WEBHOOK],category:"trigger",defaultConfig:{phoneNumberId:"",businessAccountId:"",accessTokenPath:"",appSecretPath:"",verifyToken:"",webhookFields:["messages"],messageTypes:[],allowedSenders:"",ignoreStatusUpdates:!1},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Message"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.CUSTOM_WEBSOCKET,name:"WebSocket Listener",description:"Listen for messages on a custom WebSocket endpoint",icon:X[U.CUSTOM_WEBSOCKET],color:Q[U.CUSTOM_WEBSOCKET],category:"trigger",defaultConfig:{url:"",subprotocol:"",authMode:"none",tokenPath:"",username:"",passwordPath:"",headerName:"",headerValuePath:"",queryParamName:"token",queryParamValuePath:"",initialMessage:"",autoReconnect:!0,reconnectDelayMs:5e3,maxReconnectAttempts:0,pingIntervalSec:30,messageFormat:"json",filterExpression:""},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Message"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.RABBITMQ_TRIGGER,name:"RabbitMQ Trigger",description:"Triggers workflow on new messages from a RabbitMQ queue",icon:X[U.RABBITMQ_TRIGGER],color:Q[U.RABBITMQ_TRIGGER],category:"trigger",defaultConfig:{connectionUrl:"",queueName:"",exchange:"",routingKey:"#",autoAck:!1,contentType:"application/json",prefetchCount:1},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Message"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.KAFKA,name:"Kafka: Send Message",description:"Produce a message to a Kafka topic",icon:X[U.KAFKA],color:Q[U.KAFKA],category:"messaging",defaultConfig:{kafkaBrokers:"localhost:9092",kafkaAcks:"all",kafkaCompressionType:"none"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.KAFKA_TRIGGER,name:"Kafka Trigger",description:"Triggers workflow on new messages from a Kafka topic",icon:X[U.KAFKA_TRIGGER],color:Q[U.KAFKA_TRIGGER],category:"messaging",defaultConfig:{kafkaBrokers:"localhost:9092",kafkaConsumerGroup:"nuraly-workflow",kafkaFromBeginning:!1,kafkaSessionTimeout:3e4},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Message"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.CRON,name:"Cron Trigger",description:"Triggers workflow on a scheduled cron expression",icon:X[U.CRON],color:Q[U.CRON],category:"trigger",defaultConfig:{cronExpression:"0 * * * *",timezone:"UTC"},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Tick"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.MCP,name:"MCP Server",description:"Connect to MCP server - provides tools to Agent/LLM nodes",icon:X[U.MCP],color:Q[U.MCP],category:"trigger",defaultConfig:{serverUrl:"",transportType:"streamable_http"},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Event"}]}},{type:U.HUBSPOT,name:"HubSpot",description:"Manage contacts, deals, companies, and tickets via HubSpot CRM",icon:X[U.HUBSPOT],color:Q[U.HUBSPOT],category:"crm",defaultConfig:{hubspotAccessToken:"",hubspotResource:"contact",hubspotOperation:"getAll",hubspotProperties:{},hubspotFilterGroups:[],hubspotLimit:100,hubspotAssociations:[]},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Result"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.JIRA,name:"Jira",description:"Create, update, and manage Jira issues",icon:X[U.JIRA],color:Q[U.JIRA],category:"jira",defaultConfig:{operation:"createIssue",jiraInstanceUrl:"",projectKey:"",issueType:"Task",summary:"",description:"",assignee:"",priority:"Medium",labels:"",jqlQuery:"",transitionId:"",issueKey:"",comment:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Result"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.ELASTICSEARCH,name:"Elasticsearch",description:"Search, index, and manage documents in Elasticsearch",icon:X[U.ELASTICSEARCH],color:Q[U.ELASTICSEARCH],category:"integration",defaultConfig:{elasticsearchUrl:"",elasticsearchCredentialPath:"",elasticsearchOperation:"search",elasticsearchIndex:"",elasticsearchDocumentId:"",elasticsearchQueryBody:"",elasticsearchSize:10,elasticsearchFrom:0,elasticsearchRefresh:"false",elasticsearchTimeout:"30s",elasticsearchRouting:"",outputVariable:"elasticsearchResult"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Result"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.CALENDLY_TRIGGER,name:"Calendly Trigger",description:"Triggers workflow when a Calendly event is booked or cancelled",icon:X[U.CALENDLY_TRIGGER],color:Q[U.CALENDLY_TRIGGER],category:"trigger",defaultConfig:{events:["invitee.created"],scope:"user",outputVariable:"calendlyEvent"},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Event"},{id:"error",type:J.ERROR,label:"Error"}]}},{type:U.NOTE,name:"Note",description:"Add annotations and comments to your workflow",icon:X[U.NOTE],color:Q[U.NOTE],category:"annotation",defaultConfig:{noteContent:"Add your note here...",noteBackgroundColor:"#fef08a",noteTextColor:"#713f12",noteFontSize:"medium",noteShowBorder:!1},defaultPorts:{inputs:[],outputs:[]}},{type:U.FRAME,name:"Frame",description:"Group related nodes together with a labeled container",icon:X[U.FRAME],color:Q[U.FRAME],category:"annotation",defaultConfig:{frameLabel:"Group",frameWidth:400,frameHeight:300,frameBackgroundColor:"rgba(99, 102, 241, 0.05)",frameBorderColor:"rgba(99, 102, 241, 0.3)",frameLabelPosition:"top-left",frameLabelPlacement:"outside",frameShowLabel:!0,frameCollapsed:!1},defaultPorts:{inputs:[],outputs:[]}},{type:V.AGENT,name:"AI Agent",description:"Autonomous AI agent that can use tools",icon:X[V.AGENT],color:Q[V.AGENT],category:"agent",defaultConfig:{agentId:"",maxIterations:10},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"},{id:"retriever",type:J.INPUT,label:"Retriever"}],configs:[{id:"llm",type:J.CONFIG,label:"LLM"},{id:"prompt",type:J.CONFIG,label:"Prompt"},{id:"memory",type:J.CONFIG,label:"Memory"},{id:"tools",type:J.CONFIG,label:"Tools",multiple:!0},{id:"structured_output",type:J.CONFIG,label:"Structured Output"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:V.TOOL,name:"Tool",description:"A tool that can be used by an agent",icon:X[V.TOOL],color:Q[V.TOOL],category:"agent",defaultConfig:{toolName:"",description:"",parameters:[]},defaultPorts:{inputs:[{id:"function",type:J.INPUT,label:"Function"}],outputs:[{id:"out",type:J.OUTPUT,label:"Tool"}]}},{type:V.MEMORY,name:"Context Memory",description:"Conversation memory for agents - stores and retrieves chat history",icon:X[V.MEMORY],color:Q[V.MEMORY],category:"agent",defaultConfig:{cutoffMode:"message",maxMessages:50,maxTokens:4e3,conversationIdExpression:"${input.threadId}"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Memory Config"}]}},{type:V.CONTEXT_MEMORY,name:"Context Memory (RAG)",description:"RAG-enhanced conversation memory with buffer, semantic, or hybrid modes",icon:X[V.CONTEXT_MEMORY],color:Q[V.CONTEXT_MEMORY],category:"agent",defaultConfig:{memoryType:"hybrid",cutoffMode:"message",maxMessages:50,maxTokens:4e3,conversationIdExpression:"${input.threadId}"},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Memory Config"}]}},{type:V.PROMPT,name:"Prompt",description:"Prompt template for LLM",icon:X[V.PROMPT],color:Q[V.PROMPT],category:"agent",defaultConfig:{template:"",variables:[]},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Prompt"}]}},{type:V.LLM,name:"LLM",description:"Large Language Model call",icon:X[V.LLM],color:Q[V.LLM],category:"agent",defaultConfig:{provider:"openai",modelName:"gpt-4",temperature:.7,maxTokens:2048},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Response"}]}},{type:V.RETRIEVER,name:"Retriever",description:"Retrieve relevant documents from vector store",icon:X[V.RETRIEVER],color:Q[V.RETRIEVER],category:"agent",defaultConfig:{vectorStoreId:"",topK:5},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Query"}],outputs:[{id:"out",type:J.OUTPUT,label:"Documents"}]}},{type:V.CHAIN,name:"Chain",description:"Chain multiple LLM calls together",icon:X[V.CHAIN],color:Q[V.CHAIN],category:"agent",defaultConfig:{chainType:"sequential"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"out",type:J.OUTPUT,label:"Output"}]}},{type:V.ROUTER,name:"Router",description:"Route to different chains based on input",icon:X[V.ROUTER],color:Q[V.ROUTER],category:"agent",defaultConfig:{routingExpression:""},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Input"}],outputs:[{id:"route1",type:J.OUTPUT,label:"Route 1"},{id:"route2",type:J.OUTPUT,label:"Route 2"},{id:"default",type:J.CONDITIONAL_DEFAULT,label:"Default"}]}},{type:V.HUMAN_INPUT,name:"Human Input",description:"Wait for human input in the workflow",icon:X[V.HUMAN_INPUT],color:Q[V.HUMAN_INPUT],category:"agent",defaultConfig:{prompt:"",timeout:864e5},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Context"}],outputs:[{id:"out",type:J.OUTPUT,label:"Response"}]}},{type:V.OUTPUT_PARSER,name:"Output Parser",description:"Parse LLM output into structured data",icon:X[V.OUTPUT_PARSER],color:Q[V.OUTPUT_PARSER],category:"agent",defaultConfig:{parserType:"json",schema:{}},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"Raw Output"}],outputs:[{id:"out",type:J.OUTPUT,label:"Parsed Data"}]}},{type:V.STRUCTURED_OUTPUT,name:"Structured Output",description:"Define a JSON schema to enforce structured LLM output",icon:X[V.STRUCTURED_OUTPUT],color:Q[V.STRUCTURED_OUTPUT],category:"agent",defaultConfig:{schemaName:"structured_output",strict:!0,schema:{type:"object",properties:{},required:[],additionalProperties:!1}},defaultPorts:{inputs:[],outputs:[{id:"out",type:J.OUTPUT,label:"Schema"}]}},{type:H.TABLE,name:"Table",description:"Define a database table with columns",icon:X[H.TABLE],color:Q[H.TABLE],category:"db-tables-views",defaultConfig:{tableName:"",columns:[],primaryKey:""},defaultPorts:{inputs:[],outputs:[{id:"ref",type:J.OUTPUT,label:"Reference"}]}},{type:H.VIEW,name:"View",description:"Create a database view based on queries",icon:X[H.VIEW],color:Q[H.VIEW],category:"db-tables-views",defaultConfig:{viewName:"",query:"",materialized:!1},defaultPorts:{inputs:[{id:"source",type:J.INPUT,label:"Source Tables"}],outputs:[{id:"ref",type:J.OUTPUT,label:"Reference"}]}},{type:H.INDEX,name:"Index",description:"Create an index on table columns",icon:X[H.INDEX],color:Q[H.INDEX],category:"db-indexes-queries",defaultConfig:{indexName:"",indexColumns:[],unique:!1,indexType:"BTREE"},defaultPorts:{inputs:[{id:"table",type:J.INPUT,label:"Table"}],outputs:[]}},{type:H.RELATIONSHIP,name:"Relationship",description:"Define foreign key relationships between tables",icon:X[H.RELATIONSHIP],color:Q[H.RELATIONSHIP],category:"db-relations-constraints",defaultConfig:{relationshipType:"ONE_TO_MANY",sourceColumn:"",targetColumn:"",onDelete:"CASCADE",onUpdate:"CASCADE"},defaultPorts:{inputs:[{id:"source",type:J.INPUT,label:"Source Table"},{id:"target",type:J.INPUT,label:"Target Table"}],outputs:[]}},{type:H.CONSTRAINT,name:"Constraint",description:"Add constraints (unique, check, foreign_key)",icon:X[H.CONSTRAINT],color:Q[H.CONSTRAINT],category:"db-relations-constraints",defaultConfig:{constraintName:"",constraintType:"UNIQUE",constraintColumns:[],checkExpression:""},defaultPorts:{inputs:[{id:"table",type:J.INPUT,label:"Table"}],outputs:[]}},{type:H.QUERY,name:"Query",description:"Define saved queries or stored procedures",icon:X[H.QUERY],color:Q[H.QUERY],category:"db-indexes-queries",defaultConfig:{queryName:"",queryText:"",parameters:[]},defaultPorts:{inputs:[{id:"tables",type:J.INPUT,label:"Tables"}],outputs:[{id:"result",type:J.OUTPUT,label:"Result Schema"}]}},{type:q.STICKY_NOTE,name:"Sticky Note",description:"Add a sticky note to the whiteboard",icon:X[q.STICKY_NOTE],color:Q[q.STICKY_NOTE],category:"wb-notes-text",defaultConfig:{textContent:"",backgroundColor:"#fef08a",textColor:"#713f12",fontSize:14,width:200,height:200},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.TEXT_BLOCK,name:"Text Block",description:"Add a text block to the whiteboard",icon:X[q.TEXT_BLOCK],color:Q[q.TEXT_BLOCK],category:"wb-notes-text",defaultConfig:{textContent:"",fontSize:16,fontWeight:"normal",textAlign:"left",width:200,height:50},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.SHAPE_RECTANGLE,name:"Rectangle",description:"Add a rectangle shape",icon:X[q.SHAPE_RECTANGLE],color:Q[q.SHAPE_RECTANGLE],category:"wb-shapes",defaultConfig:{width:120,height:120,fillColor:"#3b82f6"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.SHAPE_CIRCLE,name:"Circle",description:"Add a circle shape",icon:X[q.SHAPE_CIRCLE],color:Q[q.SHAPE_CIRCLE],category:"wb-shapes",defaultConfig:{width:120,height:120,fillColor:"#8b5cf6"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.SHAPE_DIAMOND,name:"Diamond",description:"Add a diamond shape",icon:X[q.SHAPE_DIAMOND],color:Q[q.SHAPE_DIAMOND],category:"wb-shapes",defaultConfig:{width:120,height:120,fillColor:"#f59e0b"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.SHAPE_TRIANGLE,name:"Triangle",description:"Add a triangle shape",icon:X[q.SHAPE_TRIANGLE],color:Q[q.SHAPE_TRIANGLE],category:"wb-shapes",defaultConfig:{width:120,height:120,fillColor:"#22c55e"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.SHAPE_ARROW,name:"Arrow",description:"Add an arrow shape",icon:X[q.SHAPE_ARROW],color:Q[q.SHAPE_ARROW],category:"wb-shapes",defaultConfig:{width:120,height:60,fillColor:"#6b7280"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.SHAPE_LINE,name:"Line",description:"Add a line shape",icon:X[q.SHAPE_LINE],color:Q[q.SHAPE_LINE],category:"wb-shapes",defaultConfig:{width:120,height:4,fillColor:"#6b7280"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.SHAPE_STAR,name:"Star",description:"Add a star shape",icon:X[q.SHAPE_STAR],color:Q[q.SHAPE_STAR],category:"wb-shapes",defaultConfig:{width:120,height:120,fillColor:"#f97316"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.SHAPE_HEXAGON,name:"Hexagon",description:"Add a hexagon shape",icon:X[q.SHAPE_HEXAGON],color:Q[q.SHAPE_HEXAGON],category:"wb-shapes",defaultConfig:{width:120,height:120,fillColor:"#ec4899"},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.IMAGE,name:"Image",description:"Add an image to the whiteboard",icon:X[q.IMAGE],color:Q[q.IMAGE],category:"wb-media",defaultConfig:{imageUrl:"",width:200,height:200},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.DRAWING,name:"Drawing",description:"Add a freehand drawing area",icon:X[q.DRAWING],color:Q[q.DRAWING],category:"wb-media",defaultConfig:{pathData:"",width:200,height:200},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.VOTING,name:"Voting",description:"Add a voting element for collaboration",icon:X[q.VOTING],color:Q[q.VOTING],category:"wb-media",defaultConfig:{textContent:"Vote",width:200,height:150},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.MERMAID,name:"Mermaid Diagram",description:"Add a Mermaid diagram to the whiteboard",icon:X[q.MERMAID],color:Q[q.MERMAID],category:"wb-media",defaultConfig:{textContent:"graph TD\n A[Start] --\x3e B[End]",width:400,height:300},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.ANCHOR,name:"Anchor",description:"Navigation anchor — other elements can link here",icon:X[q.ANCHOR],color:Q[q.ANCHOR],category:"wb-navigation",defaultConfig:{anchorLabel:"Anchor",width:120,height:48},defaultPorts:{inputs:[],outputs:[]}},{type:q.FRAME,name:"Frame",description:"Group whiteboard elements together",icon:X[q.FRAME],color:Q[q.FRAME],category:"wb-layout",defaultConfig:{frameLabel:"Group",frameWidth:400,frameHeight:300,frameBackgroundColor:"rgba(99, 102, 241, 0.05)",frameBorderColor:"rgba(99, 102, 241, 0.3)",frameLabelPosition:"top-left",frameLabelPlacement:"outside",frameShowLabel:!0,frameCollapsed:!1},defaultPorts:{inputs:[],outputs:[]}},{type:q.WORKFLOW,name:"Workflow",description:"Embed a workflow on the whiteboard",icon:X[q.WORKFLOW],color:Q[q.WORKFLOW],category:"wb-media",defaultConfig:{workflowId:"",workflowName:"Workflow",workflowSteps:[],width:280,height:200},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}},{type:q.DATABASE,name:"Database Table",description:"Embed a database table on the whiteboard",icon:X[q.DATABASE],color:Q[q.DATABASE],category:"wb-media",defaultConfig:{dbTableId:"",dbTableName:"Table",dbTableColumns:[],dbPrimaryKey:"",width:280,height:200},defaultPorts:{inputs:[{id:"in",type:J.INPUT,label:"In"}],outputs:[{id:"out",type:J.OUTPUT,label:"Out"}]}}],ee=[{id:"trigger",name:"Triggers",icon:"zap",nodeTypes:[U.START,U.HTTP_START,U.CHAT_START,U.CRON,U.TELEGRAM_BOT,U.SLACK_SOCKET,U.DISCORD_BOT,U.WHATSAPP_WEBHOOK,U.CUSTOM_WEBSOCKET,U.MCP,U.CALENDLY_TRIGGER],canvasType:G.WORKFLOW},{id:"control",name:"Control Flow",icon:"git-branch",nodeTypes:[U.END,U.HTTP_END,U.CONDITION,U.SWITCH,U.DELAY,U.WAIT,U.PARALLEL,U.MERGE,U.LOOP,U.BREAK,U.TRY_CATCH],canvasType:G.WORKFLOW},{id:"action",name:"Actions",icon:"zap",nodeTypes:[U.FUNCTION,U.HTTP,U.INFORMATION_EXTRACTOR,U.OCR,U.CHAT_OUTPUT,U.SOCIAL_POST,U.SUB_WORKFLOW,U.EMAIL,U.EMAIL_READER,U.SENDGRID,U.NOTIFICATION,U.DOCUMENT_GENERATOR,U.SUMMARIZATION],canvasType:G.WORKFLOW},{id:"data",name:"Data",icon:"database",nodeTypes:[U.TRANSFORM,U.DATABASE,U.ELASTICSEARCH,U.VARIABLE,U.DEBUG],canvasType:G.WORKFLOW},{id:"web",name:"Web",icon:"globe",nodeTypes:[U.WEB_SEARCH,U.WEB_CRAWL],canvasType:G.WORKFLOW},{id:"storage",name:"Storage",icon:"hard-drive",nodeTypes:[U.FILE_STORAGE,U.GOOGLE_CLOUD_STORAGE,U.S3],canvasType:G.WORKFLOW},{id:"messaging",name:"Messaging",icon:"inbox",nodeTypes:[U.RABBITMQ_TRIGGER,U.KAFKA,U.KAFKA_TRIGGER],canvasType:G.WORKFLOW},{id:"rag",name:"RAG",icon:"layers",nodeTypes:[U.DOCUMENT_LOADER,U.TEXT_SPLITTER,U.EMBEDDING,U.VECTOR_WRITE,U.VECTOR_SEARCH,U.CONTEXT_BUILDER,U.RERANKER],canvasType:G.WORKFLOW},{id:"safety",name:"Safety",icon:"shield",nodeTypes:[U.GUARDRAIL],canvasType:G.WORKFLOW},{id:"display",name:"Display",icon:"monitor",nodeTypes:[U.UI_TABLE],canvasType:G.WORKFLOW},{id:"google-calendar",name:"Google Calendar",icon:"calendar",nodeTypes:[U.GOOGLE_CALENDAR],canvasType:G.WORKFLOW},{id:"shopify",name:"Shopify",icon:"shopping-cart",nodeTypes:[U.SHOPIFY],canvasType:G.WORKFLOW},{id:"twilio",name:"Twilio",icon:"phone",nodeTypes:[U.TWILIO_SMS,U.TWILIO_VOICE],canvasType:G.WORKFLOW},{id:"telegram",name:"Telegram",icon:"send",nodeTypes:[U.TELEGRAM_SEND],canvasType:G.WORKFLOW},{id:"zendesk",name:"Zendesk",icon:"ticket",nodeTypes:[U.ZENDESK],canvasType:G.WORKFLOW},{id:"slack",name:"Slack",icon:"message-square",nodeTypes:[U.SLACK_SEND_MESSAGE,U.SLACK_GET_CHANNEL_INFO,U.SLACK_LIST_CHANNELS,U.SLACK_ADD_REACTION,U.SLACK_UPLOAD_FILE],canvasType:G.WORKFLOW},{id:"crm",name:"CRM",icon:"users",nodeTypes:[U.HUBSPOT],canvasType:G.WORKFLOW},{id:"jira",name:"Jira",icon:"ticket",nodeTypes:[U.JIRA],canvasType:G.WORKFLOW},{id:"gitlab",name:"GitLab",icon:"git-merge",nodeTypes:[U.GITLAB],canvasType:G.WORKFLOW},{id:"annotation",name:"Annotations",icon:"message-square",nodeTypes:[U.NOTE,U.FRAME],canvasType:G.WORKFLOW},{id:"agent",name:"AI Agents",icon:"cpu",nodeTypes:[V.AGENT,V.LLM,V.PROMPT,V.MEMORY,V.CONTEXT_MEMORY,V.TOOL,V.RETRIEVER,V.CHAIN,V.ROUTER,V.HUMAN_INPUT,V.OUTPUT_PARSER,V.STRUCTURED_OUTPUT],canvasType:G.WORKFLOW},{id:"db-tables-views",name:"Tables & Views",icon:"table",nodeTypes:[H.TABLE,H.VIEW],canvasType:G.DATABASE},{id:"db-relations-constraints",name:"Relations & Constraints",icon:"git-merge",nodeTypes:[H.RELATIONSHIP,H.CONSTRAINT],canvasType:G.DATABASE},{id:"db-indexes-queries",name:"Indexes & Queries",icon:"list",nodeTypes:[H.INDEX,H.QUERY],canvasType:G.DATABASE},{id:"wb-notes-text",name:"Notes & Text",icon:"sticky-note",nodeTypes:[q.STICKY_NOTE,q.TEXT_BLOCK],canvasType:G.WHITEBOARD},{id:"wb-shapes",name:"Shapes",icon:"square",nodeTypes:[q.SHAPE_RECTANGLE,q.SHAPE_CIRCLE,q.SHAPE_DIAMOND,q.SHAPE_TRIANGLE,q.SHAPE_ARROW,q.SHAPE_LINE,q.SHAPE_STAR,q.SHAPE_HEXAGON],canvasType:G.WHITEBOARD},{id:"wb-media",name:"Media & Interactive",icon:"image",nodeTypes:[q.IMAGE,q.DRAWING,q.VOTING,q.MERMAID],canvasType:G.WHITEBOARD},{id:"wb-navigation",name:"Navigation",icon:"anchor",nodeTypes:[q.ANCHOR],canvasType:G.WHITEBOARD},{id:"wb-layout",name:"Layout",icon:"frame",nodeTypes:[q.FRAME],canvasType:G.WHITEBOARD}];function te(e){return Z.find(t=>t.type===e)}function ie(e){return Object.values(V).includes(e)}function ne(e){return Object.values(U).includes(e)}function ae(e){return Object.values(H).includes(e)}function oe(e){return Object.values(q).includes(e)}function se(e){return ee.filter(t=>t.canvasType===e)}function re(e,t,i){var n;const a=te(e);return a?{id:i||"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}),name:a.name,type:a.type,position:t,configuration:Object.assign({},a.defaultConfig),ports:{inputs:a.defaultPorts.inputs.map(e=>Object.assign({},e)),configs:null===(n=a.defaultPorts.configs)||void 0===n?void 0:n.map(e=>Object.assign({},e)),outputs:a.defaultPorts.outputs.map(e=>Object.assign({},e))},metadata:{icon:a.icon,color:a.color,description:a.description},status:K.IDLE,selected:!1}:null}const le=[{name:"Yellow",bg:"#fef08a",text:"#713f12"},{name:"Blue",bg:"#bfdbfe",text:"#1e3a5f"},{name:"Green",bg:"#bbf7d0",text:"#14532d"},{name:"Pink",bg:"#fbcfe8",text:"#831843"},{name:"Orange",bg:"#fed7aa",text:"#7c2d12"},{name:"Purple",bg:"#ddd6fe",text:"#4c1d95"},{name:"Gray",bg:"#e5e7eb",text:"#374151"}],ce=[{name:"Indigo",bg:"rgba(99, 102, 241, 0.05)",border:"rgba(99, 102, 241, 0.3)",solid:"#6366f1"},{name:"Blue",bg:"rgba(59, 130, 246, 0.05)",border:"rgba(59, 130, 246, 0.3)",solid:"#3b82f6"},{name:"Green",bg:"rgba(34, 197, 94, 0.05)",border:"rgba(34, 197, 94, 0.3)",solid:"#22c55e"},{name:"Orange",bg:"rgba(249, 115, 22, 0.05)",border:"rgba(249, 115, 22, 0.3)",solid:"#f97316"},{name:"Red",bg:"rgba(239, 68, 68, 0.05)",border:"rgba(239, 68, 68, 0.3)",solid:"#ef4444"},{name:"Purple",bg:"rgba(168, 85, 247, 0.05)",border:"rgba(168, 85, 247, 0.3)",solid:"#a855f7"},{name:"Gray",bg:"rgba(107, 114, 128, 0.05)",border:"rgba(107, 114, 128, 0.3)",solid:"#6b7280"}];function de(e){return e===U.NOTE||e===U.FRAME}function pe(e){return e===U.FRAME}function he(e){return e===U.NOTE}const ue=new Set([U.TELEGRAM_BOT,U.SLACK_SOCKET,U.DISCORD_BOT,U.WHATSAPP_WEBHOOK,U.CUSTOM_WEBSOCKET,U.RABBITMQ_TRIGGER,U.CALENDLY_TRIGGER,U.KAFKA_TRIGGER,U.CRON]);function be(e){return ue.has(e)}
|
|
107
107
|
/**
|
|
108
108
|
* @license
|
|
109
109
|
* Copyright 2023 Nuraly, Laabidi Aymen
|
|
@@ -2661,7 +2661,6 @@ class lt{constructor(){this.settled=!1,this.promise=new Promise((e,t)=>{this._re
|
|
|
2661
2661
|
justify-content: center;
|
|
2662
2662
|
background: #e0e0e0;
|
|
2663
2663
|
transition: background 0.15s;
|
|
2664
|
-
z-index: 1;
|
|
2665
2664
|
}
|
|
2666
2665
|
.artifact-panel__resize-handle:hover,
|
|
2667
2666
|
.artifact-panel__resize-handle--active {
|
|
@@ -3792,7 +3791,7 @@ class ti{constructor(){this.listeners=new Map}on(e,t){return this.listeners.has(
|
|
|
3792
3791
|
* @license
|
|
3793
3792
|
* Copyright 2023 Nuraly, Laabidi Aymen
|
|
3794
3793
|
* SPDX-License-Identifier: MIT
|
|
3795
|
-
*/var pi=function(e,t,i,n){return new(i||(i=Promise))(function(a,o){function s(e){try{l(n.next(e))}catch(e){o(e)}}function r(e){try{l(n.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?a(e.value):(t=e.value,t instanceof i?t:new i(function(e){e(t)})).then(s,r)}l((n=n.apply(e,t||[])).next())})};class hi{constructor(e,t,i,n,a,o,s){this.stateHandler=t,this.messageHandler=i,this.fileHandler=n,this.eventBus=a,this.ui=o,this.plugins=s,this.cancelRequested=!1,this.provider=e}setProvider(e){this.provider=e}stopCurrentProcessing(){this.cancelRequested=!0,this.eventBus.emit("processing:stopped")}hasProvider(){return!!this.provider&&this.provider.isConnected()}processMessage(e){return pi(this,void 0,void 0,function*(){if(this.provider){if(!this.provider.isConnected()){this.log("Provider not connected, attempting to connect...");try{yield this.provider.connect({})}catch(e){this.logError("Failed to auto-connect provider:",e)}if(!this.provider.isConnected())return void this.log("Provider is still not connected after attempt; aborting processing")}try{this.cancelRequested=!1,this.ui.onProcessingStart&&this.ui.onProcessingStart(),this.ui.onTypingStart&&this.ui.onTypingStart(),this.stateHandler.setTyping(!0),this.stateHandler.setProcessing(!0),this.eventBus.emit("processing:start");const t=this.buildContext(),i=this.provider.sendMessage(e.text,t);yield this.processStream(i)}catch(e){throw this.logError("Provider error:",e),this.eventBus.emit("error",e),e}finally{this.ui.onProcessingEnd&&this.ui.onProcessingEnd(),this.ui.onTypingEnd&&this.ui.onTypingEnd(),this.stateHandler.updateState({statusText:void 0}),this.stateHandler.setTyping(!1),this.stateHandler.setProcessing(!1),this.eventBus.emit("processing:end"),this.fileHandler.clearFiles()}}else this.log("No provider configured")})}processStream(e){return pi(this,void 0,void 0,function*(){var t;let i=null;const n=Array.from(this.plugins.values()).filter(e=>Array.isArray(e.htmlTags)),a=[];let o="",s="",r=0;if(n.length>0)for(const e of n)for(const t of e.htmlTags)r=Math.max(r,t.open.length,t.close.length);try{let l=!1;for(;!l&&!this.cancelRequested;){const c=yield e.next();if(l=c.done||!1,l||!c.value)break;const d=String(c.value),p=d.startsWith(s)?d.slice(s.length):d;s=d,o+=p;let h="",u=!1;for(;o.length;){const e=a[a.length-1];if(e){const t=e.buffer+o,n=t.indexOf(e.close);if(-1===n){e.buffer=t,o="";break}const s=t.slice(0,n),r="function"==typeof e.plugin.renderHtmlBlock?e.plugin.renderHtmlBlock(e.name,s):"";if(r)
|
|
3794
|
+
*/var pi=function(e,t,i,n){return new(i||(i=Promise))(function(a,o){function s(e){try{l(n.next(e))}catch(e){o(e)}}function r(e){try{l(n.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?a(e.value):(t=e.value,t instanceof i?t:new i(function(e){e(t)})).then(s,r)}l((n=n.apply(e,t||[])).next())})};class hi{constructor(e,t,i,n,a,o,s){this.stateHandler=t,this.messageHandler=i,this.fileHandler=n,this.eventBus=a,this.ui=o,this.plugins=s,this.cancelRequested=!1,this.provider=e}setProvider(e){this.provider=e}stopCurrentProcessing(){this.cancelRequested=!0,this.eventBus.emit("processing:stopped")}hasProvider(){return!!this.provider&&this.provider.isConnected()}processMessage(e){return pi(this,void 0,void 0,function*(){if(this.provider){if(!this.provider.isConnected()){this.log("Provider not connected, attempting to connect...");try{yield this.provider.connect({})}catch(e){this.logError("Failed to auto-connect provider:",e)}if(!this.provider.isConnected())return void this.log("Provider is still not connected after attempt; aborting processing")}try{this.cancelRequested=!1,this.ui.onProcessingStart&&this.ui.onProcessingStart(),this.ui.onTypingStart&&this.ui.onTypingStart(),this.stateHandler.setTyping(!0),this.stateHandler.setProcessing(!0),this.eventBus.emit("processing:start");const t=this.buildContext(),i=this.provider.sendMessage(e.text,t);yield this.processStream(i)}catch(e){throw this.logError("Provider error:",e),this.eventBus.emit("error",e),e}finally{this.ui.onProcessingEnd&&this.ui.onProcessingEnd(),this.ui.onTypingEnd&&this.ui.onTypingEnd(),this.stateHandler.updateState({statusText:void 0}),this.stateHandler.setTyping(!1),this.stateHandler.setProcessing(!1),this.eventBus.emit("processing:end"),this.fileHandler.clearFiles()}}else this.log("No provider configured")})}processStream(e){return pi(this,void 0,void 0,function*(){var t;let i=null;const n=Array.from(this.plugins.values()).filter(e=>Array.isArray(e.htmlTags)),a=[];let o="",s="",r=0;if(n.length>0)for(const e of n)for(const t of e.htmlTags)r=Math.max(r,t.open.length,t.close.length);try{let l=!1;for(;!l&&!this.cancelRequested;){const c=yield e.next();if(l=c.done||!1,l||!c.value)break;const d=String(c.value),p=d.startsWith(s)?d.slice(s.length):d;s=d,o+=p;let h="",u=!1;for(;o.length;){const e=a[a.length-1];if(e){const t=e.buffer+o,n=t.indexOf(e.close);if(-1===n){e.buffer=t,o="";break}const s=t.slice(0,n),r="function"==typeof e.plugin.renderHtmlBlock?e.plugin.renderHtmlBlock(e.name,s):"";if(r){const t=/<div data-placeholder-id="[^"]*">[\s\S]*?<\/div>/;e.hasPlaceholder&&i&&t.test(i.text)?(i.text=i.text.replace(t,r),this.messageHandler.updateMessage(i.id,{text:i.text})):e.hasPlaceholder&&t.test(h)?(h=h.replace(t,r),u=!0):(h+=r,u=!0)}a.pop(),o=t.slice(n+e.close.length);continue}if(0===n.length){h+=o,o="";break}let t=null;for(const e of n)for(const i of e.htmlTags){const n=o.indexOf(i.open);-1!==n&&(!t||n<t.idx)&&(t={idx:n,plugin:e,name:i.name,open:i.open,close:i.close})}if(!t){if(r>0&&o.length>r-1){const e=o.length-(r-1);h+=o.slice(0,e),o=o.slice(e)}break}{h+=o.slice(0,t.idx);let e=!1;if("function"==typeof t.plugin.renderHtmlBlockPlaceholder){const i=t.plugin.renderHtmlBlockPlaceholder(t.name);i&&(h+=i,u=!0,e=!0)}a.push({plugin:t.plugin,name:t.name,open:t.open,close:t.close,buffer:"",hasPlaceholder:e}),o=o.slice(t.idx+t.open.length)}}if(h)for(const e of this.plugins.values()){!(Array.isArray(e.htmlTags)&&e.htmlTags.length>0)&&e.afterReceive&&(h=yield e.afterReceive(h))}const b=u||/<\w+[^>]*>/.test(h);i?h&&(this.messageHandler.appendToBotMessage(i.id,h),i.text+=h,b&&!(null===(t=i.metadata)||void 0===t?void 0:t.renderAsHtml)&&this.messageHandler.updateMessage(i.id,{metadata:Object.assign(Object.assign({},i.metadata||{}),{renderAsHtml:!0})})):(i=this.messageHandler.createBotMessage(h,b?{renderAsHtml:!0}:void 0),this.stateHandler.addMessageToState(i),this.ui.onTypingEnd&&this.ui.onTypingEnd(),this.stateHandler.setTyping(!1))}if(!this.cancelRequested&&i&&(o&&this.messageHandler.appendToBotMessage(i.id,o),a.length>0)){const e=a.map(e=>e.open+e.buffer).join("");e&&this.messageHandler.appendToBotMessage(i.id,e)}}catch(e){throw this.logError("Error processing stream:",e),e}})}buildContext(){const e=this.stateHandler.getState(),t=e.currentThreadId?e.threads.find(t=>t.id===e.currentThreadId):void 0;return console.log("[ProviderService] buildContext state.uploadedFiles:",e.uploadedFiles),{messages:e.messages,metadata:e.metadata,selectedModules:e.selectedModules,currentThread:t,uploadedFiles:e.uploadedFiles}}uploadFileToProvider(e){return pi(this,void 0,void 0,function*(){var t,i;if(!(null===(i=null===(t=this.provider)||void 0===t?void 0:t.capabilities)||void 0===i?void 0:i.fileUpload)||!this.provider.uploadFile)throw new Error("Provider does not support file upload");const n=this.buildContext();return yield this.provider.uploadFile(e,n)})}getCapabilities(){var e;return(null===(e=this.provider)||void 0===e?void 0:e.capabilities)||{streaming:!1,fileUpload:!1,contextWindow:0}}log(e,...t){console.log(`[ProviderService] ${e}`,...t)}logError(e,t){console.error(`[ProviderService] ${e}`,t)}}
|
|
3796
3795
|
/**
|
|
3797
3796
|
* @license
|
|
3798
3797
|
* Copyright 2023 Nuraly, Laabidi Aymen
|
|
@@ -6642,7 +6641,7 @@ function qn(e,t){const i=document.createElement(e);return i.style.cssText=t,i}fu
|
|
|
6642
6641
|
* @license
|
|
6643
6642
|
* Copyright 2024 Nuraly, Laabidi Aymen
|
|
6644
6643
|
* SPDX-License-Identifier: MIT
|
|
6645
|
-
*/const Qn=[{label:"Equals",value:"eq"},{label:"Not Equals",value:"neq"},{label:"Greater Than",value:"gt"},{label:"Greater Than or Equal",value:"gte"},{label:"Less Than",value:"lt"},{label:"Less Than or Equal",value:"lte"},{label:"Contains",value:"contains"},{label:"Does Not Contain",value:"notContains"},{label:"Starts With",value:"startsWith"},{label:"Ends With",value:"endsWith"},{label:"Is Empty",value:"isEmpty"},{label:"Is Not Empty",value:"isNotEmpty"},{label:"Matches Regex",value:"regex"}],Xn=new Set(["isEmpty","isNotEmpty"]);function Zn(e,t){var a;const o=e.conditionMode||"
|
|
6644
|
+
*/const Qn=[{label:"Equals",value:"eq"},{label:"Not Equals",value:"neq"},{label:"Greater Than",value:"gt"},{label:"Greater Than or Equal",value:"gte"},{label:"Less Than",value:"lt"},{label:"Less Than or Equal",value:"lte"},{label:"Contains",value:"contains"},{label:"Does Not Contain",value:"notContains"},{label:"Starts With",value:"startsWith"},{label:"Ends With",value:"endsWith"},{label:"Is Empty",value:"isEmpty"},{label:"Is Not Empty",value:"isNotEmpty"},{label:"Matches Regex",value:"regex"}],Xn=new Set(["isEmpty","isNotEmpty"]);function Zn(e,t){var a;const o=e.conditionMode||"expression",s=e.conditionLogic||"and",r=(null===(a=e.conditions)||void 0===a?void 0:a.length)?e.conditions:[{leftValue:"",operator:"eq",rightValue:""}],l=e=>{t("conditions",e)};return i`
|
|
6646
6645
|
<div class="config-field">
|
|
6647
6646
|
<label>Mode</label>
|
|
6648
6647
|
<nr-select
|
|
@@ -6734,7 +6733,7 @@ function qn(e,t){const i=document.createElement(e);return i.style.cssText=t,i}fu
|
|
|
6734
6733
|
<label>Language</label>
|
|
6735
6734
|
<nr-select
|
|
6736
6735
|
.value=${e.language||"javascript"}
|
|
6737
|
-
.options=${[{label:"JavaScript",value:"javascript"}
|
|
6736
|
+
.options=${[{label:"JavaScript",value:"javascript"}]}
|
|
6738
6737
|
@nr-change=${e=>t("language",e.detail.value)}
|
|
6739
6738
|
></nr-select>
|
|
6740
6739
|
</div>
|
|
@@ -9593,9 +9592,11 @@ return function(e,t,a,o,s){const r=a||"{workflowId}",l=e.httpPath||"/webhook",c=
|
|
|
9593
9592
|
<label>Duration</label>
|
|
9594
9593
|
<nr-input
|
|
9595
9594
|
type="number"
|
|
9595
|
+
min="0"
|
|
9596
9596
|
value=${String(e.duration||1e3)}
|
|
9597
|
-
@nr-input=${e=>t("duration",Number.parseInt(e.detail.value))}
|
|
9597
|
+
@nr-input=${e=>t("duration",Number.parseInt(e.detail.value)||0)}
|
|
9598
9598
|
></nr-input>
|
|
9599
|
+
<small class="field-hint">Effective delay is capped at 24 hours. Delays over 10s release the worker until they elapse.</small>
|
|
9599
9600
|
</div>
|
|
9600
9601
|
<div class="config-field">
|
|
9601
9602
|
<label>Unit</label>
|
|
Binary file
|
|
@@ -562,6 +562,7 @@ export const NODE_TEMPLATES = [
|
|
|
562
562
|
httpPath: '/webhook',
|
|
563
563
|
httpMethod: 'POST',
|
|
564
564
|
httpAuth: 'none',
|
|
565
|
+
httpAuthSecretKey: '',
|
|
565
566
|
httpCors: true,
|
|
566
567
|
httpRateLimit: 100,
|
|
567
568
|
httpRequestSchema: {},
|
|
@@ -570,7 +571,6 @@ export const NODE_TEMPLATES = [
|
|
|
570
571
|
inputs: [],
|
|
571
572
|
outputs: [
|
|
572
573
|
{ id: 'out', type: PortType.OUTPUT, label: 'Request' },
|
|
573
|
-
{ id: 'error', type: PortType.ERROR, label: 'Error' },
|
|
574
574
|
],
|
|
575
575
|
},
|
|
576
576
|
},
|
|
@@ -760,7 +760,7 @@ export const NODE_TEMPLATES = [
|
|
|
760
760
|
icon: NODE_ICONS[WorkflowNodeType.CONDITION],
|
|
761
761
|
color: NODE_COLORS[WorkflowNodeType.CONDITION],
|
|
762
762
|
category: 'control',
|
|
763
|
-
defaultConfig: { expression: '', language: 'javascript' },
|
|
763
|
+
defaultConfig: { conditionMode: 'expression', expression: '', language: 'javascript' },
|
|
764
764
|
defaultPorts: {
|
|
765
765
|
inputs: [{ id: 'in', type: PortType.INPUT, label: 'Input' }],
|
|
766
766
|
outputs: [
|