vellum-ai 0.14.44__py3-none-any.whl → 0.14.46__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.
- vellum/client/core/client_wrapper.py +1 -1
- vellum/client/core/pydantic_utilities.py +7 -1
- vellum/workflows/nodes/bases/base.py +1 -0
- vellum/workflows/nodes/bases/tests/test_base_node.py +20 -0
- vellum/workflows/nodes/displayable/bases/prompt_deployment_node.py +8 -14
- vellum/workflows/nodes/displayable/code_execution_node/tests/test_code_execution_node.py +62 -0
- vellum/workflows/nodes/displayable/code_execution_node/utils.py +3 -54
- vellum/workflows/nodes/displayable/tests/test_text_prompt_deployment_node.py +5 -6
- vellum/workflows/nodes/utils.py +4 -0
- vellum/workflows/ports/port.py +13 -3
- vellum/workflows/types/code_execution_node_wrappers.py +64 -0
- vellum/workflows/types/tests/test_utils.py +3 -3
- vellum/workflows/types/utils.py +31 -10
- vellum/workflows/vellum_client.py +19 -7
- {vellum_ai-0.14.44.dist-info → vellum_ai-0.14.46.dist-info}/METADATA +1 -1
- {vellum_ai-0.14.44.dist-info → vellum_ai-0.14.46.dist-info}/RECORD +56 -53
- vellum_cli/config.py +7 -2
- vellum_cli/push.py +5 -1
- vellum_cli/tests/test_push.py +192 -8
- vellum_ee/workflows/display/nodes/base_node_display.py +4 -173
- vellum_ee/workflows/display/nodes/vellum/conditional_node.py +1 -1
- vellum_ee/workflows/display/nodes/vellum/final_output_node.py +2 -1
- vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py +5 -6
- vellum_ee/workflows/display/nodes/vellum/retry_node.py +3 -3
- vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py +5 -6
- vellum_ee/workflows/display/nodes/vellum/tests/test_prompt_deployment_node.py +106 -0
- vellum_ee/workflows/display/nodes/vellum/tests/test_subworkflow_deployment_node.py +109 -0
- vellum_ee/workflows/display/nodes/vellum/try_node.py +3 -3
- vellum_ee/workflows/display/tests/test_base_workflow_display.py +1 -0
- vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_adornments_serialization.py +73 -111
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py +0 -1
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py +0 -3
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py +0 -4
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_default_state_serialization.py +0 -1
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py +0 -1
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_generic_node_serialization.py +0 -1
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py +0 -1
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py +18 -2
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py +10 -1
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py +0 -1
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py +2 -3
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py +0 -1
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py +2 -3
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py +0 -1
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py +1 -2
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py +0 -1
- vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py +5 -55
- vellum_ee/workflows/display/types.py +3 -0
- vellum_ee/workflows/display/utils/expressions.py +222 -2
- vellum_ee/workflows/display/utils/vellum.py +1 -79
- vellum_ee/workflows/display/workflows/base_workflow_display.py +59 -37
- vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py +3 -0
- vellum_ee/workflows/display/workflows/tests/test_workflow_display.py +98 -0
- {vellum_ai-0.14.44.dist-info → vellum_ai-0.14.46.dist-info}/LICENSE +0 -0
- {vellum_ai-0.14.44.dist-info → vellum_ai-0.14.46.dist-info}/WHEEL +0 -0
- {vellum_ai-0.14.44.dist-info → vellum_ai-0.14.46.dist-info}/entry_points.txt +0 -0
@@ -2,13 +2,13 @@ vellum_cli/CONTRIBUTING.md,sha256=FtDC7BGxSeMnwCXAUssFsAIElXtmJE-O5Z7BpolcgvI,29
|
|
2
2
|
vellum_cli/README.md,sha256=2NudRoLzWxNKqnuVy1JuQ7DerIaxWGYkrH8kMd-asIE,90
|
3
3
|
vellum_cli/__init__.py,sha256=7aO9XFnaEVRiVshn86cFudebFUccT-gV8xIARJWqKYo,12257
|
4
4
|
vellum_cli/aliased_group.py,sha256=ugW498j0yv4ALJ8vS9MsO7ctDW7Jlir9j6nE_uHAP8c,3363
|
5
|
-
vellum_cli/config.py,sha256=
|
5
|
+
vellum_cli/config.py,sha256=v5BmZ-t_v4Jmqd7KVuQMZF2pRI-rbMspSkVYXIRoTmI,9448
|
6
6
|
vellum_cli/image_push.py,sha256=8DDvRDJEZ-FukUCqGW1827bg1ybF4xBbx9WyqWYQE-g,6816
|
7
7
|
vellum_cli/init.py,sha256=WpnMXPItPmh0f0bBGIer3p-e5gu8DUGwSArT_FuoMEw,5093
|
8
8
|
vellum_cli/logger.py,sha256=PuRFa0WCh4sAGFS5aqWB0QIYpS6nBWwPJrIXpWxugV4,1022
|
9
9
|
vellum_cli/ping.py,sha256=p_BCCRjgPhng6JktuECtkDQLbhopt6JpmrtGoLnLJT8,1161
|
10
10
|
vellum_cli/pull.py,sha256=2hSJGeqooevMb--mcvRLQ1GYT-9290cI7VdSRifzmTg,12561
|
11
|
-
vellum_cli/push.py,sha256=
|
11
|
+
vellum_cli/push.py,sha256=nWHLDi_w0LXycNkVv00CiNwY469BcTNBn7NphWpCA7E,9711
|
12
12
|
vellum_cli/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
13
13
|
vellum_cli/tests/conftest.py,sha256=AFYZryKA2qnUuCPBxBKmHLFoPiE0WhBFFej9tNwSHdc,1526
|
14
14
|
vellum_cli/tests/test_config.py,sha256=uvKGDc8BoVyT9_H0Z-g8469zVxomn6Oi3Zj-vK7O_wU,2631
|
@@ -17,7 +17,7 @@ vellum_cli/tests/test_init.py,sha256=8UOc_ThfouR4ja5cCl_URuLk7ohr9JXfCnG4yka1OUQ
|
|
17
17
|
vellum_cli/tests/test_main.py,sha256=qDZG-aQauPwBwM6A2DIu1494n47v3pL28XakTbLGZ-k,272
|
18
18
|
vellum_cli/tests/test_ping.py,sha256=3ucVRThEmTadlV9LrJdCCrr1Ofj3rOjG6ue0BNR2UC0,2523
|
19
19
|
vellum_cli/tests/test_pull.py,sha256=iTxVbJGuehvgNt8Vp9W3Y5Bvaocfws8bl8LMGEbc_qQ,47508
|
20
|
-
vellum_cli/tests/test_push.py,sha256=
|
20
|
+
vellum_cli/tests/test_push.py,sha256=uNMmPG9Z0uRN6xYYMzBGZaCXJZkAHWcbcSJRJ4eQk70,31182
|
21
21
|
vellum_ee/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
22
22
|
vellum_ee/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
23
23
|
vellum_ee/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -26,7 +26,7 @@ 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=
|
29
|
+
vellum_ee/workflows/display/nodes/base_node_display.py,sha256=0wuzviC45kEd26LaXinIsqSpH6O4q2xLuc2esd0VCGc,14633
|
30
30
|
vellum_ee/workflows/display/nodes/get_node_display_class.py,sha256=5QuXpMth0HmZuC-e8LRKOLbrVXSL-ylMR5IWae8eNmc,2113
|
31
31
|
vellum_ee/workflows/display/nodes/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
32
32
|
vellum_ee/workflows/display/nodes/tests/test_base_node_display.py,sha256=Z4Mf7xLCNiblSbpKI0BrV5modQr-ZcFzhfir_OSyTTs,2997
|
@@ -36,70 +36,72 @@ vellum_ee/workflows/display/nodes/vellum/__init__.py,sha256=nUIgH2s0-7IbQRNrBhLP
|
|
36
36
|
vellum_ee/workflows/display/nodes/vellum/api_node.py,sha256=QCaW_Q9CjLnkzv7dbUKyrZGoumov-C0in7lh7uDar7s,8579
|
37
37
|
vellum_ee/workflows/display/nodes/vellum/base_adornment_node.py,sha256=rJbHZBg9A_v2bjk-R6MfWzShcrS2gcKIOyYGoqwTx8s,6353
|
38
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=
|
39
|
+
vellum_ee/workflows/display/nodes/vellum/conditional_node.py,sha256=MrvyiYD0qgQf3-ZYFcurQtin3FagAHGRoT7zYGiIao0,11150
|
40
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=
|
41
|
+
vellum_ee/workflows/display/nodes/vellum/final_output_node.py,sha256=jUDI2FwVaw0Or4zJL58J_g0S--i59Hzik60s_Es_M-8,3098
|
42
42
|
vellum_ee/workflows/display/nodes/vellum/guardrail_node.py,sha256=nVOixouitWwatZLbSBddeMfYQ2doZ_tCdb1ashq3pqA,2269
|
43
43
|
vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py,sha256=-nPccukjzM2kJiIwFE3orVahB14zqGGvITQsTBWS3TE,8884
|
44
44
|
vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py,sha256=yZO9UNLj8sAtw64bLSN2wtdPMGoQ2oAVbadrxfL3wsE,5551
|
45
45
|
vellum_ee/workflows/display/nodes/vellum/map_node.py,sha256=T3a6Lv51SC1506bTVd8T9y_KVmP2VP4IQarAO87xdmM,3755
|
46
46
|
vellum_ee/workflows/display/nodes/vellum/merge_node.py,sha256=yBWeN4T_lOsDVnNOKWRiT7JYKu0IR5Fx2z99iq6QKSA,3273
|
47
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=
|
49
|
-
vellum_ee/workflows/display/nodes/vellum/retry_node.py,sha256=
|
48
|
+
vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py,sha256=NCh9T7M4V1w-5i_bfYdI6L4jj1C_JGBuVBb0nXXsN38,3239
|
49
|
+
vellum_ee/workflows/display/nodes/vellum/retry_node.py,sha256=X3xnlAU5JisL0jRvaG_V9RvTF7ZlGufTO8tXLLVhGIg,3280
|
50
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=
|
51
|
+
vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py,sha256=TIMpOL0dm__xvnDHotCEjBQWCp2hgRDJUnRuPMBrZcE,2592
|
52
52
|
vellum_ee/workflows/display/nodes/vellum/templating_node.py,sha256=Nk5pxly4d-kactJ3Z4SLErZCm8hicyj2rCArZw8pW9k,3283
|
53
53
|
vellum_ee/workflows/display/nodes/vellum/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
54
54
|
vellum_ee/workflows/display/nodes/vellum/tests/test_code_execution_node.py,sha256=OoNO-BstB96F-VMK6FZ9aXyi-0wyNePo6HiaJC6SYRw,3880
|
55
55
|
vellum_ee/workflows/display/nodes/vellum/tests/test_error_node.py,sha256=HoIph_rNlHFNBMqBq1a_eyFwPzBIazdH1yQeRhgba14,1510
|
56
56
|
vellum_ee/workflows/display/nodes/vellum/tests/test_note_node.py,sha256=uiMB0cOxKZzos7YKnj4ef4DFa2bOvZJWIv-hfbUV6Go,1218
|
57
|
+
vellum_ee/workflows/display/nodes/vellum/tests/test_prompt_deployment_node.py,sha256=kZQn7W4CWFLc1FiayvvYCPQIcm-3bPNkcjxWMQowAIE,3692
|
57
58
|
vellum_ee/workflows/display/nodes/vellum/tests/test_prompt_node.py,sha256=6Q6rfEwjjSEgSX24aFZjS3K6l8G2YRYBUNC2o5BE8Tk,6101
|
58
59
|
vellum_ee/workflows/display/nodes/vellum/tests/test_retry_node.py,sha256=h93ysolmbo2viisyhRnXKHPxiDK0I_dSAbYoHFYIoO4,1953
|
60
|
+
vellum_ee/workflows/display/nodes/vellum/tests/test_subworkflow_deployment_node.py,sha256=mQW6eIduImP9WKnDUsTskhJEPC4fqzF91GFS_iXKZPQ,3780
|
59
61
|
vellum_ee/workflows/display/nodes/vellum/tests/test_templating_node.py,sha256=PK7v0AWCgH9gWRfAwGPUGCRLbIH3NSyoAYa9W15ggAo,3321
|
60
62
|
vellum_ee/workflows/display/nodes/vellum/tests/test_try_node.py,sha256=Khjsb53PKpZuyhKoRMgKAL45eGp5hZqXvHmVeQWRw4w,2289
|
61
63
|
vellum_ee/workflows/display/nodes/vellum/tests/test_utils.py,sha256=3LS1O4DGPWit05oj_ubeW8AlHGnoBxdUMferGQuAiZs,4851
|
62
|
-
vellum_ee/workflows/display/nodes/vellum/try_node.py,sha256=
|
64
|
+
vellum_ee/workflows/display/nodes/vellum/try_node.py,sha256=z9Omo676RRc7mQjLoL7hjiHhUj0OWVLhrrb97YTN4QA,4086
|
63
65
|
vellum_ee/workflows/display/nodes/vellum/utils.py,sha256=oICunzyaXPs0tYnW5zH1r93Bx35MSH7mcD-n0DEWRok,4978
|
64
66
|
vellum_ee/workflows/display/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
65
|
-
vellum_ee/workflows/display/tests/test_base_workflow_display.py,sha256=
|
67
|
+
vellum_ee/workflows/display/tests/test_base_workflow_display.py,sha256=iZN-uTaI77i_U7YwncVj1X0EsIzDDvgzs0KPjEqbEyM,9319
|
66
68
|
vellum_ee/workflows/display/tests/workflow_serialization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
67
69
|
vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
68
70
|
vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/conftest.py,sha256=XOQDDRiG46etxTC7-_RUEutoNumXc02fo7oho4GYM0c,1900
|
69
|
-
vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_adornments_serialization.py,sha256=
|
71
|
+
vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_adornments_serialization.py,sha256=tsjGM-jOurPSkDIbrDFdjNLmkI1fPNPAw3J9-l9knCw,12848
|
70
72
|
vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_attributes_serialization.py,sha256=m9KpVN55_bHiooZOJLm7doRewhcTK53weVYRiglCJX0,19578
|
71
73
|
vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_outputs_serialization.py,sha256=s6_mnk0pkztU59wYpSfOFpMhAJaRjmyfxM6WJGtnD4Y,6456
|
72
74
|
vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_ports_serialization.py,sha256=PkSgghJDz0fpDB72HHPjLjo8LkZk-HpUkCQzRLX-iVw,40611
|
73
75
|
vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_trigger_serialization.py,sha256=dsJr8I9AdPwMOGszirfNDzZP2Ychd94aAKuPXAzknMk,4632
|
74
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py,sha256=
|
75
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py,sha256=
|
76
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py,sha256=
|
77
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_default_state_serialization.py,sha256=
|
78
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py,sha256=
|
79
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_generic_node_serialization.py,sha256=
|
80
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py,sha256=
|
76
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py,sha256=xo5RRyv4TTTauy2TWtMXzYFSGa-nvxTa352-xu-pAIw,15815
|
77
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py,sha256=yX-ICQs8Wf7ksSH71hTbApcE_c-7a_-6AAqRIVkf_Ys,29639
|
78
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py,sha256=88IQkkTlbWHe1FyV7iwBhWi4iMB154VQm_oXgU0oGsE,53568
|
79
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_default_state_serialization.py,sha256=I0f24qbterFb20X4N2O6IvdbgR71juE2t8d6ZdkwgnE,8605
|
80
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py,sha256=2k9GZ_gNa9795v2dTVN6Gvp_wXoa4gTRLnWIRRfxhOY,5890
|
81
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_generic_node_serialization.py,sha256=kLOnUNn-r1w1JXNQcVKe-Vp-fKhSfuDBuDqrjGkFZ3U,5544
|
82
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py,sha256=v07cILUzS5iFYDrSOAXK93yz50-FtxLaMYMwoaPOv20,7374
|
81
83
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_prompt_node_serialization.py,sha256=8NiFJLd9vVK8MheYs7TJ3PqYDmtWVXrUNz40E33Y4gA,659
|
82
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py,sha256=
|
83
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=
|
84
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py,sha256=
|
85
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py,sha256=
|
86
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py,sha256=
|
87
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py,sha256=
|
88
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py,sha256=
|
89
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py,sha256=
|
90
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py,sha256=
|
91
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256
|
92
|
-
vellum_ee/workflows/display/types.py,sha256=
|
84
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py,sha256=u2nquKoO3o2xIkU_uFPOb_s5YoLmULiq09vb6Ee0Cqw,21415
|
85
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=3gZuNM8sT6ovVaeoAvd2JoyKwuxokvowlhH8kwDUoZ8,16559
|
86
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py,sha256=IIJt7YZBzkhNtbmaMwCX4ENs58QtSIIoBHlMR6OwGU8,8342
|
87
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py,sha256=mLr_1Ow5NZYSLzzEZPup14LckuT8ivOvq9Lz85pGj0c,8602
|
88
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py,sha256=K0mECBUyTNX4I468goeaRf93N7Qfizoc1ctCH5_nNys,12936
|
89
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py,sha256=KkYZc_bZuq1lmDcvUz3QxIqJLpQPCZioD1FHUNsMJY8,11211
|
90
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py,sha256=aZaqRDrkO3ytcmdM2eKJqHSt60MF070NMj6M2vgzOKc,7711
|
91
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py,sha256=r748dpS13HtwY7t_KQFExFssxRy0xI2d-wxmhiUHRe0,3850
|
92
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py,sha256=EL5kfakuoEcwD85dGjhMta-J-PpCHRSDoc80SdbBrQk,2769
|
93
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256=RmFUDx8dYdfsOE2CGLvdXqNNRtLLpVzXDN8dqZyMcZ8,5822
|
94
|
+
vellum_ee/workflows/display/types.py,sha256=i4T7ElU5b5h-nA1i3scmEhO1BqmNDc4eJDHavATD88w,2821
|
93
95
|
vellum_ee/workflows/display/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
94
96
|
vellum_ee/workflows/display/utils/exceptions.py,sha256=LSwwxCYNxFkf5XMUcFkaZKpQ13OSrI7y_bpEUwbKVk0,169
|
95
|
-
vellum_ee/workflows/display/utils/expressions.py,sha256=
|
97
|
+
vellum_ee/workflows/display/utils/expressions.py,sha256=Q0Vf-88wtbOIM1ZRkAaF5tMZc2V-i8LeZ32wFmHFmZg,10642
|
96
98
|
vellum_ee/workflows/display/utils/registry.py,sha256=fWIm5Jj-10gNFjgn34iBu4RWv3Vd15ijtSN0V97bpW8,1513
|
97
|
-
vellum_ee/workflows/display/utils/vellum.py,sha256=
|
99
|
+
vellum_ee/workflows/display/utils/vellum.py,sha256=HDe1vtIaU35OEg4oC1KC6WNwhw5Laf_mNURorzbeutQ,5418
|
98
100
|
vellum_ee/workflows/display/vellum.py,sha256=o7mq_vk2Yapu9DDKRz5l76h8EmCAypWGQYe6pryrbB8,3576
|
99
101
|
vellum_ee/workflows/display/workflows/__init__.py,sha256=kapXsC67VJcgSuiBMa86FdePG5A9kMB5Pi4Uy1O2ob4,207
|
100
|
-
vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=
|
101
|
-
vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py,sha256=
|
102
|
-
vellum_ee/workflows/display/workflows/tests/test_workflow_display.py,sha256=
|
102
|
+
vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=NuWlnGNe3Htcfh-l_8e37uitdUsy6WZNB7W7dYcCoUg,33355
|
103
|
+
vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py,sha256=gxz76AeCqgAZ9D2lZeTiZzxY9eMgn3qOSfVgiqYcOh8,2028
|
104
|
+
vellum_ee/workflows/display/workflows/tests/test_workflow_display.py,sha256=U0LsUqjJ-5qrkqgFsvdWzqWX7OHEMzsDCWrXR1xyzp0,15599
|
103
105
|
vellum_ee/workflows/display/workflows/vellum_workflow_display.py,sha256=aaKdmWrgEe5YyV4zuDY_4E3y-l59rIHQnNGiPj2OWxQ,359
|
104
106
|
vellum_ee/workflows/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
105
107
|
vellum_ee/workflows/server/virtual_file_loader.py,sha256=7JphJcSO3H85qiC2DpFfBWjC3JjrbRmoynBC6KKHVsA,2710
|
@@ -130,12 +132,12 @@ vellum/client/README.md,sha256=JkCJjmMZl4jrPj46pkmL9dpK4gSzQQmP5I7z4aME4LY,4749
|
|
130
132
|
vellum/client/__init__.py,sha256=Z-JHK2jGxhtTtmkLeOaUGGJWIUNYGNVBLvUewC6lp6w,118148
|
131
133
|
vellum/client/core/__init__.py,sha256=SQ85PF84B9MuKnBwHNHWemSGuy-g_515gFYNFhvEE0I,1438
|
132
134
|
vellum/client/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
|
133
|
-
vellum/client/core/client_wrapper.py,sha256=
|
135
|
+
vellum/client/core/client_wrapper.py,sha256=Bo-z8mq3B7ugaNmdHcHDd0_iCRPsJMoD6YQfXPjlnC8,1869
|
134
136
|
vellum/client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
|
135
137
|
vellum/client/core/file.py,sha256=X9IbmkZmB2bB_DpmZAO3crWdXagOakAyn6UCOCImCPg,2322
|
136
138
|
vellum/client/core/http_client.py,sha256=R0pQpCppnEtxccGvXl4uJ76s7ro_65Fo_erlNNLp_AI,19228
|
137
139
|
vellum/client/core/jsonable_encoder.py,sha256=qaF1gtgH-kQZb4kJskETwcCsOPUof-NnYVdszHkb-dM,3656
|
138
|
-
vellum/client/core/pydantic_utilities.py,sha256=
|
140
|
+
vellum/client/core/pydantic_utilities.py,sha256=DE9FvWR2EYihzbtOvFJudEExH7XKH_fjSHGm-b5UhJc,12268
|
139
141
|
vellum/client/core/query_encoder.py,sha256=ekulqNd0j8TgD7ox-Qbz7liqX8-KP9blvT9DsRCenYM,2144
|
140
142
|
vellum/client/core/remove_none_from_dict.py,sha256=EU9SGgYidWq7SexuJbNs4-PZ-5Bl3Vppd864mS6vQZw,342
|
141
143
|
vellum/client/core/request_options.py,sha256=5cCGt5AEGgtP5xifDl4oVQUmSjlIA8FmRItAlJawM18,1417
|
@@ -1536,11 +1538,11 @@ vellum/workflows/inputs/tests/test_inputs.py,sha256=lioA8917mFLYq7Ml69UNkqUjcWbb
|
|
1536
1538
|
vellum/workflows/logging.py,sha256=_a217XogktV4Ncz6xKFz7WfYmZAzkfVRVuC0rWob8ls,437
|
1537
1539
|
vellum/workflows/nodes/__init__.py,sha256=aVdQVv7Y3Ro3JlqXGpxwaU2zrI06plDHD2aumH5WUIs,1157
|
1538
1540
|
vellum/workflows/nodes/bases/__init__.py,sha256=cniHuz_RXdJ4TQgD8CBzoiKDiPxg62ErdVpCbWICX64,58
|
1539
|
-
vellum/workflows/nodes/bases/base.py,sha256=
|
1541
|
+
vellum/workflows/nodes/bases/base.py,sha256=c7--RMKBs215xOshoL_tdtvP8i4k1eT9BmRVhQXF5m4,15186
|
1540
1542
|
vellum/workflows/nodes/bases/base_adornment_node.py,sha256=Ao2opOW4kgNoYXFF9Pk7IMpVZdy6luwrjcqEwU5Q9V0,3404
|
1541
1543
|
vellum/workflows/nodes/bases/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1542
1544
|
vellum/workflows/nodes/bases/tests/test_base_adornment_node.py,sha256=fXZI9KqpS4XMBrBnIEkK3foHaBVvyHwYcQWWDKay7ic,1148
|
1543
|
-
vellum/workflows/nodes/bases/tests/test_base_node.py,sha256=
|
1545
|
+
vellum/workflows/nodes/bases/tests/test_base_node.py,sha256=hWt90sNvQpUzcttRzQxBBUQXA0A5Mj-Is7awRKYtlNU,8503
|
1544
1546
|
vellum/workflows/nodes/core/__init__.py,sha256=5zDMCmyt1v0HTJzlUBwq3U9L825yZGZhT9JL18-mRR4,455
|
1545
1547
|
vellum/workflows/nodes/core/error_node/__init__.py,sha256=g7RRnlHhqu4qByfLjBwCunmgGA8dI5gNsjS3h6TwlSI,60
|
1546
1548
|
vellum/workflows/nodes/core/error_node/node.py,sha256=MFHU5vITYSK-L9CuMZ49In2ZeNLWnhZD0f8r5dWvb5Y,1270
|
@@ -1578,7 +1580,7 @@ vellum/workflows/nodes/displayable/bases/inline_prompt_node/constants.py,sha256=
|
|
1578
1580
|
vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py,sha256=wqN1EjyjTL6McUmlkHWu3GXVzcNaqDjavvmKUHDaVqg,10623
|
1579
1581
|
vellum/workflows/nodes/displayable/bases/inline_prompt_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1580
1582
|
vellum/workflows/nodes/displayable/bases/inline_prompt_node/tests/test_inline_prompt_node.py,sha256=YPOFoaEBENfOzE_qWo3WdQ_E1dQk78aLCWk8gOMvTjg,16042
|
1581
|
-
vellum/workflows/nodes/displayable/bases/prompt_deployment_node.py,sha256=
|
1583
|
+
vellum/workflows/nodes/displayable/bases/prompt_deployment_node.py,sha256=T99UWACTD9ytVDVHa6W2go00V7HNwDxOyBFyMM2GnhQ,9567
|
1582
1584
|
vellum/workflows/nodes/displayable/bases/search_node.py,sha256=3UtbqY3QO4kzfJHbmUNZGnEEfJmaoiF892u8H6TGjp8,5381
|
1583
1585
|
vellum/workflows/nodes/displayable/bases/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1584
1586
|
vellum/workflows/nodes/displayable/bases/tests/test_utils.py,sha256=eqdqbKNRWVMDPevgwLg1i6YK0g4L4bCy-7xCBN5yYZI,3156
|
@@ -1589,8 +1591,8 @@ vellum/workflows/nodes/displayable/code_execution_node/node.py,sha256=Ko_Dy17Ajf
|
|
1589
1591
|
vellum/workflows/nodes/displayable/code_execution_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1590
1592
|
vellum/workflows/nodes/displayable/code_execution_node/tests/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1591
1593
|
vellum/workflows/nodes/displayable/code_execution_node/tests/fixtures/main.py,sha256=5QsbmkzSlSbcbWTG_JmIqcP-JNJzOPTKxGzdHos19W4,79
|
1592
|
-
vellum/workflows/nodes/displayable/code_execution_node/tests/test_code_execution_node.py,sha256=
|
1593
|
-
vellum/workflows/nodes/displayable/code_execution_node/utils.py,sha256=
|
1594
|
+
vellum/workflows/nodes/displayable/code_execution_node/tests/test_code_execution_node.py,sha256=Km_BH9W61IJSRj5CdiSmEOINOIouG_a5Gey0fCDmShQ,26620
|
1595
|
+
vellum/workflows/nodes/displayable/code_execution_node/utils.py,sha256=oCI8HS_Y-hsNhvGIC8HgbIzKIZeWOkXMLaknDRf-qus,2928
|
1594
1596
|
vellum/workflows/nodes/displayable/conditional_node/__init__.py,sha256=AS_EIqFdU1F9t8aLmbZU-rLh9ry6LCJ0uj0D8F0L5Uw,72
|
1595
1597
|
vellum/workflows/nodes/displayable/conditional_node/node.py,sha256=Qjfl33gZ3JEgxBA1EgzSUebboGvsARthIxxcQyvx5Gg,1152
|
1596
1598
|
vellum/workflows/nodes/displayable/conftest.py,sha256=K2kLM2JGAfcrmmd92u8DXInUO5klFdggPWblg5RVcx4,5729
|
@@ -1626,7 +1628,7 @@ vellum/workflows/nodes/displayable/subworkflow_deployment_node/tests/test_node.p
|
|
1626
1628
|
vellum/workflows/nodes/displayable/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1627
1629
|
vellum/workflows/nodes/displayable/tests/test_inline_text_prompt_node.py,sha256=LaxohBcKfSW2PSiBBlx67FdW_q4YC2BM2ouH-vuGPAA,4700
|
1628
1630
|
vellum/workflows/nodes/displayable/tests/test_search_node_wth_text_output.py,sha256=VepO5z1277c1y5N6LLIC31nnWD1aak2m5oPFplfJHHs,6935
|
1629
|
-
vellum/workflows/nodes/displayable/tests/test_text_prompt_deployment_node.py,sha256=
|
1631
|
+
vellum/workflows/nodes/displayable/tests/test_text_prompt_deployment_node.py,sha256=dc3EEn1sOICpr3GdS8eyeFtExaGwWWcw9eHSdkRhQJU,2584
|
1630
1632
|
vellum/workflows/nodes/experimental/README.md,sha256=eF6DfIL8t-HbF9-mcofOMymKrraiBHDLKTlnBa51ZiE,284
|
1631
1633
|
vellum/workflows/nodes/experimental/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1632
1634
|
vellum/workflows/nodes/experimental/openai_chat_completion_node/__init__.py,sha256=lsyD9laR9p7kx5-BXGH2gUTM242UhKy8SMV0SR6S2iE,90
|
@@ -1638,12 +1640,12 @@ vellum/workflows/nodes/mocks.py,sha256=a1FjWEIocseMfjzM-i8DNozpUsaW0IONRpZmXBoWl
|
|
1638
1640
|
vellum/workflows/nodes/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1639
1641
|
vellum/workflows/nodes/tests/test_mocks.py,sha256=mfPvrs75PKcsNsbJLQAN6PDFoVqs9TmQxpdyFKDdO60,7837
|
1640
1642
|
vellum/workflows/nodes/tests/test_utils.py,sha256=qNB6ApIsnFtE_9HDaEah9KD-zX8e10FhDixewS1uRcc,5199
|
1641
|
-
vellum/workflows/nodes/utils.py,sha256=
|
1643
|
+
vellum/workflows/nodes/utils.py,sha256=j3I_qKlkU9WDplYbeija3-rC_KAKD4dyums1xROWFKQ,9193
|
1642
1644
|
vellum/workflows/outputs/__init__.py,sha256=AyZ4pRh_ACQIGvkf0byJO46EDnSix1ZCAXfvh-ms1QE,94
|
1643
1645
|
vellum/workflows/outputs/base.py,sha256=1OGHqBJVk7i8cW8uewFWOhIjuMlRRpzCDrGE30ZwDjw,8763
|
1644
1646
|
vellum/workflows/ports/__init__.py,sha256=bZuMt-R7z5bKwpu4uPW7LlJeePOQWmCcDSXe5frUY5g,101
|
1645
1647
|
vellum/workflows/ports/node_ports.py,sha256=2Uo9gwNVCuH86J-GXcpc95QSDh5I-XVvhHJCMSWe-S8,2825
|
1646
|
-
vellum/workflows/ports/port.py,sha256=
|
1648
|
+
vellum/workflows/ports/port.py,sha256=j_qiZlpx-a1cK5E7sxXwPcb_9NS-KUM-JoP8mgqg32k,4073
|
1647
1649
|
vellum/workflows/ports/utils.py,sha256=cWJ9xX1KrHBTiU3xe6t7Rs0yaOy9RV18GMtHaAshAsc,3094
|
1648
1650
|
vellum/workflows/references/__init__.py,sha256=glHFC1VfXmcbNvH5VzFbkT03d8_D7MMcvEcsUBrzLIs,591
|
1649
1651
|
vellum/workflows/references/constant.py,sha256=6yUT4q1sMj1hkI_tzzQ9AYcmeeDYFUNCqUq_W2DN0S8,540
|
@@ -1674,13 +1676,14 @@ vellum/workflows/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
|
|
1674
1676
|
vellum/workflows/tests/test_sandbox.py,sha256=JKwaluI-lODQo7Ek9sjDstjL_WTdSqUlVik6ZVTfVOA,1826
|
1675
1677
|
vellum/workflows/tests/test_undefined.py,sha256=zMCVliCXVNLrlC6hEGyOWDnQADJ2g83yc5FIM33zuo8,353
|
1676
1678
|
vellum/workflows/types/__init__.py,sha256=KxUTMBGzuRCfiMqzzsykOeVvrrkaZmTTo1a7SLu8gRM,68
|
1679
|
+
vellum/workflows/types/code_execution_node_wrappers.py,sha256=cQ1Se6fe1uqGUs8uVQxkk2OEVikcHbwTM0CyU2AsgqI,2010
|
1677
1680
|
vellum/workflows/types/core.py,sha256=kMQremh_I8egXpiKmtMQbB6e3OczAWiRnnTq5V6xlD0,928
|
1678
1681
|
vellum/workflows/types/definition.py,sha256=z81CL_u0FJol-9yUIqoXNTYAARtU8x__c6s-f4rb5c8,2335
|
1679
1682
|
vellum/workflows/types/generics.py,sha256=tKXz0LwWJGKw1YGudyl9_yFDrRgU6yYV1yJV1Zv-LTw,1430
|
1680
1683
|
vellum/workflows/types/stack.py,sha256=h7NE0vXR7l9DevFBIzIAk1Zh59K-kECQtDTKOUunwMY,1314
|
1681
1684
|
vellum/workflows/types/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1682
|
-
vellum/workflows/types/tests/test_utils.py,sha256=
|
1683
|
-
vellum/workflows/types/utils.py,sha256=
|
1685
|
+
vellum/workflows/types/tests/test_utils.py,sha256=UnZog59tR577mVwqZRqqWn2fScoOU1H6up0EzS8zYhw,2536
|
1686
|
+
vellum/workflows/types/utils.py,sha256=axxHbPLsnjhEOnMZrc5YarFd-P2bnsacBDQGNCvY8OY,6367
|
1684
1687
|
vellum/workflows/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1685
1688
|
vellum/workflows/utils/functions.py,sha256=7A4BImhtY__qQpNrF5uPiwLfkj6PSUxYvF7ITigIkxY,4051
|
1686
1689
|
vellum/workflows/utils/names.py,sha256=QLUqfJ1tmSEeUwBKTTiv_Qk3QGbInC2RSmlXfGXc8Wo,380
|
@@ -1691,15 +1694,15 @@ vellum/workflows/utils/tests/test_uuids.py,sha256=i77ABQ0M3S-aFLzDXHJq_yr5FPkJEW
|
|
1691
1694
|
vellum/workflows/utils/tests/test_vellum_variables.py,sha256=maI5e7Od7UlpMwlrOrcdlXqnFhonkXGnWq8G2-YQLi8,1155
|
1692
1695
|
vellum/workflows/utils/uuids.py,sha256=DFzPv9RCvsKhvdTEIQyfSek2A31D6S_QcmeLPbgrgTY,739
|
1693
1696
|
vellum/workflows/utils/vellum_variables.py,sha256=UiGlUh0a8vel2FbW3w-xbHxSv_jNutkDdqMVtP_b42A,3385
|
1694
|
-
vellum/workflows/vellum_client.py,sha256=
|
1697
|
+
vellum/workflows/vellum_client.py,sha256=xkfoucodxNK5JR2-lbRqZx3xzDgExWkP6kySrpi_Ubc,1079
|
1695
1698
|
vellum/workflows/workflows/__init__.py,sha256=KY45TqvavCCvXIkyCFMEc0dc6jTMOUci93U2DUrlZYc,66
|
1696
1699
|
vellum/workflows/workflows/base.py,sha256=9dGZzoXbVVtw19pVhmawIA1wd1iLQttAKypuVFWb0fU,23793
|
1697
1700
|
vellum/workflows/workflows/event_filters.py,sha256=GSxIgwrX26a1Smfd-6yss2abGCnadGsrSZGa7t7LpJA,2008
|
1698
1701
|
vellum/workflows/workflows/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1699
1702
|
vellum/workflows/workflows/tests/test_base_workflow.py,sha256=8P5YIsNMO78_CR1NNK6wkEdkMB4b3Q_Ni1qxh78OnHo,20481
|
1700
1703
|
vellum/workflows/workflows/tests/test_context.py,sha256=VJBUcyWVtMa_lE5KxdhgMu0WYNYnUQUDvTF7qm89hJ0,2333
|
1701
|
-
vellum_ai-0.14.
|
1702
|
-
vellum_ai-0.14.
|
1703
|
-
vellum_ai-0.14.
|
1704
|
-
vellum_ai-0.14.
|
1705
|
-
vellum_ai-0.14.
|
1704
|
+
vellum_ai-0.14.46.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
|
1705
|
+
vellum_ai-0.14.46.dist-info/METADATA,sha256=QVjFBBT5KT2PzAvAibMrRv8VD7GpQoUhjlXaR_H--Fw,5484
|
1706
|
+
vellum_ai-0.14.46.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
1707
|
+
vellum_ai-0.14.46.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
|
1708
|
+
vellum_ai-0.14.46.dist-info/RECORD,,
|
vellum_cli/config.py
CHANGED
@@ -16,10 +16,15 @@ PYPROJECT_TOML_PATH = "pyproject.toml"
|
|
16
16
|
|
17
17
|
class WorkspaceConfig(UniversalBaseModel):
|
18
18
|
name: str
|
19
|
-
api_key: str
|
19
|
+
api_key: str = "VELLUM_API_KEY"
|
20
|
+
api_url: Optional[str] = None
|
20
21
|
|
21
22
|
def merge(self, other: "WorkspaceConfig") -> "WorkspaceConfig":
|
22
|
-
return WorkspaceConfig(
|
23
|
+
return WorkspaceConfig(
|
24
|
+
name=self.name or other.name,
|
25
|
+
api_key=self.api_key or other.api_key,
|
26
|
+
api_url=self.api_url or other.api_url,
|
27
|
+
)
|
23
28
|
|
24
29
|
|
25
30
|
DEFAULT_WORKSPACE_CONFIG = WorkspaceConfig(name="default", api_key="VELLUM_API_KEY")
|
vellum_cli/push.py
CHANGED
@@ -97,6 +97,7 @@ def push_command(
|
|
97
97
|
|
98
98
|
client = create_vellum_client(
|
99
99
|
api_key=api_key,
|
100
|
+
api_url=workspace_config.api_url,
|
100
101
|
)
|
101
102
|
sys.path.insert(0, os.getcwd())
|
102
103
|
|
@@ -105,6 +106,7 @@ def push_command(
|
|
105
106
|
workflow = BaseWorkflow.load_from_module(workflow_config.module)
|
106
107
|
workflow_display = get_workflow_display(
|
107
108
|
workflow_class=workflow,
|
109
|
+
client=client,
|
108
110
|
dry_run=dry_run or False,
|
109
111
|
)
|
110
112
|
exec_config = workflow_display.serialize()
|
@@ -234,9 +236,11 @@ def push_command(
|
|
234
236
|
"""
|
235
237
|
) # type: ignore[attr-defined]
|
236
238
|
else:
|
239
|
+
default_api_url = client._client_wrapper._environment.default
|
240
|
+
base_url = default_api_url.split("/v1")[0].replace("//api.", "//app.")
|
237
241
|
logger.info(
|
238
242
|
f"""Successfully pushed {workflow_config.module} to Vellum!
|
239
|
-
Visit at:
|
243
|
+
Visit at: {base_url}/workflow-sandboxes/{response.workflow_sandbox_id}"""
|
240
244
|
)
|
241
245
|
|
242
246
|
if not workflow_config.workflow_sandbox_id:
|
vellum_cli/tests/test_push.py
CHANGED
@@ -7,6 +7,7 @@ from unittest import mock
|
|
7
7
|
from uuid import uuid4
|
8
8
|
|
9
9
|
from click.testing import CliRunner
|
10
|
+
from httpx import Response
|
10
11
|
|
11
12
|
from vellum.client.core.api_error import ApiError
|
12
13
|
from vellum.client.types.workflow_push_response import WorkflowPushResponse
|
@@ -29,19 +30,25 @@ def _extract_tar_gz(tar_gz_bytes: bytes) -> dict[str, str]:
|
|
29
30
|
return files
|
30
31
|
|
31
32
|
|
32
|
-
def
|
33
|
-
|
33
|
+
def _ensure_file(temp_dir: str, module: str, file_name: str, content: str) -> str:
|
34
|
+
file_path = os.path.join(temp_dir, *module.split("."), file_name)
|
35
|
+
base_dir = os.path.dirname(file_path)
|
34
36
|
os.makedirs(base_dir, exist_ok=True)
|
37
|
+
|
38
|
+
with open(file_path, "w") as f:
|
39
|
+
f.write(content)
|
40
|
+
|
41
|
+
return content
|
42
|
+
|
43
|
+
|
44
|
+
def _ensure_workflow_py(temp_dir: str, module: str) -> str:
|
35
45
|
workflow_py_file_content = """\
|
36
46
|
from vellum.workflows import BaseWorkflow
|
37
47
|
|
38
48
|
class ExampleWorkflow(BaseWorkflow):
|
39
49
|
pass
|
40
50
|
"""
|
41
|
-
|
42
|
-
f.write(workflow_py_file_content)
|
43
|
-
|
44
|
-
return workflow_py_file_content
|
51
|
+
return _ensure_file(temp_dir, module, "workflow.py", workflow_py_file_content)
|
45
52
|
|
46
53
|
|
47
54
|
def test_push__no_config(mock_module):
|
@@ -133,6 +140,38 @@ def test_push__happy_path(mock_module, vellum_client, base_command):
|
|
133
140
|
assert extracted_files["workflow.py"] == workflow_py_file_content
|
134
141
|
|
135
142
|
|
143
|
+
def test_push__verify_default_url_in_raw_httpx_transport(mock_module, mock_httpx_transport):
|
144
|
+
# GIVEN a single workflow configured
|
145
|
+
module = mock_module.module
|
146
|
+
temp_dir = mock_module.temp_dir
|
147
|
+
_ensure_workflow_py(temp_dir, module)
|
148
|
+
|
149
|
+
# AND the push API call returns successfully
|
150
|
+
mock_httpx_transport.handle_request.return_value = Response(
|
151
|
+
status_code=200,
|
152
|
+
text=json.dumps(
|
153
|
+
{
|
154
|
+
"workflow_sandbox_id": str(uuid4()),
|
155
|
+
}
|
156
|
+
),
|
157
|
+
)
|
158
|
+
|
159
|
+
# WHEN calling `vellum push`
|
160
|
+
runner = CliRunner()
|
161
|
+
result = runner.invoke(cli_main, ["workflows", "push", module])
|
162
|
+
|
163
|
+
# THEN it should succeed
|
164
|
+
assert result.exit_code == 0
|
165
|
+
|
166
|
+
# AND we should have called the push API with the correct args
|
167
|
+
mock_httpx_transport.handle_request.assert_called_once()
|
168
|
+
request = mock_httpx_transport.handle_request.call_args[0][0]
|
169
|
+
assert str(request.url) == "https://api.vellum.ai/v1/workflows/push"
|
170
|
+
|
171
|
+
# AND the new URL is in the message at the end
|
172
|
+
assert "Visit at: https://app.vellum.ai/workflow-sandboxes/" in result.output
|
173
|
+
|
174
|
+
|
136
175
|
def test_push__no_config__module_found(mock_module, vellum_client):
|
137
176
|
# GIVEN no config file set
|
138
177
|
temp_dir = mock_module.temp_dir
|
@@ -486,7 +525,74 @@ Files that were different between the original project and the generated artifac
|
|
486
525
|
)
|
487
526
|
|
488
527
|
|
489
|
-
|
528
|
+
@pytest.mark.parametrize(
|
529
|
+
"file_data",
|
530
|
+
[
|
531
|
+
{
|
532
|
+
"workflow.py": """\
|
533
|
+
from vellum.workflows import BaseWorkflow
|
534
|
+
|
535
|
+
class ExampleWorkflow(BaseWorkflow):
|
536
|
+
pass
|
537
|
+
"""
|
538
|
+
},
|
539
|
+
{
|
540
|
+
"nodes/start_node.py": """\
|
541
|
+
from vellum.workflows.nodes import CodeExecutionNode
|
542
|
+
from vellum.workflows.references import VellumSecretReference
|
543
|
+
|
544
|
+
class StartNode(CodeExecutionNode):
|
545
|
+
code_inputs = {
|
546
|
+
"foo": VellumSecretReference("MY_SECRET_KEY"),
|
547
|
+
}
|
548
|
+
""",
|
549
|
+
"workflow.py": """\
|
550
|
+
from vellum.workflows import BaseWorkflow
|
551
|
+
from .nodes.start_node import StartNode
|
552
|
+
|
553
|
+
class ExampleWorkflow(BaseWorkflow):
|
554
|
+
graph = StartNode
|
555
|
+
""",
|
556
|
+
},
|
557
|
+
{
|
558
|
+
"nodes/start_node.py": """\
|
559
|
+
from vellum.workflows.nodes import PromptDeploymentNode
|
560
|
+
|
561
|
+
class StartNode(PromptDeploymentNode):
|
562
|
+
deployment = "my-deployment"
|
563
|
+
""",
|
564
|
+
"workflow.py": """\
|
565
|
+
from vellum.workflows import BaseWorkflow
|
566
|
+
from .nodes.start_node import StartNode
|
567
|
+
|
568
|
+
class ExampleWorkflow(BaseWorkflow):
|
569
|
+
graph = StartNode
|
570
|
+
""",
|
571
|
+
},
|
572
|
+
{
|
573
|
+
"nodes/start_node.py": """\
|
574
|
+
from vellum.workflows.nodes import SubworkflowDeploymentNode
|
575
|
+
|
576
|
+
class StartNode(SubworkflowDeploymentNode):
|
577
|
+
deployment = "my-deployment"
|
578
|
+
""",
|
579
|
+
"workflow.py": """\
|
580
|
+
from vellum.workflows import BaseWorkflow
|
581
|
+
from .nodes.start_node import StartNode
|
582
|
+
|
583
|
+
class ExampleWorkflow(BaseWorkflow):
|
584
|
+
graph = StartNode
|
585
|
+
""",
|
586
|
+
},
|
587
|
+
],
|
588
|
+
ids=[
|
589
|
+
"base_case",
|
590
|
+
"with_secret_reference",
|
591
|
+
"with_prompt_deployment",
|
592
|
+
"with_subworkflow_deployment",
|
593
|
+
],
|
594
|
+
)
|
595
|
+
def test_push__workspace_option__uses_different_api_key(mock_module, vellum_client_class, file_data):
|
490
596
|
# GIVEN a single workflow configured
|
491
597
|
temp_dir = mock_module.temp_dir
|
492
598
|
module = mock_module.module
|
@@ -521,7 +627,8 @@ MY_OTHER_VELLUM_API_KEY=aaabbbcccddd
|
|
521
627
|
)
|
522
628
|
|
523
629
|
# AND a workflow exists in the module successfully
|
524
|
-
|
630
|
+
for file_name, content in file_data.items():
|
631
|
+
_ensure_file(temp_dir, module, file_name, content)
|
525
632
|
|
526
633
|
# AND the push API call returns a new workflow sandbox id
|
527
634
|
new_workflow_sandbox_id = str(uuid4())
|
@@ -564,6 +671,83 @@ MY_OTHER_VELLUM_API_KEY=aaabbbcccddd
|
|
564
671
|
}
|
565
672
|
|
566
673
|
|
674
|
+
def test_push__workspace_option__uses_different_api_url_env(mock_module, mock_httpx_transport):
|
675
|
+
# GIVEN a single workflow configured
|
676
|
+
temp_dir = mock_module.temp_dir
|
677
|
+
module = mock_module.module
|
678
|
+
workflow_sandbox_id = mock_module.workflow_sandbox_id
|
679
|
+
set_pyproject_toml = mock_module.set_pyproject_toml
|
680
|
+
|
681
|
+
# AND a different workspace is set in the pyproject.toml
|
682
|
+
set_pyproject_toml(
|
683
|
+
{
|
684
|
+
"workflows": [
|
685
|
+
{
|
686
|
+
"module": module,
|
687
|
+
"workflow_sandbox_id": workflow_sandbox_id,
|
688
|
+
}
|
689
|
+
],
|
690
|
+
"workspaces": [
|
691
|
+
{
|
692
|
+
"name": "my_other_workspace",
|
693
|
+
"api_url": "MY_OTHER_VELLUM_API_URL",
|
694
|
+
}
|
695
|
+
],
|
696
|
+
}
|
697
|
+
)
|
698
|
+
|
699
|
+
# AND the .env file has the other api key stored
|
700
|
+
with open(os.path.join(temp_dir, ".env"), "w") as f:
|
701
|
+
f.write(
|
702
|
+
"""\
|
703
|
+
VELLUM_API_KEY=abcdef123456
|
704
|
+
MY_OTHER_VELLUM_API_URL=https://app.aws-vpc-staging.vellum.ai
|
705
|
+
"""
|
706
|
+
)
|
707
|
+
|
708
|
+
# AND a workflow exists in the module successfully
|
709
|
+
_ensure_workflow_py(temp_dir, module)
|
710
|
+
|
711
|
+
# AND the push API call returns a new workflow sandbox id
|
712
|
+
new_workflow_sandbox_id = str(uuid4())
|
713
|
+
mock_httpx_transport.handle_request.return_value = Response(
|
714
|
+
status_code=200,
|
715
|
+
text=json.dumps(
|
716
|
+
{
|
717
|
+
"workflow_sandbox_id": new_workflow_sandbox_id,
|
718
|
+
}
|
719
|
+
),
|
720
|
+
)
|
721
|
+
|
722
|
+
# WHEN calling `vellum push` on strict mode
|
723
|
+
runner = CliRunner()
|
724
|
+
result = runner.invoke(cli_main, ["push", module, "--workspace", "my_other_workspace"])
|
725
|
+
|
726
|
+
# THEN it should succeed
|
727
|
+
assert result.exit_code == 0, result.output
|
728
|
+
|
729
|
+
# AND we should have called the push API once with the correct api url
|
730
|
+
request = mock_httpx_transport.handle_request.call_args[0][0]
|
731
|
+
assert str(request.url) == "https://app.aws-vpc-staging.vellum.ai/v1/workflows/push"
|
732
|
+
|
733
|
+
# AND the vellum lock file should have been updated with the correct workspace
|
734
|
+
with open(os.path.join(temp_dir, "vellum.lock.json")) as f:
|
735
|
+
lock_file_content = json.load(f)
|
736
|
+
assert lock_file_content["workflows"][1] == {
|
737
|
+
"module": module,
|
738
|
+
"workflow_sandbox_id": new_workflow_sandbox_id,
|
739
|
+
"workspace": "my_other_workspace",
|
740
|
+
"container_image_name": None,
|
741
|
+
"container_image_tag": None,
|
742
|
+
"deployments": [],
|
743
|
+
"ignore": None,
|
744
|
+
"target_directory": None,
|
745
|
+
}
|
746
|
+
|
747
|
+
# AND the new URL is in the message at the end
|
748
|
+
assert "Visit at: https://app.aws-vpc-staging.vellum.ai/workflow-sandboxes/" in result.output
|
749
|
+
|
750
|
+
|
567
751
|
def test_push__workspace_option__both_options_already_configured(mock_module, vellum_client_class):
|
568
752
|
# GIVEN a single workflow configured
|
569
753
|
temp_dir = mock_module.temp_dir
|