vellum-ai 1.11.2__py3-none-any.whl → 1.13.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (275) hide show
  1. vellum/__init__.py +18 -0
  2. vellum/client/README.md +1 -1
  3. vellum/client/core/client_wrapper.py +2 -2
  4. vellum/client/core/force_multipart.py +4 -2
  5. vellum/client/core/http_response.py +1 -1
  6. vellum/client/core/pydantic_utilities.py +7 -4
  7. vellum/client/errors/too_many_requests_error.py +1 -2
  8. vellum/client/reference.md +677 -76
  9. vellum/client/resources/container_images/client.py +299 -0
  10. vellum/client/resources/container_images/raw_client.py +286 -0
  11. vellum/client/resources/documents/client.py +20 -10
  12. vellum/client/resources/documents/raw_client.py +20 -10
  13. vellum/client/resources/events/raw_client.py +4 -4
  14. vellum/client/resources/integration_auth_configs/client.py +2 -0
  15. vellum/client/resources/integration_auth_configs/raw_client.py +2 -0
  16. vellum/client/resources/integration_providers/client.py +28 -2
  17. vellum/client/resources/integration_providers/raw_client.py +24 -0
  18. vellum/client/resources/integrations/client.py +52 -4
  19. vellum/client/resources/integrations/raw_client.py +61 -0
  20. vellum/client/resources/workflow_deployments/client.py +156 -0
  21. vellum/client/resources/workflow_deployments/raw_client.py +334 -0
  22. vellum/client/resources/workflows/client.py +212 -8
  23. vellum/client/resources/workflows/raw_client.py +343 -6
  24. vellum/client/types/__init__.py +18 -0
  25. vellum/client/types/api_actor_type_enum.py +1 -1
  26. vellum/client/types/check_workflow_execution_status_error.py +21 -0
  27. vellum/client/types/check_workflow_execution_status_response.py +29 -0
  28. vellum/client/types/code_execution_package_request.py +21 -0
  29. vellum/client/types/composio_execute_tool_request.py +5 -0
  30. vellum/client/types/composio_tool_definition.py +1 -0
  31. vellum/client/types/container_image_build_config.py +1 -0
  32. vellum/client/types/container_image_container_image_tag.py +1 -0
  33. vellum/client/types/dataset_row_push_request.py +3 -0
  34. vellum/client/types/document_document_to_document_index.py +1 -0
  35. vellum/client/types/integration_name.py +24 -0
  36. vellum/client/types/node_execution_fulfilled_body.py +1 -0
  37. vellum/client/types/node_execution_log_body.py +24 -0
  38. vellum/client/types/node_execution_log_event.py +47 -0
  39. vellum/client/types/prompt_deployment_release_prompt_deployment.py +1 -0
  40. vellum/client/types/runner_config_request.py +24 -0
  41. vellum/client/types/severity_enum.py +5 -0
  42. vellum/client/types/slim_composio_tool_definition.py +1 -0
  43. vellum/client/types/slim_document_document_to_document_index.py +2 -0
  44. vellum/client/types/type_checker_enum.py +5 -0
  45. vellum/client/types/vellum_audio.py +5 -1
  46. vellum/client/types/vellum_audio_request.py +5 -1
  47. vellum/client/types/vellum_document.py +5 -1
  48. vellum/client/types/vellum_document_request.py +5 -1
  49. vellum/client/types/vellum_image.py +5 -1
  50. vellum/client/types/vellum_image_request.py +5 -1
  51. vellum/client/types/vellum_node_execution_event.py +2 -0
  52. vellum/client/types/vellum_variable.py +5 -0
  53. vellum/client/types/vellum_variable_extensions.py +1 -0
  54. vellum/client/types/vellum_variable_type.py +1 -0
  55. vellum/client/types/vellum_video.py +5 -1
  56. vellum/client/types/vellum_video_request.py +5 -1
  57. vellum/client/types/workflow_deployment_release_workflow_deployment.py +1 -0
  58. vellum/client/types/workflow_event.py +2 -0
  59. vellum/client/types/workflow_execution_fulfilled_body.py +1 -0
  60. vellum/client/types/workflow_result_event_output_data_array.py +1 -1
  61. vellum/client/types/workflow_result_event_output_data_chat_history.py +1 -1
  62. vellum/client/types/workflow_result_event_output_data_error.py +1 -1
  63. vellum/client/types/workflow_result_event_output_data_function_call.py +1 -1
  64. vellum/client/types/workflow_result_event_output_data_json.py +1 -1
  65. vellum/client/types/workflow_result_event_output_data_number.py +1 -1
  66. vellum/client/types/workflow_result_event_output_data_search_results.py +1 -1
  67. vellum/client/types/workflow_result_event_output_data_string.py +1 -1
  68. vellum/client/types/workflow_sandbox_execute_node_response.py +8 -0
  69. vellum/plugins/vellum_mypy.py +37 -2
  70. vellum/types/check_workflow_execution_status_error.py +3 -0
  71. vellum/types/check_workflow_execution_status_response.py +3 -0
  72. vellum/types/code_execution_package_request.py +3 -0
  73. vellum/types/node_execution_log_body.py +3 -0
  74. vellum/types/node_execution_log_event.py +3 -0
  75. vellum/types/runner_config_request.py +3 -0
  76. vellum/types/severity_enum.py +3 -0
  77. vellum/types/type_checker_enum.py +3 -0
  78. vellum/types/workflow_sandbox_execute_node_response.py +3 -0
  79. vellum/utils/files/mixin.py +26 -0
  80. vellum/utils/files/tests/test_mixin.py +62 -0
  81. vellum/utils/tests/test_vellum_client.py +95 -0
  82. vellum/utils/uuid.py +19 -2
  83. vellum/utils/vellum_client.py +10 -3
  84. vellum/workflows/__init__.py +7 -1
  85. vellum/workflows/descriptors/base.py +86 -0
  86. vellum/workflows/descriptors/tests/test_utils.py +9 -0
  87. vellum/workflows/errors/tests/__init__.py +0 -0
  88. vellum/workflows/errors/tests/test_types.py +52 -0
  89. vellum/workflows/errors/types.py +1 -0
  90. vellum/workflows/events/node.py +24 -0
  91. vellum/workflows/events/tests/test_event.py +123 -0
  92. vellum/workflows/events/types.py +2 -1
  93. vellum/workflows/events/workflow.py +28 -2
  94. vellum/workflows/expressions/add.py +3 -0
  95. vellum/workflows/expressions/tests/test_add.py +24 -0
  96. vellum/workflows/graph/graph.py +26 -5
  97. vellum/workflows/graph/tests/test_graph.py +228 -1
  98. vellum/workflows/inputs/base.py +22 -6
  99. vellum/workflows/inputs/dataset_row.py +121 -16
  100. vellum/workflows/inputs/tests/test_inputs.py +3 -3
  101. vellum/workflows/integrations/tests/test_vellum_integration_service.py +84 -0
  102. vellum/workflows/integrations/vellum_integration_service.py +12 -1
  103. vellum/workflows/loaders/base.py +2 -0
  104. vellum/workflows/nodes/bases/base.py +37 -16
  105. vellum/workflows/nodes/bases/tests/test_base_node.py +104 -1
  106. vellum/workflows/nodes/core/inline_subworkflow_node/node.py +1 -0
  107. vellum/workflows/nodes/core/inline_subworkflow_node/tests/test_node.py +1 -1
  108. vellum/workflows/nodes/core/map_node/node.py +7 -5
  109. vellum/workflows/nodes/core/map_node/tests/test_node.py +33 -0
  110. vellum/workflows/nodes/core/retry_node/node.py +1 -0
  111. vellum/workflows/nodes/core/try_node/node.py +1 -0
  112. vellum/workflows/nodes/displayable/api_node/node.py +3 -2
  113. vellum/workflows/nodes/displayable/api_node/tests/test_api_node.py +38 -0
  114. vellum/workflows/nodes/displayable/bases/api_node/node.py +1 -1
  115. vellum/workflows/nodes/displayable/bases/base_prompt_node/node.py +18 -1
  116. vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py +109 -2
  117. vellum/workflows/nodes/displayable/bases/prompt_deployment_node.py +13 -2
  118. vellum/workflows/nodes/displayable/code_execution_node/node.py +9 -15
  119. vellum/workflows/nodes/displayable/code_execution_node/tests/test_node.py +65 -24
  120. vellum/workflows/nodes/displayable/code_execution_node/utils.py +3 -0
  121. vellum/workflows/nodes/displayable/final_output_node/node.py +24 -69
  122. vellum/workflows/nodes/displayable/final_output_node/tests/test_node.py +53 -3
  123. vellum/workflows/nodes/displayable/note_node/node.py +4 -1
  124. vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py +16 -5
  125. vellum/workflows/nodes/displayable/tests/test_text_prompt_deployment_node.py +47 -0
  126. vellum/workflows/nodes/displayable/tool_calling_node/node.py +74 -34
  127. vellum/workflows/nodes/displayable/tool_calling_node/tests/test_node.py +204 -8
  128. vellum/workflows/nodes/displayable/tool_calling_node/utils.py +92 -71
  129. vellum/workflows/nodes/mocks.py +47 -213
  130. vellum/workflows/nodes/tests/test_mocks.py +0 -177
  131. vellum/workflows/nodes/utils.py +23 -8
  132. vellum/workflows/outputs/base.py +36 -3
  133. vellum/workflows/references/environment_variable.py +1 -11
  134. vellum/workflows/references/lazy.py +8 -0
  135. vellum/workflows/references/state_value.py +24 -1
  136. vellum/workflows/references/tests/test_lazy.py +58 -0
  137. vellum/workflows/references/trigger.py +8 -3
  138. vellum/workflows/references/workflow_input.py +8 -0
  139. vellum/workflows/resolvers/resolver.py +13 -3
  140. vellum/workflows/resolvers/tests/test_resolver.py +31 -0
  141. vellum/workflows/runner/runner.py +159 -14
  142. vellum/workflows/runner/tests/__init__.py +0 -0
  143. vellum/workflows/runner/tests/test_runner.py +170 -0
  144. vellum/workflows/sandbox.py +7 -8
  145. vellum/workflows/state/base.py +89 -30
  146. vellum/workflows/state/context.py +74 -3
  147. vellum/workflows/state/tests/test_state.py +269 -1
  148. vellum/workflows/tests/test_dataset_row.py +8 -7
  149. vellum/workflows/tests/test_sandbox.py +97 -8
  150. vellum/workflows/triggers/__init__.py +2 -1
  151. vellum/workflows/triggers/base.py +160 -28
  152. vellum/workflows/triggers/chat_message.py +141 -0
  153. vellum/workflows/triggers/integration.py +12 -0
  154. vellum/workflows/triggers/manual.py +3 -1
  155. vellum/workflows/triggers/schedule.py +3 -1
  156. vellum/workflows/triggers/tests/test_chat_message.py +257 -0
  157. vellum/workflows/types/core.py +18 -0
  158. vellum/workflows/types/definition.py +6 -13
  159. vellum/workflows/types/generics.py +12 -0
  160. vellum/workflows/types/tests/test_utils.py +12 -0
  161. vellum/workflows/types/utils.py +32 -2
  162. vellum/workflows/types/workflow_metadata.py +124 -0
  163. vellum/workflows/utils/functions.py +152 -16
  164. vellum/workflows/utils/pydantic_schema.py +19 -1
  165. vellum/workflows/utils/tests/test_functions.py +123 -8
  166. vellum/workflows/utils/tests/test_validate.py +79 -0
  167. vellum/workflows/utils/tests/test_vellum_variables.py +62 -2
  168. vellum/workflows/utils/uuids.py +90 -0
  169. vellum/workflows/utils/validate.py +108 -0
  170. vellum/workflows/utils/vellum_variables.py +96 -16
  171. vellum/workflows/workflows/base.py +177 -35
  172. vellum/workflows/workflows/tests/test_base_workflow.py +51 -0
  173. {vellum_ai-1.11.2.dist-info → vellum_ai-1.13.5.dist-info}/METADATA +6 -1
  174. {vellum_ai-1.11.2.dist-info → vellum_ai-1.13.5.dist-info}/RECORD +274 -227
  175. vellum_cli/__init__.py +21 -0
  176. vellum_cli/config.py +16 -2
  177. vellum_cli/pull.py +2 -0
  178. vellum_cli/push.py +23 -10
  179. vellum_cli/tests/conftest.py +8 -13
  180. vellum_cli/tests/test_image_push.py +4 -11
  181. vellum_cli/tests/test_pull.py +83 -68
  182. vellum_cli/tests/test_push.py +251 -2
  183. vellum_ee/assets/node-definitions.json +225 -12
  184. vellum_ee/scripts/generate_node_definitions.py +15 -3
  185. vellum_ee/workflows/display/base.py +4 -3
  186. vellum_ee/workflows/display/nodes/base_node_display.py +44 -11
  187. vellum_ee/workflows/display/nodes/tests/test_base_node_display.py +93 -0
  188. vellum_ee/workflows/display/nodes/types.py +1 -0
  189. vellum_ee/workflows/display/nodes/vellum/__init__.py +0 -2
  190. vellum_ee/workflows/display/nodes/vellum/base_adornment_node.py +5 -2
  191. vellum_ee/workflows/display/nodes/vellum/code_execution_node.py +1 -1
  192. vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py +10 -2
  193. vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py +17 -14
  194. vellum_ee/workflows/display/nodes/vellum/map_node.py +2 -0
  195. vellum_ee/workflows/display/nodes/vellum/note_node.py +18 -3
  196. vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py +37 -14
  197. vellum_ee/workflows/display/nodes/vellum/tests/test_code_execution_node.py +62 -2
  198. vellum_ee/workflows/display/nodes/vellum/tests/test_final_output_node.py +136 -0
  199. vellum_ee/workflows/display/nodes/vellum/tests/test_note_node.py +44 -7
  200. vellum_ee/workflows/display/nodes/vellum/tests/test_prompt_node.py +5 -13
  201. vellum_ee/workflows/display/nodes/vellum/tests/test_subworkflow_deployment_node.py +27 -17
  202. vellum_ee/workflows/display/nodes/vellum/tests/test_tool_calling_node.py +145 -22
  203. vellum_ee/workflows/display/nodes/vellum/tests/test_utils.py +107 -2
  204. vellum_ee/workflows/display/nodes/vellum/utils.py +54 -12
  205. vellum_ee/workflows/display/tests/test_base_workflow_display.py +13 -16
  206. vellum_ee/workflows/display/tests/test_json_schema_validation.py +190 -0
  207. vellum_ee/workflows/display/tests/test_mocks.py +912 -0
  208. vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_adornments_serialization.py +14 -2
  209. vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_attributes_serialization.py +109 -0
  210. vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_outputs_serialization.py +3 -0
  211. vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_ports_serialization.py +187 -1
  212. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py +34 -325
  213. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py +42 -393
  214. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py +13 -315
  215. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_default_state_serialization.py +2 -122
  216. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py +24 -115
  217. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_generic_node_serialization.py +4 -93
  218. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py +7 -80
  219. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_prompt_node_serialization.py +9 -101
  220. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py +77 -308
  221. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py +62 -324
  222. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py +3 -82
  223. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py +4 -142
  224. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py +1 -61
  225. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_set_state_node_serialization.py +4 -4
  226. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py +205 -134
  227. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py +34 -146
  228. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py +2 -0
  229. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_composio_serialization.py +8 -6
  230. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_inline_workflow_serialization.py +137 -266
  231. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_inline_workflow_tool_wrapper_serialization.py +84 -0
  232. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_mcp_serialization.py +55 -16
  233. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_serialization.py +15 -1
  234. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_tool_wrapper_serialization.py +71 -0
  235. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_vellum_integration_serialization.py +119 -0
  236. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_workflow_deployment_serialization.py +1 -1
  237. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py +0 -2
  238. vellum_ee/workflows/display/tests/workflow_serialization/test_chat_message_dict_reference_serialization.py +22 -1
  239. vellum_ee/workflows/display/tests/workflow_serialization/test_chat_message_trigger_serialization.py +412 -0
  240. vellum_ee/workflows/display/tests/workflow_serialization/test_code_tool_node_reference_error.py +106 -0
  241. vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py +9 -41
  242. vellum_ee/workflows/display/tests/workflow_serialization/test_duplicate_trigger_name_validation.py +208 -0
  243. vellum_ee/workflows/display/tests/workflow_serialization/test_final_output_node_not_referenced_by_workflow_outputs.py +45 -0
  244. vellum_ee/workflows/display/tests/workflow_serialization/test_infinite_loop_validation.py +66 -0
  245. vellum_ee/workflows/display/tests/workflow_serialization/test_int_input_serialization.py +40 -0
  246. vellum_ee/workflows/display/tests/workflow_serialization/test_integration_trigger_serialization.py +8 -14
  247. vellum_ee/workflows/display/tests/workflow_serialization/test_integration_trigger_validation.py +173 -0
  248. vellum_ee/workflows/display/tests/workflow_serialization/test_integration_trigger_with_entrypoint_node_id.py +16 -13
  249. vellum_ee/workflows/display/tests/workflow_serialization/test_list_vellum_document_serialization.py +5 -1
  250. vellum_ee/workflows/display/tests/workflow_serialization/test_manual_trigger_serialization.py +12 -2
  251. vellum_ee/workflows/display/tests/workflow_serialization/test_multi_trigger_same_node_serialization.py +111 -0
  252. vellum_ee/workflows/display/tests/workflow_serialization/test_no_triggers_no_entrypoint_validation.py +64 -0
  253. vellum_ee/workflows/display/tests/workflow_serialization/test_partial_workflow_meta_display_override.py +55 -0
  254. vellum_ee/workflows/display/tests/workflow_serialization/test_sandbox_dataset_mocks_serialization.py +268 -0
  255. vellum_ee/workflows/display/tests/workflow_serialization/test_sandbox_invalid_pdf_data_url.py +49 -0
  256. vellum_ee/workflows/display/tests/workflow_serialization/test_sandbox_validation_errors.py +112 -0
  257. vellum_ee/workflows/display/tests/workflow_serialization/test_scheduled_trigger_serialization.py +25 -16
  258. vellum_ee/workflows/display/tests/workflow_serialization/test_terminal_node_in_unused_graphs_serialization.py +53 -0
  259. vellum_ee/workflows/display/utils/exceptions.py +34 -0
  260. vellum_ee/workflows/display/utils/expressions.py +463 -52
  261. vellum_ee/workflows/display/utils/metadata.py +98 -33
  262. vellum_ee/workflows/display/utils/tests/test_metadata.py +31 -0
  263. vellum_ee/workflows/display/utils/triggers.py +153 -0
  264. vellum_ee/workflows/display/utils/vellum.py +59 -5
  265. vellum_ee/workflows/display/workflows/base_workflow_display.py +656 -254
  266. vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py +26 -0
  267. vellum_ee/workflows/display/workflows/tests/test_workflow_display.py +77 -29
  268. vellum_ee/workflows/server/namespaces.py +18 -0
  269. vellum_ee/workflows/tests/test_display_meta.py +2 -0
  270. vellum_ee/workflows/tests/test_serialize_module.py +174 -7
  271. vellum_ee/workflows/tests/test_server.py +0 -3
  272. vellum_ee/workflows/display/nodes/vellum/function_node.py +0 -14
  273. {vellum_ai-1.11.2.dist-info → vellum_ai-1.13.5.dist-info}/LICENSE +0 -0
  274. {vellum_ai-1.11.2.dist-info → vellum_ai-1.13.5.dist-info}/WHEEL +0 -0
  275. {vellum_ai-1.11.2.dist-info → vellum_ai-1.13.5.dist-info}/entry_points.txt +0 -0
