griptape-nodes 0.63.7__tar.gz → 0.66.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.
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/PKG-INFO +4 -1
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/README.md +1 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/pyproject.toml +3 -1
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/app/app.py +25 -5
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/bootstrap/utils/python_subprocess_executor.py +4 -1
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/bootstrap/workflow_executors/subprocess_workflow_executor.py +3 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/bootstrap/workflow_publishers/subprocess_workflow_publisher.py +3 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/cli/commands/init.py +65 -54
- griptape_nodes-0.66.2/src/griptape_nodes/cli/commands/libraries.py +108 -0
- griptape_nodes-0.66.2/src/griptape_nodes/cli/commands/self.py +241 -0
- griptape_nodes-0.66.2/src/griptape_nodes/common/node_executor.py +2932 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/drivers/storage/base_storage_driver.py +12 -3
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/drivers/storage/griptape_cloud_storage_driver.py +18 -2
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/drivers/storage/local_storage_driver.py +42 -5
- griptape_nodes-0.66.2/src/griptape_nodes/exe_types/base_iterative_nodes.py +1003 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/exe_types/connections.py +207 -21
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/exe_types/core_types.py +234 -7
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/exe_types/flow.py +6 -6
- griptape_nodes-0.66.2/src/griptape_nodes/exe_types/node_groups/__init__.py +7 -0
- griptape_nodes-0.66.2/src/griptape_nodes/exe_types/node_groups/base_iterative_node_group.py +177 -0
- griptape_nodes-0.66.2/src/griptape_nodes/exe_types/node_groups/base_node_group.py +32 -0
- griptape_nodes-0.66.2/src/griptape_nodes/exe_types/node_groups/subflow_node_group.py +1040 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/exe_types/node_types.py +82 -303
- griptape_nodes-0.66.2/src/griptape_nodes/exe_types/param_components/README.md +414 -0
- griptape_nodes-0.66.2/src/griptape_nodes/exe_types/param_components/api_key_provider_parameter.py +200 -0
- griptape_nodes-0.66.2/src/griptape_nodes/exe_types/param_components/artifact_url/__init__.py +1 -0
- griptape_nodes-0.66.2/src/griptape_nodes/exe_types/param_components/artifact_url/public_artifact_url_parameter.py +155 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_model_parameter.py +2 -0
- griptape_nodes-0.66.2/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_repo_file_parameter.py +112 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/exe_types/param_components/progress_bar_component.py +1 -1
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/exe_types/param_types/parameter_audio.py +1 -1
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/exe_types/param_types/parameter_bool.py +1 -1
- griptape_nodes-0.66.2/src/griptape_nodes/exe_types/param_types/parameter_button.py +443 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/exe_types/param_types/parameter_float.py +1 -1
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/exe_types/param_types/parameter_image.py +1 -1
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/exe_types/param_types/parameter_int.py +1 -1
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/exe_types/param_types/parameter_number.py +1 -1
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/exe_types/param_types/parameter_string.py +28 -1
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/exe_types/param_types/parameter_three_d.py +1 -1
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/exe_types/param_types/parameter_video.py +1 -1
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/machines/control_flow.py +141 -233
- griptape_nodes-0.66.2/src/griptape_nodes/machines/dag_builder.py +428 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/machines/fsm.py +10 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/machines/parallel_resolution.py +89 -289
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/machines/sequential_resolution.py +61 -15
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/node_library/library_registry.py +42 -2
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/node_library/workflow_registry.py +1 -1
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/agent_events.py +2 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/app_events.py +1 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/base_events.py +16 -13
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/connection_events.py +3 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/execution_events.py +35 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/flow_events.py +20 -8
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/library_events.py +494 -8
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/node_events.py +134 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/os_events.py +98 -7
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/project_events.py +15 -1
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/workflow_events.py +58 -1
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/griptape_nodes.py +6 -2
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/agent_manager.py +33 -1
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/config_manager.py +41 -8
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/event_manager.py +168 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/__init__.py +4 -0
- griptape_nodes-0.66.2/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/incompatible_requirements_problem.py +34 -0
- griptape_nodes-0.66.2/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/old_xdg_location_warning_problem.py +43 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/flow_manager.py +942 -372
- griptape_nodes-0.66.2/src/griptape_nodes/retained_mode/managers/library_manager.py +4026 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/model_manager.py +3 -4
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/node_manager.py +442 -69
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/object_manager.py +3 -1
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/operation_manager.py +3 -1
- griptape_nodes-0.66.2/src/griptape_nodes/retained_mode/managers/os_manager.py +3205 -0
- griptape_nodes-0.66.2/src/griptape_nodes/retained_mode/managers/resource_types/compute_resource.py +82 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/resource_types/os_resource.py +17 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/secrets_manager.py +2 -3
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/settings.py +21 -1
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/static_files_manager.py +21 -8
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/sync_manager.py +5 -4
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/version_compatibility_manager.py +116 -72
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/workflow_manager.py +368 -82
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/retained_mode.py +3 -3
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/servers/mcp.py +32 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/servers/static.py +1 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/traits/button.py +44 -2
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/traits/file_system_picker.py +2 -2
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/updater/__init__.py +3 -2
- griptape_nodes-0.66.2/src/griptape_nodes/utils/file_utils.py +101 -0
- griptape_nodes-0.66.2/src/griptape_nodes/utils/git_utils.py +1257 -0
- griptape_nodes-0.66.2/src/griptape_nodes/utils/library_utils.py +122 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/version_compatibility/versions/v0_39_0/modified_parameters_set_removal.py +5 -5
- griptape_nodes-0.66.2/src/griptape_nodes/version_compatibility/versions/v0_63_8/__init__.py +1 -0
- griptape_nodes-0.66.2/src/griptape_nodes/version_compatibility/versions/v0_63_8/deprecated_nodegroup_parameters.py +105 -0
- griptape_nodes-0.66.2/src/griptape_nodes/version_compatibility/versions/v0_65_4/__init__.py +5 -0
- griptape_nodes-0.66.2/src/griptape_nodes/version_compatibility/versions/v0_65_4/run_in_parallel_to_run_in_order.py +79 -0
- griptape_nodes-0.66.2/src/griptape_nodes/version_compatibility/versions/v0_65_5/__init__.py +5 -0
- griptape_nodes-0.66.2/src/griptape_nodes/version_compatibility/versions/v0_65_5/flux_2_removed_parameters.py +85 -0
- griptape_nodes-0.63.7/src/griptape_nodes/cli/commands/libraries.py +0 -101
- griptape_nodes-0.63.7/src/griptape_nodes/cli/commands/self.py +0 -120
- griptape_nodes-0.63.7/src/griptape_nodes/common/node_executor.py +0 -642
- griptape_nodes-0.63.7/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_repo_file_parameter.py +0 -38
- griptape_nodes-0.63.7/src/griptape_nodes/machines/dag_builder.py +0 -437
- griptape_nodes-0.63.7/src/griptape_nodes/retained_mode/managers/library_lifecycle/__init__.py +0 -45
- griptape_nodes-0.63.7/src/griptape_nodes/retained_mode/managers/library_lifecycle/data_models.py +0 -191
- griptape_nodes-0.63.7/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_directory.py +0 -346
- griptape_nodes-0.63.7/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_fsm.py +0 -439
- griptape_nodes-0.63.7/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/__init__.py +0 -17
- griptape_nodes-0.63.7/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/base.py +0 -82
- griptape_nodes-0.63.7/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/github.py +0 -116
- griptape_nodes-0.63.7/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/local_file.py +0 -367
- griptape_nodes-0.63.7/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/package.py +0 -104
- griptape_nodes-0.63.7/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/sandbox.py +0 -155
- griptape_nodes-0.63.7/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance.py +0 -18
- griptape_nodes-0.63.7/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_status.py +0 -12
- griptape_nodes-0.63.7/src/griptape_nodes/retained_mode/managers/library_manager.py +0 -2227
- griptape_nodes-0.63.7/src/griptape_nodes/retained_mode/managers/os_manager.py +0 -1805
- griptape_nodes-0.63.7/src/griptape_nodes/version_compatibility/workflow_versions/__init__.py +0 -1
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/__main__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/api_client/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/api_client/client.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/api_client/request_client.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/app/.python-version +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/app/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/app/watch.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/bootstrap/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/bootstrap/utils/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/bootstrap/workflow_executors/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/bootstrap/workflow_executors/local_session_workflow_executor.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/bootstrap/workflow_executors/local_workflow_executor.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/bootstrap/workflow_executors/utils/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/bootstrap/workflow_executors/utils/subprocess_script.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/bootstrap/workflow_executors/workflow_executor.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/bootstrap/workflow_publishers/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/bootstrap/workflow_publishers/local_workflow_publisher.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/bootstrap/workflow_publishers/utils/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/bootstrap/workflow_publishers/utils/subprocess_script.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/cli/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/cli/commands/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/cli/commands/config.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/cli/commands/engine.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/cli/commands/models.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/cli/main.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/cli/shared.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/common/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/common/directed_graph.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/common/macro_parser/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/common/macro_parser/core.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/common/macro_parser/exceptions.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/common/macro_parser/formats.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/common/macro_parser/matching.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/common/macro_parser/parsing.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/common/macro_parser/resolution.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/common/macro_parser/segments.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/common/project_templates/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/common/project_templates/default_project_template.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/common/project_templates/defaults/README.md +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/common/project_templates/directory.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/common/project_templates/loader.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/common/project_templates/project.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/common/project_templates/situation.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/common/project_templates/validation.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/drivers/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/drivers/storage/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/drivers/storage/storage_backend.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/drivers/thread_storage/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/drivers/thread_storage/base_thread_storage_driver.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/drivers/thread_storage/griptape_cloud_thread_storage_driver.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/drivers/thread_storage/local_thread_storage_driver.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/drivers/thread_storage/thread_storage_backend.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/exe_types/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/exe_types/param_components/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/exe_types/param_components/execution_status_component.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/exe_types/param_components/huggingface/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_repo_parameter.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_utils.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/exe_types/param_components/log_parameter.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/exe_types/param_components/seed_parameter.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/exe_types/param_types/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/exe_types/type_validator.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/machines/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/mcp_server/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/node_library/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/node_library/advanced_node_library.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/py.typed +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/arbitrary_python_events.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/config_events.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/context_events.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/generate_request_payload_schemas.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/logger_events.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/mcp_events.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/model_events.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/object_events.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/parameter_events.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/payload_registry.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/resource_events.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/secrets_events.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/static_file_events.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/sync_events.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/validation_events.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/events/variable_events.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/arbitrary_code_exec_manager.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/context_manager.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/engine_identity_manager.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/advanced_library_load_failure_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/after_library_callback_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/before_library_callback_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/create_config_category_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/dependency_installation_failed_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/deprecated_node_warning_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/duplicate_library_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/duplicate_node_registration_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/engine_version_error_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/insufficient_disk_space_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/invalid_version_string_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_json_decode_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_load_exception_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_not_found_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_schema_exception_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_schema_validation_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/modified_parameters_set_deprecation_warning_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/modified_parameters_set_removed_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/node_class_not_base_node_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/node_class_not_found_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/node_module_import_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/sandbox_directory_missing_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/ui_options_field_modified_incompatible_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/ui_options_field_modified_warning_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/update_config_category_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/venv_creation_failed_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/deprecated_node_in_workflow_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/invalid_dependency_version_string_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/invalid_library_version_string_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/invalid_metadata_schema_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/invalid_metadata_section_count_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/invalid_toml_format_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/library_not_registered_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/library_version_below_required_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/library_version_large_difference_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/library_version_major_mismatch_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/library_version_minor_difference_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/missing_creation_date_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/missing_last_modified_date_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/missing_toml_section_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/node_type_not_found_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_not_found_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_schema_version_problem.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/mcp_manager.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/project_manager.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/resource_components/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/resource_components/capability_field.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/resource_components/comparator.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/resource_components/resource_instance.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/resource_components/resource_type.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/resource_manager.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/resource_types/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/resource_types/cpu_resource.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/session_manager.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/user_manager.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/managers/variable_manager.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/utils/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/utils/name_generator.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/retained_mode/variable_types.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/servers/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/traits/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/traits/add_param_button.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/traits/clamp.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/traits/color_picker.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/traits/compare.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/traits/compare_images.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/traits/minmax.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/traits/multi_options.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/traits/numbers_selector.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/traits/options.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/traits/slider.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/traits/trait_registry.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/traits/traits.json +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/updater/__main__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/utils/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/utils/async_utils.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/utils/dict_utils.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/utils/huggingface_utils.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/utils/image_preview.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/utils/metaclasses.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/utils/uv_utils.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/utils/version_utils.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/version_compatibility/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/version_compatibility/versions/__init__.py +0 -0
- {griptape_nodes-0.63.7 → griptape_nodes-0.66.2}/src/griptape_nodes/version_compatibility/versions/v0_39_0/__init__.py +0 -0
- {griptape_nodes-0.63.7/src/griptape_nodes/version_compatibility/workflow_versions → griptape_nodes-0.66.2/src/griptape_nodes/version_compatibility/versions}/v0_7_0/__init__.py +0 -0
- {griptape_nodes-0.63.7/src/griptape_nodes/version_compatibility/workflow_versions → griptape_nodes-0.66.2/src/griptape_nodes/version_compatibility/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.
|
|
3
|
+
Version: 0.66.2
|
|
4
4
|
Summary: Add your description here
|
|
5
5
|
Requires-Dist: griptape>=1.8.12
|
|
6
6
|
Requires-Dist: pydantic>=2.10.6
|
|
@@ -27,6 +27,8 @@ Requires-Dist: aiofiles>=25.1.0
|
|
|
27
27
|
Requires-Dist: aioshutil>=1.5
|
|
28
28
|
Requires-Dist: ruamel-yaml>=0.18.15
|
|
29
29
|
Requires-Dist: asyncio-thread-runner>=1.0
|
|
30
|
+
Requires-Dist: portalocker>=2.10.0
|
|
31
|
+
Requires-Dist: pygit2>=1.19.0
|
|
30
32
|
Requires-Dist: austin-dist>=3.7.0 ; extra == 'profiling'
|
|
31
33
|
Requires-Python: >=3.12.0, <3.13
|
|
32
34
|
Provides-Extra: profiling
|
|
@@ -55,6 +57,7 @@ This repository contains the Griptape Nodes Engine - the local component that ru
|
|
|
55
57
|
- **📚 Full Documentation:** [docs.griptapenodes.com](https://docs.griptapenodes.com)
|
|
56
58
|
- **⚙️ Installation:** [docs.griptapenodes.com/en/stable/installation/](https://docs.griptapenodes.com/en/latest/installation/)
|
|
57
59
|
- **🔧 Engine Configuration:** [docs.griptapenodes.com/en/stable/configuration/](https://docs.griptapenodes.com/en/latest/configuration/)
|
|
60
|
+
- **📋 Migration Guide:** [MIGRATION.md](MIGRATION.md) - Guide for migrating from deprecated nodes
|
|
58
61
|
|
|
59
62
|
**🧩 Extending Griptape Nodes:**
|
|
60
63
|
|
|
@@ -21,6 +21,7 @@ This repository contains the Griptape Nodes Engine - the local component that ru
|
|
|
21
21
|
- **📚 Full Documentation:** [docs.griptapenodes.com](https://docs.griptapenodes.com)
|
|
22
22
|
- **⚙️ Installation:** [docs.griptapenodes.com/en/stable/installation/](https://docs.griptapenodes.com/en/latest/installation/)
|
|
23
23
|
- **🔧 Engine Configuration:** [docs.griptapenodes.com/en/stable/configuration/](https://docs.griptapenodes.com/en/latest/configuration/)
|
|
24
|
+
- **📋 Migration Guide:** [MIGRATION.md](MIGRATION.md) - Guide for migrating from deprecated nodes
|
|
24
25
|
|
|
25
26
|
**🧩 Extending Griptape Nodes:**
|
|
26
27
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "griptape-nodes"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.66.2"
|
|
4
4
|
description = "Add your description here"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.12.0, <3.13"
|
|
@@ -31,6 +31,8 @@ dependencies = [
|
|
|
31
31
|
"aioshutil>=1.5",
|
|
32
32
|
"ruamel.yaml>=0.18.15",
|
|
33
33
|
"asyncio-thread-runner>=1.0",
|
|
34
|
+
"portalocker>=2.10.0",
|
|
35
|
+
"pygit2>=1.19.0",
|
|
34
36
|
]
|
|
35
37
|
|
|
36
38
|
[project.optional-dependencies]
|
|
@@ -73,6 +73,8 @@ websocket_event_loop_ready = threading.Event()
|
|
|
73
73
|
# Semaphore to limit concurrent requests
|
|
74
74
|
REQUEST_SEMAPHORE = asyncio.Semaphore(100)
|
|
75
75
|
|
|
76
|
+
config_manager = GriptapeNodes.ConfigManager()
|
|
77
|
+
|
|
76
78
|
|
|
77
79
|
class EventLogHandler(logging.Handler):
|
|
78
80
|
"""Custom logging handler that emits log messages as AppEvents.
|
|
@@ -81,18 +83,24 @@ class EventLogHandler(logging.Handler):
|
|
|
81
83
|
"""
|
|
82
84
|
|
|
83
85
|
def emit(self, record: logging.LogRecord) -> None:
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
86
|
+
log_level_no = logging.getLevelNamesMapping()[config_manager.get_config_value("log_level").upper()]
|
|
87
|
+
if record.levelno >= log_level_no:
|
|
88
|
+
log_event = AppEvent(
|
|
89
|
+
payload=LogHandlerEvent(message=record.getMessage(), levelname=record.levelname, created=record.created)
|
|
90
|
+
)
|
|
91
|
+
griptape_nodes.EventManager().put_event(log_event)
|
|
88
92
|
|
|
89
93
|
|
|
90
94
|
# Logger for this module. Important that this is not the same as the griptape_nodes logger or else we'll have infinite log events.
|
|
91
95
|
logger = logging.getLogger("griptape_nodes_app")
|
|
92
96
|
|
|
97
|
+
# Get configured log level from config
|
|
98
|
+
log_level_str = config_manager.get_config_value("log_level").upper()
|
|
99
|
+
log_level = logging.getLevelNamesMapping()[log_level_str]
|
|
100
|
+
|
|
93
101
|
griptape_nodes_logger = logging.getLogger("griptape_nodes")
|
|
94
102
|
griptape_nodes_logger.addHandler(EventLogHandler())
|
|
95
|
-
griptape_nodes_logger.setLevel(
|
|
103
|
+
griptape_nodes_logger.setLevel(log_level)
|
|
96
104
|
|
|
97
105
|
# Root logger only gets RichHandler for console output
|
|
98
106
|
logging.basicConfig(
|
|
@@ -313,6 +321,10 @@ async def _process_app_event(event: AppEvent) -> None:
|
|
|
313
321
|
|
|
314
322
|
async def _process_node_event(event: GriptapeNodeEvent) -> None:
|
|
315
323
|
"""Process GriptapeNodeEvents and send them to the API (async version)."""
|
|
324
|
+
# Check if events are suppressed
|
|
325
|
+
if griptape_nodes.EventManager().should_suppress_event(event):
|
|
326
|
+
return
|
|
327
|
+
|
|
316
328
|
# Emit the result back to the GUI
|
|
317
329
|
result_event = event.wrapped_event
|
|
318
330
|
|
|
@@ -341,11 +353,19 @@ async def _process_node_event(event: GriptapeNodeEvent) -> None:
|
|
|
341
353
|
|
|
342
354
|
async def _process_execution_node_event(event: ExecutionGriptapeNodeEvent) -> None:
|
|
343
355
|
"""Process ExecutionGriptapeNodeEvents and send them to the API (async version)."""
|
|
356
|
+
# Check if events are suppressed
|
|
357
|
+
if griptape_nodes.EventManager().should_suppress_event(event):
|
|
358
|
+
return
|
|
359
|
+
|
|
344
360
|
await _send_message("execution_event", event.wrapped_event.json())
|
|
345
361
|
|
|
346
362
|
|
|
347
363
|
async def _process_progress_event(gt_event: ProgressEvent) -> None:
|
|
348
364
|
"""Process Griptape framework events and send them to the API (async version)."""
|
|
365
|
+
# Check if events are suppressed
|
|
366
|
+
if griptape_nodes.EventManager().should_suppress_event(gt_event):
|
|
367
|
+
return
|
|
368
|
+
|
|
349
369
|
node_name = gt_event.node_name
|
|
350
370
|
if node_name:
|
|
351
371
|
value = gt_event.value
|
|
@@ -7,6 +7,7 @@ from typing import TYPE_CHECKING, Any
|
|
|
7
7
|
|
|
8
8
|
if TYPE_CHECKING:
|
|
9
9
|
from pathlib import Path
|
|
10
|
+
from subprocess import _ENV
|
|
10
11
|
|
|
11
12
|
logger = logging.getLogger(__name__)
|
|
12
13
|
|
|
@@ -21,7 +22,7 @@ class PythonSubprocessExecutor:
|
|
|
21
22
|
self._is_running = False
|
|
22
23
|
|
|
23
24
|
async def execute_python_script(
|
|
24
|
-
self, script_path: Path, args: list[str] | None = None, cwd: Path | None = None
|
|
25
|
+
self, script_path: Path, args: list[str] | None = None, cwd: Path | None = None, env: _ENV | None = None
|
|
25
26
|
) -> None:
|
|
26
27
|
"""Execute a Python script in a subprocess and wait for completion.
|
|
27
28
|
|
|
@@ -29,6 +30,7 @@ class PythonSubprocessExecutor:
|
|
|
29
30
|
script_path: Path to the Python script to execute
|
|
30
31
|
args: Additional command line arguments
|
|
31
32
|
cwd: Working directory for the subprocess
|
|
33
|
+
env: Environment variables for the subprocess
|
|
32
34
|
"""
|
|
33
35
|
if self.is_running():
|
|
34
36
|
logger.warning("Another subprocess is already running. Terminating it first.")
|
|
@@ -44,6 +46,7 @@ class PythonSubprocessExecutor:
|
|
|
44
46
|
self._process = await asyncio.create_subprocess_exec(
|
|
45
47
|
*command,
|
|
46
48
|
cwd=cwd,
|
|
49
|
+
env=env,
|
|
47
50
|
stdout=asyncio.subprocess.PIPE,
|
|
48
51
|
stderr=asyncio.subprocess.PIPE,
|
|
49
52
|
)
|
|
@@ -125,6 +125,9 @@ class SubprocessWorkflowExecutor(LocalSessionWorkflowExecutor, PythonSubprocessE
|
|
|
125
125
|
script_path=tmp_script_path,
|
|
126
126
|
args=args,
|
|
127
127
|
cwd=Path(tmpdir),
|
|
128
|
+
env={
|
|
129
|
+
"GTN_CONFIG_ENABLE_WORKSPACE_FILE_WATCHING": "false",
|
|
130
|
+
},
|
|
128
131
|
)
|
|
129
132
|
except Exception as e:
|
|
130
133
|
msg = f"Failed to execute subprocess script: {e}"
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"""Init command for Griptape Nodes CLI."""
|
|
2
2
|
|
|
3
|
-
import asyncio
|
|
4
3
|
import json
|
|
5
4
|
from pathlib import Path
|
|
6
|
-
from typing import Annotated, Any
|
|
5
|
+
from typing import Annotated, Any, NamedTuple
|
|
7
6
|
|
|
8
7
|
import typer
|
|
9
8
|
from rich.box import HEAVY_EDGE
|
|
@@ -11,12 +10,10 @@ from rich.panel import Panel
|
|
|
11
10
|
from rich.prompt import Confirm, Prompt
|
|
12
11
|
from rich.table import Table
|
|
13
12
|
|
|
14
|
-
from griptape_nodes.cli.commands.libraries import _sync_libraries
|
|
15
13
|
from griptape_nodes.cli.shared import (
|
|
16
14
|
CONFIG_DIR,
|
|
17
15
|
CONFIG_FILE,
|
|
18
16
|
ENV_FILE,
|
|
19
|
-
ENV_LIBRARIES_BASE_DIR,
|
|
20
17
|
GT_CLOUD_BASE_URL,
|
|
21
18
|
NODES_APP_URL,
|
|
22
19
|
InitConfig,
|
|
@@ -25,6 +22,9 @@ from griptape_nodes.cli.shared import (
|
|
|
25
22
|
from griptape_nodes.drivers.storage import StorageBackend
|
|
26
23
|
from griptape_nodes.drivers.storage.griptape_cloud_storage_driver import GriptapeCloudStorageDriver
|
|
27
24
|
from griptape_nodes.retained_mode.griptape_nodes import GriptapeNodes
|
|
25
|
+
from griptape_nodes.retained_mode.managers.settings import LIBRARIES_TO_DOWNLOAD_KEY, LIBRARIES_TO_REGISTER_KEY
|
|
26
|
+
from griptape_nodes.utils.git_utils import extract_repo_name_from_url
|
|
27
|
+
from griptape_nodes.utils.library_utils import filter_old_xdg_library_paths
|
|
28
28
|
|
|
29
29
|
config_manager = GriptapeNodes.ConfigManager()
|
|
30
30
|
secrets_manager = GriptapeNodes.SecretsManager()
|
|
@@ -54,10 +54,6 @@ def init_command( # noqa: PLR0913
|
|
|
54
54
|
help="Install the Griptape Cloud Library.",
|
|
55
55
|
),
|
|
56
56
|
] = None,
|
|
57
|
-
libraries_sync: Annotated[
|
|
58
|
-
bool | None,
|
|
59
|
-
typer.Option("--libraries-sync/--no-libraries-sync", help="Sync the Griptape Nodes libraries."),
|
|
60
|
-
] = None,
|
|
61
57
|
no_interactive: Annotated[ # noqa: FBT002
|
|
62
58
|
bool,
|
|
63
59
|
typer.Option(help="Run init in non-interactive mode (no prompts)."),
|
|
@@ -93,7 +89,6 @@ def init_command( # noqa: PLR0913
|
|
|
93
89
|
register_griptape_cloud_library=register_griptape_cloud_library,
|
|
94
90
|
config_values=config_values,
|
|
95
91
|
secret_values=secret_values,
|
|
96
|
-
libraries_sync=libraries_sync,
|
|
97
92
|
bucket_name=bucket_name,
|
|
98
93
|
hf_token=hf_token,
|
|
99
94
|
)
|
|
@@ -111,10 +106,6 @@ def _run_init(config: InitConfig) -> None:
|
|
|
111
106
|
# Run configuration flow
|
|
112
107
|
_run_init_configuration(config)
|
|
113
108
|
|
|
114
|
-
# Sync libraries
|
|
115
|
-
if config.libraries_sync is not False:
|
|
116
|
-
asyncio.run(_sync_libraries(load_libraries_from_config=False))
|
|
117
|
-
|
|
118
109
|
console.print("[bold green]Initialization complete![/bold green]")
|
|
119
110
|
|
|
120
111
|
|
|
@@ -240,14 +231,24 @@ def _handle_additional_library_config(config: InitConfig) -> bool | None:
|
|
|
240
231
|
)
|
|
241
232
|
|
|
242
233
|
if register_advanced_library is not None or register_griptape_cloud_library is not None:
|
|
243
|
-
|
|
234
|
+
libraries_config = _build_libraries_list(
|
|
244
235
|
register_advanced_library=register_advanced_library,
|
|
245
236
|
register_griptape_cloud_library=register_griptape_cloud_library,
|
|
246
237
|
)
|
|
247
238
|
config_manager.set_config_value(
|
|
248
|
-
|
|
239
|
+
LIBRARIES_TO_DOWNLOAD_KEY,
|
|
240
|
+
libraries_config.libraries_to_download,
|
|
241
|
+
)
|
|
242
|
+
config_manager.set_config_value(
|
|
243
|
+
LIBRARIES_TO_REGISTER_KEY,
|
|
244
|
+
libraries_config.libraries_to_register,
|
|
245
|
+
)
|
|
246
|
+
console.print(
|
|
247
|
+
f"[bold green]Libraries to download: {', '.join(libraries_config.libraries_to_download)}[/bold green]"
|
|
248
|
+
)
|
|
249
|
+
console.print(
|
|
250
|
+
f"[bold green]Libraries to register: {', '.join(libraries_config.libraries_to_register)}[/bold green]"
|
|
249
251
|
)
|
|
250
|
-
console.print(f"[bold green]Libraries to register set to: {', '.join(libraries_to_register)}[/bold green]")
|
|
251
252
|
|
|
252
253
|
return register_advanced_library
|
|
253
254
|
|
|
@@ -500,62 +501,72 @@ def _prompt_for_griptape_cloud_library(*, default_prompt_for_griptape_cloud_libr
|
|
|
500
501
|
return Confirm.ask("Register Griptape Cloud Library?", default=default_prompt_for_griptape_cloud_library)
|
|
501
502
|
|
|
502
503
|
|
|
504
|
+
class LibrariesConfig(NamedTuple):
|
|
505
|
+
"""Configuration for library lists."""
|
|
506
|
+
|
|
507
|
+
libraries_to_download: list[str]
|
|
508
|
+
libraries_to_register: list[str]
|
|
509
|
+
|
|
510
|
+
|
|
503
511
|
def _build_libraries_list(
|
|
504
512
|
*, register_advanced_library: bool | None = False, register_griptape_cloud_library: bool | None = False
|
|
505
|
-
) ->
|
|
506
|
-
"""Builds the
|
|
507
|
-
#
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
+
) -> LibrariesConfig:
|
|
514
|
+
"""Builds the lists of libraries to download and register based on library settings."""
|
|
515
|
+
# Get current configuration for both lists
|
|
516
|
+
download_key = LIBRARIES_TO_DOWNLOAD_KEY
|
|
517
|
+
register_key = LIBRARIES_TO_REGISTER_KEY
|
|
518
|
+
|
|
519
|
+
current_downloads = config_manager.get_config_value(
|
|
520
|
+
download_key,
|
|
513
521
|
config_source="user_config",
|
|
514
|
-
default=config_manager.get_config_value(
|
|
522
|
+
default=config_manager.get_config_value(download_key, config_source="default_config", default=[]),
|
|
515
523
|
)
|
|
516
|
-
|
|
524
|
+
current_register = config_manager.get_config_value(
|
|
525
|
+
register_key,
|
|
526
|
+
config_source="user_config",
|
|
527
|
+
default=config_manager.get_config_value(register_key, config_source="default_config", default=[]),
|
|
528
|
+
)
|
|
529
|
+
|
|
530
|
+
new_downloads = current_downloads.copy()
|
|
531
|
+
new_register = current_register.copy()
|
|
517
532
|
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
path = Path(library_path)
|
|
521
|
-
return f"{path.parent.name}/{path.name}"
|
|
533
|
+
# Remove old XDG data home library paths from libraries_to_register
|
|
534
|
+
new_register, _ = filter_old_xdg_library_paths(new_register)
|
|
522
535
|
|
|
523
|
-
# Create a set of current
|
|
524
|
-
|
|
536
|
+
# Create a set of current download identifiers for fast lookup
|
|
537
|
+
current_download_identifiers = {extract_repo_name_from_url(lib) for lib in current_downloads}
|
|
525
538
|
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
if default_identifier not in
|
|
530
|
-
|
|
539
|
+
# Default library
|
|
540
|
+
default_library = "https://github.com/griptape-ai/griptape-nodes-library-standard@stable"
|
|
541
|
+
default_identifier = extract_repo_name_from_url(default_library)
|
|
542
|
+
if default_identifier not in current_download_identifiers:
|
|
543
|
+
new_downloads.append(default_library)
|
|
531
544
|
|
|
532
|
-
|
|
533
|
-
|
|
545
|
+
# Advanced media library
|
|
546
|
+
advanced_media_library = "https://github.com/griptape-ai/griptape-nodes-library-advanced-media@stable"
|
|
547
|
+
advanced_identifier = extract_repo_name_from_url(advanced_media_library)
|
|
534
548
|
if register_advanced_library:
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
new_libraries.append(advanced_media_library)
|
|
549
|
+
if advanced_identifier not in current_download_identifiers:
|
|
550
|
+
new_downloads.append(advanced_media_library)
|
|
538
551
|
else:
|
|
539
|
-
|
|
540
|
-
libraries_to_remove = [lib for lib in new_libraries if _get_library_identifier(lib) == advanced_identifier]
|
|
552
|
+
libraries_to_remove = [lib for lib in new_downloads if extract_repo_name_from_url(lib) == advanced_identifier]
|
|
541
553
|
for lib in libraries_to_remove:
|
|
542
|
-
|
|
554
|
+
new_downloads.remove(lib)
|
|
543
555
|
|
|
544
|
-
|
|
545
|
-
|
|
556
|
+
# Griptape Cloud library
|
|
557
|
+
griptape_cloud_library = "https://github.com/griptape-ai/griptape-nodes-library-griptape-cloud@stable"
|
|
558
|
+
griptape_cloud_identifier = extract_repo_name_from_url(griptape_cloud_library)
|
|
546
559
|
if register_griptape_cloud_library:
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
new_libraries.append(griptape_cloud_library)
|
|
560
|
+
if griptape_cloud_identifier not in current_download_identifiers:
|
|
561
|
+
new_downloads.append(griptape_cloud_library)
|
|
550
562
|
else:
|
|
551
|
-
# If the griptape cloud library is registered, remove it
|
|
552
563
|
libraries_to_remove = [
|
|
553
|
-
lib for lib in
|
|
564
|
+
lib for lib in new_downloads if extract_repo_name_from_url(lib) == griptape_cloud_identifier
|
|
554
565
|
]
|
|
555
566
|
for lib in libraries_to_remove:
|
|
556
|
-
|
|
567
|
+
new_downloads.remove(lib)
|
|
557
568
|
|
|
558
|
-
return
|
|
569
|
+
return LibrariesConfig(libraries_to_download=new_downloads, libraries_to_register=new_register)
|
|
559
570
|
|
|
560
571
|
|
|
561
572
|
def _create_new_bucket(bucket_name: str) -> str:
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"""Libraries command for Griptape Nodes CLI."""
|
|
2
|
+
|
|
3
|
+
import asyncio
|
|
4
|
+
|
|
5
|
+
import typer
|
|
6
|
+
|
|
7
|
+
from griptape_nodes.cli.shared import console
|
|
8
|
+
from griptape_nodes.retained_mode.events.library_events import (
|
|
9
|
+
DownloadLibraryRequest,
|
|
10
|
+
DownloadLibraryResultSuccess,
|
|
11
|
+
SyncLibrariesRequest,
|
|
12
|
+
SyncLibrariesResultSuccess,
|
|
13
|
+
)
|
|
14
|
+
from griptape_nodes.retained_mode.griptape_nodes import GriptapeNodes
|
|
15
|
+
from griptape_nodes.utils.git_utils import normalize_github_url
|
|
16
|
+
|
|
17
|
+
app = typer.Typer(help="Manage local libraries.")
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
@app.command()
|
|
21
|
+
def sync(
|
|
22
|
+
overwrite: bool = typer.Option(False, "--overwrite", help="Discard uncommitted changes in libraries"), # noqa: FBT001
|
|
23
|
+
) -> None:
|
|
24
|
+
"""Sync all libraries to latest versions from their git repositories."""
|
|
25
|
+
asyncio.run(_sync_libraries(overwrite_existing=overwrite))
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
async def _sync_libraries(*, overwrite_existing: bool) -> None:
|
|
29
|
+
"""Sync all libraries by checking for updates and installing dependencies."""
|
|
30
|
+
console.print("[bold cyan]Syncing libraries...[/bold cyan]")
|
|
31
|
+
|
|
32
|
+
# Create sync request with provided parameters
|
|
33
|
+
request = SyncLibrariesRequest(
|
|
34
|
+
overwrite_existing=overwrite_existing,
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
# Execute the sync
|
|
38
|
+
result = await GriptapeNodes.ahandle_request(request)
|
|
39
|
+
|
|
40
|
+
# Display results - failure case first
|
|
41
|
+
if not isinstance(result, SyncLibrariesResultSuccess):
|
|
42
|
+
console.print(f"[red]Failed to sync libraries: {result.result_details}[/red]")
|
|
43
|
+
return
|
|
44
|
+
|
|
45
|
+
# Success path
|
|
46
|
+
console.print(f"[green]Checked {result.libraries_checked} libraries[/green]")
|
|
47
|
+
|
|
48
|
+
if result.libraries_updated > 0:
|
|
49
|
+
console.print(f"[bold green]Updated {result.libraries_updated} libraries:[/bold green]")
|
|
50
|
+
for lib_name, update_info in result.update_summary.items():
|
|
51
|
+
if update_info.get("status") == "updated":
|
|
52
|
+
console.print(
|
|
53
|
+
f" [green]✓ {lib_name}: {update_info['old_version']} → {update_info['new_version']}[/green]"
|
|
54
|
+
)
|
|
55
|
+
elif update_info.get("status") == "failed":
|
|
56
|
+
console.print(f" [red]✗ {lib_name}: {update_info.get('error', 'Unknown error')}[/red]")
|
|
57
|
+
else:
|
|
58
|
+
console.print("[green]All libraries are up to date[/green]")
|
|
59
|
+
|
|
60
|
+
console.print("[bold green]Libraries synced successfully.[/bold green]")
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
@app.command()
|
|
64
|
+
def download(
|
|
65
|
+
git_url: str = typer.Argument(..., help="Git repository URL to download"),
|
|
66
|
+
branch: str | None = typer.Option(None, "--branch", help="Branch, tag, or commit to checkout"),
|
|
67
|
+
target_dir: str | None = typer.Option(None, "--target-dir", help="Target directory name"),
|
|
68
|
+
download_dir: str | None = typer.Option(None, "--download-dir", help="Parent directory for library download"),
|
|
69
|
+
overwrite: bool = typer.Option(False, "--overwrite", help="Overwrite existing library directory if it exists"), # noqa: FBT001
|
|
70
|
+
) -> None:
|
|
71
|
+
"""Download a library from a git repository."""
|
|
72
|
+
asyncio.run(_download_library(git_url, branch, target_dir, download_dir, overwrite_existing=overwrite))
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
async def _download_library(
|
|
76
|
+
git_url: str,
|
|
77
|
+
branch_tag_commit: str | None,
|
|
78
|
+
target_directory_name: str | None,
|
|
79
|
+
download_directory: str | None,
|
|
80
|
+
*,
|
|
81
|
+
overwrite_existing: bool,
|
|
82
|
+
) -> None:
|
|
83
|
+
"""Download a library from a git repository."""
|
|
84
|
+
# Normalize GitHub shorthand to full URL
|
|
85
|
+
git_url = normalize_github_url(git_url)
|
|
86
|
+
|
|
87
|
+
console.print(f"[bold cyan]Downloading library from {git_url}...[/bold cyan]")
|
|
88
|
+
|
|
89
|
+
# Create the download request
|
|
90
|
+
request = DownloadLibraryRequest(
|
|
91
|
+
git_url=git_url,
|
|
92
|
+
branch_tag_commit=branch_tag_commit,
|
|
93
|
+
target_directory_name=target_directory_name,
|
|
94
|
+
download_directory=download_directory,
|
|
95
|
+
overwrite_existing=overwrite_existing,
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
# Execute the download
|
|
99
|
+
result = await GriptapeNodes.ahandle_request(request)
|
|
100
|
+
|
|
101
|
+
# Display results - failure case first
|
|
102
|
+
if not isinstance(result, DownloadLibraryResultSuccess):
|
|
103
|
+
console.print(f"[red]Failed to download library: {result.result_details}[/red]")
|
|
104
|
+
return
|
|
105
|
+
|
|
106
|
+
# Success path
|
|
107
|
+
console.print(f"[bold green]Library '{result.library_name}' downloaded successfully![/bold green]")
|
|
108
|
+
console.print(f"[green]Downloaded to: {result.library_path}[/green]")
|