griptape-nodes 0.70.1__py3-none-any.whl → 0.72.0__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 (67) hide show
  1. griptape_nodes/api_client/client.py +8 -5
  2. griptape_nodes/app/app.py +4 -0
  3. griptape_nodes/bootstrap/utils/python_subprocess_executor.py +48 -9
  4. griptape_nodes/bootstrap/utils/subprocess_websocket_base.py +88 -0
  5. griptape_nodes/bootstrap/utils/subprocess_websocket_listener.py +126 -0
  6. griptape_nodes/bootstrap/utils/subprocess_websocket_sender.py +121 -0
  7. griptape_nodes/bootstrap/workflow_executors/local_session_workflow_executor.py +17 -170
  8. griptape_nodes/bootstrap/workflow_executors/local_workflow_executor.py +10 -1
  9. griptape_nodes/bootstrap/workflow_executors/subprocess_workflow_executor.py +13 -117
  10. griptape_nodes/bootstrap/workflow_executors/utils/subprocess_script.py +4 -0
  11. griptape_nodes/bootstrap/workflow_publishers/local_session_workflow_publisher.py +206 -0
  12. griptape_nodes/bootstrap/workflow_publishers/subprocess_workflow_publisher.py +22 -3
  13. griptape_nodes/bootstrap/workflow_publishers/utils/subprocess_script.py +49 -25
  14. griptape_nodes/common/node_executor.py +61 -14
  15. griptape_nodes/drivers/image_metadata/__init__.py +21 -0
  16. griptape_nodes/drivers/image_metadata/base_image_metadata_driver.py +63 -0
  17. griptape_nodes/drivers/image_metadata/exif_metadata_driver.py +218 -0
  18. griptape_nodes/drivers/image_metadata/image_metadata_driver_registry.py +55 -0
  19. griptape_nodes/drivers/image_metadata/png_metadata_driver.py +71 -0
  20. griptape_nodes/drivers/storage/base_storage_driver.py +32 -0
  21. griptape_nodes/drivers/storage/griptape_cloud_storage_driver.py +384 -10
  22. griptape_nodes/drivers/storage/local_storage_driver.py +65 -4
  23. griptape_nodes/drivers/thread_storage/local_thread_storage_driver.py +1 -0
  24. griptape_nodes/exe_types/base_iterative_nodes.py +1 -1
  25. griptape_nodes/exe_types/node_groups/base_node_group.py +3 -0
  26. griptape_nodes/exe_types/node_groups/subflow_node_group.py +18 -0
  27. griptape_nodes/exe_types/node_types.py +13 -0
  28. griptape_nodes/exe_types/param_components/log_parameter.py +4 -4
  29. griptape_nodes/exe_types/param_components/subflow_execution_component.py +329 -0
  30. griptape_nodes/exe_types/param_types/parameter_audio.py +17 -2
  31. griptape_nodes/exe_types/param_types/parameter_float.py +4 -4
  32. griptape_nodes/exe_types/param_types/parameter_image.py +14 -1
  33. griptape_nodes/exe_types/param_types/parameter_int.py +4 -4
  34. griptape_nodes/exe_types/param_types/parameter_number.py +12 -14
  35. griptape_nodes/exe_types/param_types/parameter_three_d.py +14 -1
  36. griptape_nodes/exe_types/param_types/parameter_video.py +17 -2
  37. griptape_nodes/node_library/workflow_registry.py +5 -8
  38. griptape_nodes/retained_mode/events/app_events.py +1 -0
  39. griptape_nodes/retained_mode/events/base_events.py +42 -26
  40. griptape_nodes/retained_mode/events/flow_events.py +67 -0
  41. griptape_nodes/retained_mode/events/library_events.py +1 -1
  42. griptape_nodes/retained_mode/events/node_events.py +1 -0
  43. griptape_nodes/retained_mode/events/os_events.py +22 -0
  44. griptape_nodes/retained_mode/events/static_file_events.py +28 -4
  45. griptape_nodes/retained_mode/managers/flow_manager.py +134 -0
  46. griptape_nodes/retained_mode/managers/image_metadata_injector.py +339 -0
  47. griptape_nodes/retained_mode/managers/library_manager.py +71 -41
  48. griptape_nodes/retained_mode/managers/model_manager.py +1 -0
  49. griptape_nodes/retained_mode/managers/node_manager.py +8 -5
  50. griptape_nodes/retained_mode/managers/os_manager.py +270 -33
  51. griptape_nodes/retained_mode/managers/project_manager.py +3 -7
  52. griptape_nodes/retained_mode/managers/session_manager.py +1 -0
  53. griptape_nodes/retained_mode/managers/settings.py +5 -0
  54. griptape_nodes/retained_mode/managers/static_files_manager.py +83 -17
  55. griptape_nodes/retained_mode/managers/workflow_manager.py +71 -41
  56. griptape_nodes/servers/static.py +31 -0
  57. griptape_nodes/utils/__init__.py +9 -1
  58. griptape_nodes/utils/artifact_normalization.py +245 -0
  59. griptape_nodes/utils/file_utils.py +13 -13
  60. griptape_nodes/utils/http_file_patch.py +613 -0
  61. griptape_nodes/utils/image_preview.py +27 -0
  62. griptape_nodes/utils/path_utils.py +58 -0
  63. griptape_nodes/utils/url_utils.py +106 -0
  64. {griptape_nodes-0.70.1.dist-info → griptape_nodes-0.72.0.dist-info}/METADATA +2 -1
  65. {griptape_nodes-0.70.1.dist-info → griptape_nodes-0.72.0.dist-info}/RECORD +67 -52
  66. {griptape_nodes-0.70.1.dist-info → griptape_nodes-0.72.0.dist-info}/WHEEL +1 -1
  67. {griptape_nodes-0.70.1.dist-info → griptape_nodes-0.72.0.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,58 @@
1
+ """Path utility functions."""
2
+
3
+ from pathlib import Path
4
+
5
+
6
+ def resolve_workspace_path(path: Path, base_directory: Path) -> Path:
7
+ """Resolve a path, treating relative paths as relative to a base directory.
8
+
9
+ If the path is relative, it's resolved relative to the base directory.
10
+ If the path is absolute, it's resolved as-is.
11
+
12
+ This utility works with any base directory - workspace_directory, project_base_dir,
13
+ or any other base path.
14
+
15
+ Args:
16
+ path: The path to resolve (can be relative or absolute)
17
+ base_directory: The base directory to use for relative paths
18
+
19
+ Returns:
20
+ The resolved absolute path
21
+
22
+ Example:
23
+ >>> base = Path("/workspace")
24
+ >>> resolve_workspace_path(Path("file.txt"), base)
25
+ Path("/workspace/file.txt")
26
+ >>> resolve_workspace_path(Path("/tmp/file.txt"), base)
27
+ Path("/tmp/file.txt")
28
+ """
29
+ if not path.is_absolute():
30
+ return (base_directory / path).resolve()
31
+ return path.resolve()
32
+
33
+
34
+ def get_workspace_relative_path(path: Path, base_directory: Path) -> Path:
35
+ """Convert a path to be relative to a base directory.
36
+
37
+ Takes an absolute or relative path and returns it as a path relative to
38
+ the base directory.
39
+
40
+ This utility works with any base directory - workspace_directory, project_base_dir,
41
+ or any other base path.
42
+
43
+ Args:
44
+ path: The path to convert (can be relative or absolute)
45
+ base_directory: The base directory to make the path relative to
46
+
47
+ Returns:
48
+ Path relative to base_directory
49
+
50
+ Example:
51
+ >>> base = Path("/workspace")
52
+ >>> get_workspace_relative_path(Path("/workspace/subdir/file.txt"), base)
53
+ Path("subdir/file.txt")
54
+ >>> get_workspace_relative_path(Path("file.txt"), base)
55
+ Path("file.txt")
56
+ """
57
+ absolute_path = resolve_workspace_path(path, base_directory)
58
+ return absolute_path.relative_to(base_directory.resolve())
@@ -0,0 +1,106 @@
1
+ import logging
2
+ import mimetypes
3
+ from pathlib import Path
4
+ from urllib.parse import urlparse
5
+ from urllib.request import url2pathname
6
+
7
+ logger = logging.getLogger("griptape_nodes")
8
+
9
+ # Default timeout for HTTP requests
10
+ DEFAULT_HTTP_TIMEOUT = 30.0
11
+
12
+
13
+ def get_content_type_from_extension(file_path: str | Path) -> str | None:
14
+ """Get content type from file extension.
15
+
16
+ Args:
17
+ file_path: Path or URL with file extension
18
+
19
+ Returns:
20
+ MIME type string or None if unknown
21
+ """
22
+ if isinstance(file_path, str):
23
+ file_path = Path(file_path)
24
+
25
+ # Use mimetypes to guess from extension
26
+ mime_type, _ = mimetypes.guess_type(str(file_path))
27
+ return mime_type
28
+
29
+
30
+ def uri_to_path(uri: str) -> Path:
31
+ """Convert a file URI to a file system path."""
32
+ # TODO: replace with Path.from_uri() when we upgrade to python >=3.13
33
+ # https://docs.python.org/3/library/pathlib.html#pathlib.Path.from_uri
34
+ parsed = urlparse(uri)
35
+ return Path(url2pathname(parsed.path))
36
+
37
+
38
+ def is_url_or_path(value: str) -> bool:
39
+ """Check if a value is a URL or file path.
40
+
41
+ This utility determines if a string represents a fetchable resource
42
+ (URL or file path) without validating reachability or existence.
43
+
44
+ Returns True for:
45
+ - HTTP/HTTPS URLs: http://example.com/file.txt
46
+ - file:// URLs: file:///path/to/file
47
+ - File system paths (absolute or relative)
48
+
49
+ Returns False for:
50
+ - data: URIs (inline data, not fetchable)
51
+ - Other URI schemes (ftp://, mailto:, etc.)
52
+ - Empty strings or whitespace
53
+ - Plain text without path indicators
54
+
55
+ Note:
56
+ This function does NOT check if URLs are reachable or if
57
+ file paths exist. It only validates the format.
58
+
59
+ Args:
60
+ value: String to check
61
+
62
+ Returns:
63
+ True if value looks like a URL or path, False otherwise
64
+
65
+ Examples:
66
+ >>> is_url_or_path("https://example.com/image.png")
67
+ True
68
+ >>> is_url_or_path("file:///path/to/file.txt")
69
+ True
70
+ >>> is_url_or_path("/absolute/path/file.txt")
71
+ True
72
+ >>> is_url_or_path("./relative/path.txt")
73
+ True
74
+ >>> is_url_or_path("data:image/png;base64,...")
75
+ False
76
+ >>> is_url_or_path("ftp://ftp.example.com")
77
+ False
78
+ >>> is_url_or_path("")
79
+ False
80
+ """
81
+ # Guard: empty or whitespace-only strings
82
+ if not value or not value.strip():
83
+ return False
84
+
85
+ # Fast path: Check for known URL schemes
86
+ if value.startswith(("http://", "https://", "file://")):
87
+ return True
88
+
89
+ # Exclude other URI schemes (data:, ftp:, mailto:, javascript:, etc.)
90
+ # Check for :// (full URI schemes) and single : schemes
91
+ if "://" in value or (
92
+ ":" in value
93
+ and value[1:3] != ":\\" # Allow Windows drive letters (C:\)
94
+ and value[0] != "/" # Allow Unix paths with : in filename
95
+ ):
96
+ return False
97
+
98
+ # Check if it's a valid file path by attempting to create a Path object
99
+ # Path() handles cross-platform paths (Unix, Windows, UNC)
100
+ try:
101
+ Path(value)
102
+ except (ValueError, OSError):
103
+ # Invalid path (e.g., contains illegal characters on Windows)
104
+ return False
105
+ else:
106
+ return True
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: griptape-nodes
3
- Version: 0.70.1
3
+ Version: 0.72.0
4
4
  Summary: Add your description here
5
5
  Requires-Dist: griptape>=1.9.0
6
6
  Requires-Dist: pydantic>=2.10.6
@@ -29,6 +29,7 @@ Requires-Dist: ruamel-yaml>=0.18.15
29
29
  Requires-Dist: asyncio-thread-runner>=1.0
30
30
  Requires-Dist: portalocker>=2.10.0
31
31
  Requires-Dist: pygit2>=1.19.0
32
+ Requires-Dist: send2trash>=2.1.0
32
33
  Requires-Dist: austin-dist>=3.7.0 ; extra == 'profiling'
33
34
  Requires-Python: >=3.12.0, <3.13
34
35
  Provides-Extra: profiling
@@ -1,27 +1,31 @@
1
1
  griptape_nodes/__init__.py,sha256=WxWjICLxwuyZGDpPUyCmj047GbN7PIspi4YMWgmrrQc,671
2
2
  griptape_nodes/__main__.py,sha256=fJhor6_1A27abwbnceyNheONP1iXkPzjjsV5jBEfF2M,144
3
3
  griptape_nodes/api_client/__init__.py,sha256=9iyLcPbcXjxxLhhCSYQ5zgvlwxceyrNXDE8YhOIVH8g,216
4
- griptape_nodes/api_client/client.py,sha256=fNTs-xJL8deRWceGKBGOCeKwMt6Rd0vi-jCxniZk79E,9870
4
+ griptape_nodes/api_client/client.py,sha256=df6fus5zNFOSFQJft2nmoo-hsFPoNfCihZRwWymAzcA,10006
5
5
  griptape_nodes/api_client/request_client.py,sha256=Z5lJVoG2a9hudTAQTnniaCHbBko0X1FyoakiQMimq7g,9713
6
6
  griptape_nodes/app/.python-version,sha256=e1X45ntWI8S-8_ppEojalDfXnTq6FW3kjUgdsyrH0W0,5
7
7
  griptape_nodes/app/__init__.py,sha256=DB-DTsgcNnbmEClXEouwzGhrmo3gHBCWXB9BkPGpdQI,90
8
- griptape_nodes/app/app.py,sha256=bbaRe1khQNRZ1fziDdeokkR-M3K7tvKDpCl4eVm-R4g,18014
8
+ griptape_nodes/app/app.py,sha256=nhNMrebziKOHDnUxKNoTHRQxqKJ-0liveZO-9k_TdD4,18149
9
9
  griptape_nodes/app/watch.py,sha256=hKVP_SuV9C17bH1h9o4uIVTKH-IL_-0iyHaNYmILTWU,1594
10
10
  griptape_nodes/bootstrap/__init__.py,sha256=ENv3SIzQ9TtlRrg1y4e4CnoBpJaFpFSkNpTFBV8X5Ls,25
11
11
  griptape_nodes/bootstrap/utils/__init__.py,sha256=tlNEApJLZazcBNhxkTdup4URwznnz4nZxjSaRfFrTBM,31
12
- griptape_nodes/bootstrap/utils/python_subprocess_executor.py,sha256=_XUQxrxt8n3vPv3_UHFlaAFRSODLhzKmAK5iNcf92lg,4847
12
+ griptape_nodes/bootstrap/utils/python_subprocess_executor.py,sha256=jZltd_CgDsa7lcxieI71iouqXfRDxyXrg0wfIFuAUDA,6330
13
+ griptape_nodes/bootstrap/utils/subprocess_websocket_base.py,sha256=PfgpdRVe_d-jLPbUu3a_OzhWsm7RBZNWicPMTowyUkA,2809
14
+ griptape_nodes/bootstrap/utils/subprocess_websocket_listener.py,sha256=6bBKO-DaB2QT9FX9vLckQgYcCXHZ6kKCU3lVwqbVo04,4626
15
+ griptape_nodes/bootstrap/utils/subprocess_websocket_sender.py,sha256=DDtCr8UgkSD8h7zhduWEXuEpjusKcDyksoznaK99EAg,4678
13
16
  griptape_nodes/bootstrap/workflow_executors/__init__.py,sha256=pyjN81-eLtjyECFYLXOtMCixiiI9qBi5yald86iM7Ek,34
14
- griptape_nodes/bootstrap/workflow_executors/local_session_workflow_executor.py,sha256=Zqb9yQe-3PxcaCEpLVcq6CQPn5iwjl5TJjQehm1fvZ0,16652
15
- griptape_nodes/bootstrap/workflow_executors/local_workflow_executor.py,sha256=jp81z4QFSuQsXigKN0h2Ywo0Tr_whbxFG-TJ7MCrS2Q,10263
16
- griptape_nodes/bootstrap/workflow_executors/subprocess_workflow_executor.py,sha256=2uDtGLtsEJcSzpCd8nEdRsIP6CDcIumTcI51izHlWUA,12944
17
+ griptape_nodes/bootstrap/workflow_executors/local_session_workflow_executor.py,sha256=yS3b3wrqZbxRuNRDFynFsMI7cThhaNa0UERGarG_1Xw,9923
18
+ griptape_nodes/bootstrap/workflow_executors/local_workflow_executor.py,sha256=tYaAzOrydmEnsW8F0fTbEhD8ULrbCt4jqHUjYGbeehs,10648
19
+ griptape_nodes/bootstrap/workflow_executors/subprocess_workflow_executor.py,sha256=zBtTN8_BF9oq6NoujpBTsY48zX5ttVSOg8nw-LgF4so,8467
17
20
  griptape_nodes/bootstrap/workflow_executors/utils/__init__.py,sha256=IEz4GHM4-w_u6VpLemrj-V38v8aZJinr5Wya9ucEad0,40
18
- griptape_nodes/bootstrap/workflow_executors/utils/subprocess_script.py,sha256=LCW6P3s3DTG_cUvG41l4GxRyj43c1p9yYlcJMACeW3s,1659
21
+ griptape_nodes/bootstrap/workflow_executors/utils/subprocess_script.py,sha256=thj-seoUIKKCJTlaXQ4x7U4WMcI7kmHQ3Ah3jkc7Jrw,1808
19
22
  griptape_nodes/bootstrap/workflow_executors/workflow_executor.py,sha256=c9FQXcvskas9N3G5OnTQO2SxJZJVoxbn7lug1GIRUBw,1074
20
23
  griptape_nodes/bootstrap/workflow_publishers/__init__.py,sha256=7ncdCGtEArgTBgSFDNCSBoIIAJpzlph1wTd2wipwvvM,35
24
+ griptape_nodes/bootstrap/workflow_publishers/local_session_workflow_publisher.py,sha256=v7ZwNv7C1RZEavv5y1RvdNyepAfoSYS6PuHFib0iTec,8355
21
25
  griptape_nodes/bootstrap/workflow_publishers/local_workflow_publisher.py,sha256=ZLe0Bf-LVdeLgTkfzndawUaB-1P8AdZrM732ZMxcNaw,1721
22
- griptape_nodes/bootstrap/workflow_publishers/subprocess_workflow_publisher.py,sha256=h1Se4wjFMFFt9v_PD6QqBzujkDd_7w7mYxAIBXO4j_w,2994
26
+ griptape_nodes/bootstrap/workflow_publishers/subprocess_workflow_publisher.py,sha256=V3RnyIbT63NmwyMIhpgshBd5X_aaBbeKK1tEIna1hcY,3953
23
27
  griptape_nodes/bootstrap/workflow_publishers/utils/__init__.py,sha256=Kj-IIxgg01ihyUmLWgZu4ZJ6M7V1fK4Efw9quCcu-ZM,41
24
- griptape_nodes/bootstrap/workflow_publishers/utils/subprocess_script.py,sha256=5NfuaGrL-97Wb6JORRhR-zU4ooj3FaxOjqJizGb96Y0,2060
28
+ griptape_nodes/bootstrap/workflow_publishers/utils/subprocess_script.py,sha256=C8YRVi7auUyNgkXq_baG2ZTGgNKCsykJcjwufWWpXFQ,2912
25
29
  griptape_nodes/cli/__init__.py,sha256=HuXHtxqDMtpYRokxiFYuNB7R5EgkOshPil273kTmgNg,33
26
30
  griptape_nodes/cli/commands/__init__.py,sha256=8EbS15rm9xrbcPocuQO2RmOwSD1BBwa8iDgPSdsvzuU,35
27
31
  griptape_nodes/cli/commands/config.py,sha256=zh5rs2vCY_x9dEUK2jtQQJGcjlJzhpJJ-EgHHvkrvdg,2302
@@ -42,7 +46,7 @@ griptape_nodes/common/macro_parser/matching.py,sha256=hnlPIihz8W1TGnfq4anbBGciwg
42
46
  griptape_nodes/common/macro_parser/parsing.py,sha256=_37L3lCQFeetamWIiHT0C7eW1E3Wyx5V8y8OWzIUw_g,7428
43
47
  griptape_nodes/common/macro_parser/resolution.py,sha256=30_bAIRMKWw-kM3E1ne-my16xT1Wd734JMmZSOZtNPA,6937
44
48
  griptape_nodes/common/macro_parser/segments.py,sha256=r-WbZas1nSc-PlEdAZ7DycNoD6IUf3R_nhGo3T9vIa8,1010
45
- griptape_nodes/common/node_executor.py,sha256=zaVCw4BxurjwhVhCA9ujGXw2xzC4-Tkvjo3SFtY0S7Y,147191
49
+ griptape_nodes/common/node_executor.py,sha256=J8o761b6cngVKILo7OTeqRP8xhp8e8dop4glFs5VeP8,149648
46
50
  griptape_nodes/common/project_templates/__init__.py,sha256=5DP6Sa6ClsdDcjD30pkK0iTTysTgGdRKEkeY7ztHZyc,1541
47
51
  griptape_nodes/common/project_templates/default_project_template.py,sha256=PJFPfziH0EOGVxU5L0wZnc21bVVweW4S7wcnGPF45Co,3120
48
52
  griptape_nodes/common/project_templates/defaults/README.md,sha256=1ou6_OFi7-t86nj-7tulW1vxNMtsvkJmNxr6SseG8hA,1080
@@ -52,26 +56,31 @@ griptape_nodes/common/project_templates/project.py,sha256=X5llrgpBS47bsE6De_uW1G
52
56
  griptape_nodes/common/project_templates/situation.py,sha256=MlpBYrtPvkzIa_j_1NFeDb_V6wXdmixMH3U4eKDBMzw,5567
53
57
  griptape_nodes/common/project_templates/validation.py,sha256=LPm0gri05ZIbSfCqOM4duuaXPIeAk3YWMstM5w5O8ho,4399
54
58
  griptape_nodes/drivers/__init__.py,sha256=tHmiFQn6uJyFVhC2PrqHgRUH3d3yDsqMQpWqRasmaqA,42
59
+ griptape_nodes/drivers/image_metadata/__init__.py,sha256=_mHj6GmgJEEDcmsT0xeDQ60u6Io8aVlKEMd5osJk4Dw,873
60
+ griptape_nodes/drivers/image_metadata/base_image_metadata_driver.py,sha256=31ybzfTBoz_kKIA2skQxZN3KQshSz-bQX7CM1ygTd5w,2092
61
+ griptape_nodes/drivers/image_metadata/exif_metadata_driver.py,sha256=vYy6iwKLnlB72pORHHUMe3N6smpg1FHuIsEmQ_wOpvI,7902
62
+ griptape_nodes/drivers/image_metadata/image_metadata_driver_registry.py,sha256=tgEjaPh7MZQ7A83zHS1A36J07vHput6SSfnqWZqgDHo,1792
63
+ griptape_nodes/drivers/image_metadata/png_metadata_driver.py,sha256=MrhX0A90xarqhN6MlkTAqqHd_IPTT23_MCN-xtxr3yA,2540
55
64
  griptape_nodes/drivers/storage/__init__.py,sha256=_7p8vJt3YnnF6sD3Uxxw38c-gazuMIHSS-m3G6sa2Qk,208
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
65
+ griptape_nodes/drivers/storage/base_storage_driver.py,sha256=nu_wwwzXSD0NWNesOYhc5xsgmyWItegj5E_dbZUWzt0,5402
66
+ griptape_nodes/drivers/storage/griptape_cloud_storage_driver.py,sha256=_g-3b23MSypXdKSBrNUPXldjGXzFR5QPMYaz5SawNHE,21835
67
+ griptape_nodes/drivers/storage/local_storage_driver.py,sha256=dul7f3yjPRgXcF5UaJHYKpV3P-tF2w2lY0m-xZoKxGg,8042
59
68
  griptape_nodes/drivers/storage/storage_backend.py,sha256=3QBIwrgPc1krBIiPYLoK2swhIPDiKJnnucOEdyx7y3c,184
60
69
  griptape_nodes/drivers/thread_storage/__init__.py,sha256=JkCafJ978K63ad8PWtTIC7af70nxMjbp13ZJz2_55Bs,604
61
70
  griptape_nodes/drivers/thread_storage/base_thread_storage_driver.py,sha256=yckq3ckw5ZQgBz-wwUVdYzTht9r0dBB1DdJNgrt63ZM,2944
62
71
  griptape_nodes/drivers/thread_storage/griptape_cloud_thread_storage_driver.py,sha256=90n6bpHS1GK-9_P2YKFFtnwzoemtVX-Bh4cR3ycmGoQ,7701
63
- griptape_nodes/drivers/thread_storage/local_thread_storage_driver.py,sha256=I1p2XudP89sUMsRa0DBxGXzsOFEpURLbtF01C_Wpkts,5406
72
+ griptape_nodes/drivers/thread_storage/local_thread_storage_driver.py,sha256=vKiRPNhkihdYCCnZaVSl0Hu3zRAx4YvtKdwHeGqileE,5511
64
73
  griptape_nodes/drivers/thread_storage/thread_storage_backend.py,sha256=QXLvFOZrFx7aPBmwVGaN-IHxwRAf_sXN7YWKY6tcwgE,204
65
74
  griptape_nodes/exe_types/__init__.py,sha256=wGGwKGX9-TSarUFbXpDvdU_J7eXIbWTBl_NCLOZa-G8,32
66
- griptape_nodes/exe_types/base_iterative_nodes.py,sha256=z2u4Pb9iqy2Zl3gz_LB7k6hmxYyet1Z6sLjF8afPN_0,43810
75
+ griptape_nodes/exe_types/base_iterative_nodes.py,sha256=hwEA0QWh4H2M6g8iuVahI_TUK8nm-A9r3UJS7EtEa28,43794
67
76
  griptape_nodes/exe_types/connections.py,sha256=HcM_fwWivMsXk5q6K7ZBSJpmK9THQwX_xLS_daF0PDQ,21737
68
77
  griptape_nodes/exe_types/core_types.py,sha256=XrMT0Rf0bPZBcx06f1GUTi5G_IwLgdyzGjBKkUwRh3M,101505
69
78
  griptape_nodes/exe_types/flow.py,sha256=2iAh3vN5wnMVxTc5jcPBg9TSiASq1DGIm5jgpO9Bdq4,5732
70
79
  griptape_nodes/exe_types/node_groups/__init__.py,sha256=u91XCSR4OAAr6x5kYq8i14mtHEWGQF_fSDUsWHmiOdY,346
71
80
  griptape_nodes/exe_types/node_groups/base_iterative_node_group.py,sha256=sPPy3Psl-Ku_R46upWm_8hIGFLNPeLpUBN_Sm4RzXzg,9655
72
- griptape_nodes/exe_types/node_groups/base_node_group.py,sha256=loDdJKllRPpWSSk-jJpqbBto80yn5oZGc6Jl-VXa_8A,3955
73
- griptape_nodes/exe_types/node_groups/subflow_node_group.py,sha256=UlZS95TKUCWiHgg6z4Wm1t9xXfUjWhk0L8pB5cXMcV0,48361
74
- griptape_nodes/exe_types/node_types.py,sha256=Hrzun9DN4FA-Yk-YQXBFyGrH1-kzszd9eVq4y6rmV5Y,84226
81
+ griptape_nodes/exe_types/node_groups/base_node_group.py,sha256=V1q7khSQF0pOqKvUyVUyiJssp9S4BHDInrqCo7OoyWQ,4082
82
+ griptape_nodes/exe_types/node_groups/subflow_node_group.py,sha256=rTW0Uili0E_a5ho8p9bloNDLUjCUuxwgEgJGXfZ4KUY,49273
83
+ griptape_nodes/exe_types/node_types.py,sha256=E-9IDWEjWLwK5ujJRK-6jXZq5yikK7_ZVn81R9kXeUQ,84737
75
84
  griptape_nodes/exe_types/param_components/README.md,sha256=mcNFxJIan9CGTnecsrJ8mkHC55dlA3fb7k4HFznou-k,14850
76
85
  griptape_nodes/exe_types/param_components/__init__.py,sha256=ocm75WnsgiD6ozKVGFhoH9cQe_FEzeF2osxrRujOes0,60
77
86
  griptape_nodes/exe_types/param_components/api_key_provider_parameter.py,sha256=MHn5zYb2vEf4bGBfbnTjCfVYEbpZtXThb8JJAAMpuR8,7766
@@ -84,23 +93,24 @@ griptape_nodes/exe_types/param_components/huggingface/huggingface_repo_file_para
84
93
  griptape_nodes/exe_types/param_components/huggingface/huggingface_repo_parameter.py,sha256=zcBRQP0eZJloSdPQwJFw89B6QDHECnrosRZUy8mE2fM,1401
85
94
  griptape_nodes/exe_types/param_components/huggingface/huggingface_repo_variant_parameter.py,sha256=FaaDZ4dvZJCnpqSOKfJ5nR1klgl07JZto2A7gxhUi3o,5290
86
95
  griptape_nodes/exe_types/param_components/huggingface/huggingface_utils.py,sha256=cE0Ht81kDcZjlN_2VoRirCA4zMlrG9GFlcptn-gC2tU,4696
87
- griptape_nodes/exe_types/param_components/log_parameter.py,sha256=_v6NH1lz9FrEKf2uMIOlwxzKTy5Vl3EAZai54lAMF1g,4313
96
+ griptape_nodes/exe_types/param_components/log_parameter.py,sha256=QSiBdkTtAj_HDWJwUZJh1uEEWmQ_TxGeMHN4uumjrcM,4263
88
97
  griptape_nodes/exe_types/param_components/progress_bar_component.py,sha256=GrAFTOrLNAx6q9zfOqiioPTG_NLHKhTe9NiZOo6zGSc,1949
89
98
  griptape_nodes/exe_types/param_components/seed_parameter.py,sha256=I48cVAojrD5oX4CT7v0x9LX6MrKVklywkp8IjE5pGIo,2321
99
+ griptape_nodes/exe_types/param_components/subflow_execution_component.py,sha256=NnIIk_0aKMrpa-ricD9_bwMJmghlpwBLO95iACuJNS4,13177
90
100
  griptape_nodes/exe_types/param_types/__init__.py,sha256=xEEmKvIFF6M7zVjQZCupbbv6SZKt-itD-rPtfRhxJVg,53
91
- griptape_nodes/exe_types/param_types/parameter_audio.py,sha256=9oIBtDg6miZDD_5y8VWr6XXjYhsRb9HjSKoaLdgqaHA,9534
101
+ griptape_nodes/exe_types/param_types/parameter_audio.py,sha256=JmctLDsuo8lEOBlDjrHs1be8HUub7IZDa8Rimpng1SE,10330
92
102
  griptape_nodes/exe_types/param_types/parameter_bool.py,sha256=VS76CODOy7_1MJI9spxmi9VwL3fwCxRKaj_8zpqB7dw,8215
93
103
  griptape_nodes/exe_types/param_types/parameter_button.py,sha256=lrFnw4dBRKTSsaMxSVMOwtAV8a-Tcex2Tf58u25qCy8,17292
94
104
  griptape_nodes/exe_types/param_types/parameter_dict.py,sha256=vbgasnkx9U9-h43geRhLjQ60ekhFlLBvuCVT9wHgWdY,6016
95
- griptape_nodes/exe_types/param_types/parameter_float.py,sha256=9msvMnmzYGNpqFpGyTT4tswiAlHomo9Y5EiYsydT7IM,6793
96
- griptape_nodes/exe_types/param_types/parameter_image.py,sha256=FeoqQdr1dj0F60WK0pVyNyzYsZCDjt4JiZQn252Oz3I,9433
97
- griptape_nodes/exe_types/param_types/parameter_int.py,sha256=06h1QpWaWLeP2tlRRW5IOGO-t_ZlxsWqnezlgoyBKaE,6942
105
+ griptape_nodes/exe_types/param_types/parameter_float.py,sha256=yZbcvIB_jyOtdi11_OCB2DAyU9KSCPRgwwosqaaibC8,6871
106
+ griptape_nodes/exe_types/param_types/parameter_image.py,sha256=yV6WAx_2hR4LWZtiqR9Z_xe9jFNdnwg16vZsx-SPGKI,10162
107
+ griptape_nodes/exe_types/param_types/parameter_int.py,sha256=iYzyMiL1XnR-nAWRF5ZTuvTf_y7cGjwzVk9nhnKy2wI,7020
98
108
  griptape_nodes/exe_types/param_types/parameter_json.py,sha256=M5A0_XhTKZ8qVBd1db55UA23H3nmaqryaITeN2-GwB0,9961
99
- griptape_nodes/exe_types/param_types/parameter_number.py,sha256=GuQ6jbs8LQByl4UUBhgY_INdCWeNM7qOlDMYC-SZsK8,16012
109
+ griptape_nodes/exe_types/param_types/parameter_number.py,sha256=KyNFR9zo6uKgbagugWzp7FXV0DkIVnXpENCSqiVIASI,15966
100
110
  griptape_nodes/exe_types/param_types/parameter_range.py,sha256=fkCBN0X09fAfTG9AhKQ3Nxkit_8NrFi4IGQPpmOQR8k,14689
101
111
  griptape_nodes/exe_types/param_types/parameter_string.py,sha256=-Q_9FwPtCXzpbv1C5FixLEET0c9WLJ228168IaSlZEU,9583
102
- griptape_nodes/exe_types/param_types/parameter_three_d.py,sha256=wbUeWJUVPJW5JJrkckzGnTM6SsWPSQNupyHGVoBjrOA,8393
103
- griptape_nodes/exe_types/param_types/parameter_video.py,sha256=_GhpqZwn3kFJIJA7w-oiK2DHFfPW_JosMgUFlWvK6r0,9454
112
+ griptape_nodes/exe_types/param_types/parameter_three_d.py,sha256=xv-uUj9vZPjKNcotJCXm3GYhsIbQLEN7GkTn9G_2jsA,9155
113
+ griptape_nodes/exe_types/param_types/parameter_video.py,sha256=1DkHeW0mEcPYlcTVPN0dq-u33-SzpvyqLJ_ugn2Kj_k,10250
104
114
  griptape_nodes/exe_types/type_validator.py,sha256=RTz1vX09jzQpHhozITMJ0siOZUXvsERDhrApjdaM1WM,1120
105
115
  griptape_nodes/machines/__init__.py,sha256=v0jkwr-CFOLmfEYUQvX8BKQLOdvhSsA6toXkdHcPGUE,30
106
116
  griptape_nodes/machines/control_flow.py,sha256=mmiA7OHXG3Nq36uFPKSGVgqm-ws-T21vzHgvF-um0hg,23007
@@ -112,33 +122,33 @@ griptape_nodes/mcp_server/__init__.py,sha256=GSpJWqE4lICaryhsQR1okeMH2x6j1bBL0HV
112
122
  griptape_nodes/node_library/__init__.py,sha256=U3FcSdmq6UW7qt6E3Up3NWKvUEn5_5lqL-u5qbzfxMQ,28
113
123
  griptape_nodes/node_library/advanced_node_library.py,sha256=B1ZaxuFIzQ6tx_3MLIxlsHuahthEC1Hw_t6K_ByIdzs,2104
114
124
  griptape_nodes/node_library/library_registry.py,sha256=siLAkVN3f56C2Ks7RwXnKGgKIYT_j8nZOOFUd3s6Zyo,15941
115
- griptape_nodes/node_library/workflow_registry.py,sha256=vRnZ6RSFRAf_XOOTrirLhrcmq8BK434XUdynNQ1gGMU,10523
125
+ griptape_nodes/node_library/workflow_registry.py,sha256=PqFlgMOQIcZOXrRA9ysgU9cmYM9QIT9tKKMhqmP5mSc,10448
116
126
  griptape_nodes/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
127
  griptape_nodes/retained_mode/__init__.py,sha256=X12DKL6KhLsiRTPIlrPj2h76_sJ0q0eH4r0kMQkodm0,29
118
128
  griptape_nodes/retained_mode/events/__init__.py,sha256=7B1C-c0jVvnShtHJ2lfX6BZPE0U1DgQwg1e4DorhKG0,22
119
129
  griptape_nodes/retained_mode/events/agent_events.py,sha256=WGxjoiStQW7uwhpPmXqLrj06pGAeGm2zAsCSLqHDS3U,10747
120
- griptape_nodes/retained_mode/events/app_events.py,sha256=C_HsAi8h1Ip0UbtbJAT6RkzrL__5psC1q6CO-ZKyuBs,10262
130
+ griptape_nodes/retained_mode/events/app_events.py,sha256=i3m3Vqn1s_fGsjfJSLxewESx7JHB-8Wu76mVeClWQYM,10301
121
131
  griptape_nodes/retained_mode/events/arbitrary_python_events.py,sha256=uhep1c1xjUc-YQO5nIStAE48PS6rFZLTDQIr_Qb3we8,1460
122
- griptape_nodes/retained_mode/events/base_events.py,sha256=PkE1o-K4EomLM96G5H3a_P3q7Fd4jhzIwbN3MNYtb50,22859
132
+ griptape_nodes/retained_mode/events/base_events.py,sha256=YvsMfSE6BhPO0qgelg1N_JMXRYDansRCpiyCqnlhF18,23212
123
133
  griptape_nodes/retained_mode/events/config_events.py,sha256=Y03YMLoJTXy0Sz6tq-6lOIs37CmXn1Br3GYAinl02nY,7070
124
134
  griptape_nodes/retained_mode/events/connection_events.py,sha256=YnrYPIUE-BdHMBbahhiRhcIBzJ4zLttw4uRWtYJrEXg,4956
125
135
  griptape_nodes/retained_mode/events/context_events.py,sha256=-FIwjI0hJodDhfM4BF-3GTRycu80v1TlSSOX34oA9nA,2122
126
136
  griptape_nodes/retained_mode/events/execution_events.py,sha256=AQHD04wxQXJDHGnw_ij4QvdUoiMckpMTZqZJX3ehGgA,13512
127
- griptape_nodes/retained_mode/events/flow_events.py,sha256=UcRHfaubb1GpDFSPg-5HRWrPnA7ifH1zBMYtWnYNy_E,19434
137
+ griptape_nodes/retained_mode/events/flow_events.py,sha256=2MryrRedbcNEeNgX6W1uyNHooHrEMRw4hU2qQQO7W-Y,21951
128
138
  griptape_nodes/retained_mode/events/generate_request_payload_schemas.py,sha256=PQ0QRZAUBljSIGjB8QhYUeRmSrfmLsJ6XVcygJKi13I,1102
129
- griptape_nodes/retained_mode/events/library_events.py,sha256=4NUc3uoLgofo1X9nrCVl2zPX3hsnk06Oo4Op0AQKA5o,36229
139
+ griptape_nodes/retained_mode/events/library_events.py,sha256=3N-tNK9EUV7q33Ga3Dt4WJ5q0VUn5aKYb7op7W7Nlmc,36231
130
140
  griptape_nodes/retained_mode/events/logger_events.py,sha256=jYlxzPomgCsJuPtJ0znWBhD8QJfC8qC4xfChDiuVuyg,705
131
141
  griptape_nodes/retained_mode/events/mcp_events.py,sha256=fs83jAQamhwNC9Zt8UNkBKd6iTids8531V_RMnGj__o,11008
132
142
  griptape_nodes/retained_mode/events/model_events.py,sha256=jXm-v-_Uxysn4MJ7a80_uIphrxTHgua3BGgHGyy3T_Y,9232
133
- griptape_nodes/retained_mode/events/node_events.py,sha256=9yTdTrFNd5JATvHk5x3ucznMou3ZzYxgpCgNjAF-GuU,38760
143
+ griptape_nodes/retained_mode/events/node_events.py,sha256=uAOBhTIMG6JxykX1hWwwhSSGkGKm58r5vrAMA5Iaqlw,38809
134
144
  griptape_nodes/retained_mode/events/object_events.py,sha256=cJaqEU73Lzf1RRxJrFqEpl8eTr-gDhKpXKywJ-vVCJQ,2631
135
- griptape_nodes/retained_mode/events/os_events.py,sha256=fVraPXCz48kDpCTttJFtsyfTfkaLSfTX57hexYSD7I8,23429
145
+ griptape_nodes/retained_mode/events/os_events.py,sha256=gIsXuozwdAp9MmhfK0saxeTwy3r-IpE3_iSRn7BWb7Y,24429
136
146
  griptape_nodes/retained_mode/events/parameter_events.py,sha256=TazVXxvfv64n3XJzToOQKiWQ1UIzrUAB4ri_QIvZ2ng,26968
137
147
  griptape_nodes/retained_mode/events/payload_registry.py,sha256=q-wxUqp63vhNj-Pl1JGJHnBkhUefcCArPoMN3KBREEI,1691
138
148
  griptape_nodes/retained_mode/events/project_events.py,sha256=C_jHk_7dRJLtbRgCi8IGe-mH46tueuTxLxGL7xxZVBI,17096
139
149
  griptape_nodes/retained_mode/events/resource_events.py,sha256=K47UK92wvaRtHu3ByfhkQEMyorrV0ArGewrFSJuVMiI,9015
140
150
  griptape_nodes/retained_mode/events/secrets_events.py,sha256=fCw3OMFfxB8FTZs4ybojm1nqNvhcjtoNylQhX75-jkM,4156
141
- griptape_nodes/retained_mode/events/static_file_events.py,sha256=c8kKkrxAPZxrE9fsldpWtweK1C4T-1-dHWw_76SRehM,3764
151
+ griptape_nodes/retained_mode/events/static_file_events.py,sha256=jFSuOb0vIWygR9u_dlS4se4OjPh13giN5NNYgIJSHoQ,4923
142
152
  griptape_nodes/retained_mode/events/sync_events.py,sha256=AoxBZLPPdzx4S5CiOJVRDebHnQb349Dq5jVO8Fh_sn8,2016
143
153
  griptape_nodes/retained_mode/events/validation_events.py,sha256=H2yWoHp2t7QwGV_fDQXRy7JojYnK4k6SOAlEvRYST_Q,3062
144
154
  griptape_nodes/retained_mode/events/variable_events.py,sha256=fnl_sY8GWI_R4UJQTEJSlmsyCD9TiEW0U2UD2seBabs,10587
@@ -201,15 +211,16 @@ griptape_nodes/retained_mode/managers/fitness_problems/workflows/node_type_not_f
201
211
  griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_not_found_problem.py,sha256=kPhaIeDxp0duxJBJLKFiYp269kEDsCx3uVLnkKbF2gk,895
202
212
  griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_problem.py,sha256=NLAoF_x7g5tL70qZtPVFI8xeM1jPZNsm7FKt9nkuGBc,542
203
213
  griptape_nodes/retained_mode/managers/fitness_problems/workflows/workflow_schema_version_problem.py,sha256=rUnbBBnGwgq5WTVPt2G4pGP3gVPoX5xvCdTkRPBmP04,1328
204
- griptape_nodes/retained_mode/managers/flow_manager.py,sha256=BKWLpc-udlZ4n1rlKINHFS-Jj6wBqoCSdD7x0FyNr5o,220266
205
- griptape_nodes/retained_mode/managers/library_manager.py,sha256=paogGavZj2MDOYvfUklhjORQg16YdpVGBxBncVSxtR0,192265
214
+ griptape_nodes/retained_mode/managers/flow_manager.py,sha256=Z49xHwQpIjy71gFKeIUsAFVbQ20e67ImZaVWpnn-KqM,226375
215
+ griptape_nodes/retained_mode/managers/image_metadata_injector.py,sha256=92P07-oV4rh8DQwPI1Y0__agEFHr5L601FtUwYPsAW8,11944
216
+ griptape_nodes/retained_mode/managers/library_manager.py,sha256=KaizlUUdiOCrv7agP9rrChG0_5QFM5zJjLafFYrJG0A,193585
206
217
  griptape_nodes/retained_mode/managers/mcp_manager.py,sha256=AEHG1SqFc3g5hOImOHaH7ZjOkmgNAavmQgG9osXVGkE,16018
207
- griptape_nodes/retained_mode/managers/model_manager.py,sha256=3lj2X8vIvDSERPtR2VEXNFEWy_D8H6muxRvD-PEx8U8,44845
208
- griptape_nodes/retained_mode/managers/node_manager.py,sha256=BG0-z2-pDjzgS5VC3u3p7-jGUJ5nGSGSShbSv9WseoA,229244
218
+ griptape_nodes/retained_mode/managers/model_manager.py,sha256=399Sx26x82bA5o7Aya1tmPBzcV_li2HFidBCP1rw1OY,44950
219
+ griptape_nodes/retained_mode/managers/node_manager.py,sha256=M4I4ADkd40TfVSfYfK3w-we1w8j-Q-bLZRQWOdTlMoQ,229566
209
220
  griptape_nodes/retained_mode/managers/object_manager.py,sha256=ZpovmhnBKG_JCn4Pde9idlx2eBZjKvR7k9DHUYqD-r4,12882
210
221
  griptape_nodes/retained_mode/managers/operation_manager.py,sha256=4Vn_79vHrawy3wJVUx52tfblO4mURww58nb5RtCTpKU,20190
211
- griptape_nodes/retained_mode/managers/os_manager.py,sha256=Ttgj6R063p2Yf1lcdeSTB2xOTg94MIDCMPxO8FDczEQ,142397
212
- griptape_nodes/retained_mode/managers/project_manager.py,sha256=-K-anrxEVKInFMPLY-cV3ipqEh8hMELGHKbecJJJVa8,49035
222
+ griptape_nodes/retained_mode/managers/os_manager.py,sha256=Utwz9hPMcAKcK7QGZGUtCSHs7z9uwbIPlAmOgfA6qlU,153843
223
+ griptape_nodes/retained_mode/managers/project_manager.py,sha256=qnjw6HafDQy6HK5jOcDGv1lchcNUKH3WOJrmmfkZEiM,48942
213
224
  griptape_nodes/retained_mode/managers/resource_components/__init__.py,sha256=2FHpZFw2N1-oHfMCfrnB_XpF8_-2aSNtAZWh5zQTGL0,35
214
225
  griptape_nodes/retained_mode/managers/resource_components/capability_field.py,sha256=jZ5ONfdYVd5_MKlSKvUch1X2n1oHzMSeZW8UZ1a_RsU,1504
215
226
  griptape_nodes/retained_mode/managers/resource_components/comparator.py,sha256=02SiAiOatEnCgZOoMvpDhLsMpiOeNdtg9_HbrW4gS2k,609
@@ -221,21 +232,21 @@ griptape_nodes/retained_mode/managers/resource_types/compute_resource.py,sha256=
221
232
  griptape_nodes/retained_mode/managers/resource_types/cpu_resource.py,sha256=YHjU6_Pm41wGvdMlRzNkQS9yJY8wD2NN2-WwOFpVpUo,3830
222
233
  griptape_nodes/retained_mode/managers/resource_types/os_resource.py,sha256=HHJ-kgZB2BsnvU0rp-CQlM1xTJm3OZ3Dh-NpB01gGG8,3439
223
234
  griptape_nodes/retained_mode/managers/secrets_manager.py,sha256=knoHlbR-VrkeNULYjq72cHnhbCeupkKjtUT0EfBH8LQ,7743
224
- griptape_nodes/retained_mode/managers/session_manager.py,sha256=u3OEir9rjwG7GFM4MA5crKwcwq6F-lCUKlFzxlFU4co,14085
225
- griptape_nodes/retained_mode/managers/settings.py,sha256=UxYA5GzHqBPFMNwKqq2Np4nT8ZciBahpDIFrhQKNMm0,12168
226
- griptape_nodes/retained_mode/managers/static_files_manager.py,sha256=rWeI5mO8CCdEHx1odo4z4pxfTy33ggzCcUwkRj67aNM,12408
235
+ griptape_nodes/retained_mode/managers/session_manager.py,sha256=85PLy0j6psQ35eqFeQ7gXJ0l1ktWFNXogO0sH7ZDgo0,14198
236
+ griptape_nodes/retained_mode/managers/settings.py,sha256=AdJBgqOvlenNlj8bVmgd6B0pQC3YYobrWlGiaoTKwQM,12374
237
+ griptape_nodes/retained_mode/managers/static_files_manager.py,sha256=RYz4c5Amg6p-P93yMDC6v39XwUwjlJfHjueQugKX1mk,15879
227
238
  griptape_nodes/retained_mode/managers/sync_manager.py,sha256=dF6nAAy1DLDQydefx7v3EtPCBiCrk4vURMum57WfmK8,21448
228
239
  griptape_nodes/retained_mode/managers/user_manager.py,sha256=JAOOKDhUfIbj0CJ5EHRBcplmxheQTzeogbvGO23VqXQ,4508
229
240
  griptape_nodes/retained_mode/managers/variable_manager.py,sha256=TnuqHSRK9Yiu_EtKxQksF9SyyQb72lbFQuTQZdpBxeE,24116
230
241
  griptape_nodes/retained_mode/managers/version_compatibility_manager.py,sha256=kaCtmNMqJW-mvLCFHf77wbBZbc3CgW2h8fYYkLkNrPs,17041
231
- griptape_nodes/retained_mode/managers/workflow_manager.py,sha256=n6jmr966Y_0MPd9aaOssX2CYgojf_mNRxC07990Anec,217769
242
+ griptape_nodes/retained_mode/managers/workflow_manager.py,sha256=YTPNELNLlS4_WckrcTpvqX3I5CuVGjFZS2qjpDHSiXo,219659
232
243
  griptape_nodes/retained_mode/retained_mode.py,sha256=fJNAVyheqjXFOh8--VAmJBLWlNgMyRWNghG_0u8B-1w,72415
233
244
  griptape_nodes/retained_mode/utils/__init__.py,sha256=W5dvv8YwvVVq_8eVTgMd3Z_VB_Dtq1sIIVq8745QH_I,52
234
245
  griptape_nodes/retained_mode/utils/name_generator.py,sha256=IZLahtfP3XC79XApLdGoZ0IKKUkgiITpd16RK7NbyEs,2524
235
246
  griptape_nodes/retained_mode/variable_types.py,sha256=GVrSWMB3gEDAufSPOBXbNfIRhA9M43MoxpqLyuIg_HE,435
236
247
  griptape_nodes/servers/__init__.py,sha256=JCmorB8tQUu_kQ8hSRhgw4VsOqsC0iZjZ-mCXYy9ZOQ,60
237
248
  griptape_nodes/servers/mcp.py,sha256=eUjuwdG0yAk-xKcpXQ52bYfBTBzQD0PvMLZXhJ4LnZA,6883
238
- griptape_nodes/servers/static.py,sha256=R0nnMUCRDE0BxygZ-kdxhROAXgJPsIJBAEp7H_sJtvg,7548
249
+ griptape_nodes/servers/static.py,sha256=FV6jymo7o71uXGsSL3HroJx5Eit4t3uyo_bOBS8pMWQ,8804
239
250
  griptape_nodes/traits/__init__.py,sha256=bTLXTiZTJz2z15RRLoPI4nvLnNW9FiLcKL_2pT4E10g,32
240
251
  griptape_nodes/traits/add_param_button.py,sha256=27RZDVLMD0HmRF6hjfz7iV7LBau92vMc_d2eD2Ey8fA,649
241
252
  griptape_nodes/traits/button.py,sha256=Nweq5oGdPpSTfyX3Dr2mjgBYwLUrokxtergnOCTiPpU,15962
@@ -253,15 +264,19 @@ griptape_nodes/traits/trait_registry.py,sha256=pU26mW2ztfu1UARGYloflsTPqJ1X_-u01
253
264
  griptape_nodes/traits/traits.json,sha256=JwFsOaFfLeR1ohcyh6XApc5N2-mWMPGSaYbpA-mD7mk,133
254
265
  griptape_nodes/updater/__init__.py,sha256=ZTVr-zI4Jf-cFAXU3nX9L7oTCFFWsjlrkHQiZidDhB0,2570
255
266
  griptape_nodes/updater/__main__.py,sha256=lhMMctbBeni57ximitvkwqJ1TQzk79Jg9w0rkKjtp5Y,79
256
- griptape_nodes/utils/__init__.py,sha256=kzDZW_VPyxWJFonM3kYTl7A91_JmtHPK0Io4KPLTYT4,122
267
+ griptape_nodes/utils/__init__.py,sha256=4nVPlEvXMtvjTEq5zbzcwNcL45j5NuVJK0S0kX6XHig,446
268
+ griptape_nodes/utils/artifact_normalization.py,sha256=BofLyLnOaNCofAkeXSOhwV6BfBOjHH3C1cKglXOwAew,9157
257
269
  griptape_nodes/utils/async_utils.py,sha256=4IrW8Ub8iJ2QB9yguZtfN1EB9B5nXHS7jbDaLOHWso0,4844
258
270
  griptape_nodes/utils/dict_utils.py,sha256=1VP2EoyOP0nswoAgjPehpA0izpkygWRX7L--ArN6LV8,7314
259
- griptape_nodes/utils/file_utils.py,sha256=D7VBkYl2MI0GUHdvI3IDB-fRN2XTp4xDpANnUcnEVvY,5524
271
+ griptape_nodes/utils/file_utils.py,sha256=P-L3ihmlvJ6Rj8fV2qqIDUzov7XvWr8WrOdRcJBungY,5542
260
272
  griptape_nodes/utils/git_utils.py,sha256=Gz55JqSFPuxbTzvnXHKHsbMy3PvkNDAYyMQ7szekcL0,45674
273
+ griptape_nodes/utils/http_file_patch.py,sha256=2-U3wU1Z5yGqkcmnNNIPHS-1RQ-XnvtUoh40O7W3zbQ,24895
261
274
  griptape_nodes/utils/huggingface_utils.py,sha256=txR5XS_01W3TvsH4SQ3AJrFy8oS8Ah9M-ePRSs3jHYA,4737
262
- griptape_nodes/utils/image_preview.py,sha256=NhYIqohRF9vbFpWIEvZHdPLLPK_JdUBvC4RvNAsSa1w,4480
275
+ griptape_nodes/utils/image_preview.py,sha256=0lNBWAm4-bNAqpiD5AWeeIE3-5sdc26SX_sIcFuhU5w,6106
263
276
  griptape_nodes/utils/library_utils.py,sha256=UwTdOJcPwJljWYD-DbctjExicaw-6isXZ-Js02jrGCw,4224
264
277
  griptape_nodes/utils/metaclasses.py,sha256=RSKyAvZppH_hbMugmUmIr8QqOg1sYY4uRNfQybD4O8Q,287
278
+ griptape_nodes/utils/path_utils.py,sha256=p9uqCNjk0nz9KLLHdZm_Thj7Tx5kCc9IRVaQ8SKbjyE,1944
279
+ griptape_nodes/utils/url_utils.py,sha256=jot9Kz4TZRR0UHg-ncNaoSBKmeFyCBkbxf-m-VW25yk,3237
265
280
  griptape_nodes/utils/uv_utils.py,sha256=ZK37LmacKfxMVKkcIOyJ35HOXgV6sFWE9CzgKPmaRU0,519
266
281
  griptape_nodes/utils/version_utils.py,sha256=Y-HJfJW6Jxuz_jOnHxMiy-pmMauHRnY-7BO3alGmw-Q,4318
267
282
  griptape_nodes/version_compatibility/__init__.py,sha256=JMz1sB7Zsj6pS1S5sdsPR0kn89s1A0sB0kFIvygJYfo,74
@@ -276,7 +291,7 @@ griptape_nodes/version_compatibility/versions/v0_65_5/__init__.py,sha256=4UyspOV
276
291
  griptape_nodes/version_compatibility/versions/v0_65_5/flux_2_removed_parameters.py,sha256=jOlmY5kKHXh8HPzAUtvwMJqzD4bP7pkE--yHUb7jTRA,3305
277
292
  griptape_nodes/version_compatibility/versions/v0_7_0/__init__.py,sha256=IzPPmGK86h2swfGGTOHyVcBIlOng6SjgWQzlbf3ngmo,51
278
293
  griptape_nodes/version_compatibility/versions/v0_7_0/local_executor_argument_addition.py,sha256=Thx8acnbw5OychhwEEj9aFxvbPe7Wgn4V9ZmZ7KRZqc,2082
279
- griptape_nodes-0.70.1.dist-info/WHEEL,sha256=e_m4S054HL0hyR3CpOk-b7Q7fDX6BuFkgL5OjAExXas,80
280
- griptape_nodes-0.70.1.dist-info/entry_points.txt,sha256=qvevqd3BVbAV5TcantnAm0ouqaqYKhsRO3pkFymWLWM,82
281
- griptape_nodes-0.70.1.dist-info/METADATA,sha256=VBszlO8g-vdr1HhL7NWUBo6_AF9Q5qh0rThNdfxtA1g,5373
282
- griptape_nodes-0.70.1.dist-info/RECORD,,
294
+ griptape_nodes-0.72.0.dist-info/WHEEL,sha256=5DEXXimM34_d4Gx1AuF9ysMr1_maoEtGKjaILM3s4w4,80
295
+ griptape_nodes-0.72.0.dist-info/entry_points.txt,sha256=qvevqd3BVbAV5TcantnAm0ouqaqYKhsRO3pkFymWLWM,82
296
+ griptape_nodes-0.72.0.dist-info/METADATA,sha256=4WrlL6c8jN5O7Y5wWP-pJWeL_qjltTFpe9Z41EpIsdg,5406
297
+ griptape_nodes-0.72.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: uv 0.9.27
2
+ Generator: uv 0.9.29
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any