@@ -39,6 +39,7 @@ class DocumentDocumentToDocumentIndex(UniversalBaseModel):
39
39
  """
40
40
 
41
41
  extracted_text_file_url: typing.Optional[str] = None
42
+ processing_state: typing.Optional[str] = None
42
43
 
43
44
  if IS_PYDANTIC_V2:
44
45
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -13,19 +13,30 @@ IntegrationName = typing.Union[
13
13
  "CODA",
14
14
  "HUBSPOT",
15
15
  "INTERCOM",
16
+ "INSTAGRAM",
16
17
  "LINEAR",
17
18
  "LINKUP",
18
19
  "LISTENNOTES",
19
20
  "LMNT",
20
21
  "LINKEDIN",
21
22
  "MAILCHIMP",
23
+ "MIRO",
22
24
  "MEM0",
25
+ "MONDAY",
23
26
  "NEON",
27
+ "OUTLOOK",
24
28
  "GITHUB",
25
29
  "GOOGLE_SHEETS",
26
30
  "GOOGLE_CALENDAR",
27
31
  "GOOGLE_DRIVE",
28
32
  "GMAIL",
33
+ "GOOGLE_ADS",
34
+ "GOOGLE_ANALYTICS",
35
+ "GOOGLE_DOCS",
36
+ "GOOGLE_PHOTOS",
37
+ "GOOGLE_SEARCH_CONSOLE",
38
+ "GOOGLE_SLIDES",
39
+ "GOOGLE_TASKS",
29
40
  "ACCULYNX",
30
41
  "AFFINITY",
31
42
  "AGENCYZOOM",
@@ -37,6 +48,7 @@ IntegrationName = typing.Union[
37
48
  "BITBUCKET",
38
49
  "BOX",
39
50
  "BREVO",
51
+ "BREX",
40
52
  "BROWSERBASE_TOOL",
41
53
  "CAL",
42
54
  "CANVAS",
@@ -44,6 +56,7 @@ IntegrationName = typing.Union[
44
56
  "EXA",
45
57
  "GAMMA",
46
58
  "GITLAB",
59
+ "GONG",
47
60
  "FIRECRAWL",
48
61
  "FIGMA",
49
62
  "FIREFLIES",
@@ -59,27 +72,38 @@ IntegrationName = typing.Union[
59
72
  "POSTHOG",
60
73
  "PRODUCTBOARD",
61
74
  "REDDIT",
75
+ "SALESFORCE",
62
76
  "SEMRUSH",
63
77
  "SEMANTICSCHOLAR",
64
78
  "SENDGRID",
65
79
  "SERPAPI",
66
80
  "SHARE_POINT",
81
+ "SHOPIFY",
67
82
  "SHORTCUT",
83
+ "SLACKBOT",
84
+ "SPOTIFY",
68
85
  "STRIPE",
69
86
  "SUPABASE",
70
87
  "TAVILY",
71
88
  "TELEGRAM",
89
+ "TODOIST",
72
90
  "WEBFLOW",
73
91
  "YOUSEARCH",
74
92
  "ZENDESK",
75
93
  "ZENROWS",
76
94
  "DROPBOX",
77
95
  "EVENTBRITE",
96
+ "FACEBOOK",
78
97
  "CONFLUENCE",
79
98
  "COINBASE",
80
99
  "DISCORD",
81
100
  "DOCUSIGN",
82
101
  "TRELLO",
102
+ "HEYREACH",
103
+ "ACTIVE_CAMPAIGN",
104
+ "CUSTOMER_IO",
105
+ "SEGMENT",
106
+ "WHATSAPP",
83
107
  ],
84
108
  typing.Any,
85
109
  ]
@@ -13,6 +13,7 @@ class NodeExecutionFulfilledBody(UniversalBaseModel):
13
13
  invoked_ports: typing.Optional[typing.List[InvokedPort]] = None
14
14
  outputs: typing.Dict[str, typing.Optional[typing.Any]]
15
15
  mocked: typing.Optional[bool] = None
16
+ redacted: typing.Optional[bool] = None
16
17
 
17
18
  if IS_PYDANTIC_V2:
18
19
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -0,0 +1,24 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .severity_enum import SeverityEnum
8
+ from .vellum_code_resource_definition import VellumCodeResourceDefinition
9
+
10
+
11
+ class NodeExecutionLogBody(UniversalBaseModel):
12
+ node_definition: VellumCodeResourceDefinition
13
+ attributes: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
14
+ severity: SeverityEnum
15
+ message: str
16
+
17
+ if IS_PYDANTIC_V2:
18
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
19
+ else:
20
+
21
+ class Config:
22
+ frozen = True
23
+ smart_union = True
24
+ extra = pydantic.Extra.allow
@@ -0,0 +1,47 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from __future__ import annotations
4
+
5
+ import datetime as dt
6
+ import typing
7
+
8
+ import pydantic
9
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel, update_forward_refs
10
+ from .api_version_enum import ApiVersionEnum
11
+ from .node_execution_log_body import NodeExecutionLogBody
12
+
13
+
14
+ class NodeExecutionLogEvent(UniversalBaseModel):
15
+ parent: typing.Optional["ParentContext"] = None
16
+ links: typing.Optional[typing.List["SpanLink"]] = None
17
+ name: typing.Literal["node.execution.log"] = "node.execution.log"
18
+ body: NodeExecutionLogBody
19
+ id: str
20
+ timestamp: dt.datetime
21
+ api_version: typing.Optional[ApiVersionEnum] = None
22
+ trace_id: str
23
+ span_id: str
24
+
25
+ if IS_PYDANTIC_V2:
26
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
27
+ else:
28
+
29
+ class Config:
30
+ frozen = True
31
+ smart_union = True
32
+ extra = pydantic.Extra.allow
33
+
34
+
35
+ from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
36
+ from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
37
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
38
+ from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
39
+ from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
40
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
41
+ from .span_link import SpanLink # noqa: E402, F401, I001
42
+ from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
43
+ from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
44
+ from .workflow_sandbox_parent_context import WorkflowSandboxParentContext # noqa: E402, F401, I001
45
+ from .parent_context import ParentContext # noqa: E402, F401, I001
46
+
47
+ update_forward_refs(NodeExecutionLogEvent)
@@ -7,6 +7,7 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
7
 
8
8
 
9
9
  class PromptDeploymentReleasePromptDeployment(UniversalBaseModel):
10
+ id: str
10
11
  name: str
11
12
 
12
13
  if IS_PYDANTIC_V2:
@@ -0,0 +1,24 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+
8
+
9
+ class RunnerConfigRequest(UniversalBaseModel):
10
+ container_image_name: typing.Optional[str] = None
11
+ container_image_tag: typing.Optional[str] = None
12
+ codegen_version: typing.Optional[str] = None
13
+ sdk_version: typing.Optional[str] = None
14
+ is_deployment_inlining_enabled: typing.Optional[bool] = None
15
+ server_version: typing.Optional[str] = None
16
+
17
+ if IS_PYDANTIC_V2:
18
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
19
+ else:
20
+
21
+ class Config:
22
+ frozen = True
23
+ smart_union = True
24
+ extra = pydantic.Extra.allow
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ SeverityEnum = typing.Union[typing.Literal["DEBUG", "INFO", "WARNING", "ERROR"], typing.Any]
@@ -13,6 +13,7 @@ class SlimComposioToolDefinition(UniversalBaseModel):
13
13
  name: str
14
14
  label: str
15
15
  description: str
16
+ toolkit_version: str
16
17
 
17
18
  if IS_PYDANTIC_V2:
18
19
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -38,6 +38,8 @@ class SlimDocumentDocumentToDocumentIndex(UniversalBaseModel):
38
38
  * `FAILED` - Failed
39
39
  """
