griptape-nodes 0.51.0__tar.gz → 0.51.2__tar.gz

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 (126) hide show
  1. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/PKG-INFO +1 -1
  2. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/pyproject.toml +1 -1
  3. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/machines/node_resolution.py +13 -8
  4. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/flow_manager.py +10 -2
  5. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/node_manager.py +10 -7
  6. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/README.md +0 -0
  7. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/__init__.py +0 -0
  8. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/app/.python-version +0 -0
  9. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/app/__init__.py +0 -0
  10. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/app/api.py +0 -0
  11. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/app/app.py +0 -0
  12. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/app/watch.py +0 -0
  13. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/bootstrap/__init__.py +0 -0
  14. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/bootstrap/workflow_executors/__init__.py +0 -0
  15. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/bootstrap/workflow_executors/local_workflow_executor.py +0 -0
  16. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/bootstrap/workflow_executors/subprocess_workflow_executor.py +0 -0
  17. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/bootstrap/workflow_executors/workflow_executor.py +0 -0
  18. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/drivers/__init__.py +0 -0
  19. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/drivers/storage/__init__.py +0 -0
  20. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/drivers/storage/base_storage_driver.py +0 -0
  21. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/drivers/storage/griptape_cloud_storage_driver.py +0 -0
  22. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/drivers/storage/local_storage_driver.py +0 -0
  23. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/drivers/storage/storage_backend.py +0 -0
  24. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/exe_types/__init__.py +0 -0
  25. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/exe_types/connections.py +0 -0
  26. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/exe_types/core_types.py +0 -0
  27. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/exe_types/flow.py +0 -0
  28. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/exe_types/node_types.py +0 -0
  29. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/exe_types/type_validator.py +0 -0
  30. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/machines/__init__.py +0 -0
  31. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/machines/control_flow.py +0 -0
  32. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/machines/fsm.py +0 -0
  33. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/mcp_server/__init__.py +0 -0
  34. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/mcp_server/server.py +0 -0
  35. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/mcp_server/ws_request_manager.py +0 -0
  36. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/node_library/__init__.py +0 -0
  37. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/node_library/advanced_node_library.py +0 -0
  38. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/node_library/library_registry.py +0 -0
  39. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/node_library/workflow_registry.py +0 -0
  40. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/py.typed +0 -0
  41. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/__init__.py +0 -0
  42. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/events/__init__.py +0 -0
  43. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/events/agent_events.py +0 -0
  44. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/events/app_events.py +0 -0
  45. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/events/arbitrary_python_events.py +0 -0
  46. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/events/base_events.py +0 -0
  47. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/events/config_events.py +0 -0
  48. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/events/connection_events.py +0 -0
  49. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/events/context_events.py +0 -0
  50. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/events/execution_events.py +0 -0
  51. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/events/flow_events.py +0 -0
  52. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/events/generate_request_payload_schemas.py +0 -0
  53. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/events/library_events.py +0 -0
  54. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/events/logger_events.py +0 -0
  55. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/events/node_events.py +0 -0
  56. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/events/object_events.py +0 -0
  57. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/events/os_events.py +0 -0
  58. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/events/parameter_events.py +0 -0
  59. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/events/payload_registry.py +0 -0
  60. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/events/secrets_events.py +0 -0
  61. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/events/static_file_events.py +0 -0
  62. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/events/sync_events.py +0 -0
  63. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/events/validation_events.py +0 -0
  64. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/events/workflow_events.py +0 -0
  65. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/griptape_nodes.py +0 -0
  66. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/__init__.py +0 -0
  67. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/agent_manager.py +0 -0
  68. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/arbitrary_code_exec_manager.py +0 -0
  69. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/config_manager.py +0 -0
  70. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/context_manager.py +0 -0
  71. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/engine_identity_manager.py +0 -0
  72. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/event_manager.py +0 -0
  73. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/__init__.py +0 -0
  74. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/data_models.py +0 -0
  75. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_directory.py +0 -0
  76. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_fsm.py +0 -0
  77. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/__init__.py +0 -0
  78. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/base.py +0 -0
  79. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/github.py +0 -0
  80. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/local_file.py +0 -0
  81. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/package.py +0 -0
  82. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/sandbox.py +0 -0
  83. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance.py +0 -0
  84. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/library_lifecycle/library_status.py +0 -0
  85. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/library_manager.py +0 -0
  86. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/object_manager.py +0 -0
  87. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/operation_manager.py +0 -0
  88. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/os_manager.py +0 -0
  89. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/secrets_manager.py +0 -0
  90. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/session_manager.py +0 -0
  91. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/settings.py +0 -0
  92. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/static_files_manager.py +0 -0
  93. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/sync_manager.py +0 -0
  94. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/version_compatibility_manager.py +0 -0
  95. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/managers/workflow_manager.py +0 -0
  96. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/retained_mode.py +0 -0
  97. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/utils/__init__.py +0 -0
  98. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/utils/engine_identity.py +0 -0
  99. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/retained_mode/utils/name_generator.py +0 -0
  100. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/traits/__init__.py +0 -0
  101. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/traits/add_param_button.py +0 -0
  102. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/traits/button.py +0 -0
  103. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/traits/clamp.py +0 -0
  104. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/traits/compare.py +0 -0
  105. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/traits/compare_images.py +0 -0
  106. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/traits/file_system_picker.py +0 -0
  107. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/traits/minmax.py +0 -0
  108. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/traits/options.py +0 -0
  109. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/traits/slider.py +0 -0
  110. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/traits/trait_registry.py +0 -0
  111. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/traits/traits.json +0 -0
  112. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/updater/__init__.py +0 -0
  113. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/updater/__main__.py +0 -0
  114. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/utils/__init__.py +0 -0
  115. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/utils/dict_utils.py +0 -0
  116. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/utils/image_preview.py +0 -0
  117. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/utils/metaclasses.py +0 -0
  118. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/utils/uv_utils.py +0 -0
  119. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/utils/version_utils.py +0 -0
  120. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/version_compatibility/__init__.py +0 -0
  121. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/version_compatibility/versions/__init__.py +0 -0
  122. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/version_compatibility/versions/v0_39_0/__init__.py +0 -0
  123. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/version_compatibility/versions/v0_39_0/modified_parameters_set_removal.py +0 -0
  124. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/version_compatibility/workflow_versions/__init__.py +0 -0
  125. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/version_compatibility/workflow_versions/v0_7_0/__init__.py +0 -0
  126. {griptape_nodes-0.51.0 → griptape_nodes-0.51.2}/src/griptape_nodes/version_compatibility/workflow_versions/v0_7_0/local_executor_argument_addition.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: griptape-nodes
