vellum-ai 0.14.22__py3-none-any.whl → 0.14.24__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 (157) hide show
  1. vellum/__init__.py +122 -0
  2. vellum/client/core/client_wrapper.py +1 -1
  3. vellum/client/resources/workflow_deployments/client.py +250 -0
  4. vellum/client/types/__init__.py +122 -0
  5. vellum/client/types/api_request_parent_context.py +41 -0
  6. vellum/client/types/api_version_enum.py +5 -0
  7. vellum/client/types/base_output.py +21 -0
  8. vellum/client/types/code_resource_definition.py +31 -0
  9. vellum/client/types/external_input_descriptor.py +23 -0
  10. vellum/client/types/invoked_port.py +19 -0
  11. vellum/client/types/ml_model_usage_wrapper.py +21 -0
  12. vellum/client/types/node_event_display_context.py +30 -0
  13. vellum/client/types/node_execution_fulfilled_body.py +24 -0
  14. vellum/client/types/node_execution_fulfilled_event.py +49 -0
  15. vellum/client/types/node_execution_initiated_body.py +21 -0
  16. vellum/client/types/node_execution_initiated_event.py +49 -0
  17. vellum/client/types/node_execution_paused_body.py +20 -0
  18. vellum/client/types/node_execution_paused_event.py +49 -0
  19. vellum/client/types/node_execution_rejected_body.py +22 -0
  20. vellum/client/types/node_execution_rejected_event.py +49 -0
  21. vellum/client/types/node_execution_resumed_body.py +20 -0
  22. vellum/client/types/node_execution_resumed_event.py +49 -0
  23. vellum/client/types/node_execution_span.py +46 -0
  24. vellum/client/types/node_execution_span_attributes.py +19 -0
  25. vellum/client/types/node_execution_streaming_body.py +22 -0
  26. vellum/client/types/node_execution_streaming_event.py +49 -0
  27. vellum/client/types/node_parent_context.py +43 -0
  28. vellum/client/types/parent_context.py +21 -0
  29. vellum/client/types/prompt_deployment_parent_context.py +49 -0
  30. vellum/client/types/slim_workflow_execution_read.py +54 -0
  31. vellum/client/types/span_link.py +41 -0
  32. vellum/client/types/span_link_type_enum.py +5 -0
  33. vellum/client/types/vellum_code_resource_definition.py +25 -0
  34. vellum/client/types/vellum_node_execution_event.py +18 -0
  35. vellum/client/types/vellum_sdk_error.py +21 -0
  36. vellum/client/types/vellum_sdk_error_code_enum.py +20 -0
  37. vellum/client/types/vellum_span.py +7 -0
  38. vellum/client/types/vellum_workflow_execution_event.py +20 -0
  39. vellum/client/types/workflow_deployment_event_executions_response.py +55 -0
  40. vellum/client/types/workflow_deployment_parent_context.py +49 -0
  41. vellum/client/types/workflow_error.py +7 -0
  42. vellum/client/types/workflow_event_display_context.py +28 -0
  43. vellum/client/types/workflow_event_execution_read.py +60 -0
  44. vellum/client/types/workflow_execution_actual.py +30 -0
  45. vellum/client/types/workflow_execution_fulfilled_body.py +21 -0
  46. vellum/client/types/workflow_execution_fulfilled_event.py +49 -0
  47. vellum/client/types/workflow_execution_initiated_body.py +30 -0
  48. vellum/client/types/workflow_execution_initiated_event.py +53 -0
  49. vellum/client/types/workflow_execution_paused_body.py +22 -0
  50. vellum/client/types/workflow_execution_paused_event.py +49 -0
  51. vellum/client/types/workflow_execution_rejected_body.py +22 -0
  52. vellum/client/types/workflow_execution_rejected_event.py +49 -0
  53. vellum/client/types/workflow_execution_resumed_body.py +20 -0
  54. vellum/client/types/workflow_execution_resumed_event.py +49 -0
  55. vellum/client/types/workflow_execution_snapshotted_body.py +21 -0
  56. vellum/client/types/workflow_execution_snapshotted_event.py +51 -0
  57. vellum/client/types/workflow_execution_span.py +50 -0
  58. vellum/client/types/workflow_execution_span_attributes.py +19 -0
  59. vellum/client/types/workflow_execution_streaming_body.py +22 -0
  60. vellum/client/types/workflow_execution_streaming_event.py +49 -0
  61. vellum/client/types/workflow_execution_usage_calculation_fulfilled_body.py +22 -0
  62. vellum/client/types/workflow_execution_view_online_eval_metric_result.py +30 -0
  63. vellum/client/types/workflow_initialization_error.py +24 -0
  64. vellum/client/types/workflow_parent_context.py +43 -0
  65. vellum/client/types/workflow_sandbox_parent_context.py +44 -0
  66. vellum/plugins/pydantic.py +2 -0
  67. vellum/types/api_request_parent_context.py +3 -0
  68. vellum/types/api_version_enum.py +3 -0
  69. vellum/types/base_output.py +3 -0
  70. vellum/types/code_resource_definition.py +3 -0
  71. vellum/types/external_input_descriptor.py +3 -0
  72. vellum/types/invoked_port.py +3 -0
  73. vellum/types/ml_model_usage_wrapper.py +3 -0
  74. vellum/types/node_event_display_context.py +3 -0
  75. vellum/types/node_execution_fulfilled_body.py +3 -0
  76. vellum/types/node_execution_fulfilled_event.py +3 -0
  77. vellum/types/node_execution_initiated_body.py +3 -0
  78. vellum/types/node_execution_initiated_event.py +3 -0
  79. vellum/types/node_execution_paused_body.py +3 -0
  80. vellum/types/node_execution_paused_event.py +3 -0
  81. vellum/types/node_execution_rejected_body.py +3 -0
  82. vellum/types/node_execution_rejected_event.py +3 -0
  83. vellum/types/node_execution_resumed_body.py +3 -0
  84. vellum/types/node_execution_resumed_event.py +3 -0
  85. vellum/types/node_execution_span.py +3 -0
  86. vellum/types/node_execution_span_attributes.py +3 -0
  87. vellum/types/node_execution_streaming_body.py +3 -0
  88. vellum/types/node_execution_streaming_event.py +3 -0
  89. vellum/types/node_parent_context.py +3 -0
  90. vellum/types/parent_context.py +3 -0
  91. vellum/types/prompt_deployment_parent_context.py +3 -0
  92. vellum/types/slim_workflow_execution_read.py +3 -0
  93. vellum/types/span_link.py +3 -0
  94. vellum/types/span_link_type_enum.py +3 -0
  95. vellum/types/vellum_code_resource_definition.py +3 -0
  96. vellum/types/vellum_node_execution_event.py +3 -0
  97. vellum/types/vellum_sdk_error.py +3 -0
  98. vellum/types/vellum_sdk_error_code_enum.py +3 -0
  99. vellum/types/vellum_span.py +3 -0
  100. vellum/types/vellum_workflow_execution_event.py +3 -0
  101. vellum/types/workflow_deployment_event_executions_response.py +3 -0
  102. vellum/types/workflow_deployment_parent_context.py +3 -0
  103. vellum/types/workflow_error.py +3 -0
  104. vellum/types/workflow_event_display_context.py +3 -0
  105. vellum/types/workflow_event_execution_read.py +3 -0
  106. vellum/types/workflow_execution_actual.py +3 -0
  107. vellum/types/workflow_execution_fulfilled_body.py +3 -0
  108. vellum/types/workflow_execution_fulfilled_event.py +3 -0
  109. vellum/types/workflow_execution_initiated_body.py +3 -0
  110. vellum/types/workflow_execution_initiated_event.py +3 -0
  111. vellum/types/workflow_execution_paused_body.py +3 -0
  112. vellum/types/workflow_execution_paused_event.py +3 -0
  113. vellum/types/workflow_execution_rejected_body.py +3 -0
  114. vellum/types/workflow_execution_rejected_event.py +3 -0
  115. vellum/types/workflow_execution_resumed_body.py +3 -0
  116. vellum/types/workflow_execution_resumed_event.py +3 -0
  117. vellum/types/workflow_execution_snapshotted_body.py +3 -0
  118. vellum/types/workflow_execution_snapshotted_event.py +3 -0
  119. vellum/types/workflow_execution_span.py +3 -0
  120. vellum/types/workflow_execution_span_attributes.py +3 -0
  121. vellum/types/workflow_execution_streaming_body.py +3 -0
  122. vellum/types/workflow_execution_streaming_event.py +3 -0
  123. vellum/types/workflow_execution_usage_calculation_fulfilled_body.py +3 -0
  124. vellum/types/workflow_execution_view_online_eval_metric_result.py +3 -0
  125. vellum/types/workflow_initialization_error.py +3 -0
  126. vellum/types/workflow_parent_context.py +3 -0
  127. vellum/types/workflow_sandbox_parent_context.py +3 -0
  128. vellum/workflows/nodes/core/inline_subworkflow_node/node.py +6 -0
  129. vellum/workflows/nodes/core/inline_subworkflow_node/tests/test_node.py +27 -0
  130. vellum/workflows/nodes/core/retry_node/tests/test_node.py +0 -23
  131. vellum/workflows/workflows/base.py +2 -2
  132. vellum/workflows/workflows/tests/test_base_workflow.py +10 -0
  133. {vellum_ai-0.14.22.dist-info → vellum_ai-0.14.24.dist-info}/METADATA +1 -1
  134. {vellum_ai-0.14.22.dist-info → vellum_ai-0.14.24.dist-info}/RECORD +157 -33
  135. vellum_ee/workflows/display/base.py +26 -4
  136. vellum_ee/workflows/display/editor/__init__.py +7 -0
  137. vellum_ee/workflows/display/editor/types.py +22 -0
  138. vellum_ee/workflows/display/nodes/base_node_display.py +2 -1
  139. vellum_ee/workflows/display/nodes/base_node_vellum_display.py +1 -1
  140. vellum_ee/workflows/display/nodes/vellum/api_node.py +1 -1
  141. vellum_ee/workflows/display/nodes/vellum/final_output_node.py +8 -0
  142. vellum_ee/workflows/display/nodes/vellum/search_node.py +2 -1
  143. vellum_ee/workflows/display/nodes/vellum/tests/test_utils.py +5 -11
  144. vellum_ee/workflows/display/nodes/vellum/utils.py +3 -4
  145. vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/conftest.py +2 -1
  146. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py +8 -0
  147. vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py +12 -8
  148. vellum_ee/workflows/display/types.py +16 -13
  149. vellum_ee/workflows/display/utils/expressions.py +6 -2
  150. vellum_ee/workflows/display/utils/vellum.py +59 -13
  151. vellum_ee/workflows/display/vellum.py +18 -95
  152. vellum_ee/workflows/display/workflows/base_workflow_display.py +54 -46
  153. vellum_ee/workflows/display/workflows/tests/test_workflow_display.py +15 -1
  154. vellum_ee/workflows/display/workflows/vellum_workflow_display.py +2 -4
  155. {vellum_ai-0.14.22.dist-info → vellum_ai-0.14.24.dist-info}/LICENSE +0 -0
  156. {vellum_ai-0.14.22.dist-info → vellum_ai-0.14.24.dist-info}/WHEEL +0 -0
  157. {vellum_ai-0.14.22.dist-info → vellum_ai-0.14.24.dist-info}/entry_points.txt +0 -0
