110 lines
4.5 KiB
TypeScript
110 lines
4.5 KiB
TypeScript
/*
|
|
┌──────────────────────────────────────────────────────────────────────────────┐
|
|
│ @author: Davidson Gomes │
|
|
│ @author: Victor Calazans - Implementation of Delay node type │
|
|
│ @file: /app/agents/workflows/nodes/index.ts │
|
|
│ Developed by: Davidson Gomes │
|
|
│ Delay node functionality developed by: Victor Calazans │
|
|
│ Creation date: May 13, 2025 │
|
|
│ Delay implementation date: May 17, 2025 │
|
|
│ Contact: contato@evolution-api.com │
|
|
├──────────────────────────────────────────────────────────────────────────────┤
|
|
│ @copyright © Evolution API 2025. All rights reserved. │
|
|
│ Licensed under the Apache License, Version 2.0 │
|
|
│ │
|
|
│ You may not use this file except in compliance with the License. │
|
|
│ You may obtain a copy of the License at │
|
|
│ │
|
|
│ http://www.apache.org/licenses/LICENSE-2.0 │
|
|
│ │
|
|
│ Unless required by applicable law or agreed to in writing, software │
|
|
│ distributed under the License is distributed on an "AS IS" BASIS, │
|
|
│ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. │
|
|
│ See the License for the specific language governing permissions and │
|
|
│ limitations under the License. │
|
|
├──────────────────────────────────────────────────────────────────────────────┤
|
|
│ @important │
|
|
│ For any future changes to the code in this file, it is recommended to │
|
|
│ include, together with the modification, the information of the developer │
|
|
│ who changed it and the date of modification. │
|
|
└──────────────────────────────────────────────────────────────────────────────┘
|
|
*/
|
|
import type { NodeTypes, BuiltInNode, Node } from "@xyflow/react";
|
|
|
|
import { ConditionNode } from "./components/condition/ConditionNode";
|
|
import { AgentNode } from "./components/agent/AgentNode";
|
|
import { StartNode, StartNodeType } from "./components/start/StartNode";
|
|
import { MessageNode } from "./components/message/MessageNode";
|
|
import { DelayNode } from "./components/delay/DelayNode";
|
|
|
|
import "./style.css";
|
|
import {
|
|
ConditionType,
|
|
MessageType,
|
|
DelayType,
|
|
} from "./nodeFunctions";
|
|
import { Agent } from "@/types/agent";
|
|
|
|
type AgentNodeType = Node<
|
|
{
|
|
label?: string;
|
|
agent?: Agent;
|
|
},
|
|
"agent-node"
|
|
>;
|
|
|
|
type MessageNodeType = Node<
|
|
{
|
|
label?: string;
|
|
message?: MessageType;
|
|
},
|
|
"message-node"
|
|
>;
|
|
|
|
type DelayNodeType = Node<
|
|
{
|
|
label?: string;
|
|
delay?: DelayType;
|
|
},
|
|
"delay-node"
|
|
>;
|
|
|
|
type ConditionNodeType = Node<
|
|
{
|
|
label?: string;
|
|
integration?: string;
|
|
icon?: string;
|
|
conditions?: ConditionType[];
|
|
},
|
|
"condition-node"
|
|
>;
|
|
|
|
export type AppNode =
|
|
| BuiltInNode
|
|
| StartNodeType
|
|
| AgentNodeType
|
|
| ConditionNodeType
|
|
| MessageNodeType
|
|
| DelayNodeType;
|
|
|
|
export type NodeType = AppNode["type"];
|
|
|
|
export const initialNodes: AppNode[] = [
|
|
{
|
|
id: "start-node",
|
|
type: "start-node",
|
|
position: { x: -100, y: 100 },
|
|
data: {
|
|
label: "Start",
|
|
},
|
|
},
|
|
];
|
|
|
|
export const nodeTypes = {
|
|
"start-node": StartNode,
|
|
"agent-node": AgentNode,
|
|
"message-node": MessageNode,
|
|
"condition-node": ConditionNode,
|
|
"delay-node": DelayNode,
|
|
} satisfies NodeTypes;
|