griptape-nodes 0.60.4__py3-none-any.whl → 0.61.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 (47) hide show
  1. griptape_nodes/bootstrap/workflow_publishers/local_workflow_publisher.py +0 -1
  2. griptape_nodes/common/macro_parser/__init__.py +16 -1
  3. griptape_nodes/common/macro_parser/core.py +15 -3
  4. griptape_nodes/common/macro_parser/exceptions.py +99 -0
  5. griptape_nodes/common/macro_parser/formats.py +13 -4
  6. griptape_nodes/common/macro_parser/matching.py +5 -2
  7. griptape_nodes/common/macro_parser/parsing.py +48 -8
  8. griptape_nodes/common/macro_parser/resolution.py +23 -5
  9. griptape_nodes/common/project_templates/__init__.py +49 -0
  10. griptape_nodes/common/project_templates/default_project_template.py +92 -0
  11. griptape_nodes/common/project_templates/defaults/README.md +36 -0
  12. griptape_nodes/common/project_templates/defaults/project_template.yml +89 -0
  13. griptape_nodes/common/project_templates/directory.py +67 -0
  14. griptape_nodes/common/project_templates/loader.py +341 -0
  15. griptape_nodes/common/project_templates/project.py +252 -0
  16. griptape_nodes/common/project_templates/situation.py +155 -0
  17. griptape_nodes/common/project_templates/validation.py +140 -0
  18. griptape_nodes/exe_types/core_types.py +36 -3
  19. griptape_nodes/exe_types/node_types.py +4 -2
  20. griptape_nodes/exe_types/param_components/progress_bar_component.py +57 -0
  21. griptape_nodes/exe_types/param_types/parameter_audio.py +243 -0
  22. griptape_nodes/exe_types/param_types/parameter_image.py +243 -0
  23. griptape_nodes/exe_types/param_types/parameter_three_d.py +215 -0
  24. griptape_nodes/exe_types/param_types/parameter_video.py +243 -0
  25. griptape_nodes/node_library/workflow_registry.py +1 -1
  26. griptape_nodes/retained_mode/events/execution_events.py +41 -0
  27. griptape_nodes/retained_mode/events/node_events.py +90 -1
  28. griptape_nodes/retained_mode/events/os_events.py +108 -0
  29. griptape_nodes/retained_mode/events/parameter_events.py +1 -1
  30. griptape_nodes/retained_mode/events/project_events.py +413 -0
  31. griptape_nodes/retained_mode/events/workflow_events.py +19 -1
  32. griptape_nodes/retained_mode/griptape_nodes.py +9 -1
  33. griptape_nodes/retained_mode/managers/agent_manager.py +18 -24
  34. griptape_nodes/retained_mode/managers/event_manager.py +6 -9
  35. griptape_nodes/retained_mode/managers/flow_manager.py +63 -0
  36. griptape_nodes/retained_mode/managers/library_manager.py +55 -42
  37. griptape_nodes/retained_mode/managers/mcp_manager.py +14 -6
  38. griptape_nodes/retained_mode/managers/node_manager.py +232 -0
  39. griptape_nodes/retained_mode/managers/os_manager.py +345 -0
  40. griptape_nodes/retained_mode/managers/project_manager.py +617 -0
  41. griptape_nodes/retained_mode/managers/settings.py +6 -0
  42. griptape_nodes/retained_mode/managers/workflow_manager.py +6 -69
  43. griptape_nodes/traits/button.py +18 -0
  44. {griptape_nodes-0.60.4.dist-info → griptape_nodes-0.61.0.dist-info}/METADATA +5 -3
  45. {griptape_nodes-0.60.4.dist-info → griptape_nodes-0.61.0.dist-info}/RECORD +47 -31
  46. {griptape_nodes-0.60.4.dist-info → griptape_nodes-0.61.0.dist-info}/WHEEL +1 -1
  47. {griptape_nodes-0.60.4.dist-info → griptape_nodes-0.61.0.dist-info}/entry_points.txt +0 -0
