griptape-nodes 0.65.0__tar.gz → 0.65.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/PKG-INFO +1 -1
  2. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/pyproject.toml +1 -1
  3. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/common/node_executor.py +14 -14
  4. griptape_nodes-0.65.2/src/griptape_nodes/exe_types/node_groups/__init__.py +6 -0
  5. griptape_nodes-0.65.2/src/griptape_nodes/exe_types/node_groups/base_node_group.py +31 -0
  6. griptape_nodes-0.65.2/src/griptape_nodes/exe_types/node_groups/subflow_node_group.py +826 -0
  7. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/node_types.py +0 -805
  8. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/machines/control_flow.py +10 -3
  9. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/node_library/library_registry.py +1 -0
  10. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/node_library/workflow_registry.py +1 -1
  11. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/flow_events.py +1 -1
  12. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/node_events.py +11 -77
  13. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/flow_manager.py +72 -79
  14. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/library_manager.py +10 -2
  15. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/node_manager.py +113 -193
  16. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/workflow_manager.py +5 -8
  17. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/utils/git_utils.py +13 -3
  18. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/version_compatibility/versions/v0_63_8/deprecated_nodegroup_parameters.py +2 -2
  19. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/README.md +0 -0
  20. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/__init__.py +0 -0
  21. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/__main__.py +0 -0
  22. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/api_client/__init__.py +0 -0
  23. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/api_client/client.py +0 -0
  24. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/api_client/request_client.py +0 -0
  25. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/app/.python-version +0 -0
  26. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/app/__init__.py +0 -0
  27. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/app/app.py +0 -0
  28. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/app/watch.py +0 -0
  29. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/bootstrap/__init__.py +0 -0
  30. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/bootstrap/utils/__init__.py +0 -0
  31. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/bootstrap/utils/python_subprocess_executor.py +0 -0
  32. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/bootstrap/workflow_executors/__init__.py +0 -0
  33. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/bootstrap/workflow_executors/local_session_workflow_executor.py +0 -0
  34. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/bootstrap/workflow_executors/local_workflow_executor.py +0 -0
  35. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/bootstrap/workflow_executors/subprocess_workflow_executor.py +0 -0
  36. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/bootstrap/workflow_executors/utils/__init__.py +0 -0
  37. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/bootstrap/workflow_executors/utils/subprocess_script.py +0 -0
  38. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/bootstrap/workflow_executors/workflow_executor.py +0 -0
  39. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/bootstrap/workflow_publishers/__init__.py +0 -0
  40. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/bootstrap/workflow_publishers/local_workflow_publisher.py +0 -0
  41. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/bootstrap/workflow_publishers/subprocess_workflow_publisher.py +0 -0
  42. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/bootstrap/workflow_publishers/utils/__init__.py +0 -0
  43. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/bootstrap/workflow_publishers/utils/subprocess_script.py +0 -0
  44. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/cli/__init__.py +0 -0
  45. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/cli/commands/__init__.py +0 -0
  46. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/cli/commands/config.py +0 -0
  47. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/cli/commands/engine.py +0 -0
  48. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/cli/commands/init.py +0 -0
  49. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/cli/commands/libraries.py +0 -0
  50. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/cli/commands/models.py +0 -0
  51. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/cli/commands/self.py +0 -0
  52. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/cli/main.py +0 -0
  53. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/cli/shared.py +0 -0
  54. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/common/__init__.py +0 -0
  55. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/common/directed_graph.py +0 -0
  56. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/common/macro_parser/__init__.py +0 -0
  57. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/common/macro_parser/core.py +0 -0
  58. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/common/macro_parser/exceptions.py +0 -0
  59. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/common/macro_parser/formats.py +0 -0
  60. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/common/macro_parser/matching.py +0 -0
  61. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/common/macro_parser/parsing.py +0 -0
  62. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/common/macro_parser/resolution.py +0 -0
  63. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/common/macro_parser/segments.py +0 -0
  64. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/common/project_templates/__init__.py +0 -0
  65. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/common/project_templates/default_project_template.py +0 -0
  66. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/common/project_templates/defaults/README.md +0 -0
  67. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/common/project_templates/directory.py +0 -0
  68. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/common/project_templates/loader.py +0 -0
  69. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/common/project_templates/project.py +0 -0
  70. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/common/project_templates/situation.py +0 -0
  71. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/common/project_templates/validation.py +0 -0
  72. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/drivers/__init__.py +0 -0
  73. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/drivers/storage/__init__.py +0 -0
  74. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/drivers/storage/base_storage_driver.py +0 -0
  75. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/drivers/storage/griptape_cloud_storage_driver.py +0 -0
  76. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/drivers/storage/local_storage_driver.py +0 -0
  77. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/drivers/storage/storage_backend.py +0 -0
  78. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/drivers/thread_storage/__init__.py +0 -0
  79. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/drivers/thread_storage/base_thread_storage_driver.py +0 -0
  80. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/drivers/thread_storage/griptape_cloud_thread_storage_driver.py +0 -0
  81. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/drivers/thread_storage/local_thread_storage_driver.py +0 -0
  82. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/drivers/thread_storage/thread_storage_backend.py +0 -0
  83. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/__init__.py +0 -0
  84. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/base_iterative_nodes.py +0 -0
  85. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/connections.py +0 -0
  86. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/core_types.py +0 -0
  87. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/flow.py +0 -0
  88. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/param_components/README.md +0 -0
  89. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/param_components/__init__.py +0 -0
  90. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/param_components/api_key_provider_parameter.py +0 -0
  91. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/param_components/artifact_url/__init__.py +0 -0
  92. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/param_components/artifact_url/public_artifact_url_parameter.py +0 -0
  93. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/param_components/execution_status_component.py +0 -0
  94. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/param_components/huggingface/__init__.py +0 -0
  95. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_model_parameter.py +0 -0
  96. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_repo_file_parameter.py +0 -0
  97. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_repo_parameter.py +0 -0
  98. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_utils.py +0 -0
  99. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/param_components/log_parameter.py +0 -0
  100. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/param_components/progress_bar_component.py +0 -0
  101. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/param_components/seed_parameter.py +0 -0
  102. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/param_types/__init__.py +0 -0
  103. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/param_types/parameter_audio.py +0 -0
  104. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/param_types/parameter_bool.py +0 -0
  105. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/param_types/parameter_button.py +0 -0
  106. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/param_types/parameter_float.py +0 -0
  107. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/param_types/parameter_image.py +0 -0
  108. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/param_types/parameter_int.py +0 -0
  109. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/param_types/parameter_number.py +0 -0
  110. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/param_types/parameter_string.py +0 -0
  111. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/param_types/parameter_three_d.py +0 -0
  112. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/param_types/parameter_video.py +0 -0
  113. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/exe_types/type_validator.py +0 -0
  114. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/machines/__init__.py +0 -0
  115. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/machines/dag_builder.py +0 -0
  116. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/machines/fsm.py +0 -0
  117. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/machines/parallel_resolution.py +0 -0
  118. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/machines/sequential_resolution.py +0 -0
  119. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/mcp_server/__init__.py +0 -0
  120. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/node_library/__init__.py +0 -0
  121. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/node_library/advanced_node_library.py +0 -0
  122. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/py.typed +0 -0
  123. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/__init__.py +0 -0
  124. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/__init__.py +0 -0
  125. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/agent_events.py +0 -0
  126. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/app_events.py +0 -0
  127. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/arbitrary_python_events.py +0 -0
  128. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/base_events.py +0 -0
  129. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/config_events.py +0 -0
  130. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/connection_events.py +0 -0
  131. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/context_events.py +0 -0
  132. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/execution_events.py +0 -0
  133. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/generate_request_payload_schemas.py +0 -0
  134. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/library_events.py +0 -0
  135. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/logger_events.py +0 -0
  136. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/mcp_events.py +0 -0
  137. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/model_events.py +0 -0
  138. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/object_events.py +0 -0
  139. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/os_events.py +0 -0
  140. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/parameter_events.py +0 -0
  141. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/payload_registry.py +0 -0
  142. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/project_events.py +0 -0
  143. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/resource_events.py +0 -0
  144. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/secrets_events.py +0 -0
  145. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/static_file_events.py +0 -0
  146. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/sync_events.py +0 -0
  147. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/validation_events.py +0 -0
  148. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/variable_events.py +0 -0
  149. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/events/workflow_events.py +0 -0
  150. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/griptape_nodes.py +0 -0
  151. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/__init__.py +0 -0
  152. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/agent_manager.py +0 -0
  153. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/arbitrary_code_exec_manager.py +0 -0
  154. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/config_manager.py +0 -0
  155. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/context_manager.py +0 -0
  156. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/engine_identity_manager.py +0 -0
  157. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/event_manager.py +0 -0
  158. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/__init__.py +0 -0
  159. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/__init__.py +0 -0
  160. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/advanced_library_load_failure_problem.py +0 -0
  161. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/after_library_callback_problem.py +0 -0
  162. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/before_library_callback_problem.py +0 -0
  163. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/create_config_category_problem.py +0 -0
  164. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/dependency_installation_failed_problem.py +0 -0
  165. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/deprecated_node_warning_problem.py +0 -0
  166. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/duplicate_library_problem.py +0 -0
  167. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/duplicate_node_registration_problem.py +0 -0
  168. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/engine_version_error_problem.py +0 -0
  169. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/insufficient_disk_space_problem.py +0 -0
  170. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/invalid_version_string_problem.py +0 -0
  171. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_json_decode_problem.py +0 -0
  172. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_load_exception_problem.py +0 -0
  173. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_not_found_problem.py +0 -0
  174. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_problem.py +0 -0
  175. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_schema_exception_problem.py +0 -0
  176. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_schema_validation_problem.py +0 -0
  177. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/modified_parameters_set_deprecation_warning_problem.py +0 -0
  178. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/modified_parameters_set_removed_problem.py +0 -0
  179. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/node_class_not_base_node_problem.py +0 -0
  180. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/node_class_not_found_problem.py +0 -0
  181. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/node_module_import_problem.py +0 -0
  182. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/old_xdg_location_warning_problem.py +0 -0
  183. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/sandbox_directory_missing_problem.py +0 -0
  184. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/ui_options_field_modified_incompatible_problem.py +0 -0
  185. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/ui_options_field_modified_warning_problem.py +0 -0
  186. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/update_config_category_problem.py +0 -0
  187. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/venv_creation_failed_problem.py +0 -0
  188. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/__init__.py +0 -0
  189. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/deprecated_node_in_workflow_problem.py +0 -0
  190. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/invalid_dependency_version_string_problem.py +0 -0
  191. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/invalid_library_version_string_problem.py +0 -0
  192. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/invalid_metadata_schema_problem.py +0 -0
  193. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/invalid_metadata_section_count_problem.py +0 -0
  194. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/invalid_toml_format_problem.py +0 -0
  195. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/library_not_registered_problem.py +0 -0
  196. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/library_version_below_required_problem.py +0 -0
  197. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/library_version_large_difference_problem.py +0 -0
  198. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/library_version_major_mismatch_problem.py +0 -0
  199. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/library_version_minor_difference_problem.py +0 -0
  200. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/missing_creation_date_problem.py +0 -0
  201. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/missing_last_modified_date_problem.py +0 -0
  202. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/missing_toml_section_problem.py +0 -0
  203. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/node_type_not_found_problem.py +0 -0
  204. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_not_found_problem.py +0 -0
  205. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_problem.py +0 -0
  206. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_schema_version_problem.py +0 -0
  207. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/__init__.py +0 -0
  208. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/data_models.py +0 -0
  209. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_directory.py +0 -0
  210. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_fsm.py +0 -0
  211. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/__init__.py +0 -0
  212. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/base.py +0 -0
  213. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/github.py +0 -0
  214. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/local_file.py +0 -0
  215. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/package.py +0 -0
  216. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/sandbox.py +0 -0
  217. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance.py +0 -0
  218. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_status.py +0 -0
  219. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/mcp_manager.py +0 -0
  220. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/model_manager.py +0 -0
  221. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/object_manager.py +0 -0
  222. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/operation_manager.py +0 -0
  223. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/os_manager.py +0 -0
  224. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/project_manager.py +0 -0
  225. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/resource_components/__init__.py +0 -0
  226. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/resource_components/capability_field.py +0 -0
  227. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/resource_components/comparator.py +0 -0
  228. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/resource_components/resource_instance.py +0 -0
  229. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/resource_components/resource_type.py +0 -0
  230. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/resource_manager.py +0 -0
  231. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/resource_types/__init__.py +0 -0
  232. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/resource_types/cpu_resource.py +0 -0
  233. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/resource_types/os_resource.py +0 -0
  234. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/secrets_manager.py +0 -0
  235. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/session_manager.py +0 -0
  236. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/settings.py +0 -0
  237. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/static_files_manager.py +0 -0
  238. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/sync_manager.py +0 -0
  239. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/user_manager.py +0 -0
  240. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/variable_manager.py +0 -0
  241. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/managers/version_compatibility_manager.py +0 -0
  242. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/retained_mode.py +0 -0
  243. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/utils/__init__.py +0 -0
  244. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/utils/name_generator.py +0 -0
  245. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/retained_mode/variable_types.py +0 -0
  246. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/servers/__init__.py +0 -0
  247. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/servers/mcp.py +0 -0
  248. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/servers/static.py +0 -0
  249. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/traits/__init__.py +0 -0
  250. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/traits/add_param_button.py +0 -0
  251. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/traits/button.py +0 -0
  252. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/traits/clamp.py +0 -0
  253. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/traits/color_picker.py +0 -0
  254. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/traits/compare.py +0 -0
  255. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/traits/compare_images.py +0 -0
  256. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/traits/file_system_picker.py +0 -0
  257. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/traits/minmax.py +0 -0
  258. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/traits/multi_options.py +0 -0
  259. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/traits/numbers_selector.py +0 -0
  260. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/traits/options.py +0 -0
  261. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/traits/slider.py +0 -0
  262. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/traits/trait_registry.py +0 -0
  263. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/traits/traits.json +0 -0
  264. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/updater/__init__.py +0 -0
  265. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/updater/__main__.py +0 -0
  266. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/utils/__init__.py +0 -0
  267. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/utils/async_utils.py +0 -0
  268. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/utils/dict_utils.py +0 -0
  269. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/utils/file_utils.py +0 -0
  270. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/utils/huggingface_utils.py +0 -0
  271. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/utils/image_preview.py +0 -0
  272. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/utils/library_utils.py +0 -0
  273. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/utils/metaclasses.py +0 -0
  274. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/utils/uv_utils.py +0 -0
  275. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/utils/version_utils.py +0 -0
  276. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/version_compatibility/__init__.py +0 -0
  277. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/version_compatibility/versions/__init__.py +0 -0
  278. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/version_compatibility/versions/v0_39_0/__init__.py +0 -0
  279. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/version_compatibility/versions/v0_39_0/modified_parameters_set_removal.py +0 -0
  280. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/version_compatibility/versions/v0_63_8/__init__.py +0 -0
  281. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/version_compatibility/versions/v0_7_0/__init__.py +0 -0
  282. {griptape_nodes-0.65.0 → griptape_nodes-0.65.2}/src/griptape_nodes/version_compatibility/versions/v0_7_0/local_executor_argument_addition.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: griptape-nodes
