vellum-ai 0.14.39__py3-none-any.whl → 0.14.41__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/reference.md +138 -1
- vellum/client/resources/ad_hoc/client.py +311 -1
- vellum/client/resources/deployments/client.py +2 -2
- vellum/workflows/nodes/bases/tests/test_base_node.py +24 -0
- vellum/workflows/nodes/core/try_node/node.py +1 -2
- vellum/workflows/nodes/experimental/tool_calling_node/__init__.py +3 -0
- vellum/workflows/nodes/experimental/tool_calling_node/node.py +125 -0
- vellum/workflows/nodes/experimental/tool_calling_node/utils.py +128 -0
- vellum/workflows/nodes/utils.py +4 -2
- vellum/workflows/outputs/base.py +3 -2
- vellum/workflows/references/output.py +20 -0
- vellum/workflows/state/base.py +36 -14
- vellum/workflows/state/tests/test_state.py +5 -2
- vellum/workflows/types/stack.py +11 -0
- vellum/workflows/workflows/base.py +5 -0
- vellum/workflows/workflows/tests/test_base_workflow.py +96 -9
- {vellum_ai-0.14.39.dist-info → vellum_ai-0.14.41.dist-info}/METADATA +1 -1
- {vellum_ai-0.14.39.dist-info → vellum_ai-0.14.41.dist-info}/RECORD +84 -80
- vellum_cli/push.py +0 -2
- vellum_ee/workflows/display/base.py +14 -1
- vellum_ee/workflows/display/nodes/base_node_display.py +91 -19
- vellum_ee/workflows/display/nodes/get_node_display_class.py +9 -15
- vellum_ee/workflows/display/nodes/tests/test_base_node_display.py +54 -0
- vellum_ee/workflows/display/nodes/vellum/api_node.py +2 -2
- vellum_ee/workflows/display/nodes/vellum/base_adornment_node.py +4 -4
- vellum_ee/workflows/display/nodes/vellum/code_execution_node.py +2 -2
- vellum_ee/workflows/display/nodes/vellum/conditional_node.py +2 -2
- vellum_ee/workflows/display/nodes/vellum/error_node.py +2 -2
- vellum_ee/workflows/display/nodes/vellum/final_output_node.py +2 -2
- vellum_ee/workflows/display/nodes/vellum/guardrail_node.py +2 -2
- vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py +2 -2
- vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py +2 -2
- vellum_ee/workflows/display/nodes/vellum/merge_node.py +2 -2
- vellum_ee/workflows/display/nodes/vellum/note_node.py +2 -2
- vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py +2 -4
- vellum_ee/workflows/display/nodes/vellum/retry_node.py +1 -2
- vellum_ee/workflows/display/nodes/vellum/search_node.py +2 -2
- vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py +2 -2
- vellum_ee/workflows/display/nodes/vellum/templating_node.py +2 -2
- vellum_ee/workflows/display/nodes/vellum/tests/test_code_execution_node.py +1 -2
- vellum_ee/workflows/display/nodes/vellum/tests/test_error_node.py +1 -2
- vellum_ee/workflows/display/nodes/vellum/tests/test_note_node.py +1 -2
- vellum_ee/workflows/display/nodes/vellum/tests/test_prompt_node.py +55 -3
- vellum_ee/workflows/display/nodes/vellum/tests/test_retry_node.py +1 -2
- vellum_ee/workflows/display/nodes/vellum/tests/test_templating_node.py +1 -2
- vellum_ee/workflows/display/nodes/vellum/tests/test_try_node.py +1 -2
- vellum_ee/workflows/display/nodes/vellum/tests/test_utils.py +4 -4
- vellum_ee/workflows/display/nodes/vellum/try_node.py +1 -2
- vellum_ee/workflows/display/nodes/vellum/utils.py +7 -1
- vellum_ee/workflows/display/tests/{test_vellum_workflow_display.py → test_base_workflow_display.py} +10 -22
- vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/conftest.py +4 -6
- vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_adornments_serialization.py +7 -16
- vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_attributes_serialization.py +2 -6
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py +1 -2
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py +3 -10
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py +4 -5
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_default_state_serialization.py +1 -4
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py +1 -4
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_generic_node_serialization.py +2 -5
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py +7 -5
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_prompt_node_serialization.py +1 -4
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py +1 -4
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py +1 -2
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py +1 -4
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py +1 -4
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py +7 -5
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py +1 -4
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py +1 -4
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py +1 -4
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py +2 -5
- vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py +2 -7
- vellum_ee/workflows/display/types.py +5 -4
- vellum_ee/workflows/display/utils/exceptions.py +7 -0
- vellum_ee/workflows/display/utils/registry.py +37 -0
- vellum_ee/workflows/display/utils/vellum.py +2 -1
- vellum_ee/workflows/display/workflows/base_workflow_display.py +277 -47
- vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py +34 -21
- vellum_ee/workflows/display/workflows/tests/test_workflow_display.py +58 -20
- vellum_ee/workflows/display/workflows/vellum_workflow_display.py +4 -257
- vellum_ee/workflows/tests/local_workflow/display/workflow.py +2 -2
- vellum_ee/workflows/display/nodes/base_node_vellum_display.py +0 -40
- {vellum_ai-0.14.39.dist-info → vellum_ai-0.14.41.dist-info}/LICENSE +0 -0
- {vellum_ai-0.14.39.dist-info → vellum_ai-0.14.41.dist-info}/WHEEL +0 -0
- {vellum_ai-0.14.39.dist-info → vellum_ai-0.14.41.dist-info}/entry_points.txt +0 -0
@@ -8,7 +8,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=27Mh10aQ8H1OkTmQOJcOuJ5cQcYbNjkkuQrBmtkRe0o,12262
|
11
|
-
vellum_cli/push.py,sha256=
|
11
|
+
vellum_cli/push.py,sha256=0bHAhp6B67JUFuiL9sSekrLOw-x2Dp6VsrzhFbOy7e4,9508
|
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
|
@@ -22,84 +22,85 @@ 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
|
24
24
|
vellum_ee/workflows/display/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
25
|
-
vellum_ee/workflows/display/base.py,sha256=
|
25
|
+
vellum_ee/workflows/display/base.py,sha256=EqlQFD56kpqMY02ZBJBQajzJKh33Dwi60Wo779kJlec,2880
|
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=
|
30
|
-
vellum_ee/workflows/display/nodes/
|
31
|
-
vellum_ee/workflows/display/nodes/get_node_display_class.py,sha256=59Nht1XAxMcNESFV1VmECrF01lZMnGkB_9JWaTAFnv0,2214
|
29
|
+
vellum_ee/workflows/display/nodes/base_node_display.py,sha256=zCcCEzpTLXOWbe9zGFF_mWmouJ9zwnTY0dkjepbuZrs,22269
|
30
|
+
vellum_ee/workflows/display/nodes/get_node_display_class.py,sha256=5QuXpMth0HmZuC-e8LRKOLbrVXSL-ylMR5IWae8eNmc,2113
|
32
31
|
vellum_ee/workflows/display/nodes/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
33
|
-
vellum_ee/workflows/display/nodes/tests/test_base_node_display.py,sha256=
|
32
|
+
vellum_ee/workflows/display/nodes/tests/test_base_node_display.py,sha256=Z4Mf7xLCNiblSbpKI0BrV5modQr-ZcFzhfir_OSyTTs,2997
|
34
33
|
vellum_ee/workflows/display/nodes/types.py,sha256=St1BB6no528OyELGiyRabWao0GGw6mLhstQAvEACbGk,247
|
35
34
|
vellum_ee/workflows/display/nodes/utils.py,sha256=sloya5TpXsnot1HURc9L51INwflRqUzHxRVnCS9Cd-4,973
|
36
35
|
vellum_ee/workflows/display/nodes/vellum/__init__.py,sha256=nUIgH2s0-7IbQRNrBhLPyRNe8YIrx3Yo9HeeW-aXXFk,1668
|
37
|
-
vellum_ee/workflows/display/nodes/vellum/api_node.py,sha256=
|
38
|
-
vellum_ee/workflows/display/nodes/vellum/base_adornment_node.py,sha256=
|
39
|
-
vellum_ee/workflows/display/nodes/vellum/code_execution_node.py,sha256=
|
40
|
-
vellum_ee/workflows/display/nodes/vellum/conditional_node.py,sha256=
|
41
|
-
vellum_ee/workflows/display/nodes/vellum/error_node.py,sha256=
|
42
|
-
vellum_ee/workflows/display/nodes/vellum/final_output_node.py,sha256=
|
43
|
-
vellum_ee/workflows/display/nodes/vellum/guardrail_node.py,sha256=
|
44
|
-
vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py,sha256=
|
45
|
-
vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py,sha256=
|
36
|
+
vellum_ee/workflows/display/nodes/vellum/api_node.py,sha256=ke2_t-E6BdsbZlYgAQCxCqbM01owtgKmI1H62AYGWw4,8519
|
37
|
+
vellum_ee/workflows/display/nodes/vellum/base_adornment_node.py,sha256=rJbHZBg9A_v2bjk-R6MfWzShcrS2gcKIOyYGoqwTx8s,6353
|
38
|
+
vellum_ee/workflows/display/nodes/vellum/code_execution_node.py,sha256=NMlgXgglewZ-k7DolHDAcUnOK68EetmI8EjhYI3ciRg,4391
|
39
|
+
vellum_ee/workflows/display/nodes/vellum/conditional_node.py,sha256=slsDIxkuKD2b3XptcGhd8aCKrvYqUSeNmkeCJ23CXXY,11085
|
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=WL5At9pRRODV9kOZnY2HtF1zkf7tig7O-x1BhPtI9S8,3109
|
42
|
+
vellum_ee/workflows/display/nodes/vellum/guardrail_node.py,sha256=Mc2QilBaGWinOoNItVkkeNkIrV2Yn8vaLN83z8ajC_0,2209
|
43
|
+
vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py,sha256=uprXxAph7oavh3ARupcZZ8Rvwv1KtzyUP-x0cSzWJC0,8824
|
44
|
+
vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py,sha256=5P5Y3fkRo9o7ITONY_T3Wibfx03z5BopNl7NG19hEOM,5491
|
46
45
|
vellum_ee/workflows/display/nodes/vellum/map_node.py,sha256=8CPnn06HIBxBOiECevUffeVmQmCpec6WtPQnNl9gj9Y,3748
|
47
|
-
vellum_ee/workflows/display/nodes/vellum/merge_node.py,sha256=
|
48
|
-
vellum_ee/workflows/display/nodes/vellum/note_node.py,sha256=
|
49
|
-
vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py,sha256=
|
50
|
-
vellum_ee/workflows/display/nodes/vellum/retry_node.py,sha256=
|
51
|
-
vellum_ee/workflows/display/nodes/vellum/search_node.py,sha256=
|
52
|
-
vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py,sha256=
|
53
|
-
vellum_ee/workflows/display/nodes/vellum/templating_node.py,sha256=
|
46
|
+
vellum_ee/workflows/display/nodes/vellum/merge_node.py,sha256=Qirs9cWx7LXKXgUtZBncZ1gou3EIMZ1m9146t9RCC3o,3213
|
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=mkvc8CPts1d9CZkubT1eg75grQjrmgngMy9Ll99a9ds,3238
|
49
|
+
vellum_ee/workflows/display/nodes/vellum/retry_node.py,sha256=TjBpRERmkmm1myZTWKAxxD1F0dWSc7U1sih8g9sqq2Q,3300
|
50
|
+
vellum_ee/workflows/display/nodes/vellum/search_node.py,sha256=BgphkaSEeUeNXu71mSse-d0QHtXs6989BKEe9OtceGw,9260
|
51
|
+
vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py,sha256=GI2d9W0S72NxZykdyCHDoCfgpiVye7g9fG3wcQ01O8Q,2593
|
52
|
+
vellum_ee/workflows/display/nodes/vellum/templating_node.py,sha256=otA0D2vXnfNIktjp4RvWL5pzsqSQiPeCinJy7weTg9g,3223
|
54
53
|
vellum_ee/workflows/display/nodes/vellum/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
55
|
-
vellum_ee/workflows/display/nodes/vellum/tests/test_code_execution_node.py,sha256=
|
56
|
-
vellum_ee/workflows/display/nodes/vellum/tests/test_error_node.py,sha256=
|
57
|
-
vellum_ee/workflows/display/nodes/vellum/tests/test_note_node.py,sha256=
|
58
|
-
vellum_ee/workflows/display/nodes/vellum/tests/test_prompt_node.py,sha256=
|
59
|
-
vellum_ee/workflows/display/nodes/vellum/tests/test_retry_node.py,sha256=
|
60
|
-
vellum_ee/workflows/display/nodes/vellum/tests/test_templating_node.py,sha256=
|
61
|
-
vellum_ee/workflows/display/nodes/vellum/tests/test_try_node.py,sha256=
|
62
|
-
vellum_ee/workflows/display/nodes/vellum/tests/test_utils.py,sha256=
|
63
|
-
vellum_ee/workflows/display/nodes/vellum/try_node.py,sha256=
|
64
|
-
vellum_ee/workflows/display/nodes/vellum/utils.py,sha256=
|
54
|
+
vellum_ee/workflows/display/nodes/vellum/tests/test_code_execution_node.py,sha256=OoNO-BstB96F-VMK6FZ9aXyi-0wyNePo6HiaJC6SYRw,3880
|
55
|
+
vellum_ee/workflows/display/nodes/vellum/tests/test_error_node.py,sha256=HoIph_rNlHFNBMqBq1a_eyFwPzBIazdH1yQeRhgba14,1510
|
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_node.py,sha256=6Q6rfEwjjSEgSX24aFZjS3K6l8G2YRYBUNC2o5BE8Tk,6101
|
58
|
+
vellum_ee/workflows/display/nodes/vellum/tests/test_retry_node.py,sha256=h93ysolmbo2viisyhRnXKHPxiDK0I_dSAbYoHFYIoO4,1953
|
59
|
+
vellum_ee/workflows/display/nodes/vellum/tests/test_templating_node.py,sha256=PK7v0AWCgH9gWRfAwGPUGCRLbIH3NSyoAYa9W15ggAo,3321
|
60
|
+
vellum_ee/workflows/display/nodes/vellum/tests/test_try_node.py,sha256=Khjsb53PKpZuyhKoRMgKAL45eGp5hZqXvHmVeQWRw4w,2289
|
61
|
+
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=o6wL17XVm6Wj4sHoJkBW54Y5fY9ZwhD7ry0xkNWRu5c,4106
|
63
|
+
vellum_ee/workflows/display/nodes/vellum/utils.py,sha256=oICunzyaXPs0tYnW5zH1r93Bx35MSH7mcD-n0DEWRok,4978
|
65
64
|
vellum_ee/workflows/display/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
66
|
-
vellum_ee/workflows/display/tests/
|
65
|
+
vellum_ee/workflows/display/tests/test_base_workflow_display.py,sha256=1R9BAjbfRX7tV3hEwDebzUqzzXoFLfZ-f2WI8Bj4oLI,9286
|
67
66
|
vellum_ee/workflows/display/tests/workflow_serialization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
68
67
|
vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
69
|
-
vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/conftest.py,sha256=
|
70
|
-
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_attributes_serialization.py,sha256=
|
68
|
+
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=ixu_VHgpigvKXj2uQu2_EUn4bkpRy0390LGoRKBJ6iU,15262
|
70
|
+
vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_attributes_serialization.py,sha256=m9KpVN55_bHiooZOJLm7doRewhcTK53weVYRiglCJX0,19578
|
72
71
|
vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_outputs_serialization.py,sha256=s6_mnk0pkztU59wYpSfOFpMhAJaRjmyfxM6WJGtnD4Y,6456
|
73
72
|
vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_ports_serialization.py,sha256=PkSgghJDz0fpDB72HHPjLjo8LkZk-HpUkCQzRLX-iVw,40611
|
74
73
|
vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_trigger_serialization.py,sha256=dsJr8I9AdPwMOGszirfNDzZP2Ychd94aAKuPXAzknMk,4632
|
75
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py,sha256=
|
76
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py,sha256=
|
77
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py,sha256=
|
78
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_default_state_serialization.py,sha256=
|
79
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py,sha256=
|
80
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_generic_node_serialization.py,sha256=
|
81
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py,sha256=
|
82
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_prompt_node_serialization.py,sha256=
|
83
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py,sha256=
|
84
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=
|
85
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py,sha256=
|
86
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py,sha256=
|
87
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py,sha256=
|
88
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py,sha256=
|
89
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py,sha256=
|
90
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py,sha256=
|
91
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py,sha256=
|
92
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256=
|
93
|
-
vellum_ee/workflows/display/types.py,sha256=
|
74
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py,sha256=h8LANc1wOj5wDzyFYhsn_defoJL7EjIcw5U_dYdjsuM,15794
|
75
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py,sha256=G4rfMSAttEtxos2ZgVJ0j4a2kqMeKrc1D1FaqYT4vzw,29588
|
76
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py,sha256=Ofo4pU9dO57UceejBPsTzPDRMR5XkiLqpTiNevDtkCU,47432
|
77
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_default_state_serialization.py,sha256=3GloR_5CwBYIpIkRNqJ6-AvwXe9acwyjU-xz1yN-Xws,8693
|
78
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py,sha256=8WnzAu4HceKcIcp-Tdnrkdwq9zC6an5-92khTxNm1uk,5978
|
79
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_generic_node_serialization.py,sha256=jSUfw4iSfyu9-Yift1Lb_oBDC1WnD7FwSPnNzPyQlOI,5632
|
80
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py,sha256=1dLkx5e-rhRQ6Ap0lma4sA_ZGByQW1W9BUwPhvsazjc,7357
|
81
|
+
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=xS7gjdp_ABfXYU89qz6B_i94cKiDivDm2DlQdWgZhQc,20477
|
83
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=EDWp_yXZ67IFv5KMCR7Zzvs7rQ456NtPCR-cdCWwqeQ,16036
|
84
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py,sha256=aWxEPd6Xsorm36ILyJWMh7UO-bMwYgRc6BciqyYto64,8321
|
85
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py,sha256=G8qjDAKO_-OGEg8dSqs4hp1Pf67RCy7MnecLbZYnsuU,8585
|
86
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py,sha256=gvtlKvMK7U9P6P_sc1nTVcMbDEwaDqBjCxqpsh7tV-U,12919
|
87
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py,sha256=E9UaEdNDG6baHVxg0v7kYHLxiJNVMzPCbVbt4gXBhFw,11194
|
88
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py,sha256=8J-KdCUiC8AgzbRQgT_1t_eWrMOaPSgK3XQfXV_hiE0,7690
|
89
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py,sha256=2MIf-929wze_gDoYSTwZVT74tBi09m2MihtX-EcxFRg,3956
|
90
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py,sha256=NIq7pa8EBR0ZmhTc3k_akwGuOKih8mwurkyIbc0dNTg,2857
|
91
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256=DsWHUyh_GfCvFShbBh7GQnjq5j5NlMc1q_VubE5NikY,7530
|
92
|
+
vellum_ee/workflows/display/types.py,sha256=NKtEGFhvgz1i_oAayXFIS06QZautixnS3id5DckCIjg,2637
|
94
93
|
vellum_ee/workflows/display/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
94
|
+
vellum_ee/workflows/display/utils/exceptions.py,sha256=LSwwxCYNxFkf5XMUcFkaZKpQ13OSrI7y_bpEUwbKVk0,169
|
95
95
|
vellum_ee/workflows/display/utils/expressions.py,sha256=2u2o8Fqr-2C45FII01ej5rt6i8n2EEGiliXugK7buVw,1210
|
96
|
-
vellum_ee/workflows/display/utils/
|
96
|
+
vellum_ee/workflows/display/utils/registry.py,sha256=fWIm5Jj-10gNFjgn34iBu4RWv3Vd15ijtSN0V97bpW8,1513
|
97
|
+
vellum_ee/workflows/display/utils/vellum.py,sha256=VSWB3RA3RWQwQ7nMsU9gLfgpX3_BK9ARBIT36i52r9k,9478
|
97
98
|
vellum_ee/workflows/display/vellum.py,sha256=o7mq_vk2Yapu9DDKRz5l76h8EmCAypWGQYe6pryrbB8,3576
|
98
99
|
vellum_ee/workflows/display/workflows/__init__.py,sha256=kapXsC67VJcgSuiBMa86FdePG5A9kMB5Pi4Uy1O2ob4,207
|
99
|
-
vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=
|
100
|
-
vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py,sha256=
|
101
|
-
vellum_ee/workflows/display/workflows/tests/test_workflow_display.py,sha256=
|
102
|
-
vellum_ee/workflows/display/workflows/vellum_workflow_display.py,sha256=
|
100
|
+
vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=qjdATqHawQ1IWkyQ3aRlQQAFixNsS-X4ewpmKSnSwvI,32001
|
101
|
+
vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py,sha256=s6yMO0RxoM8scmfT8TJ-9cwl-WHFe7JSyEJA0alCeEs,1913
|
102
|
+
vellum_ee/workflows/display/workflows/tests/test_workflow_display.py,sha256=uWBMmd_2BlDpymGoo5FB2LBeFQKHmPWJAPvSPZHk94o,11869
|
103
|
+
vellum_ee/workflows/display/workflows/vellum_workflow_display.py,sha256=aaKdmWrgEe5YyV4zuDY_4E3y-l59rIHQnNGiPj2OWxQ,359
|
103
104
|
vellum_ee/workflows/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
104
105
|
vellum_ee/workflows/server/virtual_file_loader.py,sha256=7JphJcSO3H85qiC2DpFfBWjC3JjrbRmoynBC6KKHVsA,2710
|
105
106
|
vellum_ee/workflows/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -114,7 +115,7 @@ vellum_ee/workflows/tests/local_workflow/display/__init__.py,sha256=xo75Uqb4aErO
|
|
114
115
|
vellum_ee/workflows/tests/local_workflow/display/nodes/__init__.py,sha256=szW_mgOUriyZ6v1vlnevBgkzNi8g83-ihS98UOLHVcE,155
|
115
116
|
vellum_ee/workflows/tests/local_workflow/display/nodes/final_output.py,sha256=Kv92TCREiZsB9531KZYaBIq83uHn7e_ECw_yAbD1qfk,1017
|
116
117
|
vellum_ee/workflows/tests/local_workflow/display/nodes/templating_node.py,sha256=5cankEe1rDZlXKgILFSPbmN0tUZhIdmcFgz_AguXTJc,1229
|
117
|
-
vellum_ee/workflows/tests/local_workflow/display/workflow.py,sha256=
|
118
|
+
vellum_ee/workflows/tests/local_workflow/display/workflow.py,sha256=ZqOwUFaS6vQAOWRsAq02cno5ULXFKsnXFwWPMfqH8uw,1996
|
118
119
|
vellum_ee/workflows/tests/local_workflow/inputs.py,sha256=4cgsZBoUbIY0Rs8gknC9yqxQ-sSoULclx_SAm1FT2RA,96
|
119
120
|
vellum_ee/workflows/tests/local_workflow/metadata.json,sha256=rdu3h5qkFZiqhCAMxoyoWyMI0O8QALC5-URvSIW6F00,24
|
120
121
|
vellum_ee/workflows/tests/local_workflow/nodes/__init__.py,sha256=1F6jxUpSKfPXPj4ZZKSbnX6Mg-VwF3euLJSZfGn6xkM,127
|
@@ -129,7 +130,7 @@ vellum/client/README.md,sha256=JkCJjmMZl4jrPj46pkmL9dpK4gSzQQmP5I7z4aME4LY,4749
|
|
129
130
|
vellum/client/__init__.py,sha256=Z-JHK2jGxhtTtmkLeOaUGGJWIUNYGNVBLvUewC6lp6w,118148
|
130
131
|
vellum/client/core/__init__.py,sha256=SQ85PF84B9MuKnBwHNHWemSGuy-g_515gFYNFhvEE0I,1438
|
131
132
|
vellum/client/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
|
132
|
-
vellum/client/core/client_wrapper.py,sha256=
|
133
|
+
vellum/client/core/client_wrapper.py,sha256=woJ1T678VkPNsh73oqH8PD5x3z8EX9S3qLVPszexkzc,1869
|
133
134
|
vellum/client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
|
134
135
|
vellum/client/core/file.py,sha256=X9IbmkZmB2bB_DpmZAO3crWdXagOakAyn6UCOCImCPg,2322
|
135
136
|
vellum/client/core/http_client.py,sha256=R0pQpCppnEtxccGvXl4uJ76s7ro_65Fo_erlNNLp_AI,19228
|
@@ -145,14 +146,14 @@ vellum/client/errors/bad_request_error.py,sha256=_EbO8mWqN9kFZPvIap8qa1lL_EWkRcs
|
|
145
146
|
vellum/client/errors/forbidden_error.py,sha256=QO1kKlhClAPES6zsEK7g9pglWnxn3KWaOCAawWOg6Aw,263
|
146
147
|
vellum/client/errors/internal_server_error.py,sha256=8USCagXyJJ1MOm9snpcXIUt6eNXvrd_aq7Gfcu1vlOI,268
|
147
148
|
vellum/client/errors/not_found_error.py,sha256=tBVCeBC8n3C811WHRj_n-hs3h8MqwR5gp0vLiobk7W8,262
|
148
|
-
vellum/client/reference.md,sha256=
|
149
|
+
vellum/client/reference.md,sha256=Nue7qK61ewnH9QTLxLOm9GLGPdBRqiWz1PTerxBiDyI,89717
|
149
150
|
vellum/client/resources/__init__.py,sha256=XgQao4rJxyYu71j64RFIsshz4op9GE8-i-C5GCv-KVE,1555
|
150
151
|
vellum/client/resources/ad_hoc/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
151
|
-
vellum/client/resources/ad_hoc/client.py,sha256=
|
152
|
+
vellum/client/resources/ad_hoc/client.py,sha256=93FXK-Wpvh72G8ji2__2Dmc5OYl9G5GRHiknyGIjeX4,25557
|
152
153
|
vellum/client/resources/container_images/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
153
154
|
vellum/client/resources/container_images/client.py,sha256=g8X3IkWFj43-sJMvirjDrh1-yjOFYV2C9xsGC20Xfjo,15003
|
154
155
|
vellum/client/resources/deployments/__init__.py,sha256=m64MNuPx3qVazOnTNwOY8oEeDrAkNwMJvUEe5xoMDvs,239
|
155
|
-
vellum/client/resources/deployments/client.py,sha256=
|
156
|
+
vellum/client/resources/deployments/client.py,sha256=_sK5DgxGTksPDDWONoOrNHpYcNyk6YuoFuwE9CKQm70,38745
|
156
157
|
vellum/client/resources/deployments/types/__init__.py,sha256=29GVdoLOJsADSSSqZwb6CQPeEmPjkKrbsWfru1bemj8,321
|
157
158
|
vellum/client/resources/deployments/types/deployments_list_request_status.py,sha256=CxlQD16KZXme7x31YYCe_3aAgEueutDTeJo5A4Au-aU,174
|
158
159
|
vellum/client/resources/deployments/types/list_deployment_release_tags_request_source.py,sha256=hRGgWMYZL9uKCmD_2dU8-u9RCPUUGItpNn1tUY-NXKY,180
|
@@ -1538,7 +1539,7 @@ vellum/workflows/nodes/bases/__init__.py,sha256=cniHuz_RXdJ4TQgD8CBzoiKDiPxg62Er
|
|
1538
1539
|
vellum/workflows/nodes/bases/base.py,sha256=eW-3RSkBgtuGY8x2nmbHYiUg_HXS5U57n3k6Fh-dJ9s,15330
|
1539
1540
|
vellum/workflows/nodes/bases/base_adornment_node.py,sha256=afMwJLHK2Ke7sBpceVLnNdZMlU2O-6UgyG7lBt9SAQ8,3039
|
1540
1541
|
vellum/workflows/nodes/bases/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1541
|
-
vellum/workflows/nodes/bases/tests/test_base_node.py,sha256=
|
1542
|
+
vellum/workflows/nodes/bases/tests/test_base_node.py,sha256=6J85q-vtfG-NHzCndMKLk5_sEEDiI52sTGaxefcUCOU,7892
|
1542
1543
|
vellum/workflows/nodes/core/__init__.py,sha256=5zDMCmyt1v0HTJzlUBwq3U9L825yZGZhT9JL18-mRR4,455
|
1543
1544
|
vellum/workflows/nodes/core/error_node/__init__.py,sha256=g7RRnlHhqu4qByfLjBwCunmgGA8dI5gNsjS3h6TwlSI,60
|
1544
1545
|
vellum/workflows/nodes/core/error_node/node.py,sha256=MFHU5vITYSK-L9CuMZ49In2ZeNLWnhZD0f8r5dWvb5Y,1270
|
@@ -1558,7 +1559,7 @@ vellum/workflows/nodes/core/templating_node/__init__.py,sha256=GmyuYo81_A1_Bz6id
|
|
1558
1559
|
vellum/workflows/nodes/core/templating_node/node.py,sha256=iqBmr2i-f-BqhisNQJiDfewjol0ur7-XpupLStyMJsg,3731
|
1559
1560
|
vellum/workflows/nodes/core/templating_node/tests/test_templating_node.py,sha256=nXkgGDBg4wP36NwykdMEVWwx_xjv8oGT2rYkwuCB_VU,10075
|
1560
1561
|
vellum/workflows/nodes/core/try_node/__init__.py,sha256=JVD4DrldTIqFQQFrubs9KtWCCc0YCAc7Fzol5ZWIWeM,56
|
1561
|
-
vellum/workflows/nodes/core/try_node/node.py,sha256=
|
1562
|
+
vellum/workflows/nodes/core/try_node/node.py,sha256=XdyOvlwQ3m4h0-_WNtaBl2t_CdlzPXclulkLOtUcX3E,4388
|
1562
1563
|
vellum/workflows/nodes/core/try_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1563
1564
|
vellum/workflows/nodes/core/try_node/tests/test_node.py,sha256=h6eUc3SggvhzBWlOD0PrPUlkoCSQHwjqYn81VkxSIxU,4948
|
1564
1565
|
vellum/workflows/nodes/displayable/__init__.py,sha256=6F_4DlSwvHuilWnIalp8iDjjDXl0Nmz4QzJV2PYe5RI,1023
|
@@ -1629,13 +1630,16 @@ vellum/workflows/nodes/experimental/README.md,sha256=eF6DfIL8t-HbF9-mcofOMymKrra
|
|
1629
1630
|
vellum/workflows/nodes/experimental/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1630
1631
|
vellum/workflows/nodes/experimental/openai_chat_completion_node/__init__.py,sha256=lsyD9laR9p7kx5-BXGH2gUTM242UhKy8SMV0SR6S2iE,90
|
1631
1632
|
vellum/workflows/nodes/experimental/openai_chat_completion_node/node.py,sha256=cKI2Ls25L-JVt4z4a2ozQa-YBeVy21Z7BQ32Sj7iBPE,10460
|
1633
|
+
vellum/workflows/nodes/experimental/tool_calling_node/__init__.py,sha256=S7OzT3I4cyOU5Beoz87nPwCejCMP2FsHBFL8OcVmxJ4,118
|
1634
|
+
vellum/workflows/nodes/experimental/tool_calling_node/node.py,sha256=w73v2pfpqFaTOYbtHkH7nFuGgqQebLO6dr_Mxn1n7Dc,4848
|
1635
|
+
vellum/workflows/nodes/experimental/tool_calling_node/utils.py,sha256=hwJ1GjoNOEWoCdT1R0b6gVRAAGWGTUlKutTgBF7GRP4,4664
|
1632
1636
|
vellum/workflows/nodes/mocks.py,sha256=a1FjWEIocseMfjzM-i8DNozpUsaW0IONRpZmXBoWlyc,10455
|
1633
1637
|
vellum/workflows/nodes/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1634
1638
|
vellum/workflows/nodes/tests/test_mocks.py,sha256=mfPvrs75PKcsNsbJLQAN6PDFoVqs9TmQxpdyFKDdO60,7837
|
1635
1639
|
vellum/workflows/nodes/tests/test_utils.py,sha256=qNB6ApIsnFtE_9HDaEah9KD-zX8e10FhDixewS1uRcc,5199
|
1636
|
-
vellum/workflows/nodes/utils.py,sha256=
|
1640
|
+
vellum/workflows/nodes/utils.py,sha256=wVn68jhAQ9ev9LV3c0XEH276CiqcY9-fVgUFY_K9izQ,8409
|
1637
1641
|
vellum/workflows/outputs/__init__.py,sha256=AyZ4pRh_ACQIGvkf0byJO46EDnSix1ZCAXfvh-ms1QE,94
|
1638
|
-
vellum/workflows/outputs/base.py,sha256=
|
1642
|
+
vellum/workflows/outputs/base.py,sha256=1OGHqBJVk7i8cW8uewFWOhIjuMlRRpzCDrGE30ZwDjw,8763
|
1639
1643
|
vellum/workflows/ports/__init__.py,sha256=bZuMt-R7z5bKwpu4uPW7LlJeePOQWmCcDSXe5frUY5g,101
|
1640
1644
|
vellum/workflows/ports/node_ports.py,sha256=g4A-8iUAvEJSkaWppbvzAR8XU02R9U-qLN4rP2Kq4Aw,2743
|
1641
1645
|
vellum/workflows/ports/port.py,sha256=eI2SOZPZ5rsC3jMsxW6Rbn0NpaYQsrR7AapiIbbiy8Q,3635
|
@@ -1648,7 +1652,7 @@ vellum/workflows/references/external_input.py,sha256=c_4SojTpykCSbGS1Pjmx9FfquyY
|
|
1648
1652
|
vellum/workflows/references/input.py,sha256=3INu-TLTi4dziWmva6LO3WvgDlPzsjayUx61cVvqLJA,325
|
1649
1653
|
vellum/workflows/references/lazy.py,sha256=jgUYmgt-yAybzPf_R-74MzdU8VuNwMYI8EQqrj9lVR0,2948
|
1650
1654
|
vellum/workflows/references/node.py,sha256=LP854wDVs-9I_aZ7-nkbwXqL2H7W2_3LED2e9FixNS8,1418
|
1651
|
-
vellum/workflows/references/output.py,sha256
|
1655
|
+
vellum/workflows/references/output.py,sha256=QWrqLGpeo6mFxC_fKmL3LHIfrcDD9SzOhQdHvG99I9Y,3379
|
1652
1656
|
vellum/workflows/references/state_value.py,sha256=bInUF0A3Pt4-zhA0f6LdSuyv8tz7n5QRkHAEn4gsmqI,711
|
1653
1657
|
vellum/workflows/references/tests/test_lazy.py,sha256=0s50-LizMTlSTBQahpK0fg_xqCucA8YTp6QmIMqPvMk,919
|
1654
1658
|
vellum/workflows/references/vellum_secret.py,sha256=Od4d19a5yletWMqNfJR5d_mZQUkVcFzj29mE-T9J7yE,480
|
@@ -1659,12 +1663,12 @@ vellum/workflows/runner/__init__.py,sha256=i1iG5sAhtpdsrlvwgH6B-m49JsINkiWyPWs8v
|
|
1659
1663
|
vellum/workflows/runner/runner.py,sha256=1ozidWAFecR7nfpj_Uw33SBGJVZY54JyU0AA3wySqaA,32826
|
1660
1664
|
vellum/workflows/sandbox.py,sha256=GVJzVjMuYzOBnSrboB0_6MMRZWBluAyQ2o7syeaeBd0,2235
|
1661
1665
|
vellum/workflows/state/__init__.py,sha256=yUUdR-_Vl7UiixNDYQZ-GEM_kJI9dnOia75TtuNEsnE,60
|
1662
|
-
vellum/workflows/state/base.py,sha256=
|
1666
|
+
vellum/workflows/state/base.py,sha256=ZXDmVafs6sExcbx1azrZjEGQsmuY68mSRWfI7t2PT4c,22330
|
1663
1667
|
vellum/workflows/state/context.py,sha256=KOAI1wEGn8dGmhmAemJaf4SZbitP3jpIBcwKfznQaRE,3076
|
1664
1668
|
vellum/workflows/state/encoder.py,sha256=TnOQojc5lTQ83g9QbpA4UCqShJvutmTMxbpKt-9gNe4,1911
|
1665
1669
|
vellum/workflows/state/store.py,sha256=uVe-oN73KwGV6M6YLhwZMMUQhzTQomsVfVnb8V91gVo,1147
|
1666
1670
|
vellum/workflows/state/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1667
|
-
vellum/workflows/state/tests/test_state.py,sha256=
|
1671
|
+
vellum/workflows/state/tests/test_state.py,sha256=YOiC9qZAzkdiqb7nRarNWeDwxo7xHv3y3czlHl81ezg,6741
|
1668
1672
|
vellum/workflows/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1669
1673
|
vellum/workflows/tests/test_sandbox.py,sha256=JKwaluI-lODQo7Ek9sjDstjL_WTdSqUlVik6ZVTfVOA,1826
|
1670
1674
|
vellum/workflows/tests/test_undefined.py,sha256=zMCVliCXVNLrlC6hEGyOWDnQADJ2g83yc5FIM33zuo8,353
|
@@ -1672,7 +1676,7 @@ vellum/workflows/types/__init__.py,sha256=KxUTMBGzuRCfiMqzzsykOeVvrrkaZmTTo1a7SL
|
|
1672
1676
|
vellum/workflows/types/core.py,sha256=kMQremh_I8egXpiKmtMQbB6e3OczAWiRnnTq5V6xlD0,928
|
1673
1677
|
vellum/workflows/types/definition.py,sha256=z81CL_u0FJol-9yUIqoXNTYAARtU8x__c6s-f4rb5c8,2335
|
1674
1678
|
vellum/workflows/types/generics.py,sha256=tKXz0LwWJGKw1YGudyl9_yFDrRgU6yYV1yJV1Zv-LTw,1430
|
1675
|
-
vellum/workflows/types/stack.py,sha256=
|
1679
|
+
vellum/workflows/types/stack.py,sha256=h7NE0vXR7l9DevFBIzIAk1Zh59K-kECQtDTKOUunwMY,1314
|
1676
1680
|
vellum/workflows/types/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1677
1681
|
vellum/workflows/types/tests/test_utils.py,sha256=y2bj4O8-ykPRRRocdD98NdnQz6ydSCoMBp6rECPPqE8,2536
|
1678
1682
|
vellum/workflows/types/utils.py,sha256=mSlcgIr8q_qMCtSCdPxcduRntL_5hk4ptFGq3K0EVgw,5801
|
@@ -1688,13 +1692,13 @@ vellum/workflows/utils/uuids.py,sha256=DFzPv9RCvsKhvdTEIQyfSek2A31D6S_QcmeLPbgrg
|
|
1688
1692
|
vellum/workflows/utils/vellum_variables.py,sha256=UiGlUh0a8vel2FbW3w-xbHxSv_jNutkDdqMVtP_b42A,3385
|
1689
1693
|
vellum/workflows/vellum_client.py,sha256=GxOy3dX6A04xiY69vPv1S4YGuQ_TMxwHi6WRMimQBBE,762
|
1690
1694
|
vellum/workflows/workflows/__init__.py,sha256=KY45TqvavCCvXIkyCFMEc0dc6jTMOUci93U2DUrlZYc,66
|
1691
|
-
vellum/workflows/workflows/base.py,sha256=
|
1695
|
+
vellum/workflows/workflows/base.py,sha256=j9o6eXueXEwsueNMlZwYP4HhZPQjMgXIgHcRqWHNaDI,23584
|
1692
1696
|
vellum/workflows/workflows/event_filters.py,sha256=GSxIgwrX26a1Smfd-6yss2abGCnadGsrSZGa7t7LpJA,2008
|
1693
1697
|
vellum/workflows/workflows/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1694
|
-
vellum/workflows/workflows/tests/test_base_workflow.py,sha256=
|
1698
|
+
vellum/workflows/workflows/tests/test_base_workflow.py,sha256=8P5YIsNMO78_CR1NNK6wkEdkMB4b3Q_Ni1qxh78OnHo,20481
|
1695
1699
|
vellum/workflows/workflows/tests/test_context.py,sha256=VJBUcyWVtMa_lE5KxdhgMu0WYNYnUQUDvTF7qm89hJ0,2333
|
1696
|
-
vellum_ai-0.14.
|
1697
|
-
vellum_ai-0.14.
|
1698
|
-
vellum_ai-0.14.
|
1699
|
-
vellum_ai-0.14.
|
1700
|
-
vellum_ai-0.14.
|
1700
|
+
vellum_ai-0.14.41.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
|
1701
|
+
vellum_ai-0.14.41.dist-info/METADATA,sha256=KZufZ6Z5vdimywz8zeA6QW6OMaIa82TopA1biRjbVqE,5484
|
1702
|
+
vellum_ai-0.14.41.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
1703
|
+
vellum_ai-0.14.41.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
|
1704
|
+
vellum_ai-0.14.41.dist-info/RECORD,,
|
vellum_cli/push.py
CHANGED
@@ -17,7 +17,6 @@ from vellum.workflows.workflows.base import BaseWorkflow
|
|
17
17
|
from vellum_cli.config import DEFAULT_WORKSPACE_CONFIG, WorkflowConfig, WorkflowDeploymentConfig, load_vellum_cli_config
|
18
18
|
from vellum_cli.logger import load_cli_logger
|
19
19
|
from vellum_ee.workflows.display.workflows.get_vellum_workflow_display_class import get_workflow_display
|
20
|
-
from vellum_ee.workflows.display.workflows.vellum_workflow_display import VellumWorkflowDisplay
|
21
20
|
|
22
21
|
|
23
22
|
def push_command(
|
@@ -105,7 +104,6 @@ def push_command(
|
|
105
104
|
# https://app.shortcut.com/vellum/story/5585
|
106
105
|
workflow = BaseWorkflow.load_from_module(workflow_config.module)
|
107
106
|
workflow_display = get_workflow_display(
|
108
|
-
base_display_class=VellumWorkflowDisplay,
|
109
107
|
workflow_class=workflow,
|
110
108
|
dry_run=dry_run or False,
|
111
109
|
)
|
@@ -1,10 +1,12 @@
|
|
1
1
|
from dataclasses import dataclass, field
|
2
2
|
from uuid import UUID
|
3
|
-
from typing import Optional
|
3
|
+
from typing import Optional, Type
|
4
4
|
|
5
5
|
from pydantic import Field
|
6
6
|
|
7
7
|
from vellum.client.core.pydantic_utilities import UniversalBaseModel
|
8
|
+
from vellum.workflows.utils.uuids import uuid4_from_hash
|
9
|
+
from vellum.workflows.workflows.base import BaseWorkflow
|
8
10
|
from vellum_ee.workflows.display.editor.types import NodeDisplayData
|
9
11
|
|
10
12
|
|
@@ -25,6 +27,17 @@ class WorkflowMetaDisplay:
|
|
25
27
|
entrypoint_node_display: NodeDisplayData = Field(default_factory=NodeDisplayData)
|
26
28
|
display_data: WorkflowDisplayData = field(default_factory=WorkflowDisplayData)
|
27
29
|
|
30
|
+
@classmethod
|
31
|
+
def get_default(cls, workflow: Type[BaseWorkflow]) -> "WorkflowMetaDisplay":
|
32
|
+
entrypoint_node_id = uuid4_from_hash(f"{workflow.__id__}|entrypoint_node_id")
|
33
|
+
entrypoint_node_source_handle_id = uuid4_from_hash(f"{workflow.__id__}|entrypoint_node_source_handle_id")
|
34
|
+
|
35
|
+
return WorkflowMetaDisplay(
|
36
|
+
entrypoint_node_id=entrypoint_node_id,
|
37
|
+
entrypoint_node_source_handle_id=entrypoint_node_source_handle_id,
|
38
|
+
entrypoint_node_display=NodeDisplayData(),
|
39
|
+
)
|
40
|
+
|
28
41
|
|
29
42
|
@dataclass
|
30
43
|
class WorkflowMetaDisplayOverrides(WorkflowMetaDisplay):
|
@@ -21,18 +21,35 @@ from vellum.client.types.code_resource_definition import CodeResourceDefinition
|
|
21
21
|
from vellum.workflows import BaseWorkflow
|
22
22
|
from vellum.workflows.constants import undefined
|
23
23
|
from vellum.workflows.descriptors.base import BaseDescriptor
|
24
|
+
from vellum.workflows.expressions.accessor import AccessorExpression
|
25
|
+
from vellum.workflows.expressions.and_ import AndExpression
|
26
|
+
from vellum.workflows.expressions.begins_with import BeginsWithExpression
|
24
27
|
from vellum.workflows.expressions.between import BetweenExpression
|
28
|
+
from vellum.workflows.expressions.coalesce_expression import CoalesceExpression
|
29
|
+
from vellum.workflows.expressions.contains import ContainsExpression
|
30
|
+
from vellum.workflows.expressions.does_not_begin_with import DoesNotBeginWithExpression
|
31
|
+
from vellum.workflows.expressions.does_not_contain import DoesNotContainExpression
|
32
|
+
from vellum.workflows.expressions.does_not_end_with import DoesNotEndWithExpression
|
33
|
+
from vellum.workflows.expressions.ends_with import EndsWithExpression
|
34
|
+
from vellum.workflows.expressions.equals import EqualsExpression
|
35
|
+
from vellum.workflows.expressions.greater_than import GreaterThanExpression
|
36
|
+
from vellum.workflows.expressions.greater_than_or_equal_to import GreaterThanOrEqualToExpression
|
37
|
+
from vellum.workflows.expressions.in_ import InExpression
|
25
38
|
from vellum.workflows.expressions.is_nil import IsNilExpression
|
26
39
|
from vellum.workflows.expressions.is_not_nil import IsNotNilExpression
|
27
40
|
from vellum.workflows.expressions.is_not_null import IsNotNullExpression
|
28
41
|
from vellum.workflows.expressions.is_not_undefined import IsNotUndefinedExpression
|
29
42
|
from vellum.workflows.expressions.is_null import IsNullExpression
|
30
43
|
from vellum.workflows.expressions.is_undefined import IsUndefinedExpression
|
44
|
+
from vellum.workflows.expressions.less_than import LessThanExpression
|
45
|
+
from vellum.workflows.expressions.less_than_or_equal_to import LessThanOrEqualToExpression
|
31
46
|
from vellum.workflows.expressions.not_between import NotBetweenExpression
|
47
|
+
from vellum.workflows.expressions.not_in import NotInExpression
|
48
|
+
from vellum.workflows.expressions.or_ import OrExpression
|
32
49
|
from vellum.workflows.expressions.parse_json import ParseJsonExpression
|
33
50
|
from vellum.workflows.nodes.bases.base import BaseNode
|
34
51
|
from vellum.workflows.nodes.displayable.bases.utils import primitive_to_vellum_value
|
35
|
-
from vellum.workflows.nodes.utils import get_wrapped_node
|
52
|
+
from vellum.workflows.nodes.utils import get_unadorned_node, get_wrapped_node
|
36
53
|
from vellum.workflows.ports import Port
|
37
54
|
from vellum.workflows.references import OutputReference
|
38
55
|
from vellum.workflows.references.constant import ConstantValueReference
|
@@ -47,10 +64,12 @@ from vellum.workflows.types.utils import get_original_base
|
|
47
64
|
from vellum.workflows.utils.names import pascal_to_title_case
|
48
65
|
from vellum.workflows.utils.uuids import uuid4_from_hash
|
49
66
|
from vellum.workflows.utils.vellum_variables import primitive_type_to_vellum_variable_type
|
50
|
-
from vellum_ee.workflows.display.editor.types import NodeDisplayData
|
67
|
+
from vellum_ee.workflows.display.editor.types import NodeDisplayComment, NodeDisplayData
|
51
68
|
from vellum_ee.workflows.display.nodes.get_node_display_class import get_node_display_class
|
52
69
|
from vellum_ee.workflows.display.nodes.types import NodeOutputDisplay, PortDisplay, PortDisplayOverrides
|
70
|
+
from vellum_ee.workflows.display.utils.exceptions import UnsupportedSerializationException
|
53
71
|
from vellum_ee.workflows.display.utils.expressions import get_child_descriptor
|
72
|
+
from vellum_ee.workflows.display.utils.registry import register_node_display_class
|
54
73
|
from vellum_ee.workflows.display.utils.vellum import convert_descriptor_to_operator
|
55
74
|
|
56
75
|
if TYPE_CHECKING:
|
@@ -121,9 +140,6 @@ class BaseNodeDisplay(Generic[NodeType], metaclass=BaseNodeDisplayMeta):
|
|
121
140
|
# Once all nodes are Generic Nodes, we may replace this with a trigger_id or trigger attribute
|
122
141
|
target_handle_id: ClassVar[Optional[UUID]] = None
|
123
142
|
|
124
|
-
# Used to store the mapping between node types and their display classes
|
125
|
-
_node_display_registry: Dict[Type[NodeType], Type["BaseNodeDisplay"]] = {}
|
126
|
-
|
127
143
|
def serialize(self, display_context: "WorkflowDisplayContext", **kwargs: Any) -> JsonObject:
|
128
144
|
node = self._node
|
129
145
|
node_id = self.node_id
|
@@ -149,7 +165,7 @@ class BaseNodeDisplay(Generic[NodeType], metaclass=BaseNodeDisplayMeta):
|
|
149
165
|
adornments = kwargs.get("adornments", None)
|
150
166
|
wrapped_node = get_wrapped_node(node)
|
151
167
|
if wrapped_node is not None:
|
152
|
-
display_class = get_node_display_class(
|
168
|
+
display_class = get_node_display_class(wrapped_node)
|
153
169
|
|
154
170
|
adornment: JsonObject = {
|
155
171
|
"id": str(node_id),
|
@@ -207,7 +223,7 @@ class BaseNodeDisplay(Generic[NodeType], metaclass=BaseNodeDisplayMeta):
|
|
207
223
|
"id": str(node_id),
|
208
224
|
"label": node.__qualname__,
|
209
225
|
"type": "GENERIC",
|
210
|
-
"display_data": self.
|
226
|
+
"display_data": self.get_display_data().dict(),
|
211
227
|
"base": self.get_base().dict(),
|
212
228
|
"definition": self.get_definition().dict(),
|
213
229
|
"trigger": {
|
@@ -260,6 +276,13 @@ class BaseNodeDisplay(Generic[NodeType], metaclass=BaseNodeDisplayMeta):
|
|
260
276
|
|
261
277
|
return PortDisplay(id=port_id, node_id=self.node_id)
|
262
278
|
|
279
|
+
def get_source_handle_id(self, port_displays: Dict[Port, PortDisplay]) -> UUID:
|
280
|
+
unadorned_node = get_unadorned_node(self._node)
|
281
|
+
default_port = unadorned_node.Ports.default
|
282
|
+
|
283
|
+
default_port_display = port_displays[default_port]
|
284
|
+
return default_port_display.id
|
285
|
+
|
263
286
|
def get_trigger_id(self) -> UUID:
|
264
287
|
return self.get_target_handle_id()
|
265
288
|
|
@@ -280,10 +303,6 @@ class BaseNodeDisplay(Generic[NodeType], metaclass=BaseNodeDisplayMeta):
|
|
280
303
|
|
281
304
|
return self.get_target_handle_id()
|
282
305
|
|
283
|
-
@classmethod
|
284
|
-
def get_from_node_display_registry(cls, node_class: Type[NodeType]) -> Optional[Type["BaseNodeDisplay"]]:
|
285
|
-
return cls._node_display_registry.get(node_class)
|
286
|
-
|
287
306
|
@cached_property
|
288
307
|
def node_id(self) -> UUID:
|
289
308
|
"""Can be overridden as a class attribute to specify a custom node id."""
|
@@ -344,18 +363,39 @@ class BaseNodeDisplay(Generic[NodeType], metaclass=BaseNodeDisplayMeta):
|
|
344
363
|
|
345
364
|
def __init_subclass__(cls, **kwargs: Any) -> None:
|
346
365
|
super().__init_subclass__(**kwargs)
|
347
|
-
if not cls._node_display_registry:
|
348
|
-
cls._node_display_registry[BaseNode] = BaseNodeDisplay
|
349
366
|
|
350
367
|
node_class = cls.infer_node_class()
|
351
368
|
if node_class is BaseNode:
|
352
369
|
return
|
353
370
|
|
354
|
-
|
371
|
+
register_node_display_class(node_class=node_class, node_display_class=cls)
|
355
372
|
|
356
|
-
def
|
373
|
+
def get_display_data(self) -> NodeDisplayData:
|
357
374
|
explicit_value = self._get_explicit_node_display_attr("display_data", NodeDisplayData)
|
358
|
-
|
375
|
+
docstring = self._node.__doc__
|
376
|
+
|
377
|
+
if explicit_value and explicit_value.comment and docstring:
|
378
|
+
comment = (
|
379
|
+
NodeDisplayComment(value=docstring, expanded=explicit_value.comment.expanded)
|
380
|
+
if explicit_value.comment.expanded
|
381
|
+
else NodeDisplayComment(value=docstring)
|
382
|
+
)
|
383
|
+
return NodeDisplayData(
|
384
|
+
position=explicit_value.position,
|
385
|
+
width=explicit_value.width,
|
386
|
+
height=explicit_value.height,
|
387
|
+
comment=comment,
|
388
|
+
)
|
389
|
+
|
390
|
+
if explicit_value:
|
391
|
+
return explicit_value
|
392
|
+
|
393
|
+
if docstring:
|
394
|
+
return NodeDisplayData(
|
395
|
+
comment=NodeDisplayComment(value=docstring),
|
396
|
+
)
|
397
|
+
|
398
|
+
return NodeDisplayData()
|
359
399
|
|
360
400
|
def serialize_condition(self, display_context: "WorkflowDisplayContext", condition: BaseDescriptor) -> JsonObject:
|
361
401
|
if isinstance(
|
@@ -388,9 +428,29 @@ class BaseNodeDisplay(Generic[NodeType], metaclass=BaseNodeDisplayMeta):
|
|
388
428
|
"lhs": lhs,
|
389
429
|
"rhs": rhs,
|
390
430
|
}
|
391
|
-
|
392
|
-
|
393
|
-
|
431
|
+
elif isinstance(
|
432
|
+
condition,
|
433
|
+
(
|
434
|
+
AndExpression,
|
435
|
+
BeginsWithExpression,
|
436
|
+
CoalesceExpression,
|
437
|
+
ContainsExpression,
|
438
|
+
DoesNotBeginWithExpression,
|
439
|
+
DoesNotContainExpression,
|
440
|
+
DoesNotEndWithExpression,
|
441
|
+
EndsWithExpression,
|
442
|
+
EqualsExpression,
|
443
|
+
GreaterThanExpression,
|
444
|
+
GreaterThanOrEqualToExpression,
|
445
|
+
InExpression,
|
446
|
+
LessThanExpression,
|
447
|
+
LessThanOrEqualToExpression,
|
448
|
+
NotInExpression,
|
449
|
+
OrExpression,
|
450
|
+
),
|
451
|
+
):
|
452
|
+
lhs = self.serialize_value(display_context, condition._lhs)
|
453
|
+
rhs = self.serialize_value(display_context, condition._rhs)
|
394
454
|
|
395
455
|
return {
|
396
456
|
"type": "BINARY_EXPRESSION",
|
@@ -398,6 +458,15 @@ class BaseNodeDisplay(Generic[NodeType], metaclass=BaseNodeDisplayMeta):
|
|
398
458
|
"operator": convert_descriptor_to_operator(condition),
|
399
459
|
"rhs": rhs,
|
400
460
|
}
|
461
|
+
elif isinstance(condition, AccessorExpression):
|
462
|
+
return {
|
463
|
+
"type": "BINARY_EXPRESSION",
|
464
|
+
"lhs": self.serialize_value(display_context, condition._base),
|
465
|
+
"operator": "accessField",
|
466
|
+
"rhs": self.serialize_value(display_context, condition._field),
|
467
|
+
}
|
468
|
+
|
469
|
+
raise UnsupportedSerializationException(f"Unsupported condition type: {condition.__class__.__name__}")
|
401
470
|
|
402
471
|
def serialize_value(self, display_context: "WorkflowDisplayContext", value: Any) -> JsonObject:
|
403
472
|
if isinstance(value, ConstantValueReference):
|
@@ -458,3 +527,6 @@ class BaseNodeDisplay(Generic[NodeType], metaclass=BaseNodeDisplayMeta):
|
|
458
527
|
# If it's not any of the references we know about,
|
459
528
|
# then try to serialize it as a nested value
|
460
529
|
return self.serialize_condition(display_context, value)
|
530
|
+
|
531
|
+
|
532
|
+
register_node_display_class(node_class=BaseNode, node_display_class=BaseNodeDisplay)
|
@@ -1,33 +1,27 @@
|
|
1
1
|
import types
|
2
2
|
from uuid import UUID
|
3
|
-
from typing import TYPE_CHECKING, Any, Dict,
|
3
|
+
from typing import TYPE_CHECKING, Any, Dict, Generic, Type, TypeVar
|
4
4
|
|
5
5
|
from vellum.workflows.descriptors.base import BaseDescriptor
|
6
6
|
from vellum.workflows.types.generics import NodeType
|
7
7
|
from vellum.workflows.utils.uuids import uuid4_from_hash
|
8
|
+
from vellum_ee.workflows.display.utils.registry import get_from_node_display_registry
|
8
9
|
|
9
10
|
if TYPE_CHECKING:
|
10
11
|
from vellum_ee.workflows.display.nodes.base_node_display import BaseNodeDisplay
|
11
12
|
|
12
13
|
|
13
|
-
def get_node_display_class(
|
14
|
-
|
15
|
-
) -> Type["BaseNodeDisplay"]:
|
16
|
-
node_display_class = base_class.get_from_node_display_registry(node_class)
|
14
|
+
def get_node_display_class(node_class: Type[NodeType]) -> Type["BaseNodeDisplay"]:
|
15
|
+
node_display_class = get_from_node_display_registry(node_class)
|
17
16
|
if node_display_class:
|
18
|
-
if not issubclass(node_display_class, base_class):
|
19
|
-
raise TypeError(
|
20
|
-
f"Expected to find a subclass of '{base_class.__name__}' for node class '{node_class.__name__}'"
|
21
|
-
)
|
22
|
-
|
23
17
|
return node_display_class
|
24
18
|
|
25
|
-
base_node_display_class = get_node_display_class(
|
26
|
-
base_class, node_class.__bases__[0], node_class if root_node_class is None else root_node_class
|
27
|
-
)
|
19
|
+
base_node_display_class = get_node_display_class(node_class.__bases__[0])
|
28
20
|
|
21
|
+
# mypy gets upset at dynamic TypeVar's, but it's technically allowed by python
|
22
|
+
_NodeClassType = TypeVar(f"_{node_class.__name__}Type", bound=node_class) # type: ignore[misc]
|
29
23
|
# `base_node_display_class` is always a Generic class, so it's safe to index into it
|
30
|
-
NodeDisplayBaseClass = base_node_display_class[
|
24
|
+
NodeDisplayBaseClass = base_node_display_class[_NodeClassType] # type: ignore[index]
|
31
25
|
|
32
26
|
def _get_node_input_ids_by_ref(path: str, inst: Any):
|
33
27
|
if isinstance(inst, dict):
|
@@ -51,7 +45,7 @@ def get_node_display_class(
|
|
51
45
|
|
52
46
|
NodeDisplayClass = types.new_class(
|
53
47
|
f"{node_class.__name__}Display",
|
54
|
-
bases=(NodeDisplayBaseClass,),
|
48
|
+
bases=(NodeDisplayBaseClass, Generic[_NodeClassType]),
|
55
49
|
exec_body=exec_body,
|
56
50
|
)
|
57
51
|
|