@@ -38,7 +38,6 @@ from griptape_nodes.retained_mode.events.app_events import (
38
38
 
39
39
  # Runtime imports for ResultDetails since it's used at runtime
40
40
  from griptape_nodes.retained_mode.events.base_events import ResultDetail, ResultDetails
41
- from griptape_nodes.retained_mode.events.execution_events import StartFlowResultFailure, StartFlowResultSuccess
42
41
  from griptape_nodes.retained_mode.events.flow_events import (
43
42
  CreateFlowRequest,
44
43
  GetTopLevelFlowRequest,
@@ -3280,6 +3279,7 @@ class WorkflowManager:
3280
3279
  "settable",
3281
3280
  "is_user_defined",
3282
3281
  "parent_container_name",
3282
+ "parent_element_name",
3283
3283
  ]
3284
3284
  minimal_dict = {key: param_dict[key] for key in fields_to_include if key in param_dict}
3285
3285
  minimal_dict["settable"] = bool(getattr(parameter, "settable", True))
@@ -3426,79 +3426,12 @@ class WorkflowManager:
3426
3426
  workflow_file = Path(result.published_workflow_file_path)
3427
3427
  result = self._register_published_workflow_file(workflow_file, result)
3428
3428
 
3429
- if request.execute_on_publish:
3430
- await self._handle_execute_on_publish(request, workflow_file)
3431
-
3432
3429
  return result # noqa: TRY300
3433
3430
  except Exception as e:
3434
3431
  details = f"Failed to publish workflow '{request.workflow_name}': {e!s}"
3435
3432
  logger.exception(details)
3436
3433
  return PublishWorkflowResultFailure(exception=e, result_details=details)
3437
3434
 
3438
- async def _handle_execute_on_publish(self, request: PublishWorkflowRequest, workflow_file: Path) -> None:
3439
- class ExecuteOnPublishError(Exception):
3440
- pass
3441
-
3442
- # Create an event to track when we get a start workflow result
3443
- start_result_received = asyncio.Event()
3444
- exception: ExecuteOnPublishError | None = None
3445
-
3446
- def invoke_done_callback(future: asyncio.Future) -> None:
3447
- nonlocal exception
3448
- try:
3449
- future.result()
3450
- except Exception as e:
3451
- msg = f"Error during invocation of published workflow '{request.workflow_name}': {e!s}"
3452
- logger.exception(msg)
3453
- exception = ExecuteOnPublishError(e)
3454
- start_result_received.set()
3455
-
3456
- def on_start_flow_result(start_result: ResultPayload) -> None:
3457
- nonlocal exception
3458
- if isinstance(start_result, StartFlowResultSuccess):
3459
- msg = f"Successfully started published workflow '{request.workflow_name}'"
3460
- logger.info(msg)
3461
- elif isinstance(start_result, StartFlowResultFailure):
3462
- msg = f"Failed to invoke published workflow '{request.workflow_name}': {start_result.exception}"
3463
- logger.exception(msg)
3464
- exceptions = start_result.validation_exceptions
3465
- exceptions.append(start_result.exception) if start_result.exception else None
3466
- exception = ExecuteOnPublishError(exceptions)
3467
-
3468
- start_result_received.set()
3469
-
3470
- invoke_task = asyncio.create_task(
3471
- self._invoke_published_workflow(request.workflow_name, workflow_file, on_start_flow_result)
3472
- )
3473
- invoke_task.add_done_callback(invoke_done_callback)
3474
-
3475
- # Wait for StartFlow result
3476
- try:
3477
- await asyncio.wait_for(start_result_received.wait(), timeout=10.0)
3478
- if exception is not None:
3479
- raise exception
3480
- except TimeoutError:
3481
- # Timeout occurred - don't block on subprocess workflow execution, just log a warning
3482
- msg = f"Timeout waiting for workflow '{request.workflow_name}' StartFlow result."
3483
- logger.warning(msg)
3484
-
3485
- async def _invoke_published_workflow(
3486
- self, workflow_name: str, workflow_path: Path, on_start_flow_result: Callable[[ResultPayload], None]
3487
- ) -> None:
3488
- from griptape_nodes.bootstrap.workflow_executors.subprocess_workflow_executor import SubprocessWorkflowExecutor
3489
-
3490
- subprocess_executor = SubprocessWorkflowExecutor(
3491
- workflow_path=str(workflow_path), on_start_flow_result=on_start_flow_result
3492
- )
3493
- storage_backend_value = GriptapeNodes.ConfigManager().get_config_value("storage_backend")
3494
-
3495
- async with subprocess_executor as executor:
3496
- await executor.arun(
3497
- workflow_name=workflow_name,
3498
- flow_input={},
3499
- storage_backend=StorageBackend(value=storage_backend_value),
3500
- )
3501
-
3502
3435
  def _register_published_workflow_file(
3503
3436
  self, workflow_file: Path, result: PublishWorkflowResultSuccess
3504
3437
  ) -> ResultPayload:
@@ -4166,7 +4099,7 @@ class WorkflowManager:
4166
4099
  ),
4167
4100
  )
4168
4101
 