3
- Version: 0.65.0
3
+ Version: 0.65.2
4
4
  Summary: Add your description here
5
5
  Requires-Dist: griptape>=1.8.12
6
6
  Requires-Dist: pydantic>=2.10.6
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "griptape-nodes"
3
- version = "0.65.0"
3
+ version = "0.65.2"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12.0, <3.13"
@@ -15,13 +15,13 @@ from griptape_nodes.exe_types.base_iterative_nodes import (
15
15
  BaseIterativeStartNode,
16
16
  )
17
17
  from griptape_nodes.exe_types.core_types import ParameterTypeBuiltin
18
+ from griptape_nodes.exe_types.node_groups import SubflowNodeGroup
18
19
  from griptape_nodes.exe_types.node_types import (
19
20
  CONTROL_INPUT_PARAMETER,
20
21
  LOCAL_EXECUTION,
21
22
  PRIVATE_EXECUTION,
22
23
  BaseNode,
23
24
  EndNode,
24
- NodeGroupNode,
25
25
  NodeResolutionState,
26
26
  StartNode,
27
27
  )
@@ -197,7 +197,7 @@ class NodeExecutor:
197
197
  node: The BaseNode to execute
198
198
  library_name: The library that the execute method should come from.
199
199
  """
200
- if isinstance(node, NodeGroupNode):
200
+ if isinstance(node, SubflowNodeGroup):
201
201
  execution_type = node.get_parameter_value(node.execution_environment.name)
202
202
  if execution_type == LOCAL_EXECUTION:
203
203
  # Just execute the node normally! This means we aren't doing any special packaging.
@@ -216,7 +216,7 @@ class NodeExecutor:
216
216
  await self.handle_loop_execution(node)
217
217
  return
218
218
 
219
- # We default to local execution if it is not a NodeGroupNode or BaseIterativeEndNode!
219
+ # We default to local execution if it is not a SubflowNodeGroup or BaseIterativeEndNode!
220
220
  await node.aprocess()
221
221
 
222
222
  async def _execute_and_apply_workflow(
@@ -414,8 +414,8 @@ class NodeExecutor:
414
414
  workflow_start_end_nodes = await self._get_workflow_start_end_nodes(library)
415
415
 
416
416
  sanitized_library_name = library_name.replace(" ", "_")
417
- # If we are packaging a NodeGroupNode, that means that we are packaging multiple nodes together, so we have to get the list of nodes from the group node.
418
- if isinstance(node, NodeGroupNode):
417
+ # If we are packaging a SubflowNodeGroup, that means that we are packaging multiple nodes together, so we have to get the list of nodes from the group node.
418
+ if isinstance(node, SubflowNodeGroup):
419
419
  node_names = list(node.get_all_nodes().keys())
420
420
  else:
421
421
  # Otherwise, it's a list of one node!
@@ -424,8 +424,8 @@ class NodeExecutor:
424
424
  if len(node_names) == 0:
425
425
  return None
426
426
 
427
- # Pass node_group_name if we're packaging a NodeGroupNode
428
- node_group_name = node.name if isinstance(node, NodeGroupNode) else None
427
+ # Pass node_group_name if we're packaging a SubflowNodeGroup
428
+ node_group_name = node.name if isinstance(node, SubflowNodeGroup) else None
429
429
 
430
430
  request = PackageNodesAsSerializedFlowRequest(
431
431
  node_names=node_names,
@@ -618,7 +618,7 @@ class NodeExecutor:
618
618
  if len(all_nodes) == 1:
619
619
  node_inside = all_nodes.pop()
620
620
  node_obj = node_manager.get_node_by_name(node_inside)
621
- if isinstance(node_obj, NodeGroupNode):
621
+ if isinstance(node_obj, SubflowNodeGroup):
622
622
  execution_type = node_obj.get_parameter_value(node_obj.execution_environment.name)
623
623
  all_nodes.update(node_obj.get_all_nodes())
624
624
  node_group_name = node_obj.name
@@ -1327,7 +1327,7 @@ class NodeExecutor:
1327
1327
  msg = f"Failed to get node {target_node_name} for connection {conn} from start node {start_node.name}. Can't get parameter value iterations."
1328
1328
  logger.error(msg)
1329
1329
  raise RuntimeError(msg) # noqa: B904
1330
- if isinstance(target_node, NodeGroupNode):
1330
+ if isinstance(target_node, SubflowNodeGroup):
1331
1331
  # Get connections from this proxy parameter to find the actual internal target
1332
1332
  connections = flow_manager.get_connections()
1333
1333
  proxy_param = target_node.get_parameter_by_name(target_param_name)
@@ -1505,7 +1505,7 @@ class NodeExecutor:
1505
1505
  source_node = node_manager.get_node_by_name(source_node_name)
1506
1506
  except ValueError:
1507
1507
  continue
1508
- if isinstance(source_node, NodeGroupNode):
1508
+ if isinstance(source_node, SubflowNodeGroup):
1509
1509
  # Get connections to this proxy parameter to find the actual internal source
1510
1510
  connections = flow_manager.get_connections()
1511
1511
  proxy_param = source_node.get_parameter_by_name(source_param_name)
@@ -2434,7 +2434,7 @@ class NodeExecutor:
2434
2434
 
2435
2435
  Sets parameter values on the node and updates parameter_output_values dictionary.
2436
2436
  Uses parameter_name_mappings from package_result to map packaged parameters back to original nodes.
2437
- Works for both single-node and multi-node packages (NodeGroupNode).
2437
+ Works for both single-node and multi-node packages (SubflowNodeGroup).
2438
2438
  """