40
40
 
41
+ processing_state: typing.Optional[str] = None
42
+
41
43
  if IS_PYDANTIC_V2:
42
44
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
43
45
  else:
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ TypeCheckerEnum = typing.Union[typing.Literal["mypy", "zuban", "default"], typing.Any]
@@ -10,7 +10,11 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
10
10
  class VellumAudio(VellumFileMixin):
11
11
  src: str = pydantic.Field()
12
12
  """
13
- A valid data URL containing the audio data.
13
+ The reference to the source data. This can be one of the following formats:
14
+ 1. A base64-encoded data URL (e.g., 'data:application/pdf;base64,JVBERi0xLjQKJcfs...').
15
+ 2. A url pointing to a file accessible over HTTP or HTTPS.
16
+ 3. A reference to a file that's been previously uploaded to Vellum, in the form of 'vellum:uploaded-file:{uploaded_file_id}'.
17
+ You can use the Uploaded Files API to retrieve the url of the uploaded file given its ID. See https://docs.vellum.ai/developers/client-sdk/uploaded-files/retrieve for details.
14
18
  """
15
19
 
16
20
  metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
@@ -9,7 +9,11 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
9
9
  class VellumAudioRequest(UniversalBaseModel):
10
10
  src: str = pydantic.Field()
11
11
  """
12
- A valid data URL containing the audio data.
12
+ The reference to the source data. This can be one of the following formats:
13
+ 1. A base64-encoded data URL (e.g., 'data:application/pdf;base64,JVBERi0xLjQKJcfs...').
14
+ 2. A url pointing to a file accessible over HTTP or HTTPS.
15
+ 3. A reference to a file that's been previously uploaded to Vellum, in the form of 'vellum:uploaded-file:{uploaded_file_id}'.
16
+ You can use the Uploaded Files API to retrieve the url of the uploaded file given its ID. See https://docs.vellum.ai/developers/client-sdk/uploaded-files/retrieve for details.
13
17
  """
