griptape-nodes 0.65.2__tar.gz → 0.65.4__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.65.2 → griptape_nodes-0.65.4}/PKG-INFO +1 -1
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/pyproject.toml +1 -1
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/bootstrap/utils/python_subprocess_executor.py +4 -1
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/bootstrap/workflow_executors/subprocess_workflow_executor.py +3 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/bootstrap/workflow_publishers/subprocess_workflow_publisher.py +3 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/node_groups/subflow_node_group.py +218 -37
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/config_manager.py +31 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/library_manager.py +13 -3
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/sync_manager.py +3 -1
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/README.md +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/__main__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/api_client/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/api_client/client.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/api_client/request_client.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/app/.python-version +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/app/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/app/app.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/app/watch.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/bootstrap/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/bootstrap/utils/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/bootstrap/workflow_executors/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/bootstrap/workflow_executors/local_session_workflow_executor.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/bootstrap/workflow_executors/local_workflow_executor.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/bootstrap/workflow_executors/utils/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/bootstrap/workflow_executors/utils/subprocess_script.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/bootstrap/workflow_executors/workflow_executor.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/bootstrap/workflow_publishers/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/bootstrap/workflow_publishers/local_workflow_publisher.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/bootstrap/workflow_publishers/utils/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/bootstrap/workflow_publishers/utils/subprocess_script.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/cli/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/cli/commands/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/cli/commands/config.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/cli/commands/engine.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/cli/commands/init.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/cli/commands/libraries.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/cli/commands/models.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/cli/commands/self.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/cli/main.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/cli/shared.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/directed_graph.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/macro_parser/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/macro_parser/core.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/macro_parser/exceptions.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/macro_parser/formats.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/macro_parser/matching.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/macro_parser/parsing.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/macro_parser/resolution.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/macro_parser/segments.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/node_executor.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/project_templates/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/project_templates/default_project_template.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/project_templates/defaults/README.md +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/project_templates/directory.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/project_templates/loader.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/project_templates/project.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/project_templates/situation.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/project_templates/validation.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/drivers/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/drivers/storage/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/drivers/storage/base_storage_driver.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/drivers/storage/griptape_cloud_storage_driver.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/drivers/storage/local_storage_driver.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/drivers/storage/storage_backend.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/drivers/thread_storage/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/drivers/thread_storage/base_thread_storage_driver.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/drivers/thread_storage/griptape_cloud_thread_storage_driver.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/drivers/thread_storage/local_thread_storage_driver.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/drivers/thread_storage/thread_storage_backend.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/base_iterative_nodes.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/connections.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/core_types.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/flow.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/node_groups/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/node_groups/base_node_group.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/node_types.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/param_components/README.md +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/param_components/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/param_components/api_key_provider_parameter.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/param_components/artifact_url/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/param_components/artifact_url/public_artifact_url_parameter.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/param_components/execution_status_component.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/param_components/huggingface/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_model_parameter.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_repo_file_parameter.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_repo_parameter.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_utils.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/param_components/log_parameter.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/param_components/progress_bar_component.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/param_components/seed_parameter.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/param_types/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/param_types/parameter_audio.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/param_types/parameter_bool.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/param_types/parameter_button.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/param_types/parameter_float.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/param_types/parameter_image.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/param_types/parameter_int.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/param_types/parameter_number.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/param_types/parameter_string.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/param_types/parameter_three_d.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/param_types/parameter_video.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/exe_types/type_validator.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/machines/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/machines/control_flow.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/machines/dag_builder.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/machines/fsm.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/machines/parallel_resolution.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/machines/sequential_resolution.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/mcp_server/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/node_library/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/node_library/advanced_node_library.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/node_library/library_registry.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/node_library/workflow_registry.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/py.typed +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/agent_events.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/app_events.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/arbitrary_python_events.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/base_events.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/config_events.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/connection_events.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/context_events.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/execution_events.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/flow_events.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/generate_request_payload_schemas.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/library_events.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/logger_events.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/mcp_events.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/model_events.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/node_events.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/object_events.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/os_events.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/parameter_events.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/payload_registry.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/project_events.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/resource_events.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/secrets_events.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/static_file_events.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/sync_events.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/validation_events.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/variable_events.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/events/workflow_events.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/griptape_nodes.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/agent_manager.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/arbitrary_code_exec_manager.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/context_manager.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/engine_identity_manager.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/event_manager.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/advanced_library_load_failure_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/after_library_callback_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/before_library_callback_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/create_config_category_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/dependency_installation_failed_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/deprecated_node_warning_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/duplicate_library_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/duplicate_node_registration_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/engine_version_error_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/insufficient_disk_space_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/invalid_version_string_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_json_decode_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_load_exception_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_not_found_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_schema_exception_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_schema_validation_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/modified_parameters_set_deprecation_warning_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/modified_parameters_set_removed_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/node_class_not_base_node_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/node_class_not_found_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/node_module_import_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/old_xdg_location_warning_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/sandbox_directory_missing_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/ui_options_field_modified_incompatible_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/ui_options_field_modified_warning_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/update_config_category_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/venv_creation_failed_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/deprecated_node_in_workflow_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/invalid_dependency_version_string_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/invalid_library_version_string_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/invalid_metadata_schema_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/invalid_metadata_section_count_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/invalid_toml_format_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/library_not_registered_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/library_version_below_required_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/library_version_large_difference_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/library_version_major_mismatch_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/library_version_minor_difference_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/missing_creation_date_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/missing_last_modified_date_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/missing_toml_section_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/node_type_not_found_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_not_found_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_schema_version_problem.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/flow_manager.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/library_lifecycle/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/library_lifecycle/data_models.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_directory.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_fsm.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/base.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/github.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/local_file.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/package.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/sandbox.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_status.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/mcp_manager.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/model_manager.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/node_manager.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/object_manager.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/operation_manager.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/os_manager.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/project_manager.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/resource_components/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/resource_components/capability_field.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/resource_components/comparator.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/resource_components/resource_instance.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/resource_components/resource_type.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/resource_manager.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/resource_types/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/resource_types/cpu_resource.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/resource_types/os_resource.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/secrets_manager.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/session_manager.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/settings.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/static_files_manager.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/user_manager.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/variable_manager.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/version_compatibility_manager.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/managers/workflow_manager.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/retained_mode.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/utils/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/utils/name_generator.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/retained_mode/variable_types.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/servers/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/servers/mcp.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/servers/static.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/traits/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/traits/add_param_button.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/traits/button.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/traits/clamp.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/traits/color_picker.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/traits/compare.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/traits/compare_images.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/traits/file_system_picker.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/traits/minmax.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/traits/multi_options.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/traits/numbers_selector.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/traits/options.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/traits/slider.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/traits/trait_registry.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/traits/traits.json +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/updater/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/updater/__main__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/utils/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/utils/async_utils.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/utils/dict_utils.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/utils/file_utils.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/utils/git_utils.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/utils/huggingface_utils.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/utils/image_preview.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/utils/library_utils.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/utils/metaclasses.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/utils/uv_utils.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/utils/version_utils.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/version_compatibility/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/version_compatibility/versions/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/version_compatibility/versions/v0_39_0/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/version_compatibility/versions/v0_39_0/modified_parameters_set_removal.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/version_compatibility/versions/v0_63_8/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/version_compatibility/versions/v0_63_8/deprecated_nodegroup_parameters.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/version_compatibility/versions/v0_7_0/__init__.py +0 -0
- {griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/version_compatibility/versions/v0_7_0/local_executor_argument_addition.py +0 -0
|
@@ -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}"
|
|
@@ -497,6 +497,16 @@ class SubflowNodeGroup(BaseNodeGroup, ABC):
|
|
|
497
497
|
for outgoing_connection in outgoing_connection_list:
|
|
498
498
|
proxy_parameter = outgoing_connection.target_parameter
|
|
499
499
|
remap_connections = connections.get_outgoing_connections_from_parameter(self, proxy_parameter)
|
|
500
|
+
|
|
501
|
+
# Check if proxy has other incoming connections besides this one
|
|
502
|
+
# If so, we should keep the proxy and its outgoing connections
|
|
503
|
+
incoming_to_proxy = connections.get_incoming_connections_to_parameter(self, proxy_parameter)
|
|
504
|
+
other_incoming_exists = any(
|
|
505
|
+
conn.source_node.name != node.name or conn.source_parameter.name != parameter_name
|
|
506
|
+
for conn in incoming_to_proxy
|
|
507
|
+
)
|
|
508
|
+
|
|
509
|
+
# Delete the connection from this node to proxy
|
|
500
510
|
delete_result = GriptapeNodes.FlowManager().on_delete_connection_request(
|
|
501
511
|
DeleteConnectionRequest(
|
|
502
512
|
source_parameter_name=parameter_name,
|
|
@@ -509,19 +519,8 @@ class SubflowNodeGroup(BaseNodeGroup, ABC):
|
|
|
509
519
|
msg = f"{self.name}: Failed to delete internal outgoing connection from {node.name}.{parameter_name} to proxy {proxy_parameter.name}: {delete_result.result_details}"
|
|
510
520
|
raise RuntimeError(msg)
|
|
511
521
|
|
|
522
|
+
# Create direct connections from this node to target nodes
|
|
512
523
|
for connection in remap_connections:
|
|
513
|
-
delete_result = GriptapeNodes.FlowManager().on_delete_connection_request(
|
|
514
|
-
DeleteConnectionRequest(
|
|
515
|
-
source_parameter_name=connection.source_parameter.name,
|
|
516
|
-
target_parameter_name=connection.target_parameter.name,
|
|
517
|
-
source_node_name=connection.source_node.name,
|
|
518
|
-
target_node_name=connection.target_node.name,
|
|
519
|
-
)
|
|
520
|
-
)
|
|
521
|
-
if delete_result.failed():
|
|
522
|
-
msg = f"{self.name}: Failed to delete external connection from proxy {proxy_parameter.name} to {connection.target_node.name}.{connection.target_parameter.name}: {delete_result.result_details}"
|
|
523
|
-
raise RuntimeError(msg)
|
|
524
|
-
|
|
525
524
|
create_result = GriptapeNodes.FlowManager().on_create_connection_request(
|
|
526
525
|
CreateConnectionRequest(
|
|
527
526
|
source_parameter_name=parameter_name,
|
|
@@ -534,7 +533,22 @@ class SubflowNodeGroup(BaseNodeGroup, ABC):
|
|
|
534
533
|
msg = f"{self.name}: Failed to create direct outgoing connection from {node.name}.{parameter_name} to {connection.target_node.name}.{connection.target_parameter.name}: {create_result.result_details}"
|
|
535
534
|
raise RuntimeError(msg)
|
|
536
535
|
|
|
537
|
-
|
|
536
|
+
# Only delete outgoing connections from proxy and clean up if no other incoming connections exist
|
|
537
|
+
if not other_incoming_exists:
|
|
538
|
+
for connection in remap_connections:
|
|
539
|
+
delete_result = GriptapeNodes.FlowManager().on_delete_connection_request(
|
|
540
|
+
DeleteConnectionRequest(
|
|
541
|
+
source_parameter_name=connection.source_parameter.name,
|
|
542
|
+
target_parameter_name=connection.target_parameter.name,
|
|
543
|
+
source_node_name=connection.source_node.name,
|
|
544
|
+
target_node_name=connection.target_node.name,
|
|
545
|
+
)
|
|
546
|
+
)
|
|
547
|
+
if delete_result.failed():
|
|
548
|
+
msg = f"{self.name}: Failed to delete external connection from proxy {proxy_parameter.name} to {connection.target_node.name}.{connection.target_parameter.name}: {delete_result.result_details}"
|
|
549
|
+
raise RuntimeError(msg)
|
|
550
|
+
|
|
551
|
+
self._cleanup_proxy_parameter(proxy_parameter, "right_parameters")
|
|
538
552
|
|
|
539
553
|
def _remap_incoming_connections(self, node: BaseNode, connections: Connections) -> None:
|
|
540
554
|
"""Remap incoming connections that go through proxy parameters.
|
|
@@ -550,6 +564,16 @@ class SubflowNodeGroup(BaseNodeGroup, ABC):
|
|
|
550
564
|
for incoming_connection in incoming_connection_list:
|
|
551
565
|
proxy_parameter = incoming_connection.source_parameter
|
|
552
566
|
remap_connections = connections.get_incoming_connections_to_parameter(self, proxy_parameter)
|
|
567
|
+
|
|
568
|
+
# Check if proxy has other outgoing connections besides this one
|
|
569
|
+
# If so, we should keep the proxy and its incoming connections
|
|
570
|
+
outgoing_from_proxy = connections.get_outgoing_connections_from_parameter(self, proxy_parameter)
|
|
571
|
+
other_outgoing_exists = any(
|
|
572
|
+
conn.target_node.name != node.name or conn.target_parameter.name != parameter_name
|
|
573
|
+
for conn in outgoing_from_proxy
|
|
574
|
+
)
|
|
575
|
+
|
|
576
|
+
# Delete the connection from proxy to this node
|
|
553
577
|
delete_result = GriptapeNodes.FlowManager().on_delete_connection_request(
|
|
554
578
|
DeleteConnectionRequest(
|
|
555
579
|
source_parameter_name=proxy_parameter.name,
|
|
@@ -562,19 +586,8 @@ class SubflowNodeGroup(BaseNodeGroup, ABC):
|
|
|
562
586
|
msg = f"{self.name}: Failed to delete internal incoming connection from proxy {proxy_parameter.name} to {node.name}.{parameter_name}: {delete_result.result_details}"
|
|
563
587
|
raise RuntimeError(msg)
|
|
564
588
|
|
|
589
|
+
# Create direct connections from source nodes to this node
|
|
565
590
|
for connection in remap_connections:
|
|
566
|
-
delete_result = GriptapeNodes.FlowManager().on_delete_connection_request(
|
|
567
|
-
DeleteConnectionRequest(
|
|
568
|
-
source_parameter_name=connection.source_parameter.name,
|
|
569
|
-
target_parameter_name=proxy_parameter.name,
|
|
570
|
-
source_node_name=connection.source_node.name,
|
|
571
|
-
target_node_name=self.name,
|
|
572
|
-
)
|
|
573
|
-
)
|
|
574
|
-
if delete_result.failed():
|
|
575
|
-
msg = f"{self.name}: Failed to delete external connection from {connection.source_node.name}.{connection.source_parameter.name} to proxy {proxy_parameter.name}: {delete_result.result_details}"
|
|
576
|
-
raise RuntimeError(msg)
|
|
577
|
-
|
|
578
591
|
create_result = GriptapeNodes.FlowManager().on_create_connection_request(
|
|
579
592
|
CreateConnectionRequest(
|
|
580
593
|
source_parameter_name=connection.source_parameter.name,
|
|
@@ -587,7 +600,22 @@ class SubflowNodeGroup(BaseNodeGroup, ABC):
|
|
|
587
600
|
msg = f"{self.name}: Failed to create direct incoming connection from {connection.source_node.name}.{connection.source_parameter.name} to {node.name}.{parameter_name}: {create_result.result_details}"
|
|
588
601
|
raise RuntimeError(msg)
|
|
589
602
|
|
|
590
|
-
|
|
603
|
+
# Only delete incoming connections to proxy and clean up if no other outgoing connections exist
|
|
604
|
+
if not other_outgoing_exists:
|
|
605
|
+
for connection in remap_connections:
|
|
606
|
+
delete_result = GriptapeNodes.FlowManager().on_delete_connection_request(
|
|
607
|
+
DeleteConnectionRequest(
|
|
608
|
+
source_parameter_name=connection.source_parameter.name,
|
|
609
|
+
target_parameter_name=proxy_parameter.name,
|
|
610
|
+
source_node_name=connection.source_node.name,
|
|
611
|
+
target_node_name=self.name,
|
|
612
|
+
)
|
|
613
|
+
)
|
|
614
|
+
if delete_result.failed():
|
|
615
|
+
msg = f"{self.name}: Failed to delete external connection from {connection.source_node.name}.{connection.source_parameter.name} to proxy {proxy_parameter.name}: {delete_result.result_details}"
|
|
616
|
+
raise RuntimeError(msg)
|
|
617
|
+
|
|
618
|
+
self._cleanup_proxy_parameter(proxy_parameter, "left_parameters")
|
|
591
619
|
|
|
592
620
|
def remap_to_internal(self, nodes: list[BaseNode], connections: Connections) -> None:
|
|
593
621
|
"""Remap connections that are now internal after adding nodes to the group.
|
|
@@ -672,22 +700,175 @@ class SubflowNodeGroup(BaseNodeGroup, ABC):
|
|
|
672
700
|
connections: Connections object from FlowManager
|
|
673
701
|
node_names_in_group: Set of all node names currently in the group
|
|
674
702
|
"""
|
|
703
|
+
# Group outgoing connections by (source_node, source_parameter) to reuse proxy parameters
|
|
704
|
+
# Skip connections that already go to the NodeGroup itself (existing proxy parameters)
|
|
705
|
+
outgoing_by_source: dict[tuple[str, str], list[Connection]] = {}
|
|
675
706
|
for node in nodes:
|
|
676
707
|
outgoing_connections = connections.get_all_outgoing_connections(node)
|
|
677
708
|
for conn in outgoing_connections:
|
|
678
|
-
if conn.target_node.name not in node_names_in_group:
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
709
|
+
if conn.target_node.name not in node_names_in_group and conn.target_node.name != self.name:
|
|
710
|
+
key = (conn.source_node.name, conn.source_parameter.name)
|
|
711
|
+
outgoing_by_source.setdefault(key, []).append(conn)
|
|
712
|
+
|
|
713
|
+
# Group incoming connections by (source_node, source_parameter) to reuse proxy parameters
|
|
714
|
+
# This ensures that when an external node connects to multiple internal nodes,
|
|
715
|
+
# they share a single proxy parameter
|
|
716
|
+
# Skip connections that already come from the NodeGroup itself (existing proxy parameters)
|
|
717
|
+
incoming_by_source: dict[tuple[str, str], list[Connection]] = {}
|
|
718
|
+
for node in nodes:
|
|
684
719
|
incoming_connections = connections.get_all_incoming_connections(node)
|
|
685
720
|
for conn in incoming_connections:
|
|
686
|
-
if conn.source_node.name not in node_names_in_group:
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
721
|
+
if conn.source_node.name not in node_names_in_group and conn.source_node.name != self.name:
|
|
722
|
+
key = (conn.source_node.name, conn.source_parameter.name)
|
|
723
|
+
incoming_by_source.setdefault(key, []).append(conn)
|
|
724
|
+
|
|
725
|
+
# Map outgoing connections - one proxy parameter per source parameter
|
|
726
|
+
for conn_list in outgoing_by_source.values():
|
|
727
|
+
self._map_external_connections_group(conn_list, is_incoming=False)
|
|
728
|
+
|
|
729
|
+
# Map incoming connections - one proxy parameter per source parameter
|
|
730
|
+
for conn_list in incoming_by_source.values():
|
|
731
|
+
self._map_external_connections_group(conn_list, is_incoming=True)
|
|
732
|
+
|
|
733
|
+
def _map_external_connections_group(self, conn_list: list[Connection], *, is_incoming: bool) -> None:
|
|
734
|
+
"""Map a group of external connections that share the same external parameter.
|
|
735
|
+
|
|
736
|
+
Creates a single proxy parameter and connects all nodes through it.
|
|
737
|
+
If an existing proxy parameter already handles the same internal source,
|
|
738
|
+
it will be reused instead of creating a new one.
|
|
739
|
+
|
|
740
|
+
Args:
|
|
741
|
+
conn_list: List of connections sharing the same external parameter
|
|
742
|
+
is_incoming: True if these are incoming connections to the group
|
|
743
|
+
"""
|
|
744
|
+
if not conn_list:
|
|
745
|
+
return
|
|
746
|
+
|
|
747
|
+
from griptape_nodes.retained_mode.griptape_nodes import GriptapeNodes
|
|
748
|
+
|
|
749
|
+
# All connections share the same external parameter
|
|
750
|
+
# For outgoing: the internal (source) parameter is shared
|
|
751
|
+
# For incoming: the external (source) parameter is shared
|
|
752
|
+
first_conn = conn_list[0]
|
|
753
|
+
# Use source_parameter in both cases since we group by source
|
|
754
|
+
grouped_parameter = first_conn.source_parameter
|
|
755
|
+
|
|
756
|
+
# Check if there's an existing proxy parameter we can reuse
|
|
757
|
+
existing_proxy = self._find_existing_proxy_for_source(
|
|
758
|
+
first_conn.source_node, first_conn.source_parameter, is_incoming=is_incoming
|
|
759
|
+
)
|
|
760
|
+
|
|
761
|
+
# Delete all original connections first
|
|
762
|
+
for conn in conn_list:
|
|
763
|
+
request = DeleteConnectionRequest(
|
|
764
|
+
conn.source_parameter.name,
|
|
765
|
+
conn.target_parameter.name,
|
|
766
|
+
conn.source_node.name,
|
|
767
|
+
conn.target_node.name,
|
|
768
|
+
)
|
|
769
|
+
result = GriptapeNodes.handle_request(request)
|
|
770
|
+
if not isinstance(result, DeleteConnectionResultSuccess):
|
|
771
|
+
logger.warning(
|
|
772
|
+
"%s failed to delete connection from %s.%s to %s.%s",
|
|
773
|
+
self.name,
|
|
774
|
+
conn.source_node.name,
|
|
775
|
+
conn.source_parameter.name,
|
|
776
|
+
conn.target_node.name,
|
|
777
|
+
conn.target_parameter.name,
|
|
778
|
+
)
|
|
779
|
+
|
|
780
|
+
# Use existing proxy or create a new one
|
|
781
|
+
if existing_proxy is not None:
|
|
782
|
+
proxy_parameter = existing_proxy
|
|
783
|
+
else:
|
|
784
|
+
proxy_parameter = self._create_proxy_parameter_for_connection(grouped_parameter, is_incoming=is_incoming)
|
|
785
|
+
|
|
786
|
+
# Create connections for all external nodes through the single proxy
|
|
787
|
+
for conn in conn_list:
|
|
788
|
+
self._create_connections_for_proxy_single(proxy_parameter, conn, is_incoming=is_incoming)
|
|
789
|
+
|
|
790
|
+
def _find_existing_proxy_for_source(
|
|
791
|
+
self, source_node: BaseNode, source_parameter: Parameter, *, is_incoming: bool
|
|
792
|
+
) -> Parameter | None:
|
|
793
|
+
"""Find an existing proxy parameter that already handles the given source.
|
|
794
|
+
|
|
795
|
+
For outgoing connections (is_incoming=False):
|
|
796
|
+
Looks for a right-side proxy that has an incoming connection from the
|
|
797
|
+
same internal source node/parameter.
|
|
798
|
+
|
|
799
|
+
For incoming connections (is_incoming=True):
|
|
800
|
+
Looks for a left-side proxy that has an incoming connection from the
|
|
801
|
+
same external source node/parameter.
|
|
802
|
+
|
|
803
|
+
Args:
|
|
804
|
+
source_node: The source node of the connection
|
|
805
|
+
source_parameter: The source parameter of the connection
|
|
806
|
+
is_incoming: True if looking for incoming connection proxies
|
|
807
|
+
|
|
808
|
+
Returns:
|
|
809
|
+
The existing proxy parameter if found, None otherwise
|
|
810
|
+
"""
|
|
811
|
+
from griptape_nodes.retained_mode.griptape_nodes import GriptapeNodes
|
|
812
|
+
|
|
813
|
+
connections = GriptapeNodes.FlowManager().get_connections()
|
|
814
|
+
|
|
815
|
+
# Determine which proxy parameters to check based on direction
|
|
816
|
+
if is_incoming:
|
|
817
|
+
proxy_param_names = self.metadata.get("left_parameters", [])
|
|
818
|
+
else:
|
|
819
|
+
proxy_param_names = self.metadata.get("right_parameters", [])
|
|
820
|
+
|
|
821
|
+
for proxy_name in proxy_param_names:
|
|
822
|
+
proxy_param = self.get_parameter_by_name(proxy_name)
|
|
823
|
+
if proxy_param is None:
|
|
824
|
+
continue
|
|
825
|
+
|
|
826
|
+
# Check incoming connections to this proxy parameter
|
|
827
|
+
incoming_to_proxy = connections.get_incoming_connections_to_parameter(self, proxy_param)
|
|
828
|
+
for conn in incoming_to_proxy:
|
|
829
|
+
if conn.source_node.name == source_node.name and conn.source_parameter.name == source_parameter.name:
|
|
830
|
+
return proxy_param
|
|
831
|
+
|
|
832
|
+
return None
|
|
833
|
+
|
|
834
|
+
def _create_connections_for_proxy_single(
|
|
835
|
+
self, proxy_parameter: Parameter, old_connection: Connection, *, is_incoming: bool
|
|
836
|
+
) -> None:
|
|
837
|
+
"""Create connections for a single external connection through a proxy parameter.
|
|
838
|
+
|
|
839
|
+
Unlike create_connections_for_proxy, this assumes the proxy parameter already exists
|
|
840
|
+
and is being shared by multiple connections.
|
|
841
|
+
|
|
842
|
+
Args:
|
|
843
|
+
proxy_parameter: The proxy parameter to connect through
|
|
844
|
+
old_connection: The original connection being remapped
|
|
845
|
+
is_incoming: True if this is an incoming connection to the group
|
|
846
|
+
"""
|
|
847
|
+
from griptape_nodes.retained_mode.griptape_nodes import GriptapeNodes
|
|
848
|
+
|
|
849
|
+
create_first_connection = CreateConnectionRequest(
|
|
850
|
+
source_parameter_name=old_connection.source_parameter.name,
|
|
851
|
+
target_parameter_name=proxy_parameter.name,
|
|
852
|
+
source_node_name=old_connection.source_node.name,
|
|
853
|
+
target_node_name=self.name,
|
|
854
|
+
is_node_group_internal=not is_incoming,
|
|
855
|
+
)
|
|
856
|
+
create_second_connection = CreateConnectionRequest(
|
|
857
|
+
source_parameter_name=proxy_parameter.name,
|
|
858
|
+
target_parameter_name=old_connection.target_parameter.name,
|
|
859
|
+
source_node_name=self.name,
|
|
860
|
+
target_node_name=old_connection.target_node.name,
|
|
861
|
+
is_node_group_internal=is_incoming,
|
|
862
|
+
)
|
|
863
|
+
|
|
864
|
+
# Track connections for cleanup
|
|
865
|
+
if proxy_parameter.name not in self._proxy_param_to_connections:
|
|
866
|
+
self._proxy_param_to_connections[proxy_parameter.name] = 2
|
|
867
|
+
else:
|
|
868
|
+
self._proxy_param_to_connections[proxy_parameter.name] += 2
|
|
869
|
+
|
|
870
|
+
GriptapeNodes.handle_request(create_first_connection)
|
|
871
|
+
GriptapeNodes.handle_request(create_second_connection)
|
|
691
872
|
|
|
692
873
|
def _validate_nodes_in_group(self, nodes: list[BaseNode]) -> None:
|
|
693
874
|
"""Validate that all nodes are in the group."""
|
|
@@ -255,6 +255,31 @@ class ConfigManager:
|
|
|
255
255
|
workspace_path = self.workspace_path
|
|
256
256
|
return workspace_path / relative_path
|
|
257
257
|
|
|
258
|
+
def _coerce_to_type(self, value: Any, cast_type: type) -> Any:
|
|
259
|
+
"""Coerce a value to the specified type.
|
|
260
|
+
|
|
261
|
+
This is particularly useful for environment variables which are always strings.
|
|
262
|
+
|
|
263
|
+
Args:
|
|
264
|
+
value: The value to coerce.
|
|
265
|
+
cast_type: The type to coerce to (bool, int, float, or str).
|
|
266
|
+
|
|
267
|
+
Returns:
|
|
268
|
+
The coerced value.
|
|
269
|
+
"""
|
|
270
|
+
if cast_type is bool:
|
|
271
|
+
if isinstance(value, bool):
|
|
272
|
+
return value
|
|
273
|
+
if isinstance(value, str):
|
|
274
|
+
return value.lower() not in ("false", "0", "no", "")
|
|
275
|
+
return bool(value)
|
|
276
|
+
if cast_type is int:
|
|
277
|
+
return int(value)
|
|
278
|
+
if cast_type is float:
|
|
279
|
+
return float(value)
|
|
280
|
+
# str is a no-op
|
|
281
|
+
return value
|
|
282
|
+
|
|
258
283
|
def get_config_value(
|
|
259
284
|
self,
|
|
260
285
|
key: str,
|
|
@@ -262,6 +287,7 @@ class ConfigManager:
|
|
|
262
287
|
should_load_env_var_if_detected: bool = True,
|
|
263
288
|
config_source: Literal["user_config", "workspace_config", "default_config", "merged_config"] = "merged_config",
|
|
264
289
|
default: Any | None = None,
|
|
290
|
+
cast_type: type[bool] | type[int] | type[float] | type[str] | None = None,
|
|
265
291
|
) -> Any:
|
|
266
292
|
"""Get a value from the configuration.
|
|
267
293
|
|
|
@@ -273,6 +299,8 @@ class ConfigManager:
|
|
|
273
299
|
should_load_env_var_if_detected: If True, and the value starts with a $, it will be pulled from the environment variables.
|
|
274
300
|
config_source: The source of the configuration to use. Can be 'user_config', 'workspace_config', 'default_config', or 'merged_config'.
|
|
275
301
|
default: The default value to return if the key is not found in the configuration.
|
|
302
|
+
cast_type: Optional type to coerce the value to (bool, int, float, or str). Useful for environment
|
|
303
|
+
variables which are always strings (e.g., "false" -> False when cast_type=bool).
|
|
276
304
|
|
|
277
305
|
Returns:
|
|
278
306
|
The value associated with the key, or the entire category if key points to a dict.
|
|
@@ -296,6 +324,9 @@ class ConfigManager:
|
|
|
296
324
|
|
|
297
325
|
value = GriptapeNodes.SecretsManager().get_secret(value[1:])
|
|
298
326
|
|
|
327
|
+
if cast_type is not None:
|
|
328
|
+
value = self._coerce_to_type(value, cast_type)
|
|
329
|
+
|
|
299
330
|
return value
|
|
300
331
|
|
|
301
332
|
def set_config_value(self, key: str, value: Any, *, should_set_env_var_if_detected: bool = True) -> None:
|
|
@@ -616,7 +616,12 @@ class LibraryManager:
|
|
|
616
616
|
|
|
617
617
|
# Get git remote and ref if this library is in a git repository
|
|
618
618
|
library_dir = json_path.parent.absolute()
|
|
619
|
-
|
|
619
|
+
try:
|
|
620
|
+
git_remote = get_git_remote(library_dir)
|
|
621
|
+
except GitRemoteError as e:
|
|
622
|
+
logger.debug("Failed to get git remote for %s: %s", library_dir, e)
|
|
623
|
+
git_remote = None
|
|
624
|
+
|
|
620
625
|
try:
|
|
621
626
|
git_ref = get_current_ref(library_dir)
|
|
622
627
|
except GitRefError as e:
|
|
@@ -671,7 +676,7 @@ class LibraryManager:
|
|
|
671
676
|
result_details=details,
|
|
672
677
|
)
|
|
673
678
|
|
|
674
|
-
def _generate_sandbox_library_metadata(
|
|
679
|
+
def _generate_sandbox_library_metadata( # noqa: C901, PLR0915
|
|
675
680
|
self,
|
|
676
681
|
) -> LoadLibraryMetadataFromFileResultSuccess | LoadLibraryMetadataFromFileResultFailure | None:
|
|
677
682
|
"""Generate sandbox library metadata by scanning Python files without importing them.
|
|
@@ -776,7 +781,12 @@ class LibraryManager:
|
|
|
776
781
|
)
|
|
777
782
|
|
|
778
783
|
# Get git remote and ref if the sandbox directory is in a git repository
|
|
779
|
-
|
|
784
|
+
try:
|
|
785
|
+
git_remote = get_git_remote(sandbox_directory)
|
|
786
|
+
except GitRemoteError as e:
|
|
787
|
+
logger.debug("Failed to get git remote for sandbox library %s: %s", sandbox_directory, e)
|
|
788
|
+
git_remote = None
|
|
789
|
+
|
|
780
790
|
try:
|
|
781
791
|
git_ref = get_current_ref(sandbox_library_dir)
|
|
782
792
|
except GitRefError as e:
|
|
@@ -170,7 +170,9 @@ class SyncManager:
|
|
|
170
170
|
self._get_cloud_storage_driver()
|
|
171
171
|
|
|
172
172
|
# Check if file watching is enabled before starting it
|
|
173
|
-
enable_file_watching = self._config_manager.get_config_value(
|
|
173
|
+
enable_file_watching = self._config_manager.get_config_value(
|
|
174
|
+
"enable_workspace_file_watching", default=True, cast_type=bool
|
|
175
|
+
)
|
|
174
176
|
if enable_file_watching:
|
|
175
177
|
# Start file watching after successful sync
|
|
176
178
|
self._start_file_watching()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/api_client/request_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/bootstrap/utils/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/cli/commands/libraries.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/macro_parser/__init__.py
RENAMED
|
File without changes
|
{griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/macro_parser/core.py
RENAMED
|
File without changes
|
{griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/macro_parser/exceptions.py
RENAMED
|
File without changes
|
{griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/macro_parser/formats.py
RENAMED
|
File without changes
|
{griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/macro_parser/matching.py
RENAMED
|
File without changes
|
{griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/macro_parser/parsing.py
RENAMED
|
File without changes
|
{griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/macro_parser/resolution.py
RENAMED
|
File without changes
|
{griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/common/macro_parser/segments.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{griptape_nodes-0.65.2 → griptape_nodes-0.65.4}/src/griptape_nodes/drivers/storage/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|