3
- Version: 0.51.0
3
+ Version: 0.51.2
4
4
  Summary: Add your description here
5
5
  Requires-Dist: griptape>=1.8.0
6
6
  Requires-Dist: pydantic>=2.10.6
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "griptape-nodes"
3
- version = "0.51.0"
3
+ version = "0.51.2"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12.0, <3.13"
@@ -9,7 +9,7 @@ from typing import Any
9
9
  from griptape.events import EventBus
10
10
  from griptape.utils import with_contextvars
11
11
 
12
- from griptape_nodes.exe_types.core_types import ParameterTypeBuiltin
12
+ from griptape_nodes.exe_types.core_types import ParameterType, ParameterTypeBuiltin
13
13
  from griptape_nodes.exe_types.node_types import BaseNode, NodeResolutionState
14
14
  from griptape_nodes.exe_types.type_validator import TypeValidator
15
15
  from griptape_nodes.machines.fsm import FSM, State
@@ -229,14 +229,19 @@ class ExecuteNodeState(State):
229
229
  output_value = upstream_node.get_parameter_value(upstream_parameter.name)
230
230
 
231
231
  # Pass the value through using the same mechanism as normal resolution
232
- GriptapeNodes.get_instance().handle_request(
233
- SetParameterValueRequest(
234
- parameter_name=parameter.name,
235
- node_name=current_node.name,
236
- value=output_value,
237
- data_type=upstream_parameter.output_type,
232
+ # Skip propagation for Control Parameters as they should not receive values
233
+ if (
234
+ ParameterType.attempt_get_builtin(upstream_parameter.output_type)
235
+ != ParameterTypeBuiltin.CONTROL_TYPE
236
+ ):
237
+ GriptapeNodes.get_instance().handle_request(
238
+ SetParameterValueRequest(
239
+ parameter_name=parameter.name,
240
+ node_name=current_node.name,
241
+ value=output_value,
242
+ data_type=upstream_parameter.output_type,
243
+ )
238
244
  )
239
- )
240
245
 
241
246
  @staticmethod
242
247
  def on_enter(context: ResolutionContext) -> type[State] | None:
@@ -11,6 +11,7 @@ from griptape_nodes.exe_types.core_types import (
11
11
  Parameter,
12
12
  ParameterContainer,
13
13
  ParameterMode,
14
+ ParameterType,
14
15
  ParameterTypeBuiltin,
15
16
  )
16
17
  from griptape_nodes.exe_types.flow import ControlFlow
@@ -853,8 +854,15 @@ class FlowManager:
853
854
  value = None
854
855
  if isinstance(target_param, ParameterContainer):
855
856
  target_node.kill_parameter_children(target_param)
856
- # if it existed somewhere and actually has a value - Set the parameter!
857
- if value and request.initial_setup is False:
857
+ # Set the parameter value (including None/empty values) unless we're in initial setup
858
+ # Skip propagation for Control Parameters as they should not receive values
859
+ if (
860
+ request.initial_setup is False
861
+ and ParameterType.attempt_get_builtin(source_param.output_type) != ParameterTypeBuiltin.CONTROL_TYPE
862
+ ):
863
+ # When creating a connection, pass the initial value from source to target parameter
864
+ # Set incoming_connection_source fields to identify this as legitimate connection value passing
865
+ # (not manual property setting) so it bypasses the INPUT+PROPERTY connection blocking logic
858
866
  GriptapeNodes.handle_request(
859
867
  SetParameterValueRequest(
860
868
  parameter_name=target_param.name,
@@ -10,6 +10,7 @@ from griptape_nodes.exe_types.core_types import (
10
10
  ParameterContainer,
11
11
  ParameterGroup,
12
12
  ParameterMode,
13
+ ParameterType,
13
14
  ParameterTypeBuiltin,
14
15
  )
15
16
  from griptape_nodes.exe_types.flow import ControlFlow
@@ -1599,14 +1600,16 @@ class NodeManager:
1599
1600
  # Optional data_type parameter for internal handling!
1600
1601
  conn_output_nodes = parent_flow.get_connected_output_parameters(node, parameter)
1601
1602
  for target_node, target_parameter in conn_output_nodes:
1602
- GriptapeNodes.handle_request(
1603
- SetParameterValueRequest(
1604
- parameter_name=target_parameter.name,
1605
- node_name=target_node.name,
1606
- value=finalized_value,
1607
- data_type=object_type, # Do type instead of output type, because it hasn't been processed.
1603
+ # Skip propagation for Control Parameters as they should not receive values
1604
+ if ParameterType.attempt_get_builtin(parameter.output_type) != ParameterTypeBuiltin.CONTROL_TYPE:
1605
+ GriptapeNodes.handle_request(
1606
+ SetParameterValueRequest(
1607
+ parameter_name=target_parameter.name,
1608
+ node_name=target_node.name,
1609
+ value=finalized_value,
1610
+ data_type=object_type, # Do type instead of output type, because it hasn't been processed.
1611
+ )
1608
1612
  )
1609
- )
1610
1613
 
1611
1614
  # Cool.
1612
1615
  details = f"Successfully set value on Node '{node_name}' Parameter '{request.parameter_name}'."