@@ -10,7 +10,6 @@ from vellum.workflows import BaseWorkflow
10
10
  from vellum.workflows.descriptors.base import BaseDescriptor
11
11
  from vellum.workflows.edges import Edge
12
12
  from vellum.workflows.events.workflow import NodeEventDisplayContext, WorkflowEventDisplayContext
13
- from vellum.workflows.expressions.coalesce_expression import CoalesceExpression
14
13
  from vellum.workflows.nodes.bases import BaseNode
15
14
  from vellum.workflows.nodes.utils import get_unadorned_node, get_wrapped_node
16
15
  from vellum.workflows.ports import Port
@@ -26,16 +25,22 @@ from vellum_ee.workflows.display.base import (
26
25
  StateValueDisplayType,
27
26
  WorkflowInputsDisplayOverridesType,
28
27
  WorkflowInputsDisplayType,
29
- WorkflowMetaDisplayOverridesType,
30
- WorkflowMetaDisplayType,
28
+ WorkflowMetaDisplay,
31
29
  WorkflowOutputDisplay,
32
30
  )
33
31
  from vellum_ee.workflows.display.nodes.base_node_display import BaseNodeDisplay
34
32
  from vellum_ee.workflows.display.nodes.base_node_vellum_display import BaseNodeVellumDisplay
