griptape-nodes 0.41.0__py3-none-any.whl → 0.42.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 (49) hide show
  1. griptape_nodes/app/__init__.py +1 -5
  2. griptape_nodes/app/app.py +12 -9
  3. griptape_nodes/app/app_sessions.py +132 -36
  4. griptape_nodes/app/watch.py +3 -1
  5. griptape_nodes/drivers/storage/local_storage_driver.py +3 -2
  6. griptape_nodes/exe_types/flow.py +68 -368
  7. griptape_nodes/machines/control_flow.py +16 -13
  8. griptape_nodes/machines/node_resolution.py +16 -14
  9. griptape_nodes/node_library/workflow_registry.py +2 -2
  10. griptape_nodes/retained_mode/events/agent_events.py +70 -8
  11. griptape_nodes/retained_mode/events/app_events.py +132 -11
  12. griptape_nodes/retained_mode/events/arbitrary_python_events.py +23 -0
  13. griptape_nodes/retained_mode/events/base_events.py +7 -25
  14. griptape_nodes/retained_mode/events/config_events.py +87 -11
  15. griptape_nodes/retained_mode/events/connection_events.py +56 -5
  16. griptape_nodes/retained_mode/events/context_events.py +27 -4
  17. griptape_nodes/retained_mode/events/execution_events.py +99 -14
  18. griptape_nodes/retained_mode/events/flow_events.py +165 -7
  19. griptape_nodes/retained_mode/events/library_events.py +193 -15
  20. griptape_nodes/retained_mode/events/logger_events.py +11 -0
  21. griptape_nodes/retained_mode/events/node_events.py +242 -22
  22. griptape_nodes/retained_mode/events/object_events.py +40 -4
  23. griptape_nodes/retained_mode/events/os_events.py +13 -2
  24. griptape_nodes/retained_mode/events/parameter_events.py +212 -8
  25. griptape_nodes/retained_mode/events/secrets_events.py +59 -7
  26. griptape_nodes/retained_mode/events/static_file_events.py +57 -4
  27. griptape_nodes/retained_mode/events/validation_events.py +39 -4
  28. griptape_nodes/retained_mode/events/workflow_events.py +188 -17
  29. griptape_nodes/retained_mode/griptape_nodes.py +46 -323
  30. griptape_nodes/retained_mode/managers/agent_manager.py +1 -1
  31. griptape_nodes/retained_mode/managers/engine_identity_manager.py +146 -0
  32. griptape_nodes/retained_mode/managers/event_manager.py +14 -2
  33. griptape_nodes/retained_mode/managers/flow_manager.py +749 -64
  34. griptape_nodes/retained_mode/managers/library_manager.py +112 -2
  35. griptape_nodes/retained_mode/managers/node_manager.py +34 -31
  36. griptape_nodes/retained_mode/managers/object_manager.py +11 -3
  37. griptape_nodes/retained_mode/managers/os_manager.py +70 -1
  38. griptape_nodes/retained_mode/managers/secrets_manager.py +4 -0
  39. griptape_nodes/retained_mode/managers/session_manager.py +328 -0
  40. griptape_nodes/retained_mode/managers/settings.py +7 -0
  41. griptape_nodes/retained_mode/managers/workflow_manager.py +523 -454
  42. griptape_nodes/retained_mode/retained_mode.py +44 -0
  43. griptape_nodes/retained_mode/utils/engine_identity.py +141 -27
  44. {griptape_nodes-0.41.0.dist-info → griptape_nodes-0.42.0.dist-info}/METADATA +2 -2
  45. {griptape_nodes-0.41.0.dist-info → griptape_nodes-0.42.0.dist-info}/RECORD +48 -47
  46. griptape_nodes/retained_mode/utils/session_persistence.py +0 -105
  47. {griptape_nodes-0.41.0.dist-info → griptape_nodes-0.42.0.dist-info}/WHEEL +0 -0
  48. {griptape_nodes-0.41.0.dist-info → griptape_nodes-0.42.0.dist-info}/entry_points.txt +0 -0
  49. {griptape_nodes-0.41.0.dist-info → griptape_nodes-0.42.0.dist-info}/licenses/LICENSE +0 -0
@@ -66,7 +66,13 @@ class EventManager:
66
66
  del self._request_type_to_manager[request_type]
67
67
 
68
68
  def handle_request(
69
- self, request: RP, operation_depth_mgr: "OperationDepthManager", workflow_mgr: "WorkflowManager"
69
+ self,
70
+ request: RP,
71
+ *,
72
+ operation_depth_mgr: "OperationDepthManager",
73
+ workflow_mgr: "WorkflowManager",
74
+ response_topic: str | None = None,
75
+ request_id: str | None = None,
70
76
  ) -> ResultPayload:
71
77
  """Publish an event to the manager assigned to its type.
72
78
 
@@ -74,6 +80,8 @@ class EventManager:
74
80
  request: The request to handle
75
81
  operation_depth_mgr: The operation depth manager to use
76
82
  workflow_mgr: The workflow manager to use
83
+ response_topic: The topic to send the response to (optional)
84
+ request_id: The ID of the request to correlate with the response (optional)
77
85
  """
78
86
  # Notify the manager of the event type
79
87
  with operation_depth_mgr as depth_manager:
@@ -91,7 +99,7 @@ class EventManager:
91
99
 
92
100
  retained_mode_str = None
93
101
  # If request_id exists, that means it's a direct request from the GUI (not internal), and should be echoed by retained mode.
94
- if depth_manager.is_top_level() and request.request_id is not None:
102
+ if depth_manager.is_top_level() and request_id is not None:
95
103
  retained_mode_str = depth_manager.request_retained_mode_translation(request)
96
104
 
97
105
  # Some requests have fields marked as "omit_from_result" which should be removed from the request
@@ -101,8 +109,10 @@ class EventManager:
101
109
  if result_payload.succeeded():
102
110
  result_event = EventResultSuccess(
103
111
  request=request,
112
+ request_id=request_id,
104
113
  result=result_payload,
105
114
  retained_mode=retained_mode_str,
115
+ response_topic=response_topic,
106
116
  )
107
117
  # If the result is a success, and the WorkflowAlteredMixin is present, that means the flow has been changed in some way.
108
118
  # In that case, we need to flush the element changes, so we add one to the event queue.
@@ -114,8 +124,10 @@ class EventManager:
114
124
  else:
115
125
  result_event = EventResultFailure(
116
126
  request=request,
127
+ request_id=request_id,
117
128
  result=result_payload,
118
129
  retained_mode=retained_mode_str,
130
+ response_topic=response_topic,
119
131
  )
120
132
  wrapped_event = GriptapeNodeEvent(wrapped_event=result_event)
121
133
  EventBus.publish_event(wrapped_event)