14
18
 
15
19
  metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
@@ -10,7 +10,11 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
10
10
  class VellumDocument(VellumFileMixin):
11
11
  src: str = pydantic.Field()
12
12
  """
13
- A valid data URL containing the document data.
13
+ The reference to the source data. This can be one of the following formats:
14
+ 1. A base64-encoded data URL (e.g., 'data:application/pdf;base64,JVBERi0xLjQKJcfs...').
15
+ 2. A url pointing to a file accessible over HTTP or HTTPS.
16
+ 3. A reference to a file that's been previously uploaded to Vellum, in the form of 'vellum:uploaded-file:{uploaded_file_id}'.
17
+ You can use the Uploaded Files API to retrieve the url of the uploaded file given its ID. See https://docs.vellum.ai/developers/client-sdk/uploaded-files/retrieve for details.
14
18
  """
15
19
 
16
20
  metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
@@ -9,7 +9,11 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
9
9
  class VellumDocumentRequest(UniversalBaseModel):
10
10
  src: str = pydantic.Field()
11
11
  """
12
- A valid data URL containing the document data.
12
+ The reference to the source data. This can be one of the following formats:
13
+ 1. A base64-encoded data URL (e.g., 'data:application/pdf;base64,JVBERi0xLjQKJcfs...').
14
+ 2. A url pointing to a file accessible over HTTP or HTTPS.
15
+ 3. A reference to a file that's been previously uploaded to Vellum, in the form of 'vellum:uploaded-file:{uploaded_file_id}'.
16
+ You can use the Uploaded Files API to retrieve the url of the uploaded file given its ID. See https://docs.vellum.ai/developers/client-sdk/uploaded-files/retrieve for details.
13
17
  """
