diff --git a/frontend/src/lib/components/graph/FlowGraphV2.svelte b/frontend/src/lib/components/graph/FlowGraphV2.svelte index 18a64886ab..c5ac094c36 100644 --- a/frontend/src/lib/components/graph/FlowGraphV2.svelte +++ b/frontend/src/lib/components/graph/FlowGraphV2.svelte @@ -12,7 +12,8 @@ Position, type Node, type Edge, - ConnectionLineType + ConnectionLineType, + MiniMap // @ts-ignore } from '@xyflow/svelte' // @ts-ignore @@ -26,6 +27,7 @@ import ForLoopStartNode from './renderers/nodes/ForLoopStartNode.svelte' import ResultNode from './renderers/nodes/ResultNode.svelte' import BaseEdge from './renderers/edges/BaseEdge.svelte' + import EmptyEdge from './renderers/edges/EmptyEdge.svelte' export let success: boolean | undefined = undefined export let modules: FlowModule[] | undefined = [] @@ -53,11 +55,10 @@ flowInputsStore: Writable }>('FlowGraphContext', { selectedId, flowInputsStore }) - // XYFLOW - const nodeWidth = 300 const nodeHeight = 36 const dagreGraph = new dagre.graphlib.Graph() + dagreGraph.setDefaultEdgeLabel(() => ({})) function getLayoutedElements(nodes: Node[], edges: Edge[], direction = 'TB') { @@ -89,10 +90,7 @@ return { nodes, edges } } - const { nodes: initialNodes, edges: initialEdges } = graphBuilder(modules, { - insertable, - disableAi - }) + const { nodes: initialNodes, edges: initialEdges } = graphBuilder(modules) const { nodes: layoutedNodes, edges: layoutedEdges } = getLayoutedElements( initialNodes, @@ -114,8 +112,11 @@ whileLoopEnd: ForLoopEndNode } const edgeTypes = { - edge: BaseEdge + edge: BaseEdge, + empty: EmptyEdge } + + const proOptions = { hideAttribution: true }
+
diff --git a/frontend/src/lib/components/graph/graphBuilder.ts b/frontend/src/lib/components/graph/graphBuilder.ts index 1cd0153a7f..5ca9086180 100644 --- a/frontend/src/lib/components/graph/graphBuilder.ts +++ b/frontend/src/lib/components/graph/graphBuilder.ts @@ -28,12 +28,12 @@ export default function graphBuilder(modules: FlowModule[] | undefined): { return module.id } - function addEdge(sourceId: string, targetId: string, customId?: string) { + function addEdge(sourceId: string, targetId: string, customId?: string, type?: string) { edges.push({ id: customId || `edge:${sourceId}->${targetId}`, source: sourceId, target: targetId, - type: 'edge' + type: type ?? 'edge' }) } @@ -96,7 +96,7 @@ export default function graphBuilder(modules: FlowModule[] | undefined): { nodes.push(startNode) - addEdge(module.id, startNode.id) + addEdge(module.id, startNode.id, undefined, 'empty') processModules(branch.modules, startNode, endNode) }) @@ -112,7 +112,7 @@ export default function graphBuilder(modules: FlowModule[] | undefined): { type: 'forLoopStart' } - addEdge(module.id, startNode.id) + addEdge(module.id, startNode.id, undefined, 'empty') const endNode = { id: `${module.id}-end`, @@ -136,7 +136,7 @@ export default function graphBuilder(modules: FlowModule[] | undefined): { position: { x: 0, y: 0 }, type: 'whileLoopStart' } - addEdge(module.id, startNode.id) + addEdge(module.id, startNode.id, undefined, 'empty') const endNode = { id: `${module.id}-end`, diff --git a/frontend/src/lib/components/graph/renderers/edges/BaseEdge.svelte b/frontend/src/lib/components/graph/renderers/edges/BaseEdge.svelte index 061fd57008..1bae3e31ce 100644 --- a/frontend/src/lib/components/graph/renderers/edges/BaseEdge.svelte +++ b/frontend/src/lib/components/graph/renderers/edges/BaseEdge.svelte @@ -1,9 +1,16 @@ + +
+ +
+
+ + diff --git a/frontend/src/lib/components/graph/renderers/edges/EmptyEdge.svelte b/frontend/src/lib/components/graph/renderers/edges/EmptyEdge.svelte new file mode 100644 index 0000000000..ee504504f2 --- /dev/null +++ b/frontend/src/lib/components/graph/renderers/edges/EmptyEdge.svelte @@ -0,0 +1,30 @@ + + + diff --git a/frontend/src/lib/components/graph/renderers/nodes/BranchAllStart.svelte b/frontend/src/lib/components/graph/renderers/nodes/BranchAllStart.svelte index c45294d82a..d4214bc78d 100644 --- a/frontend/src/lib/components/graph/renderers/nodes/BranchAllStart.svelte +++ b/frontend/src/lib/components/graph/renderers/nodes/BranchAllStart.svelte @@ -5,6 +5,7 @@ import NodeWrapper from './NodeWrapper.svelte' import { X } from 'lucide-svelte' import { createEventDispatcher } from 'svelte' + import Popover from '$lib/components/Popover.svelte' export let data: { label: string @@ -15,20 +16,21 @@ - + + + + Delete branch + - - - 0.01s - + diff --git a/frontend/src/lib/components/graph/renderers/nodes/ForLoopEndNode.svelte b/frontend/src/lib/components/graph/renderers/nodes/ForLoopEndNode.svelte index b14efbfeb4..fce031c5ad 100644 --- a/frontend/src/lib/components/graph/renderers/nodes/ForLoopEndNode.svelte +++ b/frontend/src/lib/components/graph/renderers/nodes/ForLoopEndNode.svelte @@ -6,7 +6,6 @@ type $$Props = NodeProps export let data: $$Props['data'] - $$restProps {#if data.time} diff --git a/frontend/src/lib/components/graph/renderers/nodes/ForLoopStartNode.svelte b/frontend/src/lib/components/graph/renderers/nodes/ForLoopStartNode.svelte index a742bc0969..2e5b0e4f98 100644 --- a/frontend/src/lib/components/graph/renderers/nodes/ForLoopStartNode.svelte +++ b/frontend/src/lib/components/graph/renderers/nodes/ForLoopStartNode.svelte @@ -1,24 +1,23 @@ - - {#if data.time} 0.01s {/if} -
+ -
- - - +
diff --git a/frontend/src/lib/components/graph/renderers/nodes/InputNode.svelte b/frontend/src/lib/components/graph/renderers/nodes/InputNode.svelte index 66636c33ec..c70dbf6cc3 100644 --- a/frontend/src/lib/components/graph/renderers/nodes/InputNode.svelte +++ b/frontend/src/lib/components/graph/renderers/nodes/InputNode.svelte @@ -3,16 +3,28 @@ // @ts-ignore import { Handle, NodeToolbar, Position, type NodeProps } from '@xyflow/svelte' import { Wand2 } from 'lucide-svelte' - - type $$Props = NodeProps + import NodeWrapper from './NodeWrapper.svelte' + import Popover from '$lib/components/Popover.svelte' - + + + + AI Flow builder + - - - + + + diff --git a/frontend/src/lib/components/graph/renderers/nodes/ModuleNode.svelte b/frontend/src/lib/components/graph/renderers/nodes/ModuleNode.svelte index ace79b5969..783c4d9bdb 100644 --- a/frontend/src/lib/components/graph/renderers/nodes/ModuleNode.svelte +++ b/frontend/src/lib/components/graph/renderers/nodes/ModuleNode.svelte @@ -1,4 +1,5 @@ -
+ + +
- +
{#if enableSourceHandle} diff --git a/frontend/src/lib/components/graph/renderers/nodes/ResultNode.svelte b/frontend/src/lib/components/graph/renderers/nodes/ResultNode.svelte index 56226dba00..c8e337d6e6 100644 --- a/frontend/src/lib/components/graph/renderers/nodes/ResultNode.svelte +++ b/frontend/src/lib/components/graph/renderers/nodes/ResultNode.svelte @@ -1,24 +1,18 @@ - - - - - + + + diff --git a/frontend/src/lib/components/graph/renderers/nodes/branchAllEndNode.svelte b/frontend/src/lib/components/graph/renderers/nodes/branchAllEndNode.svelte index 2562b91486..567813afb7 100644 --- a/frontend/src/lib/components/graph/renderers/nodes/branchAllEndNode.svelte +++ b/frontend/src/lib/components/graph/renderers/nodes/branchAllEndNode.svelte @@ -2,6 +2,7 @@ import VirtualItem from '$lib/components/flows/map/VirtualItem.svelte' // @ts-ignore import { Handle, NodeToolbar, Position, type NodeProps } from '@xyflow/svelte' + import NodeWrapper from './NodeWrapper.svelte' type $$Props = NodeProps @@ -14,15 +15,15 @@ {/if} - - - - + + +