vellum-ai 1.7.11__py3-none-any.whl → 1.7.13__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.

Potentially problematic release.


This version of vellum-ai might be problematic. Click here for more details.

Files changed (37) hide show
  1. vellum/__init__.py +2 -0
  2. vellum/client/core/client_wrapper.py +2 -2
  3. vellum/client/types/__init__.py +2 -0
  4. vellum/client/types/auth_type_enum.py +5 -0
  5. vellum/client/types/integration_name.py +4 -0
  6. vellum/client/types/slim_integration_auth_config_read.py +2 -0
  7. vellum/client/types/slim_workflow_execution_read.py +3 -3
  8. vellum/client/types/vellum_error_code_enum.py +1 -0
  9. vellum/client/types/vellum_sdk_error_code_enum.py +1 -0
  10. vellum/client/types/workflow_event_execution_read.py +3 -3
  11. vellum/client/types/workflow_execution_event_error_code.py +1 -0
  12. vellum/client/types/workflow_execution_snapshotted_body.py +1 -0
  13. vellum/types/auth_type_enum.py +3 -0
  14. vellum/workflows/events/workflow.py +18 -2
  15. vellum/workflows/nodes/displayable/bases/base_prompt_node/node.py +3 -0
  16. vellum/workflows/nodes/displayable/inline_prompt_node/tests/test_node.py +3 -0
  17. vellum/workflows/nodes/displayable/tool_calling_node/tests/test_node.py +52 -0
  18. vellum/workflows/nodes/displayable/tool_calling_node/utils.py +2 -0
  19. vellum/workflows/references/trigger.py +3 -9
  20. vellum/workflows/runner/runner.py +14 -8
  21. vellum/workflows/tests/triggers/test_vellum_integration_trigger.py +134 -176
  22. vellum/workflows/triggers/__init__.py +1 -2
  23. vellum/workflows/triggers/tests/test_integration.py +2 -2
  24. vellum/workflows/triggers/vellum_integration.py +133 -141
  25. vellum/workflows/types/trigger_exec_config.py +8 -11
  26. vellum/workflows/utils/uuids.py +33 -0
  27. {vellum_ai-1.7.11.dist-info → vellum_ai-1.7.13.dist-info}/METADATA +1 -1
  28. {vellum_ai-1.7.11.dist-info → vellum_ai-1.7.13.dist-info}/RECORD +34 -35
  29. vellum_ee/workflows/display/base.py +1 -3
  30. vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py +3 -1
  31. vellum_ee/workflows/display/workflows/base_workflow_display.py +14 -7
  32. vellum/workflows/triggers/slack.py +0 -101
  33. vellum/workflows/triggers/tests/test_slack.py +0 -180
  34. vellum_ee/workflows/display/tests/workflow_serialization/test_slack_trigger_serialization.py +0 -52
  35. {vellum_ai-1.7.11.dist-info → vellum_ai-1.7.13.dist-info}/LICENSE +0 -0
  36. {vellum_ai-1.7.11.dist-info → vellum_ai-1.7.13.dist-info}/WHEEL +0 -0
  37. {vellum_ai-1.7.11.dist-info → vellum_ai-1.7.13.dist-info}/entry_points.txt +0 -0
@@ -27,7 +27,7 @@ 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=kAvaZ9XeA6MEgY0sorlrEBjjH5BUN-Hk5ySdtG2yO0c,2760
30
+ vellum_ee/workflows/display/base.py,sha256=wlvMJzOsA8UDHm-dSkaRzS3MwFUfFbj3qswQcHYpx_0,2638
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
@@ -46,7 +46,7 @@ vellum_ee/workflows/display/nodes/vellum/conditional_node.py,sha256=lzYPDO7JRdIK
46
46
  vellum_ee/workflows/display/nodes/vellum/error_node.py,sha256=BXNgRk9YY6CZT056ManeIqsJbEnkDui_JPe47Xy6VVw,2287
47
47
  vellum_ee/workflows/display/nodes/vellum/final_output_node.py,sha256=SPMrXqDIJ_YBlnjjdF5ymH5stPkp4apyCLYRBjJep9M,3021
48
48
  vellum_ee/workflows/display/nodes/vellum/guardrail_node.py,sha256=gNa5COUKKO1VioJAg2ZWxpNKbY5aAfHN9QYAcS2HJF0,2194
49
- vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py,sha256=JQ-dmkgdBuQisY7ycKd_BNEjaZ6EnHm61S1BALBOUxE,12188
49
+ vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py,sha256=KB2Zfa50COVxUSv4LJ0-UaL9sPXHa5Xvqtx-nracReQ,12243
50
50
  vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py,sha256=ocpe8sHbievEqUix4a7psjFvTrjGBuGrzz_uGU1wnPw,6461
51
51
  vellum_ee/workflows/display/nodes/vellum/map_node.py,sha256=LZHY8XZLzHHWUQdk70KHOLMJb17jeZVjvy7VAWP8wzg,4318
52
52
  vellum_ee/workflows/display/nodes/vellum/merge_node.py,sha256=S39Oo8PXHbvSwOjtFcXE-Cg4Dey6GveNtR0wQnzUQ34,3137
@@ -112,7 +112,6 @@ vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_n
112
112
  vellum_ee/workflows/display/tests/workflow_serialization/test_final_output_node_map_reference_serialization.py,sha256=vl3pxUJlrYRA8zzFJ-gRm7fe-5fviLNSIsUC7imnMqk,3502
113
113
  vellum_ee/workflows/display/tests/workflow_serialization/test_list_vellum_document_serialization.py,sha256=ZRcDhOSVKFHvt_rBkNSL7j3VLeWKQbH-KRoJWrtWD2s,2193
114
114
  vellum_ee/workflows/display/tests/workflow_serialization/test_manual_trigger_serialization.py,sha256=L4bJWW94eq5cl6pjIaX7pQrDHoF67Gudfx-41dmmd10,2330
115
- vellum_ee/workflows/display/tests/workflow_serialization/test_slack_trigger_serialization.py,sha256=HCZKF2_wOrn05s94PKWBP8cLl6Uw8j3y7Ec83xxQfLM,2258
116
115
  vellum_ee/workflows/display/tests/workflow_serialization/test_terminal_node_any_serialization.py,sha256=4WAmSEJZlDBLPhsD1f4GwY9ahB9F6qJKGnL6j7ZYlzQ,1740
117
116
  vellum_ee/workflows/display/tests/workflow_serialization/test_web_search_node_serialization.py,sha256=vbDFBrWUPeeW7cxjNA6SXrsHlYcbOAhlQ4C45Vdnr1c,3428
118
117
  vellum_ee/workflows/display/tests/workflow_serialization/test_workflow_input_parameterization_error.py,sha256=vAdmn3YTBDpo55znbydQxsgg9ASqHcvsUPwiBR_7wfo,1461
@@ -129,7 +128,7 @@ vellum_ee/workflows/display/utils/tests/test_events.py,sha256=gjC_p3UuAbRANLbQbo
129
128
  vellum_ee/workflows/display/utils/vellum.py,sha256=Bt7kdLdXoBsHn5dVEY2uKcF542VL09jwu8J_30rl2vk,6413
130
129
  vellum_ee/workflows/display/vellum.py,sha256=J2mdJZ1sdLW535DDUkq_Vm8Z572vhuxHxVZF9deKSdk,391
131
130
  vellum_ee/workflows/display/workflows/__init__.py,sha256=JTB9ObEV3l4gGGdtfBHwVJtTTKC22uj-a-XjTVwXCyA,148
132
- vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=rY-mK4dLouCUtsq8TAm2ufkODVn8E2_OXix5-Ig0EHA,47629
131
+ vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=8WfIwmTIqrnt8Cbhu1dfuF4NIxTXKX0yO1AoSAuIL_I,48022
133
132
  vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py,sha256=gxz76AeCqgAZ9D2lZeTiZzxY9eMgn3qOSfVgiqYcOh8,2028
134
133
  vellum_ee/workflows/display/workflows/tests/test_workflow_display.py,sha256=lg-c_3P3ldtqWq2VFsk_2Mkn3pVdXWuT59QpH7QwXVs,39764
135
134
  vellum_ee/workflows/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -158,12 +157,12 @@ vellum_ee/workflows/tests/test_registry.py,sha256=B8xRIuEyLWfSqrYoPldNQXhKPfe50P
158
157
  vellum_ee/workflows/tests/test_serialize_module.py,sha256=thzGsNzYCRXXdaC5yk1ZjtXrIO6uPdSnzdapKLCOsC8,6241
159
158
  vellum_ee/workflows/tests/test_server.py,sha256=2_n84q_QZN_zW2rZgDenQUXM3x43TcPsRs1fDA6BK1U,29805
160
159
  vellum_ee/workflows/tests/test_virtual_files.py,sha256=TJEcMR0v2S8CkloXNmCHA0QW0K6pYNGaIjraJz7sFvY,2762
161
- vellum/__init__.py,sha256=6dkyRHmIKuQPzL_z3QLVUrbkAF-HJKDhDSMCnf4ZsKw,49502
160
+ vellum/__init__.py,sha256=dhTWMEjt7OThAeMIhO0we-kI8mBj7Juy7Lrse7RuZR0,49540
162
161
  vellum/client/README.md,sha256=flqu57ubZNTfpq60CdLtJC9gp4WEkyjb_n_eZ4OYf9w,6497
163
162
  vellum/client/__init__.py,sha256=rMnKRqL5-356SBc-rfm56MkO87PuAi2mtcfBszcJU1M,74316
164
163
  vellum/client/core/__init__.py,sha256=lTcqUPXcx4112yLDd70RAPeqq6tu3eFMe1pKOqkW9JQ,1562
165
164
  vellum/client/core/api_error.py,sha256=44vPoTyWN59gonCIZMdzw7M1uspygiLnr3GNFOoVL2Q,614
166
- vellum/client/core/client_wrapper.py,sha256=KKrmb0ch50fjF5NTYG5BivGPOkXNmN6adUXv_VzzS9s,2842
165
+ vellum/client/core/client_wrapper.py,sha256=s5e8KcZ_efo5mXORP4r0pPHo5OS615gsyWW0vN4ZmMc,2842
167
166
  vellum/client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
168
167
  vellum/client/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
169
168
  vellum/client/core/force_multipart.py,sha256=awxh5MtcRYe74ehY8U76jzv6fYM_w_D3Rur7KQQzSDk,429
@@ -269,7 +268,7 @@ vellum/client/resources/workspaces/client.py,sha256=36KYa2FDu6h65q2GscUFOJs4qKei
269
268
  vellum/client/resources/workspaces/raw_client.py,sha256=M3Ewk1ZfEZ44EeTvBtBNoNKi5whwfLY-1GR07SyfDTI,3517
270
269
  vellum/client/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
271
270
  vellum/client/tests/test_utils.py,sha256=zk8z45-2xrm9sZ2hq8PTqY8MXmXtPqMqYK0VBBX0GHg,1176
272
- vellum/client/types/__init__.py,sha256=mviyigR9JByvGdgCOqfY6DyrExvkCnN6PXBEMRsY3pw,74926
271
+ vellum/client/types/__init__.py,sha256=e98Ekl0t25X8kuhn-W0pceTSoXFPmECG4vcCdRXvlkU,74987
273
272
  vellum/client/types/ad_hoc_execute_prompt_event.py,sha256=B69EesIH6fpNsdoiJaSG9zF1Sl17FnjoTu4CBkUSoHk,608
274
273
  vellum/client/types/ad_hoc_expand_meta.py,sha256=Kajcj3dKKed5e7uZibRnE3ZonK_bB2JPM-3aLjLfUp4,1295
275
274
  vellum/client/types/ad_hoc_fulfilled_prompt_execution_meta.py,sha256=5kD6ZcbU8P8ynK0lMD8Mh7vHzvQt06ziMyphvWYg6FU,968
@@ -295,6 +294,7 @@ vellum/client/types/audio_input_request.py,sha256=dtmM17yqCecZj1vJn3HK6IMF2rpXPw
295
294
  vellum/client/types/audio_prompt_block.py,sha256=5GXedTnmZF7vDiq-sIDMtksm3CExNNYoJVXMgRnmuR8,977
296
295
  vellum/client/types/audio_vellum_value.py,sha256=TPZYq8sjlFFhSfHGif9OuGVWUtzeZ4LjDPYcLXDjI7I,709
297
296
  vellum/client/types/audio_vellum_value_request.py,sha256=Hn4qkUV5hBNaNxdmwDA18BtmLxOFqwLeOdKI7k8HHJk,738
297
+ vellum/client/types/auth_type_enum.py,sha256=7lZelL6Vu_fPOJgtGnm_h5h7X1rPziQxRweuOG8iKao,157
298
298
  vellum/client/types/base_output.py,sha256=-O5DOk4K11MKQU8otOVeu3HMjtFdKLmpKHgYyXq1DXc,679
299
299
  vellum/client/types/basic_vectorizer_intfloat_multilingual_e_5_large.py,sha256=D1Fs9_9Tm8XuiB4ErmkdHqXWq6nvbZX6rYObnKaSDTA,791
300
300
  vellum/client/types/basic_vectorizer_intfloat_multilingual_e_5_large_request.py,sha256=7rJ589uXvc-WotTpRoBQjz6PE2bnuYBBms3RlyC3tLI,798
@@ -489,7 +489,7 @@ vellum/client/types/instructor_vectorizer_config_request.py,sha256=B5Wy5FI8utwi4
489
489
  vellum/client/types/integration_auth_config_integration.py,sha256=W3DrzVPwLrqm0wCYVF-sHyQPoKNxoliFgFJWEwW_Yqc,710
490
490
  vellum/client/types/integration_auth_config_integration_credential.py,sha256=lUNuJ1GyFps3M85Mff1C-SAeEacCMkJdmayFfYrTFXA,547
491
491
  vellum/client/types/integration_credential_access_type.py,sha256=sWkuDjW3aD7ApZ1xQ7Bu8g5kCIwqUqzm1TDliUQWeRI,178
492
- vellum/client/types/integration_name.py,sha256=0MUPWDmNlEX-qUXxrKvrGSAVYj2cjj-B6nYuz72hL1k,398
492
+ vellum/client/types/integration_name.py,sha256=LOboR5sP9EQZgT2rFNNScbTbO71KOxr6TbuxWXYgwOE,477
493
493
  vellum/client/types/integration_provider.py,sha256=lIh3yPyPEzmSAu8L4Gsd-iDkmDSNobo0_TB75zMtIXk,129
494
494
  vellum/client/types/integration_read.py,sha256=sUNCS01TIlHPJHEH3ZheIbPi-CplbFQ5XAV1QtOO1Gg,1035
495
495
  vellum/client/types/invoked_port.py,sha256=nw2k-y7NrpcH6T1V96U3F8_pbrsceqBPIz3RQXN8gJY,518
@@ -709,11 +709,11 @@ vellum/client/types/slim_composio_tool_definition.py,sha256=1wQRXqS4-DVq0JO8F7L2
709
709
  vellum/client/types/slim_deployment_read.py,sha256=lEJ8Fx7QSmqjEK-LcR0y_hX2ywcaPbYjxINwPGy_ofw,1733
710
710
  vellum/client/types/slim_document.py,sha256=aytvaz8SF6MSSEA3iLXP7ZgZOw33CA-_bv2iSj5cH24,2409
711
711
  vellum/client/types/slim_document_document_to_document_index.py,sha256=Ogo8OFjtmcHjDmIynB9vckfjSZxFNhKM-cYpqSfREGI,1515
712
- vellum/client/types/slim_integration_auth_config_read.py,sha256=hfC4ABz7g1zc6A30TyyBA-W55TUZRzkFMf0iMjHgBSc,1113
712
+ vellum/client/types/slim_integration_auth_config_read.py,sha256=Mbn1DjJIJJjkqrtaW_93XecMPOQK8phPBVJm2LwNhu8,1206
713
713
  vellum/client/types/slim_integration_read.py,sha256=hKc9a85Vi7WNIq6JDPABettHUz-vmV-ViXRsoIpD_MY,754
714
714
  vellum/client/types/slim_release_review.py,sha256=vWNkPXk5wZ_scHsWHz_77PfMZRDn-4qUkqVbCKqY1zQ,747
715
715
  vellum/client/types/slim_workflow_deployment.py,sha256=jIciGPCW9QNtDRdq3w_zUdrrE4cg1LWkcoyGM-L6cs0,2085
716
- vellum/client/types/slim_workflow_execution_read.py,sha256=6Ep2iQ6tWTCGxzvAh4t3G_4BjHQ3_JZ9WFdc81XGqkA,2302
716
+ vellum/client/types/slim_workflow_execution_read.py,sha256=NHNLs5Uf6YvrRZbFnnaYj2iTe2zozsbd5M-tZixu9jU,2302
717
717
  vellum/client/types/span_link.py,sha256=roO93-xRnqZy2hx9WJFNZW46o8l2bGf3ugeaBepegr4,1433
718
718
  vellum/client/types/span_link_type_enum.py,sha256=SQsPKp1Jb8PWE2tkCHt9d5fZP8Oz77vG8_VYKF-h9J4,186
719
719
  vellum/client/types/streaming_ad_hoc_execute_prompt_event.py,sha256=BZZHXI_vq28VAmRbbIIK2wyRSkQpWfOPD7kiydhQmd8,1147
@@ -845,13 +845,13 @@ vellum/client/types/vellum_code_resource_definition.py,sha256=XdueTR342BDjevZ3kt
845
845
  vellum/client/types/vellum_document.py,sha256=qwXqMS2Eud2a5KmF8QHhU_vJzDX0g5cesrCpmBqREsA,604
846
846
  vellum/client/types/vellum_document_request.py,sha256=P9vA7ZDNeaHNlMqyzfl-ZD4bpdf-xA5mH8R1QuOAmOY,611
847
847
  vellum/client/types/vellum_error.py,sha256=G4WSD-w_skoDDnsAt-TtImt-hZT-Sc8LjHvERBUVnhE,691
848
- vellum/client/types/vellum_error_code_enum.py,sha256=aqRRPpcpagYMJ-TDBb-V9xyj2cubwP9ygNO4NaO1Y8s,477
848
+ vellum/client/types/vellum_error_code_enum.py,sha256=vMmcp99RWQK5a4OqQ58HxZUgFSwFzGsuuBLcgxjOw7U,512
849
849
  vellum/client/types/vellum_error_request.py,sha256=7l4Ux6wj3C9BdSXUPBrtxECsAirmvaLU42Y23VqncBU,698
850
850
  vellum/client/types/vellum_image.py,sha256=LAGUYBDsT0bmMOqgbaeCTCy2w4zAeHEyUIgPtmdjjJ4,601
851
851
  vellum/client/types/vellum_image_request.py,sha256=6DoI2AdJIG8NShHSslpHvsFUw5PwIMconjlHSipOP5Q,608
852
852
  vellum/client/types/vellum_node_execution_event.py,sha256=-MXat2wAZx4sx3JRp7gwJIOInPNwPMDpZmXtP8NC3O8,736
853
853
  vellum/client/types/vellum_sdk_error.py,sha256=oURNuw5zH4HqV6Ygw0MgVWH2DcuxekWvS_ZXA8tU31I,704
854
- vellum/client/types/vellum_sdk_error_code_enum.py,sha256=zyPoP7V-uooGdBlVjanveQbaiHRumjAXsHwH_Stg8gU,577
854
+ vellum/client/types/vellum_sdk_error_code_enum.py,sha256=M_NfzXsdL4VxTpDbj1KsMPHbZoNU6IH7tEJKuz57rwI,612
855
855
  vellum/client/types/vellum_secret.py,sha256=04WlBWphqiJSUKM2NeJE32IDt-ZpVO_LOXkpXvBh3f0,519
856
856
  vellum/client/types/vellum_span.py,sha256=dmZOBXlDeXx4eLvBJBiOp07xuyjhisgXgnvYFSmctYE,259
857
857
  vellum/client/types/vellum_value.py,sha256=douOrlRh2ko1gmN8oDjsaoAEtyDcfq-OV_GThW92GNk,1188
@@ -882,13 +882,13 @@ vellum/client/types/workflow_deployment_release_workflow_version.py,sha256=VbVrw
882
882
  vellum/client/types/workflow_error.py,sha256=iDMQ3Wx7E8lf6BYtBTGpeIxG46iF9mjzTpjxyJVTXgM,283
883
883
  vellum/client/types/workflow_event.py,sha256=M_ra0CjUffCPqPRFJM_oR1IY4egHDGa0tY1HAoA8j5k,1532
884
884
  vellum/client/types/workflow_event_error.py,sha256=qNqSGvPOLODPTiaWmsUKyTx9W91JDIm9r9s05zsTsfg,779
885
- vellum/client/types/workflow_event_execution_read.py,sha256=DRB19CN0E3r3t1mtfNLhaxiVtPKh5nJLYkCwVtomM7w,2456
885
+ vellum/client/types/workflow_event_execution_read.py,sha256=9AZGartKk8qZxepwmjOKEIcWGxGUIOlusZqCxpfgrOw,2456
886
886
  vellum/client/types/workflow_execution_actual.py,sha256=QJn7xXOtSJT30se2KdOyAYVJKjU53uhdvpjcMDIz1eM,962
887
887
  vellum/client/types/workflow_execution_actual_chat_history_request.py,sha256=E3Vt4l6PpE24_teWe3Kfu_4z1sbosaz_Uk1iUI9cZ-s,1957
888
888
  vellum/client/types/workflow_execution_actual_json_request.py,sha256=jLsQxdg7SVyUkdu_Gyo3iDKgZcQnO5hsP0PHPsiGwrg,1895
889
889
  vellum/client/types/workflow_execution_actual_string_request.py,sha256=syFCXeB4MwjKblXfSBNfCSG4dJIR8Ww937gTcmTPh1w,1859
890
890
  vellum/client/types/workflow_execution_detail.py,sha256=R1tONdNarehoqk7zsK0D2wCSJEe9WauZmKHp5yKVLB8,2186
891
- vellum/client/types/workflow_execution_event_error_code.py,sha256=8VL4wHTEy-AdQhApnOsz2L2wXcuo5LBqgUAVnaQ-pXM,568
891
+ vellum/client/types/workflow_execution_event_error_code.py,sha256=z4ZFWSlsKQKGcgZvqygtSliJBoeWKR9K-UqS7QTxx5U,603
892
892
  vellum/client/types/workflow_execution_event_type.py,sha256=ESKqV3ItoAlqBooruf-i0AnmEh_GvCySZ0Co3r9Bvt0,170
893
893
  vellum/client/types/workflow_execution_fulfilled_body.py,sha256=dQYhKU5D7vZR36zyBHUbXUNv_TjnnMNNPvxpPmH0-OU,797
894
894
  vellum/client/types/workflow_execution_fulfilled_event.py,sha256=eZ_DtDmRK-S2Q0LEJHlGS_FPd-UVvpgetRXqvWlSh4M,1925
@@ -901,7 +901,7 @@ vellum/client/types/workflow_execution_rejected_body.py,sha256=biJQ8_PDeJGELgjjU
901
901
  vellum/client/types/workflow_execution_rejected_event.py,sha256=j1QzOxkcmcFfA9zHOiKBnv7qF_YrFePq380us1nnYEk,1918
902
902
  vellum/client/types/workflow_execution_resumed_body.py,sha256=L0Atzk7328tpjhRKC0Y8AoWuMebtdHzd4gBjYkvKDIM,649
903
903
  vellum/client/types/workflow_execution_resumed_event.py,sha256=7PTH1rLBlvC4414LG3L3AdMRrJEmtrJSOWwM5sptAZc,1911
904
- vellum/client/types/workflow_execution_snapshotted_body.py,sha256=POAj0l9EKZnJP79sQq4ZfW-a1SZyBNmvcqPJlvIGOfk,710
904
+ vellum/client/types/workflow_execution_snapshotted_body.py,sha256=1r0dnZJNAy34ckeNfCvkSphs_AfVbKhn0IJKvB06Yyo,778
905
905
  vellum/client/types/workflow_execution_snapshotted_event.py,sha256=sEQ-fqW0VmiuigFZnPvtd2wNZG462-rnsk4Zi8qlA6I,1939
906
906
  vellum/client/types/workflow_execution_span.py,sha256=xeePJEONTakpoEf1aodhs10E8GPoxy7oSdogZARxYO0,1984
907
907
  vellum/client/types/workflow_execution_span_attributes.py,sha256=OE_uL3qChioClcS3P46EW6ajLEyDsNl9sQJ13Tw50cY,560
@@ -1116,6 +1116,7 @@ vellum/types/audio_input_request.py,sha256=vmN-KTn6OEuE6MK2t_lllo9lr1ln1839PjwgA
1116
1116
  vellum/types/audio_prompt_block.py,sha256=zpQcvY3Fic82mPlPyOLCjZBBq0dFyCyKuGRkYNDWQko,156
1117
1117
  vellum/types/audio_vellum_value.py,sha256=-9HkLXeBD-IMh_TwKdmQVfAD_F0et2gYKT2ykb_jaAM,156
1118
1118
  vellum/types/audio_vellum_value_request.py,sha256=YuwrbVZK1EuUKkir5H9-ipeLTPfSF8h6Yy5lS_pAZg4,164
1119
+ vellum/types/auth_type_enum.py,sha256=SkvJdAKXtyxgPiH6tVfqAzwhiM_-kjUZ9RzSoYJYPO4,152
1119
1120
  vellum/types/base_output.py,sha256=5fBRPScgqh4m13rbbfxszK03o8zg-Sa_bGp2kTmacMo,149
1120
1121
  vellum/types/basic_vectorizer_intfloat_multilingual_e_5_large.py,sha256=4PC3AVVZh7r0zbeY4pV-tpAFkt1EAuRjI0Rsc-s6WX0,186
1121
1122
  vellum/types/basic_vectorizer_intfloat_multilingual_e_5_large_request.py,sha256=NQd8lYb9HnO2UXOuri-8CdmN5lFdaRpXMdN3BJOm9JA,194
@@ -1821,7 +1822,7 @@ vellum/workflows/events/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5N
1821
1822
  vellum/workflows/events/tests/test_basic_workflow.py,sha256=Pj6orHsXz37jWC5FARi0Sx2Gjf99Owri2Cvr6Chb79k,1765
1822
1823
  vellum/workflows/events/tests/test_event.py,sha256=R9H_W9RuZAY1b_ElnfyekS-Fl6Z02lldOf8EkCJssBE,21476
1823
1824
  vellum/workflows/events/types.py,sha256=mVrqAH9Hs9SpXm08Hcxdyap_ImQPwGsxRr56rSNMP34,5043
1824
- vellum/workflows/events/workflow.py,sha256=zsyCbcM93P9XqRvYoN8e7vIsOe15Bn2sjXuDoSRrwBU,9637
1825
+ vellum/workflows/events/workflow.py,sha256=Nv9wyiXAhyR9TVk8YGR4kyAnh7WVmjsuM3EY-FOZUgg,10307
1825
1826
  vellum/workflows/exceptions.py,sha256=l_ZklQQVvbsIdbmbn89aEeTL7x6x08m5kCwKXXPnTDc,2277
1826
1827
  vellum/workflows/executable.py,sha256=um-gLJMVYfGJwGJfZIPlCRHhHIYm6pn8PUEfeqrNx5k,218
1827
1828
  vellum/workflows/expressions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1927,7 +1928,7 @@ vellum/workflows/nodes/displayable/bases/api_node/node.py,sha256=cOYaIqimzDL6TuX
1927
1928
  vellum/workflows/nodes/displayable/bases/api_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1928
1929
  vellum/workflows/nodes/displayable/bases/api_node/tests/test_node.py,sha256=5C59vn_yg4r5EWioKIr658Jr1MSGX3YF4yKJokY37Xc,4726
1929
1930
  vellum/workflows/nodes/displayable/bases/base_prompt_node/__init__.py,sha256=Org3xTvgp1pA0uUXFfnJr29D3HzCey2lEdYF4zbIUgo,70
1930
- vellum/workflows/nodes/displayable/bases/base_prompt_node/node.py,sha256=ZIAXMreHcs3OR-djlkXgqF6tw7-Qfl8KUvjmJ7qRU3U,5204
1931
+ vellum/workflows/nodes/displayable/bases/base_prompt_node/node.py,sha256=oN1GF47DPj1WgED1c5SO2XBInU7Gqaa6rAZGKsTFgv8,5299
1931
1932
  vellum/workflows/nodes/displayable/bases/inline_prompt_node/__init__.py,sha256=Hl35IAoepRpE-j4cALaXVJIYTYOF3qszyVbxTj4kS1s,82
1932
1933
  vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py,sha256=ITxAa1HWF6OPdcKg0DdTK7YP94ezzzWVyZzCRMiybIg,18638
1933
1934
  vellum/workflows/nodes/displayable/bases/inline_prompt_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1960,7 +1961,7 @@ vellum/workflows/nodes/displayable/guardrail_node/tests/test_node.py,sha256=X2pd
1960
1961
  vellum/workflows/nodes/displayable/inline_prompt_node/__init__.py,sha256=gSUOoEZLlrx35-tQhSAd3An8WDwBqyiQh-sIebLU9wU,74
1961
1962
  vellum/workflows/nodes/displayable/inline_prompt_node/node.py,sha256=0O1dksk0h6-V-Mp5_yTuU3PFrUpLIgsqVMTP8mxTryU,2227
1962
1963
  vellum/workflows/nodes/displayable/inline_prompt_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1963
- vellum/workflows/nodes/displayable/inline_prompt_node/tests/test_node.py,sha256=bBHs90mV5SZ3rJPAL0wx4WWyawUA406LgMPOdvpZC_A,10923
1964
+ vellum/workflows/nodes/displayable/inline_prompt_node/tests/test_node.py,sha256=CukYNAH8Y1NP0yJGz_gFtK0L-DLlU-K-06cmxEJ0Nts,11038
1964
1965
  vellum/workflows/nodes/displayable/merge_node/__init__.py,sha256=J8IC08dSH7P76wKlNuxe1sn7toNGtSQdFirUbtPDEs0,60
1965
1966
  vellum/workflows/nodes/displayable/merge_node/node.py,sha256=_zHW9fReWdpiM3GiUzdEgyOSznRqkPsTj-XKD6Oja8I,563
1966
1967
  vellum/workflows/nodes/displayable/note_node/__init__.py,sha256=KWA3P4fyYJ-fOTky8qNGlcOotQ-HeHJ9AjZt6mRQmCE,58
@@ -1987,9 +1988,9 @@ vellum/workflows/nodes/displayable/tool_calling_node/node.py,sha256=rvCGtnCM1bFk
1987
1988
  vellum/workflows/nodes/displayable/tool_calling_node/state.py,sha256=CcBVb_YtwfSSka4ze678k6-qwmzMSfjfVP8_Y95feSo,302
1988
1989
  vellum/workflows/nodes/displayable/tool_calling_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1989
1990
  vellum/workflows/nodes/displayable/tool_calling_node/tests/test_composio_service.py,sha256=in1fbEz5x1tx3uKv9YXdvOncsHucNL8Ro6Go7lBuuOQ,8962
1990
- vellum/workflows/nodes/displayable/tool_calling_node/tests/test_node.py,sha256=uXz9tbPK6ikGlF8Tfx-qiPeF-8qq_E5ZbmCmOMWkz24,15506
1991
+ vellum/workflows/nodes/displayable/tool_calling_node/tests/test_node.py,sha256=tsOcwf7YQX79tzvzoJjR8H7evr8Yi76gXnKcegSdyoA,17162
1991
1992
  vellum/workflows/nodes/displayable/tool_calling_node/tests/test_utils.py,sha256=EmKFA-ELdTzlK0xMqWnuSZPoGNLYCwk6b0amTqirZo0,11305
1992
- vellum/workflows/nodes/displayable/tool_calling_node/utils.py,sha256=sReCkqd2pwUQ6pX9xZ_zQh-Wza2_2eV7HYRAHYaAaHo,24580
1993
+ vellum/workflows/nodes/displayable/tool_calling_node/utils.py,sha256=iD_w2XxpHvM7KYlOeZHOiOZlGq4rPPi6mI5AlFx-LMI,24701
1993
1994
  vellum/workflows/nodes/displayable/web_search_node/__init__.py,sha256=8FOnEP-n-U68cvxTlJW9wphIAGHq5aqjzLM-DoSSXnU,61
1994
1995
  vellum/workflows/nodes/displayable/web_search_node/node.py,sha256=NQYux2bOtuBF5E4tn-fXi5y3btURPRrNqMSM9MAZYI4,5091
1995
1996
  vellum/workflows/nodes/displayable/web_search_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -2021,7 +2022,7 @@ vellum/workflows/references/node.py,sha256=LP854wDVs-9I_aZ7-nkbwXqL2H7W2_3LED2e9
2021
2022
  vellum/workflows/references/output.py,sha256=qVa3QmlOyJhyIMOHwOmi1RgHPAOryhdPr2DRj97aEvU,3321
2022
2023
  vellum/workflows/references/state_value.py,sha256=bInUF0A3Pt4-zhA0f6LdSuyv8tz7n5QRkHAEn4gsmqI,711
2023
2024
  vellum/workflows/references/tests/test_lazy.py,sha256=0s50-LizMTlSTBQahpK0fg_xqCucA8YTp6QmIMqPvMk,919
2024
- vellum/workflows/references/trigger.py,sha256=_5pA54bh-PeOEIRcO3BjPlHG9C3OMKZIRXFFZfoyUME,2812
2025
+ vellum/workflows/references/trigger.py,sha256=4QWRnw_k6Hmqm9U4sftd-bnG9R9tbDAOuWRmCsNplYE,2605
2025
2026
  vellum/workflows/references/vellum_secret.py,sha256=Od4d19a5yletWMqNfJR5d_mZQUkVcFzj29mE-T9J7yE,480
2026
2027
  vellum/workflows/references/workflow_input.py,sha256=W3rOK1EPd2gYHb04WJwmNm1CUSdvZ9LKrs8RMKxACBs,1751
2027
2028
  vellum/workflows/resolvers/__init__.py,sha256=eH6hTvZO4IciDaf_cf7aM2vs-DkBDyJPycOQevJxQnI,82
@@ -2030,7 +2031,7 @@ vellum/workflows/resolvers/resolver.py,sha256=3uEYscB_2PHTazc0Y9SzOe_yiQZhVLfey1
2030
2031
  vellum/workflows/resolvers/tests/test_resolver.py,sha256=PnUGzsulo1It_LjjhHsRNiILvvl5G_IaK8ZX56zKC28,6204
2031
2032
  vellum/workflows/resolvers/types.py,sha256=Hndhlk69g6EKLh_LYg5ILepW5U_h_BYNllfzhS9k8p4,237
2032
2033
  vellum/workflows/runner/__init__.py,sha256=i1iG5sAhtpdsrlvwgH6B-m49JsINkiWyPWs8vyT-bqM,72
2033
- vellum/workflows/runner/runner.py,sha256=hmr7DIt8Yo2VzVLDVjVBx366foQQVNu6iBBkQjoNNls,46141
2034
+ vellum/workflows/runner/runner.py,sha256=GuY5b7AKTdOxdDRhteVW3tGf-i31H-rdZBTLYwfNcLc,46542
2034
2035
  vellum/workflows/sandbox.py,sha256=mezSZmilR_fwR8164n8CEfzlMeQ55IqfapHp4ftImvQ,3212
2035
2036
  vellum/workflows/state/__init__.py,sha256=yUUdR-_Vl7UiixNDYQZ-GEM_kJI9dnOia75TtuNEsnE,60
2036
2037
  vellum/workflows/state/base.py,sha256=8Zr7UIM_eC0O2N6w_1gYqyrjgJ9D9z-VqLFnBETEF7Q,26753
@@ -2044,16 +2045,14 @@ vellum/workflows/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
2044
2045
  vellum/workflows/tests/test_dataset_row.py,sha256=S8aIiYU9TRzJ8GTl5qCjnJ-fuHdxatHJFGLlKTVHPr4,4174
2045
2046
  vellum/workflows/tests/test_sandbox.py,sha256=JKwaluI-lODQo7Ek9sjDstjL_WTdSqUlVik6ZVTfVOA,1826
2046
2047
  vellum/workflows/tests/test_undefined.py,sha256=zMCVliCXVNLrlC6hEGyOWDnQADJ2g83yc5FIM33zuo8,353
2047
- vellum/workflows/tests/triggers/test_vellum_integration_trigger.py,sha256=L1eUKbxgRI09G1tZ2ziVeLsp_CXS_CT5a1Fk6A3YAEQ,8017
2048
- vellum/workflows/triggers/__init__.py,sha256=_T7PTZpwv9aFitmpGu2Tu_kJpLAwPnNhfh0XGlHBAgw,432
2048
+ vellum/workflows/tests/triggers/test_vellum_integration_trigger.py,sha256=N9DStn5Jwty1r9ELxTGSkqnAF-Z5oXRXB5RhOEda87w,6102
2049
+ vellum/workflows/triggers/__init__.py,sha256=-TCWDx0WdjV4V3z7VJMbfIBRxEycVgQr3lz9laS32Og,359
2049
2050
  vellum/workflows/triggers/base.py,sha256=sLH0qzfRYbJRQX6ukGzSy6PaXxlDUSobdFSz8G_4v98,10140
2050
2051
  vellum/workflows/triggers/integration.py,sha256=hAWQMoIubosKgM56rrsAJVhPnc4MjA5YBPRpDgl6J08,2221
2051
2052
  vellum/workflows/triggers/manual.py,sha256=PgbZ92gcK25yz6REXm98zWic1QBfhxLKfGCeHpZEUx4,1266
2052
- vellum/workflows/triggers/slack.py,sha256=NBc4Af3PdnhiqTzeS-zyPf7JkrPG0FHT7uP0qNYeBfg,3418
2053
2053
  vellum/workflows/triggers/tests/__init__.py,sha256=R8lag_iCRyulijHMK4e3Gf6YVB5NplfvwZeTkaRj8gQ,30
2054
- vellum/workflows/triggers/tests/test_integration.py,sha256=mODupO0eOG4G2ooDH1meWKRtA8NRtsm_fii6tijvSqQ,4046
2055
- vellum/workflows/triggers/tests/test_slack.py,sha256=aFTVPj7e3bjblHgbZleKEoh0wayrcC_88nDpXmVowMY,5569
2056
- vellum/workflows/triggers/vellum_integration.py,sha256=03YWZ3UpcZSLzenvuJZqOPYvjaEbcDU9HbYGbTbY_QQ,16866
2054
+ vellum/workflows/triggers/tests/test_integration.py,sha256=q7EeftNwgI2EcnV8GwHTxCQ_SyZKHl2dIPCQOQ7yxSM,4046
2055
+ vellum/workflows/triggers/vellum_integration.py,sha256=25_YHJoqDhITLBWqnmangvcFo3d5UwMSg4xu6spGNpE,16036
2057
2056
  vellum/workflows/types/__init__.py,sha256=P3KhHAeoAj8cQti89o3nyPgCfC4BjK1LOFv58A76ktM,290
2058
2057
  vellum/workflows/types/code_execution_node_wrappers.py,sha256=fewX9bqF_4TZuK-gZYIn12s31-k03vHMGRpvFAPm11Y,3206
2059
2058
  vellum/workflows/types/core.py,sha256=R7snCd7ci4tiRuHi5ALGh_5DIIF0T9eze3sf6EnJN-c,1126
@@ -2063,7 +2062,7 @@ vellum/workflows/types/stack.py,sha256=h7NE0vXR7l9DevFBIzIAk1Zh59K-kECQtDTKOUunw
2063
2062
  vellum/workflows/types/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2064
2063
  vellum/workflows/types/tests/test_definition.py,sha256=QUI9_Wsm2k-ZxQTXogsB0L4csSvVFOvLXHb-asC6K2w,7193
2065
2064
  vellum/workflows/types/tests/test_utils.py,sha256=-kMF1mxYlW4Njh8fKjbo45Wc-jOJ7GBYKKjIviuzd4I,2837
2066
- vellum/workflows/types/trigger_exec_config.py,sha256=3KOKAMMz0JylrQpDqo2I4yX081XcWQQXkgwfCoIak0o,2813
2065
+ vellum/workflows/types/trigger_exec_config.py,sha256=mQwyhDFwUuDoX-Zdg1vfi7LqTissHXJ9h21nyJvc2E4,2480
2067
2066
  vellum/workflows/types/utils.py,sha256=pCC3HlnLaT4HcCKA_JSoWLnDB1czB3HwjirTiP9RDQs,7680
2068
2067
  vellum/workflows/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2069
2068
  vellum/workflows/utils/functions.py,sha256=uIg8As0c1BGwXmwectbAQWLWWIWoeHCduGhhoOqQVVU,13157
@@ -2075,7 +2074,7 @@ vellum/workflows/utils/tests/test_functions.py,sha256=J_WEyVX1yE3lUhoX8etgkbPuwQ
2075
2074
  vellum/workflows/utils/tests/test_names.py,sha256=DnRRnuORxQXx9ESegCzkxiWcHy2_bBi7lXgbFi3FZK8,757
2076
2075
  vellum/workflows/utils/tests/test_uuids.py,sha256=i77ABQ0M3S-aFLzDXHJq_yr5FPkJEWCMBn1HJ3DObrE,437
2077
2076
  vellum/workflows/utils/tests/test_vellum_variables.py,sha256=X7b-bbN3bFRx0WG31bowcaOgsXxEPYnh2sgpsqgKIsQ,2096
2078
- vellum/workflows/utils/uuids.py,sha256=IaZQANz7fhF7la0_J1O50Y6D2PIYv_taRDTRzBT9aWw,1284
2077
+ vellum/workflows/utils/uuids.py,sha256=xQ-Clad8Srl3QqCrs8_UEgto0OFe8zH7VtuIlCgMWHg,2412
2079
2078
  vellum/workflows/utils/vellum_variables.py,sha256=X3lZn-EoWengRWBWRhTNW7hqbj7LkV-6NSMwCskWEbg,7203
2080
2079
  vellum/workflows/utils/zip.py,sha256=HVg_YZLmBOTXKaDV3Xhaf3V6sYnfqqZXQ8CpuafkbPY,1181
2081
2080
  vellum/workflows/vellum_client.py,sha256=3iDR7VV_NgLSm1iZQCKDvrmfEaX1bOJiU15QrxyHpv0,1237
@@ -2085,8 +2084,8 @@ vellum/workflows/workflows/event_filters.py,sha256=GSxIgwrX26a1Smfd-6yss2abGCnad
2085
2084
  vellum/workflows/workflows/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2086
2085
  vellum/workflows/workflows/tests/test_base_workflow.py,sha256=Boa-_m9ii2Qsa1RvVM-VYniF7zCpzGgEGy-OnPZkrHg,23941
2087
2086
  vellum/workflows/workflows/tests/test_context.py,sha256=VJBUcyWVtMa_lE5KxdhgMu0WYNYnUQUDvTF7qm89hJ0,2333
2088
- vellum_ai-1.7.11.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
2089
- vellum_ai-1.7.11.dist-info/METADATA,sha256=p2zWh-k4nsa4OIxTQD0lXIlEvmphl3BdF0EMszAVpV0,5548
2090
- vellum_ai-1.7.11.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
2091
- vellum_ai-1.7.11.dist-info/entry_points.txt,sha256=xVavzAKN4iF_NbmhWOlOkHluka0YLkbN_pFQ9pW3gLI,117
2092
- vellum_ai-1.7.11.dist-info/RECORD,,
2087
+ vellum_ai-1.7.13.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
2088
+ vellum_ai-1.7.13.dist-info/METADATA,sha256=Pc0Rjgvp11_vuFKPrb5F97ZDurGljmbMUOkP83pviwo,5548
2089
+ vellum_ai-1.7.13.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
2090
+ vellum_ai-1.7.13.dist-info/entry_points.txt,sha256=xVavzAKN4iF_NbmhWOlOkHluka0YLkbN_pFQ9pW3gLI,117
2091
+ vellum_ai-1.7.13.dist-info/RECORD,,
@@ -16,7 +16,7 @@ if TYPE_CHECKING:
16
16
 
17
17
  class WorkflowTriggerType(Enum):
18
18
  MANUAL = "MANUAL"
19
- SLACK_MESSAGE = "SLACK_MESSAGE"
19
+ INTEGRATION = "INTEGRATION"
20
20
 
21
21
 
22
22
  def get_trigger_type_mapping() -> Dict[Type["BaseTrigger"], WorkflowTriggerType]:
@@ -30,11 +30,9 @@ def get_trigger_type_mapping() -> Dict[Type["BaseTrigger"], WorkflowTriggerType]
30
30
  Dictionary mapping trigger classes to their enum types
31
31
  """
32
32
  from vellum.workflows.triggers.manual import ManualTrigger
33
- from vellum.workflows.triggers.slack import SlackTrigger
34
33
 
35
34
  return {
36
35
  ManualTrigger: WorkflowTriggerType.MANUAL,
37
- SlackTrigger: WorkflowTriggerType.SLACK_MESSAGE,
38
36
  }
39
37
 
40
38
 
@@ -153,7 +153,9 @@ class BaseInlinePromptNodeDisplay(BaseNodeDisplay[_InlinePromptNodeType], Generi
153
153
 
154
154
  def _generate_function_tools(
155
155
  self,
156
- function: Union[FunctionDefinition, Callable, DeploymentDefinition, Type["BaseWorkflow"]],
156
+ function: Union[
157
+ FunctionDefinition, Callable, DeploymentDefinition, Type["BaseWorkflow"], VellumIntegrationToolDefinition
158
+ ],
157
159
  index: int,
158
160
  display_context: WorkflowDisplayContext,
159
161
  ) -> JsonObject:
@@ -25,10 +25,11 @@ from vellum.workflows.nodes.utils import get_unadorned_node, get_unadorned_port,
25
25
  from vellum.workflows.ports import Port
26
26
  from vellum.workflows.references import OutputReference, WorkflowInputReference
27
27
  from vellum.workflows.state.encoder import DefaultStateEncoder
28
+ from vellum.workflows.triggers.vellum_integration import VellumIntegrationTrigger
28
29
  from vellum.workflows.types.core import Json, JsonArray, JsonObject
29
30
  from vellum.workflows.types.generics import WorkflowType
30
31
  from vellum.workflows.types.utils import get_original_base
31
- from vellum.workflows.utils.uuids import uuid4_from_hash
32
+ from vellum.workflows.utils.uuids import get_trigger_id, uuid4_from_hash
32
33
  from vellum.workflows.utils.vellum_variables import primitive_type_to_vellum_variable_type
33
34
  from vellum.workflows.vellum_client import create_vellum_client
34
35
  from vellum_ee.workflows.display.base import (
@@ -38,6 +39,7 @@ from vellum_ee.workflows.display.base import (
38
39
  WorkflowInputsDisplay,
39
40
  WorkflowMetaDisplay,
40
41
  WorkflowOutputDisplay,
42
+ WorkflowTriggerType,
41
43
  get_trigger_type_mapping,
42
44
  )
43
45
  from vellum_ee.workflows.display.editor.types import NodeDisplayData, NodeDisplayPosition
@@ -465,16 +467,21 @@ class BaseWorkflowDisplay(Generic[WorkflowType]):
465
467
  f"{edge.trigger_class.__name__} in the same workflow."
466
468
  )
467
469
 
468
- # Get the trigger type from the mapping
470
+ # Get the trigger type from the mapping, or check if it's a VellumIntegrationTrigger subclass
469
471
  trigger_type = trigger_type_mapping.get(trigger_class)
470
472
  if trigger_type is None:
471
- raise ValueError(
472
- f"Unknown trigger type: {trigger_class.__name__}. "
473
- f"Please add it to the trigger type mapping in get_trigger_type_mapping()."
474
- )
473
+ # Check if it's a VellumIntegrationTrigger subclass
474
+
475
+ if issubclass(trigger_class, VellumIntegrationTrigger):
476
+ trigger_type = WorkflowTriggerType.INTEGRATION
477
+ else:
478
+ raise ValueError(
479
+ f"Unknown trigger type: {trigger_class.__name__}. "
480
+ f"Please add it to the trigger type mapping in get_trigger_type_mapping()."
481
+ )
475
482
 
476
483
  # Return as a list with a single trigger object matching Django schema
477
- trigger_id = uuid4_from_hash(trigger_class.__qualname__)
484
+ trigger_id = get_trigger_id(trigger_class)
478
485
 
479
486
  # Serialize trigger attributes like node outputs
480
487
  attribute_references = trigger_class.attribute_references().values()
@@ -1,101 +0,0 @@
1
- from typing import Optional
2
-
3
- from vellum.workflows.triggers.integration import IntegrationTrigger
4
-
5
-
6
- class SlackTrigger(IntegrationTrigger):
7
- """
8
- Trigger for Slack events (messages, mentions, reactions, etc.).
9
-
10
- SlackTrigger enables workflows to be initiated from Slack events such as
11
- messages in channels, direct messages, app mentions, or reactions. The trigger
12
- parses Slack webhook payloads and provides structured attributes that downstream
13
- nodes can reference.
14
-
15
- Examples:
16
- Basic Slack message trigger:
17
- >>> class MyWorkflow(BaseWorkflow):
18
- ... graph = SlackTrigger >> ProcessMessageNode
19
-
20
- Access trigger attributes in nodes:
21
- >>> class ProcessMessageNode(BaseNode):
22
- ... class Outputs(BaseNode.Outputs):
23
- ... response = SlackTrigger.message
24
-
25
- Multiple entry points:
26
- >>> class MyWorkflow(BaseWorkflow):
27
- ... graph = {
28
- ... SlackTrigger >> ProcessSlackNode,
29
- ... ManualTrigger >> ProcessManualNode,
30
- ... }
31
-
32
- Attributes:
33
- message: str
34
- The message text from Slack
35
- channel: str
36
- Slack channel ID where message was sent
37
- user: str
38
- User ID who sent the message
39
- timestamp: str
40
- Message timestamp (ts field from Slack)
41
- thread_ts: Optional[str]
42
- Thread timestamp if message is in a thread, None otherwise
43
- event_type: str
44
- Type of Slack event (e.g., "message", "app_mention")
45
-
46
- Note:
47
- The trigger expects Slack Event API webhook payloads. For details on
48
- the payload structure, see: https://api.slack.com/apis/connections/events-api
49
- """
50
-
51
- message: str
52
- channel: str
53
- user: str
54
- timestamp: str
55
- thread_ts: Optional[str]
56
- event_type: str
57
-
58
- def __init__(self, event_data: dict):
59
- """
60
- Initialize SlackTrigger with Slack webhook payload.
61
-
62
- Args:
63
- event_data: Slack event payload from webhook. Expected structure:
64
- {
65
- "event": {
66
- "type": "message",
67
- "text": "Hello world",
68
- "channel": "C123456",
69
- "user": "U123456",
70
- "ts": "1234567890.123456",
71
- "thread_ts": "1234567890.123456" # optional
72
- }
73
- }
74
-
75
- Examples:
76
- >>> slack_payload = {
77
- ... "event": {
78
- ... "type": "message",
79
- ... "text": "Hello!",
80
- ... "channel": "C123",
81
- ... "user": "U456",
82
- ... "ts": "1234567890.123456"
83
- ... }
84
- ... }
85
- >>> trigger = SlackTrigger(slack_payload)
86
- >>> trigger.message
87
- 'Hello!'
88
- """
89
- # Call parent init
90
- super().__init__(event_data)
91
-
92
- # Extract from Slack's event structure
93
- event = event_data.get("event", {})
94
-
95
- # Populate trigger attributes
96
- self.message = event.get("text", "")
97
- self.channel = event.get("channel", "")
98
- self.user = event.get("user", "")
99
- self.timestamp = event.get("ts", "")
100
- self.thread_ts = event.get("thread_ts")
101
- self.event_type = event.get("type", "message")
@@ -1,180 +0,0 @@
1
- """Tests for SlackTrigger."""
2
-
3
- from typing import cast
4
-
5
- from vellum.workflows.nodes.bases.base import BaseNode
6
- from vellum.workflows.references.trigger import TriggerAttributeReference
7
- from vellum.workflows.state.base import BaseState
8
- from vellum.workflows.triggers.slack import SlackTrigger
9
-
10
-
11
- def test_slack_trigger__basic():
12
- """SlackTrigger parses Slack payload correctly."""
13
- # GIVEN a Slack event payload
14
- slack_payload = {
15
- "event": {
16
- "type": "message",
17
- "text": "Hello world!",
18
- "channel": "C123456",
19
- "user": "U123456",
20
- "ts": "1234567890.123456",
21
- }
22
- }
23
-
24
- # WHEN we create a trigger instance
25
- trigger = SlackTrigger(slack_payload)
26
-
27
- # THEN trigger attributes contain the correct data
28
- assert trigger.message == "Hello world!"
29
- assert trigger.channel == "C123456"
30
- assert trigger.user == "U123456"
31
- assert trigger.timestamp == "1234567890.123456"
32
- assert trigger.thread_ts is None
33
- assert trigger.event_type == "message"
34
-
35
- # AND the trigger can bind values to workflow state
36
- state = BaseState()
37
- trigger.bind_to_state(state)
38
- stored = state.meta.trigger_attributes
39
- message_ref = cast(TriggerAttributeReference[str], SlackTrigger.message)
40
- assert message_ref in stored
41
- assert stored[message_ref] == "Hello world!"
42
-
43
-
44
- def test_slack_trigger__with_thread():
45
- """SlackTrigger handles threaded messages."""
46
- # GIVEN a Slack event payload with thread_ts
47
- slack_payload = {
48
- "event": {
49
- "type": "message",
50
- "text": "Reply in thread",
51
- "channel": "C123456",
52
- "user": "U123456",
53
- "ts": "1234567891.123456",
54
- "thread_ts": "1234567890.123456",
55
- }
56
- }
57
-
58
- # WHEN we create a trigger instance
59
- trigger = SlackTrigger(slack_payload)
60
-
61
- # THEN thread_ts is populated
62
- assert trigger.thread_ts == "1234567890.123456"
63
-
64
-
65
- def test_slack_trigger__empty_payload():
66
- """SlackTrigger handles empty payload gracefully."""
67
- # GIVEN an empty payload
68
- slack_payload: dict[str, str] = {}
69
-
70
- # WHEN we create a trigger instance
71
- trigger = SlackTrigger(slack_payload)
72
-
73
- # THEN it returns empty strings for required fields
74
- assert trigger.message == ""
75
- assert trigger.channel == ""
76
- assert trigger.user == ""
77
- assert trigger.timestamp == ""
78
- assert trigger.thread_ts is None
79
- assert trigger.event_type == "message" # default value
80
-
81
-
82
- def test_slack_trigger__app_mention():
83
- """SlackTrigger handles app_mention events."""
84
- # GIVEN an app_mention event
85
- slack_payload = {
86
- "event": {
87
- "type": "app_mention",
88
- "text": "<@U0LAN0Z89> is it everything a river should be?",
89
- "channel": "C123456",
90
- "user": "U123456",
91
- "ts": "1234567890.123456",
92
- }
93
- }
94
-
95
- # WHEN we create a trigger instance
96
- trigger = SlackTrigger(slack_payload)
97
-
98
- # THEN event_type is app_mention
99
- assert trigger.event_type == "app_mention"
100
- assert trigger.message == "<@U0LAN0Z89> is it everything a river should be?"
101
-
102
-
103
- def test_slack_trigger__attributes():
104
- """SlackTrigger has correct attributes."""
105
- # GIVEN SlackTrigger class
106
- # THEN it exposes attribute references for annotated fields
107
- reference = SlackTrigger.message
108
- assert isinstance(reference, TriggerAttributeReference)
109
- assert reference.name == "message"
110
- assert SlackTrigger.message is reference # cache returns same reference
111
-
112
- annotations = SlackTrigger.__annotations__
113
- assert set(annotations) >= {"message", "channel", "user", "timestamp", "thread_ts", "event_type"}
114
-
115
- # AND references resolve when present on state
116
- state = BaseState()
117
- state.meta.trigger_attributes[reference] = "Hello"
118
- assert reference.resolve(state) == "Hello"
119
-
120
-
121
- def test_slack_trigger__graph_syntax():
122
- """SlackTrigger can be used in graph syntax."""
123
-
124
- # GIVEN a node
125
- class TestNode(BaseNode):
126
- pass
127
-
128
- # WHEN we use SlackTrigger >> Node syntax
129
- graph = SlackTrigger >> TestNode
130
-
131
- # THEN a graph is created with trigger edge
132
- assert graph is not None
133
- trigger_edges = list(graph.trigger_edges)
134
- assert len(trigger_edges) == 1
135
- assert trigger_edges[0].trigger_class == SlackTrigger
136
- assert trigger_edges[0].to_node == TestNode
137
-
138
-
139
- def test_slack_trigger__multiple_entrypoints():
140
- """SlackTrigger works with multiple entry points."""
141
-
142
- # GIVEN multiple nodes
143
- class NodeA(BaseNode):
144
- pass
145
-
146
- class NodeB(BaseNode):
147
- pass
148
-
149
- # WHEN we use SlackTrigger >> {NodeA, NodeB} syntax
150
- graph = SlackTrigger >> {NodeA, NodeB}
151
-
152
- # THEN both nodes have trigger edges
153
- trigger_edges = list(graph.trigger_edges)
154
- assert len(trigger_edges) == 2
155
- target_nodes = {edge.to_node for edge in trigger_edges}
156
- assert target_nodes == {NodeA, NodeB}
157
-
158
-
159
- def test_slack_trigger__trigger_then_graph():
160
- """SlackTrigger works with trigger >> node >> node syntax."""
161
-
162
- # GIVEN two nodes
163
- class StartNode(BaseNode):
164
- pass
165
-
166
- class EndNode(BaseNode):
167
- pass
168
-
169
- # WHEN we create SlackTrigger >> StartNode >> EndNode
170
- graph = SlackTrigger >> StartNode >> EndNode
171
-
172
- # THEN the graph has one trigger edge and one regular edge
173
- trigger_edges = list(graph.trigger_edges)
174
- assert len(trigger_edges) == 1
175
- assert trigger_edges[0].trigger_class == SlackTrigger
176
- assert trigger_edges[0].to_node == StartNode
177
-
178
- edges = list(graph.edges)
179
- assert len(edges) == 1
180
- assert edges[0].to_node == EndNode