vellum-ai 1.4.0__py3-none-any.whl → 1.4.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. vellum/client/core/client_wrapper.py +2 -2
  2. vellum/workflows/constants.py +4 -0
  3. vellum/workflows/emitters/base.py +8 -0
  4. vellum/workflows/emitters/vellum_emitter.py +10 -0
  5. vellum/workflows/events/exception_handling.py +58 -0
  6. vellum/workflows/events/tests/test_event.py +27 -0
  7. vellum/workflows/exceptions.py +11 -6
  8. vellum/workflows/inputs/base.py +1 -0
  9. vellum/workflows/inputs/dataset_row.py +2 -2
  10. vellum/workflows/nodes/bases/base.py +12 -1
  11. vellum/workflows/nodes/displayable/bases/base_prompt_node/node.py +6 -0
  12. vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py +16 -2
  13. vellum/workflows/nodes/displayable/final_output_node/node.py +59 -0
  14. vellum/workflows/nodes/displayable/final_output_node/tests/test_node.py +40 -1
  15. vellum/workflows/nodes/displayable/tool_calling_node/node.py +3 -0
  16. vellum/workflows/nodes/displayable/tool_calling_node/tests/test_utils.py +64 -0
  17. vellum/workflows/nodes/displayable/tool_calling_node/utils.py +30 -41
  18. vellum/workflows/nodes/mocks.py +15 -4
  19. vellum/workflows/tests/test_dataset_row.py +29 -0
  20. vellum/workflows/types/core.py +13 -2
  21. vellum/workflows/types/definition.py +13 -1
  22. vellum/workflows/utils/functions.py +63 -26
  23. vellum/workflows/utils/tests/test_functions.py +10 -6
  24. vellum/workflows/vellum_client.py +7 -1
  25. vellum/workflows/workflows/base.py +8 -0
  26. {vellum_ai-1.4.0.dist-info → vellum_ai-1.4.2.dist-info}/METADATA +1 -1
  27. {vellum_ai-1.4.0.dist-info → vellum_ai-1.4.2.dist-info}/RECORD +38 -36
  28. vellum_cli/tests/test_pull.py +1 -0
  29. vellum_cli/tests/test_push.py +2 -0
  30. vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py +1 -3
  31. vellum_ee/workflows/display/nodes/vellum/tests/test_final_output_node.py +78 -0
  32. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_inline_workflow_serialization.py +5 -0
  33. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_serialization.py +5 -0
  34. vellum_ee/workflows/display/types.py +3 -0
  35. vellum_ee/workflows/display/workflows/base_workflow_display.py +6 -0
  36. {vellum_ai-1.4.0.dist-info → vellum_ai-1.4.2.dist-info}/LICENSE +0 -0
  37. {vellum_ai-1.4.0.dist-info → vellum_ai-1.4.2.dist-info}/WHEEL +0 -0
  38. {vellum_ai-1.4.0.dist-info → vellum_ai-1.4.2.dist-info}/entry_points.txt +0 -0
@@ -123,6 +123,7 @@ class MockNodeExecution(UniversalBaseModel):
123
123
  raise WorkflowInitializationException(
124
124
  message="Failed to validate mock node executions",
125
125
  code=WorkflowErrorCode.INVALID_INPUTS,
126
+ workflow_definition=workflow,
126
127
  ) from e
127
128
 
128
129
  nodes = {node.__id__: node for node in workflow.get_nodes()}
@@ -186,7 +187,10 @@ class MockNodeExecution(UniversalBaseModel):
186
187
  elif raw_logical_condition.operator == "!=":
187
188
  return lhs.does_not_equal(rhs)
188
189
  else:
189
- raise WorkflowInitializationException(f"Unsupported logical operator: {raw_logical_condition.operator}")
190
+ raise WorkflowInitializationException(
191
+ message=f"Unsupported logical operator: {raw_logical_condition.operator}",
192
+ workflow_definition=workflow,
193
+ )
190
194
 
191
195
  def _translate_raw_logical_expression_variable(
192
196
  raw_variable: _RawMockWorkflowNodeExecutionValuePointer,
@@ -197,7 +201,10 @@ class MockNodeExecution(UniversalBaseModel):
197
201
  node = nodes[raw_variable.node_id]
198
202
  return node.Execution.count
199
203
  else:
200
- raise WorkflowInitializationException(f"Unsupported logical expression type: {raw_variable.type}")
204
+ raise WorkflowInitializationException(
205
+ message=f"Unsupported logical expression type: {raw_variable.type}",
206
+ workflow_definition=workflow,
207
+ )
201
208
 
202
209
  mock_node_executions = []
203
210
  for mock_workflow_node_config in mock_workflow_node_configs:
@@ -212,8 +219,10 @@ class MockNodeExecution(UniversalBaseModel):
212
219
  for then_output in mock_execution.then_outputs:
213
220
  node_output_name = node_output_name_by_id.get(then_output.output_id)
214
221
  if node_output_name is None:
222
+ node_id = mock_workflow_node_config.node_id
215
223
  raise WorkflowInitializationException(
216
- f"Output {then_output.output_id} not found in node {mock_workflow_node_config.node_id}"
224
+ message=f"Output {then_output.output_id} not found in node {node_id}",
225
+ workflow_definition=workflow,
217
226
  )
218
227
 
219
228
  resolved_output_reference = _translate_raw_logical_expression_variable(then_output.value)
@@ -224,8 +233,10 @@ class MockNodeExecution(UniversalBaseModel):
224
233
  resolved_output_reference._value,
225
234
  )
226
235
  else:
236
+ ref_type = type(resolved_output_reference)
227
237
  raise WorkflowInitializationException(
228
- f"Unsupported resolved output reference type: {type(resolved_output_reference)}"
238
+ message=f"Unsupported resolved output reference type: {ref_type}",
239
+ workflow_definition=workflow,
229
240
  )
230
241
 
