mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-11 00:58:30 +00:00
curving cycles but need to add curve conditionals
This commit is contained in:
@@ -68,11 +68,8 @@ class PyvisFlowVisualizer(FlowVisualizer):
|
|||||||
for method_name, level in node_levels.items():
|
for method_name, level in node_levels.items():
|
||||||
level_nodes.setdefault(level, []).append(method_name)
|
level_nodes.setdefault(level, []).append(method_name)
|
||||||
|
|
||||||
print("level_nodes", level_nodes)
|
|
||||||
|
|
||||||
# Compute positions
|
# Compute positions
|
||||||
for level, nodes in level_nodes.items():
|
for level, nodes in level_nodes.items():
|
||||||
print("level", level, "nodes", nodes)
|
|
||||||
x_offset = -(len(nodes) - 1) * x_spacing / 2 # Center nodes horizontally
|
x_offset = -(len(nodes) - 1) * x_spacing / 2 # Center nodes horizontally
|
||||||
for i, method_name in enumerate(nodes):
|
for i, method_name in enumerate(nodes):
|
||||||
x = x_offset + i * x_spacing
|
x = x_offset + i * x_spacing
|
||||||
@@ -96,31 +93,35 @@ class PyvisFlowVisualizer(FlowVisualizer):
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Add edges
|
# Add edges
|
||||||
print("self.flow._routers.values()", self.flow._routers)
|
|
||||||
for method_name in self.flow._listeners:
|
for method_name in self.flow._listeners:
|
||||||
print("Listeners for", method_name)
|
|
||||||
condition_type, trigger_methods = self.flow._listeners[method_name]
|
condition_type, trigger_methods = self.flow._listeners[method_name]
|
||||||
is_and_condition = condition_type == "AND"
|
is_and_condition = condition_type == "AND"
|
||||||
|
|
||||||
for trigger in trigger_methods:
|
for trigger in trigger_methods:
|
||||||
print("Trigger", trigger)
|
|
||||||
if trigger in self.flow._methods:
|
if trigger in self.flow._methods:
|
||||||
is_router_edge = any(
|
is_router_edge = any(
|
||||||
trigger in paths for paths in self.flow._router_paths.values()
|
trigger in paths for paths in self.flow._router_paths.values()
|
||||||
)
|
)
|
||||||
print("is_router_edge", is_router_edge)
|
|
||||||
edge_color = (
|
edge_color = (
|
||||||
self.colors["router_edge"]
|
self.colors["router_edge"]
|
||||||
if is_router_edge
|
if is_router_edge
|
||||||
else self.colors["edge"]
|
else self.colors["edge"]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# **New: Determine if this is a cycle edge to apply curvature**
|
||||||
|
is_cycle_edge = trigger == method_name
|
||||||
edge_style = {
|
edge_style = {
|
||||||
"color": edge_color,
|
"color": edge_color,
|
||||||
"width": 2,
|
"width": 2,
|
||||||
"arrows": "to",
|
"arrows": "to",
|
||||||
"dashes": True if is_router_edge or is_and_condition else False,
|
"dashes": True if is_router_edge or is_and_condition else False,
|
||||||
"smooth": {"type": "cubicBezier"},
|
"smooth": (
|
||||||
|
{"type": "curvedCCW", "roundness": 0.5}
|
||||||
|
if is_cycle_edge
|
||||||
|
else {"type": "cubicBezier"}
|
||||||
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
net.add_edge(trigger, method_name, **edge_style)
|
net.add_edge(trigger, method_name, **edge_style)
|
||||||
|
|
||||||
# Add edges from router methods to their possible paths
|
# Add edges from router methods to their possible paths
|
||||||
@@ -136,7 +137,10 @@ class PyvisFlowVisualizer(FlowVisualizer):
|
|||||||
"width": 2,
|
"width": 2,
|
||||||
"arrows": "to",
|
"arrows": "to",
|
||||||
"dashes": True,
|
"dashes": True,
|
||||||
"smooth": {"type": "cubicBezier"},
|
"smooth": {
|
||||||
|
"type": "curvedCW",
|
||||||
|
"roundness": 0.3,
|
||||||
|
}, # Curvature for router edges
|
||||||
}
|
}
|
||||||
net.add_edge(router_method_name, listener_name, **edge_style)
|
net.add_edge(router_method_name, listener_name, **edge_style)
|
||||||
|
|
||||||
@@ -144,17 +148,17 @@ class PyvisFlowVisualizer(FlowVisualizer):
|
|||||||
net.set_options(
|
net.set_options(
|
||||||
"""
|
"""
|
||||||
var options = {
|
var options = {
|
||||||
"physics": {
|
"physics": {
|
||||||
"enabled": false
|
"enabled": false
|
||||||
},
|
},
|
||||||
"edges": {
|
"edges": {
|
||||||
"smooth": {
|
"smooth": {
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"type": "cubicBezier",
|
"type": "cubicBezier",
|
||||||
"roundness": 0.5
|
"roundness": 0.5
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user