vellum-ai 0.10.4__py3-none-any.whl → 0.10.7__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. vellum/__init__.py +2 -0
  2. vellum/client/README.md +7 -52
  3. vellum/client/__init__.py +16 -136
  4. vellum/client/core/client_wrapper.py +1 -1
  5. vellum/client/resources/ad_hoc/client.py +14 -104
  6. vellum/client/resources/metric_definitions/client.py +113 -0
  7. vellum/client/resources/test_suites/client.py +8 -16
  8. vellum/client/resources/workflows/client.py +0 -32
  9. vellum/client/types/__init__.py +2 -0
  10. vellum/client/types/metric_definition_history_item.py +39 -0
  11. vellum/types/metric_definition_history_item.py +3 -0
  12. vellum/workflows/events/node.py +36 -3
  13. vellum/workflows/events/tests/test_event.py +89 -9
  14. vellum/workflows/nodes/__init__.py +6 -7
  15. vellum/workflows/nodes/bases/base.py +0 -1
  16. vellum/workflows/nodes/core/inline_subworkflow_node/node.py +1 -1
  17. vellum/workflows/nodes/core/templating_node/node.py +5 -1
  18. vellum/workflows/nodes/core/try_node/node.py +65 -27
  19. vellum/workflows/nodes/core/try_node/tests/test_node.py +17 -10
  20. vellum/workflows/nodes/displayable/__init__.py +2 -0
  21. vellum/workflows/nodes/displayable/bases/api_node/node.py +3 -3
  22. vellum/workflows/nodes/displayable/code_execution_node/node.py +5 -2
  23. vellum/workflows/nodes/displayable/conditional_node/node.py +2 -2
  24. vellum/workflows/nodes/displayable/final_output_node/node.py +6 -2
  25. vellum/workflows/nodes/displayable/note_node/__init__.py +5 -0
  26. vellum/workflows/nodes/displayable/note_node/node.py +10 -0
  27. vellum/workflows/nodes/displayable/tests/test_inline_text_prompt_node.py +10 -11
  28. vellum/workflows/nodes/utils.py +2 -0
  29. vellum/workflows/outputs/base.py +26 -2
  30. vellum/workflows/ports/node_ports.py +2 -2
  31. vellum/workflows/ports/port.py +14 -0
  32. vellum/workflows/references/__init__.py +2 -0
  33. vellum/workflows/runner/runner.py +46 -33
  34. vellum/workflows/runner/types.py +1 -3
  35. vellum/workflows/state/encoder.py +2 -1
  36. vellum/workflows/types/tests/test_utils.py +15 -3
  37. vellum/workflows/types/utils.py +4 -1
  38. vellum/workflows/utils/vellum_variables.py +13 -1
  39. vellum/workflows/workflows/base.py +24 -1
  40. {vellum_ai-0.10.4.dist-info → vellum_ai-0.10.7.dist-info}/METADATA +8 -6
  41. {vellum_ai-0.10.4.dist-info → vellum_ai-0.10.7.dist-info}/RECORD +76 -69
  42. vellum_cli/CONTRIBUTING.md +66 -0
  43. vellum_cli/README.md +3 -0
  44. vellum_ee/workflows/display/base.py +2 -1
  45. vellum_ee/workflows/display/nodes/base_node_display.py +27 -4
  46. vellum_ee/workflows/display/nodes/vellum/__init__.py +2 -0
  47. vellum_ee/workflows/display/nodes/vellum/api_node.py +3 -3
  48. vellum_ee/workflows/display/nodes/vellum/code_execution_node.py +4 -4
  49. vellum_ee/workflows/display/nodes/vellum/conditional_node.py +86 -41
  50. vellum_ee/workflows/display/nodes/vellum/final_output_node.py +4 -2
  51. vellum_ee/workflows/display/nodes/vellum/guardrail_node.py +3 -3
  52. vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py +4 -5
  53. vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py +9 -9
  54. vellum_ee/workflows/display/nodes/vellum/map_node.py +23 -51
  55. vellum_ee/workflows/display/nodes/vellum/note_node.py +32 -0
  56. vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py +5 -5
  57. vellum_ee/workflows/display/nodes/vellum/search_node.py +1 -1
  58. vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py +2 -2
  59. vellum_ee/workflows/display/nodes/vellum/templating_node.py +1 -1
  60. vellum_ee/workflows/display/nodes/vellum/try_node.py +16 -4
  61. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py +7 -3
  62. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py +122 -107
  63. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py +6 -5
  64. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py +77 -64
  65. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py +15 -11
  66. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py +6 -6
  67. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py +6 -6
  68. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py +4 -3
  69. vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py +7 -6
  70. vellum_ee/workflows/display/utils/vellum.py +3 -2
  71. vellum_ee/workflows/display/workflows/base_workflow_display.py +14 -9
  72. vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py +2 -7
  73. vellum_ee/workflows/display/workflows/vellum_workflow_display.py +18 -16
  74. {vellum_ai-0.10.4.dist-info → vellum_ai-0.10.7.dist-info}/LICENSE +0 -0
  75. {vellum_ai-0.10.4.dist-info → vellum_ai-0.10.7.dist-info}/WHEEL +0 -0
  76. {vellum_ai-0.10.4.dist-info → vellum_ai-0.10.7.dist-info}/entry_points.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vellum-ai
3
- Version: 0.10.4
3
+ Version: 0.10.7
4
4
  Summary:
5
5
  License: MIT
6
6
  Requires-Python: >=3.9,<4.0
@@ -63,7 +63,6 @@ Description-Content-Type: text/markdown
63
63
 
64
64
  # Introduction
65
65
 
66
-
67
66
  [Vellum](https://www.vellum.ai/) is the end-to-end development platform for building production-grade AI applications
68
67
 
69
68
  ### Core Features
@@ -85,22 +84,21 @@ Description-Content-Type: text/markdown
85
84
  - [Contributing](#contributing)
86
85
  - [Open-source vs paid](#open-source-vs-paid)
87
86
 
88
-
89
87
  ## Get Started
88
+
90
89
  Most functionality within the SDKs here requires a Vellum account and API key. To sign up, [talk to us](https://www.vellum.ai/landing-pages/request-demo)
91
90
  or visit our [pricing page](https://www.vellum.ai/pricing).
92
91
 
93
92
  Even without a Vellum account, you can use the Workflows SDK to define the control flow of your AI systems. [Learn
94
93
  more below](#workflows-sdk).
95
94
 
96
-
97
-
98
95
  ## Client SDK
96
+
99
97
  The Vellum Client SDK, found within `src/client` is a low-level client used to interact directly with the Vellum API.
100
98
  Learn more and get started by visiting the [Vellum Client SDK README](/src/vellum/client/README.md).
101
99
 
102
-
103
100
  ## Workflows SDK
101
+
104
102
  The Vellum Workflows SDK is a high-level framework for defining and debugging the control flow of AI systems. At
105
103
  it's core, it's a powerful workflow engine with syntactic sugar for intuitively defining graphs, the nodes within,
106
104
  and the relationships between them.
@@ -111,6 +109,9 @@ and debugging via a UI.
111
109
 
112
110
  To learn more and get started, visit the [Vellum Workflows SDK README](/src/vellum/workflows/README.md).
113
111
 
112
+ ## Contributing
113
+
114
+ See the [CONTRIBUTING.md](/CONTRIBUTING.md) for information on how to contribute to the Vellum SDKs.
114
115
 
115
116
  ## Open-Source vs. Paid
116
117
 
@@ -118,3 +119,4 @@ This repo is available under the [MIT expat license](https://github.com/vellum-a
118
119
  for the `ee` directory (which has its [license here](https://github.com/vellum-ai/vellum-python-sdks/blob/main/ee/LICENSE)) if applicable.
119
120
 
120
121
  To learn more, [book a demo](https://www.vellum.ai/landing-pages/request-demo) or see our [pricing page](https://www.vellum.ai/pricing).
122
+
@@ -1,3 +1,5 @@
1
+ vellum_cli/CONTRIBUTING.md,sha256=FtDC7BGxSeMnwCXAUssFsAIElXtmJE-O5Z7BpolcgvI,2935
2
+ vellum_cli/README.md,sha256=2NudRoLzWxNKqnuVy1JuQ7DerIaxWGYkrH8kMd-asIE,90
1
3
  vellum_cli/__init__.py,sha256=t62kIq0vDia8TTJqAmqFpYCo40buWNDQmjIDTOvmwwE,2416
2
4
  vellum_cli/aliased_group.py,sha256=ugW498j0yv4ALJ8vS9MsO7ctDW7Jlir9j6nE_uHAP8c,3363
3
5
  vellum_cli/config.py,sha256=urqMGQUkTntzdx-JV0P32FZVbqRZqgI-yFVmGPVblNI,3613
@@ -11,64 +13,65 @@ vellum_ee/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
13
  vellum_ee/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
14
  vellum_ee/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
15
  vellum_ee/workflows/display/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
- vellum_ee/workflows/display/base.py,sha256=3ZFUYRNKL24fBqXhKpa_Dq2W1a-a86J20dmJYA3H2eY,1755
16
+ vellum_ee/workflows/display/base.py,sha256=yYH86aTPfOy7Zbzj9YBzU-yLUX3GBHVNxKqJFy7_wxk,1797
15
17
  vellum_ee/workflows/display/nodes/__init__.py,sha256=5XOcZJXYUgaLS55QgRJzyQ_W1tpeprjnYAeYVezqoGw,160
16
- vellum_ee/workflows/display/nodes/base_node_display.py,sha256=7szAFzhxfZc3cOtatZhMsH3kIKzoH_Hcx2jolNgPJS8,4679
18
+ vellum_ee/workflows/display/nodes/base_node_display.py,sha256=0ee5qP5uF9WASIocwhZfEi8S2NmPdaGQLlG-kwPb9ZI,5942
17
19
  vellum_ee/workflows/display/nodes/base_node_vellum_display.py,sha256=a62tpKcX0LdyZM2clwoGwpUfH3HMBbX1qiA0FFb_nk4,1649
18
20
  vellum_ee/workflows/display/nodes/get_node_display_class.py,sha256=A036wKuBjhtBGJKdkQSq4v1Rcm0cXHropJxKPuGWAsk,907
19
21
  vellum_ee/workflows/display/nodes/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
22
  vellum_ee/workflows/display/nodes/tests/test_base_node_display.py,sha256=x7UkKR22rnNGjeerHBczZ9_YsK8Us-YFOEbrLylvIxM,1054
21
23
  vellum_ee/workflows/display/nodes/types.py,sha256=St1BB6no528OyELGiyRabWao0GGw6mLhstQAvEACbGk,247
22
24
  vellum_ee/workflows/display/nodes/utils.py,sha256=sloya5TpXsnot1HURc9L51INwflRqUzHxRVnCS9Cd-4,973
23
- vellum_ee/workflows/display/nodes/vellum/__init__.py,sha256=WQ_KbMp__S41AUFDHt9dZU6IQLK9AizdGMi2M6eK2_8,1362
24
- vellum_ee/workflows/display/nodes/vellum/api_node.py,sha256=5mMO1rKDafoPtnFZciuFGGfbu8Ei-j4zRiEDx9oQG4I,8572
25
- vellum_ee/workflows/display/nodes/vellum/code_execution_node.py,sha256=VWFzPYzzNy4dSju0Gyegxx81A9cYjkN-dYqPTK3hCr4,3403
26
- vellum_ee/workflows/display/nodes/vellum/conditional_node.py,sha256=3pVtCukiILTSZPUWuYLIwzwXGBSSUV4q--i0zlYxGKQ,10850
27
- vellum_ee/workflows/display/nodes/vellum/final_output_node.py,sha256=kR_z9ichhBtK_CLetqGjewmFmIFalfSiG2tQlM2T4yM,2772
28
- vellum_ee/workflows/display/nodes/vellum/guardrail_node.py,sha256=CiGZL1nxgK0KxLUgKilpollRYFIqqGHjSGXtvP1miqs,2168
29
- vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py,sha256=NuNoPnvwbdSRkTQA3clLySNSzqkK0nmU4L0zYqgIfFQ,7397
30
- vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py,sha256=FwyEhiOpr1Uho6xJ7fenyaxUuciKV-zU19lT2zc2aQ0,4522
31
- vellum_ee/workflows/display/nodes/vellum/map_node.py,sha256=38_0gZbtWgpBO6EAEnwR8Enz3vP23Ga72StZ__ECqIc,4646
25
+ vellum_ee/workflows/display/nodes/vellum/__init__.py,sha256=jQgm0dsQAlxZ0tYR_cv5pX-6wHMPQfFwmhI3DQ29S9Y,1432
26
+ vellum_ee/workflows/display/nodes/vellum/api_node.py,sha256=awjKut2m7HoEmqewRfdR1dw8ufA0Q5mVG8V8jhaHlKw,8572
27
+ vellum_ee/workflows/display/nodes/vellum/code_execution_node.py,sha256=bAtSJpcKyJW-VLvBEr92lKPpdPH1L_IA02qg78U1uFA,3403
28
+ vellum_ee/workflows/display/nodes/vellum/conditional_node.py,sha256=v9g263oEtyL6ejp5ZfLrVfrcqU9gZwzuUI4yBuOScbI,12983
29
+ vellum_ee/workflows/display/nodes/vellum/final_output_node.py,sha256=2HsghUtPBOQ-4sN-2jDOnbEuIwcsilDKO3f2o1WlYgw,2897
30
+ vellum_ee/workflows/display/nodes/vellum/guardrail_node.py,sha256=lr4d2uV3Lq8d22b5LCKbWMz_nU7Q0fvffcNQ7zx5Ygc,2163
31
+ vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py,sha256=0lX14iOxZhdKSXE6mzBAIw480nNJD_Sz4qo7WZAXYfQ,7391
32
+ vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py,sha256=rZmYQSCtm7bdiJ-ZYMyPpFnEwbNr85a45PXqESvLyus,4696
33
+ vellum_ee/workflows/display/nodes/vellum/map_node.py,sha256=rjsXrUt2PjD1HOS1xDVPn5ThTImsI048hVh_3A_G-14,3588
32
34
  vellum_ee/workflows/display/nodes/vellum/merge_node.py,sha256=7YmVRNSI6RkK1rvg0b0zDeW2nnBIKir0ERzqqtT08I4,2218
33
- vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py,sha256=busFtdD7Cs6yeHsCeyVEReHkLlt062vP_mG4GAynsNk,3116
34
- vellum_ee/workflows/display/nodes/vellum/search_node.py,sha256=B2WX8C5cx3kYqd3ClyesY0fyeFwfEgb7-iC_gIWgNp4,8440
35
- vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py,sha256=SOGhvY0nUa02aDm5hrMSEAg0qdMxrI4GSB5_bpuTS0o,2671
36
- vellum_ee/workflows/display/nodes/vellum/templating_node.py,sha256=79EYw_C7jef5wbPFtT5F2cjuF9EvUimwEEcL0dX-M9Q,3029
35
+ vellum_ee/workflows/display/nodes/vellum/note_node.py,sha256=gjYEp7DdTtdH-uJvVbMTOEoj8KokB5LQBR_JJulFHj4,1121
36
+ vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py,sha256=LbxpCKr4Ys9A-xtWU119Ry8IP7W3GGinPFWt9QAZAi8,3111
37
+ vellum_ee/workflows/display/nodes/vellum/search_node.py,sha256=SIjtqNf_d-3Ba_ggyghz9Z9Z3bnsnxfiKk-OCvd8BqQ,8435
38
+ vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py,sha256=2Uj4lunoqSKrcZ5oqp2B2k98sZdv5Vys7e5DO66tdz8,2662
39
+ vellum_ee/workflows/display/nodes/vellum/templating_node.py,sha256=7dLAOFyUWjhryu953jJXHd7LWMY7w9VOYuPYnD-dSo4,3024
37
40
  vellum_ee/workflows/display/nodes/vellum/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
41
  vellum_ee/workflows/display/nodes/vellum/tests/test_utils.py,sha256=LmjC0yhXWOIDPnHmQpoMpzLr_VE2_ZpsJhWGSAqaHHY,3809
39
- vellum_ee/workflows/display/nodes/vellum/try_node.py,sha256=5JDFT8rpm4rKjoOvrjrvjyaK-sFVW0_xAZPB4_En-hA,1680
42
+ vellum_ee/workflows/display/nodes/vellum/try_node.py,sha256=m4d6hi6oD-jSW_bjrlN8coVwb6ivC2amPHpePHJ-Htg,2278
40
43
  vellum_ee/workflows/display/nodes/vellum/utils.py,sha256=FqkLA5L6uoNMUHY86CBlr9w9CIH9kkWu6CuIDhqGrXs,3107
41
44
  vellum_ee/workflows/display/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
45
  vellum_ee/workflows/display/tests/workflow_serialization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
46
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py,sha256=bLdJ0VVwAPDRvwaJMiMf0fRCuIWvvuRjAxKzddGPFyA,16871
44
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py,sha256=JnaxdIDMudwgO4zzB0uJlCDYvoD1lZaAxFQ9OYxUFoA,22716
45
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py,sha256=0NxRo7KM_z8A1vgRgPISjCVFbYyKaeWCkgNldCkF6XY,53075
46
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py,sha256=FNmGO1hQjQOOejfSY-ErcMJXxvrxMyR7GZq4UX26UHA,8271
47
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py,sha256=2X8MzxZ3rf1lkx_e7Oez-qp4fvPZrdjulGAEOhbCMnY,21546
48
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=ESalw3PsfGy42w85FJr9VDWg8Rpv9NT25OMHpye27bs,14967
47
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py,sha256=0McMPIPnIwE8iGh7fzFZL3dc6Q7NCQ_wUVFpl14YATo,22846
48
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py,sha256=AOM1lN7_Y1wmorBpyF6Z2VVgrPUiFaePaGjauDluAsc,54187
49
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py,sha256=IfO5Hmr1W41X2IVq-i6pG7BuevBPZU_s6ASTNVVVkdg,8298
50
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py,sha256=c97A2tFWnNUXi3T4RLsvf3nZkUTPiGSC6XD_x1-ZK_U,22270
51
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=Bx6tpFoW_7KrlsuzeEgXgQxa6CHJsQKwFZjilJsTivg,15451
49
52
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py,sha256=NUe91w_AHNJmxDaP_51wLuQoaHKgwkq83OXy0fHNsK0,9997
50
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py,sha256=v40e6N3Tl-V0GpKOLmCndMvPvcSqKPht1yAkkeXGaAA,9467
51
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py,sha256=ouWOS8oEOwunsPlxF1ZnAg3cWXCp5XFKWRbO7Jx0bgc,12682
52
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py,sha256=1vK0NTotZ1-n4NSol8bFToFjFgHUkboo8Ue2YdZvUwY,4259
53
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py,sha256=hIpamI86C9tfL0aOPeCRgVGCklQ1WB4XjRb7esSmgas,9493
54
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py,sha256=xK-3iQ05ZItncX6AQSzf4uUn0K2ObBm40wbtvGfgnkQ,12708
55
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py,sha256=fwOTqhvIOus25aPqQTV27wrdBe7WMaDDrzmJsAamGh8,4273
53
56
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py,sha256=Q2ONg1t3YVLlZgp85iOOn7LcWNVvdFxNJE4ibWLZhUg,2879
54
- vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256=sbW8zK1S3JAtTJeinmtqweb0wSQtFMZrVlbzm0nhUIs,9154
57
+ vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256=fgTgwVlkcy_3BvP9khin7HHpQ59wF7npt2_dPWH2lXk,9181
55
58
  vellum_ee/workflows/display/types.py,sha256=BkOADbktn7uixSZbwm-Mv-WdCwGrWSh29sWM8sX5A48,2011
56
59
  vellum_ee/workflows/display/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
60
  vellum_ee/workflows/display/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
61
  vellum_ee/workflows/display/utils/tests/test_uuids.py,sha256=ItjROhaPns8_mlvD17LIBwZKvhe2l0dXEd5oL-JiY64,448
59
62
  vellum_ee/workflows/display/utils/uuids.py,sha256=DFzPv9RCvsKhvdTEIQyfSek2A31D6S_QcmeLPbgrgTY,739
60
- vellum_ee/workflows/display/utils/vellum.py,sha256=NbjS_dKEgrwjV71xgxgsVnAn-PTZ67SBPgXMMnTbvfg,5133
63
+ vellum_ee/workflows/display/utils/vellum.py,sha256=PYxIFv0H_8byUZkrs4jWPpQ6ACElImOBU7FHZjKKXsI,5278
61
64
  vellum_ee/workflows/display/vellum.py,sha256=_-lLRZsEitt8fdUID62aiXptWa8rJhyqgL4uy1gDmc4,8783
62
65
  vellum_ee/workflows/display/workflows/__init__.py,sha256=kapXsC67VJcgSuiBMa86FdePG5A9kMB5Pi4Uy1O2ob4,207
63
- vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=Tt_2K9T2KyMuIVn0Hfh1MlZLHpOjetwYsicaIf49ZAo,12447
64
- vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py,sha256=fgngC_HWeNRRJBNaQQAxQNlOsnMS7e5zPyLe9aysn4M,1373
65
- vellum_ee/workflows/display/workflows/vellum_workflow_display.py,sha256=sDhCQJYdSJ4LcR7JBaTUllNhSaedQeD3Oe_ALUE3SiY,16634
66
- vellum/__init__.py,sha256=xiYriEQZVk6SzItzQNOMpGoeO2yFTBGrEJZNHJesm8E,34416
67
- vellum/client/README.md,sha256=8cKUE1kSuhz-U87n3-clA7o9_zlP0Avr4qKbvRbdT2k,5984
68
- vellum/client/__init__.py,sha256=Fu-wzw_MiTtqAQOFhcFcrLKAPkEfUhf6K4ZuFspfKUw,115305
66
+ vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=HkakkrNgVFoHlUP7yHlQjHOvii3CZ90iyU1062PfoW4,12819
67
+ vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py,sha256=EN6gXo_uNRrQZtPjenSZHOge2ztz5J9k5tpsmfGulVY,1160
68
+ vellum_ee/workflows/display/workflows/vellum_workflow_display.py,sha256=RxSnupMr7lEAAjiyTC1BGJzH4OtgSi63_-LwE7bil3o,16843
69
+ vellum/__init__.py,sha256=67DJaPyfV8hWJkx4pBssBAnlPm3jQMl8VqIn5TtBP3Q,34484
70
+ vellum/client/README.md,sha256=JkCJjmMZl4jrPj46pkmL9dpK4gSzQQmP5I7z4aME4LY,4749
71
+ vellum/client/__init__.py,sha256=o4m7iRZWEV8rP3GkdaztHAjNmjxjWERlarviFoHzuKI,110927
69
72
  vellum/client/core/__init__.py,sha256=SQ85PF84B9MuKnBwHNHWemSGuy-g_515gFYNFhvEE0I,1438
70
73
  vellum/client/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
71
- vellum/client/core/client_wrapper.py,sha256=k5EK8N1d-FKFlgsJNJtwPgk4x8KEICMhKgvOXBMOF_0,1890
74
+ vellum/client/core/client_wrapper.py,sha256=c9d8t0gg4sHCfhz528mHO5hti3rrAmFRPArvRV33Lkk,1890
72
75
  vellum/client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
73
76
  vellum/client/core/file.py,sha256=X9IbmkZmB2bB_DpmZAO3crWdXagOakAyn6UCOCImCPg,2322
74
77
  vellum/client/core/http_client.py,sha256=R0pQpCppnEtxccGvXl4uJ76s7ro_65Fo_erlNNLp_AI,19228
@@ -86,7 +89,7 @@ vellum/client/errors/internal_server_error.py,sha256=8USCagXyJJ1MOm9snpcXIUt6eNX
86
89
  vellum/client/errors/not_found_error.py,sha256=tBVCeBC8n3C811WHRj_n-hs3h8MqwR5gp0vLiobk7W8,262
87
90
  vellum/client/resources/__init__.py,sha256=2B6Oim7PG4IxSUNSzDY1EruQHsaZ7konj3j_WSTydCs,1378
88
91
  vellum/client/resources/ad_hoc/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
89
- vellum/client/resources/ad_hoc/client.py,sha256=6rsCw-oaq35-DVrb7NTyptc2WU9L6Eka99H3fNB0jA8,17749
92
+ vellum/client/resources/ad_hoc/client.py,sha256=HR5NwH12JPlaKBKKXtO9eiEe9_KTH11El3dbpG9nLuU,14403
90
93
  vellum/client/resources/container_images/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
91
94
  vellum/client/resources/container_images/client.py,sha256=jK1n-NFsdBKCeEKh-EIqvw7R8AG9PP4GxxcoH9F0GYs,15463
92
95
  vellum/client/resources/deployments/__init__.py,sha256=m64MNuPx3qVazOnTNwOY8oEeDrAkNwMJvUEe5xoMDvs,239
@@ -105,7 +108,7 @@ vellum/client/resources/folder_entities/client.py,sha256=ep5dnfJmEuEyrOSUftEVwKa
105
108
  vellum/client/resources/folder_entities/types/__init__.py,sha256=cHabrupjC-HL3kj-UZ9WdVzqHoQHCu6QsLFB3wlOs7k,212
106
109
  vellum/client/resources/folder_entities/types/folder_entities_list_request_entity_status.py,sha256=nK9b9fRSeCfjn2V2Hifl1IbhFeVsNkoeXJ8rCAPADFg,183
107
110
  vellum/client/resources/metric_definitions/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
108
- vellum/client/resources/metric_definitions/client.py,sha256=w-2IQ-ILDNqws6bWjZj6V9G86qw5zCVLXKq4j3Nebzw,5924
111
+ vellum/client/resources/metric_definitions/client.py,sha256=T3pS0tn2M1e-kdURLemdftGlVGfmxSozcV-SpJN5zvE,10100
109
112
  vellum/client/resources/ml_models/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
110
113
  vellum/client/resources/ml_models/client.py,sha256=XIYapTEY6GRNr7V0Kjy5bEeKmrhv9ul8qlQY2A5LFqQ,3872
111
114
  vellum/client/resources/sandboxes/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
@@ -113,7 +116,7 @@ vellum/client/resources/sandboxes/client.py,sha256=i-6DHap5k6gFcYS-kWI8ayJFVZxb-
113
116
  vellum/client/resources/test_suite_runs/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
114
117
  vellum/client/resources/test_suite_runs/client.py,sha256=gCF1ewlUrCsZhnXYOYqdUuD2twTrQ-u95xOgvRy7WAw,15130
115
118
  vellum/client/resources/test_suites/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
116
- vellum/client/resources/test_suites/client.py,sha256=XOSXVzgcnyescVX02aKdRzLSxY32xS0ULXbwc9XFAE8,25063
119
+ vellum/client/resources/test_suites/client.py,sha256=UDlFSHLdUFbZrjSq-uk6LA5O9SqgvAsQyrP8PpCeEBI,24659
117
120
  vellum/client/resources/workflow_deployments/__init__.py,sha256=_duH6m1CDWcfqX6DTBNjO3ar4Xrl-f5PozMaTcT4Kow,251
118
121
  vellum/client/resources/workflow_deployments/client.py,sha256=H9MhGYZVx1WLHE5j83Sl5HmX-CF6aJFCwQAGDG1n2oI,27149
119
122
  vellum/client/resources/workflow_deployments/types/__init__.py,sha256=W7DKJ1nduwhRckYLvH7wHLdaGH9MXHTZkxwG7FdTngY,340
@@ -122,12 +125,12 @@ vellum/client/resources/workflow_deployments/types/workflow_deployments_list_req
122
125
  vellum/client/resources/workflow_sandboxes/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
123
126
  vellum/client/resources/workflow_sandboxes/client.py,sha256=3wVQxkjrJ5bIS8fB5FpKXCP2dX38299ghWrJ8YmXxwQ,7435
124
127
  vellum/client/resources/workflows/__init__.py,sha256=Z4xi8Nxd9U4t35FQSepTt1p-ns0X1xtdNs168kUcuBk,153
125
- vellum/client/resources/workflows/client.py,sha256=SYPMtcDF9aVhrbzmlnGLqdx8l7Hau2QpZTTE-R8TwKQ,10853
128
+ vellum/client/resources/workflows/client.py,sha256=5wqDiO1xYnYxNmbaEE1OTnUn3YXKpruYqF3taCjLRDI,10263
126
129
  vellum/client/resources/workflows/types/__init__.py,sha256=-uFca4ypncAOvfsg6sjD-5C9zWdA5qNvU6m675GphVg,177
127
130
  vellum/client/resources/workflows/types/workflows_pull_request_format.py,sha256=dOWE_jnDnniIJLoeseeCms23aklghyBkoPmBFzcqqZk,165
128
131
  vellum/client/resources/workspace_secrets/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
129
132
  vellum/client/resources/workspace_secrets/client.py,sha256=h7UzXLyTttPq1t-JZGMg1BWxypxJvBGUdqg7KGT7MK4,8027
130
- vellum/client/types/__init__.py,sha256=fY4a4kaOhRGIChnfHFKrEAO-XCEF6m4zfTZNYnH8d24,51959
133
+ vellum/client/types/__init__.py,sha256=l-m0JRpHj7tm8Kzsr7HOIK_O9XnGOVWfQanEOE4Z_yo,52066
131
134
  vellum/client/types/ad_hoc_execute_prompt_event.py,sha256=bCjujA2XsOgyF3bRZbcEqV2rOIymRgsLoIRtZpB14xg,607
132
135
  vellum/client/types/ad_hoc_expand_meta.py,sha256=1gv-NCsy_6xBYupLvZH979yf2VMdxAU-l0y0ynMKZaw,1331
133
136
  vellum/client/types/ad_hoc_fulfilled_prompt_execution_meta.py,sha256=Bfvf1d_dkmshxRACVM5vcxbH_7AQY23RmrrnPc0ytYY,939
@@ -313,6 +316,7 @@ vellum/client/types/metadata_filter_rule_combinator.py,sha256=3Vpp1Mnv3As7efkxWT
313
316
  vellum/client/types/metadata_filter_rule_request.py,sha256=Pcs0TsU7CRnsEUoH0DWb-c9DTP2UW67lJKXlsTLXV48,1135
314
317
  vellum/client/types/metadata_filters_request.py,sha256=Yaiu7rkcrV2bCFk6HrZSjuF6V-6JYjZTpzxv7_MFe70,345
315
318
  vellum/client/types/metric_definition_execution.py,sha256=xwr5VJTo32k77isUtz2uzHGmtRm6K_VyOlTCbJr0JNU,672
319
+ vellum/client/types/metric_definition_history_item.py,sha256=oR0m0PG_NGpEBSwJ3n-CFi6TJo3o5Y4D_wfaqpk2VxI,1183
316
320
  vellum/client/types/metric_definition_input.py,sha256=4nmwpPqbeNQYCzLkXCkc-FGV5K2Zfa22xqSUe_L6o5s,331
317
321
  vellum/client/types/metric_node_result.py,sha256=YdKq1DZiBD1RBtjyMejImylv3BqrwY8B_UF4Ij-6_64,660
318
322
  vellum/client/types/ml_model_read.py,sha256=Vr5KjaS2Tca0GXsltfSYQpuyGYpgIahPEFfS6HfFGSo,706
@@ -872,6 +876,7 @@ vellum/types/metadata_filter_rule_combinator.py,sha256=bHx8PgGv5n_3cC-blXV20DKek
872
876
  vellum/types/metadata_filter_rule_request.py,sha256=LULGRo2_1WXc8GbFQioEzB1BfAfcOONwSgrRpwXlQig,166
873
877
  vellum/types/metadata_filters_request.py,sha256=Czs4HD9ibSdtX026v3NMur6L6wKOYYkvd5Em1-UVI2o,162
874
878
  vellum/types/metric_definition_execution.py,sha256=Yx5b1CygziiPLjlZDQF0lVVI7ubRLVJn16vT3N7zmHQ,165
879
+ vellum/types/metric_definition_history_item.py,sha256=OUGYJ9yHc60QiYh_C8-YuA1zHeQ9v5lShdaJ5KEl-1c,168
875
880
  vellum/types/metric_definition_input.py,sha256=TwMwjC_MNiLdodsvT52D7aa_wRY-0kT047flY3sFxII,161
876
881
  vellum/types/metric_node_result.py,sha256=Q_bUgbdRnSP26nEcJ-vZD7k2oLIcThN3JjW9hXTRfZo,156
877
882
  vellum/types/ml_model_read.py,sha256=d_CPwZ3bhXtC8c5jwXkuNVvobDqPI-I_byZ6WnVla1Q,151
@@ -1186,9 +1191,9 @@ vellum/workflows/environment/environment.py,sha256=IwcVSwA51jW1JTN_MAN22UbeAtZhi
1186
1191
  vellum/workflows/errors/__init__.py,sha256=BRyo4hKP2ElS4k1YDu8VdY2VhUZjILtHn2sPFf_d7U0,105
1187
1192
  vellum/workflows/errors/types.py,sha256=YQy6na_iBkqxl9GHKOcin44m8DMRG5KP9oLV1Lpal1M,541
1188
1193
  vellum/workflows/events/__init__.py,sha256=vLwQuykMmbv0izdUvsamouRQKbmKX_r9Poo77jd404w,821
1189
- vellum/workflows/events/node.py,sha256=w5A2MCWD8J-qvdmxBRP4r_c_qz6SK4YLjlsoswrYHc0,3697
1194
+ vellum/workflows/events/node.py,sha256=YQVWrE8LD5IxRTz_e0-0bXMhk3RZ75ZKTvAJZqH8dP0,5270
1190
1195
  vellum/workflows/events/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1191
- vellum/workflows/events/tests/test_event.py,sha256=UdBfjJFGUh1b0T3x-3IuN1Rg97Be5MViXaMY5tjnTL8,9614
1196
+ vellum/workflows/events/tests/test_event.py,sha256=BbAeTohMdfAdpBea9fbi5nDXX6UQ7xASMv9jNuwOmDU,12704
1192
1197
  vellum/workflows/events/types.py,sha256=2MDqlhBMwFWKso423IGH9ZdsPnmBWGGOIBceW568pnk,2865
1193
1198
  vellum/workflows/events/utils.py,sha256=OwtE8dHOCX01jvLyoS1l18tYQ4ob0YJcUhUorKWLJh0,232
1194
1199
  vellum/workflows/events/workflow.py,sha256=kPjZTh5hzCsSrVKLkXQNwzxhnUp3X4GkFA5veGatGlQ,4353
@@ -1227,9 +1232,9 @@ vellum/workflows/graph/tests/test_graph.py,sha256=zeBqfcMIlMS3AJn-t0YitKsa8O0r2f
1227
1232
  vellum/workflows/inputs/__init__.py,sha256=AbFEteIYEvCb14fM3EK7bhM-40-6s494rSlIhQ4Dsss,62
1228
1233
  vellum/workflows/inputs/base.py,sha256=1kMgr0WqCYdWUqgFvgSoAMw2067FAlgwhGXLgbIOrLY,2391
1229
1234
  vellum/workflows/logging.py,sha256=_a217XogktV4Ncz6xKFz7WfYmZAzkfVRVuC0rWob8ls,437
1230
- vellum/workflows/nodes/__init__.py,sha256=l_dOI1T9jjka2fe5s4XYyiturK9ZSoPQwVXBofR-R18,1197
1235
+ vellum/workflows/nodes/__init__.py,sha256=aVdQVv7Y3Ro3JlqXGpxwaU2zrI06plDHD2aumH5WUIs,1157
1231
1236
  vellum/workflows/nodes/bases/__init__.py,sha256=Ll1Ti6t3e_HKtGLsQTHAJevDmfo0QtfgPZUZ9FCRduI,140
1232
- vellum/workflows/nodes/bases/base.py,sha256=-wp4d9akwCOWI9vjaFj3drSfppeF3zokaLme-krFp8M,13641
1237
+ vellum/workflows/nodes/bases/base.py,sha256=2WP30q6OtEK5nA15NljZnyoIPko3fYpf_sStvzNTsrE,13628
1233
1238
  vellum/workflows/nodes/bases/base_subworkflow_node/__init__.py,sha256=0nkHQiFC4IpA1ZGx60XG0BLUWF6hwUpgqmS3ZrlFGhg,80
1234
1239
  vellum/workflows/nodes/bases/base_subworkflow_node/node.py,sha256=vC0gUBQewAUNtP3i2G0-LUpE_kY-r_ijBD_tS1XkQ1E,383
1235
1240
  vellum/workflows/nodes/bases/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1238,7 +1243,7 @@ vellum/workflows/nodes/core/__init__.py,sha256=5zDMCmyt1v0HTJzlUBwq3U9L825yZGZhT
1238
1243
  vellum/workflows/nodes/core/error_node/__init__.py,sha256=g7RRnlHhqu4qByfLjBwCunmgGA8dI5gNsjS3h6TwlSI,60
1239
1244
  vellum/workflows/nodes/core/error_node/node.py,sha256=hqBPHoLnhNrK9ITIaEzpnk47XYDbG6cmObz7oe78Ceg,944
1240
1245
  vellum/workflows/nodes/core/inline_subworkflow_node/__init__.py,sha256=nKNEH1QTl-1PcvmYoqSWEl0-t6gAur8GLTXHzklRQfM,84
1241
- vellum/workflows/nodes/core/inline_subworkflow_node/node.py,sha256=RrThrYAmZDg0IUKRU5tcJRueg3OPZjPvBTpRskt7hPI,3001
1246
+ vellum/workflows/nodes/core/inline_subworkflow_node/node.py,sha256=hXYdhY_4cJVzCDBeFynFflRisgS4nBeFsuz3sFzrMGI,3002
1242
1247
  vellum/workflows/nodes/core/map_node/__init__.py,sha256=MXpZYmGfhsMJHqqlpd64WiJRtbAtAMQz-_3fCU_cLV0,56
1243
1248
  vellum/workflows/nodes/core/map_node/node.py,sha256=aPhV3niv_jWSwrZ2CwiRg0CDOM-09Fa6QqOPYNJMgRc,6206
1244
1249
  vellum/workflows/nodes/core/map_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1250,19 +1255,19 @@ vellum/workflows/nodes/core/retry_node/tests/test_node.py,sha256=zANiu9-d-uIOP9t
1250
1255
  vellum/workflows/nodes/core/templating_node/__init__.py,sha256=GmyuYo81_A1_Bz6id69ozVFS6FKiuDsZTiA3I6MaL2U,70
1251
1256
  vellum/workflows/nodes/core/templating_node/custom_filters.py,sha256=Q0DahYRHP4KfaUXDt9XxN-DFLBrAxlv90yaVqxScoUw,264
1252
1257
  vellum/workflows/nodes/core/templating_node/exceptions.py,sha256=cDp140PP4OnInW4qAvg3KqiSiF70C71UyEAKRBR1Abo,46
1253
- vellum/workflows/nodes/core/templating_node/node.py,sha256=Ed1XMtz_Mzq9Dv08wcsIvGAzIVWrMIAGj-bKExJdXnM,4247
1258
+ vellum/workflows/nodes/core/templating_node/node.py,sha256=SU8zCVLz1Qq4bXoECHssECQBmUwxdeQgFMo7x1nv5Ts,4364
1254
1259
  vellum/workflows/nodes/core/templating_node/render.py,sha256=OpJp0NAH6qcEL6K9lxR0qjpFb75TYNttJR5iCos8tmg,1792
1255
1260
  vellum/workflows/nodes/core/templating_node/tests/test_templating_node.py,sha256=L6F3Gw9doguj1TSKmAns-mzXvoRuRivaCFe3mhjo13E,551
1256
1261
  vellum/workflows/nodes/core/try_node/__init__.py,sha256=JVD4DrldTIqFQQFrubs9KtWCCc0YCAc7Fzol5ZWIWeM,56
1257
- vellum/workflows/nodes/core/try_node/node.py,sha256=ZFySh3S7slWN20rlvukqgmN2TVsG58Lz_p5jdNK_96Q,4162
1262
+ vellum/workflows/nodes/core/try_node/node.py,sha256=ZP7Suh025siA8T4D_1niL_-5lwSHXvY72-cj2x8S2U8,5813
1258
1263
  vellum/workflows/nodes/core/try_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1259
- vellum/workflows/nodes/core/try_node/tests/test_node.py,sha256=Hjf4485svKEtNOnMBfnMP01GKihMRvN9Nkev2TFbHLE,3447
1260
- vellum/workflows/nodes/displayable/__init__.py,sha256=SReuiXngYFlTshz2dWW6JPuLDIM6zT2Pk1YRxiQANIw,975
1264
+ vellum/workflows/nodes/core/try_node/tests/test_node.py,sha256=u06GmVGln5lg-65YYFAmjlKwxuXbP8bKA8Qf_Zbq7ak,3764
1265
+ vellum/workflows/nodes/displayable/__init__.py,sha256=6F_4DlSwvHuilWnIalp8iDjjDXl0Nmz4QzJV2PYe5RI,1023
1261
1266
  vellum/workflows/nodes/displayable/api_node/__init__.py,sha256=MoxdQSnidIj1Nf_d-hTxlOxcZXaZnsWFDbE-PkTK24o,56
1262
1267
  vellum/workflows/nodes/displayable/api_node/node.py,sha256=-m93_KqwaWxbtbNQDWnLZZ-TSHCwd4ir2V542zovaZU,2043
1263
1268
  vellum/workflows/nodes/displayable/bases/__init__.py,sha256=0mWIx3qUrzllV7jqt7wN03vWGMuI1WrrLZeMLT2Cl2c,304
1264
1269
  vellum/workflows/nodes/displayable/bases/api_node/__init__.py,sha256=1jwx4WC358CLA1jgzl_UD-rZmdMm2v9Mps39ndwCD7U,64
1265
- vellum/workflows/nodes/displayable/bases/api_node/node.py,sha256=hfw6y8Pea-lVtBuvHin4YQJTIxttwztpfc286nHvKq0,2493
1270
+ vellum/workflows/nodes/displayable/bases/api_node/node.py,sha256=YQNoO5xgjd44EzOTe0EVAxWgMLoaWGx_68fxgoEBqto,2487
1266
1271
  vellum/workflows/nodes/displayable/bases/base_prompt_node/__init__.py,sha256=Org3xTvgp1pA0uUXFfnJr29D3HzCey2lEdYF4zbIUgo,70
1267
1272
  vellum/workflows/nodes/displayable/bases/base_prompt_node/node.py,sha256=et_cMMclaKizMUDPgCwh9REisJ8hUdq-W3KnLie-tEo,2426
1268
1273
  vellum/workflows/nodes/displayable/bases/inline_prompt_node/__init__.py,sha256=Hl35IAoepRpE-j4cALaXVJIYTYOF3qszyVbxTj4kS1s,82
@@ -1271,22 +1276,24 @@ vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py,sha256=vbl6L
1271
1276
  vellum/workflows/nodes/displayable/bases/prompt_deployment_node.py,sha256=JjNMiAFgOupUo5EUeHaryG74SCjEECxBZiS8cMECR_c,4378
1272
1277
  vellum/workflows/nodes/displayable/bases/search_node.py,sha256=z8IQg-J46AbRMgFi92M08A220Wf7gU0xE3634ii3T1E,3565
1273
1278
  vellum/workflows/nodes/displayable/code_execution_node/__init__.py,sha256=0FLWMMktpzSnmBMizQglBpcPrP80fzVsoJwJgf822Cg,76
1274
- vellum/workflows/nodes/displayable/code_execution_node/node.py,sha256=zIq2MHlLwxSHpFJiYMUp4F0PWfvbMETWUwHTsXi85W0,7962
1279
+ vellum/workflows/nodes/displayable/code_execution_node/node.py,sha256=8yPoA8yCvk4TODot5Ou09wbonkCfqvPYFc5cOHbwP10,8078
1275
1280
  vellum/workflows/nodes/displayable/code_execution_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1276
1281
  vellum/workflows/nodes/displayable/code_execution_node/tests/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1277
1282
  vellum/workflows/nodes/displayable/code_execution_node/tests/fixtures/main.py,sha256=5QsbmkzSlSbcbWTG_JmIqcP-JNJzOPTKxGzdHos19W4,79
1278
1283
  vellum/workflows/nodes/displayable/code_execution_node/tests/test_code_execution_node.py,sha256=pvkvMOIL94vDP3KUrQh0OF1lELjEFJ6HIDEz5kUqbzo,3377
1279
1284
  vellum/workflows/nodes/displayable/code_execution_node/utils.py,sha256=R0gVJVwn2g3caDr25LBj_mj9JUIbORSS-88MQkvSWQU,215
1280
1285
  vellum/workflows/nodes/displayable/conditional_node/__init__.py,sha256=AS_EIqFdU1F9t8aLmbZU-rLh9ry6LCJ0uj0D8F0L5Uw,72
1281
- vellum/workflows/nodes/displayable/conditional_node/node.py,sha256=0IrCyzLksmYYxDwXQb9_E7E5y1rmxgtmXavfeCzSy04,1026
1286
+ vellum/workflows/nodes/displayable/conditional_node/node.py,sha256=SWfsEQ7G_y3yEnxzMhjtjHF4xZvFdFTds77LrFZHGUU,1020
1282
1287
  vellum/workflows/nodes/displayable/final_output_node/__init__.py,sha256=G7VXM4OWpubvSJtVkGmMNeqgb9GkM7qZT838eL18XU4,72
1283
- vellum/workflows/nodes/displayable/final_output_node/node.py,sha256=ExDKZcWQ-cJeI0FbBoNX2ismKAW709GSvSdTpI7dTsA,1741
1288
+ vellum/workflows/nodes/displayable/final_output_node/node.py,sha256=iH3ZPOstPku_rg4h97Xz5FMaHWVRCjypaamAFzoJzJ0,1854
1284
1289
  vellum/workflows/nodes/displayable/guardrail_node/__init__.py,sha256=Ab5eXmOoBhyV4dMWdzh32HLUmnPIBEK_zFCT38C4Fng,68
1285
1290
  vellum/workflows/nodes/displayable/guardrail_node/node.py,sha256=vctOgn1gUYGIClknGciUjmDRFKlcEbIRZYvzgBaMiVo,3918
1286
1291
  vellum/workflows/nodes/displayable/inline_prompt_node/__init__.py,sha256=gSUOoEZLlrx35-tQhSAd3An8WDwBqyiQh-sIebLU9wU,74
1287
1292
  vellum/workflows/nodes/displayable/inline_prompt_node/node.py,sha256=gZSiATdEwka07GkBm1F_CbqZLXNYdFAvFgT0vE2w1zA,1854
1288
1293
  vellum/workflows/nodes/displayable/merge_node/__init__.py,sha256=J8IC08dSH7P76wKlNuxe1sn7toNGtSQdFirUbtPDEs0,60
1289
1294
  vellum/workflows/nodes/displayable/merge_node/node.py,sha256=ZyPvcTgfPOneOm5Dc2kUOoPkwNJqwRPZSj232akXynA,324
1295
+ vellum/workflows/nodes/displayable/note_node/__init__.py,sha256=KWA3P4fyYJ-fOTky8qNGlcOotQ-HeHJ9AjZt6mRQmCE,58
1296
+ vellum/workflows/nodes/displayable/note_node/node.py,sha256=8rwP7RS1OOyQJ-ZuZBXTCtT2ZW8J6eGD59iKmq_pB24,258
1290
1297
  vellum/workflows/nodes/displayable/prompt_deployment_node/__init__.py,sha256=krX1Hds-TSVYZsx0wJFX4wsAKkEFYOX1ifwRGiIM-EA,82
1291
1298
  vellum/workflows/nodes/displayable/prompt_deployment_node/node.py,sha256=zEgOWgahPr-Jozd97xEqhX3ZelcHcMuKPMiOFb1igXE,2321
1292
1299
  vellum/workflows/nodes/displayable/search_node/__init__.py,sha256=hpBpvbrDYf43DElRZFLzieSn8weXiwNiiNOJurERQbs,62
@@ -1294,17 +1301,17 @@ vellum/workflows/nodes/displayable/search_node/node.py,sha256=k7_S5yWFGZrIV1R5Bs
1294
1301
  vellum/workflows/nodes/displayable/subworkflow_deployment_node/__init__.py,sha256=9yYM6001YZeqI1VOk1QuEM_yrffk_EdsO7qaPzINKds,92
1295
1302
  vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py,sha256=HjKaQ8QaqmdEcwOIg2DoWk__l9cMpR4tYnZ51WQDThk,6714
1296
1303
  vellum/workflows/nodes/displayable/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1297
- vellum/workflows/nodes/displayable/tests/test_inline_text_prompt_node.py,sha256=4ldqjyiQaLTo-yBLqCucbG7C4i3QgY_6OLdlvojH57o,4789
1304
+ vellum/workflows/nodes/displayable/tests/test_inline_text_prompt_node.py,sha256=UwNCIrq2gDpObcosrpiIHFdHZLWarmlS7ez8GanIBDc,4649
1298
1305
  vellum/workflows/nodes/displayable/tests/test_search_node_wth_text_output.py,sha256=AZtodUoX_Fl_ZXDinutAxlsDsfcxEYS0nFL0mcBylW8,6955
1299
1306
  vellum/workflows/nodes/displayable/tests/test_text_prompt_deployment_node.py,sha256=Ee2_1bvWycaVNzKGLsxAcu_3HNvTM_DiwDAeF20ZgBk,2497
1300
- vellum/workflows/nodes/utils.py,sha256=Wb55D2Kzz44_wM8IrTsjyoyBI1vhdFzPEs8tKQtjBw8,773
1307
+ vellum/workflows/nodes/utils.py,sha256=zY0b5WjJtGwVPPLY3ffHUdRREPvyoNwmJDigz5jQRAI,812
1301
1308
  vellum/workflows/outputs/__init__.py,sha256=AyZ4pRh_ACQIGvkf0byJO46EDnSix1ZCAXfvh-ms1QE,94
1302
- vellum/workflows/outputs/base.py,sha256=2khlquCmSBplVSrfcbkbXEujQNm_seq8OTDbIgMKmUE,7159
1309
+ vellum/workflows/outputs/base.py,sha256=aOll71CH_g1RaVO1wl038BqpWH70cD3XXSRxzH0YoRA,8002
1303
1310
  vellum/workflows/ports/__init__.py,sha256=bZuMt-R7z5bKwpu4uPW7LlJeePOQWmCcDSXe5frUY5g,101
1304
- vellum/workflows/ports/node_ports.py,sha256=OMbbwsy6h8wCCycWlll6nfDlEedVjBS7aaYUUYrN1DQ,2763
1305
- vellum/workflows/ports/port.py,sha256=4Y3heJglodE5svzq7om7e-5gqANqnbiqKD3ffQMGLVQ,2463
1311
+ vellum/workflows/ports/node_ports.py,sha256=GCsCejo2THT6Zxx_slegLbd5CvV6iPy9IOZOFjHkCXY,2753
1312
+ vellum/workflows/ports/port.py,sha256=iLYzjIoFk5HWpNyhySf8E1uIuJ3MbAeJGD3yOnnLY70,2843
1306
1313
  vellum/workflows/ports/utils.py,sha256=pEjVNJKw9LhD_cFN-o0MWBOW2ejno7jv26qqzjLxwS4,1662
1307
- vellum/workflows/references/__init__.py,sha256=tKHT1lePWOmDoPkrS7I2kPml_me9-WQwZmCoQzhU6k8,513
1314
+ vellum/workflows/references/__init__.py,sha256=glHFC1VfXmcbNvH5VzFbkT03d8_D7MMcvEcsUBrzLIs,591
1308
1315
  vellum/workflows/references/environment_variable.py,sha256=7FFtiKfc4eyVkkfUbhc666OBNDqvFlMoNQEYmGpEVVE,661
1309
1316
  vellum/workflows/references/execution_count.py,sha256=JILHqt8ELdc9ct-WsVCA5X-rKiP1rmJODw-XTf4kpHI,722
1310
1317
  vellum/workflows/references/external_input.py,sha256=ZSnRIjrTwpWuBcInZMvQQzcDgkeZ1r7-C7I4sRpDNy4,1658
@@ -1318,12 +1325,12 @@ vellum/workflows/references/workflow_input.py,sha256=epspVRZ9n_nxoTxI5Am3GDd2fpU
1318
1325
  vellum/workflows/resolvers/__init__.py,sha256=eH6hTvZO4IciDaf_cf7aM2vs-DkBDyJPycOQevJxQnI,82
1319
1326
  vellum/workflows/resolvers/base.py,sha256=WHra9LRtlTuB1jmuNqkfVE2JUgB61Cyntn8f0b0WZg4,411
1320
1327
  vellum/workflows/runner/__init__.py,sha256=i1iG5sAhtpdsrlvwgH6B-m49JsINkiWyPWs8vyT-bqM,72
1321
- vellum/workflows/runner/runner.py,sha256=59SSOX8YHcZ7ihZ1NGKDk8k1wMrQV94j3o5Zsv9BK8I,23979
1322
- vellum/workflows/runner/types.py,sha256=mGTTmPjL0-vOVRAnazVuXUTsNoD-X7bFHdhfE1orRBE,583
1328
+ vellum/workflows/runner/runner.py,sha256=MavIvMsEJkFxgZb4sd0-vLFWnVBfZIn4AsfVJcqn1rY,24504
1329
+ vellum/workflows/runner/types.py,sha256=UQIGqOuCDgxEQpoJr4ut3wAnAjp4scDWhNhEhYFyLrw,466
1323
1330
  vellum/workflows/state/__init__.py,sha256=yUUdR-_Vl7UiixNDYQZ-GEM_kJI9dnOia75TtuNEsnE,60
1324
1331
  vellum/workflows/state/base.py,sha256=gm4pun9BzYaZbW8I1j7EriUIlAzqQkKT3IBbXPh3FkA,12663
1325
1332
  vellum/workflows/state/context.py,sha256=tpJoOgmx7bmeNrQeOtavOfqTwBbtJCNDqjJ6ssh4gh8,464
1326
- vellum/workflows/state/encoder.py,sha256=jYwC_47gHyMuPRvshWBNJ1SxVXQ1SBCfxvq7iuHjV_g,1688
1333
+ vellum/workflows/state/encoder.py,sha256=kRrqwD0vFCiSRZR3rg8Sjkh8sDEerQQhlvmdSYQAOl8,1741
1327
1334
  vellum/workflows/state/store.py,sha256=VYGBQgN1bpd1as5eGiouV_7scg8QsRs4_1aqZAGIsRQ,793
1328
1335
  vellum/workflows/state/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1329
1336
  vellum/workflows/state/tests/test_state.py,sha256=BQjcdREIK1MPuGhivRUgpynVJLftjEpH9RG3cRKxQEY,3310
@@ -1332,19 +1339,19 @@ vellum/workflows/types/core.py,sha256=llsHFE3XKnVEk_pYoK0s9WUdeninSU5Kmoi7dU4GX0
1332
1339
  vellum/workflows/types/generics.py,sha256=ZkfoRhWs042i5IjA99v2wIhmh1u-Wieo3LzosgGWJVk,600
1333
1340
  vellum/workflows/types/stack.py,sha256=RDSGLkcV612ge8UuAH9TZiEGXxJt0Av2-H5rfzrTVVI,1014
1334
1341
  vellum/workflows/types/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1335
- vellum/workflows/types/tests/test_utils.py,sha256=ucD5JgI_OeqYMDL-sBaHbbUCQqOKvfZYELYq0dCfWHg,2047
1336
- vellum/workflows/types/utils.py,sha256=ErTd_EKMqcTC8jqUuffTg0Dn5oyOWnofHfTg-VqlFqw,5486
1342
+ vellum/workflows/types/tests/test_utils.py,sha256=hlCGh0GW_fY16oMSgu-Lih14TSZXcknWNFqMYCCkdeo,2433
1343
+ vellum/workflows/types/utils.py,sha256=rPQdiMkYgWp_6Iv6pRK0qjmxPrgf11FvaUS8z9i2Opw,5598
1337
1344
  vellum/workflows/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1338
1345
  vellum/workflows/utils/names.py,sha256=QLUqfJ1tmSEeUwBKTTiv_Qk3QGbInC2RSmlXfGXc8Wo,380
1339
1346
  vellum/workflows/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1340
1347
  vellum/workflows/utils/tests/test_names.py,sha256=aOqpyvMsOEK_9mg_-yaNxQDW7QQfwqsYs37PseyLhxw,402
1341
1348
  vellum/workflows/utils/tests/test_vellum_variables.py,sha256=lsYgQV4Iq4ECoVdBNQHSRepHEiSIsccB_KJU7Ap-dJk,777
1342
- vellum/workflows/utils/vellum_variables.py,sha256=JA7hhbJ_9m7KEYFaCv5R6FqYeTRWDpUgKUar1601aTQ,2600
1349
+ vellum/workflows/utils/vellum_variables.py,sha256=wbYejKwjy23ITDRfdGW4d181buvCbZityEp5UTJPl28,3123
1343
1350
  vellum/workflows/vellum_client.py,sha256=ODrq_TSl-drX2aezXegf7pizpWDVJuTXH-j6528t75s,683
1344
1351
  vellum/workflows/workflows/__init__.py,sha256=KY45TqvavCCvXIkyCFMEc0dc6jTMOUci93U2DUrlZYc,66
1345
- vellum/workflows/workflows/base.py,sha256=NbQ3jR9veKdfK5S9qPkiJvy16l19YyQxzops_Y09wMw,12872
1346
- vellum_ai-0.10.4.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
1347
- vellum_ai-0.10.4.dist-info/METADATA,sha256=02ud_MZb29bNWRkoShUsfJ1lKb37VJ1qNIxure9-TwE,5011
1348
- vellum_ai-0.10.4.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
1349
- vellum_ai-0.10.4.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
1350
- vellum_ai-0.10.4.dist-info/RECORD,,
1352
+ vellum/workflows/workflows/base.py,sha256=QxIm0zCic8P-y0NNLdqgC1YKTu-3TmMJ-wH1nUylguA,13689
1353
+ vellum_ai-0.10.7.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
1354
+ vellum_ai-0.10.7.dist-info/METADATA,sha256=ORDcBMHiWjSs9HCgB8N2aas_2KPUBSDX96vbojp8F6w,5128
1355
+ vellum_ai-0.10.7.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
1356
+ vellum_ai-0.10.7.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
1357
+ vellum_ai-0.10.7.dist-info/RECORD,,
@@ -0,0 +1,66 @@
1
+ <!-- START doctoc generated TOC please keep comment here to allow auto update -->
2
+ <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
3
+
4
+ - [Vellum CLI](#vellum-cli)
5
+ - [Updating this README](#updating-this-readme)
6
+ - [Development](#development)
7
+ - [vellum pull](#vellum-pull)
8
+ - [Step 1. Run the Codegen Service Locally](#step-1-run-the-codegen-service-locally)
9
+ - [Step 2. Run the Vellum Webserver Locally](#step-2-run-the-vellum-webserver-locally)
10
+ - [Step 3. Run the Vellum CLI Locally](#step-3-run-the-vellum-cli-locally)
11
+
12
+ <!-- END doctoc generated TOC please keep comment here to allow auto update -->
13
+
14
+ # Vellum CLI
15
+
16
+ This contribution guide is for the Vellum CLI, which is the command-line interface connecting Vellum SDKs to the Vellum application.
17
+
18
+ **Note:** This directory is _not_ accepting contributions from anyone besides Vellum employees. Please open an issue for feedback or feature requests.
19
+
20
+ # Updating this README
21
+
22
+ This README is generated using [doctoc](https://github.com/thlorenz/doctoc)
23
+
24
+ To install doctoc, run `npm install -g doctoc`
25
+
26
+ To update the table of contents, run `doctoc README.md`
27
+
28
+ # Development
29
+
30
+ ## vellum pull
31
+
32
+ If you want to run `vellum pull` locally end to end, here are the steps you'll need to follow.
33
+
34
+ ### Step 1. Run the Codegen Service Locally
35
+
36
+ - Pull down the private `vellum-ai/codegen-service` repo [here](https://github.com/vellum-ai/codegen-service)
37
+ - Follow its README to run the service locally. This will spin up a local webserver running on `localhost:5111`.
38
+ - By default, when you run that service, it'll use the latest published `@vellum-ai/vellum-codegen` npm package.
39
+ However, you'll often want to instead point it to the local version defined here in this repo under the `codegen/`
40
+ directory (which is the source of where @vellum-ai/vellum-codegen is published from). The README in the
41
+ codegen-service repo should show you how to do that.
42
+
43
+ ### Step 2. Run the Vellum Webserver Locally
44
+
45
+ - Pull down the private `vellum-ai/vellum` repo [here](https://github.com/vellum-ai/vellum)
46
+ - Follow its README to set up the Vellum backend
47
+ - Run `make run-backend-dev`. This will start up the Vellum backend on `localhost:8000` and have it point to the
48
+ local codegen-service running on `localhost:5111`.
49
+
50
+ ### Step 3. Run the Vellum CLI Locally
51
+
52
+ - From within the root of this repo, run `pip install -e .` to install the Vellum CLI locally.
53
+ - Ensure you have a valid workflow config in your `pyproject.toml` file. For example:
54
+ ```toml
55
+ [[tool.vellum.workflows]]
56
+ module = "examples.basic_rag_workflow"
57
+ workflow_sandbox_id = "<your-workflow-sandbox-id>"
58
+ ```
59
+ - Ensure you have an API key stored in your `.env` file:
60
+ ```
61
+ VELLUM_API_KEY="<your-api-key>"
62
+ ```
63
+ - Run the cli command and point it to the local Vellum backend running on `localhost:8000`. For example:
64
+ ```
65
+ VELLUM_API_URL="http://localhost:8000" vellum pull examples.basic_rag_workflow
66
+ ```
vellum_cli/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # Vellum CLI
2
+
3
+ <!-- TODO: To be generated from the generator repo and shared with docs -->
@@ -1,6 +1,6 @@
1
1
  from dataclasses import dataclass
2
2
  from uuid import UUID
3
- from typing import TypeVar
3
+ from typing import Optional, TypeVar
4
4
 
5
5
 
6
6
  @dataclass
@@ -20,6 +20,7 @@ WorkflowMetaDisplayOverridesType = TypeVar("WorkflowMetaDisplayOverridesType", b
20
20
  @dataclass
21
21
  class WorkflowInputsDisplayOverrides:
22
22
  id: UUID
23
+ color: Optional[str] = None
23
24
 
24
25
 
25
26
  @dataclass
@@ -1,11 +1,8 @@
1
1
  from functools import cached_property
2
2
  import inspect
3
3
  from uuid import UUID
4
- from typing import TYPE_CHECKING, Any, Dict, Generic, Optional, Type, TypeVar, get_args
4
+ from typing import TYPE_CHECKING, Any, Dict, Generic, Optional, Type, TypeVar, get_args, get_origin, cast
5
5
 
6
- from vellum_ee.workflows.display.nodes.types import NodeOutputDisplay, PortDisplay, PortDisplayOverrides
7
- from vellum_ee.workflows.display.utils.uuids import uuid4_from_hash
8
- from vellum_ee.workflows.display.vellum import CodeResourceDefinition, NodeDefinition
9
6
  from vellum.workflows.nodes.bases.base import BaseNode
10
7
  from vellum.workflows.nodes.utils import get_wrapped_node, has_wrapped_node
11
8
  from vellum.workflows.ports import Port
@@ -14,6 +11,9 @@ from vellum.workflows.types.core import JsonObject
14
11
  from vellum.workflows.types.generics import NodeType
15
12
  from vellum.workflows.types.utils import get_original_base
16
13
  from vellum.workflows.utils.names import pascal_to_title_case
14
+ from vellum_ee.workflows.display.nodes.types import NodeOutputDisplay, PortDisplay, PortDisplayOverrides
15
+ from vellum_ee.workflows.display.utils.uuids import uuid4_from_hash
16
+ from vellum_ee.workflows.display.vellum import CodeResourceDefinition, NodeDefinition
17
17
 
18
18
  if TYPE_CHECKING:
19
19
  from vellum_ee.workflows.display.types import WorkflowDisplayContext
@@ -92,6 +92,29 @@ class BaseNodeDisplay(Generic[NodeType]):
92
92
  if node_display_attribute is None:
93
93
  return None
94
94
 
95
+ origin = get_origin(attribute_type)
96
+ args = get_args(attribute_type)
97
+
98
+ if origin is not None:
99
+ # Handle Dict
100
+ if origin is dict and isinstance(node_display_attribute, dict):
101
+ if len(args) == 2:
102
+ key_type, value_type = args
103
+ if all(isinstance(k, key_type) and isinstance(v, value_type) for k, v in
104
+ node_display_attribute.items()):
105
+ return cast(_NodeDisplayAttrType, node_display_attribute)
106
+ raise ValueError(f"Node {cls.__name__} must define an explicit {attribute} of type {attribute_type}.")
107
+
108
+ # Handle List
109
+ elif origin is list and isinstance(node_display_attribute, list):
110
+ if len(args) == 1:
111
+ item_type = args[0]
112
+ if all(isinstance(item, item_type) for item in node_display_attribute):
113
+ return cast(_NodeDisplayAttrType, node_display_attribute)
114
+ raise ValueError(f"Node {cls.__name__} must define an explicit {attribute} of type {attribute_type}.")
115
+
116
+ raise ValueError(f"Node {cls.__name__} must define an explicit {attribute} of type {attribute_type}.")
117
+
95
118
  if isinstance(node_display_attribute, attribute_type):
96
119
  return node_display_attribute
97
120
 
@@ -7,6 +7,7 @@ from .inline_prompt_node import BaseInlinePromptNodeDisplay
7
7
  from .inline_subworkflow_node import BaseInlineSubworkflowNodeDisplay
8
8
  from .map_node import BaseMapNodeDisplay
9
9
  from .merge_node import BaseMergeNodeDisplay
10
+ from .note_node import BaseNoteNodeDisplay
10
11
  from .prompt_deployment_node import BasePromptDeploymentNodeDisplay
11
12
  from .search_node import BaseSearchNodeDisplay
12
13
  from .subworkflow_deployment_node import BaseSubworkflowDeploymentNodeDisplay
@@ -23,6 +24,7 @@ __all__ = [
23
24
  "BaseAPINodeDisplay",
24
25
  "BaseMapNodeDisplay",
25
26
  "BaseMergeNodeDisplay",
27
+ "BaseNoteNodeDisplay",
26
28
  "BaseSearchNodeDisplay",
27
29
  "BaseSubworkflowDeploymentNodeDisplay",
28
30
  "BaseTemplatingNodeDisplay",
@@ -1,13 +1,13 @@
1
1
  from uuid import UUID
2
2
  from typing import Any, ClassVar, Dict, Generic, Optional, TypeVar, cast
3
3
 
4
+ from vellum.workflows.nodes.displayable import APINode
5
+ from vellum.workflows.references.output import OutputReference
6
+ from vellum.workflows.types.core import JsonArray, JsonObject
4
7
  from vellum_ee.workflows.display.nodes.base_node_vellum_display import BaseNodeVellumDisplay
5
8
  from vellum_ee.workflows.display.nodes.utils import raise_if_descriptor
6
9
  from vellum_ee.workflows.display.nodes.vellum.utils import create_node_input
7
10
  from vellum_ee.workflows.display.types import WorkflowDisplayContext
8
- from vellum.workflows.nodes.displayable import APINode
9
- from vellum.workflows.references.output import OutputReference
10
- from vellum.workflows.types.core import JsonArray, JsonObject
11
11
 
12
12
  _APINodeType = TypeVar("_APINodeType", bound=APINode)
13
13
 
@@ -1,14 +1,14 @@
1
1
  from uuid import UUID
2
2
  from typing import ClassVar, Generic, Optional, TypeVar
3
3
 
4
- from vellum_ee.workflows.display.nodes.base_node_vellum_display import BaseNodeVellumDisplay
5
- from vellum_ee.workflows.display.nodes.utils import raise_if_descriptor
6
- from vellum_ee.workflows.display.nodes.vellum.utils import create_node_input
7
- from vellum_ee.workflows.display.types import WorkflowDisplayContext
8
4
  from vellum.workflows.nodes.displayable.code_execution_node import CodeExecutionNode
9
5
  from vellum.workflows.nodes.displayable.code_execution_node.utils import read_file_from_path
10
6
  from vellum.workflows.types.core import JsonObject
11
7
  from vellum.workflows.utils.vellum_variables import primitive_type_to_vellum_variable_type
8
+ from vellum_ee.workflows.display.nodes.base_node_vellum_display import BaseNodeVellumDisplay
9
+ from vellum_ee.workflows.display.nodes.utils import raise_if_descriptor
10
+ from vellum_ee.workflows.display.nodes.vellum.utils import create_node_input
11
+ from vellum_ee.workflows.display.types import WorkflowDisplayContext
12
12
 
13
13
  _CodeExecutionNodeType = TypeVar("_CodeExecutionNodeType", bound=CodeExecutionNode)
14
14