griptape-nodes 0.65.6__py3-none-any.whl → 0.66.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. griptape_nodes/common/node_executor.py +352 -27
  2. griptape_nodes/drivers/storage/base_storage_driver.py +12 -3
  3. griptape_nodes/drivers/storage/griptape_cloud_storage_driver.py +18 -2
  4. griptape_nodes/drivers/storage/local_storage_driver.py +42 -5
  5. griptape_nodes/exe_types/base_iterative_nodes.py +0 -1
  6. griptape_nodes/exe_types/connections.py +42 -0
  7. griptape_nodes/exe_types/core_types.py +2 -2
  8. griptape_nodes/exe_types/node_groups/__init__.py +2 -1
  9. griptape_nodes/exe_types/node_groups/base_iterative_node_group.py +177 -0
  10. griptape_nodes/exe_types/node_groups/base_node_group.py +1 -0
  11. griptape_nodes/exe_types/node_groups/subflow_node_group.py +35 -2
  12. griptape_nodes/exe_types/param_types/parameter_audio.py +1 -1
  13. griptape_nodes/exe_types/param_types/parameter_bool.py +1 -1
  14. griptape_nodes/exe_types/param_types/parameter_button.py +1 -1
  15. griptape_nodes/exe_types/param_types/parameter_float.py +1 -1
  16. griptape_nodes/exe_types/param_types/parameter_image.py +1 -1
  17. griptape_nodes/exe_types/param_types/parameter_int.py +1 -1
  18. griptape_nodes/exe_types/param_types/parameter_number.py +1 -1
  19. griptape_nodes/exe_types/param_types/parameter_string.py +1 -1
  20. griptape_nodes/exe_types/param_types/parameter_three_d.py +1 -1
  21. griptape_nodes/exe_types/param_types/parameter_video.py +1 -1
  22. griptape_nodes/machines/control_flow.py +5 -4
  23. griptape_nodes/machines/dag_builder.py +121 -55
  24. griptape_nodes/machines/fsm.py +10 -0
  25. griptape_nodes/machines/parallel_resolution.py +39 -38
  26. griptape_nodes/machines/sequential_resolution.py +29 -3
  27. griptape_nodes/node_library/library_registry.py +41 -2
  28. griptape_nodes/retained_mode/events/library_events.py +147 -8
  29. griptape_nodes/retained_mode/events/os_events.py +12 -4
  30. griptape_nodes/retained_mode/managers/fitness_problems/libraries/__init__.py +2 -0
  31. griptape_nodes/retained_mode/managers/fitness_problems/libraries/incompatible_requirements_problem.py +34 -0
  32. griptape_nodes/retained_mode/managers/flow_manager.py +133 -20
  33. griptape_nodes/retained_mode/managers/library_manager.py +1324 -564
  34. griptape_nodes/retained_mode/managers/node_manager.py +9 -3
  35. griptape_nodes/retained_mode/managers/os_manager.py +429 -65
  36. griptape_nodes/retained_mode/managers/resource_types/compute_resource.py +82 -0
  37. griptape_nodes/retained_mode/managers/resource_types/os_resource.py +17 -0
  38. griptape_nodes/retained_mode/managers/static_files_manager.py +21 -8
  39. griptape_nodes/retained_mode/managers/version_compatibility_manager.py +3 -3
  40. griptape_nodes/version_compatibility/versions/v0_39_0/modified_parameters_set_removal.py +5 -5
  41. griptape_nodes/version_compatibility/versions/v0_65_4/__init__.py +5 -0
  42. griptape_nodes/version_compatibility/versions/v0_65_4/run_in_parallel_to_run_in_order.py +79 -0
  43. griptape_nodes/version_compatibility/versions/v0_65_5/__init__.py +5 -0
  44. griptape_nodes/version_compatibility/versions/v0_65_5/flux_2_removed_parameters.py +85 -0
  45. {griptape_nodes-0.65.6.dist-info → griptape_nodes-0.66.1.dist-info}/METADATA +1 -1
  46. {griptape_nodes-0.65.6.dist-info → griptape_nodes-0.66.1.dist-info}/RECORD +48 -53
  47. griptape_nodes/retained_mode/managers/library_lifecycle/__init__.py +0 -45
  48. griptape_nodes/retained_mode/managers/library_lifecycle/data_models.py +0 -191
  49. griptape_nodes/retained_mode/managers/library_lifecycle/library_directory.py +0 -346
  50. griptape_nodes/retained_mode/managers/library_lifecycle/library_fsm.py +0 -439
  51. griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/__init__.py +0 -17
  52. griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/base.py +0 -82
  53. griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/github.py +0 -116
  54. griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/local_file.py +0 -367
  55. griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/package.py +0 -104
  56. griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/sandbox.py +0 -155
  57. griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance.py +0 -18
  58. griptape_nodes/retained_mode/managers/library_lifecycle/library_status.py +0 -12
  59. {griptape_nodes-0.65.6.dist-info → griptape_nodes-0.66.1.dist-info}/WHEEL +0 -0
  60. {griptape_nodes-0.65.6.dist-info → griptape_nodes-0.66.1.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,82 @@
1
+ import logging
2
+ from enum import StrEnum
3
+ from typing import TYPE_CHECKING, Any, Literal
4
+
5
+ from griptape_nodes.retained_mode.managers.resource_components.capability_field import (
6
+ CapabilityField,
7
+ validate_capabilities,
8
+ )
9
+ from griptape_nodes.retained_mode.managers.resource_components.resource_instance import ResourceInstance
10
+ from griptape_nodes.retained_mode.managers.resource_components.resource_type import ResourceType
11
+
12
+ if TYPE_CHECKING:
13
+ from griptape_nodes.retained_mode.managers.resource_components.resource_instance import Requirements
14
+
15
+ logger = logging.getLogger("griptape_nodes")
16
+
17
+
18
+ class ComputeBackend(StrEnum):
19
+ """Supported compute backends."""
20
+
21
+ CPU = "cpu"
22
+ CUDA = "cuda" # NVIDIA GPU
23
+ MPS = "mps" # Apple Metal Performance Shaders
24
+
25
+
26
+ # Compute capability field names
27
+ ComputeCapability = Literal[
28
+ "compute", # List of available compute backends: ["cpu", "cuda", "mps"]
29
+ ]
30
+
31
+
32
+ class ComputeInstance(ResourceInstance):
33
+ """Resource instance representing available compute backends."""
34
+
35
+ def can_be_freed(self) -> bool:
36
+ """Compute resources can be freed when no longer needed."""
37
+ return True
38
+
39
+ def free(self) -> None:
40
+ """Free compute resource instance."""
41
+ logger.debug("Freeing compute resource instance %s", self.get_instance_id())
42
+
43
+ def get_capability_typed(self, key: ComputeCapability) -> Any:
44
+ """Type-safe capability getter using Literal types."""
45
+ return self.get_capability_value(key)
46
+
47
+
48
+ class ComputeResourceType(ResourceType):
49
+ """Resource type for compute backend availability."""
50
+
51
+ def get_capability_schema(self) -> list[CapabilityField]:
52
+ """Get the capability schema for compute resources."""
53
+ return [
54
+ CapabilityField(
55
+ name="compute",
56
+ type_hint=list,
57
+ description="List of available compute backends: 'cpu', 'cuda', 'mps'",
58
+ required=True,
59
+ ),
60
+ ]
61
+
62
+ def create_instance(self, capabilities: dict[str, Any]) -> ResourceInstance:
63
+ """Create a new compute resource instance."""
64
+ # Validate capabilities against schema
65
+ validation_errors = validate_capabilities(self.get_capability_schema(), capabilities)
66
+ if validation_errors:
67
+ error_msg = f"Invalid compute capabilities: {', '.join(validation_errors)}"
68
+ raise ValueError(error_msg)
69
+
70
+ return ComputeInstance(resource_type=self, instance_id_prefix="compute", capabilities=capabilities)
71
+
72
+ def select_best_compatible_instance(
73
+ self, compatible_instances: list[ResourceInstance], _requirements: "Requirements | None" = None
74
+ ) -> ResourceInstance | None:
75
+ """Select the best compute instance from compatible ones.
76
+
77
+ Returns the first compatible instance (no special selection criteria).
78
+ """
79
+ if not compatible_instances:
80
+ return None
81
+
82
+ return compatible_instances[0]
@@ -1,4 +1,5 @@
1
1
  import logging
2
+ from enum import StrEnum
2
3
  from typing import TYPE_CHECKING, Any, Literal
3
4
 
4
5
  from griptape_nodes.retained_mode.managers.resource_components.capability_field import (
@@ -14,6 +15,22 @@ if TYPE_CHECKING:
14
15
  logger = logging.getLogger("griptape_nodes")
15
16
 
16
17
 
18
+ class Platform(StrEnum):
19
+ """Supported operating system platforms."""
20
+
21
+ WINDOWS = "windows"
22
+ DARWIN = "darwin" # macOS
23
+ LINUX = "linux"
24
+
25
+
26
+ class Architecture(StrEnum):
27
+ """Supported system architectures."""
28
+
29
+ X86_64 = "x86_64" # Also known as amd64
30
+ ARM64 = "arm64"
31
+ AARCH64 = "aarch64" # ARM64 on Linux
32
+
33
+
17
34
  # OS capability field names
18
35
  OSCapability = Literal[
19
36
  "platform",
@@ -11,6 +11,7 @@ from griptape_nodes.drivers.storage import StorageBackend
11
11
  from griptape_nodes.drivers.storage.griptape_cloud_storage_driver import GriptapeCloudStorageDriver
12
12
  from griptape_nodes.drivers.storage.local_storage_driver import LocalStorageDriver
13
13
  from griptape_nodes.retained_mode.events.app_events import AppInitializationComplete
14
+ from griptape_nodes.retained_mode.events.os_events import ExistingFilePolicy
14
15
  from griptape_nodes.retained_mode.events.static_file_events import (
15
16
  CreateStaticFileDownloadUrlRequest,
16
17
  CreateStaticFileDownloadUrlResultFailure,
@@ -182,7 +183,9 @@ class StaticFilesManager:
182
183
  if isinstance(self.storage_driver, LocalStorageDriver):
183
184
  threading.Thread(target=start_static_server, daemon=True, name="static-server").start()
184
185
 
185
- def save_static_file(self, data: bytes, file_name: str) -> str:
186
+ def save_static_file(
187
+ self, data: bytes, file_name: str, existing_file_policy: ExistingFilePolicy = ExistingFilePolicy.OVERWRITE
188
+ ) -> str:
186
189
  """Saves a static file to the workspace directory.
187
190
 
188
191
  This is used to save files that are generated by the node, such as images or other artifacts.
@@ -190,27 +193,37 @@ class StaticFilesManager:
190
193
  Args:
191
194
  data: The file data to save.
192
195
  file_name: The name of the file to save.
196
+ existing_file_policy: How to handle existing files. Defaults to OVERWRITE for backward compatibility.
197
+ - OVERWRITE: Replace existing file content (default)
198
+ - CREATE_NEW: Auto-generate unique filename (e.g., file_1.txt, file_2.txt)
199
+ - FAIL: Raise FileExistsError if file exists
193
200
 
194
201
  Returns:
195
- The URL of the saved file.
202
+ The URL of the saved file. Note: the actual filename may differ from the requested
203
+ file_name when using CREATE_NEW policy.
204
+
205
+ Raises:
206
+ FileExistsError: When existing_file_policy is FAIL and file already exists.
196
207
  """
197
208
  resolved_directory = self._get_static_files_directory()
198
209
  file_path = Path(resolved_directory) / file_name
199
210
 
200
- response = self.storage_driver.create_signed_upload_url(file_path)
211
+ # Pass the existing_file_policy to the storage driver
212
+ response = self.storage_driver.create_signed_upload_url(file_path, existing_file_policy)
213
+
214
+ resolved_file_path = Path(response["file_path"])
201
215
 
202
216
  try:
203
- response = httpx.request(
217
+ upload_response = httpx.request(
204
218
  response["method"], response["url"], content=data, headers=response["headers"], timeout=60
205
219
  )
206
- response.raise_for_status()
220
+ upload_response.raise_for_status()
207
221
  except httpx.HTTPStatusError as e:
208
- msg = str(e.response.json())
222
+ msg = str(e.response.json()) if hasattr(e, "response") else str(e)
209
223
  logger.error(msg)
210
224
  raise ValueError(msg) from e
211
225
 
212
- url = self.storage_driver.create_signed_download_url(file_path)
213
-
226
+ url = self.storage_driver.create_signed_download_url(resolved_file_path)
214
227
  return url
215
228
 
216
229
  def _get_static_files_directory(self) -> str:
@@ -32,7 +32,7 @@ from griptape_nodes.retained_mode.managers.fitness_problems.workflows.deprecated
32
32
  from griptape_nodes.retained_mode.managers.fitness_problems.workflows.node_type_not_found_problem import (
33
33
  NodeTypeNotFoundProblem,
34
34
  )
35
- from griptape_nodes.retained_mode.managers.library_lifecycle.library_status import LibraryStatus
35
+ from griptape_nodes.retained_mode.managers.library_manager import LibraryManager
36
36
 
37
37
  if TYPE_CHECKING:
38
38
  from griptape_nodes.exe_types.node_types import BaseNode
@@ -54,7 +54,7 @@ class LibraryVersionCompatibilityIssue(NamedTuple):
54
54
  """Represents a library version compatibility issue found in a library."""
55
55
 
56
56
  problem: LibraryProblem
57
- severity: LibraryStatus
57
+ severity: LibraryManager.LibraryFitness
58
58
 
59
59
 
60
60
  class LibraryVersionCompatibilityCheck(ABC):
@@ -208,7 +208,7 @@ class VersionCompatibilityManager:
208
208
  removal_version=node.metadata.deprecation.removal_version,
209
209
  deprecation_message=node.metadata.deprecation.deprecation_message,
210
210
  ),
211
- severity=LibraryStatus.FLAWED,
211
+ severity=LibraryManager.LibraryFitness.FLAWED,
212
212
  )
213
213
  for node in library_data.nodes
214
214
  if node.metadata.deprecation is not None
@@ -21,7 +21,7 @@ from griptape_nodes.retained_mode.managers.fitness_problems.libraries.ui_options
21
21
  from griptape_nodes.retained_mode.managers.fitness_problems.libraries.ui_options_field_modified_warning_problem import (
22
22
  UiOptionsFieldModifiedWarningProblem,
23
23
  )
24
- from griptape_nodes.retained_mode.managers.library_lifecycle.library_status import LibraryStatus
24
+ from griptape_nodes.retained_mode.managers.library_manager import LibraryManager
25
25
  from griptape_nodes.retained_mode.managers.version_compatibility_manager import (
26
26
  LibraryVersionCompatibilityCheck,
27
27
  LibraryVersionCompatibilityIssue,
@@ -62,11 +62,11 @@ class ModifiedParametersSetRemovalCheck(LibraryVersionCompatibilityCheck):
62
62
  return [
63
63
  LibraryVersionCompatibilityIssue(
64
64
  problem=ModifiedParametersSetRemovedProblem(library_engine_version=library_version_str),
65
- severity=LibraryStatus.UNUSABLE,
65
+ severity=LibraryManager.LibraryFitness.UNUSABLE,
66
66
  ),
67
67
  LibraryVersionCompatibilityIssue(
68
68
  problem=UiOptionsFieldModifiedIncompatibleProblem(library_engine_version=library_version_str),
69
- severity=LibraryStatus.UNUSABLE,
69
+ severity=LibraryManager.LibraryFitness.UNUSABLE,
70
70
  ),
71
71
  ]
72
72
  if current_engine_version >= semver.VersionInfo(0, 38, 0):
@@ -74,11 +74,11 @@ class ModifiedParametersSetRemovalCheck(LibraryVersionCompatibilityCheck):
74
74
  return [
75
75
  LibraryVersionCompatibilityIssue(
76
76
  problem=ModifiedParametersSetDeprecationWarningProblem(library_engine_version=library_version_str),
77
- severity=LibraryStatus.FLAWED,
77
+ severity=LibraryManager.LibraryFitness.FLAWED,
78
78
  ),
79
79
  LibraryVersionCompatibilityIssue(
80
80
  problem=UiOptionsFieldModifiedWarningProblem(),
81
- severity=LibraryStatus.FLAWED,
81
+ severity=LibraryManager.LibraryFitness.FLAWED,
82
82
  ),
83
83
  ]
84
84
 
@@ -0,0 +1,5 @@
1
+ """Version 0.65.4 backward compatibility checks.
2
+
3
+ This version includes backward compatibility for the parameter name change from
4
+ 'run_in_parallel' to 'run_in_order' in ForLoopStartNode and ForEachStartNode.
5
+ """
@@ -0,0 +1,79 @@
1
+ """Backward compatibility for run_in_parallel to run_in_order parameter change.
2
+
3
+ This module handles the parameter name change from 'run_in_parallel' to 'run_in_order'
4
+ in ForLoopStartNode and ForEachStartNode. The logic is inverted: run_in_parallel=True
5
+ becomes run_in_order=False (run in parallel means NOT run in order).
6
+
7
+ TODO: Remove this compatibility check once all workflows have been migrated and we no
8
+ longer need to support loading old workflows with the run_in_parallel parameter.
9
+ Link: https://github.com/griptape-ai/griptape-nodes/issues/XXXX
10
+ """
11
+
12
+ from __future__ import annotations
13
+
14
+ from typing import TYPE_CHECKING, Any
15
+
16
+ from griptape_nodes.retained_mode.events.parameter_events import SetParameterValueResultSuccess
17
+ from griptape_nodes.retained_mode.managers.version_compatibility_manager import (
18
+ SetParameterVersionCompatibilityCheck,
19
+ )
20
+
21
+ if TYPE_CHECKING:
22
+ from griptape_nodes.exe_types.node_types import BaseNode
23
+
24
+
25
+ class RunInParallelToRunInOrderCheck(SetParameterVersionCompatibilityCheck):
26
+ """Handle migration from run_in_parallel to run_in_order parameter.
27
+
28
+ This check intercepts attempts to set the old 'run_in_parallel' parameter
29
+ and converts it to the new 'run_in_order' parameter with inverted boolean logic.
30
+
31
+ Applies to:
32
+ - ForLoopStartNode
33
+ - ForEachStartNode
34
+
35
+ Migration logic:
36
+ - run_in_parallel=True → run_in_order=False (run in parallel)
37
+ - run_in_parallel=False → run_in_order=True (run sequentially)
38
+ """
39
+
40
+ def applies_to_set_parameter(self, node: BaseNode, parameter_name: str, _value: Any) -> bool:
41
+ """Return True if this is the old run_in_parallel parameter on an affected node.
42
+
43
+ Args:
44
+ node: The node instance
45
+ parameter_name: Name of the parameter being set
46
+ _value: The value being set (unused)
47
+
48
+ Returns:
49
+ True if this check should handle this parameter
50
+ """
51
+ if parameter_name != "run_in_parallel":
52
+ return False
53
+
54
+ node_type_name = type(node).__name__
55
+ return node_type_name in ("ForLoopStartNode", "ForEachStartNode")
56
+
57
+ def set_parameter_value(self, node: BaseNode, parameter_name: str, value: Any) -> SetParameterValueResultSuccess:
58
+ """Migrate run_in_parallel to run_in_order with inverted boolean value.
59
+
60
+ Args:
61
+ node: The node instance
62
+ parameter_name: Name of the parameter being set (should be "run_in_parallel")
63
+ value: The value being set (boolean)
64
+
65
+ Returns:
66
+ SetParameterValueResultSuccess indicating the migration was successful
67
+ """
68
+ if value is None:
69
+ inverted_value = True
70
+ else:
71
+ inverted_value = not bool(value)
72
+
73
+ node.set_parameter_value("run_in_order", inverted_value)
74
+
75
+ return SetParameterValueResultSuccess(
76
+ finalized_value=inverted_value,
77
+ data_type="bool",
78
+ result_details=f"Migrated deprecated '{parameter_name}' parameter to 'run_in_order' with inverted value",
79
+ )
@@ -0,0 +1,5 @@
1
+ """Version 0.65.5 backward compatibility checks.
2
+
3
+ This version includes backward compatibility for removed parameters in
4
+ Flux2ImageGeneration: 'prompt_upsampling' and 'aspect_ratio'.
5
+ """
@@ -0,0 +1,85 @@
1
+ """Backward compatibility for removed Flux2ImageGeneration parameters.
2
+
3
+ This module handles removed parameters from Flux2ImageGeneration when adding
4
+ FLUX.2[max] support:
5
+ - prompt_upsampling: removed entirely
6
+ - aspect_ratio: replaced with explicit width/height parameters
7
+ """
8
+
9
+ from __future__ import annotations
10
+
11
+ import logging
12
+ from typing import TYPE_CHECKING, Any, ClassVar
13
+
14
+ from griptape_nodes.retained_mode.events.parameter_events import SetParameterValueResultSuccess
15
+ from griptape_nodes.retained_mode.griptape_nodes import GriptapeNodes
16
+ from griptape_nodes.retained_mode.managers.version_compatibility_manager import (
17
+ SetParameterVersionCompatibilityCheck,
18
+ )
19
+
20
+ if TYPE_CHECKING:
21
+ from griptape_nodes.exe_types.node_types import BaseNode
22
+
23
+ logger = logging.getLogger("griptape_nodes")
24
+
25
+
26
+ class Flux2RemovedParametersCheck(SetParameterVersionCompatibilityCheck):
27
+ """Handle removed prompt_upsampling and aspect_ratio parameters.
28
+
29
+ These parameters were removed in engine version 0.65.5 when adding FLUX.2[max] support.
30
+ This check intercepts attempts to set these parameters and logs a warning prompting
31
+ users to resave their workflows.
32
+ """
33
+
34
+ REMOVED_PARAMETERS: ClassVar[set[str]] = {"prompt_upsampling", "aspect_ratio"}
35
+
36
+ def __init__(self) -> None:
37
+ """Initialize the check with an empty set of warned workflows."""
38
+ super().__init__()
39
+ self._warned_workflows: set[str] = set()
40
+
41
+ def applies_to_set_parameter(self, node: BaseNode, parameter_name: str, _value: Any) -> bool:
42
+ """Return True if this is a removed parameter on a Flux2ImageGeneration node.
43
+
44
+ Args:
45
+ node: The node instance
46
+ parameter_name: Name of the parameter being set
47
+ _value: The value being set (unused)
48
+
49
+ Returns:
50
+ True if this check should handle this parameter
51
+ """
52
+ if parameter_name not in self.REMOVED_PARAMETERS:
53
+ return False
54
+
55
+ return type(node).__name__ == "Flux2ImageGeneration"
56
+
57
+ def set_parameter_value(self, _node: BaseNode, parameter_name: str, _value: Any) -> SetParameterValueResultSuccess:
58
+ """Handle the removed parameter by logging a warning and returning success.
59
+
60
+ Args:
61
+ _node: The node instance (unused)
62
+ parameter_name: Name of the parameter being set
63
+ _value: The value being set (unused)
64
+
65
+ Returns:
66
+ SetParameterValueResultSuccess with None value
67
+ """
68
+ workflow_name = GriptapeNodes.ContextManager().get_current_workflow_name()
69
+
70
+ if workflow_name not in self._warned_workflows:
71
+ self._warned_workflows.add(workflow_name)
72
+
73
+ removed_params_list = ", ".join(f"'{param}'" for param in self.REMOVED_PARAMETERS)
74
+ logger.warning(
75
+ "This workflow uses removed Flux2ImageGeneration parameters (%s) that were "
76
+ "replaced in engine version 0.65.5. Please resave your workflow and this "
77
+ "warning will go away.",
78
+ removed_params_list,
79
+ )
80
+
81
+ return SetParameterValueResultSuccess(
82
+ finalized_value=None,
83
+ data_type="any",
84
+ result_details=f"Parameter '{parameter_name}' was removed in v0.65.5. Please resave this workflow.",
85
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: griptape-nodes
3
- Version: 0.65.6
3
+ Version: 0.66.1
4
4
  Summary: Add your description here
5
5
  Requires-Dist: griptape>=1.8.12
6
6
  Requires-Dist: pydantic>=2.10.6
@@ -42,7 +42,7 @@ griptape_nodes/common/macro_parser/matching.py,sha256=hnlPIihz8W1TGnfq4anbBGciwg
42
42
  griptape_nodes/common/macro_parser/parsing.py,sha256=_37L3lCQFeetamWIiHT0C7eW1E3Wyx5V8y8OWzIUw_g,7428
43
43
  griptape_nodes/common/macro_parser/resolution.py,sha256=30_bAIRMKWw-kM3E1ne-my16xT1Wd734JMmZSOZtNPA,6937
44
44
  griptape_nodes/common/macro_parser/segments.py,sha256=r-WbZas1nSc-PlEdAZ7DycNoD6IUf3R_nhGo3T9vIa8,1010
45
- griptape_nodes/common/node_executor.py,sha256=yONxXkq2ueZl8pzZb-xubRh_xIVgimwNsOx76r4SZSc,120082
45
+ griptape_nodes/common/node_executor.py,sha256=NOHt1U7ASCLBqAlGoxAG4U57kwLdhuSsLmv0ujCvmcc,134316
46
46
  griptape_nodes/common/project_templates/__init__.py,sha256=5DP6Sa6ClsdDcjD30pkK0iTTysTgGdRKEkeY7ztHZyc,1541
47
47
  griptape_nodes/common/project_templates/default_project_template.py,sha256=PJFPfziH0EOGVxU5L0wZnc21bVVweW4S7wcnGPF45Co,3120
48
48
  griptape_nodes/common/project_templates/defaults/README.md,sha256=1ou6_OFi7-t86nj-7tulW1vxNMtsvkJmNxr6SseG8hA,1080
@@ -53,9 +53,9 @@ griptape_nodes/common/project_templates/situation.py,sha256=MlpBYrtPvkzIa_j_1NFe
53
53
  griptape_nodes/common/project_templates/validation.py,sha256=LPm0gri05ZIbSfCqOM4duuaXPIeAk3YWMstM5w5O8ho,4399
54
54
  griptape_nodes/drivers/__init__.py,sha256=tHmiFQn6uJyFVhC2PrqHgRUH3d3yDsqMQpWqRasmaqA,42
55
55
  griptape_nodes/drivers/storage/__init__.py,sha256=_7p8vJt3YnnF6sD3Uxxw38c-gazuMIHSS-m3G6sa2Qk,208
56
- griptape_nodes/drivers/storage/base_storage_driver.py,sha256=47PrMzxOuJhV2ee4CbPT7YOqR2MjlHr3VxhGON_ygio,3945
57
- griptape_nodes/drivers/storage/griptape_cloud_storage_driver.py,sha256=qQctInOvfKRJdqTiW8T3ycjre2FDGTb9-JtzEtiCHVM,6870
58
- griptape_nodes/drivers/storage/local_storage_driver.py,sha256=lhgi1ATTp0GU5vcXE-tLr3G76eiINfkGo2p_b1mfOYI,3760
56
+ griptape_nodes/drivers/storage/base_storage_driver.py,sha256=rMOe9sdUR3QwTgbLd--nSqaXjIs5lm-fXAJvLaNhiRc,4466
57
+ griptape_nodes/drivers/storage/griptape_cloud_storage_driver.py,sha256=GG1pAZT65EvrSAl38trGJqZMzTfh85Iad6Usvxa2F_4,7435
58
+ griptape_nodes/drivers/storage/local_storage_driver.py,sha256=lTjtm22iQgm6Df_QK-qwZlDTdmcSXbrM7Yi7gr2q8WA,5601
59
59
  griptape_nodes/drivers/storage/storage_backend.py,sha256=3QBIwrgPc1krBIiPYLoK2swhIPDiKJnnucOEdyx7y3c,184
60
60
  griptape_nodes/drivers/thread_storage/__init__.py,sha256=JkCafJ978K63ad8PWtTIC7af70nxMjbp13ZJz2_55Bs,604
61
61
  griptape_nodes/drivers/thread_storage/base_thread_storage_driver.py,sha256=yckq3ckw5ZQgBz-wwUVdYzTht9r0dBB1DdJNgrt63ZM,2944
@@ -63,13 +63,14 @@ griptape_nodes/drivers/thread_storage/griptape_cloud_thread_storage_driver.py,sh
63
63
  griptape_nodes/drivers/thread_storage/local_thread_storage_driver.py,sha256=I1p2XudP89sUMsRa0DBxGXzsOFEpURLbtF01C_Wpkts,5406
64
64
  griptape_nodes/drivers/thread_storage/thread_storage_backend.py,sha256=QXLvFOZrFx7aPBmwVGaN-IHxwRAf_sXN7YWKY6tcwgE,204
65
65
  griptape_nodes/exe_types/__init__.py,sha256=wGGwKGX9-TSarUFbXpDvdU_J7eXIbWTBl_NCLOZa-G8,32
66
- griptape_nodes/exe_types/base_iterative_nodes.py,sha256=uCeZaf0xT7zim1EgC0cJ5V2aa1vUECYV56IKYjP1-uo,43865
67
- griptape_nodes/exe_types/connections.py,sha256=sARiIFLGOKTLetdVMS_VtJUfxvJtSxfwK0YHJpInZZM,19814
68
- griptape_nodes/exe_types/core_types.py,sha256=8MHHCuv2726T1DAuI3WIeyD9C__hMyYZB5nr669U90U,100810
66
+ griptape_nodes/exe_types/base_iterative_nodes.py,sha256=z2u4Pb9iqy2Zl3gz_LB7k6hmxYyet1Z6sLjF8afPN_0,43810
67
+ griptape_nodes/exe_types/connections.py,sha256=HcM_fwWivMsXk5q6K7ZBSJpmK9THQwX_xLS_daF0PDQ,21737
68
+ griptape_nodes/exe_types/core_types.py,sha256=TrSd_Z-99epMILmqcnr2kIPeUTuQuC7ghyWAOh0B73E,100822
69
69
  griptape_nodes/exe_types/flow.py,sha256=2iAh3vN5wnMVxTc5jcPBg9TSiASq1DGIm5jgpO9Bdq4,5732
70
- griptape_nodes/exe_types/node_groups/__init__.py,sha256=vcZVzmN6yDlxlwf857ndAFchPQf7cXi_zn1HyiknX_4,210
71
- griptape_nodes/exe_types/node_groups/base_node_group.py,sha256=Vx3pQ6gxy-0t8x_DetVdFtaQU8PAYi71bFTepkeDOeg,841
72
- griptape_nodes/exe_types/node_groups/subflow_node_group.py,sha256=ZyAYLU2_HaaPFczOw0CQYm74vmE0Dx0LtxV_FkAsAk0,48366
70
+ griptape_nodes/exe_types/node_groups/__init__.py,sha256=N-x5jU8XthYShF9TYnP90pd9DfUE5toiXb5lEoGFL-A,298
71
+ griptape_nodes/exe_types/node_groups/base_iterative_node_group.py,sha256=xy05VkgLQORVE_jr5eCkAprCSlTiduCYkZkNHQGH-Cc,6343
72
+ griptape_nodes/exe_types/node_groups/base_node_group.py,sha256=jXgmI2lLdCPK6Wh19LxSzsit6wIpRw6AcPqmMF9bjc8,885
73
+ griptape_nodes/exe_types/node_groups/subflow_node_group.py,sha256=oIyX0VZcJvJ32KFqAsFbdMvrT-r_z8L8uclrwzCQceU,49972
73
74
  griptape_nodes/exe_types/node_types.py,sha256=pPljG84zJ6Wd6yzcRjnK0n1805b-Jyzxx7-NFox66QE,84227
74
75
  griptape_nodes/exe_types/param_components/README.md,sha256=mcNFxJIan9CGTnecsrJ8mkHC55dlA3fb7k4HFznou-k,14850
75
76
  griptape_nodes/exe_types/param_components/__init__.py,sha256=ocm75WnsgiD6ozKVGFhoH9cQe_FEzeF2osxrRujOes0,60
@@ -86,27 +87,27 @@ griptape_nodes/exe_types/param_components/log_parameter.py,sha256=K6XRWVIpL9MtQ6
86
87
  griptape_nodes/exe_types/param_components/progress_bar_component.py,sha256=GrAFTOrLNAx6q9zfOqiioPTG_NLHKhTe9NiZOo6zGSc,1949
87
88
  griptape_nodes/exe_types/param_components/seed_parameter.py,sha256=nXyi9bPCK9LuRB6s4Q2ezwdboIaivEObglNrSFn0y-0,2045
88
89
  griptape_nodes/exe_types/param_types/__init__.py,sha256=xEEmKvIFF6M7zVjQZCupbbv6SZKt-itD-rPtfRhxJVg,53
89
- griptape_nodes/exe_types/param_types/parameter_audio.py,sha256=Uv7FI4_BFvtD0Pv6FMF6PCNijgo7Cc9jU75ceSpLebw,9413
90
- griptape_nodes/exe_types/param_types/parameter_bool.py,sha256=MyJlYYKAyRtu-V8GqFdV6jAtwRk8NRjj6LO8SZ9BQo8,8094
91
- griptape_nodes/exe_types/param_types/parameter_button.py,sha256=GnD484y3NzpEtkeuSX44dQlTngxfLJHBDWZIDFXf2p4,17171
92
- griptape_nodes/exe_types/param_types/parameter_float.py,sha256=W_n4__XHOYppRD3-2RSLmxFcrcCBRex15oMyhShNyUU,6672
93
- griptape_nodes/exe_types/param_types/parameter_image.py,sha256=etYKDEgqPsTe9UUimqyRsiWDRXePT_iMXVc6-_VcLPU,9312
94
- griptape_nodes/exe_types/param_types/parameter_int.py,sha256=OmyuGeo6P4ZWxp1Ms9kQRhI2Ar-igDqUQPmH_0XtxUI,6821
95
- griptape_nodes/exe_types/param_types/parameter_number.py,sha256=tzACjVQos8nDCirQSxBPaDfDciigiA_OHgSKZW43gVA,15251
96
- griptape_nodes/exe_types/param_types/parameter_string.py,sha256=rcorJuT1QONU4c64--76oX9qVNqc7n3of6m257Xrk_0,9462
97
- griptape_nodes/exe_types/param_types/parameter_three_d.py,sha256=AJ8qID5HydYgx1Tj1HMgE7VBEHF4qvtibrQ8fWqVXKU,8272
98
- griptape_nodes/exe_types/param_types/parameter_video.py,sha256=iF74oKhDZ7VUZg8GO1y5dRAuQ8SQfbq0hMY2CkN6CoI,9333
90
+ griptape_nodes/exe_types/param_types/parameter_audio.py,sha256=m9C5bASK6lJFhYkhwly7q6pRWq1q0pc1wGh38nn3kGs,9419
91
+ griptape_nodes/exe_types/param_types/parameter_bool.py,sha256=mDbs4JW8dlEPvaR-u_tTKa6rzycF6KF5EPnezoQFufA,8100
92
+ griptape_nodes/exe_types/param_types/parameter_button.py,sha256=sFkl7jcQbFOMJk17UEZu0zj6wgAmZ9kfnCZCn_R7L9I,17177
93
+ griptape_nodes/exe_types/param_types/parameter_float.py,sha256=qjMTcMNzKkCLBBzlr2vdSweChXr-M-erSqqUVIU95tc,6678
94
+ griptape_nodes/exe_types/param_types/parameter_image.py,sha256=YldCdmmpL2jeJNRgwSrWavaMVtC0jXiIuO8Np49PTXs,9318
95
+ griptape_nodes/exe_types/param_types/parameter_int.py,sha256=fozMjPfBXL6AIQJ3E5rljloeYdw4ramqh6CU7jsrw24,6827
96
+ griptape_nodes/exe_types/param_types/parameter_number.py,sha256=NY3c1iKCNnIZ4BKXGykxmggzr4D9-9GZoZCwQxasp0s,15257
97
+ griptape_nodes/exe_types/param_types/parameter_string.py,sha256=8Mrx3Ktw12D78HNzfL19aoMtgUacxyYE9ZyNun8htcI,9468
98
+ griptape_nodes/exe_types/param_types/parameter_three_d.py,sha256=G8gf5v_hplzprC-jBPufgtwnpZiqsKlbYnsuwc3D_VI,8278
99
+ griptape_nodes/exe_types/param_types/parameter_video.py,sha256=MDjadF3WQIi8EiYAnT0ILOimKU0xIJTKu5HlqWKRE-I,9339
99
100
  griptape_nodes/exe_types/type_validator.py,sha256=RTz1vX09jzQpHhozITMJ0siOZUXvsERDhrApjdaM1WM,1120
100
101
  griptape_nodes/machines/__init__.py,sha256=v0jkwr-CFOLmfEYUQvX8BKQLOdvhSsA6toXkdHcPGUE,30
101
- griptape_nodes/machines/control_flow.py,sha256=01adLpKttW7wr7Gm5hHReWMamOerd7Dy-4VUPtwsqa8,22915
102
- griptape_nodes/machines/dag_builder.py,sha256=AAA_hH-Mz6GxJMUcVs6wHjKMarEsSyfNVs-PL1A_lOY,15486
103
- griptape_nodes/machines/fsm.py,sha256=WNo2w5c9Gbgzo5odcvbRT02EhCMFf3n3WYbZ0GYk1WI,2553
104
- griptape_nodes/machines/parallel_resolution.py,sha256=RXYkvHl8X6fKDtCmXkyfgOD-IyMUbecGYv4JyDmzetw,31741
105
- griptape_nodes/machines/sequential_resolution.py,sha256=BH3OHidXR2EBRAXEvBhwzVXciCt6rJLCDRWwGSz7Feg,19780
102
+ griptape_nodes/machines/control_flow.py,sha256=mmiA7OHXG3Nq36uFPKSGVgqm-ws-T21vzHgvF-um0hg,23007
103
+ griptape_nodes/machines/dag_builder.py,sha256=lWeonzrN-mk50B7laLGzX9a4QK8Yr2F1Ei_37d_D2NU,17978
104
+ griptape_nodes/machines/fsm.py,sha256=P1CZQl5smZy95UIKHVAEqaNQfqJzf7cheWiLT70tQOg,2768
105
+ griptape_nodes/machines/parallel_resolution.py,sha256=oYWx5XnzD4w4kJZhT9TqCXPH0C-jd3DniHyVccHtSQ8,32119
106
+ griptape_nodes/machines/sequential_resolution.py,sha256=Mk_EBmCRrGcl9k_lSTXrYIaXcjuRyMKslG5VPTh1mNc,21039
106
107
  griptape_nodes/mcp_server/__init__.py,sha256=GSpJWqE4lICaryhsQR1okeMH2x6j1bBL0HVxtr52WLg,42
107
108
  griptape_nodes/node_library/__init__.py,sha256=U3FcSdmq6UW7qt6E3Up3NWKvUEn5_5lqL-u5qbzfxMQ,28
108
109
  griptape_nodes/node_library/advanced_node_library.py,sha256=B1ZaxuFIzQ6tx_3MLIxlsHuahthEC1Hw_t6K_ByIdzs,2104
109
- griptape_nodes/node_library/library_registry.py,sha256=-DgqCt3vP7_4SxrgRVwtFqTHE7K-a_W9veJUyQcOXsU,14354
110
+ griptape_nodes/node_library/library_registry.py,sha256=siLAkVN3f56C2Ks7RwXnKGgKIYT_j8nZOOFUd3s6Zyo,15941
110
111
  griptape_nodes/node_library/workflow_registry.py,sha256=vRnZ6RSFRAf_XOOTrirLhrcmq8BK434XUdynNQ1gGMU,10523
111
112
  griptape_nodes/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
112
113
  griptape_nodes/retained_mode/__init__.py,sha256=X12DKL6KhLsiRTPIlrPj2h76_sJ0q0eH4r0kMQkodm0,29
@@ -121,13 +122,13 @@ griptape_nodes/retained_mode/events/context_events.py,sha256=-FIwjI0hJodDhfM4BF-
121
122
  griptape_nodes/retained_mode/events/execution_events.py,sha256=AQHD04wxQXJDHGnw_ij4QvdUoiMckpMTZqZJX3ehGgA,13512
122
123
  griptape_nodes/retained_mode/events/flow_events.py,sha256=UcRHfaubb1GpDFSPg-5HRWrPnA7ifH1zBMYtWnYNy_E,19434
123
124
  griptape_nodes/retained_mode/events/generate_request_payload_schemas.py,sha256=PQ0QRZAUBljSIGjB8QhYUeRmSrfmLsJ6XVcygJKi13I,1102
124
- griptape_nodes/retained_mode/events/library_events.py,sha256=nVQ8qvK1JiuJTe7s_pmYXAuRTWJ55004WSrZJWhxag0,31413
125
+ griptape_nodes/retained_mode/events/library_events.py,sha256=Ke9B7pzhiJk_ctmZPJqilzHhZXByG4B2rArG6ec9KF4,36085
125
126
  griptape_nodes/retained_mode/events/logger_events.py,sha256=jYlxzPomgCsJuPtJ0znWBhD8QJfC8qC4xfChDiuVuyg,705
126
127
  griptape_nodes/retained_mode/events/mcp_events.py,sha256=51OlMZVcabdcIxBb_ojvrHtq2jAzZA31pooPBKaApyg,10734
127
128
  griptape_nodes/retained_mode/events/model_events.py,sha256=jXm-v-_Uxysn4MJ7a80_uIphrxTHgua3BGgHGyy3T_Y,9232
128
129
  griptape_nodes/retained_mode/events/node_events.py,sha256=vpILjBkgrPzF_KSow2EJCwcU-tDD78WEWM2DAAzhhiE,37720
129
130
  griptape_nodes/retained_mode/events/object_events.py,sha256=cJaqEU73Lzf1RRxJrFqEpl8eTr-gDhKpXKywJ-vVCJQ,2631
130
- griptape_nodes/retained_mode/events/os_events.py,sha256=v2uVt_s_AzP5y7CzczTuFh-onohkJZBNNldnKGVBdc4,22654
131
+ griptape_nodes/retained_mode/events/os_events.py,sha256=fVraPXCz48kDpCTttJFtsyfTfkaLSfTX57hexYSD7I8,23429
131
132
  griptape_nodes/retained_mode/events/parameter_events.py,sha256=2s3U_cc45LjSmq2pZyTEnjD6yAlc207wAYY633z4zO4,23938
132
133
  griptape_nodes/retained_mode/events/payload_registry.py,sha256=q-wxUqp63vhNj-Pl1JGJHnBkhUefcCArPoMN3KBREEI,1691
133
134
  griptape_nodes/retained_mode/events/project_events.py,sha256=C_jHk_7dRJLtbRgCi8IGe-mH46tueuTxLxGL7xxZVBI,17096
@@ -147,7 +148,7 @@ griptape_nodes/retained_mode/managers/context_manager.py,sha256=eb44_CAZhCg2iYIo
147
148
  griptape_nodes/retained_mode/managers/engine_identity_manager.py,sha256=-31364A03kU0YmAx3nM7nHdWfKnkej5Cawt_Plbwa68,10526
148
149
  griptape_nodes/retained_mode/managers/event_manager.py,sha256=v66GUmh5Knyxls-lB3TicsOxK535A7aZkmjDOIehbog,20537
149
150
  griptape_nodes/retained_mode/managers/fitness_problems/__init__.py,sha256=H_Wwfn1k_IaxwRxgbw3-seb1HWbcxl2Cvhw7wB7bCo8,75
150
- griptape_nodes/retained_mode/managers/fitness_problems/libraries/__init__.py,sha256=l_a0bpl136mtenxrTABuSTIvSETwkQ8Wo8u3iiX55WM,3222
151
+ griptape_nodes/retained_mode/managers/fitness_problems/libraries/__init__.py,sha256=vjyI8VUKNieAhlLlaxoUZZK9AxacdbajHVVFTPo_82A,3340
151
152
  griptape_nodes/retained_mode/managers/fitness_problems/libraries/advanced_library_load_failure_problem.py,sha256=Z7bIE_Ll4qqsG-D_PLe48r3ZuUCChgk04mopDvZ5MD0,1215
152
153
  griptape_nodes/retained_mode/managers/fitness_problems/libraries/after_library_callback_problem.py,sha256=sU5OAMp6hh4FLHAiSSAgSljnDFz30HXF0f62HMzSXRo,1147
153
154
  griptape_nodes/retained_mode/managers/fitness_problems/libraries/before_library_callback_problem.py,sha256=CygA0CmIC68X4n6pG_xDogTS2wKu7myYW50zTJZaC64,1155
@@ -157,6 +158,7 @@ griptape_nodes/retained_mode/managers/fitness_problems/libraries/deprecated_node
157
158
  griptape_nodes/retained_mode/managers/fitness_problems/libraries/duplicate_library_problem.py,sha256=VklWc4mk3cY6QFEki0BhnQiPWUeYrSSJlUDCrk0Uyfg,1071
158
159
  griptape_nodes/retained_mode/managers/fitness_problems/libraries/duplicate_node_registration_problem.py,sha256=Q8AoaEcdWriIuPvHdib5jYrHjRQrZExFcnwK3x5rllQ,1679
159
160
  griptape_nodes/retained_mode/managers/fitness_problems/libraries/engine_version_error_problem.py,sha256=4muaR33dhNs980mBln3N-O2DXeSwH4DuNPbvEnfaQ1k,1033
161
+ griptape_nodes/retained_mode/managers/fitness_problems/libraries/incompatible_requirements_problem.py,sha256=N3Tvn1UIC5udyAbPSJuqveJZLfSjzJnswnoZSzEiI8g,1257
160
162
  griptape_nodes/retained_mode/managers/fitness_problems/libraries/insufficient_disk_space_problem.py,sha256=wPdfxKHy0LDaqF-sgfXZPqVpr0R_RU5IvY1x9UEw2wk,1181
161
163
  griptape_nodes/retained_mode/managers/fitness_problems/libraries/invalid_version_string_problem.py,sha256=Lv9cZHOtct7ypjvrNKanAHUrrAbgy0HWGNLBhADyOmk,1194
162
164
  griptape_nodes/retained_mode/managers/fitness_problems/libraries/library_json_decode_problem.py,sha256=yIC5Y6YcZ65ExvU1Ehkfhq_tU3yN96R0Igmd-C_HonI,983
@@ -195,26 +197,14 @@ griptape_nodes/retained_mode/managers/fitness_problems/workflows/node_type_not_f
195
197
  griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_not_found_problem.py,sha256=kPhaIeDxp0duxJBJLKFiYp269kEDsCx3uVLnkKbF2gk,895
196
198
  griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_problem.py,sha256=NLAoF_x7g5tL70qZtPVFI8xeM1jPZNsm7FKt9nkuGBc,542
197
199
  griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_schema_version_problem.py,sha256=rUnbBBnGwgq5WTVPt2G4pGP3gVPoX5xvCdTkRPBmP04,1328
198
- griptape_nodes/retained_mode/managers/flow_manager.py,sha256=ZlyAn17u7n-t1jnMEFNurNrYyTuA3hohTSZ620ZfJbM,214040
199
- griptape_nodes/retained_mode/managers/library_lifecycle/__init__.py,sha256=Iq79VxTdETiExBfFWXceJggDZqS6X3OkzXE9XwFclVw,1340
200
- griptape_nodes/retained_mode/managers/library_lifecycle/data_models.py,sha256=fvAP0VaYGPHYl_Kg3RL4gdJlpqya8UTvpP-C49r950k,6723
201
- griptape_nodes/retained_mode/managers/library_lifecycle/library_directory.py,sha256=Ywno93eVJH4sAtQ1dgHG2Pw9B3vw8fN8oAL0gn_l6OI,14836
202
- griptape_nodes/retained_mode/managers/library_lifecycle/library_fsm.py,sha256=ZlX-FMhGxqafpLjHGftN3iV1r5LVxV9Qa6mWshBla8w,18669
203
- griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/__init__.py,sha256=X0SnqNuEtBVPvccfrUr_wBQQ9i5xJzcaWJLwFJTRRco,814
204
- griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/base.py,sha256=eVV6p9B-aQeaoDbA-c4s1MPpkKtESV7KS1Fxr2E9z4Q,2615
205
- griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/github.py,sha256=byMkJSJjboPJ2zvYamrBhYXL0292YPa3UBW7FsMpkfI,4308
206
- griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/local_file.py,sha256=Ck5-H3rw12ZvmMy8EXJKflx7N-4yR61pVcQ_YUxs6wg,16075
207
- griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/package.py,sha256=93frztMPWSprvn4vFZ9rEGLLQbkvw3oEmfyZxgCaxrQ,3752
208
- griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/sandbox.py,sha256=XgG7whE74zWDxX1pOvhASW0pwjOei1EDLvIH19xdzT0,6117
209
- griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance.py,sha256=cCGr-MQ1RlVBiUTZepYEKdVhPgC4ebcYrmpv8rI3VeM,894
210
- griptape_nodes/retained_mode/managers/library_lifecycle/library_status.py,sha256=K3UEBzAdCY9wphyBbLxDYP0Q43aYvhLZ_Pz7_SzcPec,443
211
- griptape_nodes/retained_mode/managers/library_manager.py,sha256=oU_K_rWR_77qJOTtOeKH_fZlsNLyymeSQchoe9QMbxQ,154471
200
+ griptape_nodes/retained_mode/managers/flow_manager.py,sha256=0Z8hNjfwlnJgQGOsQf3MEvQnkPLeQBXe2ZuixUov2QY,220137
201
+ griptape_nodes/retained_mode/managers/library_manager.py,sha256=vNIwBweMIO84gJp05M_vBFYW2JjTyCpQa4G62ACsBP4,191730
212
202
  griptape_nodes/retained_mode/managers/mcp_manager.py,sha256=Ezmn5_48r4JWYe-tFGqmw9dXLvvTiO1rw9b4MNCkw0U,15955
213
203
  griptape_nodes/retained_mode/managers/model_manager.py,sha256=3lj2X8vIvDSERPtR2VEXNFEWy_D8H6muxRvD-PEx8U8,44845
214
- griptape_nodes/retained_mode/managers/node_manager.py,sha256=hLNiGnrzd1W_v3GBzfVrr6SNkKKQk6vbVgLaUIW1heQ,214936
204
+ griptape_nodes/retained_mode/managers/node_manager.py,sha256=LVF7_KCb01mJ_fAaCfg_9D0Rw40KKxRSr3n3nsRg8Ss,215328
215
205
  griptape_nodes/retained_mode/managers/object_manager.py,sha256=xABsjpE1_HLEIFwYj60zDOLi18EqrYUBuNaj37lUcH4,12921
216
206
  griptape_nodes/retained_mode/managers/operation_manager.py,sha256=4Vn_79vHrawy3wJVUx52tfblO4mURww58nb5RtCTpKU,20190
217
- griptape_nodes/retained_mode/managers/os_manager.py,sha256=aI-e4orc809Qz5lSpqP01_pVlKJvyxcmsGKLQn6rKpQ,124758
207
+ griptape_nodes/retained_mode/managers/os_manager.py,sha256=Ttgj6R063p2Yf1lcdeSTB2xOTg94MIDCMPxO8FDczEQ,142397
218
208
  griptape_nodes/retained_mode/managers/project_manager.py,sha256=-K-anrxEVKInFMPLY-cV3ipqEh8hMELGHKbecJJJVa8,49035
219
209
  griptape_nodes/retained_mode/managers/resource_components/__init__.py,sha256=2FHpZFw2N1-oHfMCfrnB_XpF8_-2aSNtAZWh5zQTGL0,35
220
210
  griptape_nodes/retained_mode/managers/resource_components/capability_field.py,sha256=jZ5ONfdYVd5_MKlSKvUch1X2n1oHzMSeZW8UZ1a_RsU,1504
@@ -223,16 +213,17 @@ griptape_nodes/retained_mode/managers/resource_components/resource_instance.py,s
223
213
  griptape_nodes/retained_mode/managers/resource_components/resource_type.py,sha256=yWwI3K1oIzVqpSRpkoUDsBsY6Zhgj2THKLXzdqy7u0c,3355
224
214
  griptape_nodes/retained_mode/managers/resource_manager.py,sha256=c1JETPMseisT1zu98W7F7KWoTPgAQvlu19RFxmv_IiI,15066
225
215
  griptape_nodes/retained_mode/managers/resource_types/__init__.py,sha256=ganDZJriNgrxvLPs45X48XpLK8ifzljVpD95xeCPzO8,80
216
+ griptape_nodes/retained_mode/managers/resource_types/compute_resource.py,sha256=Oot0jevd6XGIxmP_SKmjGKJ5SyXZO_GLdsuc2jBcYV8,2951
226
217
  griptape_nodes/retained_mode/managers/resource_types/cpu_resource.py,sha256=YHjU6_Pm41wGvdMlRzNkQS9yJY8wD2NN2-WwOFpVpUo,3830
227
- griptape_nodes/retained_mode/managers/resource_types/os_resource.py,sha256=ImgkOQI_br4yI3EY777D93NR20al8b4q9IocqWESjkw,3082
218
+ griptape_nodes/retained_mode/managers/resource_types/os_resource.py,sha256=HHJ-kgZB2BsnvU0rp-CQlM1xTJm3OZ3Dh-NpB01gGG8,3439
228
219
  griptape_nodes/retained_mode/managers/secrets_manager.py,sha256=knoHlbR-VrkeNULYjq72cHnhbCeupkKjtUT0EfBH8LQ,7743
229
220
  griptape_nodes/retained_mode/managers/session_manager.py,sha256=u3OEir9rjwG7GFM4MA5crKwcwq6F-lCUKlFzxlFU4co,14085
230
221
  griptape_nodes/retained_mode/managers/settings.py,sha256=BnIOYxsaE834_oIg6C_oRqFz0MDv8qSqLtwEGpiJZvA,12054
231
- griptape_nodes/retained_mode/managers/static_files_manager.py,sha256=qQLOwugzqWoz2fzmOpXldU8U33R_WXQ8i4trIKodKv8,11494
222
+ griptape_nodes/retained_mode/managers/static_files_manager.py,sha256=rWeI5mO8CCdEHx1odo4z4pxfTy33ggzCcUwkRj67aNM,12408
232
223
  griptape_nodes/retained_mode/managers/sync_manager.py,sha256=dF6nAAy1DLDQydefx7v3EtPCBiCrk4vURMum57WfmK8,21448
233
224
  griptape_nodes/retained_mode/managers/user_manager.py,sha256=JAOOKDhUfIbj0CJ5EHRBcplmxheQTzeogbvGO23VqXQ,4508
234
225
  griptape_nodes/retained_mode/managers/variable_manager.py,sha256=TnuqHSRK9Yiu_EtKxQksF9SyyQb72lbFQuTQZdpBxeE,24116
235
- griptape_nodes/retained_mode/managers/version_compatibility_manager.py,sha256=P7mW_XD0Cbxw-vlRoi6pQ9cG7hUX_CLJS9p5M1JytHQ,17025
226
+ griptape_nodes/retained_mode/managers/version_compatibility_manager.py,sha256=kaCtmNMqJW-mvLCFHf77wbBZbc3CgW2h8fYYkLkNrPs,17041
236
227
  griptape_nodes/retained_mode/managers/workflow_manager.py,sha256=VCOV0BfkW9ynLhmH7jRvcEJnFr6YiAF0f76sc9wCjBg,215471
237
228
  griptape_nodes/retained_mode/retained_mode.py,sha256=dG8FFpLXSxT49naOcphEq2aSRCEVoQyklWgaDljjuDA,71728
238
229
  griptape_nodes/retained_mode/utils/__init__.py,sha256=W5dvv8YwvVVq_8eVTgMd3Z_VB_Dtq1sIIVq8745QH_I,52
@@ -272,12 +263,16 @@ griptape_nodes/utils/version_utils.py,sha256=Y-HJfJW6Jxuz_jOnHxMiy-pmMauHRnY-7BO
272
263
  griptape_nodes/version_compatibility/__init__.py,sha256=JMz1sB7Zsj6pS1S5sdsPR0kn89s1A0sB0kFIvygJYfo,74
273
264
  griptape_nodes/version_compatibility/versions/__init__.py,sha256=PWSxM28LPUdBdRPA98j4RUWvuZ4NqfX1day2VU6SqPw,74
274
265
  griptape_nodes/version_compatibility/versions/v0_39_0/__init__.py,sha256=21iKlFpsmBW4WsAexSD0WMAJnsYmMq2sIbDeYC831fc,62
275
- griptape_nodes/version_compatibility/versions/v0_39_0/modified_parameters_set_removal.py,sha256=ry9R4qrt9Mjs9CLQ9jSgiYO6k9AfIsN0rb0MZM7EXzs,3960
266
+ griptape_nodes/version_compatibility/versions/v0_39_0/modified_parameters_set_removal.py,sha256=KPTNQ2kl0WzEN-p83o4xGYMTvexwHDPp2wgympUVh00,4008
276
267
  griptape_nodes/version_compatibility/versions/v0_63_8/__init__.py,sha256=1VJswR2DcJko5y1TztzPuZRfXALG4S1MxmgAQnkKGHE,53
277
268
  griptape_nodes/version_compatibility/versions/v0_63_8/deprecated_nodegroup_parameters.py,sha256=MqrmFszysezVEqsrGXrAK7VKjkVaxUtkpHysg15MDeM,4401
269
+ griptape_nodes/version_compatibility/versions/v0_65_4/__init__.py,sha256=s0JltT_C0Odg9WH9WVPwPwhBaNFCa6r_hrbY3sgr6XE,212
270
+ griptape_nodes/version_compatibility/versions/v0_65_4/run_in_parallel_to_run_in_order.py,sha256=CLuPiN82dbxlYKVkIAIYJElo0_5PUbCQwK3AbflWuGQ,3051
271
+ griptape_nodes/version_compatibility/versions/v0_65_5/__init__.py,sha256=4UyspOVIbFcxXPbvR3Ejc5ojyKDjRSHc5lzRjXq-t5M,187
272
+ griptape_nodes/version_compatibility/versions/v0_65_5/flux_2_removed_parameters.py,sha256=jOlmY5kKHXh8HPzAUtvwMJqzD4bP7pkE--yHUb7jTRA,3305
278
273
  griptape_nodes/version_compatibility/versions/v0_7_0/__init__.py,sha256=IzPPmGK86h2swfGGTOHyVcBIlOng6SjgWQzlbf3ngmo,51
279
274
  griptape_nodes/version_compatibility/versions/v0_7_0/local_executor_argument_addition.py,sha256=Thx8acnbw5OychhwEEj9aFxvbPe7Wgn4V9ZmZ7KRZqc,2082
280
- griptape_nodes-0.65.6.dist-info/WHEEL,sha256=ZyFSCYkV2BrxH6-HRVRg3R9Fo7MALzer9KiPYqNxSbo,79
281
- griptape_nodes-0.65.6.dist-info/entry_points.txt,sha256=qvevqd3BVbAV5TcantnAm0ouqaqYKhsRO3pkFymWLWM,82
282
- griptape_nodes-0.65.6.dist-info/METADATA,sha256=F5feLpbXZiK3FXpKvy72L-rAAIGguJs8_NzvRmyWUes,5374
283
- griptape_nodes-0.65.6.dist-info/RECORD,,
275
+ griptape_nodes-0.66.1.dist-info/WHEEL,sha256=ZyFSCYkV2BrxH6-HRVRg3R9Fo7MALzer9KiPYqNxSbo,79
276
+ griptape_nodes-0.66.1.dist-info/entry_points.txt,sha256=qvevqd3BVbAV5TcantnAm0ouqaqYKhsRO3pkFymWLWM,82
277
+ griptape_nodes-0.66.1.dist-info/METADATA,sha256=wf5GdcViPaYyMMpwKRLIExwSWNmDg3hl2UWcuWVNRZc,5374
278
+ griptape_nodes-0.66.1.dist-info/RECORD,,