4169
- def _process_workflows_for_registration(self, workflows_to_register: list[str]) -> WorkflowRegistrationResult:
4102
+ def _process_workflows_for_registration(self, workflows_to_register: list[str]) -> WorkflowRegistrationResult: # noqa: C901
4170
4103
  """Process a list of workflow paths for registration.
4171
4104
 
4172
4105
  Returns:
@@ -4195,7 +4128,11 @@ class WorkflowManager:
4195
4128
  return
4196
4129
  if path.is_dir():
4197
4130
  # Process all Python files recursively in the directory
4131
+ # Exclude .venv directories to avoid encoding issues with test files
4198
4132
  for workflow_file in path.rglob("*.py"):
4133
+ # Skip files in .venv directories
4134
+ if ".venv" in workflow_file.parts:
4135
+ continue
4199
4136
  process_workflow_file(workflow_file)
4200
4137
  elif path.suffix == ".py":
4201
4138
  process_workflow_file(path)
@@ -55,12 +55,22 @@ class ButtonDetailsMessagePayload(NodeMessagePayload):
55
55
  loading_label: str | None = None
56
56
  loading_icon: str | None = None
57
57
  loading_icon_class: str | None = None
58
+ tooltip: str | None = None
59
+
60
+
61
+ class ModalContentPayload(NodeMessagePayload):
62
+ """Payload containing content to be displayed in a modal dialog."""
63
+
64
+ clipboard_copyable_content: str
65
+ title: str | None = None
58
66
 
59
67
 
60
68
  class OnClickMessageResultPayload(NodeMessagePayload):
61
69
  """Payload for button click result messages."""
62
70
 
63
71
  button_details: ButtonDetailsMessagePayload
72
+ modal_content: ModalContentPayload | None = None
73
+ href: str | None = None
64
74
 
65
75
 
66
76
  class SetButtonStatusMessagePayload(NodeMessagePayload):
@@ -92,6 +102,7 @@ class Button(Trait):
92
102
  loading_label: str | None = None
93
103
  loading_icon: str | None = None
94
104
  loading_icon_class: str | None = None
105
+ tooltip: str | None = None
95
106
 
96
107
  element_id: str = field(default_factory=lambda: "Button")
97
108
  on_click_callback: OnClickCallback | None = field(default=None, init=False)
@@ -111,6 +122,7 @@ class Button(Trait):
111
122
  loading_label: str | None = None,
112
123
  loading_icon: str | None = None,
113
124
  loading_icon_class: str | None = None,
125
+ tooltip: str | None = None,
114
126
  on_click: OnClickCallback | None = None,
115
127
  get_button_state: GetButtonStateCallback | None = None,
116
128
  ) -> None:
@@ -126,6 +138,7 @@ class Button(Trait):
126
138
  self.loading_label = loading_label
127
139
  self.loading_icon = loading_icon
128
140
  self.loading_icon_class = loading_icon_class
141
+ self.tooltip = tooltip
129
142
  self.on_click_callback = on_click
130
143
  self.get_button_state_callback = get_button_state
131
144
 
@@ -147,6 +160,7 @@ class Button(Trait):
147
160
  loading_label=self.loading_label,
148
161
  loading_icon=self.loading_icon,
149
162
  loading_icon_class=self.loading_icon_class,
163
+ tooltip=self.tooltip,
150
164
  )
151
165
 
152
166
  def ui_options_for_trait(self) -> dict:
@@ -174,6 +188,10 @@ class Button(Trait):
174
188
  if self.loading_icon_class:
175
189
  options["loading_icon_class"] = self.loading_icon_class
176
190
 
191
+ # Include tooltip if specified
192
+ if self.tooltip:
193
+ options["tooltip"] = self.tooltip
194
+
177
195
  return options
178
196
 
179
197
  def on_message_received(self, message_type: str, message: NodeMessagePayload | None) -> NodeMessageResult | None: # noqa: PLR0911
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: griptape-nodes
3
- Version: 0.60.4
3
+ Version: 0.61.0
4
4
  Summary: Add your description here
5
- Requires-Dist: griptape>=1.8.8
5
+ Requires-Dist: griptape>=1.8.12
6
6
  Requires-Dist: pydantic>=2.10.6
7
7
  Requires-Dist: python-dotenv>=1.0.1
8
8
  Requires-Dist: xdg-base-dirs>=6.0.2
@@ -20,10 +20,12 @@ Requires-Dist: binaryornot>=0.4.4
20
20
  Requires-Dist: pillow>=11.3.0
21
21
  Requires-Dist: watchfiles>=1.1.0
22
22
  Requires-Dist: typer>=0.15.0
23
- Requires-Dist: huggingface-hub[xf-xet]>=0.28.0
23
+ Requires-Dist: huggingface-hub>=1.0.1
24
24
  Requires-Dist: rich>=14.1.0
25
25
  Requires-Dist: semver>=3.0.4
26
26
  Requires-Dist: aiofiles>=25.1.0
27
+ Requires-Dist: ruamel-yaml>=0.18.15
28
+ Requires-Dist: asyncio-thread-runner>=1.0
27
29
  Requires-Dist: austin-dist>=3.7.0 ; extra == 'profiling'
28
30
  Requires-Python: >=3.12.0, <3.13
29
31
  Provides-Extra: profiling
@@ -18,7 +18,7 @@ griptape_nodes/bootstrap/workflow_executors/utils/__init__.py,sha256=IEz4GHM4-w_
18
18
  griptape_nodes/bootstrap/workflow_executors/utils/subprocess_script.py,sha256=LCW6P3s3DTG_cUvG41l4GxRyj43c1p9yYlcJMACeW3s,1659
19
19
  griptape_nodes/bootstrap/workflow_executors/workflow_executor.py,sha256=c9FQXcvskas9N3G5OnTQO2SxJZJVoxbn7lug1GIRUBw,1074
20
20
  griptape_nodes/bootstrap/workflow_publishers/__init__.py,sha256=7ncdCGtEArgTBgSFDNCSBoIIAJpzlph1wTd2wipwvvM,35
21
- griptape_nodes/bootstrap/workflow_publishers/local_workflow_publisher.py,sha256=LeSn-NfSQKQP2x2jbOwtk22ppVhUD2S3Tee3aZkHC0A,1759
21
+ griptape_nodes/bootstrap/workflow_publishers/local_workflow_publisher.py,sha256=ZLe0Bf-LVdeLgTkfzndawUaB-1P8AdZrM732ZMxcNaw,1721
22
22
  griptape_nodes/bootstrap/workflow_publishers/subprocess_workflow_publisher.py,sha256=O9gK7BvBE-5pMSG70rXLjibbUKfJuce85hWcs6iYyXg,2879
23
23
  griptape_nodes/bootstrap/workflow_publishers/utils/__init__.py,sha256=Kj-IIxgg01ihyUmLWgZu4ZJ6M7V1fK4Efw9quCcu-ZM,41
24
24
  griptape_nodes/bootstrap/workflow_publishers/utils/subprocess_script.py,sha256=5NfuaGrL-97Wb6JORRhR-zU4ooj3FaxOjqJizGb96Y0,2060
@@ -34,15 +34,24 @@ griptape_nodes/cli/main.py,sha256=A9k-4vdxOrm3Z0NNtDWLmvSW5ecvtIXInLR0zn2AERA,17
34
34
  griptape_nodes/cli/shared.py,sha256=ciuqFxls18HXxNOaqK6QObmb3i7OLbw_DkUxX2g0rL0,2656
35
35
  griptape_nodes/common/__init__.py,sha256=HTbJfTpu6-nU91zFCZW2qUNeW6bitNWNDayWqH6fpbA,22
36
36
  griptape_nodes/common/directed_graph.py,sha256=hk3C_S4GiG4FZOmufjebb-6_2SwQrbyTidYTSbCDWMU,2361
37
- griptape_nodes/common/macro_parser/__init__.py,sha256=31c6Ak9j0VwGHIqgMMxF_GzNKCO5lneIFaUXQiL7gKk,796
38
- griptape_nodes/common/macro_parser/core.py,sha256=khJp09GsNbOU2BPForV9jM2jgOEXTThvtWRvZyWRGZs,11343
39
- griptape_nodes/common/macro_parser/exceptions.py,sha256=5PvVJmn1qHsizrhbXWlc-cvgMDBkMFWRNKPa-bWRevw,709
40
- griptape_nodes/common/macro_parser/formats.py,sha256=-7_QLo7pqBRR7HKMcW_LZAT_JxFIxqC20284YeGtWoo,4968
41
- griptape_nodes/common/macro_parser/matching.py,sha256=bGGJrIY0nwpVZmhRAQwru1SETaBWg_Sw5U86wozVtFQ,4395
42
- griptape_nodes/common/macro_parser/parsing.py,sha256=kk5lQx-wJ6GZ2H9BI2yJBOYYN3aLsie9iIJYgp1BDC8,5761
43
- griptape_nodes/common/macro_parser/resolution.py,sha256=FvXGUiHheX2nFEbyxxVqxvTYfbUlM4e_L1d-3l8Nwkw,6116
37
+ griptape_nodes/common/macro_parser/__init__.py,sha256=Hpot5-igotQ-h-jZ7TuZG7uNCEgNrH6oD8sA3pXQubE,1153
38
+ griptape_nodes/common/macro_parser/core.py,sha256=AAsC-f72Oui-3QUuivkeFxVsJsXCQqkvlwNfDIDnIbw,11694
39
+ griptape_nodes/common/macro_parser/exceptions.py,sha256=w9PipAQQ197_E6v33VyJbfAonlfjbtTQ3JS7zuz9LY8,3870
40
+ griptape_nodes/common/macro_parser/formats.py,sha256=JpcGCjvZbxX8GauuQ2tvwBfFEa_pSPECtBBjSeFLJ6s,5355
41
+ griptape_nodes/common/macro_parser/matching.py,sha256=hnlPIihz8W1TGnfq4anbBGciwghFbFyAHUpbte6M4Bg,4543
42
+ griptape_nodes/common/macro_parser/parsing.py,sha256=_37L3lCQFeetamWIiHT0C7eW1E3Wyx5V8y8OWzIUw_g,7428
43
+ griptape_nodes/common/macro_parser/resolution.py,sha256=PawEGKBHaaHEukOWTFdw9TjzmmQ-mNke3GGUkNRh0es,6937
44
44
  griptape_nodes/common/macro_parser/segments.py,sha256=r-WbZas1nSc-PlEdAZ7DycNoD6IUf3R_nhGo3T9vIa8,1010
45
45
  griptape_nodes/common/node_executor.py,sha256=d96vYMMpdvGK-ol3priQjveYs7kTcz0A6WXhgnyQttE,29204
46
+ griptape_nodes/common/project_templates/__init__.py,sha256=5DP6Sa6ClsdDcjD30pkK0iTTysTgGdRKEkeY7ztHZyc,1541
47
+ griptape_nodes/common/project_templates/default_project_template.py,sha256=xnujJJEtAcpte1G0D2u6p9SDDTFvIF2Yyn-xHm6h-N4,3386
48
+ griptape_nodes/common/project_templates/defaults/README.md,sha256=1ou6_OFi7-t86nj-7tulW1vxNMtsvkJmNxr6SseG8hA,1080
49
+ griptape_nodes/common/project_templates/defaults/project_template.yml,sha256=pS10EQUjW4YnJW86xCdkUoK-cN1oQJW6z87HRfnOEc8,2845
50
+ griptape_nodes/common/project_templates/directory.py,sha256=G4y3js7CX8nzDsfXR39O6wV5uozW73bb63VlDf6eyPY,2425
51
+ griptape_nodes/common/project_templates/loader.py,sha256=GgBl_Vu-NBgVUIBcSqRM8WpHbjEibJQASs81H2l4biQ,12473
52
+ griptape_nodes/common/project_templates/project.py,sha256=xKLYzUC0rs-5QT1ephImc1VN6UipKZW9cCElWaWQ0x0,10544
53
+ griptape_nodes/common/project_templates/situation.py,sha256=YAdfBf1rEEtdE6HUdfZHJ6Aydb4tPtIv3Q7piUxqrOw,6164
54
+ griptape_nodes/common/project_templates/validation.py,sha256=JbKJY0_uKD8bIsJR0HhGV3Fe_CzqxEoG2o8s-6lg2Bc,4398
46
55
  griptape_nodes/drivers/__init__.py,sha256=tHmiFQn6uJyFVhC2PrqHgRUH3d3yDsqMQpWqRasmaqA,42
47
56
  griptape_nodes/drivers/storage/__init__.py,sha256=_7p8vJt3YnnF6sD3Uxxw38c-gazuMIHSS-m3G6sa2Qk,208
48
57
  griptape_nodes/drivers/storage/base_storage_driver.py,sha256=47PrMzxOuJhV2ee4CbPT7YOqR2MjlHr3VxhGON_ygio,3945
@@ -51,9 +60,9 @@ griptape_nodes/drivers/storage/local_storage_driver.py,sha256=6FqtT4I4lZTRSa_7gQ
51
60
  griptape_nodes/drivers/storage/storage_backend.py,sha256=3QBIwrgPc1krBIiPYLoK2swhIPDiKJnnucOEdyx7y3c,184
52
61
  griptape_nodes/exe_types/__init__.py,sha256=wGGwKGX9-TSarUFbXpDvdU_J7eXIbWTBl_NCLOZa-G8,32
53
62
  griptape_nodes/exe_types/connections.py,sha256=Cjt-RLjYhkTUHTrYlNIUZrYVzsyH7OXo6JO2O6exI8k,13853
54
- griptape_nodes/exe_types/core_types.py,sha256=pZdjMs_i9nj5y24Pt0UbAYKVc9nYsI3ewrgcZ9WQfsA,91217
63
+ griptape_nodes/exe_types/core_types.py,sha256=Vx3WT8nGP6Md_nMOROVuaKNutDgVtTHhxoHt-FH4z4E,92227
55
64
  griptape_nodes/exe_types/flow.py,sha256=pCeTrx8yrUgLw1U9yQxC7arzJjyP2vag-pG0QTKut-M,5716
56
- griptape_nodes/exe_types/node_types.py,sha256=4idQIcnE0Ju-wlibY0swGOYcy2PfF9OyGPeXfZ3ct84,94722
65
+ griptape_nodes/exe_types/node_types.py,sha256=dcheQyEcL3gpRP-OhPotC21rxK9GrzgE2Dgeo3AGfTA,94743
57
66
  griptape_nodes/exe_types/param_components/__init__.py,sha256=ocm75WnsgiD6ozKVGFhoH9cQe_FEzeF2osxrRujOes0,60
58
67
  griptape_nodes/exe_types/param_components/execution_status_component.py,sha256=eeUcUOOraGa6sDH_zg_QnGPoP0K-pm3fu90-KAtrmq8,5532
59
68
  griptape_nodes/exe_types/param_components/huggingface/__init__.py,sha256=YeVFck-9C341Bt7TiWEvPdD63o9qkaNu2KjmzT9CQOI,39
@@ -62,13 +71,18 @@ griptape_nodes/exe_types/param_components/huggingface/huggingface_repo_file_para
62
71
  griptape_nodes/exe_types/param_components/huggingface/huggingface_repo_parameter.py,sha256=zcBRQP0eZJloSdPQwJFw89B6QDHECnrosRZUy8mE2fM,1401
63
72
  griptape_nodes/exe_types/param_components/huggingface/huggingface_utils.py,sha256=cE0Ht81kDcZjlN_2VoRirCA4zMlrG9GFlcptn-gC2tU,4696
64
73
  griptape_nodes/exe_types/param_components/log_parameter.py,sha256=K6XRWVIpL9MtQ6IZG3hYYwIv3sNqFxONxbVnKcA_Oes,4160
74
+ griptape_nodes/exe_types/param_components/progress_bar_component.py,sha256=xFVgOxQPL5Skc3EDtq9W_k3Bh1HA-y5uBNsAKVKbzjg,1948
65
75
  griptape_nodes/exe_types/param_components/seed_parameter.py,sha256=nXyi9bPCK9LuRB6s4Q2ezwdboIaivEObglNrSFn0y-0,2045
66
76
  griptape_nodes/exe_types/param_types/__init__.py,sha256=xEEmKvIFF6M7zVjQZCupbbv6SZKt-itD-rPtfRhxJVg,53
77
+ griptape_nodes/exe_types/param_types/parameter_audio.py,sha256=Uv7FI4_BFvtD0Pv6FMF6PCNijgo7Cc9jU75ceSpLebw,9413
67
78
  griptape_nodes/exe_types/param_types/parameter_bool.py,sha256=MyJlYYKAyRtu-V8GqFdV6jAtwRk8NRjj6LO8SZ9BQo8,8094
68
79
  griptape_nodes/exe_types/param_types/parameter_float.py,sha256=W_n4__XHOYppRD3-2RSLmxFcrcCBRex15oMyhShNyUU,6672
80
+ griptape_nodes/exe_types/param_types/parameter_image.py,sha256=etYKDEgqPsTe9UUimqyRsiWDRXePT_iMXVc6-_VcLPU,9312
69
81
  griptape_nodes/exe_types/param_types/parameter_int.py,sha256=OmyuGeo6P4ZWxp1Ms9kQRhI2Ar-igDqUQPmH_0XtxUI,6821
70
82
  griptape_nodes/exe_types/param_types/parameter_number.py,sha256=tzACjVQos8nDCirQSxBPaDfDciigiA_OHgSKZW43gVA,15251
71
83
  griptape_nodes/exe_types/param_types/parameter_string.py,sha256=xdoVK_XslPrYOwiQ_IhSYiqAV0CPd8nBkHHw7ySYXmc,8533
84
+ griptape_nodes/exe_types/param_types/parameter_three_d.py,sha256=AJ8qID5HydYgx1Tj1HMgE7VBEHF4qvtibrQ8fWqVXKU,8272
85
+ griptape_nodes/exe_types/param_types/parameter_video.py,sha256=iF74oKhDZ7VUZg8GO1y5dRAuQ8SQfbq0hMY2CkN6CoI,9333
72
86
  griptape_nodes/exe_types/type_validator.py,sha256=RTz1vX09jzQpHhozITMJ0siOZUXvsERDhrApjdaM1WM,1120
73
87
  griptape_nodes/machines/__init__.py,sha256=v0jkwr-CFOLmfEYUQvX8BKQLOdvhSsA6toXkdHcPGUE,30
74
88
  griptape_nodes/machines/control_flow.py,sha256=6C-M9yLcpQImNLUvO2l_lhyL7afesfrtnXNWe57NtdM,27098
@@ -80,7 +94,7 @@ griptape_nodes/mcp_server/__init__.py,sha256=GSpJWqE4lICaryhsQR1okeMH2x6j1bBL0HV
80
94
  griptape_nodes/node_library/__init__.py,sha256=U3FcSdmq6UW7qt6E3Up3NWKvUEn5_5lqL-u5qbzfxMQ,28
81
95
  griptape_nodes/node_library/advanced_node_library.py,sha256=B1ZaxuFIzQ6tx_3MLIxlsHuahthEC1Hw_t6K_ByIdzs,2104
82
96
  griptape_nodes/node_library/library_registry.py,sha256=0PCofxvPh8r1r-me8Y04aIQvVjeO55hvvv7uj5QC9Dw,13951
83
- griptape_nodes/node_library/workflow_registry.py,sha256=OmBv_1SImABVBZgtMaZq3ZJHaoRgwv3Na8if5uKmfHw,10523
97
+ griptape_nodes/node_library/workflow_registry.py,sha256=yEzONnqIVNBV7Yo2KBPkM72wnMM71G0uIOBaqZhwtVw,10523
84
98
  griptape_nodes/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
85
99
  griptape_nodes/retained_mode/__init__.py,sha256=X12DKL6KhLsiRTPIlrPj2h76_sJ0q0eH4r0kMQkodm0,29
86
100
  griptape_nodes/retained_mode/events/__init__.py,sha256=7B1C-c0jVvnShtHJ2lfX6BZPE0U1DgQwg1e4DorhKG0,22
@@ -91,34 +105,35 @@ griptape_nodes/retained_mode/events/base_events.py,sha256=UPEMkoU7lUtm8L_wdeTp8Y
91
105
  griptape_nodes/retained_mode/events/config_events.py,sha256=Y03YMLoJTXy0Sz6tq-6lOIs37CmXn1Br3GYAinl02nY,7070
92
106
  griptape_nodes/retained_mode/events/connection_events.py,sha256=QjHAp0SeCbRSG-dF_nU_CPaOcSKItq2DWJ_FHWgF1b4,4744
93
107
  griptape_nodes/retained_mode/events/context_events.py,sha256=-FIwjI0hJodDhfM4BF-3GTRycu80v1TlSSOX34oA9nA,2122
94
- griptape_nodes/retained_mode/events/execution_events.py,sha256=jkRRiYz5qv5u1k8nOIJk6O8TsDylP8Jq6ql6qIJBy1k,10821
108
+ griptape_nodes/retained_mode/events/execution_events.py,sha256=WCNi8PjK7rR2PQiF-BFLCwgcry-4hP49ayyNoHzJlgg,12268
95
109
  griptape_nodes/retained_mode/events/flow_events.py,sha256=JLkiYp81agqc-8NpI9BylOaqqyyrSlXtD-NjlRcByRw,18756
96
110
  griptape_nodes/retained_mode/events/generate_request_payload_schemas.py,sha256=PQ0QRZAUBljSIGjB8QhYUeRmSrfmLsJ6XVcygJKi13I,1102
97
111
  griptape_nodes/retained_mode/events/library_events.py,sha256=9KVMHA5VazY3fXEIm31Zmy-rJ43AxNgna4SzVPmy8Pg,17629
98
112
  griptape_nodes/retained_mode/events/logger_events.py,sha256=jYlxzPomgCsJuPtJ0znWBhD8QJfC8qC4xfChDiuVuyg,705
99
113
  griptape_nodes/retained_mode/events/mcp_events.py,sha256=51OlMZVcabdcIxBb_ojvrHtq2jAzZA31pooPBKaApyg,10734
100
114
  griptape_nodes/retained_mode/events/model_events.py,sha256=EbSjIpJrQi2RuRRFJsoioAyMchAba-vEOXvLBCR0xi0,9227
101
- griptape_nodes/retained_mode/events/node_events.py,sha256=jTcO5-Mw52fAJUzVc6UaXwRKHfO2HO0hnNYcGg9phVo,30321
115
+ griptape_nodes/retained_mode/events/node_events.py,sha256=pIFR6Pqnazajaf0_vRPdKs3uzItXjq-4IuSW-Qkc4_c,33294
102
116
  griptape_nodes/retained_mode/events/object_events.py,sha256=cJaqEU73Lzf1RRxJrFqEpl8eTr-gDhKpXKywJ-vVCJQ,2631
103
- griptape_nodes/retained_mode/events/os_events.py,sha256=cve-CfzvQmTa6kbMMqT4UA_LXFVag_8opmTx2l08ESY,12712
104
- griptape_nodes/retained_mode/events/parameter_events.py,sha256=FA5GY-sUkLSGgEH6NsAeRYse-jCk1D9qrN5RMzdOOqU,23903
117
+ griptape_nodes/retained_mode/events/os_events.py,sha256=uKa0lI-RKq_a3WBf7Rqo1c02qCqjaVbnuRAa1Ck25-I,15916
118
+ griptape_nodes/retained_mode/events/parameter_events.py,sha256=2s3U_cc45LjSmq2pZyTEnjD6yAlc207wAYY633z4zO4,23938
105
119
  griptape_nodes/retained_mode/events/payload_registry.py,sha256=q-wxUqp63vhNj-Pl1JGJHnBkhUefcCArPoMN3KBREEI,1691
120
+ griptape_nodes/retained_mode/events/project_events.py,sha256=sA7FMO7lYoaRBPyP8LEkq5-8hl-QbWJqiAOsrJYP4wQ,11548
106
121
  griptape_nodes/retained_mode/events/resource_events.py,sha256=K47UK92wvaRtHu3ByfhkQEMyorrV0ArGewrFSJuVMiI,9015
107
122
  griptape_nodes/retained_mode/events/secrets_events.py,sha256=fCw3OMFfxB8FTZs4ybojm1nqNvhcjtoNylQhX75-jkM,4156
108
123
  griptape_nodes/retained_mode/events/static_file_events.py,sha256=c8kKkrxAPZxrE9fsldpWtweK1C4T-1-dHWw_76SRehM,3764
109
124
  griptape_nodes/retained_mode/events/sync_events.py,sha256=AoxBZLPPdzx4S5CiOJVRDebHnQb349Dq5jVO8Fh_sn8,2016
110
125
  griptape_nodes/retained_mode/events/validation_events.py,sha256=H2yWoHp2t7QwGV_fDQXRy7JojYnK4k6SOAlEvRYST_Q,3062
111
126
  griptape_nodes/retained_mode/events/variable_events.py,sha256=fnl_sY8GWI_R4UJQTEJSlmsyCD9TiEW0U2UD2seBabs,10587
112
- griptape_nodes/retained_mode/events/workflow_events.py,sha256=FjARlC9wwWFMqtugEkPOEf_y9eyEhfzP-MZSl4TGRBI,22530
113
- griptape_nodes/retained_mode/griptape_nodes.py,sha256=SY99PBz7kJoCDClueww5gi1GOT-C2W-ledvNZgkNQ3E,19455
127
+ griptape_nodes/retained_mode/events/workflow_events.py,sha256=T1hgOlycIxIICWihVbd70qgEcVu4LO6YPIwTWQCizVw,23051
128
+ griptape_nodes/retained_mode/griptape_nodes.py,sha256=14PtWI_8V59cR9kEVqzkhHMKp8omqXNBxfd39kwgqlI,19926
114
129
  griptape_nodes/retained_mode/managers/__init__.py,sha256=OTXysKusqYCQeAYwnVj4PbE3MxvAUTq9xOZT6vUE3JA,24
115
- griptape_nodes/retained_mode/managers/agent_manager.py,sha256=8GznO1Xzl-D48eIibHJeEsT1WvecX1YNkZdHJ5kiv4s,15550
130
+ griptape_nodes/retained_mode/managers/agent_manager.py,sha256=EmeitTYV_jC-IS1OaBRXauKtqpVTVZ-uNyvQhwYcHjM,15154
116
131
  griptape_nodes/retained_mode/managers/arbitrary_code_exec_manager.py,sha256=LyWzHQKmyDh-2zh2PIahdYyAthf_rMYs4zvhtVo-LsU,3423
117
132
  griptape_nodes/retained_mode/managers/config_manager.py,sha256=WfzvFDPyboHgsCMpVGER6Ar1OHyPD_827LQx9xaUsMM,25573
118
133
  griptape_nodes/retained_mode/managers/context_manager.py,sha256=eb44_CAZhCg2iYIoodlAPpYc67tG3sHyq9dPNoiq_1s,23031
119
134
  griptape_nodes/retained_mode/managers/engine_identity_manager.py,sha256=-31364A03kU0YmAx3nM7nHdWfKnkej5Cawt_Plbwa68,10526
120
- griptape_nodes/retained_mode/managers/event_manager.py,sha256=SGqtVrLuAplVFb9rtPmPyz82YplKGEZ95p4Z9bJmpD0,13564
121
- griptape_nodes/retained_mode/managers/flow_manager.py,sha256=CirF-L6xJZL-ab50lFza4HIPhUwdgzcoCsr5Dr856Pw,188566
135
+ griptape_nodes/retained_mode/managers/event_manager.py,sha256=vXvbLJf7vM2cR6HfUTHyxwIASJe_2FRqk3-_HpPnoF0,13508
136
+ griptape_nodes/retained_mode/managers/flow_manager.py,sha256=YgBIPix-bFA_Htwtur83obXJWnCh5KQ7SLC1dtd0KNQ,192102
122
137
  griptape_nodes/retained_mode/managers/library_lifecycle/__init__.py,sha256=Iq79VxTdETiExBfFWXceJggDZqS6X3OkzXE9XwFclVw,1340
123
138
  griptape_nodes/retained_mode/managers/library_lifecycle/data_models.py,sha256=fvAP0VaYGPHYl_Kg3RL4gdJlpqya8UTvpP-C49r950k,6723
124
139
  griptape_nodes/retained_mode/managers/library_lifecycle/library_directory.py,sha256=Ywno93eVJH4sAtQ1dgHG2Pw9B3vw8fN8oAL0gn_l6OI,14836
@@ -131,13 +146,14 @@ griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/packa
131
146
  griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/sandbox.py,sha256=XgG7whE74zWDxX1pOvhASW0pwjOei1EDLvIH19xdzT0,6117
132
147
  griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance.py,sha256=cCGr-MQ1RlVBiUTZepYEKdVhPgC4ebcYrmpv8rI3VeM,894
133
148
  griptape_nodes/retained_mode/managers/library_lifecycle/library_status.py,sha256=K3UEBzAdCY9wphyBbLxDYP0Q43aYvhLZ_Pz7_SzcPec,443
134
- griptape_nodes/retained_mode/managers/library_manager.py,sha256=BELBl0IUgbPOe_J-7muyXXwJDobKPFf0yfQn9lL8DK0,100472
135
- griptape_nodes/retained_mode/managers/mcp_manager.py,sha256=BxNVDYUAn5-iylGzURqVZq1DRintrIK5T6q2X_rxm_U,15596
149
+ griptape_nodes/retained_mode/managers/library_manager.py,sha256=LVQLon6kQ3KOW5RUknJZEXHpTpkXvYRrCCFWLX_F8ks,101413
150
+ griptape_nodes/retained_mode/managers/mcp_manager.py,sha256=Ezmn5_48r4JWYe-tFGqmw9dXLvvTiO1rw9b4MNCkw0U,15955
136
151
  griptape_nodes/retained_mode/managers/model_manager.py,sha256=Qc_FiqIJQ_ZuL5Yb7WiHCgUngKlbbJ_dUo7E5Ten5_g,45036
137
- griptape_nodes/retained_mode/managers/node_manager.py,sha256=p_Q9_JLnJ7Uz5VsSmuzKO34BYcEGMiQYN8I_p-Ca2lQ,184514
152
+ griptape_nodes/retained_mode/managers/node_manager.py,sha256=7LQF3pWpTsGnQlgDu-CCeAmMk4E2VC-Ti-HiUELCkjE,196136
138
153
  griptape_nodes/retained_mode/managers/object_manager.py,sha256=w6T5UPUJRcYF90F1MuWhZVDgRrMc1uQ-6wt84Oz8OQA,12827
139
154
  griptape_nodes/retained_mode/managers/operation_manager.py,sha256=lTkMZlaacTgtV5oV-YF6HG8xsx9V_LwX1eg074WTs2k,20137
140
- griptape_nodes/retained_mode/managers/os_manager.py,sha256=Z3Ep3M1KkA9uMTFakOefy5KsnMgOX1p0u_jGSRWv_hg,54702
155
+ griptape_nodes/retained_mode/managers/os_manager.py,sha256=hsimauXkU8hq_c1w__qTDiZ1_It4OMtQY2hMj9Q4GEY,69453
156
+ griptape_nodes/retained_mode/managers/project_manager.py,sha256=cFa93l-thXc_CktAfACUDTtkwwWLabGh2bnvuPyQLvU,26231
141
157
  griptape_nodes/retained_mode/managers/resource_components/__init__.py,sha256=2FHpZFw2N1-oHfMCfrnB_XpF8_-2aSNtAZWh5zQTGL0,35
142
158
  griptape_nodes/retained_mode/managers/resource_components/capability_field.py,sha256=jZ5ONfdYVd5_MKlSKvUch1X2n1oHzMSeZW8UZ1a_RsU,1504
143
159
  griptape_nodes/retained_mode/managers/resource_components/comparator.py,sha256=02SiAiOatEnCgZOoMvpDhLsMpiOeNdtg9_HbrW4gS2k,609
@@ -149,13 +165,13 @@ griptape_nodes/retained_mode/managers/resource_types/cpu_resource.py,sha256=YHjU
149
165
  griptape_nodes/retained_mode/managers/resource_types/os_resource.py,sha256=ImgkOQI_br4yI3EY777D93NR20al8b4q9IocqWESjkw,3082
150
166
  griptape_nodes/retained_mode/managers/secrets_manager.py,sha256=2DU2002dgr3XipnAhmjqLXH82ZFb8wlGpTWX8pl4f7E,7722
151
167
  griptape_nodes/retained_mode/managers/session_manager.py,sha256=u3OEir9rjwG7GFM4MA5crKwcwq6F-lCUKlFzxlFU4co,14085
152
- griptape_nodes/retained_mode/managers/settings.py,sha256=4wJte850nr_M4laXFbEjWkmN5Ysuo18t5fujBofktOc,9343
168
+ griptape_nodes/retained_mode/managers/settings.py,sha256=rvWjqt82_k6fLFXXbLS_cAKNqb57_iHoVOkgZG9mnPU,9626
153
169
  griptape_nodes/retained_mode/managers/static_files_manager.py,sha256=dDeX1Z5cmviNPkEBkF2MWYryLacJOh0TTpu-t7oCHps,11283
154
170
  griptape_nodes/retained_mode/managers/sync_manager.py,sha256=-m2krEh2YtGs8iAPc8bhFGX8JqjeM5kEV1rnCmcj_yk,21247
155
171
  griptape_nodes/retained_mode/managers/user_manager.py,sha256=JAOOKDhUfIbj0CJ5EHRBcplmxheQTzeogbvGO23VqXQ,4508
156
172
  griptape_nodes/retained_mode/managers/variable_manager.py,sha256=TnuqHSRK9Yiu_EtKxQksF9SyyQb72lbFQuTQZdpBxeE,24116
157
173
  griptape_nodes/retained_mode/managers/version_compatibility_manager.py,sha256=3GEsJs1yNub8NP_ZNBgUEbaqHJXte8-u3Uapim_x0OU,14709
158
- griptape_nodes/retained_mode/managers/workflow_manager.py,sha256=KkMpoB9eD5jTgdpG-3ii_Z7rlQ57T7NWOnCWTD_KJBw,200868
174
+ griptape_nodes/retained_mode/managers/workflow_manager.py,sha256=ZZGa2WBWKXwZB90KZ5Gatgg_sQzue786F163ae0CN34,197894
159
175
  griptape_nodes/retained_mode/retained_mode.py,sha256=nBjLGz1y6ZEtAL5g81_gA93Y0r5va-Hdq4Rbqdk2XqM,71749
160
176
  griptape_nodes/retained_mode/utils/__init__.py,sha256=W5dvv8YwvVVq_8eVTgMd3Z_VB_Dtq1sIIVq8745QH_I,52
161
177
  griptape_nodes/retained_mode/utils/name_generator.py,sha256=IZLahtfP3XC79XApLdGoZ0IKKUkgiITpd16RK7NbyEs,2524
@@ -165,7 +181,7 @@ griptape_nodes/servers/mcp.py,sha256=pCtBFfPKZuhU2tWguorOnmV33fYmF7NN-c9gu4MQFEk
165
181
  griptape_nodes/servers/static.py,sha256=j-RiY10i8OhQRYi22eeq5rZ7I2An-DzIPA96rF5Tm4o,6975
166
182
  griptape_nodes/traits/__init__.py,sha256=bTLXTiZTJz2z15RRLoPI4nvLnNW9FiLcKL_2pT4E10g,32
167
183
  griptape_nodes/traits/add_param_button.py,sha256=27RZDVLMD0HmRF6hjfz7iV7LBau92vMc_d2eD2Ey8fA,649
168
- griptape_nodes/traits/button.py,sha256=cnI2YXYpz9Y3WlmZW64IgaTISRBwbGKMmM65wf1W8p0,13422
184
+ griptape_nodes/traits/button.py,sha256=-BCRutPwt4DBuSL4KhRQQOdmQgnyzLGhOZOx1XV_Aik,13964
169
185
  griptape_nodes/traits/clamp.py,sha256=BZVHiWfBNePWaPMaLyOgtcWzkM7Ls4hcPlm_afmGiIs,1030
170
186
  griptape_nodes/traits/color_picker.py,sha256=ySKaoZw319yfuTSEtkVT2vSR6Goy9pBm4rusjx95F0c,3024
171
187
  griptape_nodes/traits/compare.py,sha256=X-BXGemRDxQV4EX8X24LdtcwMWwfQ1jGqDvH2bSiSuc,521
@@ -195,7 +211,7 @@ griptape_nodes/version_compatibility/versions/v0_39_0/modified_parameters_set_re
195
211
  griptape_nodes/version_compatibility/workflow_versions/__init__.py,sha256=z5XDgkizoNByCXpyo34hfsJKFsWlOHbD6hgzfYH9ubc,52
196
212
  griptape_nodes/version_compatibility/workflow_versions/v0_7_0/__init__.py,sha256=IzPPmGK86h2swfGGTOHyVcBIlOng6SjgWQzlbf3ngmo,51
197
213
  griptape_nodes/version_compatibility/workflow_versions/v0_7_0/local_executor_argument_addition.py,sha256=Y8n1wzI5a-ZCHK5eiwtnnD3zF5lN-52R67rxYn0hxyI,2069
198
- griptape_nodes-0.60.4.dist-info/WHEEL,sha256=UH59_qNuDUAa1VxQvC6fxmbl24EMw6DOIlT1yp8oeuU,78
199
- griptape_nodes-0.60.4.dist-info/entry_points.txt,sha256=qvevqd3BVbAV5TcantnAm0ouqaqYKhsRO3pkFymWLWM,82
200
- griptape_nodes-0.60.4.dist-info/METADATA,sha256=G5WvCsukzACNMcchQbAqmmI99jRlTyxEwQV9BWJE56I,5108
201
- griptape_nodes-0.60.4.dist-info/RECORD,,
214
+ griptape_nodes-0.61.0.dist-info/WHEEL,sha256=5w2T7AS2mz1-rW9CNagNYWRCaB0iQqBMYLwKdlgiR4Q,78
215
+ griptape_nodes-0.61.0.dist-info/entry_points.txt,sha256=qvevqd3BVbAV5TcantnAm0ouqaqYKhsRO3pkFymWLWM,82
216
+ griptape_nodes-0.61.0.dist-info/METADATA,sha256=sVB0eOdzKv3B7sQST-fnVshkiiVliXfO_58BpQKTVlY,5178
217
+ griptape_nodes-0.61.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: uv 0.9.6
2
+ Generator: uv 0.9.7
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any