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
|
@@ -14,42 +14,76 @@ from griptape_nodes.retained_mode.events.payload_registry import PayloadRegistry
|
|
|
14
14
|
@dataclass
|
|
15
15
|
@PayloadRegistry.register
|
|
16
16
|
class RunWorkflowFromScratchRequest(RequestPayload):
|
|
17
|
+
"""Run a workflow from file, starting with a clean state.
|
|
18
|
+
|
|
19
|
+
Use when: Loading and executing saved workflows, testing workflows from files,
|
|
20
|
+
running workflows in clean environments, batch processing workflows.
|
|
21
|
+
|
|
22
|
+
Args:
|
|
23
|
+
file_path: Path to the workflow file to load and execute
|
|
24
|
+
|
|
25
|
+
Results: RunWorkflowFromScratchResultSuccess | RunWorkflowFromScratchResultFailure (file not found, load error)
|
|
26
|
+
"""
|
|
27
|
+
|
|
17
28
|
file_path: str
|
|
18
29
|
|
|
19
30
|
|
|
20
31
|
@dataclass
|
|
21
32
|
@PayloadRegistry.register
|
|
22
33
|
class RunWorkflowFromScratchResultSuccess(WorkflowAlteredMixin, ResultPayloadSuccess):
|
|
23
|
-
|
|
34
|
+
"""Workflow loaded and started successfully from file."""
|
|
24
35
|
|
|
25
36
|
|
|
26
37
|
@dataclass
|
|
27
38
|
@PayloadRegistry.register
|
|
28
39
|
class RunWorkflowFromScratchResultFailure(ResultPayloadFailure):
|
|
29
|
-
|
|
40
|
+
"""Workflow execution from file failed. Common causes: file not found, invalid workflow format, load error."""
|
|
30
41
|
|
|
31
42
|
|
|
32
43
|
@dataclass
|
|
33
44
|
@PayloadRegistry.register
|
|
34
45
|
class RunWorkflowWithCurrentStateRequest(RequestPayload):
|
|
46
|
+
"""Run a workflow from file, preserving current state.
|
|
47
|
+
|
|
48
|
+
Use when: Loading workflows while keeping existing node values, updating workflow structure
|
|
49
|
+
without losing progress, iterative workflow development.
|
|
50
|
+
|
|
51
|
+
Args:
|
|
52
|
+
file_path: Path to the workflow file to load while preserving current state
|
|
53
|
+
|
|
54
|
+
Results: RunWorkflowWithCurrentStateResultSuccess | RunWorkflowWithCurrentStateResultFailure (file not found, merge error)
|
|
55
|
+
"""
|
|
56
|
+
|
|
35
57
|
file_path: str
|
|
36
58
|
|
|
37
59
|
|
|
38
60
|
@dataclass
|
|
39
61
|
@PayloadRegistry.register
|
|
40
62
|
class RunWorkflowWithCurrentStateResultSuccess(WorkflowAlteredMixin, ResultPayloadSuccess):
|
|
41
|
-
|
|
63
|
+
"""Workflow loaded successfully while preserving current state."""
|
|
42
64
|
|
|
43
65
|
|
|
44
66
|
@dataclass
|
|
45
67
|
@PayloadRegistry.register
|
|
46
68
|
class RunWorkflowWithCurrentStateResultFailure(ResultPayloadFailure):
|
|
47
|
-
|
|
69
|
+
"""Workflow execution with current state failed. Common causes: file not found, state merge conflict, load error."""
|
|
48
70
|
|
|
49
71
|
|
|
50
72
|
@dataclass
|
|
51
73
|
@PayloadRegistry.register
|
|
52
74
|
class RunWorkflowFromRegistryRequest(RequestPayload):
|
|
75
|
+
"""Run a workflow from the registry.
|
|
76
|
+
|
|
77
|
+
Use when: Executing registered workflows, running workflows by name,
|
|
78
|
+
using workflow templates, automated workflow execution.
|
|
79
|
+
|
|
80
|
+
Args:
|
|
81
|
+
workflow_name: Name of the workflow in the registry to execute
|
|
82
|
+
run_with_clean_slate: Whether to start with a clean state (default: True)
|
|
83
|
+
|
|
84
|
+
Results: RunWorkflowFromRegistryResultSuccess | RunWorkflowFromRegistryResultFailure (workflow not found, execution error)
|
|
85
|
+
"""
|
|
86
|
+
|
|
53
87
|
workflow_name: str
|
|
54
88
|
run_with_clean_slate: bool = True
|
|
55
89
|
|
|
@@ -57,18 +91,30 @@ class RunWorkflowFromRegistryRequest(RequestPayload):
|
|
|
57
91
|
@dataclass
|
|
58
92
|
@PayloadRegistry.register
|
|
59
93
|
class RunWorkflowFromRegistryResultSuccess(WorkflowAlteredMixin, ResultPayloadSuccess):
|
|
60
|
-
|
|
94
|
+
"""Workflow from registry started successfully."""
|
|
61
95
|
|
|
62
96
|
|
|
63
97
|
@dataclass
|
|
64
98
|
@PayloadRegistry.register
|
|
65
99
|
class RunWorkflowFromRegistryResultFailure(ResultPayloadFailure):
|
|
66
|
-
|
|
100
|
+
"""Workflow execution from registry failed. Common causes: workflow not found, execution error, registry error."""
|
|
67
101
|
|
|
68
102
|
|
|
69
103
|
@dataclass
|
|
70
104
|
@PayloadRegistry.register
|
|
71
105
|
class RegisterWorkflowRequest(RequestPayload):
|
|
106
|
+
"""Register a workflow in the registry.
|
|
107
|
+
|
|
108
|
+
Use when: Publishing workflows for reuse, creating workflow templates,
|
|
109
|
+
managing workflow libraries, making workflows available by name.
|
|
110
|
+
|
|
111
|
+
Args:
|
|
112
|
+
metadata: Workflow metadata containing name, description, and other properties
|
|
113
|
+
file_name: Name of the workflow file to register
|
|
114
|
+
|
|
115
|
+
Results: RegisterWorkflowResultSuccess (with workflow name) | RegisterWorkflowResultFailure (registration error)
|
|
116
|
+
"""
|
|
117
|
+
|
|
72
118
|
metadata: WorkflowMetadata
|
|
73
119
|
file_name: str
|
|
74
120
|
|
|
@@ -76,54 +122,95 @@ class RegisterWorkflowRequest(RequestPayload):
|
|
|
76
122
|
@dataclass
|
|
77
123
|
@PayloadRegistry.register
|
|
78
124
|
class RegisterWorkflowResultSuccess(WorkflowNotAlteredMixin, ResultPayloadSuccess):
|
|
125
|
+
"""Workflow registered successfully.
|
|
126
|
+
|
|
127
|
+
Args:
|
|
128
|
+
workflow_name: Name assigned to the registered workflow
|
|
129
|
+
"""
|
|
130
|
+
|
|
79
131
|
workflow_name: str
|
|
80
132
|
|
|
81
133
|
|
|
82
134
|
@dataclass
|
|
83
135
|
@PayloadRegistry.register
|
|
84
136
|
class RegisterWorkflowResultFailure(WorkflowNotAlteredMixin, ResultPayloadFailure):
|
|
85
|
-
|
|
137
|
+
"""Workflow registration failed. Common causes: invalid metadata, file not found, name conflict."""
|
|
86
138
|
|
|
87
139
|
|
|
88
140
|
@dataclass
|
|
89
141
|
@PayloadRegistry.register
|
|
90
142
|
class ListAllWorkflowsRequest(RequestPayload):
|
|
91
|
-
|
|
143
|
+
"""List all workflows in the registry.
|
|
144
|
+
|
|
145
|
+
Use when: Displaying workflow catalogs, browsing available workflows,
|
|
146
|
+
implementing workflow selection UIs, workflow management.
|
|
147
|
+
|
|
148
|
+
Results: ListAllWorkflowsResultSuccess (with workflows dict) | ListAllWorkflowsResultFailure (registry error)
|
|
149
|
+
"""
|
|
92
150
|
|
|
93
151
|
|
|
94
152
|
@dataclass
|
|
95
153
|
@PayloadRegistry.register
|
|
96
154
|
class ListAllWorkflowsResultSuccess(WorkflowNotAlteredMixin, ResultPayloadSuccess):
|
|
155
|
+
"""Workflows listed successfully.
|
|
156
|
+
|
|
157
|
+
Args:
|
|
158
|
+
workflows: Dictionary of workflow names to metadata
|
|
159
|
+
"""
|
|
160
|
+
|
|
97
161
|
workflows: dict
|
|
98
162
|
|
|
99
163
|
|
|
100
164
|
@dataclass
|
|
101
165
|
@PayloadRegistry.register
|
|
102
166
|
class ListAllWorkflowsResultFailure(WorkflowNotAlteredMixin, ResultPayloadFailure):
|
|
103
|
-
|
|
167
|
+
"""Workflow listing failed. Common causes: registry not initialized, registry error."""
|
|
104
168
|
|
|
105
169
|
|
|
106
170
|
@dataclass
|
|
107
171
|
@PayloadRegistry.register
|
|
108
172
|
class DeleteWorkflowRequest(RequestPayload):
|
|
173
|
+
"""Delete a workflow from the registry.
|
|
174
|
+
|
|
175
|
+
Use when: Removing obsolete workflows, cleaning up workflow libraries,
|
|
176
|
+
unregistering workflows, workflow management.
|
|
177
|
+
|
|
178
|
+
Args:
|
|
179
|
+
name: Name of the workflow to delete from the registry
|
|
180
|
+
|
|
181
|
+
Results: DeleteWorkflowResultSuccess | DeleteWorkflowResultFailure (workflow not found, deletion error)
|
|
182
|
+
"""
|
|
183
|
+
|
|
109
184
|
name: str
|
|
110
185
|
|
|
111
186
|
|
|
112
187
|
@dataclass
|
|
113
188
|
@PayloadRegistry.register
|
|
114
189
|
class DeleteWorkflowResultSuccess(WorkflowAlteredMixin, ResultPayloadSuccess):
|
|
115
|
-
|
|
190
|
+
"""Workflow deleted successfully from registry."""
|
|
116
191
|
|
|
117
192
|
|
|
118
193
|
@dataclass
|
|
119
194
|
@PayloadRegistry.register
|
|
120
195
|
class DeleteWorkflowResultFailure(ResultPayloadFailure):
|
|
121
|
-
|
|
196
|
+
"""Workflow deletion failed. Common causes: workflow not found, deletion not allowed, registry error."""
|
|
122
197
|
|
|
123
198
|
|
|
124
199
|
@dataclass
|
|
125
200
|
@PayloadRegistry.register
|
|
126
201
|
class RenameWorkflowRequest(RequestPayload):
|
|
202
|
+
"""Rename a workflow in the registry.
|
|
203
|
+
|
|
204
|
+
Use when: Updating workflow names, organizing workflow libraries,
|
|
205
|
+
fixing naming conflicts, workflow management.
|
|
206
|
+
|
|
207
|
+
Args:
|
|
208
|
+
workflow_name: Current name of the workflow
|
|
209
|
+
requested_name: New name for the workflow
|
|
210
|
+
|
|
211
|
+
Results: RenameWorkflowResultSuccess | RenameWorkflowResultFailure (workflow not found, name conflict)
|
|
212
|
+
"""
|
|
213
|
+
|
|
127
214
|
workflow_name: str
|
|
128
215
|
requested_name: str
|
|
129
216
|
|
|
@@ -131,65 +218,149 @@ class RenameWorkflowRequest(RequestPayload):
|
|
|
131
218
|
@dataclass
|
|
132
219
|
@PayloadRegistry.register
|
|
133
220
|
class RenameWorkflowResultSuccess(WorkflowAlteredMixin, ResultPayloadSuccess):
|
|
134
|
-
|
|
221
|
+
"""Workflow renamed successfully."""
|
|
135
222
|
|
|
136
223
|
|
|
137
224
|
@dataclass
|
|
138
225
|
@PayloadRegistry.register
|
|
139
226
|
class RenameWorkflowResultFailure(ResultPayloadFailure):
|
|
140
|
-
|
|
227
|
+
"""Workflow rename failed. Common causes: workflow not found, name already exists, invalid name."""
|
|
141
228
|
|
|
142
229
|
|
|
143
230
|
@dataclass
|
|
144
231
|
@PayloadRegistry.register
|
|
145
232
|
class SaveWorkflowRequest(RequestPayload):
|
|
233
|
+
"""Save the current workflow to a file.
|
|
234
|
+
|
|
235
|
+
Use when: Persisting workflow changes, creating workflow backups,
|
|
236
|
+
exporting workflows, saving before major changes.
|
|
237
|
+
|
|
238
|
+
Args:
|
|
239
|
+
file_name: Name of the file to save the workflow to (None for auto-generated)
|
|
240
|
+
image_path: Path to save workflow image/thumbnail (None for no image)
|
|
241
|
+
|
|
242
|
+
Results: SaveWorkflowResultSuccess (with file path) | SaveWorkflowResultFailure (save error)
|
|
243
|
+
"""
|
|
244
|
+
|
|
146
245
|
file_name: str | None = None
|
|
147
246
|
image_path: str | None = None
|
|
148
247
|
|
|
149
248
|
|
|
249
|
+
@dataclass
|
|
250
|
+
@PayloadRegistry.register
|
|
251
|
+
class ImportWorkflowAsReferencedSubFlowRequest(RequestPayload):
|
|
252
|
+
"""Import a workflow as a referenced sub-flow.
|
|
253
|
+
|
|
254
|
+
Use when: Reusing workflows as components, creating modular workflows,
|
|
255
|
+
importing workflow templates, building composite workflows.
|
|
256
|
+
|
|
257
|
+
Results: ImportWorkflowAsReferencedSubFlowResultSuccess (with flow name) | ImportWorkflowAsReferencedSubFlowResultFailure (import error)
|
|
258
|
+
"""
|
|
259
|
+
|
|
260
|
+
workflow_name: str
|
|
261
|
+
flow_name: str | None = None # If None, import into current context flow
|
|
262
|
+
imported_flow_metadata: dict | None = None # Metadata to apply to the imported flow
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
@dataclass
|
|
266
|
+
@PayloadRegistry.register
|
|
267
|
+
class ImportWorkflowAsReferencedSubFlowResultSuccess(WorkflowAlteredMixin, ResultPayloadSuccess):
|
|
268
|
+
"""Workflow imported successfully as referenced sub-flow.
|
|
269
|
+
|
|
270
|
+
Args:
|
|
271
|
+
created_flow_name: Name of the created sub-flow
|
|
272
|
+
"""
|
|
273
|
+
|
|
274
|
+
created_flow_name: str
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
@dataclass
|
|
278
|
+
@PayloadRegistry.register
|
|
279
|
+
class ImportWorkflowAsReferencedSubFlowResultFailure(ResultPayloadFailure):
|
|
280
|
+
"""Workflow import as sub-flow failed. Common causes: workflow not found, import error, name conflict."""
|
|
281
|
+
|
|
282
|
+
|
|
150
283
|
@dataclass
|
|
151
284
|
@PayloadRegistry.register
|
|
152
285
|
class SaveWorkflowResultSuccess(WorkflowNotAlteredMixin, ResultPayloadSuccess):
|
|
286
|
+
"""Workflow saved successfully.
|
|
287
|
+
|
|
288
|
+
Args:
|
|
289
|
+
file_path: Path where the workflow was saved
|
|
290
|
+
"""
|
|
291
|
+
|
|
153
292
|
file_path: str
|
|
154
293
|
|
|
155
294
|
|
|
156
295
|
@dataclass
|
|
157
296
|
@PayloadRegistry.register
|
|
158
297
|
class SaveWorkflowResultFailure(WorkflowNotAlteredMixin, ResultPayloadFailure):
|
|
159
|
-
|
|
298
|
+
"""Workflow save failed. Common causes: file system error, permission denied, invalid path."""
|
|
160
299
|
|
|
161
300
|
|
|
162
301
|
@dataclass
|
|
163
302
|
@PayloadRegistry.register
|
|
164
303
|
class LoadWorkflowMetadata(RequestPayload):
|
|
304
|
+
"""Load workflow metadata from a file.
|
|
305
|
+
|
|
306
|
+
Use when: Inspecting workflow properties, validating workflow files,
|
|
307
|
+
displaying workflow information, workflow management.
|
|
308
|
+
|
|
309
|
+
Args:
|
|
310
|
+
file_name: Name of the workflow file to load metadata from
|
|
311
|
+
|
|
312
|
+
Results: LoadWorkflowMetadataResultSuccess (with metadata) | LoadWorkflowMetadataResultFailure (load error)
|
|
313
|
+
"""
|
|
314
|
+
|
|
165
315
|
file_name: str
|
|
166
316
|
|
|
167
317
|
|
|
168
318
|
@dataclass
|
|
169
319
|
@PayloadRegistry.register
|
|
170
320
|
class LoadWorkflowMetadataResultSuccess(WorkflowNotAlteredMixin, ResultPayloadSuccess):
|
|
321
|
+
"""Workflow metadata loaded successfully.
|
|
322
|
+
|
|
323
|
+
Args:
|
|
324
|
+
metadata: Workflow metadata object
|
|
325
|
+
"""
|
|
326
|
+
|
|
171
327
|
metadata: WorkflowMetadata
|
|
172
328
|
|
|
173
329
|
|
|
174
330
|
@dataclass
|
|
175
331
|
@PayloadRegistry.register
|
|
176
332
|
class LoadWorkflowMetadataResultFailure(WorkflowNotAlteredMixin, ResultPayloadFailure):
|
|
177
|
-
|
|
333
|
+
"""Workflow metadata load failed. Common causes: file not found, invalid format, parse error."""
|
|
178
334
|
|
|
179
335
|
|
|
180
336
|
@dataclass
|
|
181
337
|
@PayloadRegistry.register
|
|
182
338
|
class PublishWorkflowRequest(RequestPayload):
|
|
339
|
+
"""Publish a workflow for distribution.
|
|
340
|
+
|
|
341
|
+
Use when: Sharing workflows with others, creating workflow packages,
|
|
342
|
+
distributing workflow templates, workflow publishing.
|
|
343
|
+
|
|
344
|
+
Results: PublishWorkflowResultSuccess (with file path) | PublishWorkflowResultFailure (publish error)
|
|
345
|
+
"""
|
|
346
|
+
|
|
183
347
|
workflow_name: str
|
|
348
|
+
publisher_name: str
|
|
184
349
|
|
|
185
350
|
|
|
186
351
|
@dataclass
|
|
187
352
|
@PayloadRegistry.register
|
|
188
353
|
class PublishWorkflowResultSuccess(ResultPayloadSuccess):
|
|
189
|
-
|
|
354
|
+
"""Workflow published successfully.
|
|
355
|
+
|
|
356
|
+
Args:
|
|
357
|
+
published_workflow_file_path: Path to the published workflow file
|
|
358
|
+
"""
|
|
359
|
+
|
|
360
|
+
published_workflow_file_path: str
|
|
190
361
|
|
|
191
362
|
|
|
192
363
|
@dataclass
|
|
193
364
|
@PayloadRegistry.register
|
|
194
365
|
class PublishWorkflowResultFailure(ResultPayloadFailure):
|
|
195
|
-
|
|
366
|
+
"""Workflow publish failed. Common causes: workflow not found, publish error, file system error."""
|