231
242
  mock_node_executions.append(
@@ -97,3 +97,32 @@ def test_dataset_row_with_default_inputs():
97
97
  assert serialized_dict["label"] == "defaults_test"
98
98
  assert serialized_dict["inputs"]["required_field"] == "required_value"
99
99
  assert serialized_dict["inputs"]["optional_with_default"] == "default_value"
100
+
101
+
102
+ def test_dataset_row_without_inputs():
103
+ """
104
+ Test that DatasetRow can be created with only a label (no inputs parameter).
105
+ """
106
+
107
+ dataset_row = DatasetRow(label="test_label_only")
108
+
109
+ serialized_dict = dataset_row.model_dump()
110
+
111
+ assert serialized_dict["label"] == "test_label_only"
112
+ assert serialized_dict["inputs"] == {}
113
+
114
+ assert isinstance(dataset_row.inputs, BaseInputs)
115
+
116
+
117
+ def test_dataset_row_with_empty_inputs():
118
+ """
119
+ Test that DatasetRow can be created with explicitly empty BaseInputs.
120
+ """
121
+
122
+ # GIVEN a DatasetRow with explicitly empty BaseInputs
123
+ dataset_row = DatasetRow(label="test_label", inputs=BaseInputs())
124
+
125
+ serialized_dict = dataset_row.model_dump()
126
+
127
+ assert serialized_dict["label"] == "test_label"
128
+ assert serialized_dict["inputs"] == {}
@@ -13,7 +13,12 @@ from typing import ( # type: ignore[attr-defined]
13
13
  )
14
14
 
15
15
  from vellum.client.core.pydantic_utilities import UniversalBaseModel
16
- from vellum.workflows.types.definition import ComposioToolDefinition, DeploymentDefinition, MCPServer
16
+ from vellum.workflows.types.definition import (
17
+ ComposioToolDefinition,
18
+ DeploymentDefinition,
19
+ MCPServer,
20
+ VellumIntegrationToolDefinition,
21
+ )
17
22
 
18
23
  if TYPE_CHECKING:
19
24
  from vellum.workflows.workflows.base import BaseWorkflow
@@ -51,5 +56,11 @@ class ConditionType(Enum):
51
56
 
52
57
 
53
58
  # Type alias for functions that can be called in tool calling nodes
54
- ToolBase = Union[Callable[..., Any], DeploymentDefinition, Type["BaseWorkflow"], ComposioToolDefinition]
59
+ ToolBase = Union[
60
+ Callable[..., Any],
61
+ DeploymentDefinition,
62
+ Type["BaseWorkflow"],
63
+ ComposioToolDefinition,
64
+ VellumIntegrationToolDefinition,
65
+ ]
55
66
  Tool = Union[ToolBase, MCPServer]
@@ -10,7 +10,7 @@ from vellum import Vellum
10
10
  from vellum.client.core.pydantic_utilities import UniversalBaseModel
11
11
  from vellum.client.types.code_resource_definition import CodeResourceDefinition as ClientCodeResourceDefinition
12
12
  from vellum.client.types.vellum_variable import VellumVariable
13
- from vellum.workflows.constants import AuthorizationType
13
+ from vellum.workflows.constants import AuthorizationType, VellumIntegrationProviderType
14
14
  from vellum.workflows.references.environment_variable import EnvironmentVariableReference
15
15
 
16
16
 
@@ -165,6 +165,18 @@ class ComposioToolDefinition(UniversalBaseModel):
165
165
  self.name = self.action.lower()
166
166
 
167
167
 
168
+ class VellumIntegrationToolDefinition(UniversalBaseModel):
169
+ type: Literal["INTEGRATION"] = "INTEGRATION"
170
+
171
+ # Core identification
172
+ provider: VellumIntegrationProviderType
173
+ integration: str # "GITHUB", "SLACK", etc.
174
+ name: str # Specific action like "GITHUB_CREATE_AN_ISSUE"
175
+
176
+ # Required for tool base consistency
177
+ description: str
178
+
179
+
168
180
  class MCPServer(UniversalBaseModel):
169
181
  type: Literal["MCP_SERVER"] = "MCP_SERVER"
170
182
  name: str
@@ -1,19 +1,6 @@
1
1
  import dataclasses
2
2
  import inspect
3
- from typing import (
4
- TYPE_CHECKING,
5
- Annotated,
6
- Any,
7
- Callable,
8
- Dict,
9
- List,
10
- Literal,
11
- Optional,
12
- Type,
13
- Union,
14
- get_args,
15
- get_origin,
16
- )
3
+ from typing import TYPE_CHECKING, Annotated, Any, Callable, List, Literal, Optional, Type, Union, get_args, get_origin
17
4
 
18
5
  from pydantic import BaseModel
19
6
  from pydantic_core import PydanticUndefined
@@ -21,8 +8,15 @@ from pydash import snake_case
21
8
 
22
9
  from vellum import Vellum
23
10
  from vellum.client.types.function_definition import FunctionDefinition
11
+ from vellum.workflows.integrations.composio_service import ComposioService
24
12
  from vellum.workflows.integrations.mcp_service import MCPService
25
- from vellum.workflows.types.definition import MCPServer, MCPToolDefinition
13
+ from vellum.workflows.types.definition import (
14
+ ComposioToolDefinition,
15
+ DeploymentDefinition,
16
+ MCPServer,
17
+ MCPToolDefinition,
18
+ VellumIntegrationToolDefinition,
19
+ )
26
20
  from vellum.workflows.utils.vellum_variables import vellum_variable_type_to_openapi_type
27
21
 
28
22
  if TYPE_CHECKING:
@@ -238,25 +232,21 @@ def compile_inline_workflow_function_definition(workflow_class: Type["BaseWorkfl
238
232
 
239
233
 
240
234
  def compile_workflow_deployment_function_definition(
241
- deployment_config: Dict[str, str],
235
+ deployment_definition: DeploymentDefinition,
242
236
  vellum_client: Vellum,
243
237
  ) -> FunctionDefinition:
244
238
  """
245
239
  Converts a deployment workflow config into our Vellum-native FunctionDefinition type.
246
240
 
247
241
  Args:
248
- deployment_config: Dict with 'deployment' and 'release_tag' keys
242
+ deployment_definition: DeploymentDefinition instance
249
243
  vellum_client: Vellum client instance
250
244
  """
251
- deployment = deployment_config["deployment"]
252
- release_tag = deployment_config["release_tag"]
253
-
254
- workflow_deployment_release = vellum_client.workflow_deployments.retrieve_workflow_deployment_release(
255
- deployment, release_tag
256
- )
245
+ release_info = deployment_definition.get_release_info(vellum_client)
257
246
 
258
- input_variables = workflow_deployment_release.workflow_version.input_variables
259
- description = workflow_deployment_release.description
247
+ name = release_info["name"]
248
+ description = release_info["description"]
249
+ input_variables = release_info["input_variables"]
260
250
 
261
251
  properties = {}
262
252
  required = []
@@ -270,7 +260,7 @@ def compile_workflow_deployment_function_definition(
270
260
  parameters = {"type": "object", "properties": properties, "required": required}
271
261
 
272
262
  return FunctionDefinition(
273
- name=deployment.replace("-", ""),
263
+ name=name.replace("-", ""),
274
264
  description=description,
275
265
  parameters=parameters,
276
266
  )
@@ -300,6 +290,53 @@ def compile_mcp_tool_definition(server_def: MCPServer) -> List[MCPToolDefinition
300
290
  return []
301
291
 
302
292
 
293
+ def compile_composio_tool_definition(tool_def: ComposioToolDefinition) -> FunctionDefinition:
294
+ """Hydrate a ComposioToolDefinition with detailed information from the Composio API.
295
+
296
+ Args:
297
+ tool_def: The basic ComposioToolDefinition to enhance
298
+
299
+ Returns:
300
+ FunctionDefinition with detailed parameters and description
301
+ """
302
+ try:
303
+ composio_service = ComposioService()
304
+ tool_details = composio_service.get_tool_by_slug(tool_def.action)
305
+
306
+ # Create a FunctionDefinition directly with proper field extraction
307
+ return FunctionDefinition(
308
+ name=tool_def.name,
309
+ description=tool_details.get("description", tool_def.description),
310
+ parameters=tool_details.get("input_parameters", {}),
311
+ )
312
+ except Exception:
313
+ # If hydration fails (including no API key), return basic function definition
314
+ return FunctionDefinition(
315
+ name=tool_def.name,
316
+ description=tool_def.description,
317
+ parameters={},
318
+ )
319
+
320
+
321
+ def compile_vellum_integration_tool_definition(tool_def: VellumIntegrationToolDefinition) -> FunctionDefinition:
322
+ """Compile a VellumIntegrationToolDefinition into a FunctionDefinition.
323
+
324
+ TODO: Implement when VellumIntegrationService is created.
325
+
326
+ Args:
327
+ tool_def: The VellumIntegrationToolDefinition to compile
328
+
329
+ Returns:
330
+ FunctionDefinition with tool parameters and description
331
+ """
332
+ # TODO: Implement when VellumIntegrationService is available
333
+ # This will eventually use VellumIntegrationService to fetch tool details
334
+ raise NotImplementedError(
335
+ "VellumIntegrationToolDefinition compilation coming soon. "
336
+ "This will be implemented when the VellumIntegrationService is created."
337
+ )
338
+
339
+
303
340
  def use_tool_inputs(**inputs):
304
341
  """
305
342
  Decorator to specify which parameters of a tool function should be provided
@@ -13,6 +13,7 @@ from vellum.workflows import BaseWorkflow
13
13
  from vellum.workflows.inputs.base import BaseInputs
14
14
  from vellum.workflows.nodes.bases.base import BaseNode
15
15
  from vellum.workflows.state.base import BaseState
16
+ from vellum.workflows.types.definition import DeploymentDefinition
16
17
  from vellum.workflows.utils.functions import (
17
18
  compile_function_definition,
18
19
  compile_inline_workflow_function_definition,
@@ -449,14 +450,15 @@ def test_compile_workflow_deployment_function_definition__just_name():
449
450
  # GIVEN a mock Vellum client and deployment
450
451
  mock_client = Mock()
451
452
  mock_release = Mock()
453
+ mock_release.deployment.name = "my_deployment"
452
454
  mock_release.workflow_version.input_variables = []
453
455
  mock_release.description = "This is a test deployment"
454
456
  mock_client.workflow_deployments.retrieve_workflow_deployment_release.return_value = mock_release
455
457
 
456
- deployment_config = {"deployment": "my_deployment", "release_tag": "latest"}
458
+ deployment_definition = DeploymentDefinition(deployment="my_deployment", release_tag="LATEST")
457
459
 
458
460
  # WHEN compiling the deployment workflow function
459
- compiled_function = compile_workflow_deployment_function_definition(deployment_config, mock_client)
461
+ compiled_function = compile_workflow_deployment_function_definition(deployment_definition, mock_client)
460
462
 
461
463
  # THEN it should return the compiled function definition (same structure as function test)
462
464
  assert compiled_function == FunctionDefinition(
@@ -496,13 +498,14 @@ def test_compile_workflow_deployment_function_definition__all_args():
496
498
  mock_inputs.append(mock_input)
497
499
 
498
500
  mock_release.workflow_version.input_variables = mock_inputs
501
+ mock_release.deployment.name = "my_deployment"
499
502
  mock_release.description = "This is a test deployment"
500
503
  mock_client.workflow_deployments.retrieve_workflow_deployment_release.return_value = mock_release
501
504
 
502
- deployment_config = {"deployment": "my_deployment", "release_tag": "latest"}
505
+ deployment_definition = DeploymentDefinition(deployment="my_deployment", release_tag="latest")
503
506
 
504
507
  # WHEN compiling the deployment workflow function
505
- compiled_function = compile_workflow_deployment_function_definition(deployment_config, mock_client)
508
+ compiled_function = compile_workflow_deployment_function_definition(deployment_definition, mock_client)
506
509
 
507
510
  # THEN it should return the compiled function definition
508
511
  assert compiled_function == FunctionDefinition(
@@ -564,13 +567,14 @@ def test_compile_workflow_deployment_function_definition__defaults():
564
567
  mock_inputs.append(mock_input_actual_default)
565
568
 
566
569
  mock_release.workflow_version.input_variables = mock_inputs
570
+ mock_release.deployment.name = "my_deployment"
567
571
  mock_release.description = "This is a test deployment"
568
572
  mock_client.workflow_deployments.retrieve_workflow_deployment_release.return_value = mock_release
569
573
 
570
- deployment_config = {"deployment": "my_deployment", "release_tag": "latest"}
574
+ deployment_definition = DeploymentDefinition(deployment="my_deployment", release_tag="LATEST")
571
575
 
572
576
  # WHEN compiling the deployment workflow function
573
- compiled_function = compile_workflow_deployment_function_definition(deployment_config, mock_client)
577
+ compiled_function = compile_workflow_deployment_function_definition(deployment_definition, mock_client)
574
578
 
575
579
  # THEN it should return the compiled function definition with proper default handling
576
580
  assert compiled_function == FunctionDefinition(
@@ -2,15 +2,21 @@ import os
2
2
  from typing import List, Optional
3
3
 
4
4
  from vellum import Vellum, VellumEnvironment
5
+ from vellum.client.types.api_version_enum import ApiVersionEnum
5
6
 
6
7
 
7
- def create_vellum_client(api_key: Optional[str] = None, api_url: Optional[str] = None) -> Vellum:
8
+ def create_vellum_client(
9
+ api_key: Optional[str] = None,
10
+ api_url: Optional[str] = None,
11
+ api_version: Optional[ApiVersionEnum] = None,
12
+ ) -> Vellum:
8
13
  if api_key is None:
9
14
  api_key = os.getenv("VELLUM_API_KEY", default="")
10
15
 
11
16
  return Vellum(
12
17
  api_key=api_key,
13
18
  environment=create_vellum_environment(api_url),
19
+ api_version=api_version,
14
20
  )
15
21
 
16
22
 
@@ -687,6 +687,14 @@ class BaseWorkflow(Generic[InputsType, StateType], BaseExecutable, metaclass=_Ba
687
687
  raise ValueError(f"Multiple workflows found in {module_path}")
688
688
  return workflows[0]
689
689
 
690
+ def join(self) -> None:
691
+ """
692
+ Wait for all emitters to complete their background work.
693
+ This ensures all pending events are processed before the workflow terminates.
694
+ """
695
+ for emitter in self.emitters:
696
+ emitter.join()
697
+
690
698
 
691
699
  WorkflowExecutionInitiatedBody.model_rebuild()
692
700
  WorkflowExecutionFulfilledBody.model_rebuild()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vellum-ai
3
- Version: 1.4.0
3
+ Version: 1.4.2
4
4
  Summary:
5
5
  License: MIT
6
6
  Requires-Python: >=3.9,<4.0
@@ -19,8 +19,8 @@ vellum_cli/tests/test_init.py,sha256=C_rV4lu-ab5iFoLRizs1XAUnSPdMf7oFuc1i4N4udOU
19
19
  vellum_cli/tests/test_main.py,sha256=qDZG-aQauPwBwM6A2DIu1494n47v3pL28XakTbLGZ-k,272
20
20
  vellum_cli/tests/test_move.py,sha256=FIrL1xlH5oFKGX2MugcTKL8JilpopmUC7hP5OaqF5zw,5213
21
21
  vellum_cli/tests/test_ping.py,sha256=b3aQLd-N59_8w2rRiWqwpB1rlHaKEYVbAj1Y3hi7A-g,2605
22
- vellum_cli/tests/test_pull.py,sha256=f7dK61y82LlJm-FAv-IpfmscJijIfZZrR-rzN1TKkU0,49421
23
- vellum_cli/tests/test_push.py,sha256=10G-H88tdiYvg9CaC8OXOf25UEzWkWWB01vNhuxzjog,41944
22
+ vellum_cli/tests/test_pull.py,sha256=e2XHzcHIx9k-FyuNAl7wMSNsSSebPGyP6U05JGcddFs,49447
23
+ vellum_cli/tests/test_push.py,sha256=2MjkNKr_9Guv5Exjsm3L1BeVXmPkKUcCSiKnp90HgW4,41996
24
24
  vellum_ee/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
25
  vellum_ee/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
26
  vellum_ee/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -44,7 +44,7 @@ vellum_ee/workflows/display/nodes/vellum/conditional_node.py,sha256=dtO9A-rjbDEJ
44
44
  vellum_ee/workflows/display/nodes/vellum/error_node.py,sha256=8tSb8qGVoRIELubu0qPeoDlt1LpiIqc6d9_30GWRd_k,2266
45
45
  vellum_ee/workflows/display/nodes/vellum/final_output_node.py,sha256=z4oeTgKnMGVaGig8XOZm5B_xYL4H7zweYlFweCbhnyA,3000
46
46
  vellum_ee/workflows/display/nodes/vellum/guardrail_node.py,sha256=9_AslWjzj4RHH2sq3SIaq9FU0NCg7ex5TIWrNMybqXg,2173
47
- vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py,sha256=20tahU75zKImm6sAwLIYA9VEC6aNATjZdwA2beNnCIk,11949
47
+ vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py,sha256=muyLv3KMIsUnnXhiPbPhw5B0TO1Z8LUwytpVQKlz4tM,11906
48
48
  vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py,sha256=qy_EtBIAHIhju68PA-skm-WbFnaNEuDoxkSMWRl2SpQ,5870
49
49
  vellum_ee/workflows/display/nodes/vellum/map_node.py,sha256=kwLqptup7bzYUDkGDbpcJPMMusMezsYrG5rSUYl5TlQ,3750
50
50
  vellum_ee/workflows/display/nodes/vellum/merge_node.py,sha256=xMHaPfTSZWYprQenlHm2g47u0a5O9Me_dhAjfqo8nKQ,3116
@@ -58,6 +58,7 @@ vellum_ee/workflows/display/nodes/vellum/tests/__init__.py,sha256=47DEQpj8HBSa-_
58
58
  vellum_ee/workflows/display/nodes/vellum/tests/test_api_node.py,sha256=DQAtsabvn6BE6xWwKNHzMOppzoy1-1dssNnrwbHUdRU,1490
59
59
  vellum_ee/workflows/display/nodes/vellum/tests/test_code_execution_node.py,sha256=oEH9myRn-NAP_mRstV0LifX3ncbmAOjCvyIVCZhACk0,10885
60
60
  vellum_ee/workflows/display/nodes/vellum/tests/test_error_node.py,sha256=540FoWMpJ3EN_DPjHsr9ODJWCRVcUa5hZBn-5T2GiHU,1665
61
+ vellum_ee/workflows/display/nodes/vellum/tests/test_final_output_node.py,sha256=KVftEQxXARlcr-Uuo1ZK_wEHTcTH64OZJ3Ub3mN8x7I,3006
61
62
  vellum_ee/workflows/display/nodes/vellum/tests/test_inline_subworkflow_node.py,sha256=SKOYan-dxY4gsO0R4JyQUyWrABHBN8XImKw9Eeo4wGo,3535
62
63
  vellum_ee/workflows/display/nodes/vellum/tests/test_note_node.py,sha256=uiMB0cOxKZzos7YKnj4ef4DFa2bOvZJWIv-hfbUV6Go,1218
63
64
  vellum_ee/workflows/display/nodes/vellum/tests/test_prompt_deployment_node.py,sha256=54oatuBB98Dfbr08NqZU8ZNhfQdJWhODIwjsegPPJJw,6376
@@ -98,17 +99,17 @@ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_
98
99
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py,sha256=ddPa8gNBYH2tWk92ymngY7M8n74J-8CEre50HISP_-g,7877
99
100
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py,sha256=A7Ef8P1-Nyvsb97bumKT9W2R1LuZaY9IKFV-7iRueog,4010
100
101
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_composio_serialization.py,sha256=oVXCjkU0G56QJmqnd_xIwF3D9bhJwALFibM2wmRhwUk,3739
101
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_inline_workflow_serialization.py,sha256=UD1HU8aEAXSo43JGhjBGE2FGsknHj_zOsIHTo2TLEW0,26470
102
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_inline_workflow_serialization.py,sha256=K7r5hivC3-599oqbkLgj5WMBcrix1znmuhAxs0w0EAE,26692
102
103
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_mcp_serialization.py,sha256=QhQbijeCnFeX1i3SMjHJg2WVAEt5JEO3dhFRv-mofdA,2458
103
104
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_parent_input.py,sha256=__LX4cuzbyZp_1wc-SI8X_J0tnhOkCEmRVUWLKI5aQM,4578
104
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_serialization.py,sha256=tyRlb6ozcsvkeHOC9dsHc4jg3HrHQITDGadi8qbNGns,10215
105
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_serialization.py,sha256=5yaoN5aM6VZZtsleQcSWpbNyWLE1nTnMF6KbLmCrlc8,10437
105
106
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_workflow_deployment_serialization.py,sha256=XIZZr5POo2NLn2uEWm9EC3rejeBMoO4X-JtzTH6mvp4,4074
106
107
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py,sha256=pLCyMScV88DTBXRH7jXaXOEA1GBq8NIipCUFwIAWnwI,2771
107
108
  vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256=exT7U-axwtYgFylagScflSQLJEND51qIAx2UATju6JM,6023
108
109
  vellum_ee/workflows/display/tests/workflow_serialization/test_final_output_node_map_reference_serialization.py,sha256=vl3pxUJlrYRA8zzFJ-gRm7fe-5fviLNSIsUC7imnMqk,3502
109
110
  vellum_ee/workflows/display/tests/workflow_serialization/test_web_search_node_serialization.py,sha256=vbDFBrWUPeeW7cxjNA6SXrsHlYcbOAhlQ4C45Vdnr1c,3428
110
111
  vellum_ee/workflows/display/tests/workflow_serialization/test_workflow_input_parameterization_error.py,sha256=vAdmn3YTBDpo55znbydQxsgg9ASqHcvsUPwiBR_7wfo,1461
111
- vellum_ee/workflows/display/types.py,sha256=cyZruu4sXAdHjwuFc7dydM4DcFNf-pp_CmulXItxac4,3679
112
+ vellum_ee/workflows/display/types.py,sha256=Yko3zPXRjkkPjpx3gCSdNNjegh3CQYsoXFoQWWiTxWU,3777
112
113
  vellum_ee/workflows/display/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
113
114
  vellum_ee/workflows/display/utils/auto_layout.py,sha256=f4GiLn_LazweupfqTpubcdtdfE_vrOcmZudSsnYIY9E,3906
114
115
  vellum_ee/workflows/display/utils/events.py,sha256=DE33uoKW78BZtITJ6L22dMZN3KR1BuZBVC98C_gIyzU,1943
@@ -121,7 +122,7 @@ vellum_ee/workflows/display/utils/tests/test_events.py,sha256=42IEBnMbaQrH8gigw5
121
122
  vellum_ee/workflows/display/utils/vellum.py,sha256=sZwU0KdmZZTKWW62SyxJTl2tC8tN6p_BpZ-lDoinV-U,5670
122
123
  vellum_ee/workflows/display/vellum.py,sha256=J2mdJZ1sdLW535DDUkq_Vm8Z572vhuxHxVZF9deKSdk,391
123
124
  vellum_ee/workflows/display/workflows/__init__.py,sha256=JTB9ObEV3l4gGGdtfBHwVJtTTKC22uj-a-XjTVwXCyA,148
124
- vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=tlhtdNFT4_NJlBDkcn13CQOA49iy6d1F7kl5ONq21Rw,44032
125
+ vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=x8HQK9AN2ql0_PFQAIilS4VEc_6h6Vd5tjhGYy7Hbs8,44329
125
126
  vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py,sha256=gxz76AeCqgAZ9D2lZeTiZzxY9eMgn3qOSfVgiqYcOh8,2028
126
127
  vellum_ee/workflows/display/workflows/tests/test_workflow_display.py,sha256=OKf_WVoPkYPrielOz8CyI5AjWt9MS2nSbWQKpF7HSLI,37847
127
128
  vellum_ee/workflows/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -155,7 +156,7 @@ vellum/client/README.md,sha256=flqu57ubZNTfpq60CdLtJC9gp4WEkyjb_n_eZ4OYf9w,6497
155
156
  vellum/client/__init__.py,sha256=T5Ht_w-Mk_9nzGqdadhQB8V20M0vYj7am06ut0A3P1o,73401
156
157
  vellum/client/core/__init__.py,sha256=lTcqUPXcx4112yLDd70RAPeqq6tu3eFMe1pKOqkW9JQ,1562
157
158
  vellum/client/core/api_error.py,sha256=44vPoTyWN59gonCIZMdzw7M1uspygiLnr3GNFOoVL2Q,614
158
- vellum/client/core/client_wrapper.py,sha256=s31x1QZneMOjgCfxuF5_0xmRGacwTOb9n0pFobRD42Y,2840
159
+ vellum/client/core/client_wrapper.py,sha256=3LRRCUmekHH5eSClvUo_1GvPVridWvzGOYcx_DPDVZQ,2840
159
160
  vellum/client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
160
161
  vellum/client/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
161
162
  vellum/client/core/force_multipart.py,sha256=awxh5MtcRYe74ehY8U76jzv6fYM_w_D3Rur7KQQzSDk,429
@@ -1716,7 +1717,7 @@ vellum/utils/uuid.py,sha256=Ch6wWRgwICxLxJCTl5iE3EdRlZj2zADR-zUMUtjcMWM,214
1716
1717
  vellum/version.py,sha256=jq-1PlAYxN9AXuaZqbYk9ak27SgE2lw9Ia5gx1b1gVI,76
1717
1718
  vellum/workflows/README.md,sha256=hZdTKBIcsTKPofK68oPkBhyt0nnRh0csqC12k4FMHHA,3597
1718
1719
  vellum/workflows/__init__.py,sha256=gd5AiZqVTcvqelhysG0jOWYfC6pJKRAVhS7qwf0bHU4,132
1719
- vellum/workflows/constants.py,sha256=xweiPRUSVEnGz9BJvpIWu96Gfok89QneARu4K7wj7f8,1358
1720
+ vellum/workflows/constants.py,sha256=ApFp3fm_DOuakvZV-c0ybieyVp-wELgHk-GTzDJoDCg,1429
1720
1721
  vellum/workflows/context.py,sha256=ViyIeMDhUv-MhnynLaXPlvlbYxRU45ySvYidCNSbFZU,2458
1721
1722
  vellum/workflows/descriptors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1722
1723
  vellum/workflows/descriptors/base.py,sha256=fRnRkECyDjfz2QEDCY9Q5mAerlJ6jR0R4nE-MP2VP_k,16558
@@ -1726,23 +1727,24 @@ vellum/workflows/descriptors/utils.py,sha256=7QvS_IOZWIoKvhNwpYBOTP3NasLSIBKTnhy
1726
1727
  vellum/workflows/edges/__init__.py,sha256=wSkmAnz9xyi4vZwtDbKxwlplt2skD7n3NsxkvR_pUus,50
1727
1728
  vellum/workflows/edges/edge.py,sha256=N0SnY3gKVuxImPAdCbPMPlHJIXbkQ3fwq_LbJRvVMFc,677
1728
1729
  vellum/workflows/emitters/__init__.py,sha256=d9QFOI3eVg6rzpSFLvrjkDYXWikf1tcp3ruTRa2Boyc,143
1729
- vellum/workflows/emitters/base.py,sha256=Tcp13VMB-GMwEJdl-6XTPckspdOdwpMgBx22-PcQxds,892
1730
- vellum/workflows/emitters/vellum_emitter.py,sha256=ECBIRA48WS5rIJd1iWUfye7B5Up7ujL98BTlZwWALKs,4430
1730
+ vellum/workflows/emitters/base.py,sha256=4hClzI-ue0kWiEnZ1T1zvGz2ZWnoWLCVF-seqHBMUC8,1144
1731
+ vellum/workflows/emitters/vellum_emitter.py,sha256=T77LuU31TBU75GOFyrWuJWyW5RzRNNH1_PFWcgdWMg0,4788
1731
1732
  vellum/workflows/environment/__init__.py,sha256=TJz0m9dwIs6YOwCTeuN0HHsU-ecyjc1OJXx4AFy83EQ,121
1732
1733
  vellum/workflows/environment/environment.py,sha256=Ck3RPKXJvtMGx_toqYQQQF-ZwXm5ijVwJpEPTeIJ4_Q,471
1733
1734
  vellum/workflows/errors/__init__.py,sha256=tWGPu5xyAU8gRb8_bl0fL7OfU3wxQ9UH6qVwy4X4P_Q,113
1734
1735
  vellum/workflows/errors/types.py,sha256=1LQzsEwCL-kqLGUxZcgJWahL-XNfIOwCz_5f_fWzLrM,4236
1735
1736
  vellum/workflows/events/__init__.py,sha256=V4mh766fyA70WvHelm9kfVZGrUgEKcJ9tJt8EepfQYU,832
1736
1737
  vellum/workflows/events/context.py,sha256=vCfMIPmz4j9Om36rRWa35A_JU_VccWWS52_mZkkqxak,3345
1738
+ vellum/workflows/events/exception_handling.py,sha256=2okFtCzrOzaCP-HEwBPMvHn-evlyyE1zRkmIYjR__jQ,1975
1737
1739
  vellum/workflows/events/node.py,sha256=yHVd-rX2E3qc2XLnZr0fW6uq4ZCMm34mnY2tzYceyOg,5884
1738
1740
  vellum/workflows/events/relational_threads.py,sha256=zmLrBCBYpdpQV0snKH3HleST-_hWAMy2LIT0xScfzi4,1516
1739
1741
  vellum/workflows/events/stream.py,sha256=xhXJTZirFi0xad5neAQNogrIQ4h47fpnKbVC3vCM5Js,889
1740
1742
  vellum/workflows/events/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1741
1743
  vellum/workflows/events/tests/test_basic_workflow.py,sha256=Pj6orHsXz37jWC5FARi0Sx2Gjf99Owri2Cvr6Chb79k,1765
1742
- vellum/workflows/events/tests/test_event.py,sha256=RGVGz0DXMTvwCgdjua8rpPpCuCLDM5-8ET_3q4yH8_8,18493
1744
+ vellum/workflows/events/tests/test_event.py,sha256=jsC8APdrddLs5ejk9NO0waPLLslsJlBMIvN0M_vpAHI,19692
1743
1745
  vellum/workflows/events/types.py,sha256=mVrqAH9Hs9SpXm08Hcxdyap_ImQPwGsxRr56rSNMP34,5043
1744
1746
  vellum/workflows/events/workflow.py,sha256=kLSWFXiDZH0TELWoDjQ_kHVomFnw8MVVUPDGIzgyosw,8997
1745
- vellum/workflows/exceptions.py,sha256=Y7EULLN0kss8jxTLFNWEiOLMnyr1uKG83wiMvmtQ9Ak,1438
1747
+ vellum/workflows/exceptions.py,sha256=jyqfR-oq6iMAXSqaOexc-RjL1uFVEuxgcZ_r8AMaAn8,1463
1746
1748
  vellum/workflows/executable.py,sha256=um-gLJMVYfGJwGJfZIPlCRHhHIYm6pn8PUEfeqrNx5k,218
1747
1749
  vellum/workflows/expressions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1748
1750
  vellum/workflows/expressions/accessor.py,sha256=3lu1-_-dBfZdJvtX-q66jbmRAZtqIfdsh_3_JNuzg1E,4462
@@ -1793,8 +1795,8 @@ vellum/workflows/graph/graph.py,sha256=vkpteMc2a61IFGHlrA50J4ntVj6m3agcyWrXGQEbj
1793
1795
  vellum/workflows/graph/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1794
1796
  vellum/workflows/graph/tests/test_graph.py,sha256=0Pov0sCsxjzUDL9wy7xy9jFD-F2GsMJnZVEVFXzQGdM,15433
1795
1797
  vellum/workflows/inputs/__init__.py,sha256=02pj0IbJkN1AxTreswK39cNi45tA8GWcAAdRJve4cuM,116
1796
- vellum/workflows/inputs/base.py,sha256=w3owT5B3rLBmIj-v-jL2l-HD4yd3hXK9RmHVd557BpA,5126
1797
- vellum/workflows/inputs/dataset_row.py,sha256=T8lcn9qyC7IY0w3EIfnn4AwZ3pYw9sf4kdIi0VkX_Sw,1033
1798
+ vellum/workflows/inputs/base.py,sha256=4kCRVz8AOqL6NgWZlfsBMnmCeDGDCTU0ImyBLlB0oaE,5203
1799
+ vellum/workflows/inputs/dataset_row.py,sha256=Szdb_RKysCEBRfy4B5LoXoPiTZPEFp_0_RqRZUZRGbU,1076
1798
1800
  vellum/workflows/inputs/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1799
1801
  vellum/workflows/inputs/tests/test_inputs.py,sha256=lioA8917mFLYq7Ml69UNkqUjcWbbxkxnpIEJ4FBaYBk,2206
1800
1802
  vellum/workflows/integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1804,7 +1806,7 @@ vellum/workflows/integrations/tests/test_mcp_service.py,sha256=q_DYrDkIqI4sQBNgI
1804
1806
  vellum/workflows/logging.py,sha256=_a217XogktV4Ncz6xKFz7WfYmZAzkfVRVuC0rWob8ls,437
1805
1807
  vellum/workflows/nodes/__init__.py,sha256=zymtc3_iW2rFmMR-sayTLuN6ZsAw8VnJweWPsjQk2-Q,1197
1806
1808
  vellum/workflows/nodes/bases/__init__.py,sha256=cniHuz_RXdJ4TQgD8CBzoiKDiPxg62ErdVpCbWICX64,58
1807
- vellum/workflows/nodes/bases/base.py,sha256=i4tuPo_KyFI1ZJh__AI-oxRkDGch9pNTmOqt69HTcE0,20478
1809
+ vellum/workflows/nodes/bases/base.py,sha256=WWRHbCk9Xf6FzY82af7WwGasF_h6nQAjMXjDDzHTVOs,20821
1808
1810
  vellum/workflows/nodes/bases/base_adornment_node.py,sha256=hrgzuTetM4ynPd9YGHoK8Vwwn4XITi3aZZ_OCnQrq4Y,3433
1809
1811
  vellum/workflows/nodes/bases/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1810
1812
  vellum/workflows/nodes/bases/tests/test_base_adornment_node.py,sha256=fXZI9KqpS4XMBrBnIEkK3foHaBVvyHwYcQWWDKay7ic,1148
@@ -1842,9 +1844,9 @@ vellum/workflows/nodes/displayable/bases/api_node/node.py,sha256=cOYaIqimzDL6TuX
1842
1844
  vellum/workflows/nodes/displayable/bases/api_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1843
1845
  vellum/workflows/nodes/displayable/bases/api_node/tests/test_node.py,sha256=5C59vn_yg4r5EWioKIr658Jr1MSGX3YF4yKJokY37Xc,4726
1844
1846
  vellum/workflows/nodes/displayable/bases/base_prompt_node/__init__.py,sha256=Org3xTvgp1pA0uUXFfnJr29D3HzCey2lEdYF4zbIUgo,70
1845
- vellum/workflows/nodes/displayable/bases/base_prompt_node/node.py,sha256=ea20icDM1HB942wkH-XtXNSNCBDcjeOiN3vowkHL4fs,4477
1847
+ vellum/workflows/nodes/displayable/bases/base_prompt_node/node.py,sha256=w02vgydiwNoKru324QLSkH3BiGUvHTgKbf05BEx945s,4657
1846
1848
  vellum/workflows/nodes/displayable/bases/inline_prompt_node/__init__.py,sha256=Hl35IAoepRpE-j4cALaXVJIYTYOF3qszyVbxTj4kS1s,82
1847
- vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py,sha256=eRhqxpkqcP5S4jx-vnnyHZvZAVQxKyCQ9kYxQCyWNvY,17921
1849
+ vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py,sha256=ucbfX1HttsRDgngYnbS5MTytky-MAJW2ZkWgK4B-jI8,18600
1848
1850
  vellum/workflows/nodes/displayable/bases/inline_prompt_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1849
1851
  vellum/workflows/nodes/displayable/bases/inline_prompt_node/tests/test_inline_prompt_node.py,sha256=xc53wGwVqxBnN7eoyWkJ-RJ-FeUpHKekkKjViASHAFg,27495
1850
1852
  vellum/workflows/nodes/displayable/bases/prompt_deployment_node.py,sha256=H9mM75EQpP6PUvsXCTbwjw4CqMMLf36m1G2XqiPEvH4,12139
@@ -1864,9 +1866,9 @@ vellum/workflows/nodes/displayable/conditional_node/__init__.py,sha256=AS_EIqFdU
1864
1866
  vellum/workflows/nodes/displayable/conditional_node/node.py,sha256=71ZUNfTiD7t2Kai2ypw0tmv1lSf1brQaHAQD-SeUrGE,1101
1865
1867
  vellum/workflows/nodes/displayable/conftest.py,sha256=K2kLM2JGAfcrmmd92u8DXInUO5klFdggPWblg5RVcx4,5729
1866
1868
  vellum/workflows/nodes/displayable/final_output_node/__init__.py,sha256=G7VXM4OWpubvSJtVkGmMNeqgb9GkM7qZT838eL18XU4,72
1867
- vellum/workflows/nodes/displayable/final_output_node/node.py,sha256=6SMaGeBlHQ5rdBq_AJ75bHUS4iizoT4Q9gEBVu6DWHM,2497
1869
+ vellum/workflows/nodes/displayable/final_output_node/node.py,sha256=1_F9S7w-gIEUoXIdilgpqDeCKxJ0_J0oTYvE35dbjHk,4908
1868
1870
  vellum/workflows/nodes/displayable/final_output_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1869
- vellum/workflows/nodes/displayable/final_output_node/tests/test_node.py,sha256=E6LQ74qZjY4Xi4avx2qdOCgGhF8pEcNLBh8cqYRkzMI,709
1871
+ vellum/workflows/nodes/displayable/final_output_node/tests/test_node.py,sha256=FR7lWUJlcWW1e9q_3vefi-b8_LA7CayZgTWZAnlAiLg,2387
1870
1872
  vellum/workflows/nodes/displayable/guardrail_node/__init__.py,sha256=Ab5eXmOoBhyV4dMWdzh32HLUmnPIBEK_zFCT38C4Fng,68
1871
1873
  vellum/workflows/nodes/displayable/guardrail_node/node.py,sha256=axYUojar_kdB3gi4LG3g9euJ8VkOxNtiFxJNI46v-SQ,5869
1872
1874
  vellum/workflows/nodes/displayable/guardrail_node/test_node.py,sha256=SAGv6hSFcBwQkudn1VxtaKNsXSXWWELl3eK05zM6tS0,5410
@@ -1898,13 +1900,13 @@ vellum/workflows/nodes/displayable/tests/test_search_node_error_handling.py,sha2
1898
1900
  vellum/workflows/nodes/displayable/tests/test_search_node_wth_text_output.py,sha256=VepO5z1277c1y5N6LLIC31nnWD1aak2m5oPFplfJHHs,6935
1899
1901
  vellum/workflows/nodes/displayable/tests/test_text_prompt_deployment_node.py,sha256=Bjv-wZyFgNaVZb9KEMMZd9lFoLzbPEPjEMpANizMZw4,2413
1900
1902
  vellum/workflows/nodes/displayable/tool_calling_node/__init__.py,sha256=3n0-ysmFKsr40CVxPthc0rfJgqVJeZuUEsCmYudLVRg,117
1901
- vellum/workflows/nodes/displayable/tool_calling_node/node.py,sha256=Exw0_5-bzphKF42pKwHF-tH25s8MD6wSbGcp7jZuBFg,8236
1903
+ vellum/workflows/nodes/displayable/tool_calling_node/node.py,sha256=WXpCYhZ_wlyF_q0T769fw6CI_6-I9kvTiy1yfBGXjvE,8414
1902
1904
  vellum/workflows/nodes/displayable/tool_calling_node/state.py,sha256=CcBVb_YtwfSSka4ze678k6-qwmzMSfjfVP8_Y95feSo,302
1903
1905
  vellum/workflows/nodes/displayable/tool_calling_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1904
1906
  vellum/workflows/nodes/displayable/tool_calling_node/tests/test_composio_service.py,sha256=in1fbEz5x1tx3uKv9YXdvOncsHucNL8Ro6Go7lBuuOQ,8962
1905
1907
  vellum/workflows/nodes/displayable/tool_calling_node/tests/test_node.py,sha256=GZoeybB9uM7ai8sBLAtUMHrMVgh-WrJDWrKZci6feDs,11892
1906
- vellum/workflows/nodes/displayable/tool_calling_node/tests/test_utils.py,sha256=SIu5GCj4tIE4fz-cAcdULtQfqZIhrcc3Doo6TWLXBws,8804
1907
- vellum/workflows/nodes/displayable/tool_calling_node/utils.py,sha256=6XsvA77wF9MI6KBQNN1JMdpQwhK8pKUQtXgsPmq_I3Q,22837
1908
+ vellum/workflows/nodes/displayable/tool_calling_node/tests/test_utils.py,sha256=EmKFA-ELdTzlK0xMqWnuSZPoGNLYCwk6b0amTqirZo0,11305
1909
+ vellum/workflows/nodes/displayable/tool_calling_node/utils.py,sha256=jqFpPDLZ463i2Lt7w_IN0fPypl1vrzZiYq2_1q9OyPo,22388
1908
1910
  vellum/workflows/nodes/displayable/web_search_node/__init__.py,sha256=8FOnEP-n-U68cvxTlJW9wphIAGHq5aqjzLM-DoSSXnU,61
1909
1911
  vellum/workflows/nodes/displayable/web_search_node/node.py,sha256=NQYux2bOtuBF5E4tn-fXi5y3btURPRrNqMSM9MAZYI4,5091
1910
1912
  vellum/workflows/nodes/displayable/web_search_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1913,7 +1915,7 @@ vellum/workflows/nodes/experimental/README.md,sha256=eF6DfIL8t-HbF9-mcofOMymKrra
1913
1915
  vellum/workflows/nodes/experimental/__init__.py,sha256=jCQgvZEknXKfuNhGSOou4XPfrPqZ1_XBj5F0n0fgiWM,106
1914
1916
  vellum/workflows/nodes/experimental/openai_chat_completion_node/__init__.py,sha256=lsyD9laR9p7kx5-BXGH2gUTM242UhKy8SMV0SR6S2iE,90
1915
1917
  vellum/workflows/nodes/experimental/openai_chat_completion_node/node.py,sha256=cKI2Ls25L-JVt4z4a2ozQa-YBeVy21Z7BQ32Sj7iBPE,10460
1916
- vellum/workflows/nodes/mocks.py,sha256=a1FjWEIocseMfjzM-i8DNozpUsaW0IONRpZmXBoWlyc,10455
1918
+ vellum/workflows/nodes/mocks.py,sha256=FXvP049s1KuilDqjUub12Y81rjR9vgPdX8pu6oBSjoE,10931
1917
1919
  vellum/workflows/nodes/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1918
1920
  vellum/workflows/nodes/tests/test_mocks.py,sha256=mfPvrs75PKcsNsbJLQAN6PDFoVqs9TmQxpdyFKDdO60,7837
1919
1921
  vellum/workflows/nodes/tests/test_utils.py,sha256=6yn0ieMug-ndcPVR2Z0HLIAMuCuS-4ucKSMnx06qcEc,5674
@@ -1954,13 +1956,13 @@ vellum/workflows/state/store.py,sha256=uVe-oN73KwGV6M6YLhwZMMUQhzTQomsVfVnb8V91g
1954
1956
  vellum/workflows/state/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1955
1957
  vellum/workflows/state/tests/test_state.py,sha256=zEVFIY2any41X2BA5Us_qqKpzH5HRqmyrUJ04GTO0pU,7484
1956
1958
  vellum/workflows/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1957
- vellum/workflows/tests/test_dataset_row.py,sha256=qtz3cEcppCtr96co_8MmX4Jh1ro6bKZd_FGtRyFncRA,3370
1959
+ vellum/workflows/tests/test_dataset_row.py,sha256=S8aIiYU9TRzJ8GTl5qCjnJ-fuHdxatHJFGLlKTVHPr4,4174
1958
1960
  vellum/workflows/tests/test_sandbox.py,sha256=JKwaluI-lODQo7Ek9sjDstjL_WTdSqUlVik6ZVTfVOA,1826
1959
1961
  vellum/workflows/tests/test_undefined.py,sha256=zMCVliCXVNLrlC6hEGyOWDnQADJ2g83yc5FIM33zuo8,353
1960
1962
  vellum/workflows/types/__init__.py,sha256=KxUTMBGzuRCfiMqzzsykOeVvrrkaZmTTo1a7SLu8gRM,68
1961
1963
  vellum/workflows/types/code_execution_node_wrappers.py,sha256=fewX9bqF_4TZuK-gZYIn12s31-k03vHMGRpvFAPm11Y,3206
1962
- vellum/workflows/types/core.py,sha256=TggDVs2lVya33xvu374EDhMC1b7RRlAAs0zWLaF46BA,1385
1963
- vellum/workflows/types/definition.py,sha256=727tDk-XzLAlpK2_OuPICz2VnFLW5WZd-WcZQrd2lvY,6854
1964
+ vellum/workflows/types/core.py,sha256=yKm3sE02ult969q80DTmawiwYqodVjcAW-zlaUIgIv4,1495
1965
+ vellum/workflows/types/definition.py,sha256=rVoiXhj7xcQS793qjt2gdv64ywfQrRvujURjIWeC6gA,7240
1964
1966
  vellum/workflows/types/generics.py,sha256=8jptbEx1fnJV0Lhj0MpCJOT6yNiEWeTOYOwrEAb5CRU,1576
1965
1967
  vellum/workflows/types/stack.py,sha256=h7NE0vXR7l9DevFBIzIAk1Zh59K-kECQtDTKOUunwMY,1314
1966
1968
  vellum/workflows/types/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1968,27 +1970,27 @@ vellum/workflows/types/tests/test_definition.py,sha256=rvDYjdJ1rvAv0qHBN7i7s-_WA
1968
1970
  vellum/workflows/types/tests/test_utils.py,sha256=UnZog59tR577mVwqZRqqWn2fScoOU1H6up0EzS8zYhw,2536
1969
1971
  vellum/workflows/types/utils.py,sha256=mTctHITBybpt4855x32oCKALBEcMNLn-9cCmfEKgJHQ,6498
1970
1972
  vellum/workflows/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1971
- vellum/workflows/utils/functions.py,sha256=z1V_HujCZI-pfOLIEwkd0_ZeeR1MNqq3fvgDke62NRo,11016
1973
+ vellum/workflows/utils/functions.py,sha256=CmdyfICCs0ZWmdrRpX8oITHkYcDrGu61Rrd_pVwl6ks,12723
1972
1974
  vellum/workflows/utils/hmac.py,sha256=JJCczc6pyV6DuE1Oa0QVfYPUN_of3zEYmGFib3OZnrE,1135
1973
1975
  vellum/workflows/utils/names.py,sha256=QtHquoaGqRseu5gg2OcVGI2d_CMcEOvjb9KspwH4C-A,552
1974
1976
  vellum/workflows/utils/pydantic_schema.py,sha256=eR_bBtY-T0pttJP-ARwagSdCOnwPUtiT3cegm2lzDTQ,1310
1975
1977
  vellum/workflows/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1976
- vellum/workflows/utils/tests/test_functions.py,sha256=TlNhD0OBJ-aeYn4qUqmApuajkx9sJx0lIQRMfT8Xf0w,23688
1978
+ vellum/workflows/utils/tests/test_functions.py,sha256=PClZVGKTx4zLJwDmMM-NpLjat2M64B8rq26Nu4MEEIM,23974
1977
1979
  vellum/workflows/utils/tests/test_names.py,sha256=DnRRnuORxQXx9ESegCzkxiWcHy2_bBi7lXgbFi3FZK8,757
1978
1980
  vellum/workflows/utils/tests/test_uuids.py,sha256=i77ABQ0M3S-aFLzDXHJq_yr5FPkJEWCMBn1HJ3DObrE,437
1979
1981
  vellum/workflows/utils/tests/test_vellum_variables.py,sha256=X7b-bbN3bFRx0WG31bowcaOgsXxEPYnh2sgpsqgKIsQ,2096
1980
1982
  vellum/workflows/utils/uuids.py,sha256=IaZQANz7fhF7la0_J1O50Y6D2PIYv_taRDTRzBT9aWw,1284
1981
1983
  vellum/workflows/utils/vellum_variables.py,sha256=Tgv09yYROgq8QZbrKKIOEdg0IQ8Vfgz_vRjY4tYzaTQ,7152
1982
1984
  vellum/workflows/utils/zip.py,sha256=HVg_YZLmBOTXKaDV3Xhaf3V6sYnfqqZXQ8CpuafkbPY,1181
1983
- vellum/workflows/vellum_client.py,sha256=xkfoucodxNK5JR2-lbRqZx3xzDgExWkP6kySrpi_Ubc,1079
1985
+ vellum/workflows/vellum_client.py,sha256=3iDR7VV_NgLSm1iZQCKDvrmfEaX1bOJiU15QrxyHpv0,1237
1984
1986
  vellum/workflows/workflows/__init__.py,sha256=KY45TqvavCCvXIkyCFMEc0dc6jTMOUci93U2DUrlZYc,66
1985
- vellum/workflows/workflows/base.py,sha256=4_-kEebUBCn7d4N0TxF-sQejM2gAF8N6FbGabV2t6Pw,28346
1987
+ vellum/workflows/workflows/base.py,sha256=PvrsKCEGsnBzKalYymErGmdnYUNBs7pJ5NEOCKL90CY,28615
1986
1988
  vellum/workflows/workflows/event_filters.py,sha256=GSxIgwrX26a1Smfd-6yss2abGCnadGsrSZGa7t7LpJA,2008
1987
1989
  vellum/workflows/workflows/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1988
1990
  vellum/workflows/workflows/tests/test_base_workflow.py,sha256=ptMntHzVyy8ZuzNgeTuk7hREgKQ5UBdgq8VJFSGaW4Y,20832
1989
1991
  vellum/workflows/workflows/tests/test_context.py,sha256=VJBUcyWVtMa_lE5KxdhgMu0WYNYnUQUDvTF7qm89hJ0,2333
1990
- vellum_ai-1.4.0.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
1991
- vellum_ai-1.4.0.dist-info/METADATA,sha256=tI2aW2bZkPjR4_UtYRBydLigbdq2Et_pWewZJw1aKLE,5547
1992
- vellum_ai-1.4.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1993
- vellum_ai-1.4.0.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
1994
- vellum_ai-1.4.0.dist-info/RECORD,,
1992
+ vellum_ai-1.4.2.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
1993
+ vellum_ai-1.4.2.dist-info/METADATA,sha256=2O0UVBAX-fWKzUzs1b8dWnKnfK2gpUNOTM1ZAz5alk0,5547
1994
+ vellum_ai-1.4.2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1995
+ vellum_ai-1.4.2.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
1996
+ vellum_ai-1.4.2.dist-info/RECORD,,
@@ -1323,6 +1323,7 @@ MY_OTHER_VELLUM_API_KEY=aaabbbcccddd
1323
1323
  vellum_client_class.assert_called_once_with(
1324
1324
  api_key="aaabbbcccddd",
1325
1325
  environment=mock.ANY,
1326
+ api_version=None,
1326
1327
  )
1327
1328
 
1328
1329
  # AND the vellum lock file should have been updated with the correct workspace