vellum-ai 1.1.2__py3-none-any.whl → 1.1.4__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 (693) hide show
  1. vellum/__init__.py +18 -0
  2. vellum/client/README.md +77 -0
  3. vellum/client/__init__.py +149 -600
  4. vellum/client/core/__init__.py +2 -0
  5. vellum/client/core/api_error.py +13 -5
  6. vellum/client/core/client_wrapper.py +16 -4
  7. vellum/client/core/force_multipart.py +16 -0
  8. vellum/client/core/http_client.py +70 -24
  9. vellum/client/core/http_response.py +19 -11
  10. vellum/client/core/pydantic_utilities.py +71 -114
  11. vellum/client/core/serialization.py +6 -1
  12. vellum/client/errors/__init__.py +2 -0
  13. vellum/client/errors/bad_request_error.py +4 -3
  14. vellum/client/errors/forbidden_error.py +4 -3
  15. vellum/client/errors/internal_server_error.py +4 -3
  16. vellum/client/errors/not_found_error.py +4 -3
  17. vellum/client/raw_client.py +1041 -128
  18. vellum/client/reference.md +692 -19
  19. vellum/client/resources/__init__.py +2 -0
  20. vellum/client/resources/ad_hoc/__init__.py +2 -0
  21. vellum/client/resources/ad_hoc/client.py +37 -195
  22. vellum/client/resources/ad_hoc/raw_client.py +322 -31
  23. vellum/client/resources/container_images/__init__.py +2 -0
  24. vellum/client/resources/container_images/client.py +26 -49
  25. vellum/client/resources/container_images/raw_client.py +23 -24
  26. vellum/client/resources/deployments/__init__.py +2 -0
  27. vellum/client/resources/deployments/client.py +55 -102
  28. vellum/client/resources/deployments/raw_client.py +73 -66
  29. vellum/client/resources/deployments/types/__init__.py +2 -0
  30. vellum/client/resources/document_indexes/__init__.py +2 -0
  31. vellum/client/resources/document_indexes/client.py +43 -100
  32. vellum/client/resources/document_indexes/raw_client.py +42 -43
  33. vellum/client/resources/document_indexes/types/__init__.py +2 -0
  34. vellum/client/resources/documents/__init__.py +2 -0
  35. vellum/client/resources/documents/client.py +29 -52
  36. vellum/client/resources/documents/raw_client.py +51 -44
  37. vellum/client/resources/folder_entities/__init__.py +2 -0
  38. vellum/client/resources/folder_entities/client.py +16 -21
  39. vellum/client/resources/folder_entities/raw_client.py +15 -16
  40. vellum/client/resources/folder_entities/types/__init__.py +2 -0
  41. vellum/client/resources/metric_definitions/__init__.py +2 -0
  42. vellum/client/resources/metric_definitions/client.py +16 -27
  43. vellum/client/resources/metric_definitions/raw_client.py +17 -18
  44. vellum/client/resources/ml_models/__init__.py +2 -0
  45. vellum/client/resources/ml_models/client.py +7 -14
  46. vellum/client/resources/ml_models/raw_client.py +11 -12
  47. vellum/client/resources/organizations/__init__.py +2 -0
  48. vellum/client/resources/organizations/client.py +7 -12
  49. vellum/client/resources/organizations/raw_client.py +10 -11
  50. vellum/client/resources/prompts/__init__.py +2 -0
  51. vellum/client/resources/prompts/client.py +12 -19
  52. vellum/client/resources/prompts/raw_client.py +40 -33
  53. vellum/client/resources/sandboxes/__init__.py +2 -0
  54. vellum/client/resources/sandboxes/client.py +17 -34
  55. vellum/client/resources/sandboxes/raw_client.py +20 -21
  56. vellum/client/resources/test_suite_runs/__init__.py +2 -0
  57. vellum/client/resources/test_suite_runs/client.py +19 -34
  58. vellum/client/resources/test_suite_runs/raw_client.py +20 -21
  59. vellum/client/resources/test_suites/__init__.py +2 -0
  60. vellum/client/resources/test_suites/client.py +26 -100
  61. vellum/client/resources/test_suites/raw_client.py +172 -21
  62. vellum/client/resources/workflow_deployments/__init__.py +2 -0
  63. vellum/client/resources/workflow_deployments/client.py +61 -120
  64. vellum/client/resources/workflow_deployments/raw_client.py +48 -49
  65. vellum/client/resources/workflow_deployments/types/__init__.py +2 -0
  66. vellum/client/resources/workflow_executions/__init__.py +2 -0
  67. vellum/client/resources/workflow_executions/client.py +8 -13
  68. vellum/client/resources/workflow_executions/raw_client.py +11 -12
  69. vellum/client/resources/workflow_sandboxes/__init__.py +2 -0
  70. vellum/client/resources/workflow_sandboxes/client.py +14 -23
  71. vellum/client/resources/workflow_sandboxes/raw_client.py +16 -17
  72. vellum/client/resources/workflow_sandboxes/types/__init__.py +2 -0
  73. vellum/client/resources/workflows/__init__.py +2 -0
  74. vellum/client/resources/workflows/client.py +16 -16
  75. vellum/client/resources/workflows/raw_client.py +75 -57
  76. vellum/client/resources/workspace_secrets/__init__.py +2 -0
  77. vellum/client/resources/workspace_secrets/client.py +11 -28
  78. vellum/client/resources/workspace_secrets/raw_client.py +15 -16
  79. vellum/client/resources/workspaces/__init__.py +2 -0
  80. vellum/client/resources/workspaces/client.py +7 -12
  81. vellum/client/resources/workspaces/raw_client.py +10 -11
  82. vellum/client/types/__init__.py +18 -0
  83. vellum/client/types/ad_hoc_execute_prompt_event.py +3 -2
  84. vellum/client/types/ad_hoc_expand_meta.py +2 -2
  85. vellum/client/types/ad_hoc_fulfilled_prompt_execution_meta.py +3 -3
  86. vellum/client/types/ad_hoc_initiated_prompt_execution_meta.py +2 -2
  87. vellum/client/types/ad_hoc_rejected_prompt_execution_meta.py +3 -3
  88. vellum/client/types/ad_hoc_streaming_prompt_execution_meta.py +2 -2
  89. vellum/client/types/api_node_result.py +3 -3
  90. vellum/client/types/api_node_result_data.py +4 -4
  91. vellum/client/types/api_request_parent_context.py +11 -11
  92. vellum/client/types/array_chat_message_content.py +3 -3
  93. vellum/client/types/array_chat_message_content_item.py +7 -4
  94. vellum/client/types/array_chat_message_content_item_request.py +7 -4
  95. vellum/client/types/array_chat_message_content_request.py +3 -3
  96. vellum/client/types/array_input.py +12 -6
  97. vellum/client/types/array_vellum_value.py +4 -4
  98. vellum/client/types/array_vellum_value_request.py +4 -4
  99. vellum/client/types/audio_chat_message_content.py +3 -3
  100. vellum/client/types/audio_chat_message_content_request.py +3 -3
  101. vellum/client/types/audio_prompt_block.py +4 -4
  102. vellum/client/types/audio_vellum_value.py +3 -3
  103. vellum/client/types/audio_vellum_value_request.py +3 -3
  104. vellum/client/types/base_output.py +2 -2
  105. vellum/client/types/basic_vectorizer_intfloat_multilingual_e_5_large.py +2 -2
  106. vellum/client/types/basic_vectorizer_intfloat_multilingual_e_5_large_request.py +2 -2
  107. vellum/client/types/basic_vectorizer_sentence_transformers_multi_qa_mpnet_base_cos_v_1.py +2 -2
  108. vellum/client/types/basic_vectorizer_sentence_transformers_multi_qa_mpnet_base_cos_v_1_request.py +2 -2
  109. vellum/client/types/basic_vectorizer_sentence_transformers_multi_qa_mpnet_base_dot_v_1.py +2 -2
  110. vellum/client/types/basic_vectorizer_sentence_transformers_multi_qa_mpnet_base_dot_v_1_request.py +2 -2
  111. vellum/client/types/chat_history_input.py +3 -3
  112. vellum/client/types/chat_history_input_request.py +3 -3
  113. vellum/client/types/chat_history_vellum_value.py +3 -3
  114. vellum/client/types/chat_history_vellum_value_request.py +3 -3
  115. vellum/client/types/chat_message.py +4 -4
  116. vellum/client/types/chat_message_content.py +7 -4
  117. vellum/client/types/chat_message_content_request.py +7 -4
  118. vellum/client/types/chat_message_prompt_block.py +7 -7
  119. vellum/client/types/chat_message_request.py +4 -4
  120. vellum/client/types/code_execution_node_array_result.py +11 -5
  121. vellum/client/types/code_execution_node_chat_history_result.py +3 -3
  122. vellum/client/types/code_execution_node_error_result.py +3 -3
  123. vellum/client/types/code_execution_node_function_call_result.py +3 -3
  124. vellum/client/types/code_execution_node_json_result.py +2 -2
  125. vellum/client/types/code_execution_node_number_result.py +2 -2
  126. vellum/client/types/code_execution_node_result.py +10 -4
  127. vellum/client/types/code_execution_node_result_data.py +10 -4
  128. vellum/client/types/code_execution_node_result_output.py +6 -5
  129. vellum/client/types/code_execution_node_search_results_result.py +3 -3
  130. vellum/client/types/code_execution_node_string_result.py +2 -2
  131. vellum/client/types/code_execution_package.py +2 -2
  132. vellum/client/types/code_executor_input.py +7 -6
  133. vellum/client/types/code_executor_response.py +11 -5
  134. vellum/client/types/code_executor_secret_input.py +3 -3
  135. vellum/client/types/code_resource_definition.py +3 -3
  136. vellum/client/types/compile_prompt_deployment_expand_meta_request.py +2 -2
  137. vellum/client/types/compile_prompt_meta.py +2 -2
  138. vellum/client/types/conditional_node_result.py +3 -3
  139. vellum/client/types/conditional_node_result_data.py +2 -2
  140. vellum/client/types/container_image_build_config.py +3 -3
  141. vellum/client/types/container_image_container_image_tag.py +2 -2
  142. vellum/client/types/container_image_read.py +5 -5
  143. vellum/client/types/create_test_suite_test_case_request.py +9 -3
  144. vellum/client/types/deployment_history_item.py +10 -4
  145. vellum/client/types/deployment_provider_payload_response.py +4 -4
  146. vellum/client/types/deployment_read.py +10 -4
  147. vellum/client/types/deployment_release_tag_deployment_history_item.py +2 -2
  148. vellum/client/types/deployment_release_tag_read.py +4 -4
  149. vellum/client/types/docker_service_token.py +2 -2
  150. vellum/client/types/document_chat_message_content.py +3 -3
  151. vellum/client/types/document_chat_message_content_request.py +3 -3
  152. vellum/client/types/document_document_to_document_index.py +3 -3
  153. vellum/client/types/document_index_chunking.py +1 -0
  154. vellum/client/types/document_index_chunking_request.py +1 -0
  155. vellum/client/types/document_index_indexing_config.py +4 -4
  156. vellum/client/types/document_index_indexing_config_request.py +4 -4
  157. vellum/client/types/document_index_read.py +4 -4
  158. vellum/client/types/document_prompt_block.py +4 -4
  159. vellum/client/types/document_read.py +4 -4
  160. vellum/client/types/document_vellum_value.py +3 -3
  161. vellum/client/types/document_vellum_value_request.py +3 -3
  162. vellum/client/types/enriched_normalized_completion.py +3 -3
  163. vellum/client/types/ephemeral_prompt_cache_config.py +3 -3
  164. vellum/client/types/error_input.py +3 -3
  165. vellum/client/types/error_vellum_value.py +3 -3
  166. vellum/client/types/error_vellum_value_request.py +3 -3
  167. vellum/client/types/execute_api_request_bearer_token.py +1 -0
  168. vellum/client/types/execute_api_request_headers_value.py +1 -0
  169. vellum/client/types/execute_api_response.py +5 -5
  170. vellum/client/types/execute_prompt_event.py +3 -2
  171. vellum/client/types/execute_prompt_response.py +1 -0
  172. vellum/client/types/execute_workflow_response.py +10 -4
  173. vellum/client/types/execute_workflow_workflow_result_event.py +1 -0
  174. vellum/client/types/execution_array_vellum_value.py +12 -6
  175. vellum/client/types/execution_chat_history_vellum_value.py +3 -3
  176. vellum/client/types/execution_error_vellum_value.py +3 -3
  177. vellum/client/types/execution_function_call_vellum_value.py +3 -3
  178. vellum/client/types/execution_json_vellum_value.py +3 -3
  179. vellum/client/types/execution_number_vellum_value.py +3 -3
  180. vellum/client/types/execution_search_results_vellum_value.py +3 -3
  181. vellum/client/types/execution_string_vellum_value.py +3 -3
  182. vellum/client/types/execution_thinking_vellum_value.py +3 -3
  183. vellum/client/types/execution_vellum_value.py +6 -5
  184. vellum/client/types/external_input_descriptor.py +3 -3
  185. vellum/client/types/external_parent_context.py +11 -11
  186. vellum/client/types/external_test_case_execution.py +10 -4
  187. vellum/client/types/external_test_case_execution_request.py +10 -4
  188. vellum/client/types/fast_embed_vectorizer_baai_bge_small_en_v_15.py +2 -2
  189. vellum/client/types/fast_embed_vectorizer_baai_bge_small_en_v_15_request.py +2 -2
  190. vellum/client/types/folder_entity.py +4 -3
  191. vellum/client/types/folder_entity_dataset.py +3 -3
  192. vellum/client/types/folder_entity_dataset_data.py +3 -3
  193. vellum/client/types/folder_entity_document_index.py +3 -3
  194. vellum/client/types/folder_entity_document_index_data.py +4 -4
  195. vellum/client/types/folder_entity_folder.py +3 -3
  196. vellum/client/types/folder_entity_folder_data.py +2 -2
  197. vellum/client/types/folder_entity_prompt_sandbox.py +3 -3
  198. vellum/client/types/folder_entity_prompt_sandbox_data.py +3 -3
  199. vellum/client/types/folder_entity_test_suite.py +3 -3
  200. vellum/client/types/folder_entity_test_suite_data.py +3 -3
  201. vellum/client/types/folder_entity_workflow_sandbox.py +3 -3
  202. vellum/client/types/folder_entity_workflow_sandbox_data.py +3 -3
  203. vellum/client/types/fulfilled_ad_hoc_execute_prompt_event.py +4 -4
  204. vellum/client/types/fulfilled_execute_prompt_event.py +4 -4
  205. vellum/client/types/fulfilled_execute_prompt_response.py +3 -3
  206. vellum/client/types/fulfilled_execute_workflow_workflow_result_event.py +11 -5
  207. vellum/client/types/fulfilled_prompt_execution_meta.py +3 -3
  208. vellum/client/types/fulfilled_workflow_node_result_event.py +12 -6
  209. vellum/client/types/function_call.py +2 -2
  210. vellum/client/types/function_call_chat_message_content.py +3 -3
  211. vellum/client/types/function_call_chat_message_content_request.py +3 -3
  212. vellum/client/types/function_call_chat_message_content_value.py +2 -2
  213. vellum/client/types/function_call_chat_message_content_value_request.py +2 -2
  214. vellum/client/types/function_call_input.py +3 -3
  215. vellum/client/types/function_call_prompt_block.py +4 -4
  216. vellum/client/types/function_call_request.py +2 -2
  217. vellum/client/types/function_call_vellum_value.py +3 -3
  218. vellum/client/types/function_call_vellum_value_request.py +3 -3
  219. vellum/client/types/function_definition.py +4 -4
  220. vellum/client/types/generate_options_request.py +3 -3
  221. vellum/client/types/generate_request.py +2 -2
  222. vellum/client/types/generate_response.py +3 -3
  223. vellum/client/types/generate_result.py +3 -3
  224. vellum/client/types/generate_result_data.py +3 -3
  225. vellum/client/types/generate_result_error.py +3 -3
  226. vellum/client/types/generate_stream_response.py +3 -3
  227. vellum/client/types/generate_stream_result.py +4 -4
  228. vellum/client/types/generate_stream_result_data.py +3 -3
  229. vellum/client/types/google_vertex_ai_vectorizer_config.py +2 -2
  230. vellum/client/types/google_vertex_ai_vectorizer_config_request.py +2 -2
  231. vellum/client/types/google_vertex_ai_vectorizer_gemini_embedding_001.py +3 -3
  232. vellum/client/types/google_vertex_ai_vectorizer_gemini_embedding_001_request.py +3 -3
  233. vellum/client/types/google_vertex_ai_vectorizer_text_embedding_004.py +3 -3
  234. vellum/client/types/google_vertex_ai_vectorizer_text_embedding_004_request.py +3 -3
  235. vellum/client/types/google_vertex_ai_vectorizer_text_multilingual_embedding_002.py +3 -3
  236. vellum/client/types/google_vertex_ai_vectorizer_text_multilingual_embedding_002_request.py +3 -3
  237. vellum/client/types/hkunlp_instructor_xl_vectorizer.py +3 -3
  238. vellum/client/types/hkunlp_instructor_xl_vectorizer_request.py +3 -3
  239. vellum/client/types/image_chat_message_content.py +3 -3
  240. vellum/client/types/image_chat_message_content_request.py +3 -3
  241. vellum/client/types/image_prompt_block.py +4 -4
  242. vellum/client/types/image_vellum_value.py +3 -3
  243. vellum/client/types/image_vellum_value_request.py +3 -3
  244. vellum/client/types/indexing_config_vectorizer.py +7 -6
  245. vellum/client/types/indexing_config_vectorizer_request.py +7 -6
  246. vellum/client/types/initiated_ad_hoc_execute_prompt_event.py +3 -3
  247. vellum/client/types/initiated_execute_prompt_event.py +3 -3
  248. vellum/client/types/initiated_prompt_execution_meta.py +2 -2
  249. vellum/client/types/initiated_workflow_node_result_event.py +12 -6
  250. vellum/client/types/instructor_vectorizer_config.py +2 -2
  251. vellum/client/types/instructor_vectorizer_config_request.py +2 -2
  252. vellum/client/types/invoked_port.py +2 -2
  253. vellum/client/types/jinja_prompt_block.py +4 -4
  254. vellum/client/types/json_input.py +3 -3
  255. vellum/client/types/json_input_request.py +3 -3
  256. vellum/client/types/json_vellum_value.py +2 -2
  257. vellum/client/types/json_vellum_value_request.py +2 -2
  258. vellum/client/types/map_node_result.py +3 -3
  259. vellum/client/types/map_node_result_data.py +3 -3
  260. vellum/client/types/merge_node_result.py +3 -3
  261. vellum/client/types/merge_node_result_data.py +2 -2
  262. vellum/client/types/metadata_filter_config_request.py +12 -6
  263. vellum/client/types/metadata_filter_rule_request.py +5 -5
  264. vellum/client/types/metadata_filters_request.py +1 -0
  265. vellum/client/types/metric_definition_execution.py +10 -4
  266. vellum/client/types/metric_definition_history_item.py +10 -4
  267. vellum/client/types/metric_definition_input.py +3 -2
  268. vellum/client/types/metric_node_result.py +2 -2
  269. vellum/client/types/ml_model_read.py +6 -3
  270. vellum/client/types/ml_model_usage.py +2 -2
  271. vellum/client/types/ml_model_usage_wrapper.py +3 -3
  272. vellum/client/types/named_scenario_input_chat_history_variable_value_request.py +3 -3
  273. vellum/client/types/named_scenario_input_json_variable_value_request.py +2 -2
  274. vellum/client/types/named_scenario_input_request.py +3 -2
  275. vellum/client/types/named_scenario_input_string_variable_value_request.py +2 -2
  276. vellum/client/types/named_test_case_array_variable_value.py +11 -5
  277. vellum/client/types/named_test_case_array_variable_value_request.py +11 -5
  278. vellum/client/types/named_test_case_chat_history_variable_value.py +3 -3
  279. vellum/client/types/named_test_case_chat_history_variable_value_request.py +3 -3
  280. vellum/client/types/named_test_case_error_variable_value.py +3 -3
  281. vellum/client/types/named_test_case_error_variable_value_request.py +3 -3
  282. vellum/client/types/named_test_case_function_call_variable_value.py +3 -3
  283. vellum/client/types/named_test_case_function_call_variable_value_request.py +3 -3
  284. vellum/client/types/named_test_case_json_variable_value.py +2 -2
  285. vellum/client/types/named_test_case_json_variable_value_request.py +2 -2
  286. vellum/client/types/named_test_case_number_variable_value.py +2 -2
  287. vellum/client/types/named_test_case_number_variable_value_request.py +2 -2
  288. vellum/client/types/named_test_case_search_results_variable_value.py +3 -3
  289. vellum/client/types/named_test_case_search_results_variable_value_request.py +3 -3
  290. vellum/client/types/named_test_case_string_variable_value.py +2 -2
  291. vellum/client/types/named_test_case_string_variable_value_request.py +2 -2
  292. vellum/client/types/named_test_case_variable_value.py +6 -5
  293. vellum/client/types/named_test_case_variable_value_request.py +6 -5
  294. vellum/client/types/node_execution_fulfilled_body.py +4 -4
  295. vellum/client/types/node_execution_fulfilled_event.py +22 -16
  296. vellum/client/types/node_execution_initiated_body.py +3 -3
  297. vellum/client/types/node_execution_initiated_event.py +22 -16
  298. vellum/client/types/node_execution_paused_body.py +3 -3
  299. vellum/client/types/node_execution_paused_event.py +22 -16
  300. vellum/client/types/node_execution_rejected_body.py +4 -4
  301. vellum/client/types/node_execution_rejected_event.py +22 -16
  302. vellum/client/types/node_execution_resumed_body.py +3 -3
  303. vellum/client/types/node_execution_resumed_event.py +22 -16
  304. vellum/client/types/node_execution_span.py +21 -13
  305. vellum/client/types/node_execution_span_attributes.py +2 -2
  306. vellum/client/types/node_execution_streaming_body.py +4 -4
  307. vellum/client/types/node_execution_streaming_event.py +22 -16
  308. vellum/client/types/node_input_compiled_array_value.py +11 -5
  309. vellum/client/types/node_input_compiled_chat_history_value.py +3 -3
  310. vellum/client/types/node_input_compiled_error_value.py +3 -3
  311. vellum/client/types/node_input_compiled_function_call_value.py +3 -3
  312. vellum/client/types/node_input_compiled_json_value.py +2 -2
  313. vellum/client/types/node_input_compiled_number_value.py +2 -2
  314. vellum/client/types/node_input_compiled_search_results_value.py +3 -3
  315. vellum/client/types/node_input_compiled_secret_value.py +3 -3
  316. vellum/client/types/node_input_compiled_string_value.py +2 -2
  317. vellum/client/types/node_input_variable_compiled_value.py +6 -5
  318. vellum/client/types/node_output_compiled_array_value.py +12 -6
  319. vellum/client/types/node_output_compiled_chat_history_value.py +3 -3
  320. vellum/client/types/node_output_compiled_error_value.py +3 -3
  321. vellum/client/types/node_output_compiled_function_call_value.py +3 -3
  322. vellum/client/types/node_output_compiled_json_value.py +3 -3
  323. vellum/client/types/node_output_compiled_number_value.py +3 -3
  324. vellum/client/types/node_output_compiled_search_results_value.py +3 -3
  325. vellum/client/types/node_output_compiled_string_value.py +3 -3
  326. vellum/client/types/node_output_compiled_thinking_value.py +3 -3
  327. vellum/client/types/node_output_compiled_value.py +6 -5
  328. vellum/client/types/node_parent_context.py +12 -12
  329. vellum/client/types/normalized_log_probs.py +3 -3
  330. vellum/client/types/normalized_token_log_probs.py +2 -2
  331. vellum/client/types/number_input.py +3 -3
  332. vellum/client/types/number_vellum_value.py +2 -2
  333. vellum/client/types/number_vellum_value_request.py +2 -2
  334. vellum/client/types/open_ai_vectorizer_config.py +3 -3
  335. vellum/client/types/open_ai_vectorizer_config_request.py +3 -3
  336. vellum/client/types/open_ai_vectorizer_text_embedding_3_large.py +3 -3
  337. vellum/client/types/open_ai_vectorizer_text_embedding_3_large_request.py +3 -3
  338. vellum/client/types/open_ai_vectorizer_text_embedding_3_small.py +3 -3
  339. vellum/client/types/open_ai_vectorizer_text_embedding_3_small_request.py +3 -3
  340. vellum/client/types/open_ai_vectorizer_text_embedding_ada_002.py +3 -3
  341. vellum/client/types/open_ai_vectorizer_text_embedding_ada_002_request.py +3 -3
  342. vellum/client/types/organization_read.py +4 -4
  343. vellum/client/types/paginated_container_image_read_list.py +3 -3
  344. vellum/client/types/paginated_deployment_release_tag_read_list.py +3 -3
  345. vellum/client/types/paginated_document_index_read_list.py +3 -3
  346. vellum/client/types/paginated_folder_entity_list.py +3 -3
  347. vellum/client/types/paginated_slim_deployment_read_list.py +10 -4
  348. vellum/client/types/paginated_slim_document_list.py +3 -3
  349. vellum/client/types/paginated_slim_workflow_deployment_list.py +10 -4
  350. vellum/client/types/paginated_test_suite_run_execution_list.py +10 -4
  351. vellum/client/types/paginated_test_suite_test_case_list.py +10 -4
  352. vellum/client/types/paginated_workflow_release_tag_read_list.py +3 -3
  353. vellum/client/types/paginated_workflow_sandbox_example_list.py +3 -3
  354. vellum/client/types/parent_context.py +5 -5
  355. vellum/client/types/pdf_search_result_meta_source.py +2 -2
  356. vellum/client/types/pdf_search_result_meta_source_request.py +2 -2
  357. vellum/client/types/plain_text_prompt_block.py +4 -4
  358. vellum/client/types/price.py +3 -3
  359. vellum/client/types/prompt_block.py +9 -6
  360. vellum/client/types/prompt_deployment_expand_meta_request.py +2 -2
  361. vellum/client/types/prompt_deployment_input_request.py +3 -2
  362. vellum/client/types/prompt_deployment_parent_context.py +11 -11
  363. vellum/client/types/prompt_deployment_release.py +6 -6
  364. vellum/client/types/prompt_deployment_release_prompt_deployment.py +2 -2
  365. vellum/client/types/prompt_deployment_release_prompt_version.py +4 -4
  366. vellum/client/types/prompt_exec_config.py +15 -9
  367. vellum/client/types/prompt_execution_meta.py +3 -3
  368. vellum/client/types/prompt_node_execution_meta.py +3 -3
  369. vellum/client/types/prompt_node_result.py +3 -3
  370. vellum/client/types/prompt_node_result_data.py +3 -3
  371. vellum/client/types/prompt_output.py +3 -2
  372. vellum/client/types/prompt_parameters.py +2 -2
  373. vellum/client/types/prompt_push_response.py +2 -2
  374. vellum/client/types/prompt_request_chat_history_input.py +3 -3
  375. vellum/client/types/prompt_request_input.py +3 -2
  376. vellum/client/types/prompt_request_json_input.py +3 -3
  377. vellum/client/types/prompt_request_string_input.py +3 -3
  378. vellum/client/types/prompt_settings.py +2 -2
  379. vellum/client/types/prompt_version_build_config_sandbox.py +2 -2
  380. vellum/client/types/raw_prompt_execution_overrides_request.py +2 -2
  381. vellum/client/types/reducto_chunker_config.py +2 -2
  382. vellum/client/types/reducto_chunker_config_request.py +2 -2
  383. vellum/client/types/reducto_chunking.py +3 -3
  384. vellum/client/types/reducto_chunking_request.py +3 -3
  385. vellum/client/types/rejected_ad_hoc_execute_prompt_event.py +4 -4
  386. vellum/client/types/rejected_execute_prompt_event.py +4 -4
  387. vellum/client/types/rejected_execute_prompt_response.py +3 -3
  388. vellum/client/types/rejected_execute_workflow_workflow_result_event.py +4 -4
  389. vellum/client/types/rejected_prompt_execution_meta.py +3 -3
  390. vellum/client/types/rejected_workflow_node_result_event.py +12 -6
  391. vellum/client/types/release_created_by.py +2 -2
  392. vellum/client/types/release_environment.py +2 -2
  393. vellum/client/types/release_release_tag.py +3 -3
  394. vellum/client/types/release_review_reviewer.py +2 -2
  395. vellum/client/types/release_tag_release.py +2 -2
  396. vellum/client/types/replace_test_suite_test_case_request.py +9 -3
  397. vellum/client/types/rich_text_child_block.py +2 -1
  398. vellum/client/types/rich_text_prompt_block.py +4 -4
  399. vellum/client/types/sandbox_scenario.py +3 -3
  400. vellum/client/types/scenario_input.py +3 -2
  401. vellum/client/types/scenario_input_chat_history_variable_value.py +3 -3
  402. vellum/client/types/scenario_input_json_variable_value.py +2 -2
  403. vellum/client/types/scenario_input_string_variable_value.py +2 -2
  404. vellum/client/types/search_filters_request.py +11 -5
  405. vellum/client/types/search_node_result.py +3 -3
  406. vellum/client/types/search_node_result_data.py +3 -3
  407. vellum/client/types/search_request_options_request.py +13 -7
  408. vellum/client/types/search_response.py +3 -3
  409. vellum/client/types/search_result.py +3 -3
  410. vellum/client/types/search_result_document.py +2 -2
  411. vellum/client/types/search_result_document_request.py +2 -2
  412. vellum/client/types/search_result_merging_request.py +2 -2
  413. vellum/client/types/search_result_meta.py +3 -3
  414. vellum/client/types/search_result_meta_request.py +3 -3
  415. vellum/client/types/search_result_request.py +3 -3
  416. vellum/client/types/search_results_input.py +3 -3
  417. vellum/client/types/search_results_vellum_value.py +3 -3
  418. vellum/client/types/search_results_vellum_value_request.py +3 -3
  419. vellum/client/types/search_weights_request.py +2 -2
  420. vellum/client/types/sentence_chunker_config.py +2 -2
  421. vellum/client/types/sentence_chunker_config_request.py +2 -2
  422. vellum/client/types/sentence_chunking.py +3 -3
  423. vellum/client/types/sentence_chunking_request.py +3 -3
  424. vellum/client/types/slim_deployment_read.py +10 -4
  425. vellum/client/types/slim_document.py +5 -5
  426. vellum/client/types/slim_document_document_to_document_index.py +3 -3
  427. vellum/client/types/slim_release_review.py +4 -4
  428. vellum/client/types/slim_workflow_deployment.py +11 -5
  429. vellum/client/types/slim_workflow_execution_read.py +21 -15
  430. vellum/client/types/span_link.py +12 -12
  431. vellum/client/types/streaming_ad_hoc_execute_prompt_event.py +4 -4
  432. vellum/client/types/streaming_execute_prompt_event.py +3 -3
  433. vellum/client/types/streaming_prompt_execution_meta.py +2 -2
  434. vellum/client/types/streaming_workflow_node_result_event.py +12 -6
  435. vellum/client/types/string_chat_message_content.py +2 -2
  436. vellum/client/types/string_chat_message_content_request.py +2 -2
  437. vellum/client/types/string_input.py +3 -3
  438. vellum/client/types/string_input_request.py +3 -3
  439. vellum/client/types/string_vellum_value.py +2 -2
  440. vellum/client/types/string_vellum_value_request.py +2 -2
  441. vellum/client/types/submit_completion_actual_request.py +3 -3
  442. vellum/client/types/submit_workflow_execution_actual_request.py +3 -2
  443. vellum/client/types/subworkflow_node_result.py +3 -3
  444. vellum/client/types/subworkflow_node_result_data.py +2 -2
  445. vellum/client/types/templating_node_array_result.py +11 -5
  446. vellum/client/types/templating_node_chat_history_result.py +3 -3
  447. vellum/client/types/templating_node_error_result.py +3 -3
  448. vellum/client/types/templating_node_function_call_result.py +3 -3
  449. vellum/client/types/templating_node_json_result.py +2 -2
  450. vellum/client/types/templating_node_number_result.py +2 -2
  451. vellum/client/types/templating_node_result.py +10 -4
  452. vellum/client/types/templating_node_result_data.py +10 -4
  453. vellum/client/types/templating_node_result_output.py +6 -5
  454. vellum/client/types/templating_node_search_results_result.py +3 -3
  455. vellum/client/types/templating_node_string_result.py +2 -2
  456. vellum/client/types/terminal_node_array_result.py +11 -5
  457. vellum/client/types/terminal_node_chat_history_result.py +2 -2
  458. vellum/client/types/terminal_node_error_result.py +2 -2
  459. vellum/client/types/terminal_node_function_call_result.py +2 -2
  460. vellum/client/types/terminal_node_json_result.py +2 -2
  461. vellum/client/types/terminal_node_number_result.py +2 -2
  462. vellum/client/types/terminal_node_result.py +10 -4
  463. vellum/client/types/terminal_node_result_data.py +10 -4
  464. vellum/client/types/terminal_node_result_output.py +6 -5
  465. vellum/client/types/terminal_node_search_results_result.py +2 -2
  466. vellum/client/types/terminal_node_string_result.py +2 -2
  467. vellum/client/types/test_case_array_variable_value.py +11 -5
  468. vellum/client/types/test_case_chat_history_variable_value.py +3 -3
  469. vellum/client/types/test_case_error_variable_value.py +3 -3
  470. vellum/client/types/test_case_function_call_variable_value.py +3 -3
  471. vellum/client/types/test_case_json_variable_value.py +2 -2
  472. vellum/client/types/test_case_number_variable_value.py +2 -2
  473. vellum/client/types/test_case_search_results_variable_value.py +3 -3
  474. vellum/client/types/test_case_string_variable_value.py +2 -2
  475. vellum/client/types/test_case_variable_value.py +6 -5
  476. vellum/client/types/test_suite_run_deployment_release_tag_exec_config.py +3 -3
  477. vellum/client/types/test_suite_run_deployment_release_tag_exec_config_data.py +3 -3
  478. vellum/client/types/test_suite_run_deployment_release_tag_exec_config_data_request.py +3 -3
  479. vellum/client/types/test_suite_run_deployment_release_tag_exec_config_request.py +3 -3
  480. vellum/client/types/test_suite_run_exec_config.py +2 -1
  481. vellum/client/types/test_suite_run_exec_config_request.py +2 -1
  482. vellum/client/types/test_suite_run_execution.py +11 -5
  483. vellum/client/types/test_suite_run_execution_array_output.py +11 -5
  484. vellum/client/types/test_suite_run_execution_chat_history_output.py +3 -3
  485. vellum/client/types/test_suite_run_execution_error_output.py +3 -3
  486. vellum/client/types/test_suite_run_execution_function_call_output.py +3 -3
  487. vellum/client/types/test_suite_run_execution_json_output.py +2 -2
  488. vellum/client/types/test_suite_run_execution_metric_definition.py +2 -2
  489. vellum/client/types/test_suite_run_execution_metric_result.py +11 -5
  490. vellum/client/types/test_suite_run_execution_number_output.py +2 -2
  491. vellum/client/types/test_suite_run_execution_output.py +6 -5
  492. vellum/client/types/test_suite_run_execution_search_results_output.py +3 -3
  493. vellum/client/types/test_suite_run_execution_string_output.py +2 -2
  494. vellum/client/types/test_suite_run_external_exec_config.py +10 -4
  495. vellum/client/types/test_suite_run_external_exec_config_data.py +10 -4
  496. vellum/client/types/test_suite_run_external_exec_config_data_request.py +10 -4
  497. vellum/client/types/test_suite_run_external_exec_config_request.py +10 -4
  498. vellum/client/types/test_suite_run_metric_array_output.py +11 -5
  499. vellum/client/types/test_suite_run_metric_error_output.py +3 -3
  500. vellum/client/types/test_suite_run_metric_json_output.py +2 -2
  501. vellum/client/types/test_suite_run_metric_number_output.py +2 -2
  502. vellum/client/types/test_suite_run_metric_output.py +5 -4
  503. vellum/client/types/test_suite_run_metric_string_output.py +2 -2
  504. vellum/client/types/test_suite_run_progress.py +2 -2
  505. vellum/client/types/test_suite_run_prompt_sandbox_exec_config_data_request.py +3 -3
  506. vellum/client/types/test_suite_run_prompt_sandbox_exec_config_request.py +3 -3
  507. vellum/client/types/test_suite_run_prompt_sandbox_history_item_exec_config.py +3 -3
  508. vellum/client/types/test_suite_run_prompt_sandbox_history_item_exec_config_data.py +3 -3
  509. vellum/client/types/test_suite_run_prompt_sandbox_history_item_exec_config_data_request.py +3 -3
  510. vellum/client/types/test_suite_run_prompt_sandbox_history_item_exec_config_request.py +3 -3
  511. vellum/client/types/test_suite_run_read.py +12 -6
  512. vellum/client/types/test_suite_run_test_suite.py +2 -2
  513. vellum/client/types/test_suite_run_workflow_release_tag_exec_config.py +3 -3
  514. vellum/client/types/test_suite_run_workflow_release_tag_exec_config_data.py +3 -3
  515. vellum/client/types/test_suite_run_workflow_release_tag_exec_config_data_request.py +3 -3
  516. vellum/client/types/test_suite_run_workflow_release_tag_exec_config_request.py +3 -3
  517. vellum/client/types/test_suite_run_workflow_sandbox_exec_config_data_request.py +3 -3
  518. vellum/client/types/test_suite_run_workflow_sandbox_exec_config_request.py +3 -3
  519. vellum/client/types/test_suite_run_workflow_sandbox_history_item_exec_config.py +3 -3
  520. vellum/client/types/test_suite_run_workflow_sandbox_history_item_exec_config_data.py +3 -3
  521. vellum/client/types/test_suite_run_workflow_sandbox_history_item_exec_config_data_request.py +3 -3
  522. vellum/client/types/test_suite_run_workflow_sandbox_history_item_exec_config_request.py +3 -3
  523. vellum/client/types/test_suite_test_case.py +10 -4
  524. vellum/client/types/test_suite_test_case_bulk_operation_request.py +2 -1
  525. vellum/client/types/test_suite_test_case_bulk_result.py +2 -1
  526. vellum/client/types/test_suite_test_case_create_bulk_operation_request.py +10 -4
  527. vellum/client/types/test_suite_test_case_created_bulk_result.py +3 -3
  528. vellum/client/types/test_suite_test_case_created_bulk_result_data.py +2 -2
  529. vellum/client/types/test_suite_test_case_delete_bulk_operation_data_request.py +2 -2
  530. vellum/client/types/test_suite_test_case_delete_bulk_operation_request.py +3 -3
  531. vellum/client/types/test_suite_test_case_deleted_bulk_result.py +3 -3
  532. vellum/client/types/test_suite_test_case_deleted_bulk_result_data.py +2 -2
  533. vellum/client/types/test_suite_test_case_rejected_bulk_result.py +2 -2
  534. vellum/client/types/test_suite_test_case_replace_bulk_operation_request.py +10 -4
  535. vellum/client/types/test_suite_test_case_replaced_bulk_result.py +3 -3
  536. vellum/client/types/test_suite_test_case_replaced_bulk_result_data.py +2 -2
  537. vellum/client/types/test_suite_test_case_upsert_bulk_operation_request.py +10 -4
  538. vellum/client/types/thinking_vellum_value.py +3 -3
  539. vellum/client/types/thinking_vellum_value_request.py +3 -3
  540. vellum/client/types/token_overlapping_window_chunker_config.py +2 -2
  541. vellum/client/types/token_overlapping_window_chunker_config_request.py +2 -2
  542. vellum/client/types/token_overlapping_window_chunking.py +3 -3
  543. vellum/client/types/token_overlapping_window_chunking_request.py +3 -3
  544. vellum/client/types/upload_document_response.py +3 -3
  545. vellum/client/types/upsert_test_suite_test_case_request.py +9 -3
  546. vellum/client/types/variable_prompt_block.py +4 -4
  547. vellum/client/types/vellum_audio.py +3 -3
  548. vellum/client/types/vellum_audio_request.py +3 -3
  549. vellum/client/types/vellum_code_resource_definition.py +2 -2
  550. vellum/client/types/vellum_document.py +2 -2
  551. vellum/client/types/vellum_document_request.py +2 -2
  552. vellum/client/types/vellum_error.py +3 -3
  553. vellum/client/types/vellum_error_request.py +3 -3
  554. vellum/client/types/vellum_image.py +2 -2
  555. vellum/client/types/vellum_image_request.py +2 -2
  556. vellum/client/types/vellum_node_execution_event.py +4 -3
  557. vellum/client/types/vellum_sdk_error.py +3 -3
  558. vellum/client/types/vellum_secret.py +2 -2
  559. vellum/client/types/vellum_span.py +2 -1
  560. vellum/client/types/vellum_value.py +11 -8
  561. vellum/client/types/vellum_value_logical_condition_group_request.py +6 -6
  562. vellum/client/types/vellum_value_logical_condition_request.py +13 -7
  563. vellum/client/types/vellum_value_logical_expression_request.py +2 -1
  564. vellum/client/types/vellum_value_request.py +11 -8
  565. vellum/client/types/vellum_variable.py +13 -7
  566. vellum/client/types/vellum_variable_extensions.py +2 -2
  567. vellum/client/types/vellum_variable_type.py +2 -1
  568. vellum/client/types/vellum_video.py +24 -0
  569. vellum/client/types/vellum_video_request.py +24 -0
  570. vellum/client/types/vellum_workflow_execution_event.py +4 -3
  571. vellum/client/types/video_chat_message_content.py +25 -0
  572. vellum/client/types/video_chat_message_content_request.py +25 -0
  573. vellum/client/types/video_prompt_block.py +29 -0
  574. vellum/client/types/video_vellum_value.py +25 -0
  575. vellum/client/types/video_vellum_value_request.py +25 -0
  576. vellum/client/types/workflow_deployment_event_executions_response.py +18 -12
  577. vellum/client/types/workflow_deployment_history_item.py +10 -4
  578. vellum/client/types/workflow_deployment_parent_context.py +11 -11
  579. vellum/client/types/workflow_deployment_read.py +11 -5
  580. vellum/client/types/workflow_deployment_release.py +13 -7
  581. vellum/client/types/workflow_deployment_release_workflow_deployment.py +2 -2
  582. vellum/client/types/workflow_deployment_release_workflow_version.py +10 -4
  583. vellum/client/types/workflow_error.py +1 -0
  584. vellum/client/types/workflow_event_error.py +3 -3
  585. vellum/client/types/workflow_event_execution_read.py +22 -16
  586. vellum/client/types/workflow_execution_actual.py +10 -4
  587. vellum/client/types/workflow_execution_actual_chat_history_request.py +2 -2
  588. vellum/client/types/workflow_execution_actual_json_request.py +2 -2
  589. vellum/client/types/workflow_execution_actual_string_request.py +2 -2
  590. vellum/client/types/workflow_execution_detail.py +22 -16
  591. vellum/client/types/workflow_execution_fulfilled_body.py +3 -3
  592. vellum/client/types/workflow_execution_fulfilled_event.py +22 -16
  593. vellum/client/types/workflow_execution_initiated_body.py +3 -3
  594. vellum/client/types/workflow_execution_initiated_event.py +22 -16
  595. vellum/client/types/workflow_execution_node_result_event.py +10 -4
  596. vellum/client/types/workflow_execution_paused_body.py +4 -4
  597. vellum/client/types/workflow_execution_paused_event.py +22 -16
  598. vellum/client/types/workflow_execution_rejected_body.py +4 -4
  599. vellum/client/types/workflow_execution_rejected_event.py +22 -16
  600. vellum/client/types/workflow_execution_resumed_body.py +3 -3
  601. vellum/client/types/workflow_execution_resumed_event.py +22 -16
  602. vellum/client/types/workflow_execution_snapshotted_body.py +3 -3
  603. vellum/client/types/workflow_execution_snapshotted_event.py +22 -16
  604. vellum/client/types/workflow_execution_span.py +20 -12
  605. vellum/client/types/workflow_execution_span_attributes.py +2 -2
  606. vellum/client/types/workflow_execution_streaming_body.py +4 -4
  607. vellum/client/types/workflow_execution_streaming_event.py +22 -16
  608. vellum/client/types/workflow_execution_usage_calculation_error.py +3 -3
  609. vellum/client/types/workflow_execution_usage_calculation_fulfilled_body.py +22 -0
  610. vellum/client/types/workflow_execution_usage_result.py +3 -3
  611. vellum/client/types/workflow_execution_view_online_eval_metric_result.py +10 -4
  612. vellum/client/types/workflow_execution_workflow_result_event.py +10 -4
  613. vellum/client/types/workflow_expand_meta_request.py +2 -2
  614. vellum/client/types/workflow_initialization_error.py +2 -2
  615. vellum/client/types/workflow_node_result_data.py +8 -7
  616. vellum/client/types/workflow_node_result_event.py +3 -2
  617. vellum/client/types/workflow_output.py +6 -5
  618. vellum/client/types/workflow_output_array.py +12 -6
  619. vellum/client/types/workflow_output_chat_history.py +3 -3
  620. vellum/client/types/workflow_output_error.py +3 -3
  621. vellum/client/types/workflow_output_function_call.py +3 -3
  622. vellum/client/types/workflow_output_image.py +3 -3
  623. vellum/client/types/workflow_output_json.py +3 -3
  624. vellum/client/types/workflow_output_number.py +3 -3
  625. vellum/client/types/workflow_output_search_results.py +3 -3
  626. vellum/client/types/workflow_output_string.py +3 -3
  627. vellum/client/types/workflow_parent_context.py +12 -12
  628. vellum/client/types/workflow_push_deployment_config_request.py +2 -2
  629. vellum/client/types/workflow_push_response.py +2 -2
  630. vellum/client/types/workflow_release_tag_read.py +4 -4
  631. vellum/client/types/workflow_release_tag_workflow_deployment_history_item.py +2 -2
  632. vellum/client/types/workflow_request_chat_history_input_request.py +3 -3
  633. vellum/client/types/workflow_request_input_request.py +3 -2
  634. vellum/client/types/workflow_request_json_input_request.py +3 -3
  635. vellum/client/types/workflow_request_number_input_request.py +3 -3
  636. vellum/client/types/workflow_request_string_input_request.py +3 -3
  637. vellum/client/types/workflow_result_event.py +13 -7
  638. vellum/client/types/workflow_result_event_output_data.py +7 -6
  639. vellum/client/types/workflow_result_event_output_data_array.py +12 -6
  640. vellum/client/types/workflow_result_event_output_data_chat_history.py +3 -3
  641. vellum/client/types/workflow_result_event_output_data_error.py +3 -3
  642. vellum/client/types/workflow_result_event_output_data_function_call.py +3 -3
  643. vellum/client/types/workflow_result_event_output_data_json.py +3 -3
  644. vellum/client/types/workflow_result_event_output_data_number.py +3 -3
  645. vellum/client/types/workflow_result_event_output_data_search_results.py +3 -3
  646. vellum/client/types/workflow_result_event_output_data_string.py +3 -3
  647. vellum/client/types/workflow_sandbox_example.py +2 -2
  648. vellum/client/types/workflow_sandbox_parent_context.py +11 -11
  649. vellum/client/types/workflow_stream_event.py +2 -1
  650. vellum/client/types/workspace_read.py +3 -3
  651. vellum/client/types/workspace_secret_read.py +3 -3
  652. vellum/core/force_multipart.py +3 -0
  653. vellum/prompts/blocks/compilation.py +22 -10
  654. vellum/types/vellum_video.py +3 -0
  655. vellum/types/vellum_video_request.py +3 -0
  656. vellum/types/video_chat_message_content.py +3 -0
  657. vellum/types/video_chat_message_content_request.py +3 -0
  658. vellum/types/video_prompt_block.py +3 -0
  659. vellum/types/video_vellum_value.py +3 -0
  660. vellum/types/video_vellum_value_request.py +3 -0
  661. vellum/types/workflow_execution_usage_calculation_fulfilled_body.py +3 -0
  662. vellum/workflows/events/node.py +25 -10
  663. vellum/workflows/events/tests/test_event.py +19 -19
  664. vellum/workflows/events/workflow.py +11 -0
  665. vellum/workflows/graph/graph.py +103 -1
  666. vellum/workflows/graph/tests/test_graph.py +99 -0
  667. vellum/workflows/nodes/bases/base.py +9 -1
  668. vellum/workflows/nodes/displayable/bases/utils.py +4 -2
  669. vellum/workflows/nodes/displayable/tool_calling_node/node.py +19 -18
  670. vellum/workflows/nodes/displayable/tool_calling_node/tests/test_node.py +17 -7
  671. vellum/workflows/nodes/displayable/tool_calling_node/tests/test_utils.py +7 -7
  672. vellum/workflows/nodes/displayable/tool_calling_node/utils.py +47 -80
  673. vellum/workflows/references/environment_variable.py +10 -0
  674. vellum/workflows/runner/runner.py +18 -2
  675. vellum/workflows/state/context.py +101 -12
  676. vellum/workflows/state/encoder.py +2 -4
  677. vellum/workflows/types/definition.py +11 -1
  678. vellum/workflows/types/tests/test_definition.py +19 -0
  679. vellum/workflows/utils/functions.py +1 -1
  680. vellum/workflows/utils/vellum_variables.py +9 -5
  681. vellum/workflows/workflows/base.py +12 -5
  682. {vellum_ai-1.1.2.dist-info → vellum_ai-1.1.4.dist-info}/METADATA +2 -2
  683. {vellum_ai-1.1.2.dist-info → vellum_ai-1.1.4.dist-info}/RECORD +693 -675
  684. vellum_ee/workflows/display/nodes/vellum/code_execution_node.py +1 -1
  685. vellum_ee/workflows/display/nodes/vellum/tests/test_code_execution_node.py +55 -1
  686. vellum_ee/workflows/display/nodes/vellum/tests/test_tool_calling_node.py +164 -47
  687. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_mcp_serialization.py +15 -49
  688. vellum_ee/workflows/display/types.py +14 -1
  689. vellum_ee/workflows/display/utils/expressions.py +13 -4
  690. vellum_ee/workflows/display/workflows/base_workflow_display.py +6 -19
  691. {vellum_ai-1.1.2.dist-info → vellum_ai-1.1.4.dist-info}/LICENSE +0 -0
  692. {vellum_ai-1.1.2.dist-info → vellum_ai-1.1.4.dist-info}/WHEEL +0 -0
  693. {vellum_ai-1.1.2.dist-info → vellum_ai-1.1.4.dist-info}/entry_points.txt +0 -0
@@ -1,22 +1,15 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
3
  import typing
4
- from ...core.client_wrapper import SyncClientWrapper
5
- from .raw_client import RawTestSuitesClient
4
+
5
+ from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
6
6
  from ...core.request_options import RequestOptions
7
- from ...types.paginated_test_suite_test_case_list import PaginatedTestSuiteTestCaseList
8
7
  from ...types.named_test_case_variable_value_request import NamedTestCaseVariableValueRequest
8
+ from ...types.paginated_test_suite_test_case_list import PaginatedTestSuiteTestCaseList
9
9
  from ...types.test_suite_test_case import TestSuiteTestCase
10
10
  from ...types.test_suite_test_case_bulk_operation_request import TestSuiteTestCaseBulkOperationRequest
11
11
  from ...types.test_suite_test_case_bulk_result import TestSuiteTestCaseBulkResult
12
- from ...core.jsonable_encoder import jsonable_encoder
13
- from ...core.serialization import convert_and_respect_annotation_metadata
14
- from ...core.pydantic_utilities import parse_obj_as
15
- import json
16
- from json.decoder import JSONDecodeError
17
- from ...core.api_error import ApiError
18
- from ...core.client_wrapper import AsyncClientWrapper
19
- from .raw_client import AsyncRawTestSuitesClient
12
+ from .raw_client import AsyncRawTestSuitesClient, RawTestSuitesClient
20
13
 
21
14
  # this is used as the default value for optional parameters
22
15
  OMIT = typing.cast(typing.Any, ...)
@@ -83,13 +76,10 @@ class TestSuitesClient:
83
76
  id="id",
84
77
  )
85
78
  """
86
- response = self._raw_client.list_test_suite_test_cases(
87
- id,
88
- limit=limit,
89
- offset=offset,
90
- request_options=request_options,
79
+ _response = self._raw_client.list_test_suite_test_cases(
80
+ id, limit=limit, offset=offset, request_options=request_options
91
81
  )
92
- return response.data
82
+ return _response.data
93
83
 
94
84
  def upsert_test_suite_test_case(
95
85
  self,
@@ -167,7 +157,7 @@ class TestSuitesClient:
167
157
  ],
168
158
  )
169
159
  """
170
- response = self._raw_client.upsert_test_suite_test_case(
160
+ _response = self._raw_client.upsert_test_suite_test_case(
171
161
  id_,
172
162
  input_values=input_values,
173
163
  evaluation_values=evaluation_values,
@@ -176,7 +166,7 @@ class TestSuitesClient:
176
166
  label=label,
177
167
  request_options=request_options,
178
168
  )
179
- return response.data
169
+ return _response.data
180
170
 
181
171
  def test_suite_test_cases_bulk(
182
172
  self,
@@ -266,37 +256,8 @@ class TestSuitesClient:
266
256
  for chunk in response:
267
257
  yield chunk
268
258
  """
269
- with self._raw_client._client_wrapper.httpx_client.stream(
270
- f"v1/test-suites/{jsonable_encoder(id)}/test-cases-bulk",
271
- base_url=self._raw_client._client_wrapper.get_environment().default,
272
- method="POST",
273
- json=convert_and_respect_annotation_metadata(
274
- object_=request, annotation=typing.Sequence[TestSuiteTestCaseBulkOperationRequest], direction="write"
275
- ),
276
- request_options=request_options,
277
- omit=OMIT,
278
- ) as _response:
279
- try:
280
- if 200 <= _response.status_code < 300:
281
- for _text in _response.iter_lines():
282
- try:
283
- if len(_text) == 0:
284
- continue
285
- yield typing.cast(
286
- typing.List[TestSuiteTestCaseBulkResult],
287
- parse_obj_as(
288
- type_=typing.List[TestSuiteTestCaseBulkResult], # type: ignore
289
- object_=json.loads(_text),
290
- ),
291
- )
292
- except Exception:
293
- pass
294
- return
295
- _response.read()
296
- _response_json = _response.json()
297
- except JSONDecodeError:
298
- raise ApiError(status_code=_response.status_code, body=_response.text)
299
- raise ApiError(status_code=_response.status_code, body=_response_json)
259
+ with self._raw_client.test_suite_test_cases_bulk(id, request=request, request_options=request_options) as r:
260
+ yield from r.data
300
261
 
301
262
  def delete_test_suite_test_case(
302
263
  self, id: str, test_case_id: str, *, request_options: typing.Optional[RequestOptions] = None
@@ -332,12 +293,8 @@ class TestSuitesClient:
332
293
  test_case_id="test_case_id",
333
294
  )
334
295
  """
335
- response = self._raw_client.delete_test_suite_test_case(
336
- id,
337
- test_case_id,
338
- request_options=request_options,
339
- )
340
- return response.data
296
+ _response = self._raw_client.delete_test_suite_test_case(id, test_case_id, request_options=request_options)
297
+ return _response.data
341
298
 
342
299
 
343
300
  class AsyncTestSuitesClient:
@@ -405,13 +362,10 @@ class AsyncTestSuitesClient:
405
362
 
406
363
  asyncio.run(main())
407
364
  """
408
- response = await self._raw_client.list_test_suite_test_cases(
409
- id,
410
- limit=limit,
411
- offset=offset,
412
- request_options=request_options,
365
+ _response = await self._raw_client.list_test_suite_test_cases(
366
+ id, limit=limit, offset=offset, request_options=request_options
413
367
  )
414
- return response.data
368
+ return _response.data
415
369
 
416
370
  async def upsert_test_suite_test_case(
417
371
  self,
@@ -497,7 +451,7 @@ class AsyncTestSuitesClient:
497
451
 
498
452
  asyncio.run(main())
499
453
  """
500
- response = await self._raw_client.upsert_test_suite_test_case(
454
+ _response = await self._raw_client.upsert_test_suite_test_case(
501
455
  id_,
502
456
  input_values=input_values,
503
457
  evaluation_values=evaluation_values,
@@ -506,7 +460,7 @@ class AsyncTestSuitesClient:
506
460
  label=label,
507
461
  request_options=request_options,
508
462
  )
509
- return response.data
463
+ return _response.data
510
464
 
511
465
  async def test_suite_test_cases_bulk(
512
466
  self,
@@ -604,37 +558,11 @@ class AsyncTestSuitesClient:
604
558
 
605
559
  asyncio.run(main())
606
560
  """
607
- async with self._raw_client._client_wrapper.httpx_client.stream(
608
- f"v1/test-suites/{jsonable_encoder(id)}/test-cases-bulk",
609
- base_url=self._raw_client._client_wrapper.get_environment().default,
610
- method="POST",
611
- json=convert_and_respect_annotation_metadata(
612
- object_=request, annotation=typing.Sequence[TestSuiteTestCaseBulkOperationRequest], direction="write"
613
- ),
614
- request_options=request_options,
615
- omit=OMIT,
616
- ) as _response:
617
- try:
618
- if 200 <= _response.status_code < 300:
619
- async for _text in _response.aiter_lines():
620
- try:
621
- if len(_text) == 0:
622
- continue
623
- yield typing.cast(
624
- typing.List[TestSuiteTestCaseBulkResult],
625
- parse_obj_as(
626
- type_=typing.List[TestSuiteTestCaseBulkResult], # type: ignore
627
- object_=json.loads(_text),
628
- ),
629
- )
630
- except Exception:
631
- pass
632
- return
633
- await _response.aread()
634
- _response_json = _response.json()
635
- except JSONDecodeError:
636
- raise ApiError(status_code=_response.status_code, body=_response.text)
637
- raise ApiError(status_code=_response.status_code, body=_response_json)
561
+ async with self._raw_client.test_suite_test_cases_bulk(
562
+ id, request=request, request_options=request_options
563
+ ) as r:
564
+ async for _chunk in r.data:
565
+ yield _chunk
638
566
 
639
567
  async def delete_test_suite_test_case(
640
568
  self, id: str, test_case_id: str, *, request_options: typing.Optional[RequestOptions] = None
@@ -678,9 +606,7 @@ class AsyncTestSuitesClient:
678
606
 
679
607
  asyncio.run(main())
680
608
  """
681
- response = await self._raw_client.delete_test_suite_test_case(
682
- id,
683
- test_case_id,
684
- request_options=request_options,
609
+ _response = await self._raw_client.delete_test_suite_test_case(
610
+ id, test_case_id, request_options=request_options
685
611
  )
686
- return response.data
612
+ return _response.data
@@ -1,19 +1,22 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
+ import contextlib
4
+ import json
3
5
  import typing
4
- from ...core.client_wrapper import SyncClientWrapper
5
- from ...core.request_options import RequestOptions
6
- from ...core.http_response import HttpResponse
7
- from ...types.paginated_test_suite_test_case_list import PaginatedTestSuiteTestCaseList
8
- from ...core.jsonable_encoder import jsonable_encoder
9
- from ...core.pydantic_utilities import parse_obj_as
10
6
  from json.decoder import JSONDecodeError
7
+
11
8
  from ...core.api_error import ApiError
9
+ from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
10
+ from ...core.http_response import AsyncHttpResponse, HttpResponse
11
+ from ...core.jsonable_encoder import jsonable_encoder
12
+ from ...core.pydantic_utilities import parse_obj_as
13
+ from ...core.request_options import RequestOptions
14
+ from ...core.serialization import convert_and_respect_annotation_metadata
12
15
  from ...types.named_test_case_variable_value_request import NamedTestCaseVariableValueRequest
16
+ from ...types.paginated_test_suite_test_case_list import PaginatedTestSuiteTestCaseList
13
17
  from ...types.test_suite_test_case import TestSuiteTestCase
14
- from ...core.serialization import convert_and_respect_annotation_metadata
15
- from ...core.client_wrapper import AsyncClientWrapper
16
- from ...core.http_response import AsyncHttpResponse
18
+ from ...types.test_suite_test_case_bulk_operation_request import TestSuiteTestCaseBulkOperationRequest
19
+ from ...types.test_suite_test_case_bulk_result import TestSuiteTestCaseBulkResult
17
20
 
18
21
  # this is used as the default value for optional parameters
19
22
  OMIT = typing.cast(typing.Any, ...)
@@ -75,8 +78,8 @@ class RawTestSuitesClient:
75
78
  return HttpResponse(response=_response, data=_data)
76
79
  _response_json = _response.json()
77
80
  except JSONDecodeError:
78
- raise ApiError(status_code=_response.status_code, body=_response.text)
79
- raise ApiError(status_code=_response.status_code, body=_response_json)
81
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
82
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
80
83
 
81
84
  def upsert_test_suite_test_case(
82
85
  self,
@@ -145,6 +148,9 @@ class RawTestSuitesClient:
145
148
  direction="write",
146
149
  ),
147
150
  },
151
+ headers={
152
+ "content-type": "application/json",
153
+ },
148
154
  request_options=request_options,
149
155
  omit=OMIT,
150
156
  )
@@ -160,8 +166,79 @@ class RawTestSuitesClient:
160
166
  return HttpResponse(response=_response, data=_data)
161
167
  _response_json = _response.json()
162
168
  except JSONDecodeError:
163
- raise ApiError(status_code=_response.status_code, body=_response.text)
164
- raise ApiError(status_code=_response.status_code, body=_response_json)
169
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
170
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
171
+
172
+ @contextlib.contextmanager
173
+ def test_suite_test_cases_bulk(
174
+ self,
175
+ id: str,
176
+ *,
177
+ request: typing.Sequence[TestSuiteTestCaseBulkOperationRequest],
178
+ request_options: typing.Optional[RequestOptions] = None,
179
+ ) -> typing.Iterator[HttpResponse[typing.Iterator[typing.List[TestSuiteTestCaseBulkResult]]]]:
180
+ """
181
+ Created, replace, and delete Test Cases within the specified Test Suite in bulk
182
+
183
+ Parameters
184
+ ----------
185
+ id : str
186
+ Either the Test Suites' ID or its unique name
187
+
188
+ request : typing.Sequence[TestSuiteTestCaseBulkOperationRequest]
189
+
190
+ request_options : typing.Optional[RequestOptions]
191
+ Request-specific configuration.
192
+
193
+ Yields
194
+ ------
195
+ typing.Iterator[HttpResponse[typing.Iterator[typing.List[TestSuiteTestCaseBulkResult]]]]
196
+
197
+ """
198
+ with self._client_wrapper.httpx_client.stream(
199
+ f"v1/test-suites/{jsonable_encoder(id)}/test-cases-bulk",
200
+ base_url=self._client_wrapper.get_environment().default,
201
+ method="POST",
202
+ json=convert_and_respect_annotation_metadata(
203
+ object_=request, annotation=typing.Sequence[TestSuiteTestCaseBulkOperationRequest], direction="write"
204
+ ),
205
+ headers={
206
+ "content-type": "application/x-ndjson",
207
+ },
208
+ request_options=request_options,
209
+ omit=OMIT,
210
+ ) as _response:
211
+
212
+ def _stream() -> HttpResponse[typing.Iterator[typing.List[TestSuiteTestCaseBulkResult]]]:
213
+ try:
214
+ if 200 <= _response.status_code < 300:
215
+
216
+ def _iter():
217
+ for _text in _response.iter_lines():
218
+ try:
219
+ if len(_text) == 0:
220
+ continue
221
+ yield typing.cast(
222
+ typing.List[TestSuiteTestCaseBulkResult],
223
+ parse_obj_as(
224
+ type_=typing.List[TestSuiteTestCaseBulkResult], # type: ignore
225
+ object_=json.loads(_text),
226
+ ),
227
+ )
228
+ except Exception:
229
+ pass
230
+ return
231
+
232
+ return HttpResponse(response=_response, data=_iter())
233
+ _response.read()
234
+ _response_json = _response.json()
235
+ except JSONDecodeError:
236
+ raise ApiError(
237
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.text
238
+ )
239
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
240
+
241
+ yield _stream()
165
242
 
166
243
  def delete_test_suite_test_case(
167
244
  self, id: str, test_case_id: str, *, request_options: typing.Optional[RequestOptions] = None
@@ -195,8 +272,8 @@ class RawTestSuitesClient:
195
272
  return HttpResponse(response=_response, data=None)
196
273
  _response_json = _response.json()
197
274
  except JSONDecodeError:
198
- raise ApiError(status_code=_response.status_code, body=_response.text)
199
- raise ApiError(status_code=_response.status_code, body=_response_json)
275
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
276
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
200
277
 
201
278
 
202
279
  class AsyncRawTestSuitesClient:
@@ -255,8 +332,8 @@ class AsyncRawTestSuitesClient:
255
332
  return AsyncHttpResponse(response=_response, data=_data)
256
333
  _response_json = _response.json()
257
334
  except JSONDecodeError:
258
- raise ApiError(status_code=_response.status_code, body=_response.text)
259
- raise ApiError(status_code=_response.status_code, body=_response_json)
335
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
336
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
260
337
 
261
338
  async def upsert_test_suite_test_case(
262
339
  self,
@@ -325,6 +402,9 @@ class AsyncRawTestSuitesClient:
325
402
  direction="write",
326
403
  ),
327
404
  },
405
+ headers={
406
+ "content-type": "application/json",
407
+ },
328
408
  request_options=request_options,
329
409
  omit=OMIT,
330
410
  )
@@ -340,8 +420,79 @@ class AsyncRawTestSuitesClient:
340
420
  return AsyncHttpResponse(response=_response, data=_data)
341
421
  _response_json = _response.json()
342
422
  except JSONDecodeError:
343
- raise ApiError(status_code=_response.status_code, body=_response.text)
344
- raise ApiError(status_code=_response.status_code, body=_response_json)
423
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
424
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
425
+
426
+ @contextlib.asynccontextmanager
427
+ async def test_suite_test_cases_bulk(
428
+ self,
429
+ id: str,
430
+ *,
431
+ request: typing.Sequence[TestSuiteTestCaseBulkOperationRequest],
432
+ request_options: typing.Optional[RequestOptions] = None,
433
+ ) -> typing.AsyncIterator[AsyncHttpResponse[typing.AsyncIterator[typing.List[TestSuiteTestCaseBulkResult]]]]:
434
+ """
435
+ Created, replace, and delete Test Cases within the specified Test Suite in bulk
436
+
437
+ Parameters
438
+ ----------
439
+ id : str
440
+ Either the Test Suites' ID or its unique name
441
+
442
+ request : typing.Sequence[TestSuiteTestCaseBulkOperationRequest]
443
+
444
+ request_options : typing.Optional[RequestOptions]
445
+ Request-specific configuration.
446
+
447
+ Yields
448
+ ------
449
+ typing.AsyncIterator[AsyncHttpResponse[typing.AsyncIterator[typing.List[TestSuiteTestCaseBulkResult]]]]
450
+
451
+ """
452
+ async with self._client_wrapper.httpx_client.stream(
453
+ f"v1/test-suites/{jsonable_encoder(id)}/test-cases-bulk",
454
+ base_url=self._client_wrapper.get_environment().default,
455
+ method="POST",
456
+ json=convert_and_respect_annotation_metadata(
457
+ object_=request, annotation=typing.Sequence[TestSuiteTestCaseBulkOperationRequest], direction="write"
458
+ ),
459
+ headers={
460
+ "content-type": "application/x-ndjson",
461
+ },
462
+ request_options=request_options,
463
+ omit=OMIT,
464
+ ) as _response:
465
+
466
+ async def _stream() -> AsyncHttpResponse[typing.AsyncIterator[typing.List[TestSuiteTestCaseBulkResult]]]:
467
+ try:
468
+ if 200 <= _response.status_code < 300:
469
+
470
+ async def _iter():
471
+ async for _text in _response.aiter_lines():
472
+ try:
473
+ if len(_text) == 0:
474
+ continue
475
+ yield typing.cast(
476
+ typing.List[TestSuiteTestCaseBulkResult],
477
+ parse_obj_as(
478
+ type_=typing.List[TestSuiteTestCaseBulkResult], # type: ignore
479
+ object_=json.loads(_text),
480
+ ),
481
+ )
482
+ except Exception:
483
+ pass
484
+ return
485
+
486
+ return AsyncHttpResponse(response=_response, data=_iter())
487
+ await _response.aread()
488
+ _response_json = _response.json()
489
+ except JSONDecodeError:
490
+ raise ApiError(
491
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.text
492
+ )
493
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
494
+
495
+ yield await _stream()
345
496
 
346
497
  async def delete_test_suite_test_case(
347
498
  self, id: str, test_case_id: str, *, request_options: typing.Optional[RequestOptions] = None
@@ -375,5 +526,5 @@ class AsyncRawTestSuitesClient:
375
526
  return AsyncHttpResponse(response=_response, data=None)
376
527
  _response_json = _response.json()
377
528
  except JSONDecodeError:
378
- raise ApiError(status_code=_response.status_code, body=_response.text)
379
- raise ApiError(status_code=_response.status_code, body=_response_json)
529
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
530
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -1,5 +1,7 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
+ # isort: skip_file
4
+
3
5
  from .types import ListWorkflowReleaseTagsRequestSource, WorkflowDeploymentsListRequestStatus
4
6
 
5
7
  __all__ = ["ListWorkflowReleaseTagsRequestSource", "WorkflowDeploymentsListRequestStatus"]