griptape-nodes 0.62.1__tar.gz → 0.62.3__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 (215) hide show
  1. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/PKG-INFO +1 -1
  2. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/pyproject.toml +1 -1
  3. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/app_events.py +38 -0
  4. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/library_manager.py +73 -5
  5. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/workflow_manager.py +83 -22
  6. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/README.md +0 -0
  7. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/__init__.py +0 -0
  8. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/__main__.py +0 -0
  9. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/api_client/__init__.py +0 -0
  10. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/api_client/client.py +0 -0
  11. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/api_client/request_client.py +0 -0
  12. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/app/.python-version +0 -0
  13. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/app/__init__.py +0 -0
  14. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/app/app.py +0 -0
  15. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/app/watch.py +0 -0
  16. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/bootstrap/__init__.py +0 -0
  17. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/bootstrap/utils/__init__.py +0 -0
  18. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/bootstrap/utils/python_subprocess_executor.py +0 -0
  19. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/bootstrap/workflow_executors/__init__.py +0 -0
  20. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/bootstrap/workflow_executors/local_session_workflow_executor.py +0 -0
  21. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/bootstrap/workflow_executors/local_workflow_executor.py +0 -0
  22. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/bootstrap/workflow_executors/subprocess_workflow_executor.py +0 -0
  23. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/bootstrap/workflow_executors/utils/__init__.py +0 -0
  24. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/bootstrap/workflow_executors/utils/subprocess_script.py +0 -0
  25. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/bootstrap/workflow_executors/workflow_executor.py +0 -0
  26. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/bootstrap/workflow_publishers/__init__.py +0 -0
  27. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/bootstrap/workflow_publishers/local_workflow_publisher.py +0 -0
  28. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/bootstrap/workflow_publishers/subprocess_workflow_publisher.py +0 -0
  29. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/bootstrap/workflow_publishers/utils/__init__.py +0 -0
  30. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/bootstrap/workflow_publishers/utils/subprocess_script.py +0 -0
  31. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/cli/__init__.py +0 -0
  32. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/cli/commands/__init__.py +0 -0
  33. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/cli/commands/config.py +0 -0
  34. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/cli/commands/engine.py +0 -0
  35. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/cli/commands/init.py +0 -0
  36. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/cli/commands/libraries.py +0 -0
  37. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/cli/commands/models.py +0 -0
  38. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/cli/commands/self.py +0 -0
  39. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/cli/main.py +0 -0
  40. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/cli/shared.py +0 -0
  41. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/common/__init__.py +0 -0
  42. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/common/directed_graph.py +0 -0
  43. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/common/macro_parser/__init__.py +0 -0
  44. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/common/macro_parser/core.py +0 -0
  45. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/common/macro_parser/exceptions.py +0 -0
  46. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/common/macro_parser/formats.py +0 -0
  47. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/common/macro_parser/matching.py +0 -0
  48. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/common/macro_parser/parsing.py +0 -0
  49. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/common/macro_parser/resolution.py +0 -0
  50. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/common/macro_parser/segments.py +0 -0
  51. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/common/node_executor.py +0 -0
  52. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/common/project_templates/__init__.py +0 -0
  53. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/common/project_templates/default_project_template.py +0 -0
  54. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/common/project_templates/defaults/README.md +0 -0
  55. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/common/project_templates/directory.py +0 -0
  56. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/common/project_templates/loader.py +0 -0
  57. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/common/project_templates/project.py +0 -0
  58. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/common/project_templates/situation.py +0 -0
  59. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/common/project_templates/validation.py +0 -0
  60. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/drivers/__init__.py +0 -0
  61. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/drivers/storage/__init__.py +0 -0
  62. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/drivers/storage/base_storage_driver.py +0 -0
  63. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/drivers/storage/griptape_cloud_storage_driver.py +0 -0
  64. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/drivers/storage/local_storage_driver.py +0 -0
  65. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/drivers/storage/storage_backend.py +0 -0
  66. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/exe_types/__init__.py +0 -0
  67. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/exe_types/connections.py +0 -0
  68. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/exe_types/core_types.py +0 -0
  69. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/exe_types/flow.py +0 -0
  70. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/exe_types/node_types.py +0 -0
  71. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/exe_types/param_components/__init__.py +0 -0
  72. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/exe_types/param_components/execution_status_component.py +0 -0
  73. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/exe_types/param_components/huggingface/__init__.py +0 -0
  74. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_model_parameter.py +0 -0
  75. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_repo_file_parameter.py +0 -0
  76. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_repo_parameter.py +0 -0
  77. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_utils.py +0 -0
  78. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/exe_types/param_components/log_parameter.py +0 -0
  79. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/exe_types/param_components/progress_bar_component.py +0 -0
  80. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/exe_types/param_components/seed_parameter.py +0 -0
  81. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/exe_types/param_types/__init__.py +0 -0
  82. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/exe_types/param_types/parameter_audio.py +0 -0
  83. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/exe_types/param_types/parameter_bool.py +0 -0
  84. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/exe_types/param_types/parameter_float.py +0 -0
  85. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/exe_types/param_types/parameter_image.py +0 -0
  86. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/exe_types/param_types/parameter_int.py +0 -0
  87. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/exe_types/param_types/parameter_number.py +0 -0
  88. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/exe_types/param_types/parameter_string.py +0 -0
  89. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/exe_types/param_types/parameter_three_d.py +0 -0
  90. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/exe_types/param_types/parameter_video.py +0 -0
  91. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/exe_types/type_validator.py +0 -0
  92. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/machines/__init__.py +0 -0
  93. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/machines/control_flow.py +0 -0
  94. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/machines/dag_builder.py +0 -0
  95. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/machines/fsm.py +0 -0
  96. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/machines/parallel_resolution.py +0 -0
  97. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/machines/sequential_resolution.py +0 -0
  98. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/mcp_server/__init__.py +0 -0
  99. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/node_library/__init__.py +0 -0
  100. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/node_library/advanced_node_library.py +0 -0
  101. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/node_library/library_registry.py +0 -0
  102. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/node_library/workflow_registry.py +0 -0
  103. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/py.typed +0 -0
  104. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/__init__.py +0 -0
  105. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/__init__.py +0 -0
  106. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/agent_events.py +0 -0
  107. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/arbitrary_python_events.py +0 -0
  108. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/base_events.py +0 -0
  109. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/config_events.py +0 -0
  110. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/connection_events.py +0 -0
  111. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/context_events.py +0 -0
  112. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/execution_events.py +0 -0
  113. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/flow_events.py +0 -0
  114. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/generate_request_payload_schemas.py +0 -0
  115. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/library_events.py +0 -0
  116. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/logger_events.py +0 -0
  117. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/mcp_events.py +0 -0
  118. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/model_events.py +0 -0
  119. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/node_events.py +0 -0
  120. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/object_events.py +0 -0
  121. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/os_events.py +0 -0
  122. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/parameter_events.py +0 -0
  123. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/payload_registry.py +0 -0
  124. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/project_events.py +0 -0
  125. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/resource_events.py +0 -0
  126. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/secrets_events.py +0 -0
  127. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/static_file_events.py +0 -0
  128. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/sync_events.py +0 -0
  129. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/validation_events.py +0 -0
  130. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/variable_events.py +0 -0
  131. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/events/workflow_events.py +0 -0
  132. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/griptape_nodes.py +0 -0
  133. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/__init__.py +0 -0
  134. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/agent_manager.py +0 -0
  135. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/arbitrary_code_exec_manager.py +0 -0
  136. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/config_manager.py +0 -0
  137. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/context_manager.py +0 -0
  138. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/engine_identity_manager.py +0 -0
  139. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/event_manager.py +0 -0
  140. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/flow_manager.py +0 -0
  141. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/library_lifecycle/__init__.py +0 -0
  142. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/library_lifecycle/data_models.py +0 -0
  143. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_directory.py +0 -0
  144. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_fsm.py +0 -0
  145. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/__init__.py +0 -0
  146. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/base.py +0 -0
  147. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/github.py +0 -0
  148. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/local_file.py +0 -0
  149. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/package.py +0 -0
  150. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/sandbox.py +0 -0
  151. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance.py +0 -0
  152. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_status.py +0 -0
  153. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/mcp_manager.py +0 -0
  154. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/model_manager.py +0 -0
  155. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/node_manager.py +0 -0
  156. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/object_manager.py +0 -0
  157. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/operation_manager.py +0 -0
  158. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/os_manager.py +0 -0
  159. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/project_manager.py +0 -0
  160. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/resource_components/__init__.py +0 -0
  161. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/resource_components/capability_field.py +0 -0
  162. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/resource_components/comparator.py +0 -0
  163. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/resource_components/resource_instance.py +0 -0
  164. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/resource_components/resource_type.py +0 -0
  165. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/resource_manager.py +0 -0
  166. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/resource_types/__init__.py +0 -0
  167. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/resource_types/cpu_resource.py +0 -0
  168. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/resource_types/os_resource.py +0 -0
  169. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/secrets_manager.py +0 -0
  170. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/session_manager.py +0 -0
  171. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/settings.py +0 -0
  172. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/static_files_manager.py +0 -0
  173. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/sync_manager.py +0 -0
  174. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/user_manager.py +0 -0
  175. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/variable_manager.py +0 -0
  176. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/managers/version_compatibility_manager.py +0 -0
  177. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/retained_mode.py +0 -0
  178. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/utils/__init__.py +0 -0
  179. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/utils/name_generator.py +0 -0
  180. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/retained_mode/variable_types.py +0 -0
  181. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/servers/__init__.py +0 -0
  182. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/servers/mcp.py +0 -0
  183. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/servers/static.py +0 -0
  184. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/traits/__init__.py +0 -0
  185. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/traits/add_param_button.py +0 -0
  186. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/traits/button.py +0 -0
  187. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/traits/clamp.py +0 -0
  188. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/traits/color_picker.py +0 -0
  189. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/traits/compare.py +0 -0
  190. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/traits/compare_images.py +0 -0
  191. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/traits/file_system_picker.py +0 -0
  192. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/traits/minmax.py +0 -0
  193. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/traits/multi_options.py +0 -0
  194. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/traits/numbers_selector.py +0 -0
  195. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/traits/options.py +0 -0
  196. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/traits/slider.py +0 -0
  197. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/traits/trait_registry.py +0 -0
  198. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/traits/traits.json +0 -0
  199. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/updater/__init__.py +0 -0
  200. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/updater/__main__.py +0 -0
  201. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/utils/__init__.py +0 -0
  202. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/utils/async_utils.py +0 -0
  203. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/utils/dict_utils.py +0 -0
  204. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/utils/huggingface_utils.py +0 -0
  205. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/utils/image_preview.py +0 -0
  206. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/utils/metaclasses.py +0 -0
  207. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/utils/uv_utils.py +0 -0
  208. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/utils/version_utils.py +0 -0
  209. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/version_compatibility/__init__.py +0 -0
  210. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/version_compatibility/versions/__init__.py +0 -0
  211. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/version_compatibility/versions/v0_39_0/__init__.py +0 -0
  212. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/version_compatibility/versions/v0_39_0/modified_parameters_set_removal.py +0 -0
  213. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/version_compatibility/workflow_versions/__init__.py +0 -0
  214. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/version_compatibility/workflow_versions/v0_7_0/__init__.py +0 -0
  215. {griptape_nodes-0.62.1 → griptape_nodes-0.62.3}/src/griptape_nodes/version_compatibility/workflow_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.62.1
3
+ Version: 0.62.3
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.62.1"
3
+ version = "0.62.3"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12.0, <3.13"
@@ -1,4 +1,5 @@
1
1
  from dataclasses import dataclass, field
2
+ from enum import StrEnum
2
3
 
3
4
  from griptape_nodes.retained_mode.events.base_events import (
4
5
  AppPayload,
@@ -11,6 +12,21 @@ from griptape_nodes.retained_mode.events.base_events import (
11
12
  from griptape_nodes.retained_mode.events.payload_registry import PayloadRegistry
12
13
 
13
14
 
15
+ class InitializationPhase(StrEnum):
16
+ """Initialization phase types for engine startup."""
17
+
18
+ LIBRARIES = "libraries"
19
+ WORKFLOWS = "workflows"
20
+
21
+
22
+ class InitializationStatus(StrEnum):
23
+ """Status types for initialization progress."""
24
+
25
+ LOADING = "loading"
26
+ COMPLETE = "complete"
27
+ FAILED = "failed"
28
+
29
+
14
30
  @dataclass
15
31
  class OrganizationInfo:
16
32
  """Organization information from Griptape Cloud."""
@@ -104,6 +120,28 @@ class AppConnectionEstablished(AppPayload):
104
120
  """Notification that a connection to the API has been established."""
105
121
 
106
122
 
123
+ @dataclass
124
+ @PayloadRegistry.register
125
+ class EngineInitializationProgress(AppPayload):
126
+ """Real-time progress updates during engine initialization (libraries and workflows loading).
127
+
128
+ Args:
129
+ phase: Current initialization phase (libraries or workflows)
130
+ item_name: Name of the library or workflow being loaded
131
+ status: Current status of the item (loading, complete, or failed)
132
+ current: Number of items completed so far
133
+ total: Total number of items to load
134
+ error: Error message if status is failed, None otherwise
135
+ """
136
+
137
+ phase: InitializationPhase
138
+ item_name: str
139
+ status: InitializationStatus
140
+ current: int
141
+ total: int
142
+ error: str | None = None
143
+
144
+
107
145
  @dataclass
108
146
  @PayloadRegistry.register
109
147
  class GetEngineVersionRequest(RequestPayload):
@@ -36,12 +36,15 @@ from griptape_nodes.node_library.library_registry import (
36
36
  )
37
37
  from griptape_nodes.retained_mode.events.app_events import (
38
38
  AppInitializationComplete,
39
+ EngineInitializationProgress,
39
40
  GetEngineVersionRequest,
40
41
  GetEngineVersionResultSuccess,
42
+ InitializationPhase,
43
+ InitializationStatus,
41
44
  )
42
45
 
43
46
  # Runtime imports for ResultDetails since it's used at runtime
44
- from griptape_nodes.retained_mode.events.base_events import ResultDetails
47
+ from griptape_nodes.retained_mode.events.base_events import AppEvent, ResultDetails
45
48
  from griptape_nodes.retained_mode.events.config_events import (
46
49
  GetConfigCategoryRequest,
47
50
  GetConfigCategoryResultSuccess,
@@ -822,6 +825,7 @@ class LibraryManager:
822
825
  logger.info(
823
826
  "Installing dependencies for library '%s' with pip in venv at %s", library_data.name, venv_path
824
827
  )
828
+ is_debug = config_manager.get_config_value("log_level").upper() == "DEBUG"
825
829
  await subprocess_run(
826
830
  [
827
831
  sys.executable,
@@ -835,7 +839,7 @@ class LibraryManager:
835
839
  str(library_venv_python_path),
836
840
  ],
837
841
  check=True,
838
- capture_output=True,
842
+ capture_output=not is_debug,
839
843
  text=True,
840
844
  )
841
845
  else:
@@ -955,6 +959,7 @@ class LibraryManager:
955
959
  uv_path = find_uv_bin()
956
960
 
957
961
  logger.info("Installing dependency '%s' with pip in venv at %s", package_name, venv_path)
962
+ is_debug = config_manager.get_config_value("log_level").upper() == "DEBUG"
958
963
  await subprocess_run(
959
964
  [
960
965
  uv_path,
@@ -965,7 +970,7 @@ class LibraryManager:
965
970
  str(library_python_venv_path),
966
971
  ],
967
972
  check=True,
968
- capture_output=True,
973
+ capture_output=not is_debug,
969
974
  text=True,
970
975
  )
971
976
  else:
@@ -1032,10 +1037,11 @@ class LibraryManager:
1032
1037
  try:
1033
1038
  uv_path = find_uv_bin()
1034
1039
  logger.info("Creating virtual environment at %s with Python %s", library_venv_path, python_version)
1040
+ is_debug = config_manager.get_config_value("log_level").upper() == "DEBUG"
1035
1041
  await subprocess_run(
1036
1042
  [uv_path, "venv", str(library_venv_path), "--python", python_version],
1037
1043
  check=True,
1038
- capture_output=True,
1044
+ capture_output=not is_debug,
1039
1045
  text=True,
1040
1046
  )
1041
1047
  except subprocess.CalledProcessError as e:
@@ -1529,13 +1535,44 @@ class LibraryManager:
1529
1535
  problems=failed_library.problems,
1530
1536
  )
1531
1537
 
1538
+ # Calculate total libraries for progress tracking
1539
+ total_libraries = len(metadata_result.successful_libraries)
1540
+
1532
1541
  # Use metadata results to selectively load libraries
1533
- for library_result in metadata_result.successful_libraries:
1542
+ for current_library_index, library_result in enumerate(metadata_result.successful_libraries, start=1):
1543
+ library_name = library_result.library_schema.name
1544
+
1545
+ # Emit loading event
1546
+ GriptapeNodes.EventManager().put_event(
1547
+ AppEvent(
1548
+ payload=EngineInitializationProgress(
1549
+ phase=InitializationPhase.LIBRARIES,
1550
+ item_name=library_name,
1551
+ status=InitializationStatus.LOADING,
1552
+ current=current_library_index,
1553
+ total=total_libraries,
1554
+ )
1555
+ )
1556
+ )
1557
+
1558
+ # Register the library
1534
1559
  if library_result.library_schema.name == LibraryManager.SANDBOX_LIBRARY_NAME:
1535
1560
  # Handle sandbox library - use the schema we already have
1536
1561
  await self._attempt_generate_sandbox_library_from_schema(
1537
1562
  library_schema=library_result.library_schema, sandbox_directory=library_result.file_path
1538
1563
  )
1564
+ # Emit success event for sandbox library
1565
+ GriptapeNodes.EventManager().put_event(
1566
+ AppEvent(
1567
+ payload=EngineInitializationProgress(
1568
+ phase=InitializationPhase.LIBRARIES,
1569
+ item_name=library_name,
1570
+ status=InitializationStatus.COMPLETE,
1571
+ current=current_library_index,
1572
+ total=total_libraries,
1573
+ )
1574
+ )
1575
+ )
1539
1576
  else:
1540
1577
  # Handle config-based library - register it directly using the file path
1541
1578
  register_request = RegisterLibraryFromFileRequest(
@@ -1546,6 +1583,37 @@ class LibraryManager:
1546
1583
  # Registration failed - the failure info is already recorded in _library_file_path_to_info
1547
1584
  # by register_library_from_file_request, so we just log it here for visibility
1548
1585
  logger.warning("Failed to register library from %s", library_result.file_path)
1586
+ # Emit failure event
1587
+ error_message = (
1588
+ register_result.result_details.result_details[0].message
1589
+ if isinstance(register_result.result_details, ResultDetails)
1590
+ else register_result.result_details
1591
+ )
1592
+ GriptapeNodes.EventManager().put_event(
1593
+ AppEvent(
1594
+ payload=EngineInitializationProgress(
1595
+ phase=InitializationPhase.LIBRARIES,
1596
+ item_name=library_name,
1597
+ status=InitializationStatus.FAILED,
1598
+ current=current_library_index,
1599
+ total=total_libraries,
1600
+ error=error_message,
1601
+ )
1602
+ )
1603
+ )
1604
+ else:
1605
+ # Emit success event
1606
+ GriptapeNodes.EventManager().put_event(
1607
+ AppEvent(
1608
+ payload=EngineInitializationProgress(
1609
+ phase=InitializationPhase.LIBRARIES,
1610
+ item_name=library_name,
1611
+ status=InitializationStatus.COMPLETE,
1612
+ current=current_library_index,
1613
+ total=total_libraries,
1614
+ )
1615
+ )
1616
+ )
1549
1617
 
1550
1618
  # Print 'em all pretty
1551
1619
  self.print_library_load_status()
@@ -32,12 +32,15 @@ from griptape_nodes.node_library.workflow_registry import (
32
32
  WorkflowShape,
33
33
  )
34
34
  from griptape_nodes.retained_mode.events.app_events import (
35
+ EngineInitializationProgress,
35
36
  GetEngineVersionRequest,
36
37
  GetEngineVersionResultSuccess,
38
+ InitializationPhase,
39
+ InitializationStatus,
37
40
  )
38
41
 
39
42
  # Runtime imports for ResultDetails since it's used at runtime
40
- from griptape_nodes.retained_mode.events.base_events import ResultDetail, ResultDetails
43
+ from griptape_nodes.retained_mode.events.base_events import AppEvent, ResultDetail, ResultDetails
41
44
  from griptape_nodes.retained_mode.events.flow_events import (
42
45
  CreateFlowRequest,
43
46
  GetTopLevelFlowRequest,
@@ -4097,40 +4100,98 @@ class WorkflowManager:
4097
4100
  Returns:
4098
4101
  WorkflowRegistrationResult with succeeded and failed workflow names
4099
4102
  """
4103
+ from griptape_nodes.retained_mode.griptape_nodes import GriptapeNodes
4104
+
4100
4105
  succeeded = []
4101
4106
  failed = []
4102
4107
 
4103
- def process_workflow_file(workflow_file: Path) -> None:
4104
- """Process a single workflow file for registration."""
4105
- # Check if the file has workflow metadata before processing
4106
- metadata_blocks = self.get_workflow_metadata(
4107
- workflow_file, block_name=WorkflowManager.WORKFLOW_METADATA_HEADER
4108
- )
4109
- if len(metadata_blocks) == 1:
4110
- workflow_name = self._process_single_workflow_file(workflow_file)
4111
- if workflow_name:
4112
- succeeded.append(workflow_name)
4113
- else:
4114
- failed.append(str(workflow_file))
4108
+ # First pass: collect all workflow files to determine total count
4109
+ all_workflow_files: list[Path] = []
4115
4110
 
4116
- def process_path(path: Path) -> None:
4117
- """Process a path, handling both files and directories."""
4111
+ def collect_workflow_files(path: Path) -> None:
4112
+ """Collect workflow files from a path."""
4118
4113
  if not path.exists():
4119
- failed.append(str(path))
4120
4114
  return
4121
4115
  if path.is_dir():
4122
- # Process all Python files recursively in the directory
4123
- # Exclude .venv directories to avoid encoding issues with test files
4124
4116
  for workflow_file in path.rglob("*.py"):
4125
- # Skip files in .venv directories
4126
4117
  if ".venv" in workflow_file.parts:
4127
4118
  continue
4128
- process_workflow_file(workflow_file)
4119
+ # Check if file has workflow metadata
4120
+ try:
4121
+ metadata_blocks = self.get_workflow_metadata(
4122
+ workflow_file, block_name=WorkflowManager.WORKFLOW_METADATA_HEADER
4123
+ )
4124
+ if len(metadata_blocks) == 1:
4125
+ all_workflow_files.append(workflow_file)
4126
+ except Exception as e:
4127
+ # Skip files that can't be read or parsed
4128
+ logger.debug("Skipping workflow file %s due to error: %s", workflow_file, e)
4129
+ continue
4129
4130
  elif path.suffix == ".py":
4130
- process_workflow_file(path)
4131
+ try:
4132
+ metadata_blocks = self.get_workflow_metadata(
4133
+ path, block_name=WorkflowManager.WORKFLOW_METADATA_HEADER
4134
+ )
4135
+ if len(metadata_blocks) == 1:
4136
+ all_workflow_files.append(path)
4137
+ except Exception as e:
4138
+ logger.debug("Skipping workflow file %s due to error: %s", path, e)
4131
4139
 
4140
+ # Collect all workflow files first
4132
4141
  for workflow_to_register in workflows_to_register:
4133
- process_path(Path(workflow_to_register))
4142
+ collect_workflow_files(Path(workflow_to_register))
4143
+
4144
+ # Track progress
4145
+ total_workflows = len(all_workflow_files)
4146
+
4147
+ # Second pass: process each workflow file with progress events
4148
+ for current_index, workflow_file in enumerate(all_workflow_files, start=1):
4149
+ workflow_name = str(workflow_file.name)
4150
+
4151
+ # Emit loading event
4152
+ GriptapeNodes.EventManager().put_event(
4153
+ AppEvent(
4154
+ payload=EngineInitializationProgress(
4155
+ phase=InitializationPhase.WORKFLOWS,
4156
+ item_name=workflow_name,
4157
+ status=InitializationStatus.LOADING,
4158
+ current=current_index,
4159
+ total=total_workflows,
4160
+ )
4161
+ )
4162
+ )
4163
+
4164
+ # Process the workflow
4165
+ result_name = self._process_single_workflow_file(workflow_file)
4166
+ if result_name:
4167
+ succeeded.append(result_name)
4168
+ # Emit success event
4169
+ GriptapeNodes.EventManager().put_event(
4170
+ AppEvent(
4171
+ payload=EngineInitializationProgress(
4172
+ phase=InitializationPhase.WORKFLOWS,
4173
+ item_name=workflow_name,
4174
+ status=InitializationStatus.COMPLETE,
4175
+ current=current_index,
4176
+ total=total_workflows,
4177
+ )
4178
+ )
4179
+ )
4180
+ else:
4181
+ failed.append(str(workflow_file))
4182
+ # Emit failure event
4183
+ GriptapeNodes.EventManager().put_event(
4184
+ AppEvent(
4185
+ payload=EngineInitializationProgress(
4186
+ phase=InitializationPhase.WORKFLOWS,
4187
+ item_name=workflow_name,
4188
+ status=InitializationStatus.FAILED,
4189
+ current=current_index,
4190
+ total=total_workflows,
4191
+ error="Failed to process workflow file",
4192
+ )
4193
+ )
4194
+ )
4134
4195
 
4135
4196
  return WorkflowRegistrationResult(succeeded=succeeded, failed=failed)
4136
4197