griptape-nodes 0.41.0__py3-none-any.whl → 0.43.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 (133) hide show
  1. griptape_nodes/__init__.py +0 -0
  2. griptape_nodes/app/.python-version +0 -0
  3. griptape_nodes/app/__init__.py +1 -10
  4. griptape_nodes/app/api.py +199 -0
  5. griptape_nodes/app/app.py +140 -222
  6. griptape_nodes/app/watch.py +4 -2
  7. griptape_nodes/bootstrap/__init__.py +0 -0
  8. griptape_nodes/bootstrap/bootstrap_script.py +0 -0
  9. griptape_nodes/bootstrap/register_libraries_script.py +0 -0
  10. griptape_nodes/bootstrap/structure_config.yaml +0 -0
  11. griptape_nodes/bootstrap/workflow_executors/__init__.py +0 -0
  12. griptape_nodes/bootstrap/workflow_executors/local_workflow_executor.py +0 -0
  13. griptape_nodes/bootstrap/workflow_executors/workflow_executor.py +0 -0
  14. griptape_nodes/bootstrap/workflow_runners/__init__.py +0 -0
  15. griptape_nodes/bootstrap/workflow_runners/bootstrap_workflow_runner.py +0 -0
  16. griptape_nodes/bootstrap/workflow_runners/local_workflow_runner.py +0 -0
  17. griptape_nodes/bootstrap/workflow_runners/subprocess_workflow_runner.py +6 -2
  18. griptape_nodes/bootstrap/workflow_runners/workflow_runner.py +0 -0
  19. griptape_nodes/drivers/__init__.py +0 -0
  20. griptape_nodes/drivers/storage/__init__.py +0 -0
  21. griptape_nodes/drivers/storage/base_storage_driver.py +0 -0
  22. griptape_nodes/drivers/storage/griptape_cloud_storage_driver.py +0 -0
  23. griptape_nodes/drivers/storage/local_storage_driver.py +5 -3
  24. griptape_nodes/drivers/storage/storage_backend.py +0 -0
  25. griptape_nodes/exe_types/__init__.py +0 -0
  26. griptape_nodes/exe_types/connections.py +0 -0
  27. griptape_nodes/exe_types/core_types.py +0 -0
  28. griptape_nodes/exe_types/flow.py +68 -368
  29. griptape_nodes/exe_types/node_types.py +17 -1
  30. griptape_nodes/exe_types/type_validator.py +0 -0
  31. griptape_nodes/machines/__init__.py +0 -0
  32. griptape_nodes/machines/control_flow.py +52 -20
  33. griptape_nodes/machines/fsm.py +16 -2
  34. griptape_nodes/machines/node_resolution.py +16 -14
  35. griptape_nodes/mcp_server/__init__.py +1 -0
  36. griptape_nodes/mcp_server/server.py +126 -0
  37. griptape_nodes/mcp_server/ws_request_manager.py +268 -0
  38. griptape_nodes/node_library/__init__.py +0 -0
  39. griptape_nodes/node_library/advanced_node_library.py +0 -0
  40. griptape_nodes/node_library/library_registry.py +0 -0
  41. griptape_nodes/node_library/workflow_registry.py +2 -2
  42. griptape_nodes/py.typed +0 -0
  43. griptape_nodes/retained_mode/__init__.py +0 -0
  44. griptape_nodes/retained_mode/events/__init__.py +0 -0
  45. griptape_nodes/retained_mode/events/agent_events.py +70 -8
  46. griptape_nodes/retained_mode/events/app_events.py +137 -12
  47. griptape_nodes/retained_mode/events/arbitrary_python_events.py +23 -0
  48. griptape_nodes/retained_mode/events/base_events.py +13 -31
  49. griptape_nodes/retained_mode/events/config_events.py +87 -11
  50. griptape_nodes/retained_mode/events/connection_events.py +56 -5
  51. griptape_nodes/retained_mode/events/context_events.py +27 -4
  52. griptape_nodes/retained_mode/events/execution_events.py +99 -14
  53. griptape_nodes/retained_mode/events/flow_events.py +165 -7
  54. griptape_nodes/retained_mode/events/generate_request_payload_schemas.py +0 -0
  55. griptape_nodes/retained_mode/events/library_events.py +195 -17
  56. griptape_nodes/retained_mode/events/logger_events.py +11 -0
  57. griptape_nodes/retained_mode/events/node_events.py +242 -22
  58. griptape_nodes/retained_mode/events/object_events.py +40 -4
  59. griptape_nodes/retained_mode/events/os_events.py +116 -3
  60. griptape_nodes/retained_mode/events/parameter_events.py +212 -8
  61. griptape_nodes/retained_mode/events/payload_registry.py +0 -0
  62. griptape_nodes/retained_mode/events/secrets_events.py +59 -7
  63. griptape_nodes/retained_mode/events/static_file_events.py +57 -4
  64. griptape_nodes/retained_mode/events/validation_events.py +39 -4
  65. griptape_nodes/retained_mode/events/workflow_events.py +188 -17
  66. griptape_nodes/retained_mode/griptape_nodes.py +89 -363
  67. griptape_nodes/retained_mode/managers/__init__.py +0 -0
  68. griptape_nodes/retained_mode/managers/agent_manager.py +49 -23
  69. griptape_nodes/retained_mode/managers/arbitrary_code_exec_manager.py +0 -0
  70. griptape_nodes/retained_mode/managers/config_manager.py +0 -0
  71. griptape_nodes/retained_mode/managers/context_manager.py +0 -0
  72. griptape_nodes/retained_mode/managers/engine_identity_manager.py +146 -0
  73. griptape_nodes/retained_mode/managers/event_manager.py +14 -2
  74. griptape_nodes/retained_mode/managers/flow_manager.py +751 -64
  75. griptape_nodes/retained_mode/managers/library_lifecycle/__init__.py +45 -0
  76. griptape_nodes/retained_mode/managers/library_lifecycle/data_models.py +191 -0
  77. griptape_nodes/retained_mode/managers/library_lifecycle/library_directory.py +346 -0
  78. griptape_nodes/retained_mode/managers/library_lifecycle/library_fsm.py +439 -0
  79. griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/__init__.py +17 -0
  80. griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/base.py +82 -0
  81. griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/github.py +116 -0
  82. griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/local_file.py +352 -0
  83. griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/package.py +104 -0
  84. griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/sandbox.py +155 -0
  85. griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance.py +18 -0
  86. griptape_nodes/retained_mode/managers/library_lifecycle/library_status.py +12 -0
  87. griptape_nodes/retained_mode/managers/library_manager.py +255 -40
  88. griptape_nodes/retained_mode/managers/node_manager.py +120 -103
  89. griptape_nodes/retained_mode/managers/object_manager.py +11 -3
  90. griptape_nodes/retained_mode/managers/operation_manager.py +0 -0
  91. griptape_nodes/retained_mode/managers/os_manager.py +582 -8
  92. griptape_nodes/retained_mode/managers/secrets_manager.py +4 -0
  93. griptape_nodes/retained_mode/managers/session_manager.py +328 -0
  94. griptape_nodes/retained_mode/managers/settings.py +7 -0
  95. griptape_nodes/retained_mode/managers/static_files_manager.py +0 -0
  96. griptape_nodes/retained_mode/managers/version_compatibility_manager.py +2 -2
  97. griptape_nodes/retained_mode/managers/workflow_manager.py +722 -456
  98. griptape_nodes/retained_mode/retained_mode.py +44 -0
  99. griptape_nodes/retained_mode/utils/__init__.py +0 -0
  100. griptape_nodes/retained_mode/utils/engine_identity.py +141 -27
  101. griptape_nodes/retained_mode/utils/name_generator.py +0 -0
  102. griptape_nodes/traits/__init__.py +0 -0
  103. griptape_nodes/traits/add_param_button.py +0 -0
  104. griptape_nodes/traits/button.py +0 -0
  105. griptape_nodes/traits/clamp.py +0 -0
  106. griptape_nodes/traits/compare.py +0 -0
  107. griptape_nodes/traits/compare_images.py +0 -0
  108. griptape_nodes/traits/file_system_picker.py +127 -0
  109. griptape_nodes/traits/minmax.py +0 -0
  110. griptape_nodes/traits/options.py +0 -0
  111. griptape_nodes/traits/slider.py +0 -0
  112. griptape_nodes/traits/trait_registry.py +0 -0
  113. griptape_nodes/traits/traits.json +0 -0
  114. griptape_nodes/updater/__init__.py +2 -2
  115. griptape_nodes/updater/__main__.py +0 -0
  116. griptape_nodes/utils/__init__.py +0 -0
  117. griptape_nodes/utils/dict_utils.py +0 -0
  118. griptape_nodes/utils/image_preview.py +128 -0
  119. griptape_nodes/utils/metaclasses.py +0 -0
  120. griptape_nodes/version_compatibility/__init__.py +0 -0
  121. griptape_nodes/version_compatibility/versions/__init__.py +0 -0
  122. griptape_nodes/version_compatibility/versions/v0_39_0/__init__.py +0 -0
  123. griptape_nodes/version_compatibility/versions/v0_39_0/modified_parameters_set_removal.py +5 -5
  124. griptape_nodes-0.43.0.dist-info/METADATA +90 -0
  125. griptape_nodes-0.43.0.dist-info/RECORD +129 -0
  126. griptape_nodes-0.43.0.dist-info/WHEEL +4 -0
  127. {griptape_nodes-0.41.0.dist-info → griptape_nodes-0.43.0.dist-info}/entry_points.txt +1 -0
  128. griptape_nodes/app/app_sessions.py +0 -458
  129. griptape_nodes/retained_mode/utils/session_persistence.py +0 -105
  130. griptape_nodes-0.41.0.dist-info/METADATA +0 -78
  131. griptape_nodes-0.41.0.dist-info/RECORD +0 -112
  132. griptape_nodes-0.41.0.dist-info/WHEEL +0 -4
  133. griptape_nodes-0.41.0.dist-info/licenses/LICENSE +0 -201
