griptape-nodes 0.58.1__tar.gz → 0.59.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 (177) hide show
  1. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/PKG-INFO +3 -2
  2. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/pyproject.toml +13 -7
  3. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/bootstrap/utils/python_subprocess_executor.py +2 -2
  4. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/bootstrap/workflow_executors/local_session_workflow_executor.py +0 -5
  5. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/bootstrap/workflow_executors/local_workflow_executor.py +9 -5
  6. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/bootstrap/workflow_executors/subprocess_workflow_executor.py +0 -1
  7. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/bootstrap/workflow_executors/workflow_executor.py +1 -3
  8. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/bootstrap/workflow_publishers/local_workflow_publisher.py +1 -1
  9. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/cli/commands/init.py +53 -7
  10. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/cli/shared.py +1 -0
  11. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/common/node_executor.py +218 -42
  12. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/exe_types/core_types.py +46 -0
  13. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/exe_types/node_types.py +272 -0
  14. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/machines/control_flow.py +222 -16
  15. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/machines/dag_builder.py +212 -1
  16. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/machines/parallel_resolution.py +237 -4
  17. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/node_library/workflow_registry.py +1 -1
  18. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/execution_events.py +5 -4
  19. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/flow_events.py +17 -67
  20. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/parameter_events.py +122 -1
  21. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/event_manager.py +17 -13
  22. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/flow_manager.py +316 -573
  23. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/library_manager.py +32 -20
  24. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/model_manager.py +19 -8
  25. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/node_manager.py +463 -3
  26. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/object_manager.py +2 -2
  27. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/workflow_manager.py +37 -46
  28. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/retained_mode.py +297 -3
  29. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/README.md +0 -0
  30. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/__init__.py +0 -0
  31. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/__main__.py +0 -0
  32. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/api_client/__init__.py +0 -0
  33. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/api_client/client.py +0 -0
  34. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/api_client/request_client.py +0 -0
  35. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/app/.python-version +0 -0
  36. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/app/__init__.py +0 -0
  37. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/app/app.py +0 -0
  38. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/app/watch.py +0 -0
  39. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/bootstrap/__init__.py +0 -0
  40. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/bootstrap/utils/__init__.py +0 -0
  41. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/bootstrap/workflow_executors/__init__.py +0 -0
  42. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/bootstrap/workflow_executors/utils/__init__.py +0 -0
  43. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/bootstrap/workflow_executors/utils/subprocess_script.py +0 -0
  44. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/bootstrap/workflow_publishers/__init__.py +0 -0
  45. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/bootstrap/workflow_publishers/subprocess_workflow_publisher.py +0 -0
  46. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/bootstrap/workflow_publishers/utils/__init__.py +0 -0
  47. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/bootstrap/workflow_publishers/utils/subprocess_script.py +0 -0
  48. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/cli/__init__.py +0 -0
  49. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/cli/commands/__init__.py +0 -0
  50. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/cli/commands/config.py +0 -0
  51. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/cli/commands/engine.py +0 -0
  52. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/cli/commands/libraries.py +0 -0
  53. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/cli/commands/models.py +0 -0
  54. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/cli/commands/self.py +0 -0
  55. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/cli/main.py +0 -0
  56. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/common/__init__.py +0 -0
  57. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/common/directed_graph.py +0 -0
  58. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/drivers/__init__.py +0 -0
  59. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/drivers/storage/__init__.py +0 -0
  60. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/drivers/storage/base_storage_driver.py +0 -0
  61. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/drivers/storage/griptape_cloud_storage_driver.py +0 -0
  62. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/drivers/storage/local_storage_driver.py +0 -0
  63. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/drivers/storage/storage_backend.py +0 -0
  64. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/exe_types/__init__.py +0 -0
  65. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/exe_types/connections.py +0 -0
  66. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/exe_types/flow.py +0 -0
  67. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/exe_types/param_components/__init__.py +0 -0
  68. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/exe_types/param_components/execution_status_component.py +0 -0
  69. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/exe_types/type_validator.py +0 -0
  70. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/machines/__init__.py +0 -0
  71. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/machines/fsm.py +0 -0
  72. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/machines/sequential_resolution.py +0 -0
  73. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/mcp_server/__init__.py +0 -0
  74. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/node_library/__init__.py +0 -0
  75. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/node_library/advanced_node_library.py +0 -0
  76. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/node_library/library_registry.py +0 -0
  77. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/py.typed +0 -0
  78. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/__init__.py +0 -0
  79. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/__init__.py +0 -0
  80. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/agent_events.py +0 -0
  81. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/app_events.py +0 -0
  82. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/arbitrary_python_events.py +0 -0
  83. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/base_events.py +0 -0
  84. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/config_events.py +0 -0
  85. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/connection_events.py +0 -0
  86. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/context_events.py +0 -0
  87. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/generate_request_payload_schemas.py +0 -0
  88. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/library_events.py +0 -0
  89. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/logger_events.py +0 -0
  90. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/mcp_events.py +0 -0
  91. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/model_events.py +0 -0
  92. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/node_events.py +0 -0
  93. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/object_events.py +0 -0
  94. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/os_events.py +0 -0
  95. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/payload_registry.py +0 -0
  96. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/resource_events.py +0 -0
  97. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/secrets_events.py +0 -0
  98. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/static_file_events.py +0 -0
  99. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/sync_events.py +0 -0
  100. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/validation_events.py +0 -0
  101. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/variable_events.py +0 -0
  102. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/events/workflow_events.py +0 -0
  103. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/griptape_nodes.py +0 -0
  104. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/__init__.py +0 -0
  105. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/agent_manager.py +0 -0
  106. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/arbitrary_code_exec_manager.py +0 -0
  107. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/config_manager.py +0 -0
  108. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/context_manager.py +0 -0
  109. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/engine_identity_manager.py +0 -0
  110. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/library_lifecycle/__init__.py +0 -0
  111. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/library_lifecycle/data_models.py +0 -0
  112. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_directory.py +0 -0
  113. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_fsm.py +0 -0
  114. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/__init__.py +0 -0
  115. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/base.py +0 -0
  116. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/github.py +0 -0
  117. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/local_file.py +0 -0
  118. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/package.py +0 -0
  119. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/sandbox.py +0 -0
  120. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance.py +0 -0
  121. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_status.py +0 -0
  122. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/mcp_manager.py +0 -0
  123. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/operation_manager.py +0 -0
  124. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/os_manager.py +0 -0
  125. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/resource_components/__init__.py +0 -0
  126. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/resource_components/capability_field.py +0 -0
  127. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/resource_components/comparator.py +0 -0
  128. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/resource_components/resource_instance.py +0 -0
  129. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/resource_components/resource_type.py +0 -0
  130. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/resource_manager.py +0 -0
  131. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/resource_types/__init__.py +0 -0
  132. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/resource_types/cpu_resource.py +0 -0
  133. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/resource_types/os_resource.py +0 -0
  134. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/secrets_manager.py +0 -0
  135. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/session_manager.py +0 -0
  136. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/settings.py +0 -0
  137. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/static_files_manager.py +0 -0
  138. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/sync_manager.py +0 -0
  139. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/variable_manager.py +0 -0
  140. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/managers/version_compatibility_manager.py +0 -0
  141. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/utils/__init__.py +0 -0
  142. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/utils/name_generator.py +0 -0
  143. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/retained_mode/variable_types.py +0 -0
  144. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/servers/__init__.py +0 -0
  145. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/servers/mcp.py +0 -0
  146. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/servers/static.py +0 -0
  147. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/traits/__init__.py +0 -0
  148. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/traits/add_param_button.py +0 -0
  149. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/traits/button.py +0 -0
  150. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/traits/clamp.py +0 -0
  151. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/traits/color_picker.py +0 -0
  152. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/traits/compare.py +0 -0
  153. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/traits/compare_images.py +0 -0
  154. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/traits/file_system_picker.py +0 -0
  155. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/traits/minmax.py +0 -0
  156. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/traits/multi_options.py +0 -0
  157. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/traits/numbers_selector.py +0 -0
  158. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/traits/options.py +0 -0
  159. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/traits/slider.py +0 -0
  160. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/traits/trait_registry.py +0 -0
  161. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/traits/traits.json +0 -0
  162. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/updater/__init__.py +0 -0
  163. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/updater/__main__.py +0 -0
  164. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/utils/__init__.py +0 -0
  165. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/utils/async_utils.py +0 -0
  166. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/utils/dict_utils.py +0 -0
  167. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/utils/image_preview.py +0 -0
  168. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/utils/metaclasses.py +0 -0
  169. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/utils/uv_utils.py +0 -0
  170. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/utils/version_utils.py +0 -0
  171. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/version_compatibility/__init__.py +0 -0
  172. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/version_compatibility/versions/__init__.py +0 -0
  173. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/version_compatibility/versions/v0_39_0/__init__.py +0 -0
  174. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/version_compatibility/versions/v0_39_0/modified_parameters_set_removal.py +0 -0
  175. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/version_compatibility/workflow_versions/__init__.py +0 -0
  176. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/version_compatibility/workflow_versions/v0_7_0/__init__.py +0 -0
  177. {griptape_nodes-0.58.1 → griptape_nodes-0.59.1}/src/griptape_nodes/version_compatibility/workflow_versions/v0_7_0/local_executor_argument_addition.py +0 -0
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: griptape-nodes
3
- Version: 0.58.1
3
+ Version: 0.59.1
4
4
  Summary: Add your description here
