griptape-nodes 0.61.0__tar.gz → 0.62.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 (218) hide show
  1. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/PKG-INFO +1 -1
  2. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/pyproject.toml +1 -1
  3. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/common/macro_parser/core.py +4 -4
  4. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/common/macro_parser/exceptions.py +3 -3
  5. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/common/macro_parser/resolution.py +2 -2
  6. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/common/project_templates/default_project_template.py +5 -10
  7. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/common/project_templates/directory.py +5 -5
  8. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/common/project_templates/loader.py +8 -7
  9. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/common/project_templates/project.py +1 -1
  10. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/common/project_templates/situation.py +5 -17
  11. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/common/project_templates/validation.py +3 -3
  12. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/drivers/storage/griptape_cloud_storage_driver.py +2 -2
  13. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/drivers/storage/local_storage_driver.py +2 -2
  14. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/node_library/workflow_registry.py +1 -1
  15. griptape_nodes-0.62.2/src/griptape_nodes/retained_mode/events/project_events.py +528 -0
  16. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/event_manager.py +24 -9
  17. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/library_manager.py +18 -24
  18. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/os_manager.py +54 -6
  19. griptape_nodes-0.62.2/src/griptape_nodes/retained_mode/managers/project_manager.py +1067 -0
  20. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/static_files_manager.py +1 -5
  21. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/sync_manager.py +4 -1
  22. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/workflow_manager.py +2 -10
  23. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/traits/button.py +2 -1
  24. griptape_nodes-0.61.0/src/griptape_nodes/common/project_templates/defaults/project_template.yml +0 -89
  25. griptape_nodes-0.61.0/src/griptape_nodes/retained_mode/events/project_events.py +0 -413
  26. griptape_nodes-0.61.0/src/griptape_nodes/retained_mode/managers/project_manager.py +0 -617
  27. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/README.md +0 -0
  28. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/__init__.py +0 -0
  29. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/__main__.py +0 -0
  30. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/api_client/__init__.py +0 -0
  31. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/api_client/client.py +0 -0
  32. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/api_client/request_client.py +0 -0
  33. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/app/.python-version +0 -0
  34. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/app/__init__.py +0 -0
  35. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/app/app.py +0 -0
  36. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/app/watch.py +0 -0
  37. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/bootstrap/__init__.py +0 -0
  38. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/bootstrap/utils/__init__.py +0 -0
  39. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/bootstrap/utils/python_subprocess_executor.py +0 -0
  40. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/bootstrap/workflow_executors/__init__.py +0 -0
  41. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/bootstrap/workflow_executors/local_session_workflow_executor.py +0 -0
  42. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/bootstrap/workflow_executors/local_workflow_executor.py +0 -0
  43. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/bootstrap/workflow_executors/subprocess_workflow_executor.py +0 -0
  44. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/bootstrap/workflow_executors/utils/__init__.py +0 -0
  45. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/bootstrap/workflow_executors/utils/subprocess_script.py +0 -0
  46. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/bootstrap/workflow_executors/workflow_executor.py +0 -0
  47. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/bootstrap/workflow_publishers/__init__.py +0 -0
  48. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/bootstrap/workflow_publishers/local_workflow_publisher.py +0 -0
  49. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/bootstrap/workflow_publishers/subprocess_workflow_publisher.py +0 -0
  50. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/bootstrap/workflow_publishers/utils/__init__.py +0 -0
  51. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/bootstrap/workflow_publishers/utils/subprocess_script.py +0 -0
  52. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/cli/__init__.py +0 -0
  53. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/cli/commands/__init__.py +0 -0
  54. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/cli/commands/config.py +0 -0
  55. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/cli/commands/engine.py +0 -0
  56. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/cli/commands/init.py +0 -0
  57. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/cli/commands/libraries.py +0 -0
  58. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/cli/commands/models.py +0 -0
  59. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/cli/commands/self.py +0 -0
  60. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/cli/main.py +0 -0
  61. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/cli/shared.py +0 -0
  62. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/common/__init__.py +0 -0
  63. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/common/directed_graph.py +0 -0
  64. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/common/macro_parser/__init__.py +0 -0
  65. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/common/macro_parser/formats.py +0 -0
  66. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/common/macro_parser/matching.py +0 -0
  67. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/common/macro_parser/parsing.py +0 -0
  68. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/common/macro_parser/segments.py +0 -0
  69. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/common/node_executor.py +0 -0
  70. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/common/project_templates/__init__.py +0 -0
  71. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/common/project_templates/defaults/README.md +0 -0
  72. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/drivers/__init__.py +0 -0
  73. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/drivers/storage/__init__.py +0 -0
  74. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/drivers/storage/base_storage_driver.py +0 -0
  75. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/drivers/storage/storage_backend.py +0 -0
  76. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/exe_types/__init__.py +0 -0
  77. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/exe_types/connections.py +0 -0
  78. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/exe_types/core_types.py +0 -0
  79. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/exe_types/flow.py +0 -0
  80. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/exe_types/node_types.py +0 -0
  81. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/exe_types/param_components/__init__.py +0 -0
  82. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/exe_types/param_components/execution_status_component.py +0 -0
  83. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/exe_types/param_components/huggingface/__init__.py +0 -0
  84. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_model_parameter.py +0 -0
  85. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_repo_file_parameter.py +0 -0
  86. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_repo_parameter.py +0 -0
  87. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_utils.py +0 -0
  88. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/exe_types/param_components/log_parameter.py +0 -0
  89. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/exe_types/param_components/progress_bar_component.py +0 -0
  90. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/exe_types/param_components/seed_parameter.py +0 -0
  91. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/exe_types/param_types/__init__.py +0 -0
  92. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/exe_types/param_types/parameter_audio.py +0 -0
  93. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/exe_types/param_types/parameter_bool.py +0 -0
  94. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/exe_types/param_types/parameter_float.py +0 -0
  95. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/exe_types/param_types/parameter_image.py +0 -0
  96. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/exe_types/param_types/parameter_int.py +0 -0
  97. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/exe_types/param_types/parameter_number.py +0 -0
  98. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/exe_types/param_types/parameter_string.py +0 -0
  99. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/exe_types/param_types/parameter_three_d.py +0 -0
  100. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/exe_types/param_types/parameter_video.py +0 -0
  101. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/exe_types/type_validator.py +0 -0
  102. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/machines/__init__.py +0 -0
  103. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/machines/control_flow.py +0 -0
  104. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/machines/dag_builder.py +0 -0
  105. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/machines/fsm.py +0 -0
  106. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/machines/parallel_resolution.py +0 -0
  107. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/machines/sequential_resolution.py +0 -0
  108. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/mcp_server/__init__.py +0 -0
  109. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/node_library/__init__.py +0 -0
  110. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/node_library/advanced_node_library.py +0 -0
  111. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/node_library/library_registry.py +0 -0
  112. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/py.typed +0 -0
  113. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/__init__.py +0 -0
  114. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/__init__.py +0 -0
  115. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/agent_events.py +0 -0
  116. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/app_events.py +0 -0
  117. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/arbitrary_python_events.py +0 -0
  118. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/base_events.py +0 -0
  119. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/config_events.py +0 -0
  120. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/connection_events.py +0 -0
  121. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/context_events.py +0 -0
  122. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/execution_events.py +0 -0
  123. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/flow_events.py +0 -0
  124. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/generate_request_payload_schemas.py +0 -0
  125. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/library_events.py +0 -0
  126. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/logger_events.py +0 -0
  127. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/mcp_events.py +0 -0
  128. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/model_events.py +0 -0
  129. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/node_events.py +0 -0
  130. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/object_events.py +0 -0
  131. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/os_events.py +0 -0
  132. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/parameter_events.py +0 -0
  133. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/payload_registry.py +0 -0
  134. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/resource_events.py +0 -0
  135. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/secrets_events.py +0 -0
  136. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/static_file_events.py +0 -0
  137. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/sync_events.py +0 -0
  138. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/validation_events.py +0 -0
  139. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/variable_events.py +0 -0
  140. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/events/workflow_events.py +0 -0
  141. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/griptape_nodes.py +0 -0
  142. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/__init__.py +0 -0
  143. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/agent_manager.py +0 -0
  144. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/arbitrary_code_exec_manager.py +0 -0
  145. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/config_manager.py +0 -0
  146. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/context_manager.py +0 -0
  147. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/engine_identity_manager.py +0 -0
  148. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/flow_manager.py +0 -0
  149. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/__init__.py +0 -0
  150. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/data_models.py +0 -0
  151. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_directory.py +0 -0
  152. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_fsm.py +0 -0
  153. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/__init__.py +0 -0
  154. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/base.py +0 -0
  155. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/github.py +0 -0
  156. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/local_file.py +0 -0
  157. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/package.py +0 -0
  158. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/sandbox.py +0 -0
  159. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance.py +0 -0
  160. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_status.py +0 -0
  161. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/mcp_manager.py +0 -0
  162. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/model_manager.py +0 -0
  163. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/node_manager.py +0 -0
  164. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/object_manager.py +0 -0
  165. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/operation_manager.py +0 -0
  166. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/resource_components/__init__.py +0 -0
  167. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/resource_components/capability_field.py +0 -0
  168. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/resource_components/comparator.py +0 -0
  169. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/resource_components/resource_instance.py +0 -0
  170. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/resource_components/resource_type.py +0 -0
  171. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/resource_manager.py +0 -0
  172. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/resource_types/__init__.py +0 -0
  173. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/resource_types/cpu_resource.py +0 -0
  174. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/resource_types/os_resource.py +0 -0
  175. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/secrets_manager.py +0 -0
  176. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/session_manager.py +0 -0
  177. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/settings.py +0 -0
  178. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/user_manager.py +0 -0
  179. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/variable_manager.py +0 -0
  180. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/managers/version_compatibility_manager.py +0 -0
  181. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/retained_mode.py +0 -0
  182. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/utils/__init__.py +0 -0
  183. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/utils/name_generator.py +0 -0
  184. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/retained_mode/variable_types.py +0 -0
  185. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/servers/__init__.py +0 -0
  186. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/servers/mcp.py +0 -0
  187. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/servers/static.py +0 -0
  188. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/traits/__init__.py +0 -0
  189. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/traits/add_param_button.py +0 -0
  190. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/traits/clamp.py +0 -0
  191. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/traits/color_picker.py +0 -0
  192. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/traits/compare.py +0 -0
  193. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/traits/compare_images.py +0 -0
  194. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/traits/file_system_picker.py +0 -0
  195. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/traits/minmax.py +0 -0
  196. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/traits/multi_options.py +0 -0
  197. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/traits/numbers_selector.py +0 -0
  198. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/traits/options.py +0 -0
  199. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/traits/slider.py +0 -0
  200. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/traits/trait_registry.py +0 -0
  201. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/traits/traits.json +0 -0
  202. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/updater/__init__.py +0 -0
  203. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/updater/__main__.py +0 -0
  204. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/utils/__init__.py +0 -0
  205. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/utils/async_utils.py +0 -0
  206. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/utils/dict_utils.py +0 -0
  207. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/utils/huggingface_utils.py +0 -0
  208. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/utils/image_preview.py +0 -0
  209. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/utils/metaclasses.py +0 -0
  210. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/utils/uv_utils.py +0 -0
  211. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/utils/version_utils.py +0 -0
  212. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/version_compatibility/__init__.py +0 -0
  213. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/version_compatibility/versions/__init__.py +0 -0
  214. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/version_compatibility/versions/v0_39_0/__init__.py +0 -0
  215. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/version_compatibility/versions/v0_39_0/modified_parameters_set_removal.py +0 -0
  216. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/version_compatibility/workflow_versions/__init__.py +0 -0
  217. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/src/griptape_nodes/version_compatibility/workflow_versions/v0_7_0/__init__.py +0 -0
  218. {griptape_nodes-0.61.0 → griptape_nodes-0.62.2}/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.61.0