35
33
  from vellum_ee.workflows.display.nodes.get_node_display_class import get_node_display_class
36
- from vellum_ee.workflows.display.nodes.types import NodeOutputDisplay, PortDisplay, PortDisplayOverrides
34
+ from vellum_ee.workflows.display.nodes.types import NodeOutputDisplay, PortDisplay
37
35
  from vellum_ee.workflows.display.nodes.utils import raise_if_descriptor
38
- from vellum_ee.workflows.display.types import WorkflowDisplayContext
36
+ from vellum_ee.workflows.display.types import (
37
+ EdgeDisplays,
38
+ NodeDisplays,
39
+ NodeOutputDisplays,
40
+ PortDisplays,
41
+ WorkflowDisplayContext,
42
+ WorkflowOutputDisplays,
43
+ )
39
44
  from vellum_ee.workflows.display.workflows.get_vellum_workflow_display_class import get_workflow_display
40
45
 
41
46
  logger = logging.getLogger(__name__)
@@ -44,8 +49,6 @@ logger = logging.getLogger(__name__)
44
49
  class BaseWorkflowDisplay(
45
50
  Generic[
46
51
  WorkflowType,
47
- WorkflowMetaDisplayType,
48
- WorkflowMetaDisplayOverridesType,
49
52
  WorkflowInputsDisplayType,
50
53
  WorkflowInputsDisplayOverridesType,
51
54
  StateValueDisplayType,
@@ -55,7 +58,7 @@ class BaseWorkflowDisplay(
55
58
  ]
56
59
  ):
57
60
  # Used to specify the display data for a workflow.
58
- workflow_display: Optional[WorkflowMetaDisplayOverridesType] = None
61
+ workflow_display: Optional[WorkflowMetaDisplay] = None
59
62
 
60
63
  # Used to explicitly specify display data for a workflow's inputs.
61
64
  inputs_display: Dict[WorkflowInputReference, WorkflowInputsDisplayOverridesType] = {}
@@ -67,13 +70,13 @@ class BaseWorkflowDisplay(
67
70
  entrypoint_displays: Dict[Type[BaseNode], EntrypointDisplayOverridesType] = {}
68
71
 
69
72
  # Used to explicitly specify display data for a workflow's outputs.
70
- output_displays: Dict[BaseDescriptor, WorkflowOutputDisplay] = {}
73
+ output_displays: WorkflowOutputDisplays = {}
71
74
 
72
75
  # Used to explicitly specify display data for a workflow's edges.
73
- edge_displays: Dict[Tuple[Port, Type[BaseNode]], EdgeDisplay] = {}
76
+ edge_displays: EdgeDisplays = {}
74
77
 
75
78
  # Used to explicitly specify display data for a workflow's ports.
76
- port_displays: Dict[Port, PortDisplayOverrides] = {}
79
+ port_displays: PortDisplays = {}
77
80
 
78
81
  # Used to store the mapping between workflows and their display classes
79
82
  _workflow_display_registry: Dict[Type[WorkflowType], Type["BaseWorkflowDisplay"]] = {}
@@ -88,7 +91,6 @@ class BaseWorkflowDisplay(
88
91
  *,
89
92
  parent_display_context: Optional[
90
93
  WorkflowDisplayContext[
91
- WorkflowMetaDisplayType,
92
94
  WorkflowInputsDisplayType,
93
95
  StateValueDisplayType,
94
96
  EntrypointDisplayType,
@@ -184,50 +186,41 @@ class BaseWorkflowDisplay(
184
186
  def display_context(
185
187
  self,
186
188
  ) -> WorkflowDisplayContext[
187
- WorkflowMetaDisplayType,
188
189
  WorkflowInputsDisplayType,
189
190
  StateValueDisplayType,
190
191
  EntrypointDisplayType,
191
192
  ]:
192
193
  workflow_display = self._generate_workflow_meta_display()
193
194
 
194
- global_node_output_displays: Dict[OutputReference, Tuple[Type[BaseNode], NodeOutputDisplay]] = (
195
+ global_node_output_displays: NodeOutputDisplays = (
195
196
  copy(self._parent_display_context.global_node_output_displays) if self._parent_display_context else {}
196
197
  )
197
198
 
198
- node_displays: Dict[Type[BaseNode], BaseNodeDisplay] = {}
199
+ node_displays: NodeDisplays = {}
199
200
 
200
- global_node_displays: Dict[Type[BaseNode], BaseNodeDisplay] = (
201
+ global_node_displays: NodeDisplays = (
201
202
  copy(self._parent_display_context.global_node_displays) if self._parent_display_context else {}
202
203
  )
203
204
 
204
- port_displays: Dict[Port, PortDisplay] = {}
205
+ port_displays: PortDisplays = {}
205
206
 
206
207
  for node in self._workflow.get_nodes():
207
- extracted_node_displays = self._extract_node_displays(node)
208
-
209
- for extracted_node, extracted_node_display in extracted_node_displays.items():
210
- if extracted_node not in node_displays:
211
- node_displays[extracted_node] = extracted_node_display
212
-
213
- if extracted_node not in global_node_displays:
214
- global_node_displays[extracted_node] = extracted_node_display
215
-
216
- self._enrich_global_node_output_displays(node, extracted_node_displays[node], global_node_output_displays)
217
- self._enrich_node_port_displays(node, extracted_node_displays[node], port_displays)
208
+ self._enrich_node_displays(
209
+ node=node,
210
+ node_displays=node_displays,
211
+ global_node_displays=global_node_displays,
212
+ global_node_output_displays=global_node_output_displays,
213
+ port_displays=port_displays,
214
+ )
218
215
 
219
216
  for node in self._workflow.get_unused_nodes():
220
- extracted_node_displays = self._extract_node_displays(node)
221
-
222
- for extracted_node, extracted_node_display in extracted_node_displays.items():
223
- if extracted_node not in node_displays:
224
- node_displays[extracted_node] = extracted_node_display
225
-
226
- if extracted_node not in global_node_displays:
227
- global_node_displays[extracted_node] = extracted_node_display
228
-
229
- self._enrich_global_node_output_displays(node, extracted_node_displays[node], global_node_output_displays)
230
- self._enrich_node_port_displays(node, extracted_node_displays[node], port_displays)
217
+ self._enrich_node_displays(
218
+ node=node,
219
+ node_displays=node_displays,
220
+ global_node_displays=global_node_displays,
221
+ global_node_output_displays=global_node_output_displays,
222
+ port_displays=port_displays,
223
+ )
231
224
 
232
225
  workflow_input_displays: Dict[WorkflowInputReference, WorkflowInputsDisplayType] = {}
233
226
  # If we're dealing with a nested workflow, then it should have access to the inputs of its parents.
@@ -291,11 +284,6 @@ class BaseWorkflowDisplay(
291
284
  if not isinstance(workflow_output, OutputReference):
292
285
  raise ValueError(f"{workflow_output} must be an {OutputReference.__name__}")
293
286
 
294
- if not workflow_output.instance or not isinstance(
295
- workflow_output.instance, (OutputReference, CoalesceExpression)
296
- ):
297
- raise ValueError("Expected to find a descriptor instance on the workflow output")
298
-
299
287
  workflow_output_display = self.output_displays.get(workflow_output)
300
288
  workflow_output_displays[workflow_output] = (
301
289
  workflow_output_display or self._generate_workflow_output_display(workflow_output)
@@ -318,7 +306,7 @@ class BaseWorkflowDisplay(
318
306
  )
319
307
 
320
308
  @abstractmethod
321
- def _generate_workflow_meta_display(self) -> WorkflowMetaDisplayType:
309
+ def _generate_workflow_meta_display(self) -> WorkflowMetaDisplay:
322
310
  pass
323
311
 
324
312
  @abstractmethod
@@ -337,7 +325,7 @@ class BaseWorkflowDisplay(
337
325
  def _generate_entrypoint_display(
338
326
  self,
339
327
  entrypoint: Type[BaseNode],
340
- workflow_display: WorkflowMetaDisplayType,
328
+ workflow_display: WorkflowMetaDisplay,
341
329
  node_displays: Dict[Type[BaseNode], BaseNodeDisplay],
342
330
  overrides: Optional[EntrypointDisplayOverridesType] = None,
343
331
  ) -> EntrypointDisplayType:
@@ -424,6 +412,26 @@ class BaseWorkflowDisplay(
424
412
  )
425
413
  return display_meta
426
414
 
415
+ def _enrich_node_displays(
416
+ self,
417
+ node: Type[BaseNode],
418
+ node_displays: NodeDisplays,
419
+ global_node_displays: NodeDisplays,
420
+ global_node_output_displays: NodeOutputDisplays,
421
+ port_displays: PortDisplays,
422
+ ) -> None:
423
+ extracted_node_displays = self._extract_node_displays(node)
424
+
425
+ for extracted_node, extracted_node_display in extracted_node_displays.items():
426
+ if extracted_node not in node_displays:
427
+ node_displays[extracted_node] = extracted_node_display
428
+
429
+ if extracted_node not in global_node_displays:
430
+ global_node_displays[extracted_node] = extracted_node_display
431
+
432
+ self._enrich_global_node_output_displays(node, extracted_node_displays[node], global_node_output_displays)
433
+ self._enrich_node_port_displays(node, extracted_node_displays[node], port_displays)
434
+
427
435
  def _extract_node_displays(self, node: Type[BaseNode]) -> Dict[Type[BaseNode], BaseNodeDisplay]:
428
436
  node_display = self._get_node_display(node)
429
437
  additional_node_displays: Dict[Type[BaseNode], BaseNodeDisplay] = {
@@ -7,10 +7,10 @@ from vellum.workflows.nodes.core.retry_node.node import RetryNode
7
7
  from vellum.workflows.nodes.core.templating_node.node import TemplatingNode
8
8
  from vellum.workflows.nodes.core.try_node.node import TryNode
9
9
  from vellum.workflows.workflows.base import BaseWorkflow
10
+ from vellum_ee.workflows.display.editor.types import NodeDisplayData, NodeDisplayPosition
10
11
  from vellum_ee.workflows.display.nodes import BaseNodeDisplay
11
12
  from vellum_ee.workflows.display.nodes.vellum.retry_node import BaseRetryNodeDisplay
12
13
  from vellum_ee.workflows.display.nodes.vellum.try_node import BaseTryNodeDisplay
13
- from vellum_ee.workflows.display.vellum import NodeDisplayData, NodeDisplayPosition
14
14
  from vellum_ee.workflows.display.workflows import VellumWorkflowDisplay
15
15
  from vellum_ee.workflows.display.workflows.get_vellum_workflow_display_class import get_workflow_display
16
16
 
@@ -275,3 +275,17 @@ def test_get_event_display_context__node_display_for_mutiple_adornments():
275
275
  assert innermost_node_id in inner_node_event_display.subworkflow_display.node_displays
276
276
  innermost_node_event_display = inner_node_event_display.subworkflow_display.node_displays[innermost_node_id]
277
277
  assert not innermost_node_event_display.subworkflow_display
278
+
279
+
280
+ def test_get_event_display_context__workflow_output_display_with_none():
281
+ # GIVEN a workflow with a workflow output that is None
282
+ class MyWorkflow(BaseWorkflow):
283
+ class Outputs(BaseWorkflow.Outputs):
284
+ foo = None
285
+ bar = "baz"
286
+
287
+ # WHEN we gather the event display context
288
+ display_context = VellumWorkflowDisplay(MyWorkflow).get_event_display_context()
289
+
290
+ # THEN the workflow output display should be included
291
+ assert display_context.workflow_outputs.keys() == {"foo", "bar"}
@@ -12,6 +12,7 @@ from vellum.workflows.references.output import OutputReference
12
12
  from vellum.workflows.types.core import JsonArray, JsonObject
13
13
  from vellum.workflows.types.generics import WorkflowType
14
14
  from vellum.workflows.utils.uuids import uuid4_from_hash
15
+ from vellum_ee.workflows.display.base import WorkflowMetaDisplay
15
16
  from vellum_ee.workflows.display.nodes.base_node_display import BaseNodeDisplay
16
17
  from vellum_ee.workflows.display.nodes.base_node_vellum_display import BaseNodeVellumDisplay
17
18
  from vellum_ee.workflows.display.nodes.vellum.utils import create_node_input
@@ -25,7 +26,6 @@ from vellum_ee.workflows.display.vellum import (
25
26
  WorkflowInputsVellumDisplay,
26
27
  WorkflowInputsVellumDisplayOverrides,
27
28
  WorkflowMetaVellumDisplay,
28
- WorkflowMetaVellumDisplayOverrides,
29
29
  )
30
30
  from vellum_ee.workflows.display.workflows.base_workflow_display import BaseWorkflowDisplay
31
31
 
@@ -35,8 +35,6 @@ logger = logging.getLogger(__name__)
35
35
  class VellumWorkflowDisplay(
36
36
  BaseWorkflowDisplay[
37
37
  WorkflowType,
38
- WorkflowMetaVellumDisplay,
39
- WorkflowMetaVellumDisplayOverrides,
40
38
  WorkflowInputsVellumDisplay,
41
39
  WorkflowInputsVellumDisplayOverrides,
42
40
  StateValueVellumDisplay,
@@ -346,7 +344,7 @@ class VellumWorkflowDisplay(
346
344
  def _generate_entrypoint_display(
347
345
  self,
348
346
  entrypoint: Type[BaseNode],
349
- workflow_display: WorkflowMetaVellumDisplay,
347
+ workflow_display: WorkflowMetaDisplay,
350
348
  node_displays: Dict[Type[BaseNode], BaseNodeDisplay],
351
349
  overrides: Optional[EntrypointVellumDisplayOverrides] = None,
352
350
  ) -> EntrypointVellumDisplay: