1616 RemoveParameterFromNodeRequest ,
1717 SetParameterValueRequest ,
1818)
19+
20+ # Add pyright ignore because this is a new event - we know it does exist
1921from griptape_nodes .retained_mode .events .workflow_events import (
2022 ImportWorkflowAsReferencedSubFlowRequest ,
2123 ImportWorkflowAsReferencedSubFlowResultSuccess ,
22- ListCallableWorkflowsRequest ,
23- ListCallableWorkflowsResultSuccess ,
24+ ListCallableWorkflowsRequest , # pyright: ignore[reportAttributeAccessIssue]
25+ ListCallableWorkflowsResultSuccess , # pyright: ignore[reportAttributeAccessIssue]
2426)
25- from griptape_nodes .retained_mode .griptape_nodes import GriptapeNodes
27+ from griptape_nodes .retained_mode .griptape_nodes import GriptapeNodes , logger
2628from griptape_nodes .traits .button import Button , ButtonDetailsMessagePayload
2729from griptape_nodes .traits .options import Options
2830
@@ -31,8 +33,13 @@ class SubflowWorkflowNode(BaseNode):
3133 def __init__ (self , name : str , metadata : dict [Any , Any ] | None = None ) -> None :
3234 super ().__init__ (name , metadata )
3335 result = GriptapeNodes .handle_request (ListCallableWorkflowsRequest ())
34- workflow_names = result .workflow_names if isinstance (result , ListCallableWorkflowsResultSuccess ) else []
35- choices = workflow_names if workflow_names else ["" ]
36+ if isinstance (result , ListCallableWorkflowsResultSuccess ):
37+ # Add pyright ignore here becuase we know ListCallableWOrkflowsResultSuccess reutrns workflow_names
38+ workflow_names = result .workflow_names # pyright: ignore[reportAttributeAccessIssue]
39+ choices = workflow_names
40+ else :
41+ workflow_names = []
42+ choices = ["" ]
3643
3744 # If a workflow was previously selected, restore it as the default.
3845 saved_workflow = self .metadata .get ("_workflow_file_value" )
@@ -103,6 +110,9 @@ def get_node_dependencies(self) -> NodeDependencies | None:
103110 workflow_name = self .get_parameter_value ("workflow_file" )
104111 if workflow_name and WorkflowRegistry .has_workflow_with_name (workflow_name ):
105112 deps .referenced_workflows .add (workflow_name )
113+ else :
114+ msg = f"Node { self .name } has a dependency on workflow { workflow_name } but it is not in your WorkflowRegistry. Register this workflow for proper dependency bundling."
115+ logger .warning (msg )
106116 return deps
107117
108118 def _reload_subflow (self , workflow_name : str ) -> None :
0 commit comments