2439
2439
  # If the packaged flow fails, the End Flow Node in the library published workflow will have entered from 'failed'
2440
2440
  if "failed" in parameter_output_values and parameter_output_values["failed"] == CONTROL_INPUT_PARAMETER:
@@ -2455,11 +2455,11 @@ class NodeExecutor:
2455
2455
  target_node_name = original_node_param.node_name
2456
2456
  target_param_name = original_node_param.parameter_name
2457
2457
 
2458
- # Determine the target node - if this is a NodeGroupNode, look up the child node
2459
- if isinstance(node, NodeGroupNode):
2458
+ # Determine the target node - if this is a SubflowNodeGroup, look up the child node
2459
+ if isinstance(node, SubflowNodeGroup):
2460
2460
  if target_node_name not in node.nodes:
2461
2461
  logger.warning(
2462
- "Node '%s' not found in NodeGroupNode '%s', skipping value application",
2462
+ "Node '%s' not found in SubflowNodeGroup '%s', skipping value application",
2463
2463
  target_node_name,
2464
2464
  node.name,
2465
2465
  )
@@ -0,0 +1,6 @@
1
+ """Node group implementations for managing collections of nodes."""
2
+
3
+ from .base_node_group import BaseNodeGroup
4
+ from .subflow_node_group import SubflowNodeGroup
5
+
6
+ __all__ = ["BaseNodeGroup", "SubflowNodeGroup"]
@@ -0,0 +1,31 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import Any
4
+
5
+ from griptape_nodes.exe_types.node_types import BaseNode
6
+
7
+
8
+ class BaseNodeGroup(BaseNode):
9
+ """Base class for node group implementations.
10
+
11
+ Node groups are collections of nodes that are treated as a single unit.
12
+ This base class provides the core functionality for managing a group of
13
+ nodes, which may itself include other node groups.
14
+ """
15
+
16
+ nodes: dict[str, BaseNode]
17
+
18
+ def __init__(
19
+ self,
20
+ name: str,
21
+ metadata: dict[Any, Any] | None = None,
22
+ ) -> None:
23
+ """Initialize the node group base.
24
+
25
+ Args:
26
+ name: The name of this node group
27
+ metadata: Optional metadata dictionary
28
+ """
29
+ super().__init__(name, metadata)
30
+ self.nodes = {}
31
+ self.metadata["is_node_group"] = True