vellum-ai 0.14.72__py3-none-any.whl → 0.14.73__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 (66) hide show
  1. vellum/__init__.py +8 -0
  2. vellum/client/core/client_wrapper.py +1 -1
  3. vellum/client/core/serialization.py +1 -0
  4. vellum/client/types/__init__.py +8 -0
  5. vellum/client/types/build_status_enum.py +5 -0
  6. vellum/client/types/container_image_build_config.py +20 -0
  7. vellum/client/types/container_image_read.py +4 -0
  8. vellum/client/types/execute_api_response.py +2 -2
  9. vellum/client/types/folder_entity.py +2 -0
  10. vellum/client/types/folder_entity_dataset.py +26 -0
  11. vellum/client/types/folder_entity_dataset_data.py +25 -0
  12. vellum/types/build_status_enum.py +3 -0
  13. vellum/types/container_image_build_config.py +3 -0
  14. vellum/types/folder_entity_dataset.py +3 -0
  15. vellum/types/folder_entity_dataset_data.py +3 -0
  16. vellum/workflows/nodes/core/retry_node/tests/test_node.py +1 -1
  17. vellum/workflows/nodes/displayable/api_node/node.py +2 -0
  18. vellum/workflows/nodes/displayable/api_node/tests/test_api_node.py +43 -0
  19. vellum/workflows/nodes/displayable/bases/api_node/node.py +6 -0
  20. vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py +30 -4
  21. vellum/workflows/nodes/displayable/bases/inline_prompt_node/tests/test_inline_prompt_node.py +43 -3
  22. vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py +68 -58
  23. vellum/workflows/nodes/experimental/tool_calling_node/node.py +10 -10
  24. vellum/workflows/nodes/experimental/tool_calling_node/tests/__init__.py +0 -0
  25. vellum/workflows/nodes/experimental/tool_calling_node/tests/test_utils.py +49 -0
  26. vellum/workflows/nodes/experimental/tool_calling_node/utils.py +67 -6
  27. vellum/workflows/ports/utils.py +26 -6
  28. vellum/workflows/runner/runner.py +35 -3
  29. vellum/workflows/types/core.py +12 -0
  30. vellum/workflows/types/definition.py +6 -0
  31. vellum/workflows/utils/functions.py +9 -9
  32. vellum/workflows/utils/pydantic_schema.py +38 -0
  33. vellum/workflows/utils/tests/test_functions.py +11 -11
  34. {vellum_ai-0.14.72.dist-info → vellum_ai-0.14.73.dist-info}/METADATA +1 -1
  35. {vellum_ai-0.14.72.dist-info → vellum_ai-0.14.73.dist-info}/RECORD +66 -54
  36. vellum_cli/push.py +6 -8
  37. vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py +8 -1
  38. vellum_ee/workflows/display/tests/test_base_workflow_display.py +1 -1
  39. vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_adornments_serialization.py +1 -1
  40. vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_attributes_serialization.py +1 -1
  41. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py +5 -5
  42. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py +12 -12
  43. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py +10 -10
  44. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_default_state_serialization.py +3 -3
  45. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py +3 -3
  46. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_generic_node_serialization.py +20 -9
  47. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py +3 -3
  48. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_prompt_node_serialization.py +3 -3
  49. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py +8 -8
  50. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py +6 -6
  51. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py +3 -3
  52. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py +8 -8
  53. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py +3 -3
  54. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py +4 -4
  55. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py +3 -3
  56. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py +2 -2
  57. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_inline_workflow_serialization.py +5 -5
  58. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_serialization.py +1 -1
  59. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py +1 -1
  60. vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py +2 -2
  61. vellum_ee/workflows/display/utils/auto_layout.py +1 -1
  62. vellum_ee/workflows/display/workflows/base_workflow_display.py +179 -4
  63. vellum_ee/workflows/tests/test_serialize_module.py +47 -0
  64. {vellum_ai-0.14.72.dist-info → vellum_ai-0.14.73.dist-info}/LICENSE +0 -0
  65. {vellum_ai-0.14.72.dist-info → vellum_ai-0.14.73.dist-info}/WHEEL +0 -0
  66. {vellum_ai-0.14.72.dist-info → vellum_ai-0.14.73.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,38 @@
1
+ import inspect
2
+ from typing import Any, Dict
3
+
4
+ from pydantic import BaseModel
5
+
6
+ from vellum.workflows.utils.functions import compile_annotation
7
+
8
+
9
+ def normalize_json(schema_input: Any) -> Any:
10
+ """
11
+ Recursively normalize JSON data by converting Pydantic models to JSON schema.
12
+
13
+ This function processes dictionaries recursively to find and convert any
14
+ Pydantic model classes or instances to their JSON schema representation.
15
+
16
+ Args:
17
+ schema_input: Can be a Pydantic model class, instance, dict, or any other value
18
+
19
+ Returns:
20
+ Normalized JSON data with Pydantic models converted to JSON schema
21
+ """
22
+ if isinstance(schema_input, dict):
23
+ return {key: normalize_json(value) for key, value in schema_input.items()}
24
+
25
+ if inspect.isclass(schema_input) and issubclass(schema_input, BaseModel):
26
+ defs: Dict[str, Any] = {}
27
+ result = compile_annotation(schema_input, defs)
28
+
29
+ if "$ref" in result and defs:
30
+ ref_name = result["$ref"].split("/")[-1]
31
+ if ref_name in defs:
32
+ return defs[ref_name]
33
+
34
+ return result
35
+ elif isinstance(schema_input, BaseModel):
36
+ return {key: normalize_json(getattr(schema_input, key)) for key in schema_input.__class__.model_fields.keys()}
37
+ else:
38
+ return schema_input
@@ -14,7 +14,7 @@ from vellum.workflows.state.base import BaseState
14
14
  from vellum.workflows.utils.functions import (
15
15
  compile_deployment_workflow_function_definition,
16
16
  compile_function_definition,
17
- compile_workflow_function_definition,
17
+ compile_inline_workflow_function_definition,
18
18
  )
19
19
 
20
20
 
@@ -306,7 +306,7 @@ def test_compile_function_definition__lambda():
306
306
  )
307
307
 
308
308
 
309
- def test_compile_workflow_function_definition():
309
+ def test_compile_inline_workflow_function_definition():
310
310
  class MyNode(BaseNode):
311
311
  pass
312
312
 
@@ -314,7 +314,7 @@ def test_compile_workflow_function_definition():
314
314
  graph = MyNode
315
315
 
316
316
  # WHEN compiling the function
317
- compiled_function = compile_workflow_function_definition(MyWorkflow)
317
+ compiled_function = compile_inline_workflow_function_definition(MyWorkflow)
318
318
 
319
319
  # THEN it should return the compiled function definition
320
320
  assert compiled_function == FunctionDefinition(
@@ -323,7 +323,7 @@ def test_compile_workflow_function_definition():
323
323
  )
324
324
 
325
325
 
326
- def test_compile_workflow_function_definition__docstring():
326
+ def test_compile_inline_workflow_function_definition__docstring():
327
327
  class MyNode(BaseNode):
328
328
  pass
329
329
 
@@ -335,7 +335,7 @@ def test_compile_workflow_function_definition__docstring():
335
335
  graph = MyNode
336
336
 
337
337
  # WHEN compiling the function
338
- compiled_function = compile_workflow_function_definition(MyWorkflow)
338
+ compiled_function = compile_inline_workflow_function_definition(MyWorkflow)
339
339
 
340
340
  # THEN it should return the compiled function definition
341
341
  assert compiled_function == FunctionDefinition(
@@ -345,7 +345,7 @@ def test_compile_workflow_function_definition__docstring():
345
345
  )
346
346
 
347
347
 
348
- def test_compile_workflow_function_definition__all_args():
348
+ def test_compile_inline_workflow_function_definition__all_args():
349
349
  class MyInputs(BaseInputs):
350
350
  a: str
351
351
  b: int
@@ -361,7 +361,7 @@ def test_compile_workflow_function_definition__all_args():
361
361
  graph = MyNode
362
362
 
363
363
  # WHEN compiling the workflow
364
- compiled_function = compile_workflow_function_definition(MyWorkflow)
364
+ compiled_function = compile_inline_workflow_function_definition(MyWorkflow)
365
365
 
366
366
  # THEN it should return the compiled function definition
367
367
  assert compiled_function == FunctionDefinition(
@@ -381,7 +381,7 @@ def test_compile_workflow_function_definition__all_args():
381
381
  )
382
382
 
383
383
 
384
- def test_compile_workflow_function_definition__unions():
384
+ def test_compile_inline_workflow_function_definition__unions():
385
385
  # GIVEN a workflow with a union
386
386
  class MyInputs(BaseInputs):
387
387
  a: Union[str, int]
@@ -393,7 +393,7 @@ def test_compile_workflow_function_definition__unions():
393
393
  graph = MyNode
394
394
 
395
395
  # WHEN compiling the workflow
396
- compiled_function = compile_workflow_function_definition(MyWorkflow)
396
+ compiled_function = compile_inline_workflow_function_definition(MyWorkflow)
397
397
 
398
398
  # THEN it should return the compiled function definition
399
399
  assert compiled_function == FunctionDefinition(
@@ -406,7 +406,7 @@ def test_compile_workflow_function_definition__unions():
406
406
  )
407
407
 
408
408
 
409
- def test_compile_workflow_function_definition__optionals():
409
+ def test_compile_inline_workflow_function_definition__optionals():
410
410
  class MyInputs(BaseInputs):
411
411
  a: str
412
412
  b: Optional[str]
@@ -421,7 +421,7 @@ def test_compile_workflow_function_definition__optionals():
421
421
  graph = MyNode
422
422
 
423
423
  # WHEN compiling the workflow
424
- compiled_function = compile_workflow_function_definition(MyWorkflow)
424
+ compiled_function = compile_inline_workflow_function_definition(MyWorkflow)
425
425
 
426
426
  # THEN it should return the compiled function definition
427
427
  assert compiled_function == FunctionDefinition(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vellum-ai
3
- Version: 0.14.72
3
+ Version: 0.14.73
4
4
  Summary:
5
5
  License: MIT
6
6
  Requires-Python: >=3.9,<4.0
@@ -8,7 +8,7 @@ vellum_cli/init.py,sha256=WpnMXPItPmh0f0bBGIer3p-e5gu8DUGwSArT_FuoMEw,5093
8
8
  vellum_cli/logger.py,sha256=dcM_OmgqXLo93vDYswO5ylyUQQcTfnA5GTd5tbIt3wM,1446
9
9
  vellum_cli/ping.py,sha256=p_BCCRjgPhng6JktuECtkDQLbhopt6JpmrtGoLnLJT8,1161
10
10
  vellum_cli/pull.py,sha256=udYyPlJ6VKDdh78rApNJOZgxHl82fcV6iGnRPSdX1LY,14750
11
- vellum_cli/push.py,sha256=TqzaJrI_ty_1GuB3HX3EKfAnbMUF14FWfMMTD06vn2I,10428
11
+ vellum_cli/push.py,sha256=ibAaf6zO41Qrgfholl18bCq8sWVYd2PDCiQsPkEYAFw,10296
12
12
  vellum_cli/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  vellum_cli/tests/conftest.py,sha256=AFYZryKA2qnUuCPBxBKmHLFoPiE0WhBFFej9tNwSHdc,1526
14
14
  vellum_cli/tests/test_config.py,sha256=uvKGDc8BoVyT9_H0Z-g8469zVxomn6Oi3Zj-vK7O_wU,2631
@@ -49,7 +49,7 @@ vellum_ee/workflows/display/nodes/vellum/note_node.py,sha256=6xf8MJ684KecKPJrGlC
49
49
  vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py,sha256=cT5qT7Nd2v6rSsIErpSAWaxta7txGOSFOZz2AQYQmWE,3536
50
50
  vellum_ee/workflows/display/nodes/vellum/retry_node.py,sha256=Gos8F1yKN69GmegDO2q3NlGTamibd4rpuTasSU0mK8c,3281
51
51
  vellum_ee/workflows/display/nodes/vellum/search_node.py,sha256=bF07csUFSQlAeOayPPws5pz3tBTp1PdwgHb8WItgXmY,12319
52
- vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py,sha256=Ub6XDdVtVarqoqQrIXpJxNbp3xvz37vwpuf93DhLvX8,2670
52
+ vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py,sha256=wr2MaqoGFtkL1o7B-4GXgF1gEEOTWsUEiX8l_g7e1qs,2958
53
53
  vellum_ee/workflows/display/nodes/vellum/templating_node.py,sha256=TdIJWh2l8p4tw7ejRexGOFQKnviirUqie3WYwsrVQ4g,3339
54
54
  vellum_ee/workflows/display/nodes/vellum/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
55
  vellum_ee/workflows/display/nodes/vellum/tests/test_code_execution_node.py,sha256=ZasoqG8FmqnZDj2FfL5BGPq9fafOTJqV_4xjOKLi1gc,5434
@@ -68,39 +68,39 @@ vellum_ee/workflows/display/nodes/vellum/tests/test_utils.py,sha256=3LS1O4DGPWit
68
68
  vellum_ee/workflows/display/nodes/vellum/try_node.py,sha256=z9Omo676RRc7mQjLoL7hjiHhUj0OWVLhrrb97YTN4QA,4086
69
69
  vellum_ee/workflows/display/nodes/vellum/utils.py,sha256=oICunzyaXPs0tYnW5zH1r93Bx35MSH7mcD-n0DEWRok,4978
70
70
  vellum_ee/workflows/display/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
- vellum_ee/workflows/display/tests/test_base_workflow_display.py,sha256=ZWYf3XGL2PeUSx1B8xGeVXO5T36FdGyPJO7Akz-xLZQ,10677
71
+ vellum_ee/workflows/display/tests/test_base_workflow_display.py,sha256=axUOLwpIhhzrk9d3rNmUaFbdfTaebfi1dzfRj9Up6Z4,10679
72
72
  vellum_ee/workflows/display/tests/workflow_serialization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
73
  vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
74
74
  vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/conftest.py,sha256=XOQDDRiG46etxTC7-_RUEutoNumXc02fo7oho4GYM0c,1900
75
- vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_adornments_serialization.py,sha256=tsjGM-jOurPSkDIbrDFdjNLmkI1fPNPAw3J9-l9knCw,12848
76
- vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_attributes_serialization.py,sha256=xrekxgRlZrNIF-bkvfIzGGN3vKgTKNttNz3tfLanzd4,22062
75
+ vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_adornments_serialization.py,sha256=IuoR3QrsnshZSb1ggLBvQJnTw244lHBo70KmKLd0fwk,12852
76
+ vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_attributes_serialization.py,sha256=-I0LvhaLZUrdjSzb232Jd1Qp79mVGw8-8vjLOf33tIU,22066
77
77
  vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_outputs_serialization.py,sha256=s6_mnk0pkztU59wYpSfOFpMhAJaRjmyfxM6WJGtnD4Y,6456
78
78
  vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_ports_serialization.py,sha256=PkSgghJDz0fpDB72HHPjLjo8LkZk-HpUkCQzRLX-iVw,40611
79
79
  vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_trigger_serialization.py,sha256=dsJr8I9AdPwMOGszirfNDzZP2Ychd94aAKuPXAzknMk,4632
80
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py,sha256=xo5RRyv4TTTauy2TWtMXzYFSGa-nvxTa352-xu-pAIw,15815
81
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py,sha256=yX-ICQs8Wf7ksSH71hTbApcE_c-7a_-6AAqRIVkf_Ys,29639
82
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py,sha256=88IQkkTlbWHe1FyV7iwBhWi4iMB154VQm_oXgU0oGsE,53568
83
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_default_state_serialization.py,sha256=I0f24qbterFb20X4N2O6IvdbgR71juE2t8d6ZdkwgnE,8605
84
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py,sha256=MNnQ51ZWOQGVfBdpIqvr4OZF0tWdfrh2bsHP3xkTwQw,5841
85
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_generic_node_serialization.py,sha256=kLOnUNn-r1w1JXNQcVKe-Vp-fKhSfuDBuDqrjGkFZ3U,5544
86
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py,sha256=v07cILUzS5iFYDrSOAXK93yz50-FtxLaMYMwoaPOv20,7374
87
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_prompt_node_serialization.py,sha256=glOPy9y_GOLGMxc7glfo7IGq5iuCDbz9-TE_6Krha2U,18426
88
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py,sha256=1ND_6lfPNUQjSc72k_sxydeeOU5f_kHkRXO65boYFok,21631
89
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=3gZuNM8sT6ovVaeoAvd2JoyKwuxokvowlhH8kwDUoZ8,16559
90
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py,sha256=IIJt7YZBzkhNtbmaMwCX4ENs58QtSIIoBHlMR6OwGU8,8342
91
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py,sha256=QXiRjwtiTPeMUl40Pvh_geeU99C3mv1aVS85oeIUwY4,21052
92
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py,sha256=JuosR1Xvyy2-0UKuCxx0P_3QH3OXgU88llxpyQ7NScM,12936
93
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py,sha256=KkYZc_bZuq1lmDcvUz3QxIqJLpQPCZioD1FHUNsMJY8,11211
94
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py,sha256=aZaqRDrkO3ytcmdM2eKJqHSt60MF070NMj6M2vgzOKc,7711
95
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py,sha256=r748dpS13HtwY7t_KQFExFssxRy0xI2d-wxmhiUHRe0,3850
96
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_inline_workflow_serialization.py,sha256=7UWh_8dKiRL7AochCcIvOsWvC0G3yp8aEup1wIIPo9k,25256
97
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_serialization.py,sha256=Cx3oY6vPVap0xm_mChqfQw4zzR4pqV36o_SyD8g6jPY,8727
98
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py,sha256=EL5kfakuoEcwD85dGjhMta-J-PpCHRSDoc80SdbBrQk,2769
99
- vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256=RmFUDx8dYdfsOE2CGLvdXqNNRtLLpVzXDN8dqZyMcZ8,5822
80
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py,sha256=Q3QOzzF7KE_9EukJ9yNFgYL7Qio_vTqDVd-6kc40wd4,15834
81
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py,sha256=SrpLTehz__k9DFGMTWQfTKxuzDxY2rLi8TJ27-h0UKE,29681
82
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py,sha256=cBHGuY-DeyqQlLbpRZrrQyDh7em8rPkB7bV9Vi0EFoE,53608
83
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_default_state_serialization.py,sha256=E1ww97BFoGbnRkxf84TScat5NQhP8nLVrdaOlpGnSKU,8615
84
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py,sha256=w1BYEZXIMjWmcKGQXzhelHnKFlEAXmsgjkI9fcgqKXA,5850
85
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_generic_node_serialization.py,sha256=-T0cd2jx1bC0ZNtAESF78fnYD_0nOqo8zMMLwRHUTRM,6227
86
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py,sha256=PZ9Yec8D6e9wM2kh5eWtNvK5BghTf1RdvoSW5_pw3FM,7384
87
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_prompt_node_serialization.py,sha256=V1HtvMavVd8KkSow5D8gVPGoDNw9XGQ_7_rCZ90EaxM,18436
88
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py,sha256=3Djct7lIr2TPW-wDd_t6eoNdsE0hBOj9OwKWRroXMUo,21659
89
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=91u9FWLErrNGfUkZ22ifk6IazGtaYoDFbZYjhxEESgI,16579
90
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py,sha256=rtkAQw5awOFX3pWh0qz3f766-tTnPhToGsXVSHO4M4U,8352
91
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py,sha256=RgJw9lwI7ihqngEbdWbxfIsO1q0asi2JrBx1PRebndU,21076
92
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py,sha256=_XL63ndls2S6-WnKT78BE67SezhO2FaeVlfozzpdku4,12946
93
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py,sha256=XWrhHg_acLsRHwjstBAii9Pmes9oXFtAUWSAVF1oSBc,11225
94
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py,sha256=V8b6gKghLlO7PJI8xeNdnfn8aII0W_IFQvSQBQM62UQ,7721
95
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py,sha256=hDWtKXmGI1CKhTwTNqpu_d5RkE5n7SolMLtgd87KqTI,3856
96
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_inline_workflow_serialization.py,sha256=cBkVVCfXKhPYV9azlGYdNX1yD3V39D6hcgqiFLT1JjI,25274
97
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_serialization.py,sha256=FgtOfaI_9rnypCG4aSt5UGDrpBdKlCp6-QV21MZNsHw,8731
98
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py,sha256=pLCyMScV88DTBXRH7jXaXOEA1GBq8NIipCUFwIAWnwI,2771
99
+ vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256=J4ouI8KxbMfxQP2Zq_9cWMGYgbjCWmKzjCJEtnSJb0I,5829
100
100
  vellum_ee/workflows/display/tests/workflow_serialization/test_workflow_input_parameterization_error.py,sha256=vAdmn3YTBDpo55znbydQxsgg9ASqHcvsUPwiBR_7wfo,1461
101
101
  vellum_ee/workflows/display/types.py,sha256=i4T7ElU5b5h-nA1i3scmEhO1BqmNDc4eJDHavATD88w,2821
102
102
  vellum_ee/workflows/display/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
103
- vellum_ee/workflows/display/utils/auto_layout.py,sha256=R_BLSZjdanj3UIR4cS6WVT6ek0i7AKJyHSjK1wPiois,3877
103
+ vellum_ee/workflows/display/utils/auto_layout.py,sha256=f4GiLn_LazweupfqTpubcdtdfE_vrOcmZudSsnYIY9E,3906
104
104
  vellum_ee/workflows/display/utils/exceptions.py,sha256=LSwwxCYNxFkf5XMUcFkaZKpQ13OSrI7y_bpEUwbKVk0,169
105
105
  vellum_ee/workflows/display/utils/expressions.py,sha256=bSZ-sRByLCsut8XcRkCFbbqYvw9p7tlIeF-HFnEm664,14354
106
106
  vellum_ee/workflows/display/utils/registry.py,sha256=fWIm5Jj-10gNFjgn34iBu4RWv3Vd15ijtSN0V97bpW8,1513
@@ -109,7 +109,7 @@ vellum_ee/workflows/display/utils/tests/test_auto_layout.py,sha256=vfXI769418s9v
109
109
  vellum_ee/workflows/display/utils/vellum.py,sha256=mtoXmSYwR7rvrq-d6CzCW_auaJXTct0Mi1F0xpRCiNQ,5627
110
110
  vellum_ee/workflows/display/vellum.py,sha256=o7mq_vk2Yapu9DDKRz5l76h8EmCAypWGQYe6pryrbB8,3576
111
111
  vellum_ee/workflows/display/workflows/__init__.py,sha256=kapXsC67VJcgSuiBMa86FdePG5A9kMB5Pi4Uy1O2ob4,207
112
- vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=LKM8MnrezrBHU1W5gZ2y82UqkBwnKQ2OBQZD56g-XmI,33399
112
+ vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=4Acuh71NPso48RaihHApX27aQJWP37nhq4DVzYaG3_E,40285
113
113
  vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py,sha256=gxz76AeCqgAZ9D2lZeTiZzxY9eMgn3qOSfVgiqYcOh8,2028
114
114
  vellum_ee/workflows/display/workflows/tests/test_workflow_display.py,sha256=L7SKWJ26Ex-XXTNfHYXux7KP6I-dxE1EMQylap4Mhjs,31762
115
115
  vellum_ee/workflows/display/workflows/vellum_workflow_display.py,sha256=aaKdmWrgEe5YyV4zuDY_4E3y-l59rIHQnNGiPj2OWxQ,359
@@ -135,14 +135,15 @@ vellum_ee/workflows/tests/local_workflow/nodes/final_output.py,sha256=ZX7zBv87zi
135
135
  vellum_ee/workflows/tests/local_workflow/nodes/templating_node.py,sha256=NQwFN61QkHfI3Vssz-B0NKGfupK8PU0FDSAIAhYBLi0,325
136
136
  vellum_ee/workflows/tests/local_workflow/workflow.py,sha256=A4qOzOPNwePYxWbcAgIPLsmrVS_aVEZEc-wULSv787Q,393
137
137
  vellum_ee/workflows/tests/test_display_meta.py,sha256=DIzjNbwK1-4mlttPML6NskQ4rPVMXhj5zeOmBEyPqKI,3728
138
+ vellum_ee/workflows/tests/test_serialize_module.py,sha256=qcHbl6YaKtJebQJvw0OXCVlJXLkj6sjkbSMu05zXI0U,1874
138
139
  vellum_ee/workflows/tests/test_server.py,sha256=SsOkS6sGO7uGC4mxvk4iv8AtcXs058P9hgFHzTWmpII,14519
139
140
  vellum_ee/workflows/tests/test_virtual_files.py,sha256=TJEcMR0v2S8CkloXNmCHA0QW0K6pYNGaIjraJz7sFvY,2762
140
- vellum/__init__.py,sha256=IYGBqJ8OLfaIyX3UJcfQeRdF-qKVepOPdi6M0O3Vgq4,42290
141
+ vellum/__init__.py,sha256=GQqR0tDU6_sjyk9pP-0qqV7Rrk1p5b8ObQKR5Xnr4o8,42510
141
142
  vellum/client/README.md,sha256=CuGUYnaE0Imt0KqQ4sIPaUghCjLHkF3DdEvZWu14-8s,4807
142
143
  vellum/client/__init__.py,sha256=AYopGv2ZRVn3zsU8_km6KOvEHDbXiTPCVuYVI7bWvdA,120166
143
144
  vellum/client/core/__init__.py,sha256=SQ85PF84B9MuKnBwHNHWemSGuy-g_515gFYNFhvEE0I,1438
144
145
  vellum/client/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
145
- vellum/client/core/client_wrapper.py,sha256=TaQmB_GjRpi-KMiR3qBKQTy1uf4a2n9roQbenkHDwBQ,1869
146
+ vellum/client/core/client_wrapper.py,sha256=NZGCmazGkAcH9HD3LVtp7biFxQCStGNJDV4zWkgIQLw,1869
146
147
  vellum/client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
147
148
  vellum/client/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
148
149
  vellum/client/core/http_client.py,sha256=Z77OIxIbL4OAB2IDqjRq_sYa5yNYAWfmdhdCSSvh6Y4,19552
@@ -151,7 +152,7 @@ vellum/client/core/pydantic_utilities.py,sha256=lnpQ0SFnoVDtFp7vSHt5lmBXWeqgg03V
151
152
  vellum/client/core/query_encoder.py,sha256=ekulqNd0j8TgD7ox-Qbz7liqX8-KP9blvT9DsRCenYM,2144
152
153
  vellum/client/core/remove_none_from_dict.py,sha256=EU9SGgYidWq7SexuJbNs4-PZ-5Bl3Vppd864mS6vQZw,342
153
154
  vellum/client/core/request_options.py,sha256=h0QUNCFVdCW_7GclVySCAY2w4NhtXVBUCmHgmzaxpcg,1681
154
- vellum/client/core/serialization.py,sha256=D9h_t-RQON3-CHWs1C4ESY9B-Yd5d-l5lnTLb_X896g,9601
155
+ vellum/client/core/serialization.py,sha256=7mRS2A0qm29_wI4e7fdpXuz0tC-UUqMbn4T4_MBDrA0,9602
155
156
  vellum/client/environment.py,sha256=bcAFjoE9XXd7tiysYS90Os669IJmUMZS2JZ_ZQn0Dpg,498
156
157
  vellum/client/errors/__init__.py,sha256=HZB8vVqzDNx0M2uFJ05S5RcGTH95iVDl4v3rQ4xRqSw,343
157
158
  vellum/client/errors/bad_request_error.py,sha256=_EbO8mWqN9kFZPvIap8qa1lL_EWkRcsZe1HKV9GDWJY,264
@@ -210,7 +211,7 @@ vellum/client/resources/workspace_secrets/__init__.py,sha256=FTtvy8EDg9nNNg9WCat
210
211
  vellum/client/resources/workspace_secrets/client.py,sha256=zlBdbeTP6sqvtyl_DlrpfG-W5hSP7tJ1NYLSygi4CLU,8205
211
212
  vellum/client/resources/workspaces/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
212
213
  vellum/client/resources/workspaces/client.py,sha256=RthwzN1o-Jxwg5yyNNodavFyNUSxfLoTv26w3mRR5g8,3595
213
- vellum/client/types/__init__.py,sha256=4IDszjF4RsdBrwOSkZ21ZJ1I90jyRwCkZpmXC8n7kpI,64067
214
+ vellum/client/types/__init__.py,sha256=DPbl8CjtbEKqhlsrTZxdRgx2vvJ9ZVvD20RO2AERRGM,64415
214
215
  vellum/client/types/ad_hoc_execute_prompt_event.py,sha256=bCjujA2XsOgyF3bRZbcEqV2rOIymRgsLoIRtZpB14xg,607
215
216
  vellum/client/types/ad_hoc_expand_meta.py,sha256=1gv-NCsy_6xBYupLvZH979yf2VMdxAU-l0y0ynMKZaw,1331
216
217
  vellum/client/types/ad_hoc_fulfilled_prompt_execution_meta.py,sha256=oDG60TpwK1YNSKhRsBbiP2O3ZF9PKR-M9chGIfKw4R4,1004
@@ -241,6 +242,7 @@ vellum/client/types/basic_vectorizer_sentence_transformers_multi_qa_mpnet_base_c
241
242
  vellum/client/types/basic_vectorizer_sentence_transformers_multi_qa_mpnet_base_cos_v_1_request.py,sha256=QDv4d6ml773U6EpiAkNRJCHi3jgiRPOoCLXXMhGyJ7o,918
242
243
  vellum/client/types/basic_vectorizer_sentence_transformers_multi_qa_mpnet_base_dot_v_1.py,sha256=n1ijP1zw-lQnxbj_ZfederNYD4LW-FGDklUOlYewxwg,911
243
244
  vellum/client/types/basic_vectorizer_sentence_transformers_multi_qa_mpnet_base_dot_v_1_request.py,sha256=Y79jx-9QkbTzb7jSx8xF6YtbAB914u9E9uXOapk8TQc,918
245
+ vellum/client/types/build_status_enum.py,sha256=wvfnq2BV4ZJX_kVgXDCNwtSCnkYazWLKEuNBHlk86sU,195
244
246
  vellum/client/types/chat_history_input.py,sha256=lNh5j5mFxs0nTknzsL8kt9yAERpAWid7EWUU0i8BybM,853
245
247
  vellum/client/types/chat_history_input_request.py,sha256=0dmWfRWN9lOGEorQ3P1jKPAQtcXVexxiU9UEoJKP_pU,882
246
248
  vellum/client/types/chat_history_vellum_value.py,sha256=_yg6qk2Jci_rjFPOd3KNkXY0AduoEX1Tk8oPzQVpBYw,763
@@ -276,8 +278,9 @@ vellum/client/types/components_schemas_prompt_version_build_config_sandbox.py,sh
276
278
  vellum/client/types/condition_combinator.py,sha256=NQ6-F85juf21jsRuZRA6PjIFv7ITVWG5myuuZdLxeQI,156
277
279
  vellum/client/types/conditional_node_result.py,sha256=vx8xo9F1KoJqOnYPtSevfOcBxKYAk8J8JGWFr1c4UO8,784
278
280
  vellum/client/types/conditional_node_result_data.py,sha256=yk4E7KHSzmKlweI9ce9eN_iW08V70KGmG1Z0K5455T0,604
281
+ vellum/client/types/container_image_build_config.py,sha256=KJnx5PNdLJajPEa4A75GM7tN1nsZKS9JjWxm3-tpSlU,659
279
282
  vellum/client/types/container_image_container_image_tag.py,sha256=ph9Xs0R386viUofCITdUfIKCLaDJokY5nzczf0iReuA,622
280
- vellum/client/types/container_image_read.py,sha256=l7tYflFivZ7sKrHd9aIlBWbkh_ZnbmN6XDbWJgNrNDk,896
283
+ vellum/client/types/container_image_read.py,sha256=pm2gZp08JgZh15pH__voBvJ2U7k39_cHe6h2bV89FKY,1137
281
284
  vellum/client/types/create_test_suite_test_case_request.py,sha256=3LmAy6U8tUJ75dmmnMMJyAJ4_xp7TT3iTzks8C8fHJk,1508
282
285
  vellum/client/types/deployment_history_item.py,sha256=-u7UYEFpVOlFijErPLGO99WYQxAnctZK52W-GM4KJJU,1132
283
286
  vellum/client/types/deployment_provider_payload_response.py,sha256=b0lkt0rK88ARQaMWn9MAHeWtMBsZKofDMlOAUsQvv7g,818
@@ -312,7 +315,7 @@ vellum/client/types/error_vellum_value_request.py,sha256=o0aSn34dRcpnAwAfwW_sgwP
312
315
  vellum/client/types/execute_api_request_bearer_token.py,sha256=agAhp9lzfzZcYGZdzg2jHAEHCaHlqzbgp6qeeNebcto,183
313
316
  vellum/client/types/execute_api_request_body.py,sha256=WySF2yj9rtx2vF4En0dfZkzPF2FNFtVRFW7P8Mw-hF8,217
314
317
  vellum/client/types/execute_api_request_headers_value.py,sha256=bHtGwOpknQDcQo6qtMKqJxaYpvbinDfwx2uaPzyuZ9s,184
315
- vellum/client/types/execute_api_response.py,sha256=TBBLTgllRBiIq4moOVylUqwmk7kpVqGlPV5y5iquq2g,843
318
+ vellum/client/types/execute_api_response.py,sha256=LMnUlNFOSPrhuD4G3g0J_Y-c14R7gm0aVs7l6WYyNvk,867
316
319
  vellum/client/types/execute_api_response_json.py,sha256=80J1Du-JQGlVXIEECClC-IMYhTpcSTMtlYP_2Pq64kA,213
317
320
  vellum/client/types/execute_prompt_event.py,sha256=wq_TZBDJcmXQhSj25jR9nMTnN-mP8Ku5Vq3rLqmwE5Q,521
318
321
  vellum/client/types/execute_prompt_response.py,sha256=n6ODveXcO8uWG-kr_B9wXziHH8JUaVTUcUAZKifClEo,334
@@ -333,7 +336,9 @@ vellum/client/types/external_test_case_execution_request.py,sha256=xd80GZg4FbZP6
333
336
  vellum/client/types/fast_embed_vectorizer_baai_bge_small_en_v_15.py,sha256=XhNEBWd5qzFiXTestFPTusjxYfqW8j_kHBebCMfa58M,719
334
337
  vellum/client/types/fast_embed_vectorizer_baai_bge_small_en_v_15_request.py,sha256=xC0-zak2HonnyyiooqXSWiQQyrQK6yf6BFogt_TzSCo,726
335
338
  vellum/client/types/finish_reason_enum.py,sha256=KoNjzvXMHDCT0AUhhwGoZ1_7bi4h3fZEFvvHyGyoTP8,169
336
- vellum/client/types/folder_entity.py,sha256=v8zNprIbxktOzmncbNXTOJlLTBV5bZqD1Z_AGGHG1_8,578
339
+ vellum/client/types/folder_entity.py,sha256=L9WTL2oRe39aYes4BS9PdUX_X_cwl3LvqCmBI4UpGd0,658
340
+ vellum/client/types/folder_entity_dataset.py,sha256=ipe65L7OFDjSYaJ7j4Yfrqse0dPJTYj7w7BKo6P2oP8,793
341
+ vellum/client/types/folder_entity_dataset_data.py,sha256=vsxpNGqhwe_1Fzo5UnoJAy9cViqh5MgBBDzaLVGHrgQ,711
337
342
  vellum/client/types/folder_entity_document_index.py,sha256=-Tg2qnzGhp2FLnvGrgoVr0ZBEKFmm2TjgYvlII8tkog,839
338
343
  vellum/client/types/folder_entity_document_index_data.py,sha256=1mQxkj4TlbKyGpqMY_aPgWyDFTN6YW9VfszROU1cmM4,844
339
344
  vellum/client/types/folder_entity_folder.py,sha256=1GWfyHdenyAI2GXiouIbnFhPK4ADqZGFh-6fpp_C6-U,792
@@ -921,6 +926,7 @@ vellum/types/basic_vectorizer_sentence_transformers_multi_qa_mpnet_base_cos_v_1.
921
926
  vellum/types/basic_vectorizer_sentence_transformers_multi_qa_mpnet_base_cos_v_1_request.py,sha256=MNlhf8d9HtBmga8xhpEHkzkvnf9lTFKtk4xeeZ7vbhc,212
922
927
  vellum/types/basic_vectorizer_sentence_transformers_multi_qa_mpnet_base_dot_v_1.py,sha256=gXQ1EuHzIPFSMaBpnuImkeEsk2JfSf4Dp9vv1-hGts4,204
923
928
  vellum/types/basic_vectorizer_sentence_transformers_multi_qa_mpnet_base_dot_v_1_request.py,sha256=qkfjRgAQBfc7yeG6HndHHT9IGo81ygepQ7-Q3lYIzZY,212
929
+ vellum/types/build_status_enum.py,sha256=k_uBZo04jYfv8l1vqly0efvyq_6E7b7Pj2TDko1Q_80,155
924
930
  vellum/types/chat_history_input.py,sha256=8TsZ8OXqutbK_cKxqFbi2-U-Ov4mT-br4cfD-elKqIw,156
925
931
  vellum/types/chat_history_input_request.py,sha256=QYQpTjKMlnxIyRzgXITy1FtHvQ10kkJs0os98ktFRds,164
926
932
  vellum/types/chat_history_vellum_value.py,sha256=e5OeLPRtc82pQqQinM1hEf7FhlQSYQjfNBkrJl3szEs,163
@@ -956,6 +962,7 @@ vellum/types/components_schemas_prompt_version_build_config_sandbox.py,sha256=7u
956
962
  vellum/types/condition_combinator.py,sha256=1wNfjIPngHhdUbhMpjNVZqUI8LEu0XIExUX4Rtln1Tg,158
957
963
  vellum/types/conditional_node_result.py,sha256=zcfDgqzQWXVcqEQi_ozC_7l2to8Y3uNZ5mFN_uIVDW8,161
958
964
  vellum/types/conditional_node_result_data.py,sha256=z7Mtn_iKkan2jrGc2Q7fx-anx3ijHSSqnZwAb1w4ouk,166
965
+ vellum/types/container_image_build_config.py,sha256=HwpCCo427Ee0j6_f72AV5gxaTAOR3NAjx__TtOe_yuI,166
959
966
  vellum/types/container_image_container_image_tag.py,sha256=RgDod58iPXdgq6sMp63qqmRF3gk_gTK1gwLVcgR58QA,173
960
967
  vellum/types/container_image_read.py,sha256=36LQzvJaDGH26wjD6_WxgzwkslgRZihSYXu5n4W7abk,158
961
968
  vellum/types/create_test_suite_test_case_request.py,sha256=D_d6psjOMWx5jr2c7FwNndSH1ay5afdu5QXckqtBmfU,173
@@ -1014,6 +1021,8 @@ vellum/types/fast_embed_vectorizer_baai_bge_small_en_v_15.py,sha256=NG9MjraDr4m6
1014
1021
  vellum/types/fast_embed_vectorizer_baai_bge_small_en_v_15_request.py,sha256=_5CERkmrTW-Pie0V9QC5IR_WFS5YRB4yNfndaUv6rJQ,190
1015
1022
  vellum/types/finish_reason_enum.py,sha256=CIomSWB4DFcwnO92nIjQsI_TWMtJTxBFwnFSWVoATsY,156
1016
1023
  vellum/types/folder_entity.py,sha256=zY6js2gTkiJtpUqa73fKd8niwxwsxF-woj_QiyTFXos,151
1024
+ vellum/types/folder_entity_dataset.py,sha256=SUxvfkwDsZgDpZfY8fJx9UtaGNZ2F2wigZXeqiYc1cc,159
1025
+ vellum/types/folder_entity_dataset_data.py,sha256=CYpSkJIcO9VRH3l0QzpcR0gTEgtG3lBlpxyVbi3RT0w,164
1017
1026
  vellum/types/folder_entity_document_index.py,sha256=WWj08Jkv9NyoPwWtvhQmdoEMnSJJ42HIFgOHJiFsm4o,166
1018
1027
  vellum/types/folder_entity_document_index_data.py,sha256=Q7KASkfzIzFoGE3kxsaxvjpxGe5LYvkUsgt0xOL3U7E,171
1019
1028
  vellum/types/folder_entity_folder.py,sha256=1IHHllK2qNOJW2qQEXJ6w3uhcibci9LtAns0ElVWtnY,158
@@ -1581,7 +1590,7 @@ vellum/workflows/nodes/core/map_node/tests/test_node.py,sha256=rf7CCDtjHxoPKeEtm
1581
1590
  vellum/workflows/nodes/core/retry_node/__init__.py,sha256=lN2bIy5a3Uzhs_FYCrooADyYU6ZGShtvLKFWpelwPvo,60
1582
1591
  vellum/workflows/nodes/core/retry_node/node.py,sha256=EM4ya8Myr7ADllpjt9q-BAhB3hGrsF8MLZhp5eh4lyo,5590
1583
1592
  vellum/workflows/nodes/core/retry_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1584
- vellum/workflows/nodes/core/retry_node/tests/test_node.py,sha256=RM_OHwxrHwyxvlQQBJPqVBxpedFuWQ9h2-Xa3kP75sc,4399
1593
+ vellum/workflows/nodes/core/retry_node/tests/test_node.py,sha256=PCvD_XROP26k4cVYOdSQUfkDdbTljAJxtOTFzOUoS8c,4450
1585
1594
  vellum/workflows/nodes/core/templating_node/__init__.py,sha256=GmyuYo81_A1_Bz6id69ozVFS6FKiuDsZTiA3I6MaL2U,70
1586
1595
  vellum/workflows/nodes/core/templating_node/node.py,sha256=iqBmr2i-f-BqhisNQJiDfewjol0ur7-XpupLStyMJsg,3731
1587
1596
  vellum/workflows/nodes/core/templating_node/tests/test_templating_node.py,sha256=nXkgGDBg4wP36NwykdMEVWwx_xjv8oGT2rYkwuCB_VU,10075
@@ -1591,19 +1600,19 @@ vellum/workflows/nodes/core/try_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW
1591
1600
  vellum/workflows/nodes/core/try_node/tests/test_node.py,sha256=h6eUc3SggvhzBWlOD0PrPUlkoCSQHwjqYn81VkxSIxU,4948
1592
1601
  vellum/workflows/nodes/displayable/__init__.py,sha256=6F_4DlSwvHuilWnIalp8iDjjDXl0Nmz4QzJV2PYe5RI,1023
1593
1602
  vellum/workflows/nodes/displayable/api_node/__init__.py,sha256=MoxdQSnidIj1Nf_d-hTxlOxcZXaZnsWFDbE-PkTK24o,56
1594
- vellum/workflows/nodes/displayable/api_node/node.py,sha256=CjbQJp9tGRgS-ebQqm3eoxmEeeSzrxousIawo3woUYw,2896
1603
+ vellum/workflows/nodes/displayable/api_node/node.py,sha256=kGvKPxXj4XcAsNLtvE1RBGI58MiSNTkQcQU2g2JHC3E,2922
1595
1604
  vellum/workflows/nodes/displayable/api_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1596
- vellum/workflows/nodes/displayable/api_node/tests/test_api_node.py,sha256=s7-r3oGKeoQUaJ5w6FY8SXwuiafNpE6nvNT1gNJIBnM,6734
1605
+ vellum/workflows/nodes/displayable/api_node/tests/test_api_node.py,sha256=kZQz_SOMxW_r_6t7OSCuGFifEBqxnPW3K1sE2TkiPtA,8021
1597
1606
  vellum/workflows/nodes/displayable/bases/__init__.py,sha256=0mWIx3qUrzllV7jqt7wN03vWGMuI1WrrLZeMLT2Cl2c,304
1598
1607
  vellum/workflows/nodes/displayable/bases/api_node/__init__.py,sha256=1jwx4WC358CLA1jgzl_UD-rZmdMm2v9Mps39ndwCD7U,64
1599
- vellum/workflows/nodes/displayable/bases/api_node/node.py,sha256=70pLGU0UzWvSbKwNkx3YlUYrDSkl7MmhVHoI8bzN79c,4343
1608
+ vellum/workflows/nodes/displayable/bases/api_node/node.py,sha256=4rRrF8IV9ATMm4i5mxjwArYmvSrlDyDxBMWQTrhY3p8,4606
1600
1609
  vellum/workflows/nodes/displayable/bases/base_prompt_node/__init__.py,sha256=Org3xTvgp1pA0uUXFfnJr29D3HzCey2lEdYF4zbIUgo,70
1601
1610
  vellum/workflows/nodes/displayable/bases/base_prompt_node/node.py,sha256=lGAWxTf02rRBgyxAFJNGldRX6sCRAZUDiUllg6zogHY,4459
1602
1611
  vellum/workflows/nodes/displayable/bases/inline_prompt_node/__init__.py,sha256=Hl35IAoepRpE-j4cALaXVJIYTYOF3qszyVbxTj4kS1s,82
1603
1612
  vellum/workflows/nodes/displayable/bases/inline_prompt_node/constants.py,sha256=fnjiRWLoRlC4Puo5oQcpZD5Hd-EesxsAo9l5tGAkpZQ,270
1604
- vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py,sha256=cD2RzOX9WE6xTKgm09dsEw4xHATZbOjeGyYCSdl8fjU,11785
1613
+ vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py,sha256=bxCDBOF5HR17-YCSAqEkCJKYU50TYx1C15XaAb7Xxw8,12896
1605
1614
  vellum/workflows/nodes/displayable/bases/inline_prompt_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1606
- vellum/workflows/nodes/displayable/bases/inline_prompt_node/tests/test_inline_prompt_node.py,sha256=terQtPqLGiKKGtU7zbkM3XkbVddLQI87bBj31M0zaRE,21356
1615
+ vellum/workflows/nodes/displayable/bases/inline_prompt_node/tests/test_inline_prompt_node.py,sha256=H1xEaL3vgEPAGQaF_rt8kLl46qmVJEEhcORXT7oRdPk,22626
1607
1616
  vellum/workflows/nodes/displayable/bases/prompt_deployment_node.py,sha256=0a40fkkZkFMmZN0CsWf6EP_y1H6x36EGa3WcfVNyOsM,9797
1608
1617
  vellum/workflows/nodes/displayable/bases/search_node.py,sha256=-BxQtuPgq8NZfUf5XJgHNQTni5kGbvAHq7WFqd0Euck,6107
1609
1618
  vellum/workflows/nodes/displayable/bases/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1646,7 +1655,7 @@ vellum/workflows/nodes/displayable/search_node/node.py,sha256=1dGCB1kb7MvX3fUJ5z
1646
1655
  vellum/workflows/nodes/displayable/search_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1647
1656
  vellum/workflows/nodes/displayable/search_node/tests/test_node.py,sha256=WVZR3BI_CvxBG9hulv0-tcAc_gW5ozs0nH4uVNRJa2U,8863
1648
1657
  vellum/workflows/nodes/displayable/subworkflow_deployment_node/__init__.py,sha256=9yYM6001YZeqI1VOk1QuEM_yrffk_EdsO7qaPzINKds,92
1649
- vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py,sha256=lq8_USZkNiYktH0oJSW2jOuXyRtVwVoq1CKFdCek5-M,9719
1658
+ vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py,sha256=hMyCIe9PoxAu5TLxalgnIc7na4LEKM9UAugd5ReXZnk,10026
1650
1659
  vellum/workflows/nodes/displayable/subworkflow_deployment_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1651
1660
  vellum/workflows/nodes/displayable/subworkflow_deployment_node/tests/test_node.py,sha256=c98nMPogZ6iN_pTvVUMTB3J72Hj--H-XVgvvRXhdSQE,19085
1652
1661
  vellum/workflows/nodes/displayable/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1659,9 +1668,11 @@ vellum/workflows/nodes/experimental/__init__.py,sha256=_tpZGWAZLydcKxfrj1-plrZeT
1659
1668
  vellum/workflows/nodes/experimental/openai_chat_completion_node/__init__.py,sha256=lsyD9laR9p7kx5-BXGH2gUTM242UhKy8SMV0SR6S2iE,90
1660
1669
  vellum/workflows/nodes/experimental/openai_chat_completion_node/node.py,sha256=cKI2Ls25L-JVt4z4a2ozQa-YBeVy21Z7BQ32Sj7iBPE,10460
1661
1670
  vellum/workflows/nodes/experimental/tool_calling_node/__init__.py,sha256=S7OzT3I4cyOU5Beoz87nPwCejCMP2FsHBFL8OcVmxJ4,118
1662
- vellum/workflows/nodes/experimental/tool_calling_node/node.py,sha256=1Sp-Jnziz8lK5t7snBIwhMk_wKzsXu_aqW7xAeHKc_w,5797
1671
+ vellum/workflows/nodes/experimental/tool_calling_node/node.py,sha256=CkSVbTHWX70MikBKMWfDRLb2xDhEl4K4qpIrNmRVVRU,5689
1672
+ vellum/workflows/nodes/experimental/tool_calling_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1663
1673
  vellum/workflows/nodes/experimental/tool_calling_node/tests/test_node.py,sha256=7x_o81vT7gWtVw3zDppcWnlJbakgxx_oI1esqhs2gpI,4551
1664
- vellum/workflows/nodes/experimental/tool_calling_node/utils.py,sha256=UiQ1o2tDl7EYLHY9HRWLa-MeuYPYfXp8lo2qNFakh2Q,9955
1674
+ vellum/workflows/nodes/experimental/tool_calling_node/tests/test_utils.py,sha256=sF4ZfGK2uQNBVXC9yrnbFVzKIM-HWvXO1wak160MUTE,1386
1675
+ vellum/workflows/nodes/experimental/tool_calling_node/utils.py,sha256=1wjOayk35rMEQWItpCUwP0UTtgdB27u1WzjsNAD0f4o,12052
1665
1676
  vellum/workflows/nodes/mocks.py,sha256=a1FjWEIocseMfjzM-i8DNozpUsaW0IONRpZmXBoWlyc,10455
1666
1677
  vellum/workflows/nodes/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1667
1678
  vellum/workflows/nodes/tests/test_mocks.py,sha256=mfPvrs75PKcsNsbJLQAN6PDFoVqs9TmQxpdyFKDdO60,7837
@@ -1672,7 +1683,7 @@ vellum/workflows/outputs/base.py,sha256=1OGHqBJVk7i8cW8uewFWOhIjuMlRRpzCDrGE30Zw
1672
1683
  vellum/workflows/ports/__init__.py,sha256=bZuMt-R7z5bKwpu4uPW7LlJeePOQWmCcDSXe5frUY5g,101
1673
1684
  vellum/workflows/ports/node_ports.py,sha256=2Uo9gwNVCuH86J-GXcpc95QSDh5I-XVvhHJCMSWe-S8,2825
1674
1685
  vellum/workflows/ports/port.py,sha256=j_qiZlpx-a1cK5E7sxXwPcb_9NS-KUM-JoP8mgqg32k,4073
1675
- vellum/workflows/ports/utils.py,sha256=cWJ9xX1KrHBTiU3xe6t7Rs0yaOy9RV18GMtHaAshAsc,3094
1686
+ vellum/workflows/ports/utils.py,sha256=gD8iijX8D3tjx1Tj2FW8-QIubCphTqW_gqROt6w6MOM,3790
1676
1687
  vellum/workflows/references/__init__.py,sha256=glHFC1VfXmcbNvH5VzFbkT03d8_D7MMcvEcsUBrzLIs,591
1677
1688
  vellum/workflows/references/constant.py,sha256=6yUT4q1sMj1hkI_tzzQ9AYcmeeDYFUNCqUq_W2DN0S8,540
1678
1689
  vellum/workflows/references/environment_variable.py,sha256=evpxiBKzBk74JzxBXWkfTrZe4Kx-fuUG1W6XjtXzaUw,700
@@ -1689,7 +1700,7 @@ vellum/workflows/references/workflow_input.py,sha256=W3rOK1EPd2gYHb04WJwmNm1CUSd
1689
1700
  vellum/workflows/resolvers/__init__.py,sha256=eH6hTvZO4IciDaf_cf7aM2vs-DkBDyJPycOQevJxQnI,82
1690
1701
  vellum/workflows/resolvers/base.py,sha256=WHra9LRtlTuB1jmuNqkfVE2JUgB61Cyntn8f0b0WZg4,411
1691
1702
  vellum/workflows/runner/__init__.py,sha256=i1iG5sAhtpdsrlvwgH6B-m49JsINkiWyPWs8vyT-bqM,72
1692
- vellum/workflows/runner/runner.py,sha256=itKhjnJBIXrKcI3nKbKsAwcmeP4pn5BowX-LaTPu_VU,33911
1703
+ vellum/workflows/runner/runner.py,sha256=U25YA1_vBgTDhOAxoVCRcNyFX2P5EraN7Mdsr4MX8p0,35031
1693
1704
  vellum/workflows/sandbox.py,sha256=GVJzVjMuYzOBnSrboB0_6MMRZWBluAyQ2o7syeaeBd0,2235
1694
1705
  vellum/workflows/state/__init__.py,sha256=yUUdR-_Vl7UiixNDYQZ-GEM_kJI9dnOia75TtuNEsnE,60
1695
1706
  vellum/workflows/state/base.py,sha256=WIMJYyuHUrP4zt0Nudk66HAK1L6GgGmsU_GQp7BGE2U,22189
@@ -1703,18 +1714,19 @@ vellum/workflows/tests/test_sandbox.py,sha256=JKwaluI-lODQo7Ek9sjDstjL_WTdSqUlVi
1703
1714
  vellum/workflows/tests/test_undefined.py,sha256=zMCVliCXVNLrlC6hEGyOWDnQADJ2g83yc5FIM33zuo8,353
1704
1715
  vellum/workflows/types/__init__.py,sha256=KxUTMBGzuRCfiMqzzsykOeVvrrkaZmTTo1a7SLu8gRM,68
1705
1716
  vellum/workflows/types/code_execution_node_wrappers.py,sha256=3MNIoFZKzVzNS5qFLVuDwMV17QJw72zo7NRf52yMq5A,3074
1706
- vellum/workflows/types/core.py,sha256=kMQremh_I8egXpiKmtMQbB6e3OczAWiRnnTq5V6xlD0,928
1707
- vellum/workflows/types/definition.py,sha256=z81CL_u0FJol-9yUIqoXNTYAARtU8x__c6s-f4rb5c8,2335
1717
+ vellum/workflows/types/core.py,sha256=iLJkMKf417kjwRncWdT_qsfJ-qBv5x58um7SfrydJbs,1266
1718
+ vellum/workflows/types/definition.py,sha256=8DyNh3KP3p4Gsi-HJqai0f4sc9P-E2lDbp_0krsrE7g,2516
1708
1719
  vellum/workflows/types/generics.py,sha256=tKXz0LwWJGKw1YGudyl9_yFDrRgU6yYV1yJV1Zv-LTw,1430
1709
1720
  vellum/workflows/types/stack.py,sha256=h7NE0vXR7l9DevFBIzIAk1Zh59K-kECQtDTKOUunwMY,1314
1710
1721
  vellum/workflows/types/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1711
1722
  vellum/workflows/types/tests/test_utils.py,sha256=UnZog59tR577mVwqZRqqWn2fScoOU1H6up0EzS8zYhw,2536
1712
1723
  vellum/workflows/types/utils.py,sha256=axxHbPLsnjhEOnMZrc5YarFd-P2bnsacBDQGNCvY8OY,6367
1713
1724
  vellum/workflows/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1714
- vellum/workflows/utils/functions.py,sha256=Gw9akY-_xU_kJpbkYvQ-07hOOLJpqq0rtch_3FbgFQ0,7169
1725
+ vellum/workflows/utils/functions.py,sha256=eRtqQaxtv6NFe5v2pRO-b7kOH2_NOQS8tsKGOEEEdxY,7168
1715
1726
  vellum/workflows/utils/names.py,sha256=QLUqfJ1tmSEeUwBKTTiv_Qk3QGbInC2RSmlXfGXc8Wo,380
1727
+ vellum/workflows/utils/pydantic_schema.py,sha256=eR_bBtY-T0pttJP-ARwagSdCOnwPUtiT3cegm2lzDTQ,1310
1716
1728
  vellum/workflows/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1717
- vellum/workflows/utils/tests/test_functions.py,sha256=4mhIhZdlZdiboq1NUhJlOvDeRrpG-Oa_HrstvSbjg64,18368
1729
+ vellum/workflows/utils/tests/test_functions.py,sha256=bDobzPtxrFpkSBsR86BE4Zb8rD44y6tiTe6HXrLtOqU,18445
1718
1730
  vellum/workflows/utils/tests/test_names.py,sha256=aOqpyvMsOEK_9mg_-yaNxQDW7QQfwqsYs37PseyLhxw,402
1719
1731
  vellum/workflows/utils/tests/test_uuids.py,sha256=i77ABQ0M3S-aFLzDXHJq_yr5FPkJEWCMBn1HJ3DObrE,437
1720
1732
  vellum/workflows/utils/tests/test_vellum_variables.py,sha256=vbnKgm41aB5OXlO-ZIPbhQ6xDiZkT8KMxCLqz4zocWY,1791
@@ -1727,8 +1739,8 @@ vellum/workflows/workflows/event_filters.py,sha256=GSxIgwrX26a1Smfd-6yss2abGCnad
1727
1739
  vellum/workflows/workflows/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1728
1740
  vellum/workflows/workflows/tests/test_base_workflow.py,sha256=fROqff6AZpCIzaSwOKSdtYy4XR0UZQ6ejxL3RJOSJVs,20447
1729
1741
  vellum/workflows/workflows/tests/test_context.py,sha256=VJBUcyWVtMa_lE5KxdhgMu0WYNYnUQUDvTF7qm89hJ0,2333
1730
- vellum_ai-0.14.72.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
1731
- vellum_ai-0.14.72.dist-info/METADATA,sha256=5rmPI1o0CHUiw7gPjZq2ZSjkiaWzLTbWTxG0pCyP3WA,5556
1732
- vellum_ai-0.14.72.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1733
- vellum_ai-0.14.72.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
1734
- vellum_ai-0.14.72.dist-info/RECORD,,
1742
+ vellum_ai-0.14.73.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
1743
+ vellum_ai-0.14.73.dist-info/METADATA,sha256=XoU3nebnJNAQ7L7BEvZpXjoLwW0JMAUx88t4TikRG3s,5556
1744
+ vellum_ai-0.14.73.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1745
+ vellum_ai-0.14.73.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
1746
+ vellum_ai-0.14.73.dist-info/RECORD,,
vellum_cli/push.py CHANGED
@@ -13,10 +13,9 @@ from vellum.client.core.api_error import ApiError
13
13
  from vellum.resources.workflows.client import OMIT
14
14
  from vellum.types import WorkflowPushDeploymentConfigRequest
15
15
  from vellum.workflows.vellum_client import create_vellum_client
16
- from vellum.workflows.workflows.base import BaseWorkflow
17
16
  from vellum_cli.config import DEFAULT_WORKSPACE_CONFIG, WorkflowConfig, WorkflowDeploymentConfig, load_vellum_cli_config
18
17
  from vellum_cli.logger import handle_cli_error, load_cli_logger
19
- from vellum_ee.workflows.display.workflows.get_vellum_workflow_display_class import get_workflow_display
18
+ from vellum_ee.workflows.display.workflows.base_workflow_display import BaseWorkflowDisplay
20
19
 
21
20
 
22
21
  def push_command(
@@ -106,13 +105,12 @@ def push_command(
106
105
 
107
106
  # Remove this once we could serialize using the artifact in Vembda
108
107
  # https://app.shortcut.com/vellum/story/5585
109
- workflow = BaseWorkflow.load_from_module(workflow_config.module)
110
- workflow_display = get_workflow_display(
111
- workflow_class=workflow,
108
+ serialization_result = BaseWorkflowDisplay.serialize_module(
109
+ workflow_config.module,
112
110
  client=client,
113
111
  dry_run=dry_run or False,
114
112
  )
115
- exec_config = workflow_display.serialize()
113
+ exec_config = serialization_result.exec_config
116
114
 
117
115
  container_tag = workflow_config.container_image_tag
118
116
  if workflow_config.container_image_name and not workflow_config.container_image_tag:
@@ -229,7 +227,7 @@ def push_command(
229
227
  raise e
230
228
 
231
229
  if dry_run:
232
- error_messages = [str(e) for e in workflow_display.errors]
230
+ error_messages = serialization_result.errors
233
231
  error_message = "\n".join(error_messages) if error_messages else "No errors found."
234
232
  logger.info(
235
233
  f"""\
@@ -243,7 +241,7 @@ def push_command(
243
241
  """
244
242
  ) # type: ignore[attr-defined]
245
243
 
246
- error_list = list(workflow_display.errors)
244
+ error_list = serialization_result.errors
247
245
  has_errors = len(error_list) > 0
248
246
  has_diffs = response.proposed_diffs is not None and response.proposed_diffs
249
247
 
@@ -1,6 +1,7 @@
1
1
  from uuid import UUID
2
2
  from typing import Generic, Optional, TypeVar
3
3
 
4
+ from vellum.workflows.inputs.base import BaseInputs
4
5
  from vellum.workflows.nodes import SubworkflowDeploymentNode
5
6
  from vellum.workflows.types.core import JsonObject
6
7
  from vellum_ee.workflows.display.nodes.base_node_display import BaseNodeDisplay
@@ -23,6 +24,12 @@ class BaseSubworkflowDeploymentNodeDisplay(
23
24
  node_id = self.node_id
24
25
 
25
26
  subworkflow_inputs = raise_if_descriptor(node.subworkflow_inputs)
27
+
28
+ if isinstance(subworkflow_inputs, BaseInputs):
29
+ input_items = [(input_descriptor.name, input_value) for input_descriptor, input_value in subworkflow_inputs]
30
+ else:
31
+ input_items = list(subworkflow_inputs.items())
32
+
26
33
  node_inputs = [
27
34
  create_node_input(
28
35
  node_id=node_id,
@@ -34,7 +41,7 @@ class BaseSubworkflowDeploymentNodeDisplay(
34
41
  )
35
42
  or self.node_input_ids_by_name.get(variable_name),
36
43
  )
37
- for variable_name, variable_value in subworkflow_inputs.items()
44
+ for variable_name, variable_value in input_items
38
45
  ]
39
46
 
40
47
  deployment = display_context.client.workflow_deployments.retrieve(
@@ -39,7 +39,7 @@ def test_base_workflow_display__serialize_empty_workflow():
39
39
  "data": {"label": "Entrypoint Node", "source_handle_id": "0af025a4-3b25-457d-a7ae-e3a7ba15c86c"},
40
40
  "base": None,
41
41
  "definition": None,
42
- "display_data": {"position": {"x": 0.0, "y": 0.0}},
42
+ "display_data": {"position": {"x": 0.0, "y": -50.0}},
43
43
  "id": "3c41cdd9-999a-48b8-9088-f6dfa1369bfd",
44
44
  "inputs": [],
45
45
  "type": "ENTRYPOINT",
@@ -249,7 +249,7 @@ def test_serialize_node__stacked():
249
249
  "id": "074833b0-e142-4bbc-8dec-209a35e178a3",
250
250
  "label": "test_serialize_node__stacked.<locals>.InnerStackedGenericNode",
251
251
  "type": "GENERIC",
252
- "display_data": {"position": {"x": 0.0, "y": 0.0}},
252
+ "display_data": {"position": {"x": 200.0, "y": -50.0}},
253
253
  "base": {"name": "BaseNode", "module": ["vellum", "workflows", "nodes", "bases", "base"]},
254
254
  "definition": {
255
255
  "name": "InnerStackedGenericNode",
@@ -269,7 +269,7 @@ def test_serialize_node__workflow_input_as_nested_chat_history():
269
269
  "id": "11be9d37-0069-4695-a317-14a3b6519d4e",
270
270
  "label": "test_serialize_node__workflow_input_as_nested_chat_history.<locals>.GenericNode",
271
271
  "type": "GENERIC",
272
- "display_data": {"position": {"x": 0.0, "y": 0.0}},
272
+ "display_data": {"position": {"x": 200.0, "y": -50.0}},
273
273
  "base": {"name": "BaseNode", "module": ["vellum", "workflows", "nodes", "bases", "base"]},
274
274
  "definition": {
275
275
  "name": "GenericNode",
@@ -64,7 +64,7 @@ def test_serialize_workflow(vellum_client):
64
64
  "type": "ENTRYPOINT",
65
65
  "inputs": [],
66
66
  "data": {"label": "Entrypoint Node", "source_handle_id": "8eaa7f02-25ff-4a00-9b0a-5185718d89b3"},
67
- "display_data": {"position": {"x": 0.0, "y": 0.0}},
67
+ "display_data": {"position": {"x": 0.0, "y": -50.0}},
68
68
  "base": None,
69
69
  "definition": None,
70
70
  }
@@ -184,7 +184,7 @@ def test_serialize_workflow(vellum_client):
184
184
  "json_output_id": "12e4a99d-883d-4da5-aa51-35817d94013e",
185
185
  "status_code_output_id": "fecc16c3-400e-4fd3-8223-08366070e3b1",
186
186
  },
187
- "display_data": {"position": {"x": 0.0, "y": 0.0}},
187
+ "display_data": {"position": {"x": 200.0, "y": -50.0}},
188
188
  "base": {
189
189
  "name": "APINode",
190
190
  "module": ["vellum", "workflows", "nodes", "displayable", "api_node", "node"],
@@ -230,7 +230,7 @@ def test_serialize_workflow(vellum_client):
230
230
  },
231
231
  }
232
232
  ],
233
- "display_data": {"position": {"x": 0.0, "y": 0.0}},
233
+ "display_data": {"position": {"x": 400.0, "y": 200.0}},
234
234
  "base": {
235
235
  "name": "FinalOutputNode",
236
236
  "module": ["vellum", "workflows", "nodes", "displayable", "final_output_node", "node"],
@@ -266,7 +266,7 @@ def test_serialize_workflow(vellum_client):
266
266
  },
267
267
  }
268
268
  ],
269
- "display_data": {"position": {"x": 0.0, "y": 0.0}},
269
+ "display_data": {"position": {"x": 400.0, "y": -50.0}},
270
270
  "base": {
271
271
  "name": "FinalOutputNode",
272
272
  "module": ["vellum", "workflows", "nodes", "displayable", "final_output_node", "node"],
@@ -302,7 +302,7 @@ def test_serialize_workflow(vellum_client):
302
302
  },
303
303
  }
304
304
  ],
305
- "display_data": {"position": {"x": 0.0, "y": 0.0}},
305
+ "display_data": {"position": {"x": 400.0, "y": -300.0}},
306
306
  "base": {
307
307
  "name": "FinalOutputNode",
308
308
  "module": ["vellum", "workflows", "nodes", "displayable", "final_output_node", "node"],