3
+ Version: 0.62.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.61.0"
3
+ version = "0.62.2"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12.0, <3.13"
@@ -42,9 +42,9 @@ class ParsedMacro:
42
42
  segments.append(ParsedStaticValue(text=""))
43
43
  self.segments = segments
44
44
 
45
- def get_variables(self) -> list[VariableInfo]:
45
+ def get_variables(self) -> set[VariableInfo]:
46
46
  """Extract all VariableInfo from parsed segments."""
47
- return [seg.info for seg in self.segments if isinstance(seg, ParsedVariable)]
47
+ return {seg.info for seg in self.segments if isinstance(seg, ParsedVariable)}
48
48
 
49
49
  def resolve(
50
50
  self,
@@ -58,8 +58,8 @@ class ParsedMacro:
58
58
  # Check if fully resolved
59
59
  if not partial.is_fully_resolved():
60
60
  unresolved = partial.get_unresolved_variables()
61
- unresolved_names = [var.info.name for var in unresolved]
62
- msg = f"Cannot fully resolve macro - missing required variables: {', '.join(unresolved_names)}"
61
+ unresolved_names = {var.info.name for var in unresolved}
62
+ msg = f"Cannot fully resolve macro - missing required variables: {', '.join(sorted(unresolved_names))}"
63
63
  raise MacroResolutionError(
64
64
  msg,
65
65
  failure_reason=MacroResolutionFailureReason.MISSING_REQUIRED_VARIABLES,
@@ -47,7 +47,7 @@ class MacroResolutionError(Exception):
47
47
  message: str,
48
48
  failure_reason: MacroResolutionFailureReason | None = None,
49
49
  variable_name: str | None = None,
50
- missing_variables: list[str] | None = None,
50
+ missing_variables: set[str] | None = None,
51
51
  ) -> None:
52
52
  """Initialize MacroResolutionError with optional structured fields.
53
53
 
@@ -55,7 +55,7 @@ class MacroResolutionError(Exception):
55
55
  message: Human-readable error message
56
56
  failure_reason: Specific reason for the resolution error
57
57
  variable_name: Name of the problematic variable (if applicable)
58
- missing_variables: List of missing variable names (for MISSING_REQUIRED_VARIABLES)
58
+ missing_variables: Set of missing variable names (for MISSING_REQUIRED_VARIABLES)
59
59
  """
60
60
  super().__init__(message)
61
61
  self.failure_reason = failure_reason
@@ -118,5 +118,5 @@ class MacroResolutionFailure:
118
118
 
119
119
  failure_reason: MacroResolutionFailureReason
120
120
  variable_name: str | None
121
- missing_variables: list[str] | None
121
+ missing_variables: set[str] | None
122
122
  error_details: str
@@ -32,7 +32,7 @@ class PartiallyResolvedMacro:
32
32
  """Convert to string (only valid if fully resolved)."""
33
33
  if not self.is_fully_resolved():
34
34
  unresolved = self.get_unresolved_variables()
35
- unresolved_names = [var.info.name for var in unresolved]
35
+ unresolved_names = {var.info.name for var in unresolved}
36
36
  msg = "Cannot convert partially resolved macro to string - unresolved variables remain"
37
37
  raise MacroResolutionError(
38
38
  msg,
@@ -135,7 +135,7 @@ def resolve_variable(
135
135
  msg,
136
136
  failure_reason=MacroResolutionFailureReason.MISSING_REQUIRED_VARIABLES,
137
137
  variable_name=variable_name,
138
- missing_variables=[variable_name],
138
+ missing_variables={variable_name},
139
139
  )
140
140
  # Optional variable not provided, return None to signal it should be skipped
141
141
  return None
@@ -16,26 +16,25 @@ DEFAULT_PROJECT_TEMPLATE = ProjectTemplate(
16
16
  directories={
17
17
  "inputs": DirectoryDefinition(
18
18
  name="inputs",
19
- path_schema="inputs",
19
+ path_macro="inputs",
20
20
  ),
21
21
  "outputs": DirectoryDefinition(
22
22
  name="outputs",
23
- path_schema="outputs",
23
+ path_macro="outputs",
24
24
  ),
25
25
  "temp": DirectoryDefinition(
26
26
  name="temp",
27
- path_schema="temp",
27
+ path_macro="temp",
28
28
  ),
29
29
  "previews": DirectoryDefinition(
30
30
  name="previews",
31
- path_schema="previews",
31
+ path_macro="previews",
32
32
  ),
33
33
  },
34
34
  environment={},
35
35
  situations={
36
36
  "save_file": SituationTemplate(
37
37
  name="save_file",
38
- situation_template_schema_version="0.1.0",
39
38
  description="Generic file save operation",
40
39
  macro="{file_name_base}{_index?:03}.{file_extension}",
41
40
  policy=SituationPolicy(
@@ -46,7 +45,6 @@ DEFAULT_PROJECT_TEMPLATE = ProjectTemplate(
46
45
  ),
47
46
  "copy_external_file": SituationTemplate(
48
47
  name="copy_external_file",
49
- situation_template_schema_version="0.1.0",
50
48
  description="User copies external file to project",
51
49
  macro="{inputs}/{node_name?:_}{parameter_name?:_}{file_name_base}{_index?:03}.{file_extension}",
52
50
  policy=SituationPolicy(
@@ -57,7 +55,6 @@ DEFAULT_PROJECT_TEMPLATE = ProjectTemplate(
57
55
  ),
58
56
  "download_url": SituationTemplate(
59
57
  name="download_url",
60
- situation_template_schema_version="0.1.0",
61
58
  description="Download file from URL",
62
59
  macro="{inputs}/{sanitized_url}",
63
60
  policy=SituationPolicy(
@@ -68,9 +65,8 @@ DEFAULT_PROJECT_TEMPLATE = ProjectTemplate(
68
65
  ),
69
66
  "save_node_output": SituationTemplate(
70
67
  name="save_node_output",
71
- situation_template_schema_version="0.1.0",
72
68
  description="Node generates and saves output",
73
- macro="{outputs}/{node_name?:_}{file_name_base}{_index?:03}.{file_extension}",
69
+ macro="{outputs}/{sub_dirs?:/}{node_name?:_}{file_name_base}{_index?:03}.{file_extension}",
74
70
  policy=SituationPolicy(
75
71
  on_collision=SituationFilePolicy.CREATE_NEW,
76
72
  create_dirs=True,
@@ -79,7 +75,6 @@ DEFAULT_PROJECT_TEMPLATE = ProjectTemplate(
79
75
  ),
80
76
  "save_preview": SituationTemplate(
81
77
  name="save_preview",
82
- situation_template_schema_version="0.1.0",
83
78
  description="Generate preview/thumbnail",
84
79
  macro="{previews}/{original_file_path}",
85
80
  policy=SituationPolicy(
@@ -15,7 +15,7 @@ class DirectoryDefinition(BaseModel):
15
15
  """Definition of a logical directory in the project."""
16
16
 
17
17
  name: str = Field(description="Logical name (e.g., 'inputs', 'outputs')")
18
- path_schema: str = Field(description="Path string (may contain macros/env vars)")
18
+ path_macro: str = Field(description="Path string (may contain macros/env vars)")
19
19
 
20
20
  @staticmethod
21
21
  def merge(
@@ -28,7 +28,7 @@ class DirectoryDefinition(BaseModel):
28
28
  """Merge overlay fields onto base directory.
29
29
 
30
30
  Field-level merge behavior:
31
- - path_schema: Use overlay if present, else base
31
+ - path_macro: Use overlay if present, else base
32
32
 
33
33
  Args:
34
34
  base: Complete base directory
@@ -41,11 +41,11 @@ class DirectoryDefinition(BaseModel):
41
41
  New merged DirectoryDefinition
42
42
  """
43
43
  # Start with base fields
44
- merged_data = {"name": base.name, "path_schema": base.path_schema}
44
+ merged_data = {"name": base.name, "path_macro": base.path_macro}
45
45
 
46
46
  # Apply overlay if present
47
- if "path_schema" in overlay_data:
48
- merged_data["path_schema"] = overlay_data["path_schema"]
47
+ if "path_macro" in overlay_data:
48
+ merged_data["path_macro"] = overlay_data["path_macro"]
49
49
 
50
50
  try:
51
51
  return DirectoryDefinition.model_validate(merged_data)
@@ -152,11 +152,8 @@ def load_project_template_from_yaml( # noqa: C901
152
152
  Returns:
153
153
  ProjectTemplate on success, None if fatal errors prevent construction
154
154
  """
155
- # Import here to avoid circular dependency:
156
- # - loader.py defines YAMLLineInfo
157
- # - project.py imports YAMLLineInfo for type hints
158
- # - loader.py needs ProjectTemplate at runtime
159
- # TYPE_CHECKING import at top is for type hints only, this is for runtime
155
+ # Lazy import required: circular dependency between this module and project.py
156
+ # project.py imports ProjectOverlayData from this file, and we need ProjectTemplate from project.py
160
157
  from griptape_nodes.common.project_templates.project import ProjectTemplate
161
158
 
162
159
  # Pass 1: Load YAML with line tracking
@@ -208,9 +205,13 @@ def load_project_template_from_yaml( # noqa: C901
208
205
  else:
209
206
  # Add warnings for schema version mismatches
210
207
  if template.project_template_schema_version != ProjectTemplate.LATEST_SCHEMA_VERSION:
208
+ message = (
209
+ f"Schema version '{template.project_template_schema_version}' "
210
+ f"differs from latest '{ProjectTemplate.LATEST_SCHEMA_VERSION}'"
211
+ )
211
212
  validation_info.add_warning(
212
213
  field_path=FIELD_PROJECT_TEMPLATE_SCHEMA_VERSION,
213
- message=f"Schema version '{template.project_template_schema_version}' differs from latest '{ProjectTemplate.LATEST_SCHEMA_VERSION}'",
214
+ message=message,
214
215
  line_number=line_info.get_line(FIELD_PROJECT_TEMPLATE_SCHEMA_VERSION),
215
216
  )
216
217
 
@@ -230,7 +231,7 @@ def load_partial_project_template(
230
231
 
231
232
  Does NOT:
232
233
  - Construct full SituationTemplate/DirectoryDefinition objects
233
- - Validate situation schemas or policy values
234
+ - Validate situation macros or policy values
234
235
  - Check directory references
235
236
 
236
237
  Use this for loading user overlay templates before merge.
@@ -29,7 +29,7 @@ class ProjectTemplate(BaseModel):
29
29
  name: str = Field(description="Name of the project")
30
30
  situations: dict[str, SituationTemplate] = Field(description="Situation templates (situation_name -> template)")
31
31
  directories: dict[str, DirectoryDefinition] = Field(
32
- description="Directory definitions (logical_name -> definition)"
32
+ description="Directory definitions (logical_name -> definition)",
33
33
  )
34
34
  environment: dict[str, str] = Field(default_factory=dict, description="Custom environment variables")
35
35
  description: str | None = Field(default=None, description="Description of the project")
@@ -21,7 +21,7 @@ class SituationFilePolicy(StrEnum):
21
21
  triggers user interaction before determining final policy.
22
22
  """
23
23
 
24
- CREATE_NEW = "create_new" # Increment {_index} in schema
24
+ CREATE_NEW = "create_new" # Increment {_index} in macro
25
25
  OVERWRITE = "overwrite" # Maps to ExistingFilePolicy.OVERWRITE
26
26
  FAIL = "fail" # Maps to ExistingFilePolicy.FAIL
27
27
  PROMPT = "prompt" # Special UI handling
@@ -42,10 +42,7 @@ class SituationTemplate(BaseModel):
42
42
  model_config = ConfigDict(populate_by_name=True)
43
43
 
44
44
  name: str = Field(description="Name of the situation")
45
- situation_template_schema_version: str = Field(description="Schema version for this situation template")
46
- macro: str = Field(
47
- description="Macro template for file path", serialization_alias="schema", validation_alias="schema"
48
- )
45
+ macro: str = Field(description="Macro template for file path")
49
46
  policy: SituationPolicy = Field(description="Policy for file operations")
50
47
  fallback: str | None = Field(default=None, description="Name of fallback situation")
51
48
  description: str | None = Field(default=None, description="Description of the situation")
@@ -61,11 +58,6 @@ class SituationTemplate(BaseModel):
61
58
  raise ValueError(msg) from e
62
59
  return v
63
60
 
64
- @property
65
- def schema(self) -> str:
66
- """Alias for macro to maintain YAML compatibility (schema field in YAML)."""
67
- return self.macro
68
-
69
61
  @staticmethod
70
62
  def merge(
71
63
  base: SituationTemplate,
@@ -77,11 +69,10 @@ class SituationTemplate(BaseModel):
77
69
  """Merge overlay fields onto base situation.
78
70
 
79
71
  Field-level merge behavior:
80
- - schema: Use overlay if present, else base
72
+ - macro: Use overlay if present, else base
81
73
  - description: Use overlay if present, else base
82
74
  - fallback: Use overlay if present, else base
83
75
  - policy: Use overlay if present (must be complete), else base
84
- - situation_template_schema_version: Use overlay if present, else base
85
76
 
86
77
  Policy validation:
87
78
  - If policy provided in overlay, must contain both on_collision and create_dirs
@@ -101,8 +92,8 @@ class SituationTemplate(BaseModel):
101
92
  merged_data = base.model_dump()
102
93
 
103
94
  # Apply overlay fields if present
104
- if "schema" in overlay_data:
105
- merged_data["schema"] = overlay_data["schema"]
95
+ if "macro" in overlay_data:
96
+ merged_data["macro"] = overlay_data["macro"]
106
97
 
107
98
  if "description" in overlay_data:
108
99
  merged_data["description"] = overlay_data["description"]
@@ -110,9 +101,6 @@ class SituationTemplate(BaseModel):
110
101
  if "fallback" in overlay_data:
111
102
  merged_data["fallback"] = overlay_data["fallback"]
112
103
 
113
- if "situation_template_schema_version" in overlay_data:
114
- merged_data["situation_template_schema_version"] = overlay_data["situation_template_schema_version"]
115
-
116
104
  # Policy must be complete if provided
117
105
  if "policy" in overlay_data:
118
106
  policy = overlay_data["policy"]
@@ -46,7 +46,7 @@ class ProjectValidationProblem:
46
46
  """Single validation problem with context."""
47
47
 
48
48
  line_number: int | None
49
- field_path: str # e.g., "situations.copy_external_file.schema"
49
+ field_path: str # e.g., "situations.copy_external_file.macro"
50
50
  message: str
51
51
  severity: ProjectValidationProblemSeverity
52
52
 
@@ -92,7 +92,7 @@ class ProjectValidationInfo:
92
92
  field_path=field_path,
93
93
  message=message,
94
94
  severity=ProjectValidationProblemSeverity.ERROR,
95
- )
95
+ ),
96
96
  )
97
97
  self.status = ProjectValidationStatus.UNUSABLE
98
98
 
@@ -112,7 +112,7 @@ class ProjectValidationInfo:
112
112
  field_path=field_path,
113
113
  message=message,
114
114
  severity=ProjectValidationProblemSeverity.WARNING,
115
- )
115
+ ),
116
116
  )
117
117
 
118
118
  if self.status == ProjectValidationStatus.GOOD:
@@ -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
 
@@ -45,7 +45,7 @@ class WorkflowShape(BaseModel):
45
45
 
46
46
 
47
47
  class WorkflowMetadata(BaseModel):
48
- LATEST_SCHEMA_VERSION: ClassVar[str] = "0.11.0"
48
+ LATEST_SCHEMA_VERSION: ClassVar[str] = "0.12.0"
49
49
 
50
50
  name: str
51
51
  schema_version: str