14
18
 
15
19
  metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
@@ -10,7 +10,11 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
10
10
  class VellumImage(VellumFileMixin):
11
11
  src: str = pydantic.Field()
12
12
  """
13
- A valid data URL containing the image data.
13
+ The reference to the source data. This can be one of the following formats:
14
+ 1. A base64-encoded data URL (e.g., 'data:application/pdf;base64,JVBERi0xLjQKJcfs...').
15
+ 2. A url pointing to a file accessible over HTTP or HTTPS.
16
+ 3. A reference to a file that's been previously uploaded to Vellum, in the form of 'vellum:uploaded-file:{uploaded_file_id}'.
17
+ You can use the Uploaded Files API to retrieve the url of the uploaded file given its ID. See https://docs.vellum.ai/developers/client-sdk/uploaded-files/retrieve for details.
14
18
  """
15
19
 
16
20
  metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
@@ -9,7 +9,11 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
9
9
  class VellumImageRequest(UniversalBaseModel):
10
10
  src: str = pydantic.Field()
11
11
  """
12
- A valid data URL containing the image data.
12
+ The reference to the source data. This can be one of the following formats:
13
+ 1. A base64-encoded data URL (e.g., 'data:application/pdf;base64,JVBERi0xLjQKJcfs...').
14
+ 2. A url pointing to a file accessible over HTTP or HTTPS.
15
+ 3. A reference to a file that's been previously uploaded to Vellum, in the form of 'vellum:uploaded-file:{uploaded_file_id}'.
16
+ You can use the Uploaded Files API to retrieve the url of the uploaded file given its ID. See https://docs.vellum.ai/developers/client-sdk/uploaded-files/retrieve for details.
13
17
  """
