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.
- griptape_nodes/__init__.py +0 -0
- griptape_nodes/app/.python-version +0 -0
- griptape_nodes/app/__init__.py +1 -10
- griptape_nodes/app/api.py +199 -0
- griptape_nodes/app/app.py +140 -222
- griptape_nodes/app/watch.py +4 -2
- griptape_nodes/bootstrap/__init__.py +0 -0
- griptape_nodes/bootstrap/bootstrap_script.py +0 -0
- griptape_nodes/bootstrap/register_libraries_script.py +0 -0
- griptape_nodes/bootstrap/structure_config.yaml +0 -0
- griptape_nodes/bootstrap/workflow_executors/__init__.py +0 -0
- griptape_nodes/bootstrap/workflow_executors/local_workflow_executor.py +0 -0
- griptape_nodes/bootstrap/workflow_executors/workflow_executor.py +0 -0
- griptape_nodes/bootstrap/workflow_runners/__init__.py +0 -0
- griptape_nodes/bootstrap/workflow_runners/bootstrap_workflow_runner.py +0 -0
- griptape_nodes/bootstrap/workflow_runners/local_workflow_runner.py +0 -0
- griptape_nodes/bootstrap/workflow_runners/subprocess_workflow_runner.py +6 -2
- griptape_nodes/bootstrap/workflow_runners/workflow_runner.py +0 -0
- griptape_nodes/drivers/__init__.py +0 -0
- griptape_nodes/drivers/storage/__init__.py +0 -0
- griptape_nodes/drivers/storage/base_storage_driver.py +0 -0
- griptape_nodes/drivers/storage/griptape_cloud_storage_driver.py +0 -0
- griptape_nodes/drivers/storage/local_storage_driver.py +5 -3
- griptape_nodes/drivers/storage/storage_backend.py +0 -0
- griptape_nodes/exe_types/__init__.py +0 -0
- griptape_nodes/exe_types/connections.py +0 -0
- griptape_nodes/exe_types/core_types.py +0 -0
- griptape_nodes/exe_types/flow.py +68 -368
- griptape_nodes/exe_types/node_types.py +17 -1
- griptape_nodes/exe_types/type_validator.py +0 -0
- griptape_nodes/machines/__init__.py +0 -0
- griptape_nodes/machines/control_flow.py +52 -20
- griptape_nodes/machines/fsm.py +16 -2
- griptape_nodes/machines/node_resolution.py +16 -14
- griptape_nodes/mcp_server/__init__.py +1 -0
- griptape_nodes/mcp_server/server.py +126 -0
- griptape_nodes/mcp_server/ws_request_manager.py +268 -0
- griptape_nodes/node_library/__init__.py +0 -0
- griptape_nodes/node_library/advanced_node_library.py +0 -0
- griptape_nodes/node_library/library_registry.py +0 -0
- griptape_nodes/node_library/workflow_registry.py +2 -2
- griptape_nodes/py.typed +0 -0
- griptape_nodes/retained_mode/__init__.py +0 -0
- griptape_nodes/retained_mode/events/__init__.py +0 -0
- griptape_nodes/retained_mode/events/agent_events.py +70 -8
- griptape_nodes/retained_mode/events/app_events.py +137 -12
- griptape_nodes/retained_mode/events/arbitrary_python_events.py +23 -0
- griptape_nodes/retained_mode/events/base_events.py +13 -31
- griptape_nodes/retained_mode/events/config_events.py +87 -11
- griptape_nodes/retained_mode/events/connection_events.py +56 -5
- griptape_nodes/retained_mode/events/context_events.py +27 -4
- griptape_nodes/retained_mode/events/execution_events.py +99 -14
- griptape_nodes/retained_mode/events/flow_events.py +165 -7
- griptape_nodes/retained_mode/events/generate_request_payload_schemas.py +0 -0
- griptape_nodes/retained_mode/events/library_events.py +195 -17
- griptape_nodes/retained_mode/events/logger_events.py +11 -0
- griptape_nodes/retained_mode/events/node_events.py +242 -22
- griptape_nodes/retained_mode/events/object_events.py +40 -4
- griptape_nodes/retained_mode/events/os_events.py +116 -3
- griptape_nodes/retained_mode/events/parameter_events.py +212 -8
- griptape_nodes/retained_mode/events/payload_registry.py +0 -0
- griptape_nodes/retained_mode/events/secrets_events.py +59 -7
- griptape_nodes/retained_mode/events/static_file_events.py +57 -4
- griptape_nodes/retained_mode/events/validation_events.py +39 -4
- griptape_nodes/retained_mode/events/workflow_events.py +188 -17
- griptape_nodes/retained_mode/griptape_nodes.py +89 -363
- griptape_nodes/retained_mode/managers/__init__.py +0 -0
- griptape_nodes/retained_mode/managers/agent_manager.py +49 -23
- griptape_nodes/retained_mode/managers/arbitrary_code_exec_manager.py +0 -0
- griptape_nodes/retained_mode/managers/config_manager.py +0 -0
- griptape_nodes/retained_mode/managers/context_manager.py +0 -0
- griptape_nodes/retained_mode/managers/engine_identity_manager.py +146 -0
- griptape_nodes/retained_mode/managers/event_manager.py +14 -2
- griptape_nodes/retained_mode/managers/flow_manager.py +751 -64
- griptape_nodes/retained_mode/managers/library_lifecycle/__init__.py +45 -0
- griptape_nodes/retained_mode/managers/library_lifecycle/data_models.py +191 -0
- griptape_nodes/retained_mode/managers/library_lifecycle/library_directory.py +346 -0
- griptape_nodes/retained_mode/managers/library_lifecycle/library_fsm.py +439 -0
- griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/__init__.py +17 -0
- griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/base.py +82 -0
- griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/github.py +116 -0
- griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/local_file.py +352 -0
- griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/package.py +104 -0
- griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/sandbox.py +155 -0
- griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance.py +18 -0
- griptape_nodes/retained_mode/managers/library_lifecycle/library_status.py +12 -0
- griptape_nodes/retained_mode/managers/library_manager.py +255 -40
- griptape_nodes/retained_mode/managers/node_manager.py +120 -103
- griptape_nodes/retained_mode/managers/object_manager.py +11 -3
- griptape_nodes/retained_mode/managers/operation_manager.py +0 -0
- griptape_nodes/retained_mode/managers/os_manager.py +582 -8
- griptape_nodes/retained_mode/managers/secrets_manager.py +4 -0
- griptape_nodes/retained_mode/managers/session_manager.py +328 -0
- griptape_nodes/retained_mode/managers/settings.py +7 -0
- griptape_nodes/retained_mode/managers/static_files_manager.py +0 -0
- griptape_nodes/retained_mode/managers/version_compatibility_manager.py +2 -2
- griptape_nodes/retained_mode/managers/workflow_manager.py +722 -456
- griptape_nodes/retained_mode/retained_mode.py +44 -0
- griptape_nodes/retained_mode/utils/__init__.py +0 -0
- griptape_nodes/retained_mode/utils/engine_identity.py +141 -27
- griptape_nodes/retained_mode/utils/name_generator.py +0 -0
- griptape_nodes/traits/__init__.py +0 -0
- griptape_nodes/traits/add_param_button.py +0 -0
- griptape_nodes/traits/button.py +0 -0
- griptape_nodes/traits/clamp.py +0 -0
- griptape_nodes/traits/compare.py +0 -0
- griptape_nodes/traits/compare_images.py +0 -0
- griptape_nodes/traits/file_system_picker.py +127 -0
- griptape_nodes/traits/minmax.py +0 -0
- griptape_nodes/traits/options.py +0 -0
- griptape_nodes/traits/slider.py +0 -0
- griptape_nodes/traits/trait_registry.py +0 -0
- griptape_nodes/traits/traits.json +0 -0
- griptape_nodes/updater/__init__.py +2 -2
- griptape_nodes/updater/__main__.py +0 -0
- griptape_nodes/utils/__init__.py +0 -0
- griptape_nodes/utils/dict_utils.py +0 -0
- griptape_nodes/utils/image_preview.py +128 -0
- griptape_nodes/utils/metaclasses.py +0 -0
- griptape_nodes/version_compatibility/__init__.py +0 -0
- griptape_nodes/version_compatibility/versions/__init__.py +0 -0
- griptape_nodes/version_compatibility/versions/v0_39_0/__init__.py +0 -0
- griptape_nodes/version_compatibility/versions/v0_39_0/modified_parameters_set_removal.py +5 -5
- griptape_nodes-0.43.0.dist-info/METADATA +90 -0
- griptape_nodes-0.43.0.dist-info/RECORD +129 -0
- griptape_nodes-0.43.0.dist-info/WHEEL +4 -0
- {griptape_nodes-0.41.0.dist-info → griptape_nodes-0.43.0.dist-info}/entry_points.txt +1 -0
- griptape_nodes/app/app_sessions.py +0 -458
- griptape_nodes/retained_mode/utils/session_persistence.py +0 -105
- griptape_nodes-0.41.0.dist-info/METADATA +0 -78
- griptape_nodes-0.41.0.dist-info/RECORD +0 -112
- griptape_nodes-0.41.0.dist-info/WHEEL +0 -4
- 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
"""
|
|
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
|
-
"""
|
|
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
|
-
"""
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
88
|
+
"""Node dependency validation failed. Common causes: node not found, validation system error, missing dependencies."""
|