const agentFlowCategories = [
    {
        id: 'agent',
        name: 'Agents',
        sortOrder: 1,
        color: 'linear-gradient(135deg, #E8F5E9 0%, #C8E6C9 100%)',
        colorDark: 'linear-gradient(135deg, #1B5E20 0%, #2E7D32 100%)',
        icon: 'bot',
        tags: [
            'agent',
            'ai',
            'automation'
        ]
    },
    {
        id: 'resource',
        name: 'Resources',
        sortOrder: 2,
        color: 'linear-gradient(135deg, #E3F2FD 0%, #BBDEFB 100%)',
        colorDark: 'linear-gradient(135deg, #0D47A1 0%, #1565C0 100%)',
        icon: 'folder',
        tags: [
            'resource',
            'data',
            'context'
        ]
    }
];
const conversationalAgentManifest = {
    nodeType: 'uipath.agent.conversational',
    version: '1.0.0',
    category: 'agent',
    tags: [
        'agent',
        'conversational',
        'ai'
    ],
    sortOrder: 1,
    display: {
        label: 'Conversational Agent',
        description: 'An agent that can engage in conversations',
        icon: 'bot-message-square',
        shape: 'rectangle'
    },
    handleConfiguration: [
        {
            position: 'top',
            handles: [
                {
                    id: 'memorySpace',
                    type: 'source',
                    handleType: 'artifact',
                    label: 'Memory',
                    showButton: false
                },
                {
                    id: 'escalation',
                    type: 'source',
                    handleType: 'artifact',
                    label: 'Escalation',
                    showButton: false
                }
            ]
        },
        {
            position: 'bottom',
            handles: [
                {
                    id: 'context',
                    type: 'source',
                    handleType: 'artifact',
                    label: 'Context',
                    showButton: false
                },
                {
                    id: 'tool',
                    type: 'source',
                    handleType: 'artifact',
                    label: 'Tools',
                    showButton: false
                }
            ]
        }
    ]
};
const autonomousAgentManifest = {
    nodeType: 'uipath.agent.autonomous',
    version: '1.0.0',
    category: 'agent',
    tags: [
        'agent',
        'autonomous',
        'ai'
    ],
    sortOrder: 2,
    display: {
        label: 'Autonomous Agent',
        description: 'An agent that can work independently',
        icon: 'bot',
        shape: 'rectangle'
    },
    handleConfiguration: [
        {
            position: 'top',
            handles: [
                {
                    id: 'memorySpace',
                    type: 'source',
                    handleType: 'artifact',
                    label: 'Memory',
                    showButton: false
                },
                {
                    id: 'escalation',
                    type: 'source',
                    handleType: 'artifact',
                    label: 'Escalation',
                    showButton: false
                }
            ]
        },
        {
            position: 'bottom',
            handles: [
                {
                    id: 'context',
                    type: 'source',
                    handleType: 'artifact',
                    label: 'Context',
                    showButton: false
                },
                {
                    id: 'tool',
                    type: 'source',
                    handleType: 'artifact',
                    label: 'Tools',
                    showButton: false
                }
            ]
        }
    ]
};
const contextResourceManifest = {
    nodeType: 'uipath.resource.context',
    version: '1.0.0',
    category: 'resource',
    tags: [
        'resource',
        'context',
        'data'
    ],
    sortOrder: 1,
    display: {
        label: 'Context',
        description: 'Context information for agents',
        icon: 'file-text',
        shape: 'circle'
    },
    handleConfiguration: [
        {
            position: 'top',
            handles: [
                {
                    id: 'input',
                    type: 'target',
                    handleType: 'artifact'
                }
            ]
        }
    ]
};
const toolResourceManifest = {
    nodeType: 'uipath.resource.tool',
    version: '1.0.0',
    category: 'resource',
    tags: [
        'resource',
        'tool',
        'function'
    ],
    sortOrder: 2,
    display: {
        label: 'Tool',
        description: 'A tool or function for agents to use',
        icon: 'wrench',
        shape: 'circle'
    },
    handleConfiguration: [
        {
            position: 'top',
            handles: [
                {
                    id: 'input',
                    type: 'target',
                    handleType: 'artifact'
                }
            ]
        }
    ]
};
const mcpResourceManifest = {
    nodeType: 'uipath.resource.mcp',
    version: '1.0.0',
    category: 'resource',
    tags: [
        'resource',
        'mcp',
        'protocol'
    ],
    sortOrder: 3,
    display: {
        label: 'MCP Resource',
        description: 'Model Context Protocol resource',
        icon: 'network',
        shape: 'circle'
    },
    handleConfiguration: [
        {
            position: 'top',
            handles: [
                {
                    id: 'input',
                    type: 'target',
                    handleType: 'artifact'
                }
            ]
        }
    ]
};
const escalationResourceManifest = {
    nodeType: 'uipath.resource.escalation',
    version: '1.0.0',
    category: 'resource',
    tags: [
        'resource',
        'escalation',
        'human'
    ],
    sortOrder: 4,
    display: {
        label: 'Escalation',
        description: 'Escalation point for human intervention',
        icon: 'user',
        shape: 'circle'
    },
    handleConfiguration: [
        {
            position: 'bottom',
            handles: [
                {
                    id: 'input',
                    type: 'target',
                    handleType: 'artifact'
                }
            ]
        }
    ]
};
const memoryResourceManifest = {
    nodeType: 'uipath.resource.memory',
    version: '1.0.0',
    category: 'resource',
    tags: [
        'resource',
        'memory',
        'storage'
    ],
    sortOrder: 5,
    display: {
        label: 'Memory Space',
        description: 'Memory storage for agent state',
        icon: 'memory-stick',
        shape: 'circle'
    },
    handleConfiguration: [
        {
            position: 'bottom',
            handles: [
                {
                    id: 'input',
                    type: 'target',
                    handleType: 'artifact'
                }
            ]
        }
    ]
};
const a2aResourceManifest = {
    nodeType: 'uipath.resource.a2a',
    version: '1.0.0',
    category: 'resource',
    tags: [
        'resource',
        'a2a',
        'agent-to-agent',
        'protocol'
    ],
    sortOrder: 6,
    display: {
        label: 'A2A Resource',
        description: 'Agent-to-Agent Protocol resource',
        icon: 'network',
        shape: 'circle'
    },
    handleConfiguration: [
        {
            position: 'top',
            handles: [
                {
                    id: 'input',
                    type: 'target',
                    handleType: 'artifact'
                }
            ]
        }
    ]
};
const agentFlowManifest = {
    version: '1.0.0',
    categories: agentFlowCategories,
    nodes: [
        conversationalAgentManifest,
        autonomousAgentManifest,
        contextResourceManifest,
        toolResourceManifest,
        mcpResourceManifest,
        escalationResourceManifest,
        memoryResourceManifest,
        a2aResourceManifest
    ]
};
export { a2aResourceManifest, agentFlowCategories, agentFlowManifest, autonomousAgentManifest, contextResourceManifest, conversationalAgentManifest, escalationResourceManifest, mcpResourceManifest, memoryResourceManifest, toolResourceManifest };
