vellum-ai 0.14.40__py3-none-any.whl → 0.14.42__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 (69) hide show
  1. vellum/__init__.py +2 -4
  2. vellum/client/core/client_wrapper.py +1 -1
  3. vellum/client/reference.md +141 -4
  4. vellum/client/resources/ad_hoc/client.py +311 -1
  5. vellum/client/resources/deployments/client.py +2 -2
  6. vellum/client/resources/documents/client.py +0 -6
  7. vellum/client/types/__init__.py +2 -4
  8. vellum/client/types/execute_api_response.py +3 -4
  9. vellum/client/types/execute_api_response_json.py +7 -0
  10. vellum/client/types/prompt_settings.py +1 -0
  11. vellum/client/types/workflow_event_execution_read.py +0 -4
  12. vellum/client/types/workflow_execution_initiated_body.py +0 -9
  13. vellum/client/types/workflow_execution_initiated_event.py +0 -4
  14. vellum/client/types/workflow_execution_span.py +0 -4
  15. vellum/types/{node_event_display_context.py → execute_api_response_json.py} +1 -1
  16. vellum/workflows/inputs/base.py +26 -3
  17. vellum/workflows/inputs/tests/test_inputs.py +15 -0
  18. vellum/workflows/nodes/bases/base_adornment_node.py +9 -0
  19. vellum/workflows/nodes/core/map_node/node.py +3 -2
  20. vellum/workflows/nodes/core/map_node/tests/test_node.py +56 -0
  21. vellum/workflows/nodes/core/retry_node/node.py +2 -1
  22. vellum/workflows/nodes/experimental/tool_calling_node/node.py +6 -28
  23. vellum/workflows/nodes/experimental/tool_calling_node/utils.py +6 -10
  24. vellum/workflows/nodes/utils.py +14 -1
  25. vellum/workflows/references/workflow_input.py +5 -1
  26. vellum/workflows/runner/runner.py +2 -0
  27. vellum/workflows/workflows/base.py +5 -0
  28. {vellum_ai-0.14.40.dist-info → vellum_ai-0.14.42.dist-info}/METADATA +1 -1
  29. {vellum_ai-0.14.40.dist-info → vellum_ai-0.14.42.dist-info}/RECORD +65 -68
  30. vellum_ee/workflows/display/nodes/base_node_display.py +67 -28
  31. vellum_ee/workflows/display/nodes/tests/test_base_node_display.py +18 -0
  32. vellum_ee/workflows/display/nodes/vellum/api_node.py +3 -2
  33. vellum_ee/workflows/display/nodes/vellum/base_adornment_node.py +1 -2
  34. vellum_ee/workflows/display/nodes/vellum/code_execution_node.py +3 -2
  35. vellum_ee/workflows/display/nodes/vellum/conditional_node.py +3 -2
  36. vellum_ee/workflows/display/nodes/vellum/error_node.py +2 -2
  37. vellum_ee/workflows/display/nodes/vellum/final_output_node.py +8 -8
  38. vellum_ee/workflows/display/nodes/vellum/guardrail_node.py +3 -2
  39. vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py +3 -2
  40. vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py +3 -2
  41. vellum_ee/workflows/display/nodes/vellum/map_node.py +15 -12
  42. vellum_ee/workflows/display/nodes/vellum/merge_node.py +3 -2
  43. vellum_ee/workflows/display/nodes/vellum/note_node.py +2 -2
  44. vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py +3 -4
  45. vellum_ee/workflows/display/nodes/vellum/search_node.py +3 -2
  46. vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py +3 -2
  47. vellum_ee/workflows/display/nodes/vellum/templating_node.py +3 -2
  48. vellum_ee/workflows/display/nodes/vellum/tests/test_utils.py +2 -2
  49. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py +1 -0
  50. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py +3 -0
  51. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py +138 -0
  52. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py +1 -0
  53. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py +1 -0
  54. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py +3 -2
  55. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py +1 -0
  56. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py +1 -0
  57. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py +1 -0
  58. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py +1 -0
  59. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py +1 -0
  60. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py +2 -2
  61. vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py +2 -2
  62. vellum_ee/workflows/display/workflows/base_workflow_display.py +4 -12
  63. vellum/client/types/node_event_display_context.py +0 -30
  64. vellum/client/types/workflow_event_display_context.py +0 -28
  65. vellum/types/workflow_event_display_context.py +0 -3
  66. vellum_ee/workflows/display/nodes/base_node_vellum_display.py +0 -40
  67. {vellum_ai-0.14.40.dist-info → vellum_ai-0.14.42.dist-info}/LICENSE +0 -0
  68. {vellum_ai-0.14.40.dist-info → vellum_ai-0.14.42.dist-info}/WHEEL +0 -0
  69. {vellum_ai-0.14.40.dist-info → vellum_ai-0.14.42.dist-info}/entry_points.txt +0 -0
@@ -26,31 +26,30 @@ vellum_ee/workflows/display/base.py,sha256=EqlQFD56kpqMY02ZBJBQajzJKh33Dwi60Wo77
26
26
  vellum_ee/workflows/display/editor/__init__.py,sha256=MSAgY91xCEg2neH5d8jXx5wRdR962ftZVa6vO9BGq9k,167
27
27
  vellum_ee/workflows/display/editor/types.py,sha256=x-tOOCJ6CF4HmiKDfCmcc3bOVfc1EBlP5o6u5WEfLoY,567
28
28
  vellum_ee/workflows/display/nodes/__init__.py,sha256=jI1aPBQf8DkmrYoZ4O-wR1duqZByOf5mDFmo_wFJPE4,307
29
- vellum_ee/workflows/display/nodes/base_node_display.py,sha256=e7agquSClJhamsVo8YX6WcV1PVlUSGD4Lz1feDi-rCw,21235
30
- vellum_ee/workflows/display/nodes/base_node_vellum_display.py,sha256=WXbfVoGHTfl_owas2WKHwcRhfLeu0cAI4qLmKxfxjOs,1707
29
+ vellum_ee/workflows/display/nodes/base_node_display.py,sha256=emQg21S5wmY155LWePaBswIDgsDuZctGKEaNmEMNr6M,22625
31
30
  vellum_ee/workflows/display/nodes/get_node_display_class.py,sha256=5QuXpMth0HmZuC-e8LRKOLbrVXSL-ylMR5IWae8eNmc,2113
32
31
  vellum_ee/workflows/display/nodes/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
- vellum_ee/workflows/display/nodes/tests/test_base_node_display.py,sha256=YuR3e6ibE_eWDfAJCrooQR3QZGeNRoha1FwpK3hvMh0,2478
32
+ vellum_ee/workflows/display/nodes/tests/test_base_node_display.py,sha256=Z4Mf7xLCNiblSbpKI0BrV5modQr-ZcFzhfir_OSyTTs,2997
34
33
  vellum_ee/workflows/display/nodes/types.py,sha256=St1BB6no528OyELGiyRabWao0GGw6mLhstQAvEACbGk,247
35
34
  vellum_ee/workflows/display/nodes/utils.py,sha256=sloya5TpXsnot1HURc9L51INwflRqUzHxRVnCS9Cd-4,973
36
35
  vellum_ee/workflows/display/nodes/vellum/__init__.py,sha256=nUIgH2s0-7IbQRNrBhLPyRNe8YIrx3Yo9HeeW-aXXFk,1668
37
- vellum_ee/workflows/display/nodes/vellum/api_node.py,sha256=RDsxyubod_zYc72_VaHUTfOZXsgrKv8g3fqZFS2_j8Y,8538
38
- vellum_ee/workflows/display/nodes/vellum/base_adornment_node.py,sha256=DJb7u3ZgLxwzo7ZxD--DPYDy1FDwKwPxRYBrJ5FT1x0,6452
39
- vellum_ee/workflows/display/nodes/vellum/code_execution_node.py,sha256=IYx0nll0t-tsPcjfgpfHMZE4FJgMFIsOiaQanGLYF0Q,4410
40
- vellum_ee/workflows/display/nodes/vellum/conditional_node.py,sha256=ybLIa4uclqVIy3VAQvI1ivg2tnK5Ug_1R5a69DFqL7E,11104
41
- vellum_ee/workflows/display/nodes/vellum/error_node.py,sha256=I1Jkp2htRINJATtv1e-zs9BrReFX842djpiVgBPHDYg,2186
42
- vellum_ee/workflows/display/nodes/vellum/final_output_node.py,sha256=BJ--Y-LCbGFJve3OFEKHVxrw8TKvgb342opYLJibToc,3128
43
- vellum_ee/workflows/display/nodes/vellum/guardrail_node.py,sha256=IuJPKZoZT7lXhQkPH-wlut9-FsGtr8dIHM4jz8rp7BU,2228
44
- vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py,sha256=86hkneLIBS4Jel3GWsPVIIFqXGD3RHIpXw0iGa_Zues,8843
45
- vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py,sha256=MU9I8CB1X1TgL1aa1eT6DHWwNJ-2v79t74xl0oy-fBo,5510
46
- vellum_ee/workflows/display/nodes/vellum/map_node.py,sha256=8CPnn06HIBxBOiECevUffeVmQmCpec6WtPQnNl9gj9Y,3748
47
- vellum_ee/workflows/display/nodes/vellum/merge_node.py,sha256=xtyecs9mJ_WEwVpP12jxYwvehLXynhqLrPJ-Ahdk2GA,3232
48
- vellum_ee/workflows/display/nodes/vellum/note_node.py,sha256=DQzzhVGVZf812DkpQZoVYJcDsIOtjkm_sCX3oDLks2Y,1103
49
- vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py,sha256=yAiWMeKs6jEecRdWfTjqxLmnGLeBPguaVsBD7xcOV94,3263
36
+ vellum_ee/workflows/display/nodes/vellum/api_node.py,sha256=QCaW_Q9CjLnkzv7dbUKyrZGoumov-C0in7lh7uDar7s,8579
37
+ vellum_ee/workflows/display/nodes/vellum/base_adornment_node.py,sha256=rJbHZBg9A_v2bjk-R6MfWzShcrS2gcKIOyYGoqwTx8s,6353
38
+ vellum_ee/workflows/display/nodes/vellum/code_execution_node.py,sha256=fHE2_3ZNMRVV66zYGY3ukk8rs-hK8i_c6mO74Ab8Z3w,4451
39
+ vellum_ee/workflows/display/nodes/vellum/conditional_node.py,sha256=6d5oqwzdMpgNFILfxaX_mCRyxXDjvvoKBKPUc2Cxp0o,11145
40
+ vellum_ee/workflows/display/nodes/vellum/error_node.py,sha256=eJ_nw0u63vJ7fxxMCrfNyKx8JTOcRoujrJsvsxo_FJ4,2167
41
+ vellum_ee/workflows/display/nodes/vellum/final_output_node.py,sha256=7odQcHi2acJ9TTUxBDR6VWn4jGqITshonk-LQxcnIpk,3029
42
+ vellum_ee/workflows/display/nodes/vellum/guardrail_node.py,sha256=nVOixouitWwatZLbSBddeMfYQ2doZ_tCdb1ashq3pqA,2269
43
+ vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py,sha256=-nPccukjzM2kJiIwFE3orVahB14zqGGvITQsTBWS3TE,8884
44
+ vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py,sha256=yZO9UNLj8sAtw64bLSN2wtdPMGoQ2oAVbadrxfL3wsE,5551
45
+ vellum_ee/workflows/display/nodes/vellum/map_node.py,sha256=T3a6Lv51SC1506bTVd8T9y_KVmP2VP4IQarAO87xdmM,3755
46
+ vellum_ee/workflows/display/nodes/vellum/merge_node.py,sha256=yBWeN4T_lOsDVnNOKWRiT7JYKu0IR5Fx2z99iq6QKSA,3273
47
+ vellum_ee/workflows/display/nodes/vellum/note_node.py,sha256=3E0UqmgVYdtbj4nyq8gKju8EpMsRHMCQ0KLrJhug3XU,1084
48
+ vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py,sha256=xAt926FCYPI12hUeS7S1tx7ezDSriQcGbSZHBkv_omM,3298
50
49
  vellum_ee/workflows/display/nodes/vellum/retry_node.py,sha256=TjBpRERmkmm1myZTWKAxxD1F0dWSc7U1sih8g9sqq2Q,3300
51
- vellum_ee/workflows/display/nodes/vellum/search_node.py,sha256=Hn55mKO1Q6BBspQtbsurvJJqX7RjSSuEyRjUW29xvg0,9279
52
- vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py,sha256=62baAElKoRKIoba0lLhnrXGWWx96B73VxKGxh7BaIxc,2612
53
- vellum_ee/workflows/display/nodes/vellum/templating_node.py,sha256=5EWzdA3TSUPlbJhs4uo1KGH6eGtDXZucVhlUoc_xpl4,3242
50
+ vellum_ee/workflows/display/nodes/vellum/search_node.py,sha256=7vU_4IxYe7iwn4p7J909cxF1TOR-tUlFXA7k3ySQPwM,9320
51
+ vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py,sha256=5Ok5X4R5E8SVW58O5cAVJo92VqGDBiFJpHQ3txqNi1U,2653
52
+ vellum_ee/workflows/display/nodes/vellum/templating_node.py,sha256=Nk5pxly4d-kactJ3Z4SLErZCm8hicyj2rCArZw8pW9k,3283
54
53
  vellum_ee/workflows/display/nodes/vellum/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
54
  vellum_ee/workflows/display/nodes/vellum/tests/test_code_execution_node.py,sha256=OoNO-BstB96F-VMK6FZ9aXyi-0wyNePo6HiaJC6SYRw,3880
56
55
  vellum_ee/workflows/display/nodes/vellum/tests/test_error_node.py,sha256=HoIph_rNlHFNBMqBq1a_eyFwPzBIazdH1yQeRhgba14,1510
@@ -59,7 +58,7 @@ vellum_ee/workflows/display/nodes/vellum/tests/test_prompt_node.py,sha256=6Q6rfE
59
58
  vellum_ee/workflows/display/nodes/vellum/tests/test_retry_node.py,sha256=h93ysolmbo2viisyhRnXKHPxiDK0I_dSAbYoHFYIoO4,1953
60
59
  vellum_ee/workflows/display/nodes/vellum/tests/test_templating_node.py,sha256=PK7v0AWCgH9gWRfAwGPUGCRLbIH3NSyoAYa9W15ggAo,3321
61
60
  vellum_ee/workflows/display/nodes/vellum/tests/test_try_node.py,sha256=Khjsb53PKpZuyhKoRMgKAL45eGp5hZqXvHmVeQWRw4w,2289
62
- vellum_ee/workflows/display/nodes/vellum/tests/test_utils.py,sha256=etCxL19nuJ-bDytH-9a0wHKFoQyBIvocxgTcyo2Cy2Y,4870
61
+ vellum_ee/workflows/display/nodes/vellum/tests/test_utils.py,sha256=3LS1O4DGPWit05oj_ubeW8AlHGnoBxdUMferGQuAiZs,4851
63
62
  vellum_ee/workflows/display/nodes/vellum/try_node.py,sha256=o6wL17XVm6Wj4sHoJkBW54Y5fY9ZwhD7ry0xkNWRu5c,4106
64
63
  vellum_ee/workflows/display/nodes/vellum/utils.py,sha256=oICunzyaXPs0tYnW5zH1r93Bx35MSH7mcD-n0DEWRok,4978
65
64
  vellum_ee/workflows/display/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -72,24 +71,24 @@ vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_attr
72
71
  vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_outputs_serialization.py,sha256=s6_mnk0pkztU59wYpSfOFpMhAJaRjmyfxM6WJGtnD4Y,6456
73
72
  vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_ports_serialization.py,sha256=PkSgghJDz0fpDB72HHPjLjo8LkZk-HpUkCQzRLX-iVw,40611
74
73
  vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_trigger_serialization.py,sha256=dsJr8I9AdPwMOGszirfNDzZP2Ychd94aAKuPXAzknMk,4632
75
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py,sha256=h8LANc1wOj5wDzyFYhsn_defoJL7EjIcw5U_dYdjsuM,15794
76
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py,sha256=G4rfMSAttEtxos2ZgVJ0j4a2kqMeKrc1D1FaqYT4vzw,29588
77
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py,sha256=Ofo4pU9dO57UceejBPsTzPDRMR5XkiLqpTiNevDtkCU,47432
74
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py,sha256=r_YrQLgG29D4CtBNCBEKZLFp7x-pKrqJu6EyuvDsUl4,15903
75
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py,sha256=XzhbQ0J5yPQPfLNyH7lAC_oWTjR4ITKYqmLNzNJ99P0,29903
76
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py,sha256=oDlFnp8oBuU1sd40IG5opLJM5qcuwTE3yjb2rUFQyo4,53920
78
77
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_default_state_serialization.py,sha256=3GloR_5CwBYIpIkRNqJ6-AvwXe9acwyjU-xz1yN-Xws,8693
79
78
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py,sha256=8WnzAu4HceKcIcp-Tdnrkdwq9zC6an5-92khTxNm1uk,5978
80
79
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_generic_node_serialization.py,sha256=jSUfw4iSfyu9-Yift1Lb_oBDC1WnD7FwSPnNzPyQlOI,5632
81
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py,sha256=1dLkx5e-rhRQ6Ap0lma4sA_ZGByQW1W9BUwPhvsazjc,7357
80
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py,sha256=9GaiCJT__hlO01ORjJ8y6zZa_cNsTR0-5SEOkN-jWzk,7462
82
81
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_prompt_node_serialization.py,sha256=8NiFJLd9vVK8MheYs7TJ3PqYDmtWVXrUNz40E33Y4gA,659
83
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py,sha256=xS7gjdp_ABfXYU89qz6B_i94cKiDivDm2DlQdWgZhQc,20477
84
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=EDWp_yXZ67IFv5KMCR7Zzvs7rQ456NtPCR-cdCWwqeQ,16036
85
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py,sha256=aWxEPd6Xsorm36ILyJWMh7UO-bMwYgRc6BciqyYto64,8321
86
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py,sha256=G8qjDAKO_-OGEg8dSqs4hp1Pf67RCy7MnecLbZYnsuU,8585
87
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py,sha256=gvtlKvMK7U9P6P_sc1nTVcMbDEwaDqBjCxqpsh7tV-U,12919
88
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py,sha256=E9UaEdNDG6baHVxg0v7kYHLxiJNVMzPCbVbt4gXBhFw,11194
89
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py,sha256=8J-KdCUiC8AgzbRQgT_1t_eWrMOaPSgK3XQfXV_hiE0,7690
90
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py,sha256=2MIf-929wze_gDoYSTwZVT74tBi09m2MihtX-EcxFRg,3956
82
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py,sha256=MCzk2k0jRmbpdKa5ZBid6TYNWbiph9haoY7O_m4rMdA,20586
83
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=_Buk1kTvaOnVWYoC3V7ScuQeLq1_WRAV4wUQzkmbsMQ,16145
84
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py,sha256=p1nkn67kqrp92-27x4BtWAqA-Xpxqo0UU1fI3y1kdR8,8430
85
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py,sha256=mFhF0FFwf3j5wQn25O4EGNl8Akcc2YkkKZstw8nii8c,8690
86
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py,sha256=lFqT2y8szukLNqeZBbR2XxmF2zmzYNlTSdfebQaUj6Q,13024
87
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py,sha256=nU87rbidKEe9NVlTVTxMBvcxtrzKIbmunPzqZH_uf6w,11299
88
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py,sha256=UmnNqIKgwKlJjniBnE9nZ_0Z4AsYIRx6BeOviI6Ucc4,7799
89
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py,sha256=Svtg3nRSbLfbw4VhI_G44zjhoLWLIsDQr9CB5OP9Jws,3956
91
90
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py,sha256=NIq7pa8EBR0ZmhTc3k_akwGuOKih8mwurkyIbc0dNTg,2857
92
- vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256=DsWHUyh_GfCvFShbBh7GQnjq5j5NlMc1q_VubE5NikY,7530
91
+ vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256=-okQGpxcPGd2TbY55aul6cXoTcqZklee-MrM1qztv1E,7530
93
92
  vellum_ee/workflows/display/types.py,sha256=NKtEGFhvgz1i_oAayXFIS06QZautixnS3id5DckCIjg,2637
94
93
  vellum_ee/workflows/display/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
95
94
  vellum_ee/workflows/display/utils/exceptions.py,sha256=LSwwxCYNxFkf5XMUcFkaZKpQ13OSrI7y_bpEUwbKVk0,169
@@ -98,7 +97,7 @@ vellum_ee/workflows/display/utils/registry.py,sha256=fWIm5Jj-10gNFjgn34iBu4RWv3V
98
97
  vellum_ee/workflows/display/utils/vellum.py,sha256=VSWB3RA3RWQwQ7nMsU9gLfgpX3_BK9ARBIT36i52r9k,9478
99
98
  vellum_ee/workflows/display/vellum.py,sha256=o7mq_vk2Yapu9DDKRz5l76h8EmCAypWGQYe6pryrbB8,3576
100
99
  vellum_ee/workflows/display/workflows/__init__.py,sha256=kapXsC67VJcgSuiBMa86FdePG5A9kMB5Pi4Uy1O2ob4,207
101
- vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=L91EOajiV3CkaMTwC98QYJpqno-JhUOo_8FYGjT8xFM,32501
100
+ vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=qjdATqHawQ1IWkyQ3aRlQQAFixNsS-X4ewpmKSnSwvI,32001
102
101
  vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py,sha256=s6yMO0RxoM8scmfT8TJ-9cwl-WHFe7JSyEJA0alCeEs,1913
103
102
  vellum_ee/workflows/display/workflows/tests/test_workflow_display.py,sha256=uWBMmd_2BlDpymGoo5FB2LBeFQKHmPWJAPvSPZHk94o,11869
104
103
  vellum_ee/workflows/display/workflows/vellum_workflow_display.py,sha256=aaKdmWrgEe5YyV4zuDY_4E3y-l59rIHQnNGiPj2OWxQ,359
@@ -126,12 +125,12 @@ vellum_ee/workflows/tests/local_workflow/workflow.py,sha256=A4qOzOPNwePYxWbcAgIP
126
125
  vellum_ee/workflows/tests/test_display_meta.py,sha256=C25dErwghPNXio49pvSRxyOuc96srH6eYEwTAWdE2zY,2258
127
126
  vellum_ee/workflows/tests/test_server.py,sha256=SsOkS6sGO7uGC4mxvk4iv8AtcXs058P9hgFHzTWmpII,14519
128
127
  vellum_ee/workflows/tests/test_virtual_files.py,sha256=TJEcMR0v2S8CkloXNmCHA0QW0K6pYNGaIjraJz7sFvY,2762
129
- vellum/__init__.py,sha256=Zq_5b5TBLmrMg94dokW3dU3ER_nhjPZQ5gP3HI6X9bE,41778
128
+ vellum/__init__.py,sha256=dGOb8Oe4E3jff14Y51TevTM2wx5z4C0nPCBrxW2E-Yg,41708
130
129
  vellum/client/README.md,sha256=JkCJjmMZl4jrPj46pkmL9dpK4gSzQQmP5I7z4aME4LY,4749
131
130
  vellum/client/__init__.py,sha256=Z-JHK2jGxhtTtmkLeOaUGGJWIUNYGNVBLvUewC6lp6w,118148
132
131
  vellum/client/core/__init__.py,sha256=SQ85PF84B9MuKnBwHNHWemSGuy-g_515gFYNFhvEE0I,1438
133
132
  vellum/client/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
134
- vellum/client/core/client_wrapper.py,sha256=7bH2-p6hYzfsAz1ScP5muSnO-bbtUPUj3dQ911oa66I,1869
133
+ vellum/client/core/client_wrapper.py,sha256=HDYrFzioATPcqeXlA9AJXpStw-Rw1q_cI0rzgpCOpNU,1869
135
134
  vellum/client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
136
135
  vellum/client/core/file.py,sha256=X9IbmkZmB2bB_DpmZAO3crWdXagOakAyn6UCOCImCPg,2322
137
136
  vellum/client/core/http_client.py,sha256=R0pQpCppnEtxccGvXl4uJ76s7ro_65Fo_erlNNLp_AI,19228
@@ -147,14 +146,14 @@ vellum/client/errors/bad_request_error.py,sha256=_EbO8mWqN9kFZPvIap8qa1lL_EWkRcs
147
146
  vellum/client/errors/forbidden_error.py,sha256=QO1kKlhClAPES6zsEK7g9pglWnxn3KWaOCAawWOg6Aw,263
148
147
  vellum/client/errors/internal_server_error.py,sha256=8USCagXyJJ1MOm9snpcXIUt6eNXvrd_aq7Gfcu1vlOI,268
149
148
  vellum/client/errors/not_found_error.py,sha256=tBVCeBC8n3C811WHRj_n-hs3h8MqwR5gp0vLiobk7W8,262
150
- vellum/client/reference.md,sha256=iTxdizCeS4bP5BFv_sR6BUI0gzHA8cMkA9KHpQq0ZD4,88081
149
+ vellum/client/reference.md,sha256=D7qqNgorznQIlZHVqW6UMjTmPSI2zSF2QuMx5KFn4F4,89585
151
150
  vellum/client/resources/__init__.py,sha256=XgQao4rJxyYu71j64RFIsshz4op9GE8-i-C5GCv-KVE,1555
152
151
  vellum/client/resources/ad_hoc/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
153
- vellum/client/resources/ad_hoc/client.py,sha256=_liorv4AsoJ55kVu0a5oWB3Qeff0iUKXqoHEIyDWLxc,14173
152
+ vellum/client/resources/ad_hoc/client.py,sha256=93FXK-Wpvh72G8ji2__2Dmc5OYl9G5GRHiknyGIjeX4,25557
154
153
  vellum/client/resources/container_images/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
155
154
  vellum/client/resources/container_images/client.py,sha256=g8X3IkWFj43-sJMvirjDrh1-yjOFYV2C9xsGC20Xfjo,15003
156
155
  vellum/client/resources/deployments/__init__.py,sha256=m64MNuPx3qVazOnTNwOY8oEeDrAkNwMJvUEe5xoMDvs,239
157
- vellum/client/resources/deployments/client.py,sha256=ssXaHJXBxO_I8JLuijusDVWwsfYadTw3j7o41ICYtrY,38777
156
+ vellum/client/resources/deployments/client.py,sha256=_sK5DgxGTksPDDWONoOrNHpYcNyk6YuoFuwE9CKQm70,38745
158
157
  vellum/client/resources/deployments/types/__init__.py,sha256=29GVdoLOJsADSSSqZwb6CQPeEmPjkKrbsWfru1bemj8,321
159
158
  vellum/client/resources/deployments/types/deployments_list_request_status.py,sha256=CxlQD16KZXme7x31YYCe_3aAgEueutDTeJo5A4Au-aU,174
160
159
  vellum/client/resources/deployments/types/list_deployment_release_tags_request_source.py,sha256=hRGgWMYZL9uKCmD_2dU8-u9RCPUUGItpNn1tUY-NXKY,180
@@ -163,7 +162,7 @@ vellum/client/resources/document_indexes/client.py,sha256=UcznU0NyvdNBpV4UCsTqG3
163
162
  vellum/client/resources/document_indexes/types/__init__.py,sha256=IoFqKHN_VBdEhC7VL8_6Jbatrn0e0zuYEJAJUahcUR0,196
164
163
  vellum/client/resources/document_indexes/types/document_indexes_list_request_status.py,sha256=sfUEB0cvOSmlE2iITqnMVyHv05Zy2fWP4QjCIYqMg0M,178
165
164
  vellum/client/resources/documents/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
166
- vellum/client/resources/documents/client.py,sha256=DOiZ0i0iuGxPWTxDZsd8kndZPMB4GslHvyj1gBkrTIc,26048
165
+ vellum/client/resources/documents/client.py,sha256=AQlQi70dJwMKV8M9gjbSLQNZf8Jtb5c2z5lI4EsaVMM,25730
167
166
  vellum/client/resources/folder_entities/__init__.py,sha256=QOp7UMMB3a32GrfVaud35ECn4fqPBKXxCyClsDgd6GE,175
168
167
  vellum/client/resources/folder_entities/client.py,sha256=xkT6D1TwPxvf1eXgDhRpKg7_O2V78jwBsIGyJgnI5SY,11110
169
168
  vellum/client/resources/folder_entities/types/__init__.py,sha256=cHabrupjC-HL3kj-UZ9WdVzqHoQHCu6QsLFB3wlOs7k,212
@@ -199,7 +198,7 @@ vellum/client/resources/workspace_secrets/__init__.py,sha256=FTtvy8EDg9nNNg9WCat
199
198
  vellum/client/resources/workspace_secrets/client.py,sha256=h7UzXLyTttPq1t-JZGMg1BWxypxJvBGUdqg7KGT7MK4,8027
200
199
  vellum/client/resources/workspaces/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
201
200
  vellum/client/resources/workspaces/client.py,sha256=RthwzN1o-Jxwg5yyNNodavFyNUSxfLoTv26w3mRR5g8,3595
202
- vellum/client/types/__init__.py,sha256=jsEadfdJtvzb8rRVGPamSTE4n2-S3vA598lR3nw6mfE,63253
201
+ vellum/client/types/__init__.py,sha256=JanJFC8Ha3zl3jT4kZgUzIbj2oo4AY1sONJH1nM7r_o,63143
203
202
  vellum/client/types/ad_hoc_execute_prompt_event.py,sha256=bCjujA2XsOgyF3bRZbcEqV2rOIymRgsLoIRtZpB14xg,607
204
203
  vellum/client/types/ad_hoc_expand_meta.py,sha256=1gv-NCsy_6xBYupLvZH979yf2VMdxAU-l0y0ynMKZaw,1331
205
204
  vellum/client/types/ad_hoc_fulfilled_prompt_execution_meta.py,sha256=oDG60TpwK1YNSKhRsBbiP2O3ZF9PKR-M9chGIfKw4R4,1004
@@ -300,7 +299,8 @@ vellum/client/types/error_vellum_value_request.py,sha256=o0aSn34dRcpnAwAfwW_sgwP
300
299
  vellum/client/types/execute_api_request_bearer_token.py,sha256=agAhp9lzfzZcYGZdzg2jHAEHCaHlqzbgp6qeeNebcto,183
301
300
  vellum/client/types/execute_api_request_body.py,sha256=MArsO_-H41lU8Lz0dB78MVcFupjWtRV7UBEljY3Dnwk,169
302
301
  vellum/client/types/execute_api_request_headers_value.py,sha256=bHtGwOpknQDcQo6qtMKqJxaYpvbinDfwx2uaPzyuZ9s,184
303
- vellum/client/types/execute_api_response.py,sha256=1_wGY1eIF6Drwx5FEwnwBRLUxonXX7dOjhkvQakE-bw,842
302
+ vellum/client/types/execute_api_response.py,sha256=TBBLTgllRBiIq4moOVylUqwmk7kpVqGlPV5y5iquq2g,843
303
+ vellum/client/types/execute_api_response_json.py,sha256=80J1Du-JQGlVXIEECClC-IMYhTpcSTMtlYP_2Pq64kA,213
304
304
  vellum/client/types/execute_prompt_event.py,sha256=wq_TZBDJcmXQhSj25jR9nMTnN-mP8Ku5Vq3rLqmwE5Q,521
305
305
  vellum/client/types/execute_prompt_response.py,sha256=n6ODveXcO8uWG-kr_B9wXziHH8JUaVTUcUAZKifClEo,334
306
306
  vellum/client/types/execute_workflow_response.py,sha256=0Q-NGPv5jpxjq6xNlHa3qUNK7yOmkU8h6Z2vQb6bHsU,1022
@@ -425,7 +425,6 @@ vellum/client/types/named_test_case_string_variable_value_request.py,sha256=Bv7L
425
425
  vellum/client/types/named_test_case_variable_value.py,sha256=R_O3nh15km-yGxg2ZybT9wmSxElROBO84Wg_29sCC8o,1146
426
426
  vellum/client/types/named_test_case_variable_value_request.py,sha256=P3qWYQynb1rR9ohB628krxu-EUY2fkf290g5BeGowFU,1329
427
427
  vellum/client/types/new_member_join_behavior_enum.py,sha256=s9Z_6JKM6R4gPNtIJYCe84_DNBHucj6dHOx6bdFPoLo,258
428
- vellum/client/types/node_event_display_context.py,sha256=5pAeD9kbSqUYYVz-v67-n8LhKsXRVUnjH19HIimJs-Y,1079
429
428
  vellum/client/types/node_execution_fulfilled_body.py,sha256=lK9XgCT0d94DByMfMyMdBaLa2CvxLQ10f71y6hBic5c,885
430
429
  vellum/client/types/node_execution_fulfilled_event.py,sha256=U0k343TyZXztihM1oLH63yQdWo5P_Nk7jcHkDMTu7JU,2332
431
430
  vellum/client/types/node_execution_initiated_body.py,sha256=SFHnxmbHC_NWDyIjIkT8JPuTsaRpYIywQsTDUReqvkQ,737
@@ -510,7 +509,7 @@ vellum/client/types/prompt_request_chat_history_input.py,sha256=DB2io5piMSyA89f5
510
509
  vellum/client/types/prompt_request_input.py,sha256=brEdYhYm74Ac8XjK9wF0rKOLgnqd_Cg19yMS7VfB4qQ,400
511
510
  vellum/client/types/prompt_request_json_input.py,sha256=vLhwvCWL_yjVfDzT4921xK4Ql92OkvG-ruvOC_uppFI,739
512
511
  vellum/client/types/prompt_request_string_input.py,sha256=8GSFhtN3HeYssbDRY7B5SCh5Qrp67340D9c3oINpCmw,714
513
- vellum/client/types/prompt_settings.py,sha256=lSQeNofj9EzOncr81hGRE2ZBhgRCqDYMT5e3a66PuqA,586
512
+ vellum/client/types/prompt_settings.py,sha256=gITevU-SWiStXFKLfpwG5dQJ-bic5CxnM0OHsT9KR0s,635
514
513
  vellum/client/types/raw_prompt_execution_overrides_request.py,sha256=x4Chkm_NxXySOEyA6s6J_mhhiM91KCcQbu6pQETB8RI,927
515
514
  vellum/client/types/reducto_chunker_config.py,sha256=by_Dj0hZPkLQAf7l1KAudRB8X2XnlfHiRTsyiR-DTRY,654
516
515
  vellum/client/types/reducto_chunker_config_request.py,sha256=RnulU2a_PUtvRE2qhARQhsCkWI--K_MYkobzLNRGEz4,661
@@ -714,9 +713,8 @@ vellum/client/types/workflow_deployment_release.py,sha256=1OveujSLRID7B6aGGjqsN5
714
713
  vellum/client/types/workflow_deployment_release_workflow_deployment.py,sha256=irWt901SImKChLayz7_52C1W7JldKiQHweqkjuMUoNQ,586
715
714
  vellum/client/types/workflow_deployment_release_workflow_version.py,sha256=NP3FoxLpgMUIK1OAPf_ei58mxE9F7BLAuw7q55CIcT8,989
716
715
  vellum/client/types/workflow_error.py,sha256=EQajkEmLS64T0wYm0goHQl0rT7Lguurk8pLwkhjsgAI,282
717
- vellum/client/types/workflow_event_display_context.py,sha256=tnO9lgIJKnLtuS6xum_QilI83LjOmnWCLtnSHLn1oNo,929
718
716
  vellum/client/types/workflow_event_error.py,sha256=HIewu_kh3KNPpWegAQArvAGHCp-cBIXqlUAAc_dBZhc,687
719
- vellum/client/types/workflow_event_execution_read.py,sha256=Vrv2CmYWoIDbSkV1XGJWm04Ef6u_A85bJLSfWRmhPFc,3264
717
+ vellum/client/types/workflow_event_execution_read.py,sha256=bHmTaJxYOazNbDHaY7BeX8LgI2IHyfN38h_dtMCMJdM,2924
720
718
  vellum/client/types/workflow_execution_actual.py,sha256=8-eGI91UTAw2g3EpSC-axH_OiIu3iKrm2ep5AkjoO2E,1025
721
719
  vellum/client/types/workflow_execution_actual_chat_history_request.py,sha256=L6U8tgM7SiU4qGJMZChFzj6HfHgO-YAlTXfbT7ZIaE4,1993
722
720
  vellum/client/types/workflow_execution_actual_json_request.py,sha256=5QYaPCSOwFnjH_kTrB2bTznTMFExSZdBhTkmelf1h4Q,1931
@@ -725,8 +723,8 @@ vellum/client/types/workflow_execution_event_error_code.py,sha256=QzRLZ0dteptDmt
725
723
  vellum/client/types/workflow_execution_event_type.py,sha256=ESKqV3ItoAlqBooruf-i0AnmEh_GvCySZ0Co3r9Bvt0,170
726
724
  vellum/client/types/workflow_execution_fulfilled_body.py,sha256=4M9fQdJy7nH5Y1HLq9VVlfTNW4F9jlj4k5SWty9fFqQ,746
727
725
  vellum/client/types/workflow_execution_fulfilled_event.py,sha256=ud3jxSpoo3D85vyEewsf4Eqv1AdBfwclOGmJu9lfOv8,2412
728
- vellum/client/types/workflow_execution_initiated_body.py,sha256=KJQotYHEYD-_eiG2RAvZaxs4SetrFUtj6rDRh0pkaqQ,1269
729
- vellum/client/types/workflow_execution_initiated_event.py,sha256=omvKr64bAXDE7u9dACOj95h6hcEGKrs1XNmLEYjUtiE,2772
726
+ vellum/client/types/workflow_execution_initiated_body.py,sha256=12ihPWA3nsLNC-RNEdhgz52l1RHH5dB6yls9vtiU9N4,745
727
+ vellum/client/types/workflow_execution_initiated_event.py,sha256=BcyYtugX__gaNCHRBSWgDvx-TR4NafVeTviYavrCGO4,2412
730
728
  vellum/client/types/workflow_execution_node_result_event.py,sha256=wJNwOPwqOl1fBim9Y1rtHiNMoWBZ2xausdSddQI5Mg8,1136
731
729
  vellum/client/types/workflow_execution_paused_body.py,sha256=35Q7Bs671cjHKJfQT0reZ7bsuKG3oaiBsb_QytjIWUU,805
732
730
  vellum/client/types/workflow_execution_paused_event.py,sha256=LmXJZaE5pfMRjtrdVmxbH92SUrhogMmiHrmLgfkQ9Tc,2352
@@ -736,7 +734,7 @@ vellum/client/types/workflow_execution_resumed_body.py,sha256=j8lwN0Bj3A3J4G9Nr2
736
734
  vellum/client/types/workflow_execution_resumed_event.py,sha256=AFT6sH2AlsLT_uS4h_h7eF7tTI1kydPO-HDNkljzAoU,2372
737
735
  vellum/client/types/workflow_execution_snapshotted_body.py,sha256=TByTfAwY20jS7tItCDl-4KAKCmvpycNN22pjJGoBFc4,746
738
736
  vellum/client/types/workflow_execution_snapshotted_event.py,sha256=IwTW-1_iZuNOxTg_scppEMaxcW4zTGjsOGAejb858hA,2458
739
- vellum/client/types/workflow_execution_span.py,sha256=n6NuDcQpjBJHOBQp8ymMjT65dm9r6TxFQjNxuui-_EI,2490
737
+ vellum/client/types/workflow_execution_span.py,sha256=b_4eOBLF_vzEPvYxAqANjaL6FXdlj06D1r11EIJOkes,2170
740
738
  vellum/client/types/workflow_execution_span_attributes.py,sha256=SRW7mD-6uS8eA57EU6q2thBqSFfJSH4tXI9H3szZwYQ,575
741
739
  vellum/client/types/workflow_execution_streaming_body.py,sha256=phni9pJKkFGsQ5IcS4ogtG1EjBzpdBiYpN9CPbkjxH8,746
742
740
  vellum/client/types/workflow_execution_streaming_event.py,sha256=7kqgPJvfFmO3ZLMsvWCfID9ZnDXks09rwM_-2JnY4dc,2412
@@ -975,6 +973,7 @@ vellum/types/execute_api_request_bearer_token.py,sha256=Xu9SNdqkvilFOWuHnrA688bi
975
973
  vellum/types/execute_api_request_body.py,sha256=ulfvgCNEXbzdnuwyRu2qMM93zIZSIGgq1PlB41pFvwQ,162
976
974
  vellum/types/execute_api_request_headers_value.py,sha256=lAMglvqWdhpku8kfrNGYbA6QomWunvNS9xZ92sxnIEM,171
977
975
  vellum/types/execute_api_response.py,sha256=NNFaOCwse1BGtN6XBTG1h9cU7Iy3ErdIrbgK_pQbs6c,158
976
+ vellum/types/execute_api_response_json.py,sha256=VCv9S0wcDCM95zboGKhyOr1lPhEhlQGYiQ_uhhfsGAE,163
978
977
  vellum/types/execute_prompt_event.py,sha256=zLtvzIZijE-L7Nc3jNmvbu9UkKwjEILOs9RjHWYe7qs,158
979
978
  vellum/types/execute_prompt_response.py,sha256=pSfHv_pQjYAudCsMDfsHdAXM0H-5MLAwdVv1145up2A,161
980
979
  vellum/types/execute_workflow_response.py,sha256=zDo_qlLq83gciC7VL-O2C9vw0n4_15eE9iNCcOqUQxA,163
@@ -1099,7 +1098,6 @@ vellum/types/named_test_case_string_variable_value_request.py,sha256=yMc4MHFYQxp
1099
1098
  vellum/types/named_test_case_variable_value.py,sha256=IQUDNPYT5IDTaAE85Ux-IZOCfPXhkX6Q6THSYwuKDDM,168
1100
1099
  vellum/types/named_test_case_variable_value_request.py,sha256=6F5TyadMY5Syh0DlRjnQ2nHW5fzWR7WecKMqswF9Xl4,176
1101
1100
  vellum/types/new_member_join_behavior_enum.py,sha256=sXTcMrRvSzdLnDRrwQSeHdvZHwjDTW7ciHCX2SgGaVc,167
1102
- vellum/types/node_event_display_context.py,sha256=6iO7mhcl3I_jmmIKz0-lk3oLgc5QkgA01-UJwDrbdWo,164
1103
1101
  vellum/types/node_execution_fulfilled_body.py,sha256=5q7mgPXXOJfg4MkEAwitpCmg7pRMJav3nkULeJtS9i8,167
1104
1102
  vellum/types/node_execution_fulfilled_event.py,sha256=jtCNpRkOaBk-RZAWFdM4_OpP7z8VYVqpEprGDF-4NPI,168
1105
1103
  vellum/types/node_execution_initiated_body.py,sha256=OWVhA7u8RZJw6YBcycDiViR8tx9BLbUCzi7DaBwhwP0,167
@@ -1388,7 +1386,6 @@ vellum/types/workflow_deployment_release.py,sha256=lBnOc5Tw2-jLGWmthzkwdaLGvylcD
1388
1386
  vellum/types/workflow_deployment_release_workflow_deployment.py,sha256=8qT32r--NyJppqBizD9QP6jvM5YdcsdpGEtaKMG1RbE,185
1389
1387
  vellum/types/workflow_deployment_release_workflow_version.py,sha256=l5SJrY9z3lG5K82V2wY2sY50V40CQWKl95nDjnHu4Dc,182
1390
1388
  vellum/types/workflow_error.py,sha256=7rZcYJG5jYr4IbEvgv57G6Lxutrdg43SD8mUerd58_A,152
1391
- vellum/types/workflow_event_display_context.py,sha256=jiH4vHlWYdT_2zM8yxPox3fXjnFStzIO46N90B2TdNA,168
1392
1389
  vellum/types/workflow_event_error.py,sha256=n8yzIuTmfxKyGBKellmMhnCgi1d4fPkr0MvjR3sKOAI,158
1393
1390
  vellum/types/workflow_event_execution_read.py,sha256=5bZ6gkNfWuxWOuzvSPNA4QrVEdP8uGZPGN2ZpMgYBMg,167
1394
1391
  vellum/types/workflow_execution_actual.py,sha256=IrOLWopZHTwqNStG7u0xuo1OhHhD1SHz-1aXZiuJlfY,163
@@ -1531,14 +1528,14 @@ vellum/workflows/graph/graph.py,sha256=GGR8cGpSuNWPIiTWNWsj6l70upb5nIxAyFcn7VdaJ
1531
1528
  vellum/workflows/graph/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1532
1529
  vellum/workflows/graph/tests/test_graph.py,sha256=q0wxLvPPxc-6en4a_XuAZwVfLURMd9Ikvoreq4bpJ9s,11839
1533
1530
  vellum/workflows/inputs/__init__.py,sha256=AbFEteIYEvCb14fM3EK7bhM-40-6s494rSlIhQ4Dsss,62
1534
- vellum/workflows/inputs/base.py,sha256=n5jqDpIEl-jf7z3ohwSUtIq2YfHH-GJ9Qn8KZzzMxIM,4019
1531
+ vellum/workflows/inputs/base.py,sha256=w3owT5B3rLBmIj-v-jL2l-HD4yd3hXK9RmHVd557BpA,5126
1535
1532
  vellum/workflows/inputs/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1536
- vellum/workflows/inputs/tests/test_inputs.py,sha256=g--YqWTNWzMk5Ktoj__gq988kvBReefc2tsyUl6H2kg,1775
1533
+ vellum/workflows/inputs/tests/test_inputs.py,sha256=lioA8917mFLYq7Ml69UNkqUjcWbbxkxnpIEJ4FBaYBk,2206
1537
1534
  vellum/workflows/logging.py,sha256=_a217XogktV4Ncz6xKFz7WfYmZAzkfVRVuC0rWob8ls,437
1538
1535
  vellum/workflows/nodes/__init__.py,sha256=aVdQVv7Y3Ro3JlqXGpxwaU2zrI06plDHD2aumH5WUIs,1157
1539
1536
  vellum/workflows/nodes/bases/__init__.py,sha256=cniHuz_RXdJ4TQgD8CBzoiKDiPxg62ErdVpCbWICX64,58
1540
1537
  vellum/workflows/nodes/bases/base.py,sha256=eW-3RSkBgtuGY8x2nmbHYiUg_HXS5U57n3k6Fh-dJ9s,15330
1541
- vellum/workflows/nodes/bases/base_adornment_node.py,sha256=afMwJLHK2Ke7sBpceVLnNdZMlU2O-6UgyG7lBt9SAQ8,3039
1538
+ vellum/workflows/nodes/bases/base_adornment_node.py,sha256=Ao2opOW4kgNoYXFF9Pk7IMpVZdy6luwrjcqEwU5Q9V0,3404
1542
1539
  vellum/workflows/nodes/bases/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1543
1540
  vellum/workflows/nodes/bases/tests/test_base_node.py,sha256=6J85q-vtfG-NHzCndMKLk5_sEEDiI52sTGaxefcUCOU,7892
1544
1541
  vellum/workflows/nodes/core/__init__.py,sha256=5zDMCmyt1v0HTJzlUBwq3U9L825yZGZhT9JL18-mRR4,455
@@ -1549,11 +1546,11 @@ vellum/workflows/nodes/core/inline_subworkflow_node/node.py,sha256=rgcjc3gaCEX9u
1549
1546
  vellum/workflows/nodes/core/inline_subworkflow_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1550
1547
  vellum/workflows/nodes/core/inline_subworkflow_node/tests/test_node.py,sha256=kUqwcRMMxjTHALbwGUXCJT_aJBrHS1bkg49oL8R0JO8,4337
1551
1548
  vellum/workflows/nodes/core/map_node/__init__.py,sha256=MXpZYmGfhsMJHqqlpd64WiJRtbAtAMQz-_3fCU_cLV0,56
1552
- vellum/workflows/nodes/core/map_node/node.py,sha256=RER4mLOXSe1BSpjEYCoJq83ZeydQ5Q5uKCZAsqhlOW8,9227
1549
+ vellum/workflows/nodes/core/map_node/node.py,sha256=bmI48fv-UAmS14ZVV4VWrIUIYFytYGIVM6Gm7yFz8pM,9288
1553
1550
  vellum/workflows/nodes/core/map_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1554
- vellum/workflows/nodes/core/map_node/tests/test_node.py,sha256=uMR0AyIFn539LqTKHdwuBswnx1i-PHyqPpgtYrnmYMY,3496
1551
+ vellum/workflows/nodes/core/map_node/tests/test_node.py,sha256=A_M4WfdThNO5FdB7nyCyyVQBEeJWQaxmIDvvSrtO96A,5324
1555
1552
  vellum/workflows/nodes/core/retry_node/__init__.py,sha256=lN2bIy5a3Uzhs_FYCrooADyYU6ZGShtvLKFWpelwPvo,60
1556
- vellum/workflows/nodes/core/retry_node/node.py,sha256=at7RjwUmlBeUv-tHvqeOhCAxkyuSw47ySmIQKC0fJf8,5245
1553
+ vellum/workflows/nodes/core/retry_node/node.py,sha256=abtGvinLfi1tKqYIsWQKZtBUisF2Qw2yT1YoPw9cVk4,5297
1557
1554
  vellum/workflows/nodes/core/retry_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1558
1555
  vellum/workflows/nodes/core/retry_node/tests/test_node.py,sha256=RM_OHwxrHwyxvlQQBJPqVBxpedFuWQ9h2-Xa3kP75sc,4399
1559
1556
  vellum/workflows/nodes/core/templating_node/__init__.py,sha256=GmyuYo81_A1_Bz6id69ozVFS6FKiuDsZTiA3I6MaL2U,70
@@ -1632,13 +1629,13 @@ vellum/workflows/nodes/experimental/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQ
1632
1629
  vellum/workflows/nodes/experimental/openai_chat_completion_node/__init__.py,sha256=lsyD9laR9p7kx5-BXGH2gUTM242UhKy8SMV0SR6S2iE,90
1633
1630
  vellum/workflows/nodes/experimental/openai_chat_completion_node/node.py,sha256=cKI2Ls25L-JVt4z4a2ozQa-YBeVy21Z7BQ32Sj7iBPE,10460
1634
1631
  vellum/workflows/nodes/experimental/tool_calling_node/__init__.py,sha256=S7OzT3I4cyOU5Beoz87nPwCejCMP2FsHBFL8OcVmxJ4,118
1635
- vellum/workflows/nodes/experimental/tool_calling_node/node.py,sha256=z1hi13Ssya59LL5_hP5UI1qGH_RjUilStxCRLnnxpMI,6064
1636
- vellum/workflows/nodes/experimental/tool_calling_node/utils.py,sha256=oK0y3dAupNOzpdTpjcDPxDFtuDfcQeMpD_QcyKD0lTE,4888
1632
+ vellum/workflows/nodes/experimental/tool_calling_node/node.py,sha256=w73v2pfpqFaTOYbtHkH7nFuGgqQebLO6dr_Mxn1n7Dc,4848
1633
+ vellum/workflows/nodes/experimental/tool_calling_node/utils.py,sha256=hwJ1GjoNOEWoCdT1R0b6gVRAAGWGTUlKutTgBF7GRP4,4664
1637
1634
  vellum/workflows/nodes/mocks.py,sha256=a1FjWEIocseMfjzM-i8DNozpUsaW0IONRpZmXBoWlyc,10455
1638
1635
  vellum/workflows/nodes/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1639
1636
  vellum/workflows/nodes/tests/test_mocks.py,sha256=mfPvrs75PKcsNsbJLQAN6PDFoVqs9TmQxpdyFKDdO60,7837
1640
1637
  vellum/workflows/nodes/tests/test_utils.py,sha256=qNB6ApIsnFtE_9HDaEah9KD-zX8e10FhDixewS1uRcc,5199
1641
- vellum/workflows/nodes/utils.py,sha256=wVn68jhAQ9ev9LV3c0XEH276CiqcY9-fVgUFY_K9izQ,8409
1638
+ vellum/workflows/nodes/utils.py,sha256=ziHJc5uU4foxIvacl0Vg7fEJJ0jiznqqhyvURVj0FsY,9005
1642
1639
  vellum/workflows/outputs/__init__.py,sha256=AyZ4pRh_ACQIGvkf0byJO46EDnSix1ZCAXfvh-ms1QE,94
1643
1640
  vellum/workflows/outputs/base.py,sha256=1OGHqBJVk7i8cW8uewFWOhIjuMlRRpzCDrGE30ZwDjw,8763
1644
1641
  vellum/workflows/ports/__init__.py,sha256=bZuMt-R7z5bKwpu4uPW7LlJeePOQWmCcDSXe5frUY5g,101
@@ -1657,11 +1654,11 @@ vellum/workflows/references/output.py,sha256=QWrqLGpeo6mFxC_fKmL3LHIfrcDD9SzOhQd
1657
1654
  vellum/workflows/references/state_value.py,sha256=bInUF0A3Pt4-zhA0f6LdSuyv8tz7n5QRkHAEn4gsmqI,711
1658
1655
  vellum/workflows/references/tests/test_lazy.py,sha256=0s50-LizMTlSTBQahpK0fg_xqCucA8YTp6QmIMqPvMk,919
1659
1656
  vellum/workflows/references/vellum_secret.py,sha256=Od4d19a5yletWMqNfJR5d_mZQUkVcFzj29mE-T9J7yE,480
1660
- vellum/workflows/references/workflow_input.py,sha256=lq7BiiLBHQNP-vP2p1TN2QBq0_LY5fFQoFkUr9sd32U,1495
1657
+ vellum/workflows/references/workflow_input.py,sha256=W3rOK1EPd2gYHb04WJwmNm1CUSdvZ9LKrs8RMKxACBs,1751
1661
1658
  vellum/workflows/resolvers/__init__.py,sha256=eH6hTvZO4IciDaf_cf7aM2vs-DkBDyJPycOQevJxQnI,82
1662
1659
  vellum/workflows/resolvers/base.py,sha256=WHra9LRtlTuB1jmuNqkfVE2JUgB61Cyntn8f0b0WZg4,411
1663
1660
  vellum/workflows/runner/__init__.py,sha256=i1iG5sAhtpdsrlvwgH6B-m49JsINkiWyPWs8vyT-bqM,72
1664
- vellum/workflows/runner/runner.py,sha256=1ozidWAFecR7nfpj_Uw33SBGJVZY54JyU0AA3wySqaA,32826
1661
+ vellum/workflows/runner/runner.py,sha256=BOFqcxvK2oktJmcEIdHBaSanZtWcaqJq06s9aLQFaZw,33000
1665
1662
  vellum/workflows/sandbox.py,sha256=GVJzVjMuYzOBnSrboB0_6MMRZWBluAyQ2o7syeaeBd0,2235
1666
1663
  vellum/workflows/state/__init__.py,sha256=yUUdR-_Vl7UiixNDYQZ-GEM_kJI9dnOia75TtuNEsnE,60
1667
1664
  vellum/workflows/state/base.py,sha256=ZXDmVafs6sExcbx1azrZjEGQsmuY68mSRWfI7t2PT4c,22330
@@ -1693,13 +1690,13 @@ vellum/workflows/utils/uuids.py,sha256=DFzPv9RCvsKhvdTEIQyfSek2A31D6S_QcmeLPbgrg
1693
1690
  vellum/workflows/utils/vellum_variables.py,sha256=UiGlUh0a8vel2FbW3w-xbHxSv_jNutkDdqMVtP_b42A,3385
1694
1691
  vellum/workflows/vellum_client.py,sha256=GxOy3dX6A04xiY69vPv1S4YGuQ_TMxwHi6WRMimQBBE,762
1695
1692
  vellum/workflows/workflows/__init__.py,sha256=KY45TqvavCCvXIkyCFMEc0dc6jTMOUci93U2DUrlZYc,66
1696
- vellum/workflows/workflows/base.py,sha256=j9o6eXueXEwsueNMlZwYP4HhZPQjMgXIgHcRqWHNaDI,23584
1693
+ vellum/workflows/workflows/base.py,sha256=9dGZzoXbVVtw19pVhmawIA1wd1iLQttAKypuVFWb0fU,23793
1697
1694
  vellum/workflows/workflows/event_filters.py,sha256=GSxIgwrX26a1Smfd-6yss2abGCnadGsrSZGa7t7LpJA,2008
1698
1695
  vellum/workflows/workflows/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1699
1696
  vellum/workflows/workflows/tests/test_base_workflow.py,sha256=8P5YIsNMO78_CR1NNK6wkEdkMB4b3Q_Ni1qxh78OnHo,20481
1700
1697
  vellum/workflows/workflows/tests/test_context.py,sha256=VJBUcyWVtMa_lE5KxdhgMu0WYNYnUQUDvTF7qm89hJ0,2333
1701
- vellum_ai-0.14.40.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
1702
- vellum_ai-0.14.40.dist-info/METADATA,sha256=yhGwwOKSMKxH_eHuWxg_zaUq6v3fWl6mDIXS0jv5acI,5484
1703
- vellum_ai-0.14.40.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1704
- vellum_ai-0.14.40.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
1705
- vellum_ai-0.14.40.dist-info/RECORD,,
1698
+ vellum_ai-0.14.42.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
1699
+ vellum_ai-0.14.42.dist-info/METADATA,sha256=J5skujRAzUMKICz1RgTzBNlCpPUYQgSpgFEuNkYCuf0,5484
1700
+ vellum_ai-0.14.42.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1701
+ vellum_ai-0.14.42.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
1702
+ vellum_ai-0.14.42.dist-info/RECORD,,
@@ -30,6 +30,7 @@ from vellum.workflows.expressions.contains import ContainsExpression
30
30
  from vellum.workflows.expressions.does_not_begin_with import DoesNotBeginWithExpression
31
31
  from vellum.workflows.expressions.does_not_contain import DoesNotContainExpression
32
32
  from vellum.workflows.expressions.does_not_end_with import DoesNotEndWithExpression
33
+ from vellum.workflows.expressions.does_not_equal import DoesNotEqualExpression
33
34
  from vellum.workflows.expressions.ends_with import EndsWithExpression
34
35
  from vellum.workflows.expressions.equals import EqualsExpression
35
36
  from vellum.workflows.expressions.greater_than import GreaterThanExpression
@@ -49,7 +50,7 @@ from vellum.workflows.expressions.or_ import OrExpression
49
50
  from vellum.workflows.expressions.parse_json import ParseJsonExpression
50
51
  from vellum.workflows.nodes.bases.base import BaseNode
51
52
  from vellum.workflows.nodes.displayable.bases.utils import primitive_to_vellum_value
52
- from vellum.workflows.nodes.utils import get_wrapped_node
53
+ from vellum.workflows.nodes.utils import get_unadorned_node, get_wrapped_node
53
54
  from vellum.workflows.ports import Port
54
55
  from vellum.workflows.references import OutputReference
55
56
  from vellum.workflows.references.constant import ConstantValueReference
@@ -64,7 +65,7 @@ from vellum.workflows.types.utils import get_original_base
64
65
  from vellum.workflows.utils.names import pascal_to_title_case
65
66
  from vellum.workflows.utils.uuids import uuid4_from_hash
66
67
  from vellum.workflows.utils.vellum_variables import primitive_type_to_vellum_variable_type
67
- from vellum_ee.workflows.display.editor.types import NodeDisplayData
68
+ from vellum_ee.workflows.display.editor.types import NodeDisplayComment, NodeDisplayData
68
69
  from vellum_ee.workflows.display.nodes.get_node_display_class import get_node_display_class
69
70
  from vellum_ee.workflows.display.nodes.types import NodeOutputDisplay, PortDisplay, PortDisplayOverrides
70
71
  from vellum_ee.workflows.display.utils.exceptions import UnsupportedSerializationException
@@ -177,29 +178,7 @@ class BaseNodeDisplay(Generic[NodeType], metaclass=BaseNodeDisplayMeta):
177
178
  existing_adornments = adornments if adornments is not None else []
178
179
  return display_class().serialize(display_context, adornments=existing_adornments + [adornment])
179
180
 
180
- ports: JsonArray = []
181
- for port in node.Ports:
182
- id = str(self.get_node_port_display(port).id)
183
-
184
- if port._condition_type:
185
- ports.append(
186
- {
187
- "id": id,
188
- "name": port.name,
189
- "type": port._condition_type.value,
190
- "expression": (
191
- self.serialize_condition(display_context, port._condition) if port._condition else None
192
- ),
193
- }
194
- )
195
- else:
196
- ports.append(
197
- {
198
- "id": id,
199
- "name": port.name,
200
- "type": "DEFAULT",
201
- }
202
- )
181
+ ports = self.serialize_ports(display_context)
203
182
 
204
183
  outputs: JsonArray = []
205
184
  for output in node.Outputs:
@@ -223,7 +202,7 @@ class BaseNodeDisplay(Generic[NodeType], metaclass=BaseNodeDisplayMeta):
223
202
  "id": str(node_id),
224
203
  "label": node.__qualname__,
225
204
  "type": "GENERIC",
226
- "display_data": self._get_generic_node_display_data().dict(),
205
+ "display_data": self.get_display_data().dict(),
227
206
  "base": self.get_base().dict(),
228
207
  "definition": self.get_definition().dict(),
229
208
  "trigger": {
@@ -236,6 +215,35 @@ class BaseNodeDisplay(Generic[NodeType], metaclass=BaseNodeDisplayMeta):
236
215
  "outputs": outputs,
237
216
  }
238
217
 
218
+ def serialize_ports(self, display_context: "WorkflowDisplayContext") -> JsonArray:
219
+ """Serialize the ports of the node."""
220
+ node = self._node
221
+ ports: JsonArray = []
222
+
223
+ for port in node.Ports:
224
+ id = str(self.get_node_port_display(port).id)
225
+ if port._condition_type:
226
+ ports.append(
227
+ {
228
+ "id": id,
229
+ "name": port.name,
230
+ "type": port._condition_type.value,
231
+ "expression": (
232
+ self.serialize_condition(display_context, port._condition) if port._condition else None
233
+ ),
234
+ }
235
+ )
236
+ else:
237
+ ports.append(
238
+ {
239
+ "id": id,
240
+ "name": port.name,
241
+ "type": "DEFAULT",
242
+ }
243
+ )
244
+
245
+ return ports
246
+
239
247
  def get_base(self) -> CodeResourceDefinition:
240
248
  node = self._node
241
249
 
@@ -276,6 +284,13 @@ class BaseNodeDisplay(Generic[NodeType], metaclass=BaseNodeDisplayMeta):
276
284
 
277
285
  return PortDisplay(id=port_id, node_id=self.node_id)
278
286
 
287
+ def get_source_handle_id(self, port_displays: Dict[Port, PortDisplay]) -> UUID:
288
+ unadorned_node = get_unadorned_node(self._node)
289
+ default_port = unadorned_node.Ports.default
290
+
291
+ default_port_display = port_displays[default_port]
292
+ return default_port_display.id
293
+
279
294
  def get_trigger_id(self) -> UUID:
280
295
  return self.get_target_handle_id()
281
296
 
@@ -363,9 +378,32 @@ class BaseNodeDisplay(Generic[NodeType], metaclass=BaseNodeDisplayMeta):
363
378
 
364
379
  register_node_display_class(node_class=node_class, node_display_class=cls)
365
380
 
366
- def _get_generic_node_display_data(self) -> NodeDisplayData:
381
+ def get_display_data(self) -> NodeDisplayData:
367
382
  explicit_value = self._get_explicit_node_display_attr("display_data", NodeDisplayData)
368
- return explicit_value if explicit_value else NodeDisplayData()
383
+ docstring = self._node.__doc__
384
+
385
+ if explicit_value and explicit_value.comment and docstring:
386
+ comment = (
387
+ NodeDisplayComment(value=docstring, expanded=explicit_value.comment.expanded)
388
+ if explicit_value.comment.expanded
389
+ else NodeDisplayComment(value=docstring)
390
+ )
391
+ return NodeDisplayData(
392
+ position=explicit_value.position,
393
+ width=explicit_value.width,
394
+ height=explicit_value.height,
395
+ comment=comment,
396
+ )
397
+
398
+ if explicit_value:
399
+ return explicit_value
400
+
401
+ if docstring:
402
+ return NodeDisplayData(
403
+ comment=NodeDisplayComment(value=docstring),
404
+ )
405
+
406
+ return NodeDisplayData()
369
407
 
370
408
  def serialize_condition(self, display_context: "WorkflowDisplayContext", condition: BaseDescriptor) -> JsonObject:
371
409
  if isinstance(
@@ -408,6 +446,7 @@ class BaseNodeDisplay(Generic[NodeType], metaclass=BaseNodeDisplayMeta):
408
446
  DoesNotBeginWithExpression,
409
447
  DoesNotContainExpression,
410
448
  DoesNotEndWithExpression,
449
+ DoesNotEqualExpression,
411
450
  EndsWithExpression,
412
451
  EqualsExpression,
413
452
  GreaterThanExpression,
@@ -82,3 +82,21 @@ def test_serialize_condition__accessor_expression():
82
82
  },
83
83
  }
84
84
  ]
85
+
86
+
87
+ def test_serialize_display_data():
88
+ # GIVEN a node with an accessor expression in a Port
89
+ class MyNode(BaseNode):
90
+ """I hope this works"""
91
+
92
+ pass
93
+
94
+ # WHEN we serialize the node
95
+ node_display_class = get_node_display_class(MyNode)
96
+ data = node_display_class().serialize(WorkflowDisplayContext())
97
+
98
+ # THEN the condition should be serialized correctly
99
+ assert data["display_data"] == {
100
+ "position": {"x": 0.0, "y": 0.0},
101
+ "comment": {"value": "I hope this works"},
102
+ }
@@ -4,7 +4,7 @@ from typing import Any, ClassVar, Dict, Generic, Optional, TypeVar, cast
4
4
  from vellum.workflows.nodes.displayable import APINode
5
5
  from vellum.workflows.references.output import OutputReference
6
6
  from vellum.workflows.types.core import JsonArray, JsonObject
7
- from vellum_ee.workflows.display.nodes.base_node_vellum_display import BaseNodeVellumDisplay
7
+ from vellum_ee.workflows.display.nodes.base_node_display import BaseNodeDisplay
8
8
  from vellum_ee.workflows.display.nodes.utils import raise_if_descriptor
9
9
  from vellum_ee.workflows.display.nodes.vellum.utils import create_node_input
10
10
  from vellum_ee.workflows.display.types import WorkflowDisplayContext
@@ -13,7 +13,7 @@ from vellum_ee.workflows.display.utils.vellum import WorkspaceSecretPointer
13
13
  _APINodeType = TypeVar("_APINodeType", bound=APINode)
14
14
 
15
15
 
16
- class BaseAPINodeDisplay(BaseNodeVellumDisplay[_APINodeType], Generic[_APINodeType]):
16
+ class BaseAPINodeDisplay(BaseNodeDisplay[_APINodeType], Generic[_APINodeType]):
17
17
  # A mapping between node input keys and their ids for inputs representing additional header keys
18
18
  additional_header_key_input_ids: ClassVar[Optional[Dict[str, UUID]]] = None
19
19
 
@@ -192,4 +192,5 @@ class BaseAPINodeDisplay(BaseNodeVellumDisplay[_APINodeType], Generic[_APINodeTy
192
192
  "display_data": self.get_display_data().dict(),
193
193
  "base": self.get_base().dict(),
194
194
  "definition": self.get_definition().dict(),
195
+ "ports": self.serialize_ports(display_context),
195
196
  }
@@ -10,7 +10,6 @@ from vellum.workflows.types.core import JsonArray, JsonObject
10
10
  from vellum.workflows.types.utils import get_original_base
11
11
  from vellum.workflows.utils.uuids import uuid4_from_hash
12
12
  from vellum_ee.workflows.display.nodes.base_node_display import BaseNodeDisplay
13
- from vellum_ee.workflows.display.nodes.base_node_vellum_display import BaseNodeVellumDisplay
14
13
  from vellum_ee.workflows.display.nodes.get_node_display_class import get_node_display_class
15
14
  from vellum_ee.workflows.display.nodes.types import NodeOutputDisplay
16
15
  from vellum_ee.workflows.display.types import WorkflowDisplayContext
@@ -72,7 +71,7 @@ def _recursively_replace_wrapped_node(node_class: Type[BaseNode], wrapped_node_d
72
71
  )
73
72
 
74
73
 
75
- class BaseAdornmentNodeDisplay(BaseNodeVellumDisplay[_BaseAdornmentNodeType], Generic[_BaseAdornmentNodeType]):
74
+ class BaseAdornmentNodeDisplay(BaseNodeDisplay[_BaseAdornmentNodeType], Generic[_BaseAdornmentNodeType]):
76
75
  __wrapped_node_display__: Optional[Type[BaseNodeDisplay]] = None
77
76
 
78
77
  def serialize(
@@ -6,7 +6,7 @@ from vellum.workflows.nodes.displayable.code_execution_node import CodeExecution
6
6
  from vellum.workflows.nodes.displayable.code_execution_node.utils import read_file_from_path
7
7
  from vellum.workflows.types.core import JsonObject
8
8
  from vellum.workflows.utils.vellum_variables import primitive_type_to_vellum_variable_type
9
- from vellum_ee.workflows.display.nodes.base_node_vellum_display import BaseNodeVellumDisplay
9
+ from vellum_ee.workflows.display.nodes.base_node_display import BaseNodeDisplay
10
10
  from vellum_ee.workflows.display.nodes.utils import raise_if_descriptor
11
11
  from vellum_ee.workflows.display.nodes.vellum.utils import create_node_input
12
12
  from vellum_ee.workflows.display.types import WorkflowDisplayContext
@@ -14,7 +14,7 @@ from vellum_ee.workflows.display.types import WorkflowDisplayContext
14
14
  _CodeExecutionNodeType = TypeVar("_CodeExecutionNodeType", bound=CodeExecutionNode)
15
15
 
16
16
 
17
- class BaseCodeExecutionNodeDisplay(BaseNodeVellumDisplay[_CodeExecutionNodeType], Generic[_CodeExecutionNodeType]):
17
+ class BaseCodeExecutionNodeDisplay(BaseNodeDisplay[_CodeExecutionNodeType], Generic[_CodeExecutionNodeType]):
18
18
  output_id: ClassVar[Optional[UUID]] = None
19
19
  log_output_id: ClassVar[Optional[UUID]] = None
20
20
 
@@ -98,4 +98,5 @@ class BaseCodeExecutionNodeDisplay(BaseNodeVellumDisplay[_CodeExecutionNodeType]
98
98
  "display_data": self.get_display_data().dict(),
99
99
  "base": self.get_base().dict(),
100
100
  "definition": self.get_definition().dict(),
101
+ "ports": self.serialize_ports(display_context),
101
102
  }
@@ -16,7 +16,7 @@ from vellum.workflows.expressions.or_ import OrExpression
16
16
  from vellum.workflows.nodes.displayable import ConditionalNode
17
17
  from vellum.workflows.types.core import ConditionType, JsonObject
18
18
  from vellum.workflows.utils.uuids import uuid4_from_hash
19
- from vellum_ee.workflows.display.nodes.base_node_vellum_display import BaseNodeVellumDisplay
19
+ from vellum_ee.workflows.display.nodes.base_node_display import BaseNodeDisplay
20
20
  from vellum_ee.workflows.display.nodes.vellum.utils import create_node_input
21
21
  from vellum_ee.workflows.display.types import WorkflowDisplayContext
22
22
  from vellum_ee.workflows.display.utils.vellum import convert_descriptor_to_operator
@@ -40,7 +40,7 @@ class ConditionId:
40
40
  rule_group_id: Optional[str]
41
41
 
42
42
 
43
- class BaseConditionalNodeDisplay(BaseNodeVellumDisplay[_ConditionalNodeType], Generic[_ConditionalNodeType]):
43
+ class BaseConditionalNodeDisplay(BaseNodeDisplay[_ConditionalNodeType], Generic[_ConditionalNodeType]):
44
44
  source_handle_ids: ClassVar[Dict[int, UUID]]
45
45
  rule_ids: ClassVar[List[RuleIdMap]]
46
46
  condition_ids: ClassVar[list[ConditionId]]
@@ -217,6 +217,7 @@ but the defined conditions have length {len(condition_ids)}"""
217
217
  "display_data": self.get_display_data().dict(),
218
218
  "base": self.get_base().dict(),
219
219
  "definition": self.get_definition().dict(),
220
+ "ports": self.serialize_ports(display_context),
220
221
  }
221
222
 
222
223
  def get_nested_rule_details_by_path(