14
18
 
15
19
  metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
@@ -4,6 +4,7 @@ import typing
4
4
 
5
5
  from .node_execution_fulfilled_event import NodeExecutionFulfilledEvent
6
6
  from .node_execution_initiated_event import NodeExecutionInitiatedEvent
7
+ from .node_execution_log_event import NodeExecutionLogEvent
7
8
  from .node_execution_paused_event import NodeExecutionPausedEvent
8
9
  from .node_execution_rejected_event import NodeExecutionRejectedEvent
9
10
  from .node_execution_resumed_event import NodeExecutionResumedEvent
@@ -16,4 +17,5 @@ VellumNodeExecutionEvent = typing.Union[
16
17
  NodeExecutionRejectedEvent,
17
18
  NodeExecutionPausedEvent,
18
19
  NodeExecutionResumedEvent,
20
+ NodeExecutionLogEvent,
19
21
  ]
@@ -5,7 +5,9 @@ from __future__ import annotations
5
5
  import typing
6
6
 
7
7
  import pydantic
8
+ import typing_extensions
8
9
  from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel, update_forward_refs
10
+ from ..core.serialization import FieldMetadata
9
11
  from .vellum_variable_extensions import VellumVariableExtensions
10
12
  from .vellum_variable_type import VellumVariableType
11
13
 
@@ -17,6 +19,9 @@ class VellumVariable(UniversalBaseModel):
17
19
  required: typing.Optional[bool] = None
18
20
  default: typing.Optional["VellumValue"] = None
19
21
  extensions: typing.Optional[VellumVariableExtensions] = None
22
+ schema_: typing_extensions.Annotated[
23
+ typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]], FieldMetadata(alias="schema")
24
+ ] = None
20
25
 
21
26
  if IS_PYDANTIC_V2:
22
27
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -13,6 +13,7 @@ class VellumVariableExtensions(UniversalBaseModel):
13
13
 
14
14
  color: typing.Optional[str] = None
15
15
  description: typing.Optional[str] = None
16
+ title: typing.Optional[str] = None
16
17
 
17
18
  if IS_PYDANTIC_V2:
18
19
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -18,6 +18,7 @@ VellumVariableType = typing.Union[
18
18
  "DOCUMENT",
19
19
  "NULL",
20
20
  "THINKING",
21
+ "REFERENCE",
21
22
  ],
22
23
  typing.Any,
23
24
  ]
@@ -10,7 +10,11 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
10
10
  class VellumVideo(VellumFileMixin):
11
11
  src: str = pydantic.Field()
12
12
  """
13
- A valid data URL containing the video data.
13
+ The reference to the source data. This can be one of the following formats:
14
+ 1. A base64-encoded data URL (e.g., 'data:application/pdf;base64,JVBERi0xLjQKJcfs...').
15
+ 2. A url pointing to a file accessible over HTTP or HTTPS.
16
+ 3. A reference to a file that's been previously uploaded to Vellum, in the form of 'vellum:uploaded-file:{uploaded_file_id}'.
17
+ You can use the Uploaded Files API to retrieve the url of the uploaded file given its ID. See https://docs.vellum.ai/developers/client-sdk/uploaded-files/retrieve for details.
14
18
  """
15
19
 
16
20
  metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
@@ -9,7 +9,11 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
9
9
  class VellumVideoRequest(UniversalBaseModel):
10
10
  src: str = pydantic.Field()
11
11
  """
12
- A valid data URL containing the video data.
12
+ The reference to the source data. This can be one of the following formats:
13
+ 1. A base64-encoded data URL (e.g., 'data:application/pdf;base64,JVBERi0xLjQKJcfs...').
14
+ 2. A url pointing to a file accessible over HTTP or HTTPS.
15
+ 3. A reference to a file that's been previously uploaded to Vellum, in the form of 'vellum:uploaded-file:{uploaded_file_id}'.
16
+ You can use the Uploaded Files API to retrieve the url of the uploaded file given its ID. See https://docs.vellum.ai/developers/client-sdk/uploaded-files/retrieve for details.
13
17
  """
14
18
 
15
19
  metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
@@ -7,6 +7,7 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
7
 
8
8
 
9
9
  class WorkflowDeploymentReleaseWorkflowDeployment(UniversalBaseModel):
10
+ id: str
10
11
  name: str
11
12
 
12
13
  if IS_PYDANTIC_V2:
@@ -5,6 +5,7 @@ from pydantic import Field
5
5
 
6
6
  from .node_execution_fulfilled_event import NodeExecutionFulfilledEvent
7
7
  from .node_execution_initiated_event import NodeExecutionInitiatedEvent
8
+ from .node_execution_log_event import NodeExecutionLogEvent
8
9
  from .node_execution_paused_event import NodeExecutionPausedEvent
9
10
  from .node_execution_rejected_event import NodeExecutionRejectedEvent
10
11
  from .node_execution_resumed_event import NodeExecutionResumedEvent
@@ -25,6 +26,7 @@ WorkflowEvent = typing.Annotated[
25
26
  NodeExecutionRejectedEvent,
26
27
  NodeExecutionPausedEvent,
27
28
  NodeExecutionResumedEvent,
29
+ NodeExecutionLogEvent,
28
30
  WorkflowExecutionInitiatedEvent,
29
31
  WorkflowExecutionStreamingEvent,
30
32
  WorkflowExecutionRejectedEvent,
@@ -12,6 +12,7 @@ class WorkflowExecutionFulfilledBody(UniversalBaseModel):
12
12
  outputs: typing.Dict[str, typing.Optional[typing.Any]]
13
13
  final_state: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
14
14
  server_metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
15
+ redacted: typing.Optional[bool] = None
15
16
 
16
17
  if IS_PYDANTIC_V2:
17
18
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -17,7 +17,7 @@ class WorkflowResultEventOutputDataArray(UniversalBaseModel):
17
17
  id: typing.Optional[str] = None
18
18
  name: str
19
19
  state: WorkflowNodeResultEventState
20
- node_id: str
20
+ node_id: typing.Optional[str] = None
21
21
  delta: typing.Optional[str] = pydantic.Field(default=None)
22
22
  """
23
23
  The newly output string value. Only relevant for string outputs with a state of STREAMING.
@@ -16,7 +16,7 @@ class WorkflowResultEventOutputDataChatHistory(UniversalBaseModel):
16
16
  id: typing.Optional[str] = None
17
17
  name: str
18
18
  state: WorkflowNodeResultEventState
19
- node_id: str
19
+ node_id: typing.Optional[str] = None
20
20
  delta: typing.Optional[str] = pydantic.Field(default=None)
21
21
  """
22
22
  The newly output string value. Only relevant for string outputs with a state of STREAMING.
@@ -16,7 +16,7 @@ class WorkflowResultEventOutputDataError(UniversalBaseModel):
16
16
  id: typing.Optional[str] = None
17
17
  name: str
18
18
  state: WorkflowNodeResultEventState
19
- node_id: str
19
+ node_id: typing.Optional[str] = None
20
20
  delta: typing.Optional[str] = pydantic.Field(default=None)
21
21
  """
22
22
  The newly output string value. Only relevant for string outputs with a state of STREAMING.
@@ -16,7 +16,7 @@ class WorkflowResultEventOutputDataFunctionCall(UniversalBaseModel):
16
16
  id: typing.Optional[str] = None
17
17
  name: str
18
18
  state: WorkflowNodeResultEventState
19
- node_id: str
19
+ node_id: typing.Optional[str] = None
20
20
  delta: typing.Optional[str] = pydantic.Field(default=None)
21
21
  """
22
22
  The newly output string value. Only relevant for string outputs with a state of STREAMING.
@@ -15,7 +15,7 @@ class WorkflowResultEventOutputDataJson(UniversalBaseModel):
15
15
  id: typing.Optional[str] = None
16
16
  name: str
17
17
  state: WorkflowNodeResultEventState
18
- node_id: str
18
+ node_id: typing.Optional[str] = None
19
19
  delta: typing.Optional[str] = pydantic.Field(default=None)
20
20
  """
21
21
  The newly output string value. Only relevant for string outputs with a state of STREAMING.
@@ -15,7 +15,7 @@ class WorkflowResultEventOutputDataNumber(UniversalBaseModel):
15
15
  id: typing.Optional[str] = None
16
16
  name: str
17
17
  state: WorkflowNodeResultEventState
18
- node_id: str
18
+ node_id: typing.Optional[str] = None
19
19
  delta: typing.Optional[str] = pydantic.Field(default=None)
20
20
  """
21
21
  The newly output string value. Only relevant for string outputs with a state of STREAMING.
@@ -16,7 +16,7 @@ class WorkflowResultEventOutputDataSearchResults(UniversalBaseModel):
16
16
  id: typing.Optional[str] = None
17
17
  name: str
18
18
  state: WorkflowNodeResultEventState
19
- node_id: str
19
+ node_id: typing.Optional[str] = None
20
20
  delta: typing.Optional[str] = pydantic.Field(default=None)
21
21
  """
22
22
  The newly output string value. Only relevant for string outputs with a state of STREAMING.
@@ -15,7 +15,7 @@ class WorkflowResultEventOutputDataString(UniversalBaseModel):
15
15
  id: typing.Optional[str] = None
16
16
  name: str
17
17
  state: WorkflowNodeResultEventState
18
- node_id: str
18
+ node_id: typing.Optional[str] = None
19
19
  delta: typing.Optional[str] = pydantic.Field(default=None)
20
20
  """
21
21
  The newly output string value, meant to be concatenated with all previous. Will be non-null for events of state STREAMING.
@@ -0,0 +1,8 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ from .node_execution_fulfilled_event import NodeExecutionFulfilledEvent
6
+ from .node_execution_rejected_event import NodeExecutionRejectedEvent
7
+
8
+ WorkflowSandboxExecuteNodeResponse = typing.Union[NodeExecutionFulfilledEvent, NodeExecutionRejectedEvent]
@@ -27,6 +27,39 @@ NODE_ATTRIBUTE_PATTERN = re.compile(NODE_ATTRIBUTE_REGEX)
27
27
  NON_UNDERSCORE_PATTERN = re.compile(r"^[^_].*$")
28
28
  COUNT_PATTERN = re.compile(r"^count$")
29
29
 
30
+ # Check if mypy.nodes.TypeAlias supports the 'module' parameter (added in mypy 1.14+)
31
+ _MYPY_TYPE_ALIAS_HAS_MODULE = hasattr(MypyTypeAlias, "module")
32
+
33
+
34
+ def _create_type_alias(
35
+ target: MypyType,
36
+ fullname: str,
37
+ line: int,
38
+ column: int,
39
+ module: Optional[str] = None,
40
+ ) -> MypyTypeAlias:
41
+ """Create a TypeAlias with backward compatibility for different mypy versions.
42
+
43
+ In mypy 1.14+, the TypeAlias constructor requires a 'module' parameter.
44
+ This helper function handles both old and new mypy versions.
45
+ """
46
+ if _MYPY_TYPE_ALIAS_HAS_MODULE:
47
+ return MypyTypeAlias( # type: ignore[call-arg]
48
+ target=target,
49
+ fullname=fullname,
50
+ module=module,
51
+ line=line,
52
+ column=column,
53
+ )
54
+ else:
55
+ return MypyTypeAlias(
56
+ target=target,
57
+ fullname=fullname,
58
+ line=line,
59
+ column=column,
60
+ )
61
+
62
+
30
63
  DESCRIPTOR_PATHS: list[tuple[str, str, re.Pattern[str]]] = [
31
64
  (
32
65
  "vellum.workflows.outputs.base.BaseOutputs",
@@ -617,11 +650,11 @@ class VellumMypyPlugin(Plugin):
617
650
 
618
651
  new_fulfilled_event = fulfilled_event.copy_modified(args=(Instance(outputs_node, []),))
619
652
  return TypeAliasType(
620
- alias=MypyTypeAlias(
653
+ alias=_create_type_alias(
621
654
  target=alias_target.copy_modified(
622
655
  args=[
623
656
  TypeAliasType(
624
- alias=MypyTypeAlias(
657
+ alias=_create_type_alias(
625
658
  target=UnionType(
626
659
  items=[
627
660
  new_fulfilled_event if index == fulfilled_event_index else item
@@ -631,6 +664,7 @@ class VellumMypyPlugin(Plugin):
631
664
  fullname=union_alias.alias.fullname,
632
665
  line=union_alias.alias.line,
633
666
  column=union_alias.alias.column,
667
+ module=getattr(union_alias.alias, "module", None),
634
668
  ),
635
669
  args=union_alias.args,
636
670
  line=union_alias.line,
@@ -642,6 +676,7 @@ class VellumMypyPlugin(Plugin):
642
676
  fullname=alias.fullname,
643
677
  line=alias.line,
644
678
  column=alias.column,
679
+ module=getattr(alias, "module", None),
645
680
  ),
646
681
  args=ctx.default_return_type.args,
647
682
  line=ctx.default_return_type.line,
@@ -0,0 +1,3 @@
1
+ # WARNING: This file will be removed in a future release. Please import from "vellum.client" instead.
2
+
3
+ from vellum.client.types.check_workflow_execution_status_error import *
@@ -0,0 +1,3 @@
1
+ # WARNING: This file will be removed in a future release. Please import from "vellum.client" instead.
2
+
3
+ from vellum.client.types.check_workflow_execution_status_response import *
@@ -0,0 +1,3 @@
1
+ # WARNING: This file will be removed in a future release. Please import from "vellum.client" instead.
2
+
3
+ from vellum.client.types.code_execution_package_request import *
@@ -0,0 +1,3 @@
1
+ # WARNING: This file will be removed in a future release. Please import from "vellum.client" instead.
2
+
3
+ from vellum.client.types.node_execution_log_body import *
@@ -0,0 +1,3 @@
1
+ # WARNING: This file will be removed in a future release. Please import from "vellum.client" instead.
2
+
3
+ from vellum.client.types.node_execution_log_event import *
@@ -0,0 +1,3 @@
1
+ # WARNING: This file will be removed in a future release. Please import from "vellum.client" instead.
2
+
3
+ from vellum.client.types.runner_config_request import *