@@ -20,6 +20,32 @@ from griptape_nodes.retained_mode.events.payload_registry import PayloadRegistry
20
20
  @dataclass
21
21
  @PayloadRegistry.register
22
22
  class AddParameterToNodeRequest(RequestPayload):
23
+ """Add a new parameter to a node.
24
+
25
+ Use when: Dynamically adding inputs/outputs to nodes, customizing node interfaces,
26
+ building configurable nodes. Supports type validation, tooltips, and mode restrictions.
27
+
28
+ Args:
29
+ node_name: Name of the node to add parameter to (None for current context)
30
+ parameter_name: Name of the new parameter (None for auto-generated)
31
+ default_value: Default value for the parameter
32
+ tooltip: General tooltip text or structured tooltip
33
+ tooltip_as_input: Tooltip when parameter is used as input
34
+ tooltip_as_property: Tooltip when parameter is used as property
35
+ tooltip_as_output: Tooltip when parameter is used as output
36
+ type: Parameter type string
37
+ input_types: List of allowed input types
38
+ output_type: Output type for the parameter
39
+ ui_options: UI configuration options
40
+ mode_allowed_input: Whether parameter can be used as input
41
+ mode_allowed_property: Whether parameter can be used as property
42
+ mode_allowed_output: Whether parameter can be used as output
43
+ parent_container_name: Name of parent container if nested
44
+ initial_setup: Skip setup work when loading from file
45
+
46
+ Results: AddParameterToNodeResultSuccess (with parameter name) | AddParameterToNodeResultFailure
47
+ """
48
+
23
49
  # If node name is None, use the Current Context