5
- Requires-Dist: griptape>=1.8.5
5
+ Requires-Dist: griptape>=1.8.8
6
6
  Requires-Dist: pydantic>=2.10.6
7
7
  Requires-Dist: python-dotenv>=1.0.1
8
8
  Requires-Dist: xdg-base-dirs>=6.0.2
@@ -23,6 +23,7 @@ Requires-Dist: typer>=0.15.0
23
23
  Requires-Dist: huggingface-hub[xf-xet]>=0.28.0
24
24
  Requires-Dist: rich>=14.1.0
25
25
  Requires-Dist: semver>=3.0.4
26
+ Requires-Dist: aiofiles>=25.1.0
26
27
  Requires-Dist: austin-dist>=3.7.0 ; extra == 'profiling'
27
28
  Requires-Python: >=3.12.0, <3.13
28
29
  Provides-Extra: profiling
@@ -1,11 +1,11 @@
1
1
  [project]
2
2
  name = "griptape-nodes"
3
- version = "0.58.1"
3
+ version = "0.59.1"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12.0, <3.13"
7
7
  dependencies = [
8
- "griptape>=1.8.5",
8
+ "griptape>=1.8.8",
9
9
  "pydantic>=2.10.6",
10
10
  "python-dotenv>=1.0.1",
11
11
  "xdg-base-dirs>=6.0.2",
@@ -24,9 +24,10 @@ dependencies = [
24
24
  "pillow>=11.3.0",
25
25
  "watchfiles>=1.1.0",
26
26
  "typer>=0.15.0",
27
- "huggingface-hub[xf_xet]>=0.28.0",
27
+ "huggingface-hub[xf-xet]>=0.28.0",
28
28
  "rich>=14.1.0",
29
29
  "semver>=3.0.4",
30
+ "aiofiles>=25.1.0",
30
31
  ]
31
32
 
32
33
  [project.optional-dependencies]
@@ -34,6 +35,7 @@ profiling = ["austin-dist>=3.7.0"]
34
35
 
35
36
  [dependency-groups]
36
37
  dev = [
38
+ "griptape-cloud-client",
37
39
  "mdformat>=0.7.22",
38
40
  "mdformat-gfm>=0.4.1",
39
41
  "mdformat-frontmatter>=2.0.8",
@@ -47,6 +49,7 @@ docs = [
47
49
  "mkdocs-material>=9.6.9",
48
50
  "mkdocs>=1.5.2",
49
51
  "mkdocstrings[python]>=0.29.1",
52
+ "mkdocs-mermaid2-plugin>=1.2.2",
50
53
  ]
51
54
  test = [
52
55
  "pytest>=8.3.5",
@@ -65,11 +68,13 @@ gtn = "griptape_nodes:main"
65
68
  requires = ["uv_build"]
66
69
  build-backend = "uv_build"
67
70
 
71
+ [tool.uv.sources]
72
+ griptape-cloud-client = { git = "https://github.com/griptape-ai/griptape-cloud-python-client", rev = "main" }
73
+
68
74
  [tool.ruff]
69
75
  line-length = 120
76
+ extend-exclude = ["libraries/**/templates/*.py"]
70
77
 
71
- [tool.ruff.format]
72
- exclude = [".venv"]
73
78
 
74
79
  [tool.ruff.lint]
75
80
  select = ["ALL"]
@@ -101,10 +106,11 @@ ignore = [
101
106
  "nodes.griptape_nodes_library".msg = "Import from griptape_nodes_library instead of nodes.griptape_nodes_library"
102
107
  "libraries.griptape_nodes_library".msg = "Import from griptape_nodes_library instead of libraries.griptape_nodes_library"
103
108
  "libraries.griptape_nodes_advanced_media_library".msg = "Import from griptape_nodes_advanced_media_library instead of libraries.griptape_nodes_advanced_media_library"
109
+ "libraries.griptape_cloud".msg = "Import from griptape_cloud instead of libraries.griptape_cloud"
104
110
 
105
111
  [tool.ruff.lint.per-file-ignores]
106
112
  "tests/*" = ["S101", "D104"]
107
- "nodes/tests/*" = ["S101", "D104"]
113
+ "libraries/**/tests/*" = ["S101", "D104"]
108
114
 
109
115
  [tool.ruff.lint.flake8-annotations]
110
116
  mypy-init-return = true
@@ -125,7 +131,7 @@ venvPath = "."
125
131
  venv = ".venv"
126
132
  include = ["."]
127
133
  exclude = [
128
- "libraries/griptape_nodes_library/workflows/templates/**/*",
134
+ "libraries/**/templates/*",
129
135
  ".venv",
130
136
  "GriptapeNodes",
131
137
  "**/node_modules",
@@ -52,8 +52,8 @@ class PythonSubprocessExecutor:
52
52
 
53
53
  stdout_bytes, stderr_bytes = await self._process.communicate()
54
54
  returncode = self._process.returncode
55
- stdout = stdout_bytes.decode() if stdout_bytes else ""
56
- stderr = stderr_bytes.decode() if stderr_bytes else ""
55
+ stdout = stdout_bytes.decode(errors="replace") if stdout_bytes else ""
56
+ stderr = stderr_bytes.decode(errors="replace") if stderr_bytes else ""
57
57
 
58
58
  # Log all output regardless of return code
59
59
  if stdout:
@@ -109,7 +109,6 @@ class LocalSessionWorkflowExecutor(LocalWorkflowExecutor):
109
109
 
110
110
  async def arun(
111
111
  self,
112
- workflow_name: str,
113
112
  flow_input: Any,
114
113
  storage_backend: StorageBackend | None = None,
115
114
  **kwargs: Any,
@@ -120,7 +119,6 @@ class LocalSessionWorkflowExecutor(LocalWorkflowExecutor):
120
119
  loading the user-defined workflow, and running the specified workflow.
121
120
 
122
121
  Parameters:
123
- workflow_name: The name of the workflow to execute.
124
122
  flow_input: Input data for the flow, typically a dictionary.
125
123
  storage_backend: The storage backend to use for the workflow execution.
126
124
 
@@ -129,7 +127,6 @@ class LocalSessionWorkflowExecutor(LocalWorkflowExecutor):
129
127
  """
130
128
  try:
131
129
  await self._arun(
132
- workflow_name=workflow_name,
133
130
  flow_input=flow_input,
134
131
  storage_backend=storage_backend,
135
132
  **kwargs,
@@ -151,14 +148,12 @@ class LocalSessionWorkflowExecutor(LocalWorkflowExecutor):
151
148
 
152
149
  async def _arun( # noqa: C901, PLR0915
153
150
  self,
154
- workflow_name: str,
155
151
  flow_input: Any,
156
152
  storage_backend: StorageBackend | None = None,
157
153
  **kwargs: Any,
158
154
  ) -> None:
159
155
  """Internal async run method with detailed event handling and websocket integration."""
160
156
  flow_name = await self.aprepare_workflow_for_run(
161
- workflow_name=workflow_name,
162
157
  flow_input=flow_input,
163
158
  storage_backend=storage_backend,
164
159
  **kwargs,
@@ -52,6 +52,15 @@ class LocalWorkflowExecutor(WorkflowExecutor):
52
52
  # TODO: Broadcast shutdown https://github.com/griptape-ai/griptape-nodes/issues/2149
53
53
  return
54
54
 
55
+ def _get_workflow_name(self) -> str:
56
+ try:
57
+ context_manager = GriptapeNodes.ContextManager()
58
+ return context_manager.get_current_workflow_name()
59
+ except Exception as e:
60
+ msg = f"Failed to get current workflow from context manager: {e}"
61
+ logger.exception(msg)
62
+ raise LocalExecutorError(msg) from e
63
+
55
64
  def _load_flow_for_workflow(self) -> str:
56
65
  try:
57
66
  context_manager = GriptapeNodes.ContextManager()
@@ -153,7 +162,6 @@ class LocalWorkflowExecutor(WorkflowExecutor):
153
162
 
154
163
  async def aprepare_workflow_for_run(
155
164
  self,
156
- workflow_name: str,
157
165
  flow_input: Any,
158
166
  storage_backend: StorageBackend | None = None,
159
167
  **kwargs: Any,
@@ -164,7 +172,6 @@ class LocalWorkflowExecutor(WorkflowExecutor):
164
172
  initializing event listeners, registering libraries, loading the user-defined
165
173
  workflow, and preparing the specified workflow for execution.
166
174
  Parameters:
167
- workflow_name: The name of the workflow to prepare.
168
175
  flow_input: Input data for the flow, typically a dictionary.
169
176
  storage_backend: The storage backend to use for the workflow execution.
170
177
 
@@ -175,7 +182,6 @@ class LocalWorkflowExecutor(WorkflowExecutor):
175
182
  msg = "The storage_backend parameter is deprecated. Pass `storage_backend` to the constructor instead."
176
183
  raise ValueError(msg)
177
184
 
178
- logger.info("Executing workflow: %s", workflow_name)
179
185
  GriptapeNodes.EventManager().initialize_queue()
180
186
 
181
187
  # Load workflow from file if workflow_path is provided
@@ -192,7 +198,6 @@ class LocalWorkflowExecutor(WorkflowExecutor):
192
198
 
193
199
  async def arun(
194
200
  self,
195
- workflow_name: str,
196
201
  flow_input: Any,
197
202
  storage_backend: StorageBackend | None = None,
198
203
  **kwargs: Any,
@@ -211,7 +216,6 @@ class LocalWorkflowExecutor(WorkflowExecutor):
211
216
  None
212
217
  """
213
218
  flow_name = await self.aprepare_workflow_for_run(
214
- workflow_name=workflow_name,
215
219
  flow_input=flow_input,
216
220
  storage_backend=storage_backend,
217
221
  **kwargs,
@@ -76,7 +76,6 @@ class SubprocessWorkflowExecutor(LocalSessionWorkflowExecutor, PythonSubprocessE
76
76
 
77
77
  async def arun(
78
78
  self,
79
- workflow_name: str, # noqa: ARG002
80
79
  flow_input: Any,
81
80
  storage_backend: StorageBackend = StorageBackend.LOCAL,
82
81
  *,
@@ -28,17 +28,15 @@ class WorkflowExecutor:
28
28
 
29
29
  def run(
30
30
  self,
31
- workflow_name: str,
32
31
  flow_input: Any,
33
32
  storage_backend: StorageBackend = StorageBackend.LOCAL,
34
33
  **kwargs: Any,
35
34
  ) -> None:
36
- return asyncio.run(self.arun(workflow_name, flow_input, storage_backend, **kwargs))
35
+ return asyncio.run(self.arun(flow_input, storage_backend, **kwargs))
37
36
 
38
37
  @abstractmethod
39
38
  async def arun(
40
39
  self,
41
- workflow_name: str,
42
40
  flow_input: Any,
43
41
  storage_backend: StorageBackend = StorageBackend.LOCAL,
44
42
  **kwargs: Any,
@@ -27,7 +27,7 @@ class LocalWorkflowPublisher(LocalWorkflowExecutor):
27
27
  **kwargs: Any,
28
28
  ) -> None:
29
29
  # Load the workflow into memory
30
- await self.aprepare_workflow_for_run(workflow_name=workflow_name, flow_input={}, workflow_path=workflow_path)
30
+ await self.aprepare_workflow_for_run(flow_input={}, workflow_path=workflow_path)
31
31
  pickle_control_flow_result = kwargs.get("pickle_control_flow_result", False)
32
32
  publish_workflow_request = PublishWorkflowRequest(
33
33
  workflow_name=workflow_name,
@@ -47,6 +47,13 @@ def init_command( # noqa: PLR0913
47
47
  help="Install the Griptape Nodes Advanced Image Library.",
48
48
  ),
49
49
  ] = None,
50
+ register_griptape_cloud_library: Annotated[
51
+ bool | None,
52
+ typer.Option(
53
+ "--register-griptape-cloud-library/--no-register-griptape-cloud-library",
54
+ help="Install the Griptape Cloud Library.",
55
+ ),
56
+ ] = None,
50
57
  libraries_sync: Annotated[
51
58
  bool | None,
52
59
  typer.Option("--libraries-sync/--no-libraries-sync", help="Sync the Griptape Nodes libraries."),
@@ -83,6 +90,7 @@ def init_command( # noqa: PLR0913
83
90
  api_key=api_key,
84
91
  storage_backend=storage_backend,
85
92
  register_advanced_library=register_advanced_library,
93
+ register_griptape_cloud_library=register_griptape_cloud_library,
86
94
  config_values=config_values,
87
95
  secret_values=secret_values,
88
96
  libraries_sync=libraries_sync,
@@ -134,7 +142,7 @@ def _run_init_configuration(config: InitConfig) -> None:
134
142
  _handle_storage_backend_config(config)
135
143
  _handle_bucket_config(config)
136
144
  _handle_hf_token_config(config)
137
- _handle_advanced_library_config(config)
145
+ _handle_additional_library_config(config)
138
146
  _handle_arbitrary_configs(config)
139
147
 
140
148
 
@@ -218,17 +226,24 @@ def _handle_hf_token_config(config: InitConfig) -> str | None:
218
226
  return hf_token
219
227
 
220
228
 
221
- def _handle_advanced_library_config(config: InitConfig) -> bool | None:
222
- """Handle advanced library configuration step."""
229
+ def _handle_additional_library_config(config: InitConfig) -> bool | None:
230
+ """Handle additional library configuration step."""
223
231
  register_advanced_library = config.register_advanced_library
232
+ register_griptape_cloud_library = config.register_griptape_cloud_library
224
233
 
225
234
  if config.interactive:
226
235
  register_advanced_library = _prompt_for_advanced_media_library(
227
236
  default_prompt_for_advanced_media_library=register_advanced_library
228
237
  )
238
+ register_griptape_cloud_library = _prompt_for_griptape_cloud_library(
239
+ default_prompt_for_griptape_cloud_library=register_griptape_cloud_library
240
+ )
229
241
 
230
- if register_advanced_library is not None:
231
- libraries_to_register = _build_libraries_list(register_advanced_library=register_advanced_library)
242
+ if register_advanced_library is not None or register_griptape_cloud_library is not None:
243
+ libraries_to_register = _build_libraries_list(
244
+ register_advanced_library=register_advanced_library,
245
+ register_griptape_cloud_library=register_griptape_cloud_library,
246
+ )
232
247
  config_manager.set_config_value(
233
248
  "app_events.on_app_initialization_complete.libraries_to_register", libraries_to_register
234
249
  )
@@ -470,8 +485,25 @@ def _prompt_for_advanced_media_library(*, default_prompt_for_advanced_media_libr
470
485
  return Confirm.ask("Register Advanced Media Library?", default=default_prompt_for_advanced_media_library)
471
486
 
472
487
 
473
- def _build_libraries_list(*, register_advanced_library: bool) -> list[str]:
474
- """Builds the list of libraries to register based on the advanced library setting."""
488
+ def _prompt_for_griptape_cloud_library(*, default_prompt_for_griptape_cloud_library: bool | None = None) -> bool:
489
+ """Prompts the user whether to register the Griptape Cloud Library."""
490
+ if default_prompt_for_griptape_cloud_library is None:
491
+ default_prompt_for_griptape_cloud_library = False
492
+ explainer = """[bold cyan]Griptape Cloud Library[/bold cyan]
493
+ Would you like to install the Griptape Nodes Griptape Cloud Library?
494
+ This node library makes Griptape Cloud APIs and functionality available within Griptape Nodes.
495
+ For example, nodes are available for invoking Structures, Assistants, or even publishing a Workflow to Griptape Cloud.
496
+ The Griptape Nodes Griptape Cloud Library can be added later by following instructions here: [bold blue][link=https://docs.griptapenodes.com]https://docs.griptapenodes.com[/link][/bold blue].
497
+ """
498
+ console.print(Panel(explainer, expand=False))
499
+
500
+ return Confirm.ask("Register Griptape Cloud Library?", default=default_prompt_for_griptape_cloud_library)
501
+
502
+
503
+ def _build_libraries_list(
504
+ *, register_advanced_library: bool | None = False, register_griptape_cloud_library: bool | None = False
505
+ ) -> list[str]:
506
+ """Builds the list of libraries to register based on library settings."""
475
507
  # TODO: https://github.com/griptape-ai/griptape-nodes/issues/929
476
508
  libraries_key = "app_events.on_app_initialization_complete.libraries_to_register"
477
509
  library_base_dir = Path(ENV_LIBRARIES_BASE_DIR)
@@ -509,6 +541,20 @@ def _build_libraries_list(*, register_advanced_library: bool) -> list[str]:
509
541
  for lib in libraries_to_remove:
510
542
  new_libraries.remove(lib)
511
543
 
544
+ griptape_cloud_library = str(library_base_dir / "griptape_cloud/griptape_nodes_library.json")
545
+ griptape_cloud_identifier = _get_library_identifier(griptape_cloud_library)
546
+ if register_griptape_cloud_library:
547
+ # If the griptape cloud library is not registered, add it
548
+ if griptape_cloud_identifier not in current_identifiers:
549
+ new_libraries.append(griptape_cloud_library)
550
+ else:
551
+ # If the griptape cloud library is registered, remove it
552
+ libraries_to_remove = [
553
+ lib for lib in new_libraries if _get_library_identifier(lib) == griptape_cloud_identifier
554
+ ]
555
+ for lib in libraries_to_remove:
556
+ new_libraries.remove(lib)
557
+
512
558
  return new_libraries
513
559
 
514
560
 
@@ -18,6 +18,7 @@ class InitConfig:
18
18
  api_key: str | None = None
19
19
  storage_backend: str | None = None
20
20
  register_advanced_library: bool | None = None
21
+ register_griptape_cloud_library: bool | None = None
21
22
  config_values: dict[str, Any] | None = None
22
23
  secret_values: dict[str, str] | None = None
23
24
  libraries_sync: bool | None = None