vellum-ai 1.7.4__py3-none-any.whl → 1.7.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. vellum/__init__.py +2 -0
  2. vellum/client/core/client_wrapper.py +2 -2
  3. vellum/client/reference.md +95 -0
  4. vellum/client/resources/workflow_deployments/client.py +111 -0
  5. vellum/client/resources/workflow_deployments/raw_client.py +121 -0
  6. vellum/client/types/__init__.py +2 -0
  7. vellum/client/types/paginated_workflow_deployment_release_list.py +30 -0
  8. vellum/client/types/vellum_error_code_enum.py +2 -0
  9. vellum/client/types/vellum_sdk_error_code_enum.py +2 -0
  10. vellum/client/types/workflow_execution_event_error_code.py +2 -0
  11. vellum/types/paginated_workflow_deployment_release_list.py +3 -0
  12. vellum/workflows/edges/__init__.py +2 -0
  13. vellum/workflows/edges/trigger_edge.py +67 -0
  14. vellum/workflows/events/tests/test_event.py +40 -0
  15. vellum/workflows/events/workflow.py +15 -3
  16. vellum/workflows/graph/graph.py +93 -0
  17. vellum/workflows/graph/tests/test_graph.py +167 -0
  18. vellum/workflows/nodes/bases/base.py +28 -9
  19. vellum/workflows/nodes/displayable/search_node/node.py +2 -1
  20. vellum/workflows/nodes/displayable/search_node/tests/test_node.py +14 -0
  21. vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py +7 -1
  22. vellum/workflows/nodes/displayable/subworkflow_deployment_node/tests/test_node.py +1 -1
  23. vellum/workflows/nodes/displayable/tool_calling_node/node.py +1 -1
  24. vellum/workflows/nodes/displayable/tool_calling_node/tests/test_node.py +54 -0
  25. vellum/workflows/nodes/displayable/tool_calling_node/utils.py +27 -25
  26. vellum/workflows/ports/port.py +11 -0
  27. vellum/workflows/runner/runner.py +30 -40
  28. vellum/workflows/triggers/__init__.py +5 -0
  29. vellum/workflows/triggers/base.py +125 -0
  30. vellum/workflows/triggers/integration.py +62 -0
  31. vellum/workflows/triggers/manual.py +37 -0
  32. vellum/workflows/triggers/tests/__init__.py +1 -0
  33. vellum/workflows/triggers/tests/test_integration.py +102 -0
  34. vellum/workflows/workflows/base.py +26 -12
  35. {vellum_ai-1.7.4.dist-info → vellum_ai-1.7.6.dist-info}/METADATA +1 -1
  36. {vellum_ai-1.7.4.dist-info → vellum_ai-1.7.6.dist-info}/RECORD +48 -38
  37. vellum_cli/push.py +1 -5
  38. vellum_cli/tests/test_push.py +86 -0
  39. vellum_ee/assets/node-definitions.json +1 -1
  40. vellum_ee/workflows/display/base.py +26 -1
  41. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_inline_workflow_serialization.py +1 -1
  42. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_serialization.py +1 -1
  43. vellum_ee/workflows/display/tests/workflow_serialization/test_manual_trigger_serialization.py +110 -0
  44. vellum_ee/workflows/display/workflows/base_workflow_display.py +72 -10
  45. vellum_ee/workflows/tests/test_server.py +40 -1
  46. {vellum_ai-1.7.4.dist-info → vellum_ai-1.7.6.dist-info}/LICENSE +0 -0
  47. {vellum_ai-1.7.4.dist-info → vellum_ai-1.7.6.dist-info}/WHEEL +0 -0
  48. {vellum_ai-1.7.4.dist-info → vellum_ai-1.7.6.dist-info}/entry_points.txt +0 -0
@@ -9,7 +9,7 @@ vellum_cli/logger.py,sha256=dcM_OmgqXLo93vDYswO5ylyUQQcTfnA5GTd5tbIt3wM,1446
9
9
  vellum_cli/move.py,sha256=lCHQ-U4BspgS512GxFFvUrglitaHkWfuKn1Hpfcn7-Q,2053
10
10
  vellum_cli/ping.py,sha256=p_BCCRjgPhng6JktuECtkDQLbhopt6JpmrtGoLnLJT8,1161
11
11
  vellum_cli/pull.py,sha256=udYyPlJ6VKDdh78rApNJOZgxHl82fcV6iGnRPSdX1LY,14750
12
- vellum_cli/push.py,sha256=KpBGq7B-ffwa9QTHsTRSk73l-tfKc3gyiBSn9Pwlsak,11878
12
+ vellum_cli/push.py,sha256=epoQNdFdXUzLlfwE2ZTklfy3DW6bI4-Pgv1QRS8CZXk,11803
13
13
  vellum_cli/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  vellum_cli/tests/conftest.py,sha256=wx3PlJjVB0HRf5dr2b_idOIw27WPPl0J0FNbhIJJaVk,1689
15
15
  vellum_cli/tests/test_config.py,sha256=uvKGDc8BoVyT9_H0Z-g8469zVxomn6Oi3Zj-vK7O_wU,2631
@@ -20,14 +20,14 @@ vellum_cli/tests/test_main.py,sha256=qDZG-aQauPwBwM6A2DIu1494n47v3pL28XakTbLGZ-k
20
20
  vellum_cli/tests/test_move.py,sha256=FIrL1xlH5oFKGX2MugcTKL8JilpopmUC7hP5OaqF5zw,5213
21
21
  vellum_cli/tests/test_ping.py,sha256=b3aQLd-N59_8w2rRiWqwpB1rlHaKEYVbAj1Y3hi7A-g,2605
22
22
  vellum_cli/tests/test_pull.py,sha256=e2XHzcHIx9k-FyuNAl7wMSNsSSebPGyP6U05JGcddFs,49447
23
- vellum_cli/tests/test_push.py,sha256=2MjkNKr_9Guv5Exjsm3L1BeVXmPkKUcCSiKnp90HgW4,41996
23
+ vellum_cli/tests/test_push.py,sha256=oQ3x28G6IxplmMWCcPEYY46nOYAEPaihcMVsN4quQ5Q,45000
24
24
  vellum_ee/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
- vellum_ee/assets/node-definitions.json,sha256=UkHixt8WAnHmupooOrtpxYCaNG-5pRon1c8QUlc0Vhk,30754
25
+ vellum_ee/assets/node-definitions.json,sha256=Mm3c1nfEa1QjWWzNvIJlhahDcY4SM3wQm8og_x3jyd8,30755
26
26
  vellum_ee/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
27
  vellum_ee/scripts/generate_node_definitions.py,sha256=FOYQsXIqU45I0OAcsyZUGODF9JK44yunf58rR6YaAdA,3303
28
28
  vellum_ee/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
29
  vellum_ee/workflows/display/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
- vellum_ee/workflows/display/base.py,sha256=R3f2T8FlZrXn2FawAmpVuLB3fKFWw11mCUulWAyIKA0,1912
30
+ vellum_ee/workflows/display/base.py,sha256=BrXRr3WMDJitXe9hcq6EDE3MZvuRnEZuCsIswiAyYYk,2606
31
31
  vellum_ee/workflows/display/editor/__init__.py,sha256=MSAgY91xCEg2neH5d8jXx5wRdR962ftZVa6vO9BGq9k,167
32
32
  vellum_ee/workflows/display/editor/types.py,sha256=rmaNXkNZUNRgK-mJJ_g1-Fm3OGxoQfqEB7zn-zzgJtc,664
33
33
  vellum_ee/workflows/display/exceptions.py,sha256=_FDhK-lfuBPHY2GSywp70ewM0k55Ji5Bp-wZlEZenz4,112
@@ -101,15 +101,16 @@ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_
101
101
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py,sha256=ddPa8gNBYH2tWk92ymngY7M8n74J-8CEre50HISP_-g,7877
102
102
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py,sha256=A7Ef8P1-Nyvsb97bumKT9W2R1LuZaY9IKFV-7iRueog,4010
103
103
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_composio_serialization.py,sha256=oVXCjkU0G56QJmqnd_xIwF3D9bhJwALFibM2wmRhwUk,3739
104
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_inline_workflow_serialization.py,sha256=K7r5hivC3-599oqbkLgj5WMBcrix1znmuhAxs0w0EAE,26692
104
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_inline_workflow_serialization.py,sha256=0yMgPwl-A5GLcQCLr8faK2Z0HMONKnA0GnRTddbSch8,26693
105
105
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_mcp_serialization.py,sha256=QhQbijeCnFeX1i3SMjHJg2WVAEt5JEO3dhFRv-mofdA,2458
106
106
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_parent_input.py,sha256=__LX4cuzbyZp_1wc-SI8X_J0tnhOkCEmRVUWLKI5aQM,4578
107
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_serialization.py,sha256=5yaoN5aM6VZZtsleQcSWpbNyWLE1nTnMF6KbLmCrlc8,10437
107
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_serialization.py,sha256=xe9n2GKt6Pwf9antW0OUp34EJjxeJT6K-szE0PukHOo,10438
108
108
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_vellum_integration_serialization.py,sha256=zvLgIIgKTjAV5ObvqfoR7U-HSdOnGgOKxcCLoq5-Jvk,2851
109
109
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_workflow_deployment_serialization.py,sha256=XIZZr5POo2NLn2uEWm9EC3rejeBMoO4X-JtzTH6mvp4,4074
110
110
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py,sha256=pLCyMScV88DTBXRH7jXaXOEA1GBq8NIipCUFwIAWnwI,2771
111
111
  vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256=exT7U-axwtYgFylagScflSQLJEND51qIAx2UATju6JM,6023
112
112
  vellum_ee/workflows/display/tests/workflow_serialization/test_final_output_node_map_reference_serialization.py,sha256=vl3pxUJlrYRA8zzFJ-gRm7fe-5fviLNSIsUC7imnMqk,3502
113
+ vellum_ee/workflows/display/tests/workflow_serialization/test_manual_trigger_serialization.py,sha256=sd0lbity6yVIJ3HbMZEcL1wJEYoihqVW2Bjx8YMmrAM,3657
113
114
  vellum_ee/workflows/display/tests/workflow_serialization/test_terminal_node_any_serialization.py,sha256=4WAmSEJZlDBLPhsD1f4GwY9ahB9F6qJKGnL6j7ZYlzQ,1740
114
115
  vellum_ee/workflows/display/tests/workflow_serialization/test_web_search_node_serialization.py,sha256=vbDFBrWUPeeW7cxjNA6SXrsHlYcbOAhlQ4C45Vdnr1c,3428
115
116
  vellum_ee/workflows/display/tests/workflow_serialization/test_workflow_input_parameterization_error.py,sha256=vAdmn3YTBDpo55znbydQxsgg9ASqHcvsUPwiBR_7wfo,1461
@@ -126,7 +127,7 @@ vellum_ee/workflows/display/utils/tests/test_events.py,sha256=42IEBnMbaQrH8gigw5
126
127
  vellum_ee/workflows/display/utils/vellum.py,sha256=Bt7kdLdXoBsHn5dVEY2uKcF542VL09jwu8J_30rl2vk,6413
127
128
  vellum_ee/workflows/display/vellum.py,sha256=J2mdJZ1sdLW535DDUkq_Vm8Z572vhuxHxVZF9deKSdk,391
128
129
  vellum_ee/workflows/display/workflows/__init__.py,sha256=JTB9ObEV3l4gGGdtfBHwVJtTTKC22uj-a-XjTVwXCyA,148
129
- vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=uP3pqSloGjmUYBvVfKP0skZXJnqZxm7TEVxSLdrzU5c,44682
130
+ vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=DAGqGCg2WTBTNeO1akDpeCAJ5sAtUu65dnXsagnO6Jk,46937
130
131
  vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py,sha256=gxz76AeCqgAZ9D2lZeTiZzxY9eMgn3qOSfVgiqYcOh8,2028
131
132
  vellum_ee/workflows/display/workflows/tests/test_workflow_display.py,sha256=lg-c_3P3ldtqWq2VFsk_2Mkn3pVdXWuT59QpH7QwXVs,39764
132
133
  vellum_ee/workflows/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -153,14 +154,14 @@ vellum_ee/workflows/tests/local_workflow/workflow.py,sha256=A4qOzOPNwePYxWbcAgIP
153
154
  vellum_ee/workflows/tests/test_display_meta.py,sha256=PkXJVnMZs9GNooDkd59n4YTBAX3XGPQWeSSVbhehVFM,5112
154
155
  vellum_ee/workflows/tests/test_registry.py,sha256=B8xRIuEyLWfSqrYoPldNQXhKPfe50PllvtAZoI8-uPs,6066
155
156
  vellum_ee/workflows/tests/test_serialize_module.py,sha256=zleQTcGZa5_nzwu4zpFoqEHhk7pb64hGrhObR4anhPQ,4471
156
- vellum_ee/workflows/tests/test_server.py,sha256=DtQdVlRlfIvq0L9mSs0SncI0jHgDAq05HQCLj29aiZo,24728
157
+ vellum_ee/workflows/tests/test_server.py,sha256=RmLE2s9Cs7NejvWf7aPRNuAeEER-hGk-9Q9fYrn5wps,26013
157
158
  vellum_ee/workflows/tests/test_virtual_files.py,sha256=TJEcMR0v2S8CkloXNmCHA0QW0K6pYNGaIjraJz7sFvY,2762
158
- vellum/__init__.py,sha256=KGWwGtZMz-k9i8L1eHVnlEByJBSH31hAcCIVLNYB9Q0,49412
159
+ vellum/__init__.py,sha256=6dkyRHmIKuQPzL_z3QLVUrbkAF-HJKDhDSMCnf4ZsKw,49502
159
160
  vellum/client/README.md,sha256=flqu57ubZNTfpq60CdLtJC9gp4WEkyjb_n_eZ4OYf9w,6497
160
161
  vellum/client/__init__.py,sha256=rMnKRqL5-356SBc-rfm56MkO87PuAi2mtcfBszcJU1M,74316
161
162
  vellum/client/core/__init__.py,sha256=lTcqUPXcx4112yLDd70RAPeqq6tu3eFMe1pKOqkW9JQ,1562
162
163
  vellum/client/core/api_error.py,sha256=44vPoTyWN59gonCIZMdzw7M1uspygiLnr3GNFOoVL2Q,614
163
- vellum/client/core/client_wrapper.py,sha256=l3m9Q8u_-eKF93ekwPZtf7Z2S1yy8YrttUS-JF-zwc8,2840
164
+ vellum/client/core/client_wrapper.py,sha256=Xg-fX0-gnXrGKMqx9QTWnqutz2unMYFhgA34qo_877U,2840
164
165
  vellum/client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
165
166
  vellum/client/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
166
167
  vellum/client/core/force_multipart.py,sha256=awxh5MtcRYe74ehY8U76jzv6fYM_w_D3Rur7KQQzSDk,429
@@ -181,7 +182,7 @@ vellum/client/errors/not_found_error.py,sha256=YrqVM0oc3qkQbFbmmm6xr300VGfUNxMSy
181
182
  vellum/client/errors/too_many_requests_error.py,sha256=SJJemdgUlQHV_VpxK8UfFNexgZebNT5_MTOeQs6oVgc,397
182
183
  vellum/client/errors/unauthorized_error.py,sha256=waPl5Swiqsk3FQK-Lljzx4KDh4RPZ0wL6BLHjM8onQ8,394
183
184
  vellum/client/raw_client.py,sha256=cmMR0t87iUYvkIE9L4g0dcCmw3uUQNze9rD9CBv5rzs,113481
184
- vellum/client/reference.md,sha256=gAIp6dXDNddILqc5zicSGiZvtK0kP--WM6FThRxpmCA,106191
185
+ vellum/client/reference.md,sha256=lqfW5v1s-z4Amy07JcxQTF_YiLVlkbZH6bG4Hgn2Uyc,107432
185
186
  vellum/client/resources/__init__.py,sha256=JlNoSZYFGxLTuzPvmMV1b8IWDYjlDL4BaBbq9TgfGUE,1765
186
187
  vellum/client/resources/ad_hoc/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
187
188
  vellum/client/resources/ad_hoc/client.py,sha256=v5I_YzJaaPezsE4KVuMSUXJISstKuJ_9-VUeXakIJhw,14353
@@ -242,8 +243,8 @@ vellum/client/resources/test_suites/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-C
242
243
  vellum/client/resources/test_suites/client.py,sha256=xo197bXk84jj6gEieRmJuhqBbQ8IB-VMNLki7gdqhlo,20753
243
244
  vellum/client/resources/test_suites/raw_client.py,sha256=XfDqmJa7fngPsHAirTSSNBMHy2O4mKOaNS16IL567L8,22335
244
245
  vellum/client/resources/workflow_deployments/__init__.py,sha256=MVnGG7CkZA7F8p__MGerey22DTg6oYqfay77mdlDjBc,271
245
- vellum/client/resources/workflow_deployments/client.py,sha256=AolU-CJ7gKKTkVekNp9qZM5EyQQlsQyDtwJplwHIHLs,27328
246
- vellum/client/resources/workflow_deployments/raw_client.py,sha256=LvOUJmHV7EVk734DQGH65XbTtIPGLFzWzaOaXLHU7Ss,37533
246
+ vellum/client/resources/workflow_deployments/client.py,sha256=As_QCQU-aU7qfMniqPsCfo3NKHfCNFy5AG-KlDi5nS8,30647
247
+ vellum/client/resources/workflow_deployments/raw_client.py,sha256=Lye7Y1YEgW4Kx5MQJhktUfLkxvgYVNqBcCZjY7v-PN8,42159
247
248
  vellum/client/resources/workflow_deployments/types/__init__.py,sha256=2Lrjd-cX_h9gZEgxsF7e9nhCWUcTNXQyEaOjytC1NEM,360
248
249
  vellum/client/resources/workflow_deployments/types/list_workflow_release_tags_request_source.py,sha256=LPETHLX9Ygha_JRT9oWZAZR6clv-W1tTelXzktkTBX8,178
249
250
  vellum/client/resources/workflow_deployments/types/workflow_deployments_list_request_status.py,sha256=FXVkVmGM6DZ2RpTGnZXWJYiVlLQ-K5fDtX3WMaBPaWk,182
@@ -266,7 +267,7 @@ vellum/client/resources/workspaces/client.py,sha256=36KYa2FDu6h65q2GscUFOJs4qKei
266
267
  vellum/client/resources/workspaces/raw_client.py,sha256=M3Ewk1ZfEZ44EeTvBtBNoNKi5whwfLY-1GR07SyfDTI,3517
267
268
  vellum/client/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
268
269
  vellum/client/tests/test_utils.py,sha256=zk8z45-2xrm9sZ2hq8PTqY8MXmXtPqMqYK0VBBX0GHg,1176
269
- vellum/client/types/__init__.py,sha256=HEMxdgVYEgkUl7Fd6Xkai_kWAHVoqZBPa3a1qOaB2Dg,74785
270
+ vellum/client/types/__init__.py,sha256=mviyigR9JByvGdgCOqfY6DyrExvkCnN6PXBEMRsY3pw,74926
270
271
  vellum/client/types/ad_hoc_execute_prompt_event.py,sha256=B69EesIH6fpNsdoiJaSG9zF1Sl17FnjoTu4CBkUSoHk,608
271
272
  vellum/client/types/ad_hoc_expand_meta.py,sha256=Kajcj3dKKed5e7uZibRnE3ZonK_bB2JPM-3aLjLfUp4,1295
272
273
  vellum/client/types/ad_hoc_fulfilled_prompt_execution_meta.py,sha256=5kD6ZcbU8P8ynK0lMD8Mh7vHzvQt06ziMyphvWYg6FU,968
@@ -614,6 +615,7 @@ vellum/client/types/paginated_slim_tool_definition_list.py,sha256=XhtwDClmShV_LT
614
615
  vellum/client/types/paginated_slim_workflow_deployment_list.py,sha256=mIQZ1FT3qQTGG-8eMRvnSAm_u9ixlGk7b80nxoVBxCI,973
615
616
  vellum/client/types/paginated_test_suite_run_execution_list.py,sha256=sYg7pO_vCUoT0xH_a8mQAUWd8A-xEI0EEfmFKbv9U-c,921
616
617
  vellum/client/types/paginated_test_suite_test_case_list.py,sha256=gDVdq10b5u3NEzMZrjpioVDBLMKmHcsRXBi-IX2ZBL8,901
618
+ vellum/client/types/paginated_workflow_deployment_release_list.py,sha256=0THeQdJlr-hBLZIcCFHs8oPZUzmTUMhmNpWMhTb0q7c,988
617
619
  vellum/client/types/paginated_workflow_release_tag_read_list.py,sha256=QhnPPpYE5T_0Kzl6QJ9YWcsc4WYf74px_KOiQTWRqNY,782
618
620
  vellum/client/types/paginated_workflow_sandbox_example_list.py,sha256=GHWCQdTYmFeoN0lxdreN0RldKcUa2Duazlfke2cLOc4,781
619
621
  vellum/client/types/parent_context.py,sha256=U4eS717FDcsTPO37ckQs2axtzei-eyivwfjSmGYSOjU,890
@@ -841,13 +843,13 @@ vellum/client/types/vellum_code_resource_definition.py,sha256=XdueTR342BDjevZ3kt
841
843
  vellum/client/types/vellum_document.py,sha256=qwXqMS2Eud2a5KmF8QHhU_vJzDX0g5cesrCpmBqREsA,604
842
844
  vellum/client/types/vellum_document_request.py,sha256=P9vA7ZDNeaHNlMqyzfl-ZD4bpdf-xA5mH8R1QuOAmOY,611
843
845
  vellum/client/types/vellum_error.py,sha256=G4WSD-w_skoDDnsAt-TtImt-hZT-Sc8LjHvERBUVnhE,691
844
- vellum/client/types/vellum_error_code_enum.py,sha256=kaqf7PNViS1cELE571Ql2-Xueh058MPzq_jvqLiMH48,404
846
+ vellum/client/types/vellum_error_code_enum.py,sha256=aqRRPpcpagYMJ-TDBb-V9xyj2cubwP9ygNO4NaO1Y8s,477
845
847
  vellum/client/types/vellum_error_request.py,sha256=7l4Ux6wj3C9BdSXUPBrtxECsAirmvaLU42Y23VqncBU,698
846
848
  vellum/client/types/vellum_image.py,sha256=LAGUYBDsT0bmMOqgbaeCTCy2w4zAeHEyUIgPtmdjjJ4,601
847
849
  vellum/client/types/vellum_image_request.py,sha256=6DoI2AdJIG8NShHSslpHvsFUw5PwIMconjlHSipOP5Q,608
848
850
  vellum/client/types/vellum_node_execution_event.py,sha256=-MXat2wAZx4sx3JRp7gwJIOInPNwPMDpZmXtP8NC3O8,736
849
851
  vellum/client/types/vellum_sdk_error.py,sha256=oURNuw5zH4HqV6Ygw0MgVWH2DcuxekWvS_ZXA8tU31I,704
850
- vellum/client/types/vellum_sdk_error_code_enum.py,sha256=a2K6XJvl72tNn82zyx5QpzYGgLfYWVBKY-o8jeDqKoM,504
852
+ vellum/client/types/vellum_sdk_error_code_enum.py,sha256=zyPoP7V-uooGdBlVjanveQbaiHRumjAXsHwH_Stg8gU,577
851
853
  vellum/client/types/vellum_secret.py,sha256=04WlBWphqiJSUKM2NeJE32IDt-ZpVO_LOXkpXvBh3f0,519
852
854
  vellum/client/types/vellum_span.py,sha256=dmZOBXlDeXx4eLvBJBiOp07xuyjhisgXgnvYFSmctYE,259
853
855
  vellum/client/types/vellum_value.py,sha256=douOrlRh2ko1gmN8oDjsaoAEtyDcfq-OV_GThW92GNk,1188
@@ -884,7 +886,7 @@ vellum/client/types/workflow_execution_actual_chat_history_request.py,sha256=E3V
884
886
  vellum/client/types/workflow_execution_actual_json_request.py,sha256=jLsQxdg7SVyUkdu_Gyo3iDKgZcQnO5hsP0PHPsiGwrg,1895
885
887
  vellum/client/types/workflow_execution_actual_string_request.py,sha256=syFCXeB4MwjKblXfSBNfCSG4dJIR8Ww937gTcmTPh1w,1859
886
888
  vellum/client/types/workflow_execution_detail.py,sha256=R1tONdNarehoqk7zsK0D2wCSJEe9WauZmKHp5yKVLB8,2186
887
- vellum/client/types/workflow_execution_event_error_code.py,sha256=QzRLZ0dteptDmt3n5_vw26zGgDrpvcR4vRa_mtl2sMI,495
889
+ vellum/client/types/workflow_execution_event_error_code.py,sha256=8VL4wHTEy-AdQhApnOsz2L2wXcuo5LBqgUAVnaQ-pXM,568
888
890
  vellum/client/types/workflow_execution_event_type.py,sha256=ESKqV3ItoAlqBooruf-i0AnmEh_GvCySZ0Co3r9Bvt0,170
889
891
  vellum/client/types/workflow_execution_fulfilled_body.py,sha256=Auu-rzrIdxEkXgPHXe-BynwEWxL_R68E_VrLFCHueFA,710
890
892
  vellum/client/types/workflow_execution_fulfilled_event.py,sha256=eZ_DtDmRK-S2Q0LEJHlGS_FPd-UVvpgetRXqvWlSh4M,1925
@@ -1434,6 +1436,7 @@ vellum/types/paginated_slim_tool_definition_list.py,sha256=oA5StUVXoYK1nxXYKy2b3
1434
1436
  vellum/types/paginated_slim_workflow_deployment_list.py,sha256=3QgvxRFqcOw9z-cl0CBaHrREc8pxkPxUYreINh-indg,177
1435
1437
  vellum/types/paginated_test_suite_run_execution_list.py,sha256=XEr928_4w9Rw9_q6dshxPWfXXptLdRlDp-frKIIcdYQ,177
1436
1438
  vellum/types/paginated_test_suite_test_case_list.py,sha256=LoyXDEr2yXrkniJ25HctBWvhqKQ987XItukUwPYUIhQ,173
1439
+ vellum/types/paginated_workflow_deployment_release_list.py,sha256=Y4DCce-APrZNMIMz1db6ZAUmaCJdWMvuTmRImpii09k,180
1437
1440
  vellum/types/paginated_workflow_release_tag_read_list.py,sha256=XUeQn_6JPJ6K2qts-NZIEEZF94C3U2AosStc2k57eWY,178
1438
1441
  vellum/types/paginated_workflow_sandbox_example_list.py,sha256=FlPNK6QtzQL9yD-k_qpQrE8yMARrJRjk5aGf6ZTbGyY,177
1439
1442
  vellum/types/parent_context.py,sha256=z50nvSfKqZKrX-q6u5Ex3h6WzdM6_hb-9dBHWdTQ5AA,152
@@ -1796,8 +1799,9 @@ vellum/workflows/descriptors/base.py,sha256=v3WG2d_pekYtVK3Y2FSdVhf_XwNUnvXgSWuh
1796
1799
  vellum/workflows/descriptors/exceptions.py,sha256=Rv2uMiaO2a2SADhJzl_VHhV6dqwAhZAzaJPoThP7SZc,653
1797
1800
  vellum/workflows/descriptors/tests/test_utils.py,sha256=HJ5DoRz0sJvViGxyZ_FtytZjxN2J8xTkGtaVwCy6Q90,6928
1798
1801
  vellum/workflows/descriptors/utils.py,sha256=Z7kuhwb_D_kfcwKIAr1xI_AqYH6WFoZBYuslKQWZBFU,4399
1799
- vellum/workflows/edges/__init__.py,sha256=wSkmAnz9xyi4vZwtDbKxwlplt2skD7n3NsxkvR_pUus,50
1802
+ vellum/workflows/edges/__init__.py,sha256=auViJbvYiR1gzgGlhMv1fPDMvgXGOwa5g-YZn97fvUo,107
1800
1803
  vellum/workflows/edges/edge.py,sha256=N0SnY3gKVuxImPAdCbPMPlHJIXbkQ3fwq_LbJRvVMFc,677
1804
+ vellum/workflows/edges/trigger_edge.py,sha256=tyOqENGuKbxw_zn-f5rFSe6E3sWe2bRIZE4txvG7odE,2160
1801
1805
  vellum/workflows/emitters/__init__.py,sha256=d9QFOI3eVg6rzpSFLvrjkDYXWikf1tcp3ruTRa2Boyc,143
1802
1806
  vellum/workflows/emitters/base.py,sha256=4hClzI-ue0kWiEnZ1T1zvGz2ZWnoWLCVF-seqHBMUC8,1144
1803
1807
  vellum/workflows/emitters/vellum_emitter.py,sha256=t4ixrN0NNXrydMP9PVKYvcOMxoMqsg5v5pL7mzLE59k,4925
@@ -1813,9 +1817,9 @@ vellum/workflows/events/relational_threads.py,sha256=zmLrBCBYpdpQV0snKH3HleST-_h
1813
1817
  vellum/workflows/events/stream.py,sha256=xhXJTZirFi0xad5neAQNogrIQ4h47fpnKbVC3vCM5Js,889
1814
1818
  vellum/workflows/events/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1815
1819
  vellum/workflows/events/tests/test_basic_workflow.py,sha256=Pj6orHsXz37jWC5FARi0Sx2Gjf99Owri2Cvr6Chb79k,1765
1816
- vellum/workflows/events/tests/test_event.py,sha256=rwbS8W1wriN6EDt_NlFA1HgSAqgBbEyCU63gfjCowrM,19736
1820
+ vellum/workflows/events/tests/test_event.py,sha256=a-_vwiKhZWTxmRvDPB-aveWuGBOMqr5nY9t6uFmtL-o,21431
1817
1821
  vellum/workflows/events/types.py,sha256=mVrqAH9Hs9SpXm08Hcxdyap_ImQPwGsxRr56rSNMP34,5043
1818
- vellum/workflows/events/workflow.py,sha256=kLSWFXiDZH0TELWoDjQ_kHVomFnw8MVVUPDGIzgyosw,8997
1822
+ vellum/workflows/events/workflow.py,sha256=uoSnZFyG-oHvmvmAA3LYRJOMc_vOrbfa64stnSzNePs,9494
1819
1823
  vellum/workflows/exceptions.py,sha256=cizNaHgmGdIoYSV3Mn6_HlpUvs2Nq9KgpX1ewMZdBa0,2157
1820
1824
  vellum/workflows/executable.py,sha256=um-gLJMVYfGJwGJfZIPlCRHhHIYm6pn8PUEfeqrNx5k,218
1821
1825
  vellum/workflows/expressions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1863,9 +1867,9 @@ vellum/workflows/expressions/tests/test_length.py,sha256=pQA1tYSwqxE6euclboY024N
1863
1867
  vellum/workflows/expressions/tests/test_minus.py,sha256=pq7dvdRGNhSSn95LGNzRErsYUsFk5SpOKHDcSR5QToc,1632
1864
1868
  vellum/workflows/expressions/tests/test_parse_json.py,sha256=zpB_qE5_EwWQL7ULQUJm0o1PRSfWZdAqZNW6Ah13oJE,1059
1865
1869
  vellum/workflows/graph/__init__.py,sha256=3sHlay5d_-uD7j3QJXiGl0WHFZZ_QScRvgyDhN2GhHY,74
1866
- vellum/workflows/graph/graph.py,sha256=vkpteMc2a61IFGHlrA50J4ntVj6m3agcyWrXGQEbjHc,11280
1870
+ vellum/workflows/graph/graph.py,sha256=lUqREmkROzRtyw1ncRnN7CR9vbztJYR1IgR3hHIG9Xw,14537
1867
1871
  vellum/workflows/graph/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1868
- vellum/workflows/graph/tests/test_graph.py,sha256=0Pov0sCsxjzUDL9wy7xy9jFD-F2GsMJnZVEVFXzQGdM,15433
1872
+ vellum/workflows/graph/tests/test_graph.py,sha256=OLGkEQh-B1CucwSf4nOP79RFXB4R2isHo3LFlr-24yA,20132
1869
1873
  vellum/workflows/inputs/__init__.py,sha256=02pj0IbJkN1AxTreswK39cNi45tA8GWcAAdRJve4cuM,116
1870
1874
  vellum/workflows/inputs/base.py,sha256=79Dw3jiSnCVFeySg6rMFPIqPfErmGKY0XPhpW0dSY-E,5454
1871
1875
  vellum/workflows/inputs/dataset_row.py,sha256=Szdb_RKysCEBRfy4B5LoXoPiTZPEFp_0_RqRZUZRGbU,1076
@@ -1881,7 +1885,7 @@ vellum/workflows/integrations/vellum_integration_service.py,sha256=qhFoLzHlMli1P
1881
1885
  vellum/workflows/logging.py,sha256=_a217XogktV4Ncz6xKFz7WfYmZAzkfVRVuC0rWob8ls,437
1882
1886
  vellum/workflows/nodes/__init__.py,sha256=zymtc3_iW2rFmMR-sayTLuN6ZsAw8VnJweWPsjQk2-Q,1197
1883
1887
  vellum/workflows/nodes/bases/__init__.py,sha256=cniHuz_RXdJ4TQgD8CBzoiKDiPxg62ErdVpCbWICX64,58
1884
- vellum/workflows/nodes/bases/base.py,sha256=jitrO95AvJF2iCrqDgbNXZVLCx4LuApFk9Xx24_h7Bk,21653
1888
+ vellum/workflows/nodes/bases/base.py,sha256=u7NmYWhQZm91KZV53PGD-gpZvcWAItOme95TjZkHwDI,22094
1885
1889
  vellum/workflows/nodes/bases/base_adornment_node.py,sha256=hrgzuTetM4ynPd9YGHoK8Vwwn4XITi3aZZ_OCnQrq4Y,3433
1886
1890
  vellum/workflows/nodes/bases/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1887
1891
  vellum/workflows/nodes/bases/tests/test_base_adornment_node.py,sha256=fXZI9KqpS4XMBrBnIEkK3foHaBVvyHwYcQWWDKay7ic,1148
@@ -1962,26 +1966,26 @@ vellum/workflows/nodes/displayable/prompt_deployment_node/node.py,sha256=XeBn6d3
1962
1966
  vellum/workflows/nodes/displayable/prompt_deployment_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1963
1967
  vellum/workflows/nodes/displayable/prompt_deployment_node/tests/test_node.py,sha256=c_nuuqrwiIjgj4qIbVypfDuOc-3TlgO6CbXFqQl2Nqw,19725
1964
1968
  vellum/workflows/nodes/displayable/search_node/__init__.py,sha256=hpBpvbrDYf43DElRZFLzieSn8weXiwNiiNOJurERQbs,62
1965
- vellum/workflows/nodes/displayable/search_node/node.py,sha256=1dGCB1kb7MvX3fUJ5zP__Bh02mdPdRRsx_vwGyQFBVc,1981
1969
+ vellum/workflows/nodes/displayable/search_node/node.py,sha256=hbPsZhyXfq9dx0mfBKOyivluDmV2iXmDTT7loEyu9nI,2057
1966
1970
  vellum/workflows/nodes/displayable/search_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1967
- vellum/workflows/nodes/displayable/search_node/tests/test_node.py,sha256=WVZR3BI_CvxBG9hulv0-tcAc_gW5ozs0nH4uVNRJa2U,8863
1971
+ vellum/workflows/nodes/displayable/search_node/tests/test_node.py,sha256=YXgIIAJHVQxrfyJ0gxeJC0fAJaic10_zbqvsS8hyZSc,9368
1968
1972
  vellum/workflows/nodes/displayable/subworkflow_deployment_node/__init__.py,sha256=9yYM6001YZeqI1VOk1QuEM_yrffk_EdsO7qaPzINKds,92
1969
- vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py,sha256=SZIdk7aBmKKFgPYsxZaHIjT6p5W9HBYT1lj5yE4oax8,14169
1973
+ vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py,sha256=AHlW7aPDza1FuSR_9xONOe3tzDFDg8EIJtO1NJ7ILhk,14445
1970
1974
  vellum/workflows/nodes/displayable/subworkflow_deployment_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1971
- vellum/workflows/nodes/displayable/subworkflow_deployment_node/tests/test_node.py,sha256=c98nMPogZ6iN_pTvVUMTB3J72Hj--H-XVgvvRXhdSQE,19085
1975
+ vellum/workflows/nodes/displayable/subworkflow_deployment_node/tests/test_node.py,sha256=PII44speqT4fJvj60y_3KDAnH1L6Ivtq9R4BykY-X_A,19092
1972
1976
  vellum/workflows/nodes/displayable/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1973
1977
  vellum/workflows/nodes/displayable/tests/test_inline_text_prompt_node.py,sha256=E6PQ9OKcDlsJbWoxVKWgiAPgz9p59g1ONMgNggfOeiI,4868
1974
1978
  vellum/workflows/nodes/displayable/tests/test_search_node_error_handling.py,sha256=8aw8hDFL0ZXThvAa7yxrJN026EYGD4-Q1si3Phu9-_0,6307
1975
1979
  vellum/workflows/nodes/displayable/tests/test_search_node_wth_text_output.py,sha256=VepO5z1277c1y5N6LLIC31nnWD1aak2m5oPFplfJHHs,6935
1976
1980
  vellum/workflows/nodes/displayable/tests/test_text_prompt_deployment_node.py,sha256=Bjv-wZyFgNaVZb9KEMMZd9lFoLzbPEPjEMpANizMZw4,2413
1977
1981
  vellum/workflows/nodes/displayable/tool_calling_node/__init__.py,sha256=3n0-ysmFKsr40CVxPthc0rfJgqVJeZuUEsCmYudLVRg,117
1978
- vellum/workflows/nodes/displayable/tool_calling_node/node.py,sha256=pwK9q1blgRv9Mz_LY-fv_hxHfOOkuKxJ6AgRlorUrXk,8420
1982
+ vellum/workflows/nodes/displayable/tool_calling_node/node.py,sha256=rvCGtnCM1bFkwm_2osk1kuIPkUdlLgB4xDxx3yMlQ0Q,8421
1979
1983
  vellum/workflows/nodes/displayable/tool_calling_node/state.py,sha256=CcBVb_YtwfSSka4ze678k6-qwmzMSfjfVP8_Y95feSo,302
1980
1984
  vellum/workflows/nodes/displayable/tool_calling_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1981
1985
  vellum/workflows/nodes/displayable/tool_calling_node/tests/test_composio_service.py,sha256=in1fbEz5x1tx3uKv9YXdvOncsHucNL8Ro6Go7lBuuOQ,8962
1982
- vellum/workflows/nodes/displayable/tool_calling_node/tests/test_node.py,sha256=Idjtlly6GTotNa4isXJ23RxKzQA2oE10MOm793aipLA,13892
1986
+ vellum/workflows/nodes/displayable/tool_calling_node/tests/test_node.py,sha256=uXz9tbPK6ikGlF8Tfx-qiPeF-8qq_E5ZbmCmOMWkz24,15506
1983
1987
  vellum/workflows/nodes/displayable/tool_calling_node/tests/test_utils.py,sha256=EmKFA-ELdTzlK0xMqWnuSZPoGNLYCwk6b0amTqirZo0,11305
1984
- vellum/workflows/nodes/displayable/tool_calling_node/utils.py,sha256=yIo7xwI43M8wQO8UN4uYxWBWafgcC9e8Ucsp6PZDva4,24518
1988
+ vellum/workflows/nodes/displayable/tool_calling_node/utils.py,sha256=sReCkqd2pwUQ6pX9xZ_zQh-Wza2_2eV7HYRAHYaAaHo,24580
1985
1989
  vellum/workflows/nodes/displayable/web_search_node/__init__.py,sha256=8FOnEP-n-U68cvxTlJW9wphIAGHq5aqjzLM-DoSSXnU,61
1986
1990
  vellum/workflows/nodes/displayable/web_search_node/node.py,sha256=NQYux2bOtuBF5E4tn-fXi5y3btURPRrNqMSM9MAZYI4,5091
1987
1991
  vellum/workflows/nodes/displayable/web_search_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1999,7 +2003,7 @@ vellum/workflows/outputs/__init__.py,sha256=AyZ4pRh_ACQIGvkf0byJO46EDnSix1ZCAXfv
1999
2003
  vellum/workflows/outputs/base.py,sha256=zy02zr9DmG3j7Xp3Q8xiOiXFF_c7uNh76jf2LiMS-qE,10132
2000
2004
  vellum/workflows/ports/__init__.py,sha256=bZuMt-R7z5bKwpu4uPW7LlJeePOQWmCcDSXe5frUY5g,101
2001
2005
  vellum/workflows/ports/node_ports.py,sha256=SM9uLAaoaE1HwR-Uqwf2v5zZK5iFnphKs6mE5Ls7ldE,2877
2002
- vellum/workflows/ports/port.py,sha256=zaY02b-Fe0Mb16i7vLT2ouu5uMjept1nlhnqYdGDU-s,4111
2006
+ vellum/workflows/ports/port.py,sha256=L4VrUXT-77a1nN9dC4kuukur5kz2gleEpskaWT1MIRc,4627
2003
2007
  vellum/workflows/ports/tests/test_port.py,sha256=WEE83wct8C01Lq_asSbS0MfL5BLA2avsS0UqJMye4OU,1215
2004
2008
  vellum/workflows/ports/utils.py,sha256=gD8iijX8D3tjx1Tj2FW8-QIubCphTqW_gqROt6w6MOM,3790
2005
2009
  vellum/workflows/references/__init__.py,sha256=glHFC1VfXmcbNvH5VzFbkT03d8_D7MMcvEcsUBrzLIs,591
@@ -2021,7 +2025,7 @@ vellum/workflows/resolvers/resolver.py,sha256=3uEYscB_2PHTazc0Y9SzOe_yiQZhVLfey1
2021
2025
  vellum/workflows/resolvers/tests/test_resolver.py,sha256=PnUGzsulo1It_LjjhHsRNiILvvl5G_IaK8ZX56zKC28,6204
2022
2026
  vellum/workflows/resolvers/types.py,sha256=Hndhlk69g6EKLh_LYg5ILepW5U_h_BYNllfzhS9k8p4,237
2023
2027
  vellum/workflows/runner/__init__.py,sha256=i1iG5sAhtpdsrlvwgH6B-m49JsINkiWyPWs8vyT-bqM,72
2024
- vellum/workflows/runner/runner.py,sha256=pmqz7zP_YYv7e4kU2WviqHo37SETNyp1FWPscmob8v4,45666
2028
+ vellum/workflows/runner/runner.py,sha256=250GCJFyqTX9q5gYhfo6AkiIgMScVfEp4KYofRweqEk,45455
2025
2029
  vellum/workflows/sandbox.py,sha256=mezSZmilR_fwR8164n8CEfzlMeQ55IqfapHp4ftImvQ,3212
2026
2030
  vellum/workflows/state/__init__.py,sha256=yUUdR-_Vl7UiixNDYQZ-GEM_kJI9dnOia75TtuNEsnE,60
2027
2031
  vellum/workflows/state/base.py,sha256=A8s0PC8UvFjPpkHDY6u-yIeb2KHjoAmu-GW-GYrDl0E,24654
@@ -2035,6 +2039,12 @@ vellum/workflows/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
2035
2039
  vellum/workflows/tests/test_dataset_row.py,sha256=S8aIiYU9TRzJ8GTl5qCjnJ-fuHdxatHJFGLlKTVHPr4,4174
2036
2040
  vellum/workflows/tests/test_sandbox.py,sha256=JKwaluI-lODQo7Ek9sjDstjL_WTdSqUlVik6ZVTfVOA,1826
2037
2041
  vellum/workflows/tests/test_undefined.py,sha256=zMCVliCXVNLrlC6hEGyOWDnQADJ2g83yc5FIM33zuo8,353
2042
+ vellum/workflows/triggers/__init__.py,sha256=kistj6wgRgYe3fO82_4giZ_xFkElfnsDGRKAbzxrGnc,249
2043
+ vellum/workflows/triggers/base.py,sha256=HIZkKPdb9GOYjpGzk2DoSqkxsUyjBnzmsLyhVTWm1iE,4857
2044
+ vellum/workflows/triggers/integration.py,sha256=_RyNrNnIBIa08FMHmLh2QEZPb-u5j75Bye_FbR82nkg,2043
2045
+ vellum/workflows/triggers/manual.py,sha256=PgbZ92gcK25yz6REXm98zWic1QBfhxLKfGCeHpZEUx4,1266
2046
+ vellum/workflows/triggers/tests/__init__.py,sha256=R8lag_iCRyulijHMK4e3Gf6YVB5NplfvwZeTkaRj8gQ,30
2047
+ vellum/workflows/triggers/tests/test_integration.py,sha256=5N7ejz4AFmgQAZlHGV466rzWyb79iLeXU-pAfx9o4TA,3213
2038
2048
  vellum/workflows/types/__init__.py,sha256=fZ3Xxly7YSsu4kCIYD5aYpYucNM97zTyInb9CA24mf0,102
2039
2049
  vellum/workflows/types/code_execution_node_wrappers.py,sha256=fewX9bqF_4TZuK-gZYIn12s31-k03vHMGRpvFAPm11Y,3206
2040
2050
  vellum/workflows/types/core.py,sha256=R7snCd7ci4tiRuHi5ALGh_5DIIF0T9eze3sf6EnJN-c,1126
@@ -2060,13 +2070,13 @@ vellum/workflows/utils/vellum_variables.py,sha256=X3lZn-EoWengRWBWRhTNW7hqbj7LkV
2060
2070
  vellum/workflows/utils/zip.py,sha256=HVg_YZLmBOTXKaDV3Xhaf3V6sYnfqqZXQ8CpuafkbPY,1181
2061
2071
  vellum/workflows/vellum_client.py,sha256=3iDR7VV_NgLSm1iZQCKDvrmfEaX1bOJiU15QrxyHpv0,1237
2062
2072
  vellum/workflows/workflows/__init__.py,sha256=KY45TqvavCCvXIkyCFMEc0dc6jTMOUci93U2DUrlZYc,66
2063
- vellum/workflows/workflows/base.py,sha256=7LVmHbewLLQiOX1QAlZoKnuwTNgubn34Kn_QC6jKNnA,29993
2073
+ vellum/workflows/workflows/base.py,sha256=2XQMntFPXUO3p1js14TEKun4oNWRmZOzga-pUiv5vVk,30935
2064
2074
  vellum/workflows/workflows/event_filters.py,sha256=GSxIgwrX26a1Smfd-6yss2abGCnadGsrSZGa7t7LpJA,2008
2065
2075
  vellum/workflows/workflows/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2066
2076
  vellum/workflows/workflows/tests/test_base_workflow.py,sha256=Boa-_m9ii2Qsa1RvVM-VYniF7zCpzGgEGy-OnPZkrHg,23941
2067
2077
  vellum/workflows/workflows/tests/test_context.py,sha256=VJBUcyWVtMa_lE5KxdhgMu0WYNYnUQUDvTF7qm89hJ0,2333
2068
- vellum_ai-1.7.4.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
2069
- vellum_ai-1.7.4.dist-info/METADATA,sha256=sc8YEMq91hq8swhNrwAMqtp-WdoC201YZ6iOf36PxI4,5547
2070
- vellum_ai-1.7.4.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
2071
- vellum_ai-1.7.4.dist-info/entry_points.txt,sha256=xVavzAKN4iF_NbmhWOlOkHluka0YLkbN_pFQ9pW3gLI,117
2072
- vellum_ai-1.7.4.dist-info/RECORD,,
2078
+ vellum_ai-1.7.6.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
2079
+ vellum_ai-1.7.6.dist-info/METADATA,sha256=Bk9FFFzHL7vS59oSmxxgX_8fOxREGwYmlaqSFXP6zr4,5547
2080
+ vellum_ai-1.7.6.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
2081
+ vellum_ai-1.7.6.dist-info/entry_points.txt,sha256=xVavzAKN4iF_NbmhWOlOkHluka0YLkbN_pFQ9pW3gLI,117
2082
+ vellum_ai-1.7.6.dist-info/RECORD,,
vellum_cli/push.py CHANGED
@@ -77,11 +77,7 @@ def push_command(
77
77
 
78
78
  logger.info(f"Loading workflow from {workflow_config.module}")
79
79
  resolved_workspace = workspace or workflow_config.workspace or DEFAULT_WORKSPACE_CONFIG.name
80
- workspace_config = (
81
- next((w for w in config.workspaces if w.name == resolved_workspace), DEFAULT_WORKSPACE_CONFIG)
82
- if workspace
83
- else DEFAULT_WORKSPACE_CONFIG
84
- )
80
+ workspace_config = next((w for w in config.workspaces if w.name == resolved_workspace), DEFAULT_WORKSPACE_CONFIG)
85
81
  api_key = os.getenv(workspace_config.api_key)
86
82
  if not api_key:
87
83
  raise ValueError(f"No API key value found in environment for workspace '{workspace_config.name}'.")
@@ -1134,3 +1134,89 @@ def test_push__deploy_stores_deployment_config_in_lock_file(mock_module, vellum_
1134
1134
  deployment_config_str = call_args["deployment_config"]
1135
1135
  deployment_config = json.loads(deployment_config_str)
1136
1136
  assert deployment_config["name"] == "test-push-deploy-stores-deployment-config-in-lock-file"
1137
+
1138
+
1139
+ def test_push__custom_workspace_in_lockfile__uses_custom_workspace_without_flag(mock_module, vellum_client_class):
1140
+ """
1141
+ Tests that push respects the custom workspace from the lockfile when no --workspace flag is provided.
1142
+ """
1143
+
1144
+ # GIVEN a workflow already configured in the lockfile with a custom workspace
1145
+ temp_dir = mock_module.temp_dir
1146
+ module = mock_module.module
1147
+ workflow_sandbox_id = mock_module.workflow_sandbox_id
1148
+ set_pyproject_toml = mock_module.set_pyproject_toml
1149
+
1150
+ # AND the lockfile has the workflow with a custom workspace
1151
+ with open(os.path.join(temp_dir, "vellum.lock.json"), "w") as f:
1152
+ json.dump(
1153
+ {
1154
+ "version": "1.0",
1155
+ "workflows": [
1156
+ {
1157
+ "module": module,
1158
+ "workflow_sandbox_id": workflow_sandbox_id,
1159
+ "workspace": "my_custom_workspace",
1160
+ "container_image_name": None,
1161
+ "container_image_tag": None,
1162
+ "deployments": [],
1163
+ "ignore": None,
1164
+ "target_directory": None,
1165
+ }
1166
+ ],
1167
+ "workspaces": [],
1168
+ },
1169
+ f,
1170
+ indent=2,
1171
+ )
1172
+
1173
+ # AND the custom workspace is defined in pyproject.toml
1174
+ set_pyproject_toml(
1175
+ {
1176
+ "workflows": [],
1177
+ "workspaces": [
1178
+ {
1179
+ "name": "my_custom_workspace",
1180
+ "api_key": "MY_CUSTOM_VELLUM_API_KEY",
1181
+ }
1182
+ ],
1183
+ }
1184
+ )
1185
+
1186
+ # AND the .env file has the custom api key
1187
+ with open(os.path.join(temp_dir, ".env"), "w") as f:
1188
+ f.write(
1189
+ """\
1190
+ VELLUM_API_KEY=abcdef123456
1191
+ MY_CUSTOM_VELLUM_API_KEY=custom-key-xyz
1192
+ """
1193
+ )
1194
+
1195
+ # AND a workflow exists in the module
1196
+ _ensure_workflow_py(temp_dir, module)
1197
+
1198
+ # AND the push API returns successfully
1199
+ vellum_client_class.return_value.workflows.push.return_value = WorkflowPushResponse(
1200
+ workflow_sandbox_id=workflow_sandbox_id,
1201
+ )
1202
+ vellum_client_class.return_value._client_wrapper._environment.default = "https://api.vellum.ai/v1"
1203
+
1204
+ # WHEN calling `vellum push` WITHOUT the --workspace flag
1205
+ runner = CliRunner()
1206
+ result = runner.invoke(cli_main, ["push", module])
1207
+
1208
+ # THEN it should succeed
1209
+ assert result.exit_code == 0, result.output
1210
+
1211
+ # AND the custom workspace API key should have been used
1212
+ vellum_client_class.assert_called_once_with(
1213
+ api_key="custom-key-xyz",
1214
+ environment=mock.ANY,
1215
+ api_version=None,
1216
+ )
1217
+
1218
+ with open(os.path.join(temp_dir, "vellum.lock.json")) as f:
1219
+ lock_file_content = json.load(f)
1220
+ assert len(lock_file_content["workflows"]) == 1
1221
+ assert lock_file_content["workflows"][0]["workspace"] == "my_custom_workspace"
1222
+ assert lock_file_content["workflows"][0]["workflow_sandbox_id"] == workflow_sandbox_id
@@ -862,7 +862,7 @@
862
862
  "type": "CONSTANT_VALUE",
863
863
  "value": {
864
864
  "type": "NUMBER",
865
- "value": 5.0
865
+ "value": 25.0
866
866
  }
867
867
  }
868
868
  },
@@ -1,6 +1,7 @@
1
1
  from dataclasses import dataclass, field
2
+ from enum import Enum
2
3
  from uuid import UUID
3
- from typing import Optional, Type
4
+ from typing import TYPE_CHECKING, Dict, Optional, Type
4
5
 
5
6
  from pydantic import Field
6
7
 
@@ -9,6 +10,30 @@ from vellum.workflows.utils.uuids import uuid4_from_hash
9
10
  from vellum.workflows.workflows.base import BaseWorkflow
10
11
  from vellum_ee.workflows.display.editor.types import NodeDisplayData
11
12
 
13
+ if TYPE_CHECKING:
14
+ from vellum.workflows.triggers.base import BaseTrigger
15
+
16
+
17
+ class WorkflowTriggerType(Enum):
18
+ MANUAL = "MANUAL"
19
+
20
+
21
+ def get_trigger_type_mapping() -> Dict[Type["BaseTrigger"], WorkflowTriggerType]:
22
+ """
23
+ Get mapping from trigger classes to their WorkflowTriggerType enum values.
24
+
25
+ This is a function to avoid circular imports - it imports trigger classes
26
+ only when called, not at module load time.
27
+
28
+ Returns:
29
+ Dictionary mapping trigger classes to their enum types
30
+ """
31
+ from vellum.workflows.triggers.manual import ManualTrigger
32
+
33
+ return {
34
+ ManualTrigger: WorkflowTriggerType.MANUAL,
35
+ }
36
+
12
37
 
13
38
  class WorkflowDisplayDataViewport(UniversalBaseModel):
14
39
  x: float = 0.0
@@ -435,7 +435,7 @@ def test_serialize_workflow():
435
435
  {
436
436
  "id": "1668419e-a193-43a5-8a97-3394e89bf278",
437
437
  "name": "max_prompt_iterations",
438
- "value": {"type": "CONSTANT_VALUE", "value": {"type": "NUMBER", "value": 5.0}},
438
+ "value": {"type": "CONSTANT_VALUE", "value": {"type": "NUMBER", "value": 25.0}},
439
439
  },
440
440
  {
441
441
  "id": "f92dc3ec-a19a-4491-a98a-2b2df322e2e3",
@@ -204,7 +204,7 @@ def test_serialize_workflow():
204
204
  {
205
205
  "id": "1668419e-a193-43a5-8a97-3394e89bf278",
206
206
  "name": "max_prompt_iterations",
207
- "value": {"type": "CONSTANT_VALUE", "value": {"type": "NUMBER", "value": 5.0}},
207
+ "value": {"type": "CONSTANT_VALUE", "value": {"type": "NUMBER", "value": 25.0}},
208
208
  },
209
209
  {
210
210
  "id": "f92dc3ec-a19a-4491-a98a-2b2df322e2e3",
@@ -0,0 +1,110 @@
1
+ """Tests for serialization of workflows with ManualTrigger."""
2
+
3
+ import pytest
4
+ from typing import cast
5
+
6
+ from vellum.workflows import BaseWorkflow
7
+ from vellum.workflows.inputs.base import BaseInputs
8
+ from vellum.workflows.nodes.bases.base import BaseNode
9
+ from vellum.workflows.state.base import BaseState
10
+ from vellum.workflows.triggers.base import BaseTrigger
11
+ from vellum.workflows.triggers.manual import ManualTrigger
12
+ from vellum.workflows.types.core import JsonArray, JsonObject
13
+ from vellum_ee.workflows.display.workflows.get_vellum_workflow_display_class import get_workflow_display
14
+
15
+
16
+ class Inputs(BaseInputs):
17
+ input: str
18
+
19
+
20
+ class SimpleNode(BaseNode):
21
+ class Outputs(BaseNode.Outputs):
22
+ output = Inputs.input
23
+
24
+
25
+ def create_workflow(trigger=None):
26
+ """Factory for creating test workflows."""
27
+
28
+ class TestWorkflow(BaseWorkflow[Inputs, BaseState]):
29
+ graph = trigger >> SimpleNode if trigger else SimpleNode
30
+
31
+ class Outputs(BaseWorkflow.Outputs):
32
+ output = SimpleNode.Outputs.output
33
+
34
+ return TestWorkflow
35
+
36
+
37
+ def serialize(workflow_class) -> JsonObject:
38
+ """Helper to serialize a workflow."""
39
+ return get_workflow_display(workflow_class=workflow_class).serialize()
40
+
41
+
42
+ def test_manual_trigger_serialization():
43
+ """Workflow with ManualTrigger serializes with triggers field."""
44
+ result = serialize(create_workflow(ManualTrigger))
45
+ triggers = cast(JsonArray, result["triggers"])
46
+
47
+ assert len(triggers) == 1
48
+ trigger = cast(JsonObject, triggers[0])
49
+
50
+ assert trigger["type"] == "MANUAL"
51
+ assert "id" in trigger
52
+ assert "attributes" in trigger
53
+ assert trigger["attributes"] == []
54
+ assert "definition" not in trigger
55
+
56
+
57
+ def test_no_trigger_serialization():
58
+ """Workflow without trigger has no triggers field."""
59
+ result = serialize(create_workflow())
60
+ assert "triggers" not in result
61
+
62
+
63
+ def test_manual_trigger_multiple_entrypoints():
64
+ """ManualTrigger with multiple entrypoints."""
65
+
66
+ class NodeA(BaseNode):
67
+ class Outputs(BaseNode.Outputs):
68
+ output = Inputs.input
69
+
70
+ class NodeB(BaseNode):
71
+ class Outputs(BaseNode.Outputs):
72
+ output = Inputs.input
73
+
74
+ class MultiWorkflow(BaseWorkflow[Inputs, BaseState]):
75
+ graph = ManualTrigger >> {NodeA, NodeB}
76
+
77
+ class Outputs(BaseWorkflow.Outputs):
78
+ output_a = NodeA.Outputs.output
79
+ output_b = NodeB.Outputs.output
80
+
81
+ result = serialize(MultiWorkflow)
82
+ triggers = cast(JsonArray, result["triggers"])
83
+ workflow_data = cast(JsonObject, result["workflow_raw_data"])
84
+ nodes = cast(JsonArray, workflow_data["nodes"])
85
+
86
+ assert len(triggers) == 1
87
+ trigger = cast(JsonObject, triggers[0])
88
+ assert trigger["type"] == "MANUAL"
89
+ assert len([n for n in nodes if cast(JsonObject, n)["type"] == "GENERIC"]) >= 2
90
+
91
+
92
+ def test_serialized_workflow_structure():
93
+ """Verify complete structure of serialized workflow."""
94
+ result = serialize(create_workflow(ManualTrigger))
95
+ workflow_raw_data = cast(JsonObject, result["workflow_raw_data"])
96
+ definition = cast(JsonObject, workflow_raw_data["definition"])
97
+
98
+ assert result.keys() == {"workflow_raw_data", "input_variables", "state_variables", "output_variables", "triggers"}
99
+ assert workflow_raw_data.keys() == {"nodes", "edges", "display_data", "definition", "output_values"}
100
+ assert definition["name"] == "TestWorkflow"
101
+
102
+
103
+ def test_unknown_trigger_type():
104
+ """Unknown trigger types raise ValueError."""
105
+
106
+ class UnknownTrigger(BaseTrigger):
107
+ pass
108
+
109
+ with pytest.raises(ValueError, match="Unknown trigger type: UnknownTrigger"):
110
+ serialize(create_workflow(UnknownTrigger))