griptape-nodes-engine 0.84.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- griptape_nodes_engine-0.84.0/PKG-INFO +112 -0
- griptape_nodes_engine-0.84.0/README.md +72 -0
- griptape_nodes_engine-0.84.0/pyproject.toml +169 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/__init__.py +24 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/__main__.py +6 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/api_client/__init__.py +9 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/api_client/client.py +362 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/api_client/request_client.py +334 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/app/.python-version +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/app/__init__.py +5 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/app/app.py +687 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/app/engine_log.py +96 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/app/watch.py +54 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/bootstrap/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/bootstrap/utils/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/bootstrap/utils/python_subprocess_executor.py +177 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/bootstrap/utils/subprocess_websocket_base.py +98 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/bootstrap/utils/subprocess_websocket_listener.py +126 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/bootstrap/utils/subprocess_websocket_sender.py +120 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/bootstrap/workflow_executors/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/bootstrap/workflow_executors/local_session_workflow_executor.py +232 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/bootstrap/workflow_executors/local_workflow_executor.py +299 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/bootstrap/workflow_executors/subprocess_workflow_executor.py +187 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/bootstrap/workflow_executors/utils/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/bootstrap/workflow_executors/utils/subprocess_script.py +62 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/bootstrap/workflow_executors/workflow_executor.py +43 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/bootstrap/workflow_publishers/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/bootstrap/workflow_publishers/local_session_workflow_publisher.py +211 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/bootstrap/workflow_publishers/local_workflow_publisher.py +41 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/bootstrap/workflow_publishers/subprocess_workflow_publisher.py +108 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/bootstrap/workflow_publishers/utils/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/bootstrap/workflow_publishers/utils/subprocess_script.py +93 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/cli/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/cli/commands/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/cli/commands/config.py +74 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/cli/commands/doctor/__init__.py +43 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/cli/commands/doctor/base.py +20 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/cli/commands/doctor/websocket_connection.py +74 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/cli/commands/engine.py +66 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/cli/commands/init.py +695 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/cli/commands/libraries.py +108 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/cli/commands/models.py +549 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/cli/commands/self.py +204 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/cli/main.py +63 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/cli/shared.py +74 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/common/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/common/directed_graph.py +71 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/common/macro_parser/__init__.py +44 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/common/macro_parser/core.py +251 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/common/macro_parser/exceptions.py +126 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/common/macro_parser/formats.py +179 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/common/macro_parser/matching.py +137 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/common/macro_parser/parsing.py +212 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/common/macro_parser/resolution.py +186 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/common/macro_parser/segments.py +45 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/common/node_executor.py +3837 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/common/project_templates/__init__.py +49 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/common/project_templates/default_project_template.py +168 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/common/project_templates/defaults/README.md +36 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/common/project_templates/directory.py +67 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/common/project_templates/loader.py +396 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/common/project_templates/project.py +384 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/common/project_templates/situation.py +143 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/common/project_templates/validation.py +142 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/drivers/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/drivers/image_metadata/__init__.py +21 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/drivers/image_metadata/base_image_metadata_driver.py +63 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/drivers/image_metadata/exif_metadata_driver.py +218 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/drivers/image_metadata/image_metadata_driver_registry.py +55 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/drivers/image_metadata/png_metadata_driver.py +71 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/drivers/storage/__init__.py +8 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/drivers/storage/base_storage_driver.py +205 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/drivers/storage/griptape_cloud_storage_driver.py +627 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/drivers/storage/local_storage_driver.py +225 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/drivers/storage/storage_backend.py +10 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/drivers/thread_storage/__init__.py +15 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/drivers/thread_storage/base_thread_storage_driver.py +106 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/drivers/thread_storage/griptape_cloud_thread_storage_driver.py +213 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/drivers/thread_storage/local_thread_storage_driver.py +138 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/drivers/thread_storage/thread_storage_backend.py +10 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/base_iterative_nodes.py +1128 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/connections.py +455 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/core_types.py +3102 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/flow.py +145 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/node_groups/__init__.py +17 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/node_groups/base_iterative_node_group.py +252 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/node_groups/base_node_group.py +118 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/node_groups/base_while_node_group.py +176 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/node_groups/subflow_node_group.py +1043 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/node_types.py +2095 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_components/README.md +414 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_components/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_components/api_key_provider_parameter.py +200 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_components/artifact_url/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_components/artifact_url/public_artifact_url_parameter.py +141 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_components/execution_status_component.py +161 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_components/huggingface/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_model_parameter.py +170 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_repo_file_parameter.py +112 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_repo_parameter.py +102 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_repo_variant_parameter.py +152 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_components/huggingface/huggingface_utils.py +136 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_components/log_parameter.py +140 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_components/progress_bar_component.py +57 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_components/project_file_parameter.py +235 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_components/seed_parameter.py +58 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_components/subflow_execution_component.py +310 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_types/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_types/parameter_audio.py +267 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_types/parameter_bool.py +230 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_types/parameter_button.py +458 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_types/parameter_dict.py +157 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_types/parameter_float.py +188 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_types/parameter_image.py +268 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_types/parameter_int.py +192 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_types/parameter_json.py +274 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_types/parameter_number.py +393 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_types/parameter_range.py +399 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_types/parameter_string.py +276 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_types/parameter_three_d.py +237 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/exe_types/param_types/parameter_video.py +267 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/files/__init__.py +19 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/files/base_file_driver.py +89 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/files/derivation.py +163 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/files/drivers/__init__.py +20 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/files/drivers/base64_file_driver.py +118 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/files/drivers/data_uri_file_driver.py +89 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/files/drivers/griptape_cloud_file_driver.py +193 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/files/drivers/http_file_driver.py +87 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/files/drivers/local_file_driver.py +158 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/files/drivers/static_server_file_driver.py +138 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/files/file.py +828 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/files/file_driver.py +20 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/files/file_driver_registry.py +66 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/files/path_utils.py +639 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/files/project_file.py +171 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/machines/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/machines/control_flow.py +349 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/machines/dag_builder.py +450 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/machines/fsm.py +88 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/machines/heuristics/__init__.py +13 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/machines/heuristics/base_heuristic.py +48 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/machines/heuristics/distance_to_node.py +92 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/machines/heuristics/has_connection_from_previous.py +61 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/machines/heuristics/top_left_to_bottom_right.py +78 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/machines/node_priority_queue.py +161 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/machines/parallel_resolution.py +771 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/mcp_server/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/node_library/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/node_library/advanced_node_library.py +51 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/node_library/library_registry.py +518 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/node_library/workflow_registry.py +365 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/py.typed +0 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/agent_events.py +392 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/app_events.py +459 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/arbitrary_python_events.py +53 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/artifact_events.py +379 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/base_events.py +503 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/config_events.py +226 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/connection_events.py +147 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/context_events.py +91 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/event_converter.py +180 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/execution_events.py +513 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/flow_events.py +582 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/generate_request_payload_schemas.py +30 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/library_events.py +1123 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/logger_events.py +26 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/mcp_events.py +368 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/model_events.py +296 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/node_events.py +1106 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/object_events.py +83 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/os_events.py +736 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/parameter_events.py +798 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/payload_registry.py +60 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/project_events.py +627 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/resource_events.py +291 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/secrets_events.py +137 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/static_file_events.py +194 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/sync_events.py +60 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/validation_events.py +88 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/variable_events.py +364 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/worker_events.py +134 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/events/workflow_events.py +1123 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/file_metadata/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/file_metadata/sidecar_metadata.py +141 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/file_metadata/workflow_metadata.py +231 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/griptape_nodes.py +516 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/agent_manager.py +621 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/arbitrary_code_exec_manager.py +71 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/artifact_manager.py +1477 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/artifact_providers/__init__.py +29 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/artifact_providers/artifact_schema_models.py +80 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/artifact_providers/base_artifact_preview_generator.py +134 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/artifact_providers/base_artifact_provider.py +245 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/artifact_providers/base_generator_parameters.py +96 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/artifact_providers/image/__init__.py +9 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/artifact_providers/image/image_artifact_provider.py +179 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/artifact_providers/image/preview_generators/__init__.py +13 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/artifact_providers/image/preview_generators/pil_rounded_preview_generator.py +236 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/artifact_providers/image/preview_generators/pil_thumbnail_generator.py +155 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/artifact_providers/provider_registry.py +189 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/artifact_providers/utils.py +5 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/artifact_providers/video/__init__.py +9 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/artifact_providers/video/preview_generators/__init__.py +9 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/artifact_providers/video/preview_generators/ffmpeg_preview_generator.py +181 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/artifact_providers/video/video_artifact_provider.py +181 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/config_manager.py +857 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/context_manager.py +672 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/engine_identity_manager.py +297 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/event_manager.py +697 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/__init__.py +65 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/advanced_library_load_failure_problem.py +33 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/after_library_callback_problem.py +32 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/before_library_callback_problem.py +32 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/create_config_category_problem.py +32 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/dependency_installation_failed_problem.py +32 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/deprecated_node_warning_problem.py +83 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/duplicate_library_problem.py +28 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/duplicate_node_registration_problem.py +44 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/duplicate_widget_registration_problem.py +44 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/engine_version_error_problem.py +28 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/incompatible_requirements_problem.py +34 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/insufficient_disk_space_problem.py +33 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/invalid_version_string_problem.py +32 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_engine_version_too_new_problem.py +45 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_json_decode_problem.py +28 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_load_exception_problem.py +32 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_not_found_problem.py +30 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_problem.py +20 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_schema_exception_problem.py +32 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_schema_validation_problem.py +38 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/modified_parameters_set_deprecation_warning_problem.py +44 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/modified_parameters_set_removed_problem.py +44 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/node_class_not_base_node_problem.py +40 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/node_class_not_found_problem.py +38 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/node_module_import_problem.py +53 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/old_xdg_location_warning_problem.py +43 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/sandbox_directory_missing_problem.py +28 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/ui_options_field_modified_incompatible_problem.py +44 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/ui_options_field_modified_warning_problem.py +35 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/update_config_category_problem.py +32 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/libraries/venv_creation_failed_problem.py +32 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/__init__.py +75 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/deprecated_node_in_workflow_problem.py +83 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/invalid_dependency_version_string_problem.py +38 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/invalid_library_version_string_problem.py +38 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/invalid_metadata_schema_problem.py +31 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/invalid_metadata_section_count_problem.py +31 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/invalid_toml_format_problem.py +30 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/library_not_registered_problem.py +35 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/library_version_below_required_problem.py +41 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/library_version_large_difference_problem.py +41 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/library_version_major_mismatch_problem.py +41 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/library_version_minor_difference_problem.py +41 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/missing_creation_date_problem.py +30 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/missing_last_modified_date_problem.py +30 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/missing_toml_section_problem.py +30 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/node_type_not_found_problem.py +51 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_not_found_problem.py +27 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_problem.py +20 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_schema_version_problem.py +39 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/flow_manager.py +4594 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/library_manager.py +4851 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/mcp_manager.py +374 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/model_manager.py +1201 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/node_manager.py +4796 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/object_manager.py +267 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/operation_manager.py +478 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/os_manager.py +3414 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/project_manager.py +1685 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/resource_components/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/resource_components/capability_field.py +41 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/resource_components/comparator.py +18 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/resource_components/resource_instance.py +236 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/resource_components/resource_type.py +79 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/resource_manager.py +306 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/resource_types/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/resource_types/compute_resource.py +82 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/resource_types/cpu_resource.py +108 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/resource_types/os_resource.py +104 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/secrets_manager.py +180 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/session_manager.py +366 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/settings.py +314 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/static_files_manager.py +568 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/sync_manager.py +510 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/user_manager.py +120 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/variable_manager.py +529 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/version_compatibility_manager.py +397 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/worker_manager.py +515 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/managers/workflow_manager.py +5807 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/publishing/__init__.py +5 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/publishing/download_models_script.py +66 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/publishing/workflow_packager.py +661 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/retained_mode.py +1902 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/utils/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/utils/name_generator.py +162 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/retained_mode/variable_types.py +18 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/servers/__init__.py +21 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/servers/mcp.py +253 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/servers/static.py +328 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/traits/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/traits/add_param_button.py +21 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/traits/button.py +410 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/traits/clamp.py +79 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/traits/color_picker.py +66 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/traits/compare.py +20 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/traits/compare_images.py +41 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/traits/file_system_picker.py +145 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/traits/minmax.py +43 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/traits/multi_options.py +216 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/traits/numbers_selector.py +77 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/traits/options.py +133 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/traits/slider.py +37 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/traits/trait_registry.py +35 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/traits/traits.json +8 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/traits/widget.py +30 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/utils/__init__.py +13 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/utils/artifact_normalization.py +245 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/utils/ast_utils.py +29 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/utils/async_utils.py +156 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/utils/dict_utils.py +265 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/utils/file_utils.py +159 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/utils/git_utils.py +1264 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/utils/http_file_patch.py +613 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/utils/http_utils.py +90 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/utils/huggingface_utils.py +136 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/utils/image_preview.py +160 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/utils/library_utils.py +124 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/utils/metaclasses.py +10 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/utils/string_utils.py +35 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/utils/url_utils.py +113 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/utils/uv_utils.py +18 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/utils/version_utils.py +88 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/version_compatibility/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/version_compatibility/versions/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/version_compatibility/versions/general/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/version_compatibility/versions/general/incompatible_engine_version_check.py +62 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/version_compatibility/versions/v0_39_0/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/version_compatibility/versions/v0_39_0/modified_parameters_set_removal.py +86 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/version_compatibility/versions/v0_63_8/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/version_compatibility/versions/v0_63_8/deprecated_nodegroup_parameters.py +105 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/version_compatibility/versions/v0_65_4/__init__.py +5 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/version_compatibility/versions/v0_65_4/run_in_parallel_to_run_in_order.py +85 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/version_compatibility/versions/v0_65_5/__init__.py +5 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/version_compatibility/versions/v0_65_5/flux_2_removed_parameters.py +90 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/version_compatibility/versions/v0_7_0/__init__.py +1 -0
- griptape_nodes_engine-0.84.0/src/griptape_nodes/version_compatibility/versions/v0_7_0/local_executor_argument_addition.py +52 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
|
+
Name: griptape-nodes-engine
|
|
3
|
+
Version: 0.84.0
|
|
4
|
+
Summary: Add your description here
|
|
5
|
+
Requires-Dist: griptape>=1.10.0
|
|
6
|
+
Requires-Dist: pydantic>=2.10.6
|
|
7
|
+
Requires-Dist: python-dotenv>=1.0.1
|
|
8
|
+
Requires-Dist: xdg-base-dirs>=6.0.2
|
|
9
|
+
Requires-Dist: httpx>=0.28.0,<1.0.0
|
|
10
|
+
Requires-Dist: websockets>=15.0.1,<17.0.0
|
|
11
|
+
Requires-Dist: tomlkit>=0.13.2
|
|
12
|
+
Requires-Dist: uv>=0.6.16
|
|
13
|
+
Requires-Dist: fastapi>=0.115.12
|
|
14
|
+
Requires-Dist: uvicorn>=0.34.2
|
|
15
|
+
Requires-Dist: packaging>=25.0
|
|
16
|
+
Requires-Dist: python-multipart>=0.0.20
|
|
17
|
+
Requires-Dist: json-repair>=0.46.1
|
|
18
|
+
Requires-Dist: mcp[ws]>=1.10.1
|
|
19
|
+
Requires-Dist: binaryornot>=0.4.4
|
|
20
|
+
Requires-Dist: pillow>=11.3.0
|
|
21
|
+
Requires-Dist: static-ffmpeg>=3.0
|
|
22
|
+
Requires-Dist: watchfiles>=1.1.0
|
|
23
|
+
Requires-Dist: typer>=0.15.0
|
|
24
|
+
Requires-Dist: huggingface-hub>=1.9.0
|
|
25
|
+
Requires-Dist: rich>=14.1.0
|
|
26
|
+
Requires-Dist: semver>=3.0.4
|
|
27
|
+
Requires-Dist: anyio>=4.0
|
|
28
|
+
Requires-Dist: ruamel-yaml>=0.18.15
|
|
29
|
+
Requires-Dist: asyncio-thread-runner>=1.0
|
|
30
|
+
Requires-Dist: portalocker>=2.10.0
|
|
31
|
+
Requires-Dist: pygit2>=1.19.0
|
|
32
|
+
Requires-Dist: send2trash>=2.1.0
|
|
33
|
+
Requires-Dist: tenacity>=9.0.0
|
|
34
|
+
Requires-Dist: truststore>=0.10.1
|
|
35
|
+
Requires-Dist: cattrs>=26.1.0
|
|
36
|
+
Requires-Dist: austin-dist>=3.7.0 ; extra == 'profiling'
|
|
37
|
+
Requires-Python: >=3.12.0, <3.13
|
|
38
|
+
Provides-Extra: profiling
|
|
39
|
+
Description-Content-Type: text/markdown
|
|
40
|
+
|
|
41
|
+
<picture>
|
|
42
|
+
<source media="(prefers-color-scheme: dark)" srcset="docs/assets/img/griptape_nodes_from_foundry_white.svg">
|
|
43
|
+
<img alt="Griptape Nodes" src="docs/assets/img/griptape_nodes_from_foundry_black.svg" width="600">
|
|
44
|
+
</picture>
|
|
45
|
+
|
|
46
|
+
Griptape Nodes is a powerful, visual, node-based workflow builder designed for professional artists and creators. Build and execute complex AI workflows through the cloud-based [Griptape Nodes IDE](https://app.nodes.griptape.ai/) - an intuitive drag-and-drop interface.
|
|
47
|
+
|
|
48
|
+
This repository contains the Griptape Nodes Engine - the local component that runs securely on your machine, providing a performant foundation for workflow execution.
|
|
49
|
+
|
|
50
|
+
[](https://vimeo.com/1064451891)
|
|
51
|
+
*(Clicking the image opens the video on Vimeo)*
|
|
52
|
+
|
|
53
|
+
**✨ Key Features:**
|
|
54
|
+
|
|
55
|
+
- **🎯 Visual Workflow Editor:** Design and connect nodes representing different AI tasks, tools, and logic through the cloud-based IDE
|
|
56
|
+
- **🏠 Local Engine:** Run workflows securely on your own machine or infrastructure
|
|
57
|
+
- **🐍 Portable Python Workflows:** Workflows are saved as self-executable Python files for portability, debugability, and learning
|
|
58
|
+
- **🌐 Multi-Device Access:** Client/server architecture lets you access your workflows from any device
|
|
59
|
+
- **🧩 Extensible:** Build your own custom nodes and libraries to extend functionality
|
|
60
|
+
- **⚡ Scriptable Interface:** Interact with and control flows programmatically
|
|
61
|
+
|
|
62
|
+
**🔗 Learn More:**
|
|
63
|
+
|
|
64
|
+
- **📚 Full Documentation:** [docs.griptapenodes.com](https://docs.griptapenodes.com)
|
|
65
|
+
- **⚙️ Installation:** [docs.griptapenodes.com/en/stable/installation/](https://docs.griptapenodes.com/en/latest/installation/)
|
|
66
|
+
- **🔧 Engine Configuration:** [docs.griptapenodes.com/en/stable/configuration/](https://docs.griptapenodes.com/en/latest/configuration/)
|
|
67
|
+
- **📋 Migration Guide:** [MIGRATION.md](MIGRATION.md) - Guide for migrating from deprecated nodes
|
|
68
|
+
|
|
69
|
+
**🧩 Extending Griptape Nodes:**
|
|
70
|
+
|
|
71
|
+
Want to create custom nodes for your specific workflow needs? Griptape Nodes is designed to be extensible through custom libraries:
|
|
72
|
+
|
|
73
|
+
- **📦 Custom Library Template:** Get started with the [Griptape Nodes Library Template](https://github.com/griptape-ai/griptape-nodes-library-template)
|
|
74
|
+
- **🛠️ Build Custom Nodes:** Create specialized nodes tailored to your artistic and creative workflows
|
|
75
|
+
|
|
76
|
+
______________________________________________________________________
|
|
77
|
+
|
|
78
|
+
## 🚀 Quick Installation
|
|
79
|
+
|
|
80
|
+
### Option 1: Griptape Nodes Desktop (Recommended)
|
|
81
|
+
|
|
82
|
+
Download [Griptape Nodes Desktop](https://www.griptapenodes.com/griptape-nodes-desktop) — a bundled app that includes both the engine and the editor. No additional setup required.
|
|
83
|
+
|
|
84
|
+
### Option 2: Manual Engine Install
|
|
85
|
+
|
|
86
|
+
For users who prefer to install the engine directly:
|
|
87
|
+
|
|
88
|
+
1. **🔐 Login:** Visit [Griptape Nodes](https://app.nodes.griptape.ai/) and log in or sign up using your Griptape Cloud credentials.
|
|
89
|
+
|
|
90
|
+
1. **💾 Install Engine:** Install the engine using [uv](https://docs.astral.sh/uv/):
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
uv tool install griptape-nodes
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
1. **⚙️ Initial Configuration (Automatic on First Run):**
|
|
97
|
+
|
|
98
|
+
- The first time you run the engine command (`griptape-nodes` or `gtn`), it will guide you through the initial setup:
|
|
99
|
+
- **📁 Workspace Directory:** You'll be prompted to choose a directory where Griptape Nodes will store configurations, project files, secrets (`.env`), and generated assets. You can accept the default (`<current_directory>/GriptapeNodes`) or specify a custom path.
|
|
100
|
+
- **🔑 Griptape Cloud API Key:** Return to the [Griptape Nodes setup page](https://app.nodes.griptape.ai/) in your browser, click "Generate API Key", copy the key, and paste it when prompted in the terminal.
|
|
101
|
+
|
|
102
|
+
1. **🚀 Start the Engine:** After configuration, start the engine by running:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
griptape-nodes
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
*(or the shorter alias `gtn`)*
|
|
109
|
+
|
|
110
|
+
1. **🔗 Connect Workflow Editor:** Refresh the Griptape Nodes Workflow Editor page in your browser. It should now connect to your running engine.
|
|
111
|
+
|
|
112
|
+
You're now ready to start building flows! 🎉 For more detailed setup options and troubleshooting, see the full [Documentation](https://docs.griptapenodes.com/).
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
<picture>
|
|
2
|
+
<source media="(prefers-color-scheme: dark)" srcset="docs/assets/img/griptape_nodes_from_foundry_white.svg">
|
|
3
|
+
<img alt="Griptape Nodes" src="docs/assets/img/griptape_nodes_from_foundry_black.svg" width="600">
|
|
4
|
+
</picture>
|
|
5
|
+
|
|
6
|
+
Griptape Nodes is a powerful, visual, node-based workflow builder designed for professional artists and creators. Build and execute complex AI workflows through the cloud-based [Griptape Nodes IDE](https://app.nodes.griptape.ai/) - an intuitive drag-and-drop interface.
|
|
7
|
+
|
|
8
|
+
This repository contains the Griptape Nodes Engine - the local component that runs securely on your machine, providing a performant foundation for workflow execution.
|
|
9
|
+
|
|
10
|
+
[](https://vimeo.com/1064451891)
|
|
11
|
+
*(Clicking the image opens the video on Vimeo)*
|
|
12
|
+
|
|
13
|
+
**✨ Key Features:**
|
|
14
|
+
|
|
15
|
+
- **🎯 Visual Workflow Editor:** Design and connect nodes representing different AI tasks, tools, and logic through the cloud-based IDE
|
|
16
|
+
- **🏠 Local Engine:** Run workflows securely on your own machine or infrastructure
|
|
17
|
+
- **🐍 Portable Python Workflows:** Workflows are saved as self-executable Python files for portability, debugability, and learning
|
|
18
|
+
- **🌐 Multi-Device Access:** Client/server architecture lets you access your workflows from any device
|
|
19
|
+
- **🧩 Extensible:** Build your own custom nodes and libraries to extend functionality
|
|
20
|
+
- **⚡ Scriptable Interface:** Interact with and control flows programmatically
|
|
21
|
+
|
|
22
|
+
**🔗 Learn More:**
|
|
23
|
+
|
|
24
|
+
- **📚 Full Documentation:** [docs.griptapenodes.com](https://docs.griptapenodes.com)
|
|
25
|
+
- **⚙️ Installation:** [docs.griptapenodes.com/en/stable/installation/](https://docs.griptapenodes.com/en/latest/installation/)
|
|
26
|
+
- **🔧 Engine Configuration:** [docs.griptapenodes.com/en/stable/configuration/](https://docs.griptapenodes.com/en/latest/configuration/)
|
|
27
|
+
- **📋 Migration Guide:** [MIGRATION.md](MIGRATION.md) - Guide for migrating from deprecated nodes
|
|
28
|
+
|
|
29
|
+
**🧩 Extending Griptape Nodes:**
|
|
30
|
+
|
|
31
|
+
Want to create custom nodes for your specific workflow needs? Griptape Nodes is designed to be extensible through custom libraries:
|
|
32
|
+
|
|
33
|
+
- **📦 Custom Library Template:** Get started with the [Griptape Nodes Library Template](https://github.com/griptape-ai/griptape-nodes-library-template)
|
|
34
|
+
- **🛠️ Build Custom Nodes:** Create specialized nodes tailored to your artistic and creative workflows
|
|
35
|
+
|
|
36
|
+
______________________________________________________________________
|
|
37
|
+
|
|
38
|
+
## 🚀 Quick Installation
|
|
39
|
+
|
|
40
|
+
### Option 1: Griptape Nodes Desktop (Recommended)
|
|
41
|
+
|
|
42
|
+
Download [Griptape Nodes Desktop](https://www.griptapenodes.com/griptape-nodes-desktop) — a bundled app that includes both the engine and the editor. No additional setup required.
|
|
43
|
+
|
|
44
|
+
### Option 2: Manual Engine Install
|
|
45
|
+
|
|
46
|
+
For users who prefer to install the engine directly:
|
|
47
|
+
|
|
48
|
+
1. **🔐 Login:** Visit [Griptape Nodes](https://app.nodes.griptape.ai/) and log in or sign up using your Griptape Cloud credentials.
|
|
49
|
+
|
|
50
|
+
1. **💾 Install Engine:** Install the engine using [uv](https://docs.astral.sh/uv/):
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
uv tool install griptape-nodes
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
1. **⚙️ Initial Configuration (Automatic on First Run):**
|
|
57
|
+
|
|
58
|
+
- The first time you run the engine command (`griptape-nodes` or `gtn`), it will guide you through the initial setup:
|
|
59
|
+
- **📁 Workspace Directory:** You'll be prompted to choose a directory where Griptape Nodes will store configurations, project files, secrets (`.env`), and generated assets. You can accept the default (`<current_directory>/GriptapeNodes`) or specify a custom path.
|
|
60
|
+
- **🔑 Griptape Cloud API Key:** Return to the [Griptape Nodes setup page](https://app.nodes.griptape.ai/) in your browser, click "Generate API Key", copy the key, and paste it when prompted in the terminal.
|
|
61
|
+
|
|
62
|
+
1. **🚀 Start the Engine:** After configuration, start the engine by running:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
griptape-nodes
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
*(or the shorter alias `gtn`)*
|
|
69
|
+
|
|
70
|
+
1. **🔗 Connect Workflow Editor:** Refresh the Griptape Nodes Workflow Editor page in your browser. It should now connect to your running engine.
|
|
71
|
+
|
|
72
|
+
You're now ready to start building flows! 🎉 For more detailed setup options and troubleshooting, see the full [Documentation](https://docs.griptapenodes.com/).
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "griptape-nodes-engine"
|
|
3
|
+
version = "0.84.0"
|
|
4
|
+
description = "Add your description here"
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.12.0, <3.13"
|
|
7
|
+
dependencies = [
|
|
8
|
+
"griptape>=1.10.0",
|
|
9
|
+
"pydantic>=2.10.6",
|
|
10
|
+
"python-dotenv>=1.0.1",
|
|
11
|
+
"xdg-base-dirs>=6.0.2",
|
|
12
|
+
"httpx>=0.28.0,<1.0.0",
|
|
13
|
+
"websockets>=15.0.1,<17.0.0",
|
|
14
|
+
"tomlkit>=0.13.2",
|
|
15
|
+
# TODO: https://github.com/griptape-ai/griptape-nodes/issues/833
|
|
16
|
+
"uv>=0.6.16",
|
|
17
|
+
"fastapi>=0.115.12",
|
|
18
|
+
"uvicorn>=0.34.2",
|
|
19
|
+
"packaging>=25.0",
|
|
20
|
+
"python-multipart>=0.0.20",
|
|
21
|
+
"json-repair>=0.46.1",
|
|
22
|
+
"mcp[ws]>=1.10.1",
|
|
23
|
+
"binaryornot>=0.4.4",
|
|
24
|
+
"pillow>=11.3.0",
|
|
25
|
+
"static-ffmpeg>=3.0",
|
|
26
|
+
"watchfiles>=1.1.0",
|
|
27
|
+
"typer>=0.15.0",
|
|
28
|
+
"huggingface-hub>=1.9.0",
|
|
29
|
+
"rich>=14.1.0",
|
|
30
|
+
"semver>=3.0.4",
|
|
31
|
+
"anyio>=4.0",
|
|
32
|
+
"ruamel.yaml>=0.18.15",
|
|
33
|
+
"asyncio-thread-runner>=1.0",
|
|
34
|
+
"portalocker>=2.10.0",
|
|
35
|
+
"pygit2>=1.19.0",
|
|
36
|
+
"send2trash>=2.1.0",
|
|
37
|
+
"tenacity>=9.0.0",
|
|
38
|
+
"truststore>=0.10.1",
|
|
39
|
+
"cattrs>=26.1.0",
|
|
40
|
+
]
|
|
41
|
+
|
|
42
|
+
[project.optional-dependencies]
|
|
43
|
+
profiling = ["austin-dist>=3.7.0"]
|
|
44
|
+
|
|
45
|
+
[dependency-groups]
|
|
46
|
+
dev = [
|
|
47
|
+
"griptape-cloud-client",
|
|
48
|
+
"mdformat>=0.7.22",
|
|
49
|
+
"mdformat-gfm>=0.4.1",
|
|
50
|
+
"mdformat-frontmatter>=2.0.8",
|
|
51
|
+
"mdformat-footnote>=0.1.1",
|
|
52
|
+
"mdformat-mkdocs>=4.1.2",
|
|
53
|
+
"pyright>=1.1.396",
|
|
54
|
+
"ruff>=0.11.0",
|
|
55
|
+
"typos>=1.30.2",
|
|
56
|
+
]
|
|
57
|
+
docs = [
|
|
58
|
+
"mkdocs-material>=9.6.9",
|
|
59
|
+
"mkdocs>=1.5.2",
|
|
60
|
+
"mkdocstrings[python]>=0.29.1",
|
|
61
|
+
"mkdocs-mermaid2-plugin>=1.2.2",
|
|
62
|
+
"pymdown-extensions>=10.17",
|
|
63
|
+
]
|
|
64
|
+
test = [
|
|
65
|
+
"pytest>=8.3.5",
|
|
66
|
+
"pytest-asyncio>=1.1.0",
|
|
67
|
+
"pytest-mock>=3.14.0",
|
|
68
|
+
"pytest-xdist>=3.6.1",
|
|
69
|
+
"pytest-cov>=6.0.0",
|
|
70
|
+
"coverage>=7.0.0",
|
|
71
|
+
]
|
|
72
|
+
|
|
73
|
+
[project.scripts]
|
|
74
|
+
# TODO: remove these entries when the CLI moves to the griptape-nodes-app repo. https://github.com/griptape-ai/griptape-nodes-app/issues/7
|
|
75
|
+
griptape-nodes = "griptape_nodes:main"
|
|
76
|
+
gtn = "griptape_nodes:main"
|
|
77
|
+
|
|
78
|
+
[build-system]
|
|
79
|
+
requires = ["uv_build>=0.7.2,<0.12"]
|
|
80
|
+
build-backend = "uv_build"
|
|
81
|
+
|
|
82
|
+
[tool.uv.build-backend]
|
|
83
|
+
module-name = "griptape_nodes"
|
|
84
|
+
|
|
85
|
+
[tool.uv.sources]
|
|
86
|
+
griptape-cloud-client = { git = "https://github.com/griptape-ai/griptape-cloud-python-client", rev = "main" }
|
|
87
|
+
|
|
88
|
+
[tool.pytest.ini_options]
|
|
89
|
+
asyncio_mode = "strict"
|
|
90
|
+
pythonpath = ["libraries/griptape_nodes_library"]
|
|
91
|
+
|
|
92
|
+
[tool.ruff]
|
|
93
|
+
line-length = 120
|
|
94
|
+
extend-exclude = ["libraries/**/templates/*.py"]
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
[tool.ruff.lint]
|
|
98
|
+
select = ["ALL"]
|
|
99
|
+
ignore = [
|
|
100
|
+
"TD002", # Intentional
|
|
101
|
+
"FIX002", # Intentional
|
|
102
|
+
"D101", # Intentional
|
|
103
|
+
"D102", # Intentional
|
|
104
|
+
"D107", # Intentional
|
|
105
|
+
"ANN002", # Intentional
|
|
106
|
+
"ANN003", # Intentional
|
|
107
|
+
"ANN401", # Intentional
|
|
108
|
+
"COM812", # Intentional
|
|
109
|
+
"E501", # TODO: https://github.com/griptape-ai/griptape-nodes/issues/834
|
|
110
|
+
"D100", # TODO: https://github.com/griptape-ai/griptape-nodes/issues/835
|
|
111
|
+
"BLE001", # TODO: https://github.com/griptape-ai/griptape-nodes/issues/839
|
|
112
|
+
"SLF001", # TODO :https://github.com/griptape-ai/griptape-nodes/issues/838
|
|
113
|
+
"SIM108", # Intentional
|
|
114
|
+
"SIM110", # Intentional
|
|
115
|
+
"D105", # Intentional
|
|
116
|
+
"N802", # TODO: https://github.com/griptape-ai/griptape-nodes/issues/840
|
|
117
|
+
"TRY400", # Intentional
|
|
118
|
+
"FBT003", # Intentional
|
|
119
|
+
"RET504", # Intentional
|
|
120
|
+
"PLC0415", # Intentional
|
|
121
|
+
]
|
|
122
|
+
|
|
123
|
+
[tool.ruff.lint.flake8-tidy-imports.banned-api]
|
|
124
|
+
"nodes.griptape_nodes_library".msg = "Import from griptape_nodes_library instead of nodes.griptape_nodes_library"
|
|
125
|
+
"libraries.griptape_nodes_library".msg = "Import from griptape_nodes_library instead of libraries.griptape_nodes_library"
|
|
126
|
+
"libraries.griptape_nodes_advanced_media_library".msg = "Import from griptape_nodes_advanced_media_library instead of libraries.griptape_nodes_advanced_media_library"
|
|
127
|
+
"libraries.griptape_cloud".msg = "Import from griptape_cloud instead of libraries.griptape_cloud"
|
|
128
|
+
|
|
129
|
+
[tool.ruff.lint.per-file-ignores]
|
|
130
|
+
"tests/*" = ["S101", "D104"]
|
|
131
|
+
"libraries/**/tests/**" = ["S101", "D104", "INP001"]
|
|
132
|
+
"src/griptape_nodes/retained_mode/events/*" = ["TC001"]
|
|
133
|
+
|
|
134
|
+
[tool.ruff.lint.flake8-type-checking]
|
|
135
|
+
runtime-evaluated-base-classes = ["pydantic.BaseModel"]
|
|
136
|
+
|
|
137
|
+
[tool.ruff.lint.flake8-annotations]
|
|
138
|
+
mypy-init-return = true
|
|
139
|
+
|
|
140
|
+
[tool.ruff.lint.pydocstyle]
|
|
141
|
+
convention = "google"
|
|
142
|
+
|
|
143
|
+
[tool.typos]
|
|
144
|
+
files.extend-exclude = ["libraries/**/templates/*"]
|
|
145
|
+
default.extend-ignore-re = [
|
|
146
|
+
# Ignore any line that ends with this comment:
|
|
147
|
+
"(?Rm)^.*(#|//)\\s*spellchecker:disable-line$",
|
|
148
|
+
# Or: ignore the *next* line after this comment:
|
|
149
|
+
"(?m)(#|//)\\s*spellchecker:ignore-next-line\\n.*",
|
|
150
|
+
]
|
|
151
|
+
|
|
152
|
+
[tool.typos.default.extend-words]
|
|
153
|
+
# HALD CLUT is a Color Lookup Table technique named after its inventor
|
|
154
|
+
HALD = "HALD"
|
|
155
|
+
|
|
156
|
+
[tool.pyright]
|
|
157
|
+
venvPath = "."
|
|
158
|
+
venv = ".venv"
|
|
159
|
+
include = ["."]
|
|
160
|
+
exclude = [
|
|
161
|
+
"libraries/**/templates/*",
|
|
162
|
+
".venv",
|
|
163
|
+
"GriptapeNodes",
|
|
164
|
+
"**/node_modules",
|
|
165
|
+
"**/__pycache__",
|
|
166
|
+
"**/.*",
|
|
167
|
+
]
|
|
168
|
+
pythonVersion = "3.12"
|
|
169
|
+
reportIncompatibleMethodOverride = false
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"""Griptape Nodes package."""
|
|
2
|
+
|
|
3
|
+
import sys
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
|
|
6
|
+
from rich.console import Console
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def main() -> None:
|
|
10
|
+
"""Main entry point for the Griptape Nodes CLI."""
|
|
11
|
+
# Hack to make paths "just work". # noqa: FIX004
|
|
12
|
+
# Without this, packages like `nodes` don't properly import.
|
|
13
|
+
# Long term solution could be to make `nodes` a proper src-layout package
|
|
14
|
+
# but current engine relies on importing files rather than packages.
|
|
15
|
+
sys.path.append(str(Path.cwd()))
|
|
16
|
+
|
|
17
|
+
console = Console()
|
|
18
|
+
with console.status("[bold green]Loading Griptape Nodes...", spinner="dots"):
|
|
19
|
+
from griptape_nodes.cli.main import app
|
|
20
|
+
|
|
21
|
+
app()
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
__all__ = ["main"]
|