vellum-ai 1.3.0__py3-none-any.whl → 1.3.2__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 (41) hide show
  1. vellum/__init__.py +6 -0
  2. vellum/client/README.md +5 -5
  3. vellum/client/__init__.py +20 -0
  4. vellum/client/core/client_wrapper.py +2 -2
  5. vellum/client/raw_client.py +20 -0
  6. vellum/client/reference.md +61 -27
  7. vellum/client/resources/ad_hoc/client.py +29 -29
  8. vellum/client/resources/ad_hoc/raw_client.py +13 -13
  9. vellum/client/resources/events/client.py +69 -33
  10. vellum/client/resources/events/raw_client.py +13 -9
  11. vellum/client/types/__init__.py +6 -0
  12. vellum/client/types/create_workflow_event_request.py +7 -0
  13. vellum/client/types/deprecated_prompt_request_input.py +8 -0
  14. vellum/client/types/event_create_response.py +5 -0
  15. vellum/client/types/logical_operator.py +1 -0
  16. vellum/client/types/processing_failure_reason_enum.py +3 -1
  17. vellum/client/types/slim_document.py +1 -0
  18. vellum/client/types/workflow_input.py +31 -0
  19. vellum/types/create_workflow_event_request.py +3 -0
  20. vellum/types/deprecated_prompt_request_input.py +3 -0
  21. vellum/types/workflow_input.py +3 -0
  22. vellum/workflows/constants.py +3 -0
  23. vellum/workflows/events/node.py +1 -0
  24. vellum/workflows/events/tests/test_event.py +1 -0
  25. vellum/workflows/events/workflow.py +10 -2
  26. vellum/workflows/nodes/core/templating_node/tests/test_templating_node.py +16 -0
  27. vellum/workflows/nodes/displayable/code_execution_node/tests/test_node.py +3 -13
  28. vellum/workflows/nodes/displayable/tool_calling_node/utils.py +11 -0
  29. vellum/workflows/nodes/displayable/web_search_node/tests/__init__.py +0 -0
  30. vellum/workflows/nodes/displayable/web_search_node/tests/test_node.py +319 -0
  31. vellum/workflows/nodes/tests/test_utils.py +23 -0
  32. vellum/workflows/nodes/utils.py +14 -0
  33. vellum/workflows/runner/runner.py +33 -12
  34. vellum/workflows/types/code_execution_node_wrappers.py +2 -1
  35. {vellum_ai-1.3.0.dist-info → vellum_ai-1.3.2.dist-info}/METADATA +1 -1
  36. {vellum_ai-1.3.0.dist-info → vellum_ai-1.3.2.dist-info}/RECORD +41 -32
  37. vellum_ee/workflows/display/tests/workflow_serialization/test_web_search_node_serialization.py +81 -0
  38. vellum_ee/workflows/display/utils/events.py +3 -0
  39. {vellum_ai-1.3.0.dist-info → vellum_ai-1.3.2.dist-info}/LICENSE +0 -0
  40. {vellum_ai-1.3.0.dist-info → vellum_ai-1.3.2.dist-info}/WHEEL +0 -0
  41. {vellum_ai-1.3.0.dist-info → vellum_ai-1.3.2.dist-info}/entry_points.txt +0 -0
@@ -102,11 +102,12 @@ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling
102
102
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_workflow_deployment_serialization.py,sha256=XIZZr5POo2NLn2uEWm9EC3rejeBMoO4X-JtzTH6mvp4,4074
103
103
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py,sha256=pLCyMScV88DTBXRH7jXaXOEA1GBq8NIipCUFwIAWnwI,2771
104
104
  vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256=exT7U-axwtYgFylagScflSQLJEND51qIAx2UATju6JM,6023
105
+ vellum_ee/workflows/display/tests/workflow_serialization/test_web_search_node_serialization.py,sha256=vbDFBrWUPeeW7cxjNA6SXrsHlYcbOAhlQ4C45Vdnr1c,3428
105
106
  vellum_ee/workflows/display/tests/workflow_serialization/test_workflow_input_parameterization_error.py,sha256=vAdmn3YTBDpo55znbydQxsgg9ASqHcvsUPwiBR_7wfo,1461
106
107
  vellum_ee/workflows/display/types.py,sha256=cyZruu4sXAdHjwuFc7dydM4DcFNf-pp_CmulXItxac4,3679
107
108
  vellum_ee/workflows/display/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
109
  vellum_ee/workflows/display/utils/auto_layout.py,sha256=f4GiLn_LazweupfqTpubcdtdfE_vrOcmZudSsnYIY9E,3906
109
- vellum_ee/workflows/display/utils/events.py,sha256=HHKXnVy1Zs0YJxTojp2iKQJFTLBqVXiY-YW0J-rRZlI,1673
110
+ vellum_ee/workflows/display/utils/events.py,sha256=KC684ZWODHRGgJtik_KjGXIjM5x4_58_1dGuco_9O8c,1748
110
111
  vellum_ee/workflows/display/utils/exceptions.py,sha256=LSwwxCYNxFkf5XMUcFkaZKpQ13OSrI7y_bpEUwbKVk0,169
111
112
  vellum_ee/workflows/display/utils/expressions.py,sha256=yPrUIEQKL5fDwUC9NpVO9yjL6emTOdFJw8VjoZgZ0E0,16942
112
113
  vellum_ee/workflows/display/utils/registry.py,sha256=1qXiBTdsnro6FeCX0FGBEK7CIf6wa--Jt50iZ_nEp_M,3460
@@ -145,12 +146,12 @@ vellum_ee/workflows/tests/test_registry.py,sha256=B8xRIuEyLWfSqrYoPldNQXhKPfe50P
145
146
  vellum_ee/workflows/tests/test_serialize_module.py,sha256=lk-4dVnG2HcxxywBXxDR1ieH8D9RJt4lvchoZhtQPdU,2892
146
147
  vellum_ee/workflows/tests/test_server.py,sha256=dXFBraU99Y6cKp2aBhLFXQTScSRcE9WaWjo1z9piqdU,23344
147
148
  vellum_ee/workflows/tests/test_virtual_files.py,sha256=TJEcMR0v2S8CkloXNmCHA0QW0K6pYNGaIjraJz7sFvY,2762
148
- vellum/__init__.py,sha256=8-mW70qyqMe2d4jNe2hgthuXs5n3c0qTlkdV8Nz8qcs,47252
149
- vellum/client/README.md,sha256=Uwq9qIFZAHOVCgEfatfWe4YoW-QYYy6xVA1bMjPvx3k,5601
150
- vellum/client/__init__.py,sha256=LOu_TklkJG01SgXIpPWDhOX2QvKDyd2ZbQyr5H0m31I,72349
149
+ vellum/__init__.py,sha256=lv4OTbPgTegugVOpRy5xJPPwMvC1Zqrg4oFMEwY1KSg,47428
150
+ vellum/client/README.md,sha256=b6XKeYBBbhQx0v1sHWfM0gIJeJhUFF-aqL2ig7ADa08,5564
151
+ vellum/client/__init__.py,sha256=T5Ht_w-Mk_9nzGqdadhQB8V20M0vYj7am06ut0A3P1o,73401
151
152
  vellum/client/core/__init__.py,sha256=lTcqUPXcx4112yLDd70RAPeqq6tu3eFMe1pKOqkW9JQ,1562
152
153
  vellum/client/core/api_error.py,sha256=44vPoTyWN59gonCIZMdzw7M1uspygiLnr3GNFOoVL2Q,614
153
- vellum/client/core/client_wrapper.py,sha256=4fuXhB590QTj5qI353Y_5rFqDeErbqxyPvpM_U8GaL4,2840
154
+ vellum/client/core/client_wrapper.py,sha256=U9SkO9ewIIRiSsS9pT50GwmBH-rMjpV3QS5Htj-ipqs,2840
154
155
  vellum/client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
155
156
  vellum/client/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
156
157
  vellum/client/core/force_multipart.py,sha256=awxh5MtcRYe74ehY8U76jzv6fYM_w_D3Rur7KQQzSDk,429
@@ -170,12 +171,12 @@ vellum/client/errors/internal_server_error.py,sha256=t1-kpoDC2biEuoE-Ne8v1kuQswv
170
171
  vellum/client/errors/not_found_error.py,sha256=YrqVM0oc3qkQbFbmmm6xr300VGfUNxMSy1UQUp2IOE8,336
171
172
  vellum/client/errors/too_many_requests_error.py,sha256=SJJemdgUlQHV_VpxK8UfFNexgZebNT5_MTOeQs6oVgc,397
172
173
  vellum/client/errors/unauthorized_error.py,sha256=waPl5Swiqsk3FQK-Lljzx4KDh4RPZ0wL6BLHjM8onQ8,394
173
- vellum/client/raw_client.py,sha256=IJNaTvVzigyiqHZ9g-nLZzXsV8P7aRUZHdXV0U3ddn8,112401
174
- vellum/client/reference.md,sha256=Y5xeW_q9baKaA9Dcd9RL8MQLcGEGAQZXbiCmcrA7yr0,95032
174
+ vellum/client/raw_client.py,sha256=cmMR0t87iUYvkIE9L4g0dcCmw3uUQNze9rD9CBv5rzs,113481
175
+ vellum/client/reference.md,sha256=IS1XNL62s3_Xz49ncvPJVZNvOMKyi36AYp2gYBt7xx8,95967
175
176
  vellum/client/resources/__init__.py,sha256=R10JFtO6U6QRvNubrmDIjncT7e5q4AiOKjXSK4wFuXc,1609
176
177
  vellum/client/resources/ad_hoc/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
177
- vellum/client/resources/ad_hoc/client.py,sha256=AbK_g9HPL2xEBHymwQ9rGO7js7X1YpNYcqPa-PxlsyM,14400
178
- vellum/client/resources/ad_hoc/raw_client.py,sha256=2eBoWQyB02LUqe7tF8ZZNJdF97XdeHyVY0N3O6EJIxc,24723
178
+ vellum/client/resources/ad_hoc/client.py,sha256=v5I_YzJaaPezsE4KVuMSUXJISstKuJ_9-VUeXakIJhw,14353
179
+ vellum/client/resources/ad_hoc/raw_client.py,sha256=JSbwEoowm41Wm9u4hQNoAIHG_-IX6IYfsBRn2tGZ-gM,24864
179
180
  vellum/client/resources/container_images/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
180
181
  vellum/client/resources/container_images/client.py,sha256=o3K1T2zuU738YsNvHeImytorl8sRCgnuv-u6F9O5fZk,9874
181
182
  vellum/client/resources/container_images/raw_client.py,sha256=ddsLR8tbDa7D-hJsjPU8n3GeTYN71CMwTfPK2_L5Sc4,14422
@@ -194,8 +195,8 @@ vellum/client/resources/documents/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7
194
195
  vellum/client/resources/documents/client.py,sha256=1IjqPf-ucvYK4A5CdtGP_0M4y9l1vBUn_Kq1GeqisxU,16791
195
196
  vellum/client/resources/documents/raw_client.py,sha256=-_94wO-A7RoSY9bea1mp1Qskurak9BJNw9IQ1Jz_MTI,25992
196
197
  vellum/client/resources/events/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
197
- vellum/client/resources/events/client.py,sha256=Ha0IBOo33pTu13pyzJ4vK2LJXikV07KmHznuTb3LQtI,4901
198
- vellum/client/resources/events/raw_client.py,sha256=Y854a-aKV8wnqoXCtvauMINgOnBUe6rqN1A6gQeVBm4,8369
198
+ vellum/client/resources/events/client.py,sha256=gTMjvXxPprTkNEqNBKZU810HBfnjlHjMMLQEiH135JU,6641
199
+ vellum/client/resources/events/raw_client.py,sha256=XsVnKcwkZy5CPFbIvdsfijaPOxjO_1S7g_LvWUKEXfA,8575
199
200
  vellum/client/resources/folder_entities/__init__.py,sha256=BSfCsUFsB-bXr4AwYaCcEU48j5U61VFxajugpspfDS0,195
200
201
  vellum/client/resources/folder_entities/client.py,sha256=F60BvZtI4Bnk2h7Z405JshsCLx7qh_yXZkqe3rPdpus,9291
201
202
  vellum/client/resources/folder_entities/raw_client.py,sha256=uYTdVE-lpzoPzxnXIKCb_A4N8L1R7R-K0rq_0txtV04,10697
@@ -245,7 +246,7 @@ vellum/client/resources/workspace_secrets/raw_client.py,sha256=ZfiNd1NisolmK07QP
245
246
  vellum/client/resources/workspaces/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
246
247
  vellum/client/resources/workspaces/client.py,sha256=36KYa2FDu6h65q2GscUFOJs4qKeiOA6grOYoCc0Gi3E,2936
247
248
  vellum/client/resources/workspaces/raw_client.py,sha256=M3Ewk1ZfEZ44EeTvBtBNoNKi5whwfLY-1GR07SyfDTI,3517
248
- vellum/client/types/__init__.py,sha256=-PQEF1IO-RdF7X4YeQf2ZO-OCPvy0pYxt11__WpVxso,71638
249
+ vellum/client/types/__init__.py,sha256=ZzAl8sIsRT3hkRaCO_tlR9fjgVIM7sQCxmLO_S5WrIo,71915
249
250
  vellum/client/types/ad_hoc_execute_prompt_event.py,sha256=B69EesIH6fpNsdoiJaSG9zF1Sl17FnjoTu4CBkUSoHk,608
250
251
  vellum/client/types/ad_hoc_expand_meta.py,sha256=Kajcj3dKKed5e7uZibRnE3ZonK_bB2JPM-3aLjLfUp4,1295
251
252
  vellum/client/types/ad_hoc_fulfilled_prompt_execution_meta.py,sha256=5kD6ZcbU8P8ynK0lMD8Mh7vHzvQt06ziMyphvWYg6FU,968
@@ -318,6 +319,7 @@ vellum/client/types/container_image_build_config.py,sha256=Hl0PpR6fY8PDS8nvYktBs
318
319
  vellum/client/types/container_image_container_image_tag.py,sha256=TlXkSkD3udi_Cf-ZpiIAM_rkMzHyPrWJCUTm_3JWunA,586
319
320
  vellum/client/types/container_image_read.py,sha256=9vyFH5TGg_WNMIlt47gVfy0pce-SOVyQdOkej7ZjKgk,1101
320
321
  vellum/client/types/create_test_suite_test_case_request.py,sha256=qQCmHY3JcMuQ73l1VkY4Atmf0G2qUT20Tcax2uX3WCU,1610
322
+ vellum/client/types/create_workflow_event_request.py,sha256=0MmlvSgYkpd1HU-DyVJDzEPrgbQCjIeD96iZZZ4fxuU,208
321
323
  vellum/client/types/delimiter_chunker_config.py,sha256=iJqsicj4XkkUc2D807slcvrYrTF3LnSFtYwzFxmJFqE,601
322
324
  vellum/client/types/delimiter_chunker_config_request.py,sha256=EQ3iJK2p7flI3qLwtlMRCrOoPTL3tst0G4U1KU3cvIU,608
323
325
  vellum/client/types/delimiter_chunking.py,sha256=RNhnLZzN5325Tt845uQeA6nCFnRqcXtbxJFw19koBfU,714
@@ -328,6 +330,7 @@ vellum/client/types/deployment_provider_payload_response_payload.py,sha256=xHLQn
328
330
  vellum/client/types/deployment_read.py,sha256=gfkVoVD84glJuUFDX61uMwmhDYg46h2UXcXIhTEA-ls,2040
329
331
  vellum/client/types/deployment_release_tag_deployment_history_item.py,sha256=wVzgUnsa4Up9ReH_rP_l5ssfA0J1Nsfd4AN6lRsxhv4,595
330
332
  vellum/client/types/deployment_release_tag_read.py,sha256=SV_kKYFIjhfD5CR9Ab35pdJpAJSx-7jhk2x_HUiz-Uk,1242
333
+ vellum/client/types/deprecated_prompt_request_input.py,sha256=28_ZOtOsQQXS_X_qH4YyYEzeM-McMzbYXgTRni4fm1Q,255
331
334
  vellum/client/types/docker_service_token.py,sha256=rv0F19r2Sgba_Hbz757HFfTV8UioAQTV2xXkWxfn4sg,578
332
335
  vellum/client/types/document_chat_message_content.py,sha256=pzedhUAhgcmI5jaZFHZB-Ei57f5oixCCneZYki90nGU,709
333
336
  vellum/client/types/document_chat_message_content_request.py,sha256=S1Fb1ngDTbTfMR4z06YT9k5MQL83szNzV38BUxGhRqQ,738
@@ -355,7 +358,7 @@ vellum/client/types/error_detail_response.py,sha256=ojTyfayk-06SGyQ_agQRH7R-4dqp
355
358
  vellum/client/types/error_input.py,sha256=L0b21Sa-hMCSGLbD99_oaGwsvhdJdtifEfKd-1uKn8U,750
356
359
  vellum/client/types/error_vellum_value.py,sha256=5Q1iQJ3wfB-8KoARCK7FVLUxM4Upc9CFhOcKxJjgXLE,690
357
360
  vellum/client/types/error_vellum_value_request.py,sha256=7E9ZGq5OOZLp3v-AUkyn8uXIYiz6MKUzJjfKoqvS_ws,719
358
- vellum/client/types/event_create_response.py,sha256=_ogApuh152-AmqplxBSZPVzf_l5b3FERlDr8g6nbqnk,726
361
+ vellum/client/types/event_create_response.py,sha256=-AMF97kDAKTr0WsufK2st48AHi81e7_pG02dvDmkcLU,808
359
362
  vellum/client/types/execute_api_request_bearer_token.py,sha256=d2cP31_oLVIJ4Olm9wVbDMGfPVJoLgJgQTidJGyyJ7M,184
360
363
  vellum/client/types/execute_api_request_body.py,sha256=WySF2yj9rtx2vF4En0dfZkzPF2FNFtVRFW7P8Mw-hF8,217
361
364
  vellum/client/types/execute_api_request_headers_value.py,sha256=W9Qrqzia725vZZ_cyTzuDMLvVQ5JNkq0GHhM-XewBGk,185
@@ -458,7 +461,7 @@ vellum/client/types/json_input.py,sha256=vF9bbntErx0IwVGB0OqrYooPU7A9wxaHap_CZR_
458
461
  vellum/client/types/json_input_request.py,sha256=TAXQypA_hkTgjnGdojm56TjvsOXd0-uVB6TzcLCioEA,732
459
462
  vellum/client/types/json_vellum_value.py,sha256=v01fKiC-U9asT0GV4iorxWIXoPnG-3Do5hiJOaRO4go,653
460
463
  vellum/client/types/json_vellum_value_request.py,sha256=UqBCzov-GCNhgS8aJRUB2baLISdSX2T2EYDN0PWarJ0,660
461
- vellum/client/types/logical_operator.py,sha256=av5NiF3Z9lyP_qibvInCV_FZzpXoCHo5YMjOqC-Qe4M,654
464
+ vellum/client/types/logical_operator.py,sha256=UET8SvwJEorCZQMpfHyRrOcJIH1-eVX98oj-nhn1FsM,672
462
465
  vellum/client/types/logprobs_enum.py,sha256=D_458cZX2CAb6dX_ovrQ6HARlJkYcZRadKwsi1Cr-JM,151
463
466
  vellum/client/types/map_node_result.py,sha256=5v8rzWo6x7QLFyooHieauuRmBU_N91V5uHAvTHTNc6Q,716
464
467
  vellum/client/types/map_node_result_data.py,sha256=UlboKx1e5onq_4hTJhN80GZd8V2pkOx_uHjTsQQsOgk,663
@@ -580,7 +583,7 @@ vellum/client/types/pdf_search_result_meta_source.py,sha256=KaYx-xvNtOn_ADRDBbb4
580
583
  vellum/client/types/pdf_search_result_meta_source_request.py,sha256=Fh2EUxWyhdP7yW2CUNvSTSZo8EcukgogALr4HpppHvQ,1097
581
584
  vellum/client/types/plain_text_prompt_block.py,sha256=vqZESoqj6P1IyHFmRAk2kmdU3ktsM_852crRCBcYV64,894
582
585
  vellum/client/types/price.py,sha256=f-j-74UUDuX2c-IQxXH78KV8L-jLi6sdsHWVLRKqBy4,574
583
- vellum/client/types/processing_failure_reason_enum.py,sha256=R_KIW7TcQejhc-vLhtNf9SdkYADgoZCn4ch4_RRIvsI,195
586
+ vellum/client/types/processing_failure_reason_enum.py,sha256=cQ3Rmryo7U0Lkh-XZzWIDI9Re-oVh1GZb2cDgMR5sL8,224
584
587
  vellum/client/types/prompt_block.py,sha256=950JeKeNKZ0DQXwCD-Sy9SDMtiR7F-BqCrJZoxZt7JM,886
585
588
  vellum/client/types/prompt_block_state.py,sha256=BRAzTYARoSU36IVZGWMeeqhl5fgFMXCyhJ8rCbfB-f0,163
586
589
  vellum/client/types/prompt_deployment_expand_meta_request.py,sha256=v7sW8hDHULzNa103FB3WugGMsRUnt0ijbzRy476M3fg,1874
@@ -659,7 +662,7 @@ vellum/client/types/sentence_chunker_config_request.py,sha256=Da2ANuD4icLxI74emC
659
662
  vellum/client/types/sentence_chunking.py,sha256=MyEImiN0dhWEVFvD76Q6mCqIEjZcyY__Hhu0j9Gjs6Y,747
660
663
  vellum/client/types/sentence_chunking_request.py,sha256=itrdqiKJJ7UKWVGTfj9sJu3kMSThkBF_Qj-3KqFunP4,776
661
664
  vellum/client/types/slim_deployment_read.py,sha256=lEJ8Fx7QSmqjEK-LcR0y_hX2ywcaPbYjxINwPGy_ofw,1733
662
- vellum/client/types/slim_document.py,sha256=2eSbvk2u8NsFsT3SPmDRvdBJsytJ8zPAVhuTsC-hF8E,2359
665
+ vellum/client/types/slim_document.py,sha256=aytvaz8SF6MSSEA3iLXP7ZgZOw33CA-_bv2iSj5cH24,2409
663
666
  vellum/client/types/slim_document_document_to_document_index.py,sha256=Ogo8OFjtmcHjDmIynB9vckfjSZxFNhKM-cYpqSfREGI,1515
664
667
  vellum/client/types/slim_release_review.py,sha256=vWNkPXk5wZ_scHsWHz_77PfMZRDn-4qUkqVbCKqY1zQ,747
665
668
  vellum/client/types/slim_workflow_deployment.py,sha256=jIciGPCW9QNtDRdq3w_zUdrrE4cg1LWkcoyGM-L6cs0,2085
@@ -864,6 +867,7 @@ vellum/client/types/workflow_execution_view_online_eval_metric_result.py,sha256=
864
867
  vellum/client/types/workflow_execution_workflow_result_event.py,sha256=9au7DnaQu84TOYBDiSlDAjLcdDAxfMHOYwi4zbSQYBk,1047
865
868
  vellum/client/types/workflow_expand_meta_request.py,sha256=jdlSJB-g7vqhdRheEV0Zzi4CAQZSlGBeWlvbihHgeLU,1115
866
869
  vellum/client/types/workflow_initialization_error.py,sha256=1QIqmlPdbBPLEbMP-ThkC30FiIyxPBnK-g9eRKBdrHw,603
870
+ vellum/client/types/workflow_input.py,sha256=0AKNfArTz60M4M_i9J4in7ZpauU7fHmAQLIxtk5z6no,815
867
871
  vellum/client/types/workflow_node_result_data.py,sha256=kd7HHA8rI1eVkKzzmZixf4eY9I0GWFQUHUX1LxMc4iI,952
868
872
  vellum/client/types/workflow_node_result_event.py,sha256=NjEFaYmzEvb-8orEhLnmZWxw9fnf2EoNXlNux2eMjuE,604
869
873
  vellum/client/types/workflow_node_result_event_state.py,sha256=cC3CdfmXR8bPzSG4W6vDnndA9HAnfF3v4UzmyeVwxog,209
@@ -1100,6 +1104,7 @@ vellum/types/container_image_build_config.py,sha256=HwpCCo427Ee0j6_f72AV5gxaTAOR
1100
1104
  vellum/types/container_image_container_image_tag.py,sha256=RgDod58iPXdgq6sMp63qqmRF3gk_gTK1gwLVcgR58QA,173
1101
1105
  vellum/types/container_image_read.py,sha256=36LQzvJaDGH26wjD6_WxgzwkslgRZihSYXu5n4W7abk,158
1102
1106
  vellum/types/create_test_suite_test_case_request.py,sha256=D_d6psjOMWx5jr2c7FwNndSH1ay5afdu5QXckqtBmfU,173
1107
+ vellum/types/create_workflow_event_request.py,sha256=TwlP_GRYV0gpnlyUK8PzvRF9F9RMr1l9sV5jyIzDzpY,167
1103
1108
  vellum/types/delimiter_chunker_config.py,sha256=-YWJgMAU0rfWMFEY4joJP2tO46RwdlVV9dMmI8vCNFc,162
1104
1109
  vellum/types/delimiter_chunker_config_request.py,sha256=_jUh1W8OkCvOVePVujM3Wi55MxVjT4srnTVUeavEq78,170
1105
1110
  vellum/types/delimiter_chunking.py,sha256=V8UitO134joRwoUWgY-RPZhosDPX0OnVRC1k1DNkLx0,156
@@ -1110,6 +1115,7 @@ vellum/types/deployment_provider_payload_response_payload.py,sha256=nuzn6G1Tc5h6
1110
1115
  vellum/types/deployment_read.py,sha256=iJWCAuQLxL3GEMaMvC5SrUUEvVvSIPYWarQZ7yEyjvI,153
1111
1116
  vellum/types/deployment_release_tag_deployment_history_item.py,sha256=JMw5mQrNNJPDhY-fEW-ZtLh36kqytXy6NySfKwFXUr4,184
1112
1117
  vellum/types/deployment_release_tag_read.py,sha256=cZSBv5ueKerzqCpFz9VIKnzNYL72LCMknKlY-q_4qno,165
1118
+ vellum/types/deprecated_prompt_request_input.py,sha256=ddmp-naHZWLRGLOrQXlfM0IWpJbCFQ6SPMP3xl6FJSk,169
1113
1119
  vellum/types/docker_service_token.py,sha256=hQEc1XEqUssp2OMzWDE4igdsBdEOU5Dg-sCHBaaePr4,158
1114
1120
  vellum/types/document_chat_message_content.py,sha256=n_dmayC0_zMooetTlPM0-IGsaxTqIyfXNBEFS7_uOtI,167
1115
1121
  vellum/types/document_chat_message_content_request.py,sha256=dL-Es5ckNEnBTEaOjg95Yo3dpcSOZ6HQNaywC3Qb6DA,175
@@ -1646,6 +1652,7 @@ vellum/types/workflow_execution_view_online_eval_metric_result.py,sha256=dLnk3Cf
1646
1652
  vellum/types/workflow_execution_workflow_result_event.py,sha256=3bNxtChEfqny5eEazFcGmqQpmC8283Q0J2hxLje-uks,178
1647
1653
  vellum/types/workflow_expand_meta_request.py,sha256=Ahb7gjZekJ5qI0HGHLCbn3hCpkX08EnzeXEH_3ivB4E,166
1648
1654
  vellum/types/workflow_initialization_error.py,sha256=ZDbjOAEilOIpioDFdNolGIh8XFP0kssEmf0LEnLAMQw,167
1655
+ vellum/types/workflow_input.py,sha256=W-ANsou365XpgqSimqMzqD-O5J8U3g0HT0dK1Upiq5o,152
1649
1656
  vellum/types/workflow_node_result_data.py,sha256=xJGaXn837DXVIXd8i9IrFuo3iTKufsUlgogwHnW_MZw,163
1650
1657
  vellum/types/workflow_node_result_event.py,sha256=6j8UAupnbsYlO1Qn4RbSMEvLRPhVFV3F2rIg-a2ocUY,164
1651
1658
  vellum/types/workflow_node_result_event_state.py,sha256=dsQ6jjkq1kh3sivg1iTDPSh1TZ8cLtbMqNrGydhZEoo,170
@@ -1702,7 +1709,7 @@ vellum/utils/uuid.py,sha256=Ch6wWRgwICxLxJCTl5iE3EdRlZj2zADR-zUMUtjcMWM,214
1702
1709
  vellum/version.py,sha256=jq-1PlAYxN9AXuaZqbYk9ak27SgE2lw9Ia5gx1b1gVI,76
1703
1710
  vellum/workflows/README.md,sha256=hZdTKBIcsTKPofK68oPkBhyt0nnRh0csqC12k4FMHHA,3597
1704
1711
  vellum/workflows/__init__.py,sha256=CssPsbNvN6rDhoLuqpEv7MMKGa51vE6dvAh6U31Pcio,71
1705
- vellum/workflows/constants.py,sha256=2yg4_uo5gpqViy3ZLSwfC8qTybleYCtOnhA4Rj6bacM,1310
1712
+ vellum/workflows/constants.py,sha256=xweiPRUSVEnGz9BJvpIWu96Gfok89QneARu4K7wj7f8,1358
1706
1713
  vellum/workflows/context.py,sha256=ViyIeMDhUv-MhnynLaXPlvlbYxRU45ySvYidCNSbFZU,2458
1707
1714
  vellum/workflows/descriptors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1708
1715
  vellum/workflows/descriptors/base.py,sha256=fRnRkECyDjfz2QEDCY9Q5mAerlJ6jR0R4nE-MP2VP_k,16558
@@ -1720,14 +1727,14 @@ vellum/workflows/errors/__init__.py,sha256=tWGPu5xyAU8gRb8_bl0fL7OfU3wxQ9UH6qVwy
1720
1727
  vellum/workflows/errors/types.py,sha256=nUWuniEfrhdtb-_2GzoDGlYnSJ_yuNUGjVkaKLNr-rM,4049
1721
1728
  vellum/workflows/events/__init__.py,sha256=V4mh766fyA70WvHelm9kfVZGrUgEKcJ9tJt8EepfQYU,832
1722
1729
  vellum/workflows/events/context.py,sha256=vCfMIPmz4j9Om36rRWa35A_JU_VccWWS52_mZkkqxak,3345
1723
- vellum/workflows/events/node.py,sha256=ZL_oGo7cnXfHNBVfl645fm5fgk-NnoAmV6BlR_YdLnk,5847
1730
+ vellum/workflows/events/node.py,sha256=2R5Yk86v6DNNfgPiCCQjrQ9JYKc71xKNokW2f2EFUUU,5883
1724
1731
  vellum/workflows/events/relational_threads.py,sha256=zmLrBCBYpdpQV0snKH3HleST-_hWAMy2LIT0xScfzi4,1516
1725
1732
  vellum/workflows/events/stream.py,sha256=xhXJTZirFi0xad5neAQNogrIQ4h47fpnKbVC3vCM5Js,889
1726
1733
  vellum/workflows/events/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1727
1734
  vellum/workflows/events/tests/test_basic_workflow.py,sha256=Pj6orHsXz37jWC5FARi0Sx2Gjf99Owri2Cvr6Chb79k,1765
1728
- vellum/workflows/events/tests/test_event.py,sha256=c2pM8ZOuES_8XjLYP4cU4cChrZUZ1ZZ3HUNIaaPAxXk,18411
1735
+ vellum/workflows/events/tests/test_event.py,sha256=6R3RuN_lMJ9ooHQ9-HE1p0j2xL0FtGiRxkQ7PucFbD0,18450
1729
1736
  vellum/workflows/events/types.py,sha256=mVrqAH9Hs9SpXm08Hcxdyap_ImQPwGsxRr56rSNMP34,5043
1730
- vellum/workflows/events/workflow.py,sha256=gjg4Dt5i40jaTMK_-AaGtW9lzX1JGn3FUAu1XqhduJ8,8753
1737
+ vellum/workflows/events/workflow.py,sha256=XW9tpAmDb9BPj2RLYpdbN-SJz_UhwqKBTaMJkZM2ahM,8996
1731
1738
  vellum/workflows/exceptions.py,sha256=NiBiR3ggfmPxBVqD-H1SqmjI-7mIn0EStSN1BqApvCM,1213
1732
1739
  vellum/workflows/expressions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1733
1740
  vellum/workflows/expressions/accessor.py,sha256=3lu1-_-dBfZdJvtX-q66jbmRAZtqIfdsh_3_JNuzg1E,4462
@@ -1810,7 +1817,7 @@ vellum/workflows/nodes/core/retry_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TI
1810
1817
  vellum/workflows/nodes/core/retry_node/tests/test_node.py,sha256=PCvD_XROP26k4cVYOdSQUfkDdbTljAJxtOTFzOUoS8c,4450
1811
1818
  vellum/workflows/nodes/core/templating_node/__init__.py,sha256=GmyuYo81_A1_Bz6id69ozVFS6FKiuDsZTiA3I6MaL2U,70
1812
1819
  vellum/workflows/nodes/core/templating_node/node.py,sha256=mn0JEbORWaM-mR7fgUZy-BItZCup8CaxZQaY_g3TSEE,3855
1813
- vellum/workflows/nodes/core/templating_node/tests/test_templating_node.py,sha256=RzX00apXes3Kz7AY0a_Ewx65byRwp2FFc1ceh0AWUOc,14381
1820
+ vellum/workflows/nodes/core/templating_node/tests/test_templating_node.py,sha256=gfLi8lJpTU5jGO1Kt6UuzVz1fQN8dcNhHBZG90enP-s,15013
1814
1821
  vellum/workflows/nodes/core/try_node/__init__.py,sha256=JVD4DrldTIqFQQFrubs9KtWCCc0YCAc7Fzol5ZWIWeM,56
1815
1822
  vellum/workflows/nodes/core/try_node/node.py,sha256=XdyOvlwQ3m4h0-_WNtaBl2t_CdlzPXclulkLOtUcX3E,4388
1816
1823
  vellum/workflows/nodes/core/try_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1842,7 +1849,7 @@ vellum/workflows/nodes/displayable/code_execution_node/node.py,sha256=cCpZPna1Ex
1842
1849
  vellum/workflows/nodes/displayable/code_execution_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1843
1850
  vellum/workflows/nodes/displayable/code_execution_node/tests/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1844
1851
  vellum/workflows/nodes/displayable/code_execution_node/tests/fixtures/main.py,sha256=5QsbmkzSlSbcbWTG_JmIqcP-JNJzOPTKxGzdHos19W4,79
1845
- vellum/workflows/nodes/displayable/code_execution_node/tests/test_node.py,sha256=0lxmU-XXie6qu35qAEfZJ3vKZ1XGvWV4eq9y2RMelOE,38521
1852
+ vellum/workflows/nodes/displayable/code_execution_node/tests/test_node.py,sha256=1XadX-I240ghXDSLBejYfDNUpDZcdQbB6aroCHlIBt4,38285
1846
1853
  vellum/workflows/nodes/displayable/code_execution_node/utils.py,sha256=GxSjRBiH8kNg2dXUVTtnX47fqPIFoGHxRB4ySU6uVPk,3225
1847
1854
  vellum/workflows/nodes/displayable/conditional_node/__init__.py,sha256=AS_EIqFdU1F9t8aLmbZU-rLh9ry6LCJ0uj0D8F0L5Uw,72
1848
1855
  vellum/workflows/nodes/displayable/conditional_node/node.py,sha256=71ZUNfTiD7t2Kai2ypw0tmv1lSf1brQaHAQD-SeUrGE,1101
@@ -1888,9 +1895,11 @@ vellum/workflows/nodes/displayable/tool_calling_node/tests/__init__.py,sha256=47
1888
1895
  vellum/workflows/nodes/displayable/tool_calling_node/tests/test_composio_service.py,sha256=in1fbEz5x1tx3uKv9YXdvOncsHucNL8Ro6Go7lBuuOQ,8962
1889
1896
  vellum/workflows/nodes/displayable/tool_calling_node/tests/test_node.py,sha256=GZoeybB9uM7ai8sBLAtUMHrMVgh-WrJDWrKZci6feDs,11892
1890
1897
  vellum/workflows/nodes/displayable/tool_calling_node/tests/test_utils.py,sha256=SIu5GCj4tIE4fz-cAcdULtQfqZIhrcc3Doo6TWLXBws,8804
1891
- vellum/workflows/nodes/displayable/tool_calling_node/utils.py,sha256=7pM6MH3Z7r0k7Kpr3d-26QXUo_4GrxLflKwFTxRPREY,22844
1898
+ vellum/workflows/nodes/displayable/tool_calling_node/utils.py,sha256=ACEfl2pY65sO0DaMYxuecx2Kxg32HpSh7XXpp8U1J84,23459
1892
1899
  vellum/workflows/nodes/displayable/web_search_node/__init__.py,sha256=8FOnEP-n-U68cvxTlJW9wphIAGHq5aqjzLM-DoSSXnU,61
1893
1900
  vellum/workflows/nodes/displayable/web_search_node/node.py,sha256=NQYux2bOtuBF5E4tn-fXi5y3btURPRrNqMSM9MAZYI4,5091
1901
+ vellum/workflows/nodes/displayable/web_search_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1902
+ vellum/workflows/nodes/displayable/web_search_node/tests/test_node.py,sha256=H3titxCYFsfIJ3EDeRL6Pe9I-tdKMRt1axOwb2qIw6U,10983
1894
1903
  vellum/workflows/nodes/experimental/README.md,sha256=eF6DfIL8t-HbF9-mcofOMymKrraiBHDLKTlnBa51ZiE,284
1895
1904
  vellum/workflows/nodes/experimental/__init__.py,sha256=jCQgvZEknXKfuNhGSOou4XPfrPqZ1_XBj5F0n0fgiWM,106
1896
1905
  vellum/workflows/nodes/experimental/openai_chat_completion_node/__init__.py,sha256=lsyD9laR9p7kx5-BXGH2gUTM242UhKy8SMV0SR6S2iE,90
@@ -1898,8 +1907,8 @@ vellum/workflows/nodes/experimental/openai_chat_completion_node/node.py,sha256=c
1898
1907
  vellum/workflows/nodes/mocks.py,sha256=a1FjWEIocseMfjzM-i8DNozpUsaW0IONRpZmXBoWlyc,10455
1899
1908
  vellum/workflows/nodes/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1900
1909
  vellum/workflows/nodes/tests/test_mocks.py,sha256=mfPvrs75PKcsNsbJLQAN6PDFoVqs9TmQxpdyFKDdO60,7837
1901
- vellum/workflows/nodes/tests/test_utils.py,sha256=OPVZo9yi8qt0rVqayKhfgh4Hk-dVdIzqfbS89fDhRiE,4913
1902
- vellum/workflows/nodes/utils.py,sha256=CwDobM6T4Whm1B0cekPAIj7pdSxbFGRxx_BqgxZrimg,10265
1910
+ vellum/workflows/nodes/tests/test_utils.py,sha256=BUugAHx2C9YuCwTlsTXV1Glxca0kW3St6T9o_QFatSU,5649
1911
+ vellum/workflows/nodes/utils.py,sha256=wCvf8K5qruT5GwtvnHcQ-LMllktTD8aaFmAGpKQy--c,10720
1903
1912
  vellum/workflows/outputs/__init__.py,sha256=AyZ4pRh_ACQIGvkf0byJO46EDnSix1ZCAXfvh-ms1QE,94
1904
1913
  vellum/workflows/outputs/base.py,sha256=PUn0zhGzYCSZL34JXtXg9zALlXS_cqxZldLilPxDzb8,9614
1905
1914
  vellum/workflows/ports/__init__.py,sha256=bZuMt-R7z5bKwpu4uPW7LlJeePOQWmCcDSXe5frUY5g,101
@@ -1925,7 +1934,7 @@ vellum/workflows/resolvers/resolver.py,sha256=0Y9ArmN_2Gu62TpgYjFvSzhFMMFy7oGWOJ
1925
1934
  vellum/workflows/resolvers/tests/test_resolver.py,sha256=JX6-zjIQShNvt4XYmub6zmY0iUf6z90KZynqvEd33qA,5202
1926
1935
  vellum/workflows/resolvers/types.py,sha256=Hndhlk69g6EKLh_LYg5ILepW5U_h_BYNllfzhS9k8p4,237
1927
1936
  vellum/workflows/runner/__init__.py,sha256=i1iG5sAhtpdsrlvwgH6B-m49JsINkiWyPWs8vyT-bqM,72
1928
- vellum/workflows/runner/runner.py,sha256=jdFFDr-MCVzTm5NKEzOgrw_9osuwdiVk97SRo73uLRQ,39366
1937
+ vellum/workflows/runner/runner.py,sha256=kuW28ozlBi2thQRhgrKigxXtAcOYoGp0M6lYucYsrMw,40321
1929
1938
  vellum/workflows/sandbox.py,sha256=jwlFFQjHDwmbVoBah_Q3i8K_BrzOt-F6TXFauiyVyIk,3021
1930
1939
  vellum/workflows/state/__init__.py,sha256=yUUdR-_Vl7UiixNDYQZ-GEM_kJI9dnOia75TtuNEsnE,60
1931
1940
  vellum/workflows/state/base.py,sha256=m9fCqbZn21GshCVCjJTD1dPZEQjFrsMXqlg7tM9fIwM,24283
@@ -1939,7 +1948,7 @@ vellum/workflows/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
1939
1948
  vellum/workflows/tests/test_sandbox.py,sha256=JKwaluI-lODQo7Ek9sjDstjL_WTdSqUlVik6ZVTfVOA,1826
1940
1949
  vellum/workflows/tests/test_undefined.py,sha256=zMCVliCXVNLrlC6hEGyOWDnQADJ2g83yc5FIM33zuo8,353
1941
1950
  vellum/workflows/types/__init__.py,sha256=KxUTMBGzuRCfiMqzzsykOeVvrrkaZmTTo1a7SLu8gRM,68
1942
- vellum/workflows/types/code_execution_node_wrappers.py,sha256=3MNIoFZKzVzNS5qFLVuDwMV17QJw72zo7NRf52yMq5A,3074
1951
+ vellum/workflows/types/code_execution_node_wrappers.py,sha256=m6C4cNEfPZFuqsS9qaJHOKq7UviOBDIYdAJalMWmabQ,3089
1943
1952
  vellum/workflows/types/core.py,sha256=TggDVs2lVya33xvu374EDhMC1b7RRlAAs0zWLaF46BA,1385
1944
1953
  vellum/workflows/types/definition.py,sha256=2vq3uGT-m994zRcla0yTUsMiPLKSDuzEZs7H6U9QbiE,4993
1945
1954
  vellum/workflows/types/generics.py,sha256=8jptbEx1fnJV0Lhj0MpCJOT6yNiEWeTOYOwrEAb5CRU,1576
@@ -1968,8 +1977,8 @@ vellum/workflows/workflows/event_filters.py,sha256=GSxIgwrX26a1Smfd-6yss2abGCnad
1968
1977
  vellum/workflows/workflows/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1969
1978
  vellum/workflows/workflows/tests/test_base_workflow.py,sha256=ptMntHzVyy8ZuzNgeTuk7hREgKQ5UBdgq8VJFSGaW4Y,20832
1970
1979
  vellum/workflows/workflows/tests/test_context.py,sha256=VJBUcyWVtMa_lE5KxdhgMu0WYNYnUQUDvTF7qm89hJ0,2333
1971
- vellum_ai-1.3.0.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
1972
- vellum_ai-1.3.0.dist-info/METADATA,sha256=9uebeUcPKeXDi69pDtSoKp_lhlFi_rf49wUKY8fR9S4,5547
1973
- vellum_ai-1.3.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1974
- vellum_ai-1.3.0.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
1975
- vellum_ai-1.3.0.dist-info/RECORD,,
1980
+ vellum_ai-1.3.2.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
1981
+ vellum_ai-1.3.2.dist-info/METADATA,sha256=tnrvX2iEEP0vTsPk5wc2h5nOtdqyExs5bW8fBNV1-7U,5547
1982
+ vellum_ai-1.3.2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1983
+ vellum_ai-1.3.2.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
1984
+ vellum_ai-1.3.2.dist-info/RECORD,,
@@ -0,0 +1,81 @@
1
+ from vellum_ee.workflows.display.workflows.get_vellum_workflow_display_class import get_workflow_display
2
+
3
+ from tests.workflows.web_search.workflow import WebSearchWorkflow
4
+
5
+
6
+ def test_serialize_web_search_workflow():
7
+ # GIVEN a WebSearchWorkflow with a node that has various input types
8
+ # - query from workflow input
9
+ # - api_key from VellumSecretReference
10
+ # - num_results as a constant integer
11
+ # - location as a constant string
12
+
13
+ # WHEN we serialize the workflow through the display system
14
+ workflow_display = get_workflow_display(workflow_class=WebSearchWorkflow)
15
+ serialized_workflow: dict = workflow_display.serialize()
16
+
17
+ # THEN we should get a properly structured serialized workflow
18
+ assert serialized_workflow.keys() == {
19
+ "workflow_raw_data",
20
+ "input_variables",
21
+ "state_variables",
22
+ "output_variables",
23
+ }
24
+
25
+ # AND it should have input variables
26
+ input_variables = serialized_workflow["input_variables"]
27
+ assert len(input_variables) == 1
28
+ assert input_variables[0]["key"] == "search_query"
29
+ assert input_variables[0]["type"] == "STRING"
30
+
31
+ # AND it should have output variables
32
+ output_variables = serialized_workflow["output_variables"]
33
+ assert len(output_variables) == 2
34
+ output_keys = {var["key"] for var in output_variables}
35
+ assert output_keys == {"search_results", "result_urls"}
36
+
37
+ # AND the web search node should be serialized as a GENERIC type node
38
+ workflow_raw_data = serialized_workflow["workflow_raw_data"]
39
+ nodes = workflow_raw_data["nodes"]
40
+
41
+ web_search_node = next(
42
+ (
43
+ node
44
+ for node in nodes
45
+ if node and node.get("type") == "GENERIC" and node.get("base", {}).get("name") == "WebSearchNode"
46
+ ),
47
+ None,
48
+ )
49
+
50
+ assert web_search_node is not None, "WebSearchNode should be serialized as GENERIC type"
51
+
52
+ # AND it should have the correct base module reference
53
+ expected_base = {
54
+ "name": "WebSearchNode",
55
+ "module": ["vellum", "workflows", "nodes", "displayable", "web_search_node", "node"],
56
+ }
57
+ assert (
58
+ web_search_node["base"] == expected_base
59
+ ), f"Base mismatch. Expected: {expected_base}, Found: {web_search_node['base']}"
60
+
61
+ # AND it should have all four serializable attributes defined in our display class
62
+ web_search_attributes = web_search_node["attributes"]
63
+ attribute_names = {attr["name"] for attr in web_search_attributes}
64
+
65
+ # AND the attributes should match exactly what we defined in __serializable_inputs__
66
+ assert attribute_names == {"query", "api_key", "num_results", "location"}
67
+
68
+ # AND it should have all three expected outputs from WebSearchNode
69
+ assert {output["name"] for output in web_search_node["outputs"]} == {"text", "urls", "results"}
70
+
71
+ # AND each attribute should have the correct value type based on its source
72
+ attr_types_by_name = {attr["name"]: attr["value"]["type"] for attr in web_search_attributes}
73
+
74
+ # AND query should reference the workflow input
75
+ assert attr_types_by_name["query"] == "WORKFLOW_INPUT"
76
+ # AND api_key should reference a Vellum secret
77
+ assert attr_types_by_name["api_key"] == "VELLUM_SECRET"
78
+ # AND num_results should be a constant value
79
+ assert attr_types_by_name["num_results"] == "CONSTANT_VALUE"
80
+ # AND location should be a constant value
81
+ assert attr_types_by_name["location"] == "CONSTANT_VALUE"
@@ -26,6 +26,9 @@ def _should_mark_workflow_dynamic(event: WorkflowExecutionInitiatedEvent) -> boo
26
26
 
27
27
 
28
28
  def event_enricher(event: WorkflowExecutionInitiatedEvent) -> WorkflowExecutionInitiatedEvent:
29
+ if event.name != "workflow.execution.initiated":
30
+ return event
31
+
29
32
  workflow_definition = event.body.workflow_definition
30
33
  workflow_display = get_workflow_display(
31
34
  workflow_class=workflow_definition,