griptape-nodes 0.58.0__tar.gz → 0.59.0__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.
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/PKG-INFO +3 -2
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/pyproject.toml +13 -7
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/bootstrap/utils/python_subprocess_executor.py +2 -2
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/bootstrap/workflow_executors/local_session_workflow_executor.py +0 -5
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/bootstrap/workflow_executors/local_workflow_executor.py +9 -5
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/bootstrap/workflow_executors/subprocess_workflow_executor.py +0 -1
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/bootstrap/workflow_executors/workflow_executor.py +1 -3
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/bootstrap/workflow_publishers/local_workflow_publisher.py +1 -1
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/cli/commands/init.py +53 -7
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/cli/shared.py +1 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/common/node_executor.py +216 -40
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/exe_types/core_types.py +46 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/exe_types/node_types.py +272 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/machines/control_flow.py +222 -16
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/machines/dag_builder.py +212 -1
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/machines/parallel_resolution.py +237 -4
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/node_library/workflow_registry.py +1 -1
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/execution_events.py +5 -4
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/flow_events.py +17 -67
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/parameter_events.py +122 -1
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/event_manager.py +17 -13
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/flow_manager.py +316 -573
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/library_manager.py +32 -20
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/model_manager.py +19 -8
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/node_manager.py +463 -3
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/object_manager.py +2 -2
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/workflow_manager.py +37 -46
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/retained_mode.py +297 -3
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/README.md +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/__main__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/api_client/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/api_client/client.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/api_client/request_client.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/app/.python-version +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/app/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/app/app.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/app/watch.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/bootstrap/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/bootstrap/utils/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/bootstrap/workflow_executors/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/bootstrap/workflow_executors/utils/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/bootstrap/workflow_executors/utils/subprocess_script.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/bootstrap/workflow_publishers/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/bootstrap/workflow_publishers/subprocess_workflow_publisher.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/bootstrap/workflow_publishers/utils/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/bootstrap/workflow_publishers/utils/subprocess_script.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/cli/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/cli/commands/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/cli/commands/config.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/cli/commands/engine.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/cli/commands/libraries.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/cli/commands/models.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/cli/commands/self.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/cli/main.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/common/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/common/directed_graph.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/drivers/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/drivers/storage/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/drivers/storage/base_storage_driver.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/drivers/storage/griptape_cloud_storage_driver.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/drivers/storage/local_storage_driver.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/drivers/storage/storage_backend.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/exe_types/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/exe_types/connections.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/exe_types/flow.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/exe_types/param_components/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/exe_types/param_components/execution_status_component.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/exe_types/type_validator.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/machines/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/machines/fsm.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/machines/sequential_resolution.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/mcp_server/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/node_library/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/node_library/advanced_node_library.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/node_library/library_registry.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/py.typed +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/agent_events.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/app_events.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/arbitrary_python_events.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/base_events.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/config_events.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/connection_events.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/context_events.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/generate_request_payload_schemas.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/library_events.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/logger_events.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/mcp_events.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/model_events.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/node_events.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/object_events.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/os_events.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/payload_registry.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/resource_events.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/secrets_events.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/static_file_events.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/sync_events.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/validation_events.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/variable_events.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/events/workflow_events.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/griptape_nodes.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/agent_manager.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/arbitrary_code_exec_manager.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/config_manager.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/context_manager.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/engine_identity_manager.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/library_lifecycle/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/library_lifecycle/data_models.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_directory.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_fsm.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/base.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/github.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/local_file.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/package.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/sandbox.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_status.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/mcp_manager.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/operation_manager.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/os_manager.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/resource_components/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/resource_components/capability_field.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/resource_components/comparator.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/resource_components/resource_instance.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/resource_components/resource_type.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/resource_manager.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/resource_types/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/resource_types/cpu_resource.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/resource_types/os_resource.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/secrets_manager.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/session_manager.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/settings.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/static_files_manager.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/sync_manager.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/variable_manager.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/managers/version_compatibility_manager.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/utils/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/utils/name_generator.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/retained_mode/variable_types.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/servers/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/servers/mcp.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/servers/static.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/traits/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/traits/add_param_button.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/traits/button.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/traits/clamp.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/traits/color_picker.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/traits/compare.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/traits/compare_images.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/traits/file_system_picker.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/traits/minmax.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/traits/multi_options.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/traits/numbers_selector.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/traits/options.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/traits/slider.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/traits/trait_registry.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/traits/traits.json +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/updater/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/updater/__main__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/utils/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/utils/async_utils.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/utils/dict_utils.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/utils/image_preview.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/utils/metaclasses.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/utils/uv_utils.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/utils/version_utils.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/version_compatibility/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/version_compatibility/versions/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/version_compatibility/versions/v0_39_0/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/version_compatibility/versions/v0_39_0/modified_parameters_set_removal.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/version_compatibility/workflow_versions/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/src/griptape_nodes/version_compatibility/workflow_versions/v0_7_0/__init__.py +0 -0
- {griptape_nodes-0.58.0 → griptape_nodes-0.59.0}/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.
|
|
3
|
+
Version: 0.59.0
|
|
4
4
|
Summary: Add your description here
|
|
5
|
-
Requires-Dist: griptape>=1.8.
|
|
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.
|
|
3
|
+
version = "0.59.0"
|
|
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.
|
|
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[
|
|
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
|
-
"
|
|
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
|
|
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,
|
|
@@ -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(
|
|
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(
|
|
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
|
-
|
|
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
|
|
222
|
-
"""Handle
|
|
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(
|
|
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
|
|
474
|
-
"""
|
|
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
|