24
50
  node_name: str | None = None
25
51
  parameter_name: str | None = None
@@ -53,6 +79,14 @@ class AddParameterToNodeRequest(RequestPayload):
53
79
  @dataclass
54
80
  @PayloadRegistry.register
55
81
  class AddParameterToNodeResultSuccess(WorkflowAlteredMixin, ResultPayloadSuccess):
82
+ """Parameter added successfully to node.
83
+
84
+ Args:
85
+ parameter_name: Name of the new parameter
86
+ type: Type of the parameter
87
+ node_name: Name of the node parameter was added to
88
+ """
89
+
56
90
  parameter_name: str
57
91
  type: str
58
92
  node_name: str
@@ -61,12 +95,24 @@ class AddParameterToNodeResultSuccess(WorkflowAlteredMixin, ResultPayloadSuccess
61
95
  @dataclass
62
96
  @PayloadRegistry.register
63
97
  class AddParameterToNodeResultFailure(ResultPayloadFailure):
64
- pass
98
+ """Parameter addition failed. Common causes: node not found, invalid parameter name, type conflicts."""
65
99
 
66
100
 
67
101
  @dataclass
68
102
  @PayloadRegistry.register
69
103
  class RemoveParameterFromNodeRequest(RequestPayload):
104
+ """Remove a parameter from a node.
105
+
106
+ Use when: Cleaning up unused parameters, dynamically restructuring node interfaces,
107
+ removing deprecated parameters. Handles cleanup of connections and values.
108
+
109
+ Args:
110
+ parameter_name: Name of the parameter to remove
111
+ node_name: Name of the node to remove parameter from (None for current context)
112
+
113
+ Results: RemoveParameterFromNodeResultSuccess | RemoveParameterFromNodeResultFailure
114
+ """
115
+
70
116
  parameter_name: str
71
117
  # If node name is None, use the Current Context
72
118
  node_name: str | None = None
@@ -75,18 +121,34 @@ class RemoveParameterFromNodeRequest(RequestPayload):
75
121
  @dataclass
76
122
  @PayloadRegistry.register
77
123
  class RemoveParameterFromNodeResultSuccess(WorkflowAlteredMixin, ResultPayloadSuccess):
78
- pass
124
+ """Parameter removed successfully from node. Connections and values cleaned up."""
79
125
 
80
126
 
81
127
  @dataclass
82
128
  @PayloadRegistry.register
83
129
  class RemoveParameterFromNodeResultFailure(ResultPayloadFailure):
84
- pass
130
+ """Parameter removal failed. Common causes: node not found, parameter not found, removal not allowed."""
85
131
 
86
132
 
87
133
  @dataclass
88
134
  @PayloadRegistry.register
89
135
  class SetParameterValueRequest(RequestPayload):
136
+ """Set the value of a parameter on a node.
137
+
138
+ Use when: Configuring node inputs, setting property values, loading saved workflows,
139
+ updating parameter values programmatically. Handles type validation and conversion.
140
+
141
+ Args:
142
+ parameter_name: Name of the parameter to set
143
+ value: Value to set for the parameter
144
+ node_name: Name of the node containing the parameter (None for current context)
145
+ data_type: Expected data type for validation (None for auto-detection)
146
+ initial_setup: Skip setup work when loading from file
147
+ is_output: Whether this is an output value (used when loading workflows)
148
+
149
+ Results: SetParameterValueResultSuccess (with finalized value) | SetParameterValueResultFailure
150
+ """
151
+
90
152
  parameter_name: str
91
153
  value: Any
92
154
  # If node name is None, use the Current Context
@@ -101,6 +163,13 @@ class SetParameterValueRequest(RequestPayload):
101
163
  @dataclass
102
164
  @PayloadRegistry.register
103
165
  class SetParameterValueResultSuccess(WorkflowAlteredMixin, ResultPayloadSuccess):
166
+ """Parameter value set successfully. Value may have been processed or converted.
167
+
168
+ Args:
169
+ finalized_value: The actual value stored after processing
170
+ data_type: The determined data type of the value
171
+ """
172
+
104
173
  finalized_value: Any
105
174
  data_type: str
106
175
 
@@ -108,12 +177,28 @@ class SetParameterValueResultSuccess(WorkflowAlteredMixin, ResultPayloadSuccess)
108
177
  @dataclass
109
178
  @PayloadRegistry.register
110
179
  class SetParameterValueResultFailure(ResultPayloadFailure):
111
- pass
180
+ """Parameter value setting failed.
181
+
182
+ Common causes: node not found, parameter not found,
183
+ type validation error, value conversion error.
184
+ """
112
185
 
113
186
 
114
187
  @dataclass
115
188
  @PayloadRegistry.register
116
189
  class GetParameterDetailsRequest(RequestPayload):
190
+ """Get detailed information about a parameter.
191
+
192
+ Use when: Inspecting parameter configuration, validating parameter properties,
193
+ building UIs that display parameter details, understanding parameter capabilities.
194
+
195
+ Args:
196
+ parameter_name: Name of the parameter to get details for
197
+ node_name: Name of the node containing the parameter (None for current context)
198
+
199
+ Results: GetParameterDetailsResultSuccess (with full details) | GetParameterDetailsResultFailure
200
+ """
201
+
117
202
  parameter_name: str
118
203
  # If node name is None, use the Current Context
119
204
  node_name: str | None = None
@@ -122,6 +207,21 @@ class GetParameterDetailsRequest(RequestPayload):
122
207
  @dataclass
123
208
  @PayloadRegistry.register
124
209
  class GetParameterDetailsResultSuccess(WorkflowNotAlteredMixin, ResultPayloadSuccess):
210
+ """Parameter details retrieved successfully.
211
+
212
+ Args:
213
+ element_id: Unique identifier for the parameter
214
+ type: Parameter type
215
+ input_types: Accepted input types
216
+ output_type: Output type when used as output
217
+ default_value: Default value if any
218
+ tooltip: General tooltip text
219
+ tooltip_as_input/property/output: Mode-specific tooltips
220
+ mode_allowed_input/property/output: Which modes are allowed
221
+ is_user_defined: Whether this is a user-defined parameter
222
+ ui_options: UI configuration options
223
+ """
224
+
125
225
  element_id: str
126
226
  type: str
127
227
  input_types: list[str]
@@ -141,12 +241,38 @@ class GetParameterDetailsResultSuccess(WorkflowNotAlteredMixin, ResultPayloadSuc
141
241
  @dataclass
142
242
  @PayloadRegistry.register
143
243
  class GetParameterDetailsResultFailure(WorkflowNotAlteredMixin, ResultPayloadFailure):
144
- pass
244
+ """Parameter details retrieval failed. Common causes: node not found, parameter not found."""
145
245
 
146
246
 
147
247
  @dataclass
148
248
  @PayloadRegistry.register
149
249
  class AlterParameterDetailsRequest(RequestPayload):
250
+ """Alter the details and configuration of a parameter.
251
+
252
+ Use when: Modifying parameter types, updating tooltips, changing allowed modes,
253
+ configuring UI options, updating parameter constraints after creation.
254
+
255
+ Args:
256
+ parameter_name: Name of the parameter to alter
257
+ node_name: Name of the node containing the parameter (None for current context)
258
+ type: New parameter type
259
+ input_types: New list of accepted input types
260
+ output_type: New output type when used as output
261
+ default_value: New default value
262
+ tooltip: New general tooltip text
263
+ tooltip_as_input: New tooltip when used as input
264
+ tooltip_as_property: New tooltip when used as property
265
+ tooltip_as_output: New tooltip when used as output
266
+ mode_allowed_input: Whether parameter can be used as input
267
+ mode_allowed_property: Whether parameter can be used as property
268
+ mode_allowed_output: Whether parameter can be used as output
269
+ ui_options: New UI configuration options
270
+ traits: Set of parameter traits
271
+ initial_setup: Skip setup work when loading from file
272
+
273
+ Results: AlterParameterDetailsResultSuccess | AlterParameterDetailsResultFailure
274
+ """
275
+
150
276
  parameter_name: str
151
277
  # If node name is None, use the Current Context
152
278
  node_name: str | None = None
@@ -218,6 +344,18 @@ class AlterParameterDetailsResultFailure(ResultPayloadFailure):
218
344
  @dataclass
219
345
  @PayloadRegistry.register
220
346
  class GetParameterValueRequest(RequestPayload):
347
+ """Get the current value of a parameter.
348
+
349
+ Use when: Reading parameter values, debugging workflow state, displaying current values in UIs,
350
+ validating parameter states before execution.
351
+
352
+ Args:
353
+ parameter_name: Name of the parameter to get value for
354
+ node_name: Name of the node containing the parameter (None for current context)
355
+
356
+ Results: GetParameterValueResultSuccess (with value and type info) | GetParameterValueResultFailure
357
+ """
358
+
221
359
  parameter_name: str
222
360
  # If node name is None, use the Current Context
223
361
  node_name: str | None = None
@@ -226,6 +364,15 @@ class GetParameterValueRequest(RequestPayload):
226
364
  @dataclass
227
365
  @PayloadRegistry.register
228
366
  class GetParameterValueResultSuccess(WorkflowNotAlteredMixin, ResultPayloadSuccess):
367
+ """Parameter value retrieved successfully.
368
+
369
+ Args:
370
+ input_types: Accepted input types
371
+ type: Current parameter type
372
+ output_type: Output type when used as output
373
+ value: Current parameter value
374
+ """
375
+
229
376
  input_types: list[str]
230
377
  type: str
231
378
  output_type: str
@@ -235,7 +382,7 @@ class GetParameterValueResultSuccess(WorkflowNotAlteredMixin, ResultPayloadSucce
235
382
  @dataclass
236
383
  @PayloadRegistry.register
237
384
  class GetParameterValueResultFailure(WorkflowNotAlteredMixin, ResultPayloadFailure):
238
- pass
385
+ """Parameter value retrieval failed. Common causes: node not found, parameter not found."""
239
386
 
240
387
 
241
388
  @dataclass
@@ -250,6 +397,19 @@ class OnParameterValueChanged(WorkflowAlteredMixin, ResultPayloadSuccess):
250
397
  @dataclass
251
398
  @PayloadRegistry.register
252
399
  class GetCompatibleParametersRequest(RequestPayload):
400
+ """Get parameters that are compatible for connections.
401
+
402
+ Use when: Creating connections between nodes, validating connection compatibility,
403
+ building connection UIs, discovering available connection targets.
404
+
405
+ Args:
406
+ parameter_name: Name of the parameter to find compatible parameters for
407
+ is_output: Whether the parameter is an output parameter
408
+ node_name: Name of the node containing the parameter (None for current context)
409
+
410
+ Results: GetCompatibleParametersResultSuccess (with compatible parameters) | GetCompatibleParametersResultFailure
411
+ """
412
+
253
413
  parameter_name: str
254
414
  is_output: bool
255
415
  # If node name is None, use the Current Context
@@ -264,18 +424,36 @@ class ParameterAndMode(NamedTuple):
264
424
  @dataclass
265
425
  @PayloadRegistry.register
266
426
  class GetCompatibleParametersResultSuccess(WorkflowNotAlteredMixin, ResultPayloadSuccess):
427
+ """Compatible parameters retrieved successfully.
428
+
429
+ Args:
430
+ valid_parameters_by_node: Dictionary mapping node names to lists of compatible parameters
431
+ """
432
+
267
433
  valid_parameters_by_node: dict[str, list[ParameterAndMode]]
268
434
 
269
435
 
270
436
  @dataclass
271
437
  @PayloadRegistry.register
272
438
  class GetCompatibleParametersResultFailure(WorkflowNotAlteredMixin, ResultPayloadFailure):
273
- pass
439
+ """Compatible parameters retrieval failed. Common causes: node not found, parameter not found."""
274
440
 
275
441
 
276
442
  @dataclass
277
443
  @PayloadRegistry.register
278
444
  class GetNodeElementDetailsRequest(RequestPayload):
445
+ """Get detailed information about a node element.
446
+
447
+ Use when: Inspecting node structure, debugging element configuration,
448
+ building advanced UIs, understanding node composition.
449
+
450
+ Args:
451
+ node_name: Name of the node to get element details for (None for current context)
452
+ specific_element_id: ID of specific element to get details for (None for root)
453
+
454
+ Results: GetNodeElementDetailsResultSuccess (with element details) | GetNodeElementDetailsResultFailure
455
+ """
456
+
279
457
  # If node name is None, use the Current Context
280
458
  node_name: str | None = None
281
459
  specific_element_id: str | None = None # Pass None to use the root
@@ -303,6 +481,20 @@ class AlterElementEvent(ExecutionPayload):
303
481
  @dataclass
304
482
  @PayloadRegistry.register
305
483
  class RenameParameterRequest(RequestPayload):
484
+ """Rename a parameter on a node.
485
+
486
+ Use when: Refactoring parameter names, improving parameter clarity, updating parameter
487
+ naming conventions. Handles updating connections and references.
488
+
489
+ Args:
490
+ parameter_name: Current name of the parameter
491
+ new_parameter_name: New name for the parameter
492
+ node_name: Name of the node containing the parameter (None for current context)
493
+ initial_setup: Skip setup work when loading from file
494
+
495
+ Results: RenameParameterResultSuccess (with old and new names) | RenameParameterResultFailure
496
+ """
497
+
306
498
  parameter_name: str
307
499
  new_parameter_name: str
308
500
  # If node name is None, use the Current Context
@@ -314,6 +506,14 @@ class RenameParameterRequest(RequestPayload):
314
506
  @dataclass
315
507
  @PayloadRegistry.register
316
508
  class RenameParameterResultSuccess(WorkflowAlteredMixin, ResultPayloadSuccess):
509
+ """Parameter renamed successfully. Connections and references updated.
510
+
511
+ Args:
512
+ old_parameter_name: Previous parameter name
513
+ new_parameter_name: New parameter name
514
+ node_name: Name of the node containing the parameter
515
+ """
516
+
317
517
  old_parameter_name: str
318
518
  new_parameter_name: str
319
519
  node_name: str
@@ -322,7 +522,11 @@ class RenameParameterResultSuccess(WorkflowAlteredMixin, ResultPayloadSuccess):
322
522
  @dataclass
323
523
  @PayloadRegistry.register
324
524
  class RenameParameterResultFailure(ResultPayloadFailure):
325
- pass
525
+ """Parameter rename failed.
526
+
527
+ Common causes: node not found, parameter not found,
528
+ name already exists, invalid new name.
529
+ """
326
530
 
327
531
 
328
532
  @dataclass
File without changes
@@ -13,24 +13,53 @@ from griptape_nodes.retained_mode.events.payload_registry import PayloadRegistry
13
13
  @dataclass
14
14
  @PayloadRegistry.register
15
15
  class GetSecretValueRequest(RequestPayload):
16
+ """Get a secret value by key.
17
+
18
+ Use when: Retrieving API keys, database credentials, authentication tokens,
19
+ accessing sensitive configuration values, implementing secure storage.
20
+
21
+ Args:
22
+ key: Name of the secret key to retrieve
23
+
24
+ Results: GetSecretValueResultSuccess (with value) | GetSecretValueResultFailure (key not found)
25
+ """
26
+
16
27
  key: str
17
28
 
18
29
 
19
30
  @dataclass
20
31
  @PayloadRegistry.register
21
32
  class GetSecretValueResultSuccess(WorkflowNotAlteredMixin, ResultPayloadSuccess):
33
+ """Secret value retrieved successfully.
34
+
35
+ Args:
36
+ value: The secret value (handle with care - avoid logging)
37
+ """
38
+
22
39
  value: Any
23
40
 
24
41
 
25
42
  @dataclass
26
43
  @PayloadRegistry.register
27
44
  class GetSecretValueResultFailure(WorkflowNotAlteredMixin, ResultPayloadFailure):
28
- pass
45
+ """Secret value retrieval failed. Common causes: key not found, access denied, secrets store unavailable."""
29
46
 
30
47
 
31
48
  @dataclass
32
49
  @PayloadRegistry.register
33
50
  class SetSecretValueRequest(RequestPayload):
51
+ """Set a secret value by key.
52
+
53
+ Use when: Storing API keys, database credentials, authentication tokens,
54
+ configuring secure settings, implementing secret management.
55
+
56
+ Args:
57
+ key: Name of the secret key to set
58
+ value: Secret value to store (handle with care)
59
+
60
+ Results: SetSecretValueResultSuccess | SetSecretValueResultFailure (storage error)
61
+ """
62
+
34
63
  key: str
35
64
  value: Any
36
65
 
@@ -38,46 +67,69 @@ class SetSecretValueRequest(RequestPayload):
38
67
  @dataclass
39
68
  @PayloadRegistry.register
40
69
  class SetSecretValueResultSuccess(WorkflowNotAlteredMixin, ResultPayloadSuccess):
41
- pass
70
+ """Secret value set successfully. Value is now stored securely."""
42
71
 
43
72
 
44
73
  @dataclass
45
74
  @PayloadRegistry.register
46
75
  class SetSecretValueResultFailure(WorkflowNotAlteredMixin, ResultPayloadFailure):
47
- pass
76
+ """Secret value setting failed. Common causes: storage error, access denied, invalid key format."""
48
77
 
49
78
 
50
79
  @dataclass
51
80
  @PayloadRegistry.register
52
81
  class GetAllSecretValuesRequest(RequestPayload):
53
- pass
82
+ """Get all secret values.
83
+
84
+ Use when: Backing up secrets, migrating configurations, implementing secret management UIs,
85
+ debugging secret issues. Use with caution - returns all sensitive data.
86
+
87
+ Results: GetAllSecretValuesResultSuccess (with values dict) | GetAllSecretValuesResultFailure (access error)
88
+ """
54
89
 
55
90
 
56
91
  @dataclass
57
92
  @PayloadRegistry.register
58
93
  class GetAllSecretValuesResultSuccess(WorkflowNotAlteredMixin, ResultPayloadSuccess):
94
+ """All secret values retrieved successfully.
95
+
96
+ Args:
97
+ values: Dictionary of all secret key-value pairs (handle with extreme care)
98
+ """
99
+
59
100
  values: dict[str, Any]
60
101
 
61
102
 
62
103
  @dataclass
63
104
  @PayloadRegistry.register
64
105
  class GetAllSecretValuesResultFailure(WorkflowNotAlteredMixin, ResultPayloadFailure):
65
- pass
106
+ """Secret values retrieval failed. Common causes: access denied, secrets store unavailable."""
66
107
 
67
108
 
68
109
  @dataclass
69
110
  @PayloadRegistry.register
70
111
  class DeleteSecretValueRequest(RequestPayload):
112
+ """Delete a secret value by key.
113
+
114
+ Use when: Removing obsolete secrets, cleaning up configurations, implementing secret rotation,
115
+ revoking access credentials, managing secret lifecycle.
116
+
117
+ Args:
118
+ key: Name of the secret key to delete
119
+
120
+ Results: DeleteSecretValueResultSuccess | DeleteSecretValueResultFailure (key not found, deletion error)
121
+ """
122
+
71
123
  key: str
72
124
 
73
125
 
74
126
  @dataclass
75
127
  @PayloadRegistry.register
76
128
  class DeleteSecretValueResultSuccess(WorkflowNotAlteredMixin, ResultPayloadSuccess):
77
- pass
129
+ """Secret value deleted successfully. Secret is no longer accessible."""
78
130
 
79
131
 
80
132
  @dataclass
81
133
  @PayloadRegistry.register
82
134
  class DeleteSecretValueResultFailure(WorkflowNotAlteredMixin, ResultPayloadFailure):
83
- pass
135
+ """Secret value deletion failed. Common causes: key not found, access denied, deletion not allowed."""
@@ -12,7 +12,12 @@ from griptape_nodes.retained_mode.events.payload_registry import PayloadRegistry
12
12
  @dataclass
13
13
  @PayloadRegistry.register
14
14
  class CreateStaticFileRequest(RequestPayload):
15
- """Request to create a static file.
15
+ """Create a static file from content.
16
+
17
+ Use when: Generating files from workflow outputs, creating downloadable content,
18
+ storing processed data, implementing file export functionality.
19
+
20
+ Results: CreateStaticFileResultSuccess (with URL) | CreateStaticFileResultFailure (creation error)
16
21
 
17
22
  Args:
18
23
  content: Content of the file base64 encoded
@@ -26,22 +31,39 @@ class CreateStaticFileRequest(RequestPayload):
26
31
  @dataclass
27
32
  @PayloadRegistry.register
28
33
  class CreateStaticFileResultSuccess(WorkflowNotAlteredMixin, ResultPayloadSuccess):
34
+ """Static file created successfully.
35
+
36
+ Args:
37
+ url: URL where the static file can be accessed
38
+ """
39
+
29
40
  url: str
30
41
 
31
42
 
32
43
  @dataclass
33
44
  @PayloadRegistry.register
34
45
  class CreateStaticFileResultFailure(WorkflowNotAlteredMixin, ResultPayloadFailure):
46
+ """Static file creation failed.
47
+
48
+ Args:
49
+ error: Detailed error message describing the failure
50
+ """
51
+
35
52
  error: str
36
53
 
37
54
 
38
55
  @dataclass
39
56
  @PayloadRegistry.register
40
57
  class CreateStaticFileUploadUrlRequest(RequestPayload):
41
- """Request to create a presigned URL for uploading a static file via a HTTP PUT.
58
+ """Create a presigned URL for uploading a static file via HTTP PUT.
59
+
60
+ Use when: Implementing file upload functionality, allowing direct client uploads,
61
+ enabling large file transfers, implementing drag-and-drop uploads.
42
62
 
43
63
  Args:
44
64
  file_name: Name of the file to be uploaded
65
+
66
+ Results: CreateStaticFileUploadUrlResultSuccess (with URL and headers) | CreateStaticFileUploadUrlResultFailure (URL creation error)
45
67
  """
46
68
 
47
69
  file_name: str
@@ -50,6 +72,14 @@ class CreateStaticFileUploadUrlRequest(RequestPayload):
50
72
  @dataclass
51
73
  @PayloadRegistry.register
52
74
  class CreateStaticFileUploadUrlResultSuccess(WorkflowNotAlteredMixin, ResultPayloadSuccess):
75
+ """Static file upload URL created successfully.
76
+
77
+ Args:
78
+ url: Presigned URL for uploading the file
79
+ headers: HTTP headers required for the upload request
80
+ method: HTTP method to use for upload (typically PUT)
81
+ """
82
+
53
83
  url: str
54
84
  headers: dict = field(default_factory=dict)
55
85
  method: str = "PUT"
@@ -58,16 +88,27 @@ class CreateStaticFileUploadUrlResultSuccess(WorkflowNotAlteredMixin, ResultPayl
58
88
  @dataclass
59
89
  @PayloadRegistry.register
60
90
  class CreateStaticFileUploadUrlResultFailure(WorkflowNotAlteredMixin, ResultPayloadFailure):
91
+ """Static file upload URL creation failed.
92
+
93
+ Args:
94
+ error: Detailed error message describing the failure
95
+ """
96
+
61
97
  error: str
62
98
 
63
99
 
64
100
  @dataclass
65
101
  @PayloadRegistry.register
66
102
  class CreateStaticFileDownloadUrlRequest(RequestPayload):
67
- """Request to create a presigned URL for downloading a static file via a HTTP GET.
103
+ """Create a presigned URL for downloading a static file via HTTP GET.
104
+
105
+ Use when: Providing secure file access, implementing file sharing,
106
+ enabling temporary download links, controlling file access permissions.
68
107
 
69
108
  Args:
70
- file_name: Name of the file to be uploaded
109
+ file_name: Name of the file to be downloaded
110
+
111
+ Results: CreateStaticFileDownloadUrlResultSuccess (with URL) | CreateStaticFileDownloadUrlResultFailure (URL creation error)
71
112
  """
72
113
 
73
114
  file_name: str
@@ -76,10 +117,22 @@ class CreateStaticFileDownloadUrlRequest(RequestPayload):
76
117
  @dataclass
77
118
  @PayloadRegistry.register
78
119
  class CreateStaticFileDownloadUrlResultSuccess(WorkflowNotAlteredMixin, ResultPayloadSuccess):
120
+ """Static file download URL created successfully.
121
+
122
+ Args:
123
+ url: Presigned URL for downloading the file
124
+ """
125
+
79
126
  url: str
80
127
 
81
128
 
82
129
  @dataclass
83
130
  @PayloadRegistry.register
84
131
  class CreateStaticFileDownloadUrlResultFailure(WorkflowNotAlteredMixin, ResultPayloadFailure):
132
+ """Static file download URL creation failed.
133
+
134
+ Args:
135
+ error: Detailed error message describing the failure
136
+ """
137
+
85
138
  error: str
@@ -13,6 +13,18 @@ from griptape_nodes.retained_mode.events.payload_registry import PayloadRegistry
13
13
  @dataclass
14
14
  @PayloadRegistry.register
15
15
  class ValidateFlowDependenciesRequest(RequestPayload):
16
+ """Validate that a flow has all required dependencies before execution.
17
+
18
+ Use when: Pre-flight checks before flow execution, preventing runtime failures,
19
+ debugging dependency issues, validating flow readiness.
20
+
21
+ Args:
22
+ flow_name: Name of the flow to validate dependencies for
23
+ flow_node_name: Name of the flow node to validate (None for default)
24
+
25
+ Results: ValidateFlowDependenciesResultSuccess (with validation status) | ValidateFlowDependenciesResultFailure (validation error)
26
+ """
27
+
16
28
  # Same inputs as StartFlow
17
29
  flow_name: str
18
30
  flow_node_name: str | None = None
@@ -21,20 +33,37 @@ class ValidateFlowDependenciesRequest(RequestPayload):
21
33
  @dataclass
22
34
  @PayloadRegistry.register
23
35
  class ValidateFlowDependenciesResultSuccess(WorkflowNotAlteredMixin, ResultPayloadSuccess):
36
+ """Flow dependencies validated successfully.
37
+
38
+ Args:
39
+ validation_succeeded: True if all dependencies are satisfied, False if issues found
40
+ exceptions: List of dependency validation exceptions (empty if validation_succeeded=True)
41
+ """
42
+
24
43
  validation_succeeded: bool
25
44
  exceptions: list[Exception]
26
45
 
27
46
 
28
- # if it doesn't have a dependency we want
29
47
  @dataclass
30
48
  @PayloadRegistry.register
31
49
  class ValidateFlowDependenciesResultFailure(WorkflowNotAlteredMixin, ResultPayloadFailure):
32
- pass
50
+ """Flow dependency validation failed. Common causes: flow not found, validation system error, missing dependencies."""
33
51
 
34
52
 
35
53
  @dataclass
36
54
  @PayloadRegistry.register
37
55
  class ValidateNodeDependenciesRequest(RequestPayload):
56
+ """Validate that a node has all required dependencies before execution.
57
+
58
+ Use when: Pre-flight checks before node execution, preventing runtime failures,
59
+ debugging node dependency issues, validating node readiness.
60
+
61
+ Args:
62
+ node_name: Name of the node to validate dependencies for
63
+
64
+ Results: ValidateNodeDependenciesResultSuccess (with validation status) | ValidateNodeDependenciesResultFailure (validation error)
65
+ """
66
+
38
67
  # Same inputs as StartFlow
39
68
  node_name: str
40
69
 
@@ -42,12 +71,18 @@ class ValidateNodeDependenciesRequest(RequestPayload):
42
71
  @dataclass
43
72
  @PayloadRegistry.register
44
73
  class ValidateNodeDependenciesResultSuccess(WorkflowNotAlteredMixin, ResultPayloadSuccess):
74
+ """Node dependencies validated successfully.
75
+
76
+ Args:
77
+ validation_succeeded: True if all dependencies are satisfied, False if issues found
78
+ exceptions: List of dependency validation exceptions (empty if validation_succeeded=True)
79
+ """
80
+
45
81
  validation_succeeded: bool
46
82
  exceptions: list[Exception]
47
83
 
48
84
 
49
- # if it doesn't have a dependency we want
50
85
  @dataclass
51
86
  @PayloadRegistry.register
52
87
  class ValidateNodeDependenciesResultFailure(WorkflowNotAlteredMixin, ResultPayloadFailure):
53
- pass
88
+ """Node dependency validation failed. Common causes: node not found, validation system error, missing dependencies."""