griptape-nodes 0.62.0__tar.gz → 0.62.1__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.0 → griptape_nodes-0.62.1}/PKG-INFO +1 -1
  2. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/pyproject.toml +1 -1
  3. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/drivers/storage/griptape_cloud_storage_driver.py +2 -2
  4. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/drivers/storage/local_storage_driver.py +2 -2
  5. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/event_manager.py +24 -9
  6. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/library_manager.py +12 -21
  7. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/static_files_manager.py +1 -5
  8. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/README.md +0 -0
  9. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/__init__.py +0 -0
  10. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/__main__.py +0 -0
  11. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/api_client/__init__.py +0 -0
  12. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/api_client/client.py +0 -0
  13. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/api_client/request_client.py +0 -0
  14. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/app/.python-version +0 -0
  15. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/app/__init__.py +0 -0
  16. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/app/app.py +0 -0
  17. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/app/watch.py +0 -0
  18. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/bootstrap/__init__.py +0 -0
  19. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/bootstrap/utils/__init__.py +0 -0
  20. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/bootstrap/utils/python_subprocess_executor.py +0 -0
  21. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/bootstrap/workflow_executors/__init__.py +0 -0
  22. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/bootstrap/workflow_executors/local_session_workflow_executor.py +0 -0
  23. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/bootstrap/workflow_executors/local_workflow_executor.py +0 -0
  24. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/bootstrap/workflow_executors/subprocess_workflow_executor.py +0 -0
  25. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/bootstrap/workflow_executors/utils/__init__.py +0 -0
  26. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/bootstrap/workflow_executors/utils/subprocess_script.py +0 -0
  27. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/bootstrap/workflow_executors/workflow_executor.py +0 -0
  28. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/bootstrap/workflow_publishers/__init__.py +0 -0
  29. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/bootstrap/workflow_publishers/local_workflow_publisher.py +0 -0
  30. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/bootstrap/workflow_publishers/subprocess_workflow_publisher.py +0 -0
  31. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/bootstrap/workflow_publishers/utils/__init__.py +0 -0
  32. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/bootstrap/workflow_publishers/utils/subprocess_script.py +0 -0
  33. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/cli/__init__.py +0 -0
  34. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/cli/commands/__init__.py +0 -0
  35. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/cli/commands/config.py +0 -0
  36. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/cli/commands/engine.py +0 -0
  37. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/cli/commands/init.py +0 -0
  38. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/cli/commands/libraries.py +0 -0
  39. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/cli/commands/models.py +0 -0
  40. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/cli/commands/self.py +0 -0
  41. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/cli/main.py +0 -0
  42. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/cli/shared.py +0 -0
  43. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/common/__init__.py +0 -0
  44. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/common/directed_graph.py +0 -0
  45. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/common/macro_parser/__init__.py +0 -0
  46. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/common/macro_parser/core.py +0 -0
  47. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/common/macro_parser/exceptions.py +0 -0
  48. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/common/macro_parser/formats.py +0 -0
  49. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/common/macro_parser/matching.py +0 -0
  50. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/common/macro_parser/parsing.py +0 -0
  51. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/common/macro_parser/resolution.py +0 -0
  52. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/common/macro_parser/segments.py +0 -0
  53. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/common/node_executor.py +0 -0
  54. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/common/project_templates/__init__.py +0 -0
  55. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/common/project_templates/default_project_template.py +0 -0
  56. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/common/project_templates/defaults/README.md +0 -0
  57. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/common/project_templates/directory.py +0 -0
  58. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/common/project_templates/loader.py +0 -0
  59. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/common/project_templates/project.py +0 -0
  60. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/common/project_templates/situation.py +0 -0
  61. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/common/project_templates/validation.py +0 -0
  62. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/drivers/__init__.py +0 -0
  63. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/drivers/storage/__init__.py +0 -0
  64. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/drivers/storage/base_storage_driver.py +0 -0
  65. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/drivers/storage/storage_backend.py +0 -0
  66. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/exe_types/__init__.py +0 -0
  67. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/exe_types/connections.py +0 -0
  68. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/exe_types/core_types.py +0 -0
  69. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/exe_types/flow.py +0 -0
  70. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/exe_types/node_types.py +0 -0
  71. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/exe_types/param_components/__init__.py +0 -0
  72. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/exe_types/param_components/execution_status_component.py +0 -0
  73. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/exe_types/param_components/huggingface/__init__.py +0 -0
  74. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_model_parameter.py +0 -0
  75. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_repo_file_parameter.py +0 -0
  76. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_repo_parameter.py +0 -0
  77. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_utils.py +0 -0
  78. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/exe_types/param_components/log_parameter.py +0 -0
  79. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/exe_types/param_components/progress_bar_component.py +0 -0
  80. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/exe_types/param_components/seed_parameter.py +0 -0
  81. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/exe_types/param_types/__init__.py +0 -0
  82. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/exe_types/param_types/parameter_audio.py +0 -0
  83. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/exe_types/param_types/parameter_bool.py +0 -0
  84. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/exe_types/param_types/parameter_float.py +0 -0
  85. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/exe_types/param_types/parameter_image.py +0 -0
  86. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/exe_types/param_types/parameter_int.py +0 -0
  87. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/exe_types/param_types/parameter_number.py +0 -0
  88. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/exe_types/param_types/parameter_string.py +0 -0
  89. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/exe_types/param_types/parameter_three_d.py +0 -0
  90. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/exe_types/param_types/parameter_video.py +0 -0
  91. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/exe_types/type_validator.py +0 -0
  92. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/machines/__init__.py +0 -0
  93. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/machines/control_flow.py +0 -0
  94. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/machines/dag_builder.py +0 -0
  95. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/machines/fsm.py +0 -0
  96. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/machines/parallel_resolution.py +0 -0
  97. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/machines/sequential_resolution.py +0 -0
  98. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/mcp_server/__init__.py +0 -0
  99. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/node_library/__init__.py +0 -0
  100. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/node_library/advanced_node_library.py +0 -0
  101. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/node_library/library_registry.py +0 -0
  102. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/node_library/workflow_registry.py +0 -0
  103. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/py.typed +0 -0
  104. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/__init__.py +0 -0
  105. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/__init__.py +0 -0
  106. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/agent_events.py +0 -0
  107. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/app_events.py +0 -0
  108. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/arbitrary_python_events.py +0 -0
  109. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/base_events.py +0 -0
  110. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/config_events.py +0 -0
  111. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/connection_events.py +0 -0
  112. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/context_events.py +0 -0
  113. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/execution_events.py +0 -0
  114. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/flow_events.py +0 -0
  115. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/generate_request_payload_schemas.py +0 -0
  116. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/library_events.py +0 -0
  117. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/logger_events.py +0 -0
  118. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/mcp_events.py +0 -0
  119. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/model_events.py +0 -0
  120. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/node_events.py +0 -0
  121. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/object_events.py +0 -0
  122. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/os_events.py +0 -0
  123. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/parameter_events.py +0 -0
  124. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/payload_registry.py +0 -0
  125. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/project_events.py +0 -0
  126. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/resource_events.py +0 -0
  127. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/secrets_events.py +0 -0
  128. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/static_file_events.py +0 -0
  129. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/sync_events.py +0 -0
  130. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/validation_events.py +0 -0
  131. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/variable_events.py +0 -0
  132. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/events/workflow_events.py +0 -0
  133. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/griptape_nodes.py +0 -0
  134. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/__init__.py +0 -0
  135. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/agent_manager.py +0 -0
  136. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/arbitrary_code_exec_manager.py +0 -0
  137. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/config_manager.py +0 -0
  138. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/context_manager.py +0 -0
  139. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/engine_identity_manager.py +0 -0
  140. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/flow_manager.py +0 -0
  141. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/library_lifecycle/__init__.py +0 -0
  142. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/library_lifecycle/data_models.py +0 -0
  143. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_directory.py +0 -0
  144. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_fsm.py +0 -0
  145. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/__init__.py +0 -0
  146. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/base.py +0 -0
  147. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/github.py +0 -0
  148. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/local_file.py +0 -0
  149. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/package.py +0 -0
  150. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/sandbox.py +0 -0
  151. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance.py +0 -0
  152. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_status.py +0 -0
  153. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/mcp_manager.py +0 -0
  154. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/model_manager.py +0 -0
  155. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/node_manager.py +0 -0
  156. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/object_manager.py +0 -0
  157. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/operation_manager.py +0 -0
  158. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/os_manager.py +0 -0
  159. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/project_manager.py +0 -0
  160. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/resource_components/__init__.py +0 -0
  161. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/resource_components/capability_field.py +0 -0
  162. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/resource_components/comparator.py +0 -0
  163. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/resource_components/resource_instance.py +0 -0
  164. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/resource_components/resource_type.py +0 -0
  165. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/resource_manager.py +0 -0
  166. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/resource_types/__init__.py +0 -0
  167. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/resource_types/cpu_resource.py +0 -0
  168. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/resource_types/os_resource.py +0 -0
  169. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/secrets_manager.py +0 -0
  170. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/session_manager.py +0 -0
  171. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/settings.py +0 -0
  172. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/sync_manager.py +0 -0
  173. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/user_manager.py +0 -0
  174. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/variable_manager.py +0 -0
  175. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/version_compatibility_manager.py +0 -0
  176. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/managers/workflow_manager.py +0 -0
  177. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/retained_mode.py +0 -0
  178. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/utils/__init__.py +0 -0
  179. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/utils/name_generator.py +0 -0
  180. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/retained_mode/variable_types.py +0 -0
  181. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/servers/__init__.py +0 -0
  182. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/servers/mcp.py +0 -0
  183. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/servers/static.py +0 -0
  184. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/traits/__init__.py +0 -0
  185. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/traits/add_param_button.py +0 -0
  186. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/traits/button.py +0 -0
  187. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/traits/clamp.py +0 -0
  188. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/traits/color_picker.py +0 -0
  189. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/traits/compare.py +0 -0
  190. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/traits/compare_images.py +0 -0
  191. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/traits/file_system_picker.py +0 -0
  192. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/traits/minmax.py +0 -0
  193. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/traits/multi_options.py +0 -0
  194. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/traits/numbers_selector.py +0 -0
  195. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/traits/options.py +0 -0
  196. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/traits/slider.py +0 -0
  197. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/traits/trait_registry.py +0 -0
  198. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/traits/traits.json +0 -0
  199. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/updater/__init__.py +0 -0
  200. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/updater/__main__.py +0 -0
  201. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/utils/__init__.py +0 -0
  202. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/utils/async_utils.py +0 -0
  203. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/utils/dict_utils.py +0 -0
  204. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/utils/huggingface_utils.py +0 -0
  205. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/utils/image_preview.py +0 -0
  206. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/utils/metaclasses.py +0 -0
  207. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/utils/uv_utils.py +0 -0
  208. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/utils/version_utils.py +0 -0
  209. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/version_compatibility/__init__.py +0 -0
  210. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/version_compatibility/versions/__init__.py +0 -0
  211. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/version_compatibility/versions/v0_39_0/__init__.py +0 -0
  212. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/version_compatibility/versions/v0_39_0/modified_parameters_set_removal.py +0 -0
  213. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/version_compatibility/workflow_versions/__init__.py +0 -0
  214. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/src/griptape_nodes/version_compatibility/workflow_versions/v0_7_0/__init__.py +0 -0
  215. {griptape_nodes-0.62.0 → griptape_nodes-0.62.1}/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.0
3
+ Version: 0.62.1
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.0"
3
+ version = "0.62.1"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12.0, <3.13"
@@ -46,7 +46,7 @@ class GriptapeCloudStorageDriver(BaseStorageDriver):
46
46
  response = httpx.post(url, json={"operation": "PUT"}, headers=self.headers)
47
47
  response.raise_for_status()
48
48
  except httpx.HTTPStatusError as e:
49
- msg = f"Failed to create presigned URL for file {path}: {e}"
49
+ msg = f"Failed to create presigned upload URL for file {path}: {e}"
50
50
  logger.error(msg)
51
51
  raise RuntimeError(msg) from e
52
52
 
@@ -60,7 +60,7 @@ class GriptapeCloudStorageDriver(BaseStorageDriver):
60
60
  response = httpx.post(url, json={"method": "GET"}, headers=self.headers)
61
61
  response.raise_for_status()
62
62
  except httpx.HTTPStatusError as e:
63
- msg = f"Failed to create presigned URL for file {path}: {e}"
63
+ msg = f"Failed to create presigned download URL for file {path}: {e}"
64
64
  logger.error(msg)
65
65
  raise RuntimeError(msg) from e
66
66
 
@@ -43,14 +43,14 @@ class LocalStorageDriver(BaseStorageDriver):
43
43
  response = httpx.post(static_url, json={"file_path": str(path)})
44
44
  response.raise_for_status()
45
45
  except httpx.HTTPStatusError as e:
46
- msg = f"Failed to create presigned URL for file {path}: {e}"
46
+ msg = f"Failed to create upload URL for file {path}: {e}"
47
47
  logger.error(msg)
48
48
  raise RuntimeError(msg) from e
49
49
 
50
50
  response_data = response.json()
51
51
  url = response_data.get("url")
52
52
  if url is None:
53
- msg = f"Failed to create presigned URL for file {path}: {response_data}"
53
+ msg = f"Failed to get upload URL for file {path}: {response_data}"
54
54
  logger.error(msg)
55
55
  raise ValueError(msg)
56
56
 
@@ -98,6 +98,19 @@ class EventManager:
98
98
  self._event_loop = None
99
99
  self._loop_thread_id = None
100
100
 
101
+ def _is_cross_thread_call(self) -> bool:
102
+ """Check if the current call is from a different thread than the event loop.
103
+
104
+ Returns:
105
+ True if we're on a different thread and need thread-safe operations
106
+ """
107
+ current_thread_id = threading.get_ident()
108
+ return (
109
+ self._loop_thread_id is not None
110
+ and current_thread_id != self._loop_thread_id
111
+ and self._event_loop is not None
112
+ )
113
+
101
114
  def put_event(self, event: Any) -> None:
102
115
  """Put event into async queue from sync context (non-blocking).
103
116
 
@@ -109,15 +122,9 @@ class EventManager:
109
122
  if self._event_queue is None:
110
123
  return
111
124
 
112
- # Check if we need thread-safe operation
113
- current_thread_id = threading.get_ident()
114
-
115
- if (
116
- self._loop_thread_id is not None
117
- and current_thread_id != self._loop_thread_id
118
- and self._event_loop is not None
119
- ):
125
+ if self._is_cross_thread_call() and self._event_loop is not None:
120
126
  # We're in a different thread from the event loop, use thread-safe method
127
+ # _is_cross_thread_call() guarantees _event_loop is not None
121
128
  self._event_loop.call_soon_threadsafe(self._event_queue.put_nowait, event)
122
129
  else:
123
130
  # We're on the same thread as the event loop or no loop thread tracked, use direct method
@@ -126,13 +133,21 @@ class EventManager:
126
133
  async def aput_event(self, event: Any) -> None:
127
134
  """Put event into async queue from async context.
128
135
 
136
+ Automatically detects if we're in a different thread and uses thread-safe operations.
137
+
129
138
  Args:
130
139
  event: The event to publish to the queue
131
140
  """
132
141
  if self._event_queue is None:
133
142
  return
134
143
 
135
- await self._event_queue.put(event)
144
+ if self._is_cross_thread_call() and self._event_loop is not None:
145
+ # We're in a different thread from the event loop, use thread-safe method
146
+ # _is_cross_thread_call() guarantees _event_loop is not None
147
+ self._event_loop.call_soon_threadsafe(self._event_queue.put_nowait, event)
148
+ else:
149
+ # We're on the same thread as the event loop or no loop thread tracked, use async method
150
+ await self._event_queue.put(event)
136
151
 
137
152
  def assign_manager_to_request_type(
138
153
  self,
@@ -1639,6 +1639,13 @@ class LibraryManager:
1639
1639
  user_libraries_section = "app_events.on_app_initialization_complete.libraries_to_register"
1640
1640
  libraries_to_register: list[str] = config_mgr.get_config_value(user_libraries_section)
1641
1641
 
1642
+ # Filter out empty or whitespace-only entries
1643
+ original_count = len(libraries_to_register) if libraries_to_register else 0
1644
+ libraries_to_register = [path for path in (libraries_to_register or []) if path and path.strip()]
1645
+ filtered_count = original_count - len(libraries_to_register)
1646
+ if filtered_count > 0:
1647
+ logger.warning("Filtered out %d empty library path entries from configuration", filtered_count)
1648
+
1642
1649
  if not libraries_to_register:
1643
1650
  logger.info("No libraries to register from config")
1644
1651
  return
@@ -1986,24 +1993,6 @@ class LibraryManager:
1986
1993
  ret_val.append(file_path)
1987
1994
  return ret_val
1988
1995
 
1989
- def _load_libraries_from_config_category(self, config_category: str, *, load_as_default_library: bool) -> None:
1990
- config_mgr = GriptapeNodes.ConfigManager()
1991
- libraries_to_register_category: list[str] = config_mgr.get_config_value(config_category)
1992
-
1993
- if libraries_to_register_category is not None:
1994
- for library_to_register in libraries_to_register_category:
1995
- if library_to_register:
1996
- if library_to_register.endswith(".json"):
1997
- library_load_request = RegisterLibraryFromFileRequest(
1998
- file_path=library_to_register,
1999
- load_as_default_library=load_as_default_library,
2000
- )
2001
- else:
2002
- library_load_request = RegisterLibraryFromRequirementSpecifierRequest(
2003
- requirement_specifier=library_to_register
2004
- )
2005
- GriptapeNodes.handle_request(library_load_request)
2006
-
2007
1996
  def _remove_missing_libraries_from_config(self, config_category: str) -> None:
2008
1997
  # Now remove all libraries that were missing from the user's config.
2009
1998
  config_mgr = GriptapeNodes.ConfigManager()
@@ -2076,8 +2065,10 @@ class LibraryManager:
2076
2065
  # Add from config
2077
2066
  config_libraries = config_mgr.get_config_value(user_libraries_section, default=[])
2078
2067
  for library_path_str in config_libraries:
2079
- library_path = Path(library_path_str)
2080
- if library_path.exists():
2081
- process_path(library_path)
2068
+ # Filter out falsy values that will resolve to current directory
2069
+ if library_path_str:
2070
+ library_path = Path(library_path_str)
2071
+ if library_path.exists():
2072
+ process_path(library_path)
2082
2073
 
2083
2074
  return list(discovered_libraries)
@@ -104,14 +104,12 @@ class StaticFilesManager:
104
104
  content_bytes = base64.b64decode(request.content)
105
105
  except (binascii.Error, ValueError) as e:
106
106
  msg = f"Failed to decode base64 content for file {file_name}: {e}"
107
- logger.error(msg)
108
107
  return CreateStaticFileResultFailure(error=msg, result_details=msg)
109
108
 
110
109
  try:
111
110
  url = self.save_static_file(content_bytes, file_name)
112
111
  except Exception as e:
113
112
  msg = f"Failed to create static file for file {file_name}: {e}"
114
- logger.error(msg)
115
113
  return CreateStaticFileResultFailure(error=msg, result_details=msg)
116
114
 
117
115
  return CreateStaticFileResultSuccess(url=url, result_details=f"Successfully created static file: {url}")
@@ -137,7 +135,6 @@ class StaticFilesManager:
137
135
  response = self.storage_driver.create_signed_upload_url(full_file_path)
138
136
  except Exception as e:
139
137
  msg = f"Failed to create presigned URL for file {file_name}: {e}"
140
- logger.error(msg)
141
138
  return CreateStaticFileUploadUrlResultFailure(error=msg, result_details=msg)
142
139
 
143
140
  return CreateStaticFileUploadUrlResultSuccess(
@@ -168,7 +165,6 @@ class StaticFilesManager:
168
165
  url = self.storage_driver.create_signed_download_url(full_file_path)
169
166
  except Exception as e:
170
167
  msg = f"Failed to create presigned URL for file {file_name}: {e}"
171
- logger.error(msg)
172
168
  return CreateStaticFileDownloadUrlResultFailure(error=msg, result_details=msg)
173
169
 
174
170
  return CreateStaticFileDownloadUrlResultSuccess(
@@ -177,7 +173,7 @@ class StaticFilesManager:
177
173
 
178
174
  def on_app_initialization_complete(self, _payload: AppInitializationComplete) -> None:
179
175
  # Start static server in daemon thread if enabled
180
- if self.storage_backend == StorageBackend.LOCAL:
176
+ if isinstance(self.storage_driver, LocalStorageDriver):
181
177
  threading.Thread(target=start_static_server, daemon=True, name="static-server").start()
182
178
 
183
179
  def save_static_file(self, data: bytes, file_name: str) -> str: