vellum-ai 0.14.44__py3-none-any.whl → 0.14.45__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 (46) hide show
  1. vellum/client/core/client_wrapper.py +1 -1
  2. vellum/client/core/pydantic_utilities.py +7 -1
  3. vellum/workflows/nodes/bases/base.py +1 -0
  4. vellum/workflows/nodes/bases/tests/test_base_node.py +20 -0
  5. vellum/workflows/nodes/core/try_node/node.py +6 -3
  6. vellum/workflows/nodes/core/try_node/tests/test_node.py +24 -0
  7. vellum/workflows/ports/port.py +13 -3
  8. vellum/workflows/types/tests/test_utils.py +3 -3
  9. vellum/workflows/types/utils.py +31 -10
  10. {vellum_ai-0.14.44.dist-info → vellum_ai-0.14.45.dist-info}/METADATA +1 -1
  11. {vellum_ai-0.14.44.dist-info → vellum_ai-0.14.45.dist-info}/RECORD +46 -44
  12. vellum_ee/workflows/display/nodes/base_node_display.py +4 -173
  13. vellum_ee/workflows/display/nodes/vellum/conditional_node.py +1 -1
  14. vellum_ee/workflows/display/nodes/vellum/final_output_node.py +2 -1
  15. vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py +4 -1
  16. vellum_ee/workflows/display/nodes/vellum/retry_node.py +3 -3
  17. vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py +4 -1
  18. vellum_ee/workflows/display/nodes/vellum/tests/test_prompt_deployment_node.py +106 -0
  19. vellum_ee/workflows/display/nodes/vellum/tests/test_subworkflow_deployment_node.py +109 -0
  20. vellum_ee/workflows/display/nodes/vellum/try_node.py +3 -3
  21. vellum_ee/workflows/display/tests/test_base_workflow_display.py +1 -0
  22. vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_adornments_serialization.py +73 -111
  23. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py +0 -1
  24. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py +0 -3
  25. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py +0 -4
  26. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_default_state_serialization.py +0 -1
  27. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py +0 -1
  28. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_generic_node_serialization.py +0 -1
  29. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py +0 -1
  30. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py +18 -2
  31. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py +10 -1
  32. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py +0 -1
  33. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py +2 -3
  34. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py +0 -1
  35. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py +2 -3
  36. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py +0 -1
  37. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py +1 -2
  38. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py +0 -1
  39. vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py +5 -55
  40. vellum_ee/workflows/display/utils/expressions.py +221 -1
  41. vellum_ee/workflows/display/utils/vellum.py +0 -76
  42. vellum_ee/workflows/display/workflows/base_workflow_display.py +49 -37
  43. vellum_ee/workflows/display/workflows/tests/test_workflow_display.py +45 -0
  44. {vellum_ai-0.14.44.dist-info → vellum_ai-0.14.45.dist-info}/LICENSE +0 -0
  45. {vellum_ai-0.14.44.dist-info → vellum_ai-0.14.45.dist-info}/WHEEL +0 -0
  46. {vellum_ai-0.14.44.dist-info → vellum_ai-0.14.45.dist-info}/entry_points.txt +0 -0
@@ -18,7 +18,7 @@ class BaseClientWrapper:
18
18
  headers: typing.Dict[str, str] = {
19
19
  "X-Fern-Language": "Python",
20
20
  "X-Fern-SDK-Name": "vellum-ai",
21
- "X-Fern-SDK-Version": "0.14.44",
21
+ "X-Fern-SDK-Version": "0.14.45",
22
22
  }
23
23
  headers["X-API-KEY"] = self.api_key
24
24
  return headers
@@ -8,10 +8,13 @@ from collections import defaultdict
8
8
  import typing_extensions
9
9
 
10
10
  import pydantic
11
+ import logging
11
12
 
12
13
  from .datetime_utils import serialize_datetime
13
14
  from .serialization import convert_and_respect_annotation_metadata
14
15
 
16
+ logger = logging.getLogger(__name__)
17
+
15
18
  IS_PYDANTIC_V2 = pydantic.VERSION.startswith("2.")
16
19
 
17
20
  if IS_PYDANTIC_V2:
@@ -245,7 +248,10 @@ def update_forward_refs(model: typing.Type["Model"], **localns: typing.Any) -> N
245
248
  if IS_PYDANTIC_V2:
246
249
  model.model_rebuild(raise_errors=False) # type: ignore # Pydantic v2
247
250
  else:
248
- model.update_forward_refs(**localns)
251
+ try:
252
+ model.update_forward_refs(**localns)
253
+ except Exception as e:
254
+ logger.warning("[WARN] Failed to update forward refs for model %s", model.__name__)
249
255
 
250
256
 
251
257
  # Mirrors Pydantic's internal typing
@@ -111,6 +111,7 @@ class BaseNodeMeta(type):
111
111
  # Add cls to relevant nested classes, since python should've been doing this by default
112
112
  for port in node_class.Ports:
113
113
  port.node_class = node_class
114
+ port.validate()
114
115
 
115
116
  node_class.Execution.node_class = node_class
116
117
  node_class.Trigger.node_class = node_class
@@ -283,3 +283,23 @@ def test_node_outputs__inherits_instance():
283
283
  assert foo_output.instance is undefined
284
284
  assert isinstance(bar_output, OutputReference)
285
285
  assert bar_output.instance == "hello"
286
+
287
+
288
+ def test_base_node__iterate_over_attributes__preserves_order():
289
+ # GIVEN a node with two attributes
290
+ class MyNode(BaseNode):
291
+ foo = "foo"
292
+ bar = "bar"
293
+
294
+ # AND a node that inherits from MyNode
295
+ class InheritedNode(MyNode):
296
+ baz = "baz"
297
+ qux = "qux"
298
+ quux = "quux"
299
+
300
+ # WHEN we iterate over the attributes, multiple times
301
+ for i in range(10):
302
+ attribute_names = [attr.name for attr in InheritedNode]
303
+
304
+ # THEN the attributes are in the correct order
305
+ assert attribute_names == ["baz", "qux", "quux", "foo", "bar"], f"Iteration {i} failed"
@@ -1,4 +1,4 @@
1
- from typing import Callable, Generic, Iterator, Optional, Set, Type
1
+ from typing import Callable, Generic, Iterator, Optional, Set, Type, Union
2
2
 
3
3
  from vellum.workflows.context import execution_context, get_parent_context
4
4
  from vellum.workflows.errors.types import WorkflowError, WorkflowErrorCode
@@ -21,7 +21,8 @@ class TryNode(BaseAdornmentNode[StateType], Generic[StateType]):
21
21
  subworkflow: Type["BaseWorkflow"] - The Subworkflow to execute
22
22
  """
23
23
 
24
- on_error_code: Optional[WorkflowErrorCode] = None
24
+ # TODO: We could remove str after we support generating enum values.
25
+ on_error_code: Optional[Union[WorkflowErrorCode, str]] = None
25
26
 
26
27
  class Outputs(BaseAdornmentNode.Outputs):
27
28
  error: Optional[WorkflowError] = None
@@ -65,7 +66,9 @@ class TryNode(BaseAdornmentNode[StateType], Generic[StateType]):
65
66
  message="Subworkflow unexpectedly paused within Try Node",
66
67
  )
67
68
  elif event.name == "workflow.execution.rejected":
68
- if self.on_error_code and self.on_error_code != event.error.code:
69
+ # TODO: We should remove this once we support generating enum values.
70
+ event_error_code = event.error.code.value if isinstance(self.on_error_code, str) else event.error.code
71
+ if self.on_error_code and self.on_error_code != event_error_code:
69
72
  exception = NodeException(
70
73
  code=WorkflowErrorCode.INVALID_OUTPUTS,
71
74
  message=f"""Unexpected rejection: {event.error.code.value}.
@@ -57,6 +57,30 @@ def test_try_node__retry_on_error_code__missed():
57
57
  assert exc_info.value.code == WorkflowErrorCode.INVALID_OUTPUTS
58
58
 
59
59
 
60
+ def test_try_node__on_error_code__str():
61
+ # GIVEN a try node that is configured to catch PROVIDER_ERROR
62
+ @TryNode.wrap(on_error_code="PROVIDER_ERROR") # type: ignore
63
+ class TestNode(BaseNode):
64
+ class Outputs(BaseOutputs):
65
+ value: int
66
+
67
+ def run(self) -> Outputs:
68
+ raise NodeException(message="This will be caught", code=WorkflowErrorCode.PROVIDER_ERROR)
69
+
70
+ # WHEN the node is run and throws a PROVIDER_ERROR
71
+ node = TestNode(state=BaseState())
72
+ outputs = [o for o in node.run()]
73
+
74
+ # THEN the exception is caught
75
+ assert len(outputs) == 2
76
+ assert set(outputs) == {
77
+ BaseOutput(name="value"),
78
+ BaseOutput(
79
+ name="error", value=WorkflowError(message="This will be caught", code=WorkflowErrorCode.PROVIDER_ERROR)
80
+ ),
81
+ }
82
+
83
+
60
84
  def test_try_node__use_parent_inputs_and_state():
61
85
  # GIVEN a parent workflow Inputs and State
62
86
  class Inputs(BaseInputs):
@@ -7,7 +7,7 @@ from vellum.workflows.descriptors.base import BaseDescriptor
7
7
  from vellum.workflows.descriptors.exceptions import InvalidExpressionException
8
8
  from vellum.workflows.edges.edge import Edge
9
9
  from vellum.workflows.errors.types import WorkflowErrorCode
10
- from vellum.workflows.exceptions import NodeException
10
+ from vellum.workflows.exceptions import NodeException, WorkflowInitializationException
11
11
  from vellum.workflows.graph import Graph, GraphTarget
12
12
  from vellum.workflows.state.base import BaseState
13
13
  from vellum.workflows.types.core import ConditionType
@@ -73,11 +73,11 @@ class Port:
73
73
  return Graph.from_edge(edge)
74
74
 
75
75
  @staticmethod
76
- def on_if(condition: BaseDescriptor, fork_state: bool = False) -> "Port":
76
+ def on_if(condition: Optional[BaseDescriptor] = None, fork_state: bool = False):
77
77
  return Port(condition=condition, condition_type=ConditionType.IF, fork_state=fork_state)
78
78
 
79
79
  @staticmethod
80
- def on_elif(condition: BaseDescriptor, fork_state: bool = False) -> "Port":
80
+ def on_elif(condition: Optional[BaseDescriptor] = None, fork_state: bool = False) -> "Port":
81
81
  return Port(condition=condition, condition_type=ConditionType.ELIF, fork_state=fork_state)
82
82
 
83
83
  @staticmethod
@@ -107,3 +107,13 @@ class Port:
107
107
  cls, source_type: Type[Any], handler: GetCoreSchemaHandler
108
108
  ) -> core_schema.CoreSchema:
109
109
  return core_schema.is_instance_schema(cls)
110
+
111
+ def validate(self):
112
+ if (
113
+ not self.default
114
+ and self._condition_type in (ConditionType.IF, ConditionType.ELIF)
115
+ and self._condition is None
116
+ ):
117
+ raise WorkflowInitializationException(
118
+ f"Class {self.node_class.__name__}'s {self.name} should have a defined condition and cannot be empty."
119
+ )
@@ -83,9 +83,9 @@ def test_infer_types(cls, attr_name, expected_type):
83
83
  @pytest.mark.parametrize(
84
84
  "cls, expected_attr_names",
85
85
  [
86
- (ExampleClass, {"alpha", "beta", "gamma", "epsilon", "zeta", "eta", "kappa", "mu"}),
87
- (ExampleGenericClass, {"delta"}),
88
- (ExampleInheritedClass, {"alpha", "beta", "gamma", "epsilon", "zeta", "eta", "theta", "kappa", "mu"}),
86
+ (ExampleClass, ["beta", "epsilon", "alpha", "gamma", "zeta", "eta", "kappa", "mu"]),
87
+ (ExampleGenericClass, ["delta"]),
88
+ (ExampleInheritedClass, ["theta", "beta", "epsilon", "alpha", "gamma", "zeta", "eta", "kappa", "mu"]),
89
89
  ],
90
90
  )
91
91
  def test_class_attr_names(cls, expected_attr_names):
@@ -7,6 +7,7 @@ from typing import (
7
7
  ClassVar,
8
8
  Dict,
9
9
  Generic,
10
+ List,
10
11
  Optional,
11
12
  Set,
12
13
  Tuple,
@@ -101,22 +102,42 @@ def infer_types(object_: Type, attr_name: str, localns: Optional[Dict[str, Any]]
101
102
  )
102
103
 
103
104
 
104
- def get_class_attr_names(cls: Type) -> Set[str]:
105
- # gets type-annotated attributes `foo: int`
106
- type_annotated_attributes: Set[str] = set()
105
+ def get_class_attr_names(cls: Type) -> List[str]:
106
+ # make sure we don't duplicate attributes
107
+ collected_attributes: Set[str] = set()
107
108
 
108
- # gets attributes declared `foo = 1`
109
- class_attributes: Set[str] = set()
109
+ # we want to preserve the order of attributes on each class
110
+ ordered_attr_names: List[str] = []
110
111
 
111
- for base in reversed(cls.__mro__):
112
+ for base in cls.__mro__:
113
+ # gets attributes declared `foo = 1`
114
+ for class_attribute in vars(base).keys():
115
+ if class_attribute in collected_attributes:
116
+ continue
117
+
118
+ if class_attribute.startswith("_"):
119
+ continue
120
+
121
+ collected_attributes.add(class_attribute)
122
+ ordered_attr_names.append(class_attribute)
123
+
124
+ # gets type-annotated attributes `foo: int`
112
125
  ann = base.__dict__.get("__annotations__", {})
113
- type_annotated_attributes.update(ann.keys())
126
+ for attr_name in ann.keys():
127
+ if not isinstance(attr_name, str):
128
+ continue
129
+
130
+ if attr_name in collected_attributes:
131
+ continue
132
+
133
+ if attr_name.startswith("_"):
134
+ continue
114
135
 
115
- base_vars = vars(base).keys()
116
- class_attributes.update(base_vars)
136
+ collected_attributes.add(attr_name)
137
+ ordered_attr_names.append(attr_name)
117
138
 
118
139
  # combine and filter out private attributes
119
- return {a for a in list(set(class_attributes) | set(type_annotated_attributes)) if not a.startswith("_")}
140
+ return ordered_attr_names
120
141
 
121
142
 
122
143
  def deepcopy_with_exclusions(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vellum-ai
3
- Version: 0.14.44
3
+ Version: 0.14.45
4
4
  Summary:
5
5
  License: MIT
6
6
  Requires-Python: >=3.9,<4.0
@@ -26,7 +26,7 @@ vellum_ee/workflows/display/base.py,sha256=EqlQFD56kpqMY02ZBJBQajzJKh33Dwi60Wo77
26
26
  vellum_ee/workflows/display/editor/__init__.py,sha256=MSAgY91xCEg2neH5d8jXx5wRdR962ftZVa6vO9BGq9k,167
27
27
  vellum_ee/workflows/display/editor/types.py,sha256=x-tOOCJ6CF4HmiKDfCmcc3bOVfc1EBlP5o6u5WEfLoY,567
28
28
  vellum_ee/workflows/display/nodes/__init__.py,sha256=jI1aPBQf8DkmrYoZ4O-wR1duqZByOf5mDFmo_wFJPE4,307
29
- vellum_ee/workflows/display/nodes/base_node_display.py,sha256=emQg21S5wmY155LWePaBswIDgsDuZctGKEaNmEMNr6M,22625
29
+ vellum_ee/workflows/display/nodes/base_node_display.py,sha256=0wuzviC45kEd26LaXinIsqSpH6O4q2xLuc2esd0VCGc,14633
30
30
  vellum_ee/workflows/display/nodes/get_node_display_class.py,sha256=5QuXpMth0HmZuC-e8LRKOLbrVXSL-ylMR5IWae8eNmc,2113
31
31
  vellum_ee/workflows/display/nodes/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
32
  vellum_ee/workflows/display/nodes/tests/test_base_node_display.py,sha256=Z4Mf7xLCNiblSbpKI0BrV5modQr-ZcFzhfir_OSyTTs,2997
@@ -36,70 +36,72 @@ vellum_ee/workflows/display/nodes/vellum/__init__.py,sha256=nUIgH2s0-7IbQRNrBhLP
36
36
  vellum_ee/workflows/display/nodes/vellum/api_node.py,sha256=QCaW_Q9CjLnkzv7dbUKyrZGoumov-C0in7lh7uDar7s,8579
37
37
  vellum_ee/workflows/display/nodes/vellum/base_adornment_node.py,sha256=rJbHZBg9A_v2bjk-R6MfWzShcrS2gcKIOyYGoqwTx8s,6353
38
38
  vellum_ee/workflows/display/nodes/vellum/code_execution_node.py,sha256=fHE2_3ZNMRVV66zYGY3ukk8rs-hK8i_c6mO74Ab8Z3w,4451
39
- vellum_ee/workflows/display/nodes/vellum/conditional_node.py,sha256=6d5oqwzdMpgNFILfxaX_mCRyxXDjvvoKBKPUc2Cxp0o,11145
39
+ vellum_ee/workflows/display/nodes/vellum/conditional_node.py,sha256=MrvyiYD0qgQf3-ZYFcurQtin3FagAHGRoT7zYGiIao0,11150
40
40
  vellum_ee/workflows/display/nodes/vellum/error_node.py,sha256=eJ_nw0u63vJ7fxxMCrfNyKx8JTOcRoujrJsvsxo_FJ4,2167
41
- vellum_ee/workflows/display/nodes/vellum/final_output_node.py,sha256=7odQcHi2acJ9TTUxBDR6VWn4jGqITshonk-LQxcnIpk,3029
41
+ vellum_ee/workflows/display/nodes/vellum/final_output_node.py,sha256=jUDI2FwVaw0Or4zJL58J_g0S--i59Hzik60s_Es_M-8,3098
42
42
  vellum_ee/workflows/display/nodes/vellum/guardrail_node.py,sha256=nVOixouitWwatZLbSBddeMfYQ2doZ_tCdb1ashq3pqA,2269
43
43
  vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py,sha256=-nPccukjzM2kJiIwFE3orVahB14zqGGvITQsTBWS3TE,8884
44
44
  vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py,sha256=yZO9UNLj8sAtw64bLSN2wtdPMGoQ2oAVbadrxfL3wsE,5551
45
45
  vellum_ee/workflows/display/nodes/vellum/map_node.py,sha256=T3a6Lv51SC1506bTVd8T9y_KVmP2VP4IQarAO87xdmM,3755
46
46
  vellum_ee/workflows/display/nodes/vellum/merge_node.py,sha256=yBWeN4T_lOsDVnNOKWRiT7JYKu0IR5Fx2z99iq6QKSA,3273
47
47
  vellum_ee/workflows/display/nodes/vellum/note_node.py,sha256=3E0UqmgVYdtbj4nyq8gKju8EpMsRHMCQ0KLrJhug3XU,1084
48
- vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py,sha256=xAt926FCYPI12hUeS7S1tx7ezDSriQcGbSZHBkv_omM,3298
49
- vellum_ee/workflows/display/nodes/vellum/retry_node.py,sha256=TjBpRERmkmm1myZTWKAxxD1F0dWSc7U1sih8g9sqq2Q,3300
48
+ vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py,sha256=7wgyHaeolEKBKBZioqt1zc7cHxkuaW_2diL9XjIdFNE,3461
49
+ vellum_ee/workflows/display/nodes/vellum/retry_node.py,sha256=X3xnlAU5JisL0jRvaG_V9RvTF7ZlGufTO8tXLLVhGIg,3280
50
50
  vellum_ee/workflows/display/nodes/vellum/search_node.py,sha256=7vU_4IxYe7iwn4p7J909cxF1TOR-tUlFXA7k3ySQPwM,9320
51
- vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py,sha256=5Ok5X4R5E8SVW58O5cAVJo92VqGDBiFJpHQ3txqNi1U,2653
51
+ vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py,sha256=5NWneQCRtawbl_fI9cZXH5ssD2EheHAMhl2mnZOsJ0c,2814
52
52
  vellum_ee/workflows/display/nodes/vellum/templating_node.py,sha256=Nk5pxly4d-kactJ3Z4SLErZCm8hicyj2rCArZw8pW9k,3283
53
53
  vellum_ee/workflows/display/nodes/vellum/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
54
  vellum_ee/workflows/display/nodes/vellum/tests/test_code_execution_node.py,sha256=OoNO-BstB96F-VMK6FZ9aXyi-0wyNePo6HiaJC6SYRw,3880
55
55
  vellum_ee/workflows/display/nodes/vellum/tests/test_error_node.py,sha256=HoIph_rNlHFNBMqBq1a_eyFwPzBIazdH1yQeRhgba14,1510
56
56
  vellum_ee/workflows/display/nodes/vellum/tests/test_note_node.py,sha256=uiMB0cOxKZzos7YKnj4ef4DFa2bOvZJWIv-hfbUV6Go,1218
57
+ vellum_ee/workflows/display/nodes/vellum/tests/test_prompt_deployment_node.py,sha256=kZQn7W4CWFLc1FiayvvYCPQIcm-3bPNkcjxWMQowAIE,3692
57
58
  vellum_ee/workflows/display/nodes/vellum/tests/test_prompt_node.py,sha256=6Q6rfEwjjSEgSX24aFZjS3K6l8G2YRYBUNC2o5BE8Tk,6101
58
59
  vellum_ee/workflows/display/nodes/vellum/tests/test_retry_node.py,sha256=h93ysolmbo2viisyhRnXKHPxiDK0I_dSAbYoHFYIoO4,1953
60
+ vellum_ee/workflows/display/nodes/vellum/tests/test_subworkflow_deployment_node.py,sha256=mQW6eIduImP9WKnDUsTskhJEPC4fqzF91GFS_iXKZPQ,3780
59
61
  vellum_ee/workflows/display/nodes/vellum/tests/test_templating_node.py,sha256=PK7v0AWCgH9gWRfAwGPUGCRLbIH3NSyoAYa9W15ggAo,3321
60
62
  vellum_ee/workflows/display/nodes/vellum/tests/test_try_node.py,sha256=Khjsb53PKpZuyhKoRMgKAL45eGp5hZqXvHmVeQWRw4w,2289
61
63
  vellum_ee/workflows/display/nodes/vellum/tests/test_utils.py,sha256=3LS1O4DGPWit05oj_ubeW8AlHGnoBxdUMferGQuAiZs,4851
62
- vellum_ee/workflows/display/nodes/vellum/try_node.py,sha256=o6wL17XVm6Wj4sHoJkBW54Y5fY9ZwhD7ry0xkNWRu5c,4106
64
+ vellum_ee/workflows/display/nodes/vellum/try_node.py,sha256=z9Omo676RRc7mQjLoL7hjiHhUj0OWVLhrrb97YTN4QA,4086
63
65
  vellum_ee/workflows/display/nodes/vellum/utils.py,sha256=oICunzyaXPs0tYnW5zH1r93Bx35MSH7mcD-n0DEWRok,4978
64
66
  vellum_ee/workflows/display/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
- vellum_ee/workflows/display/tests/test_base_workflow_display.py,sha256=1R9BAjbfRX7tV3hEwDebzUqzzXoFLfZ-f2WI8Bj4oLI,9286
67
+ vellum_ee/workflows/display/tests/test_base_workflow_display.py,sha256=iZN-uTaI77i_U7YwncVj1X0EsIzDDvgzs0KPjEqbEyM,9319
66
68
  vellum_ee/workflows/display/tests/workflow_serialization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
67
69
  vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
70
  vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/conftest.py,sha256=XOQDDRiG46etxTC7-_RUEutoNumXc02fo7oho4GYM0c,1900
69
- vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_adornments_serialization.py,sha256=ixu_VHgpigvKXj2uQu2_EUn4bkpRy0390LGoRKBJ6iU,15262
71
+ vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_adornments_serialization.py,sha256=tsjGM-jOurPSkDIbrDFdjNLmkI1fPNPAw3J9-l9knCw,12848
70
72
  vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_attributes_serialization.py,sha256=m9KpVN55_bHiooZOJLm7doRewhcTK53weVYRiglCJX0,19578
71
73
  vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_outputs_serialization.py,sha256=s6_mnk0pkztU59wYpSfOFpMhAJaRjmyfxM6WJGtnD4Y,6456
72
74
  vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_ports_serialization.py,sha256=PkSgghJDz0fpDB72HHPjLjo8LkZk-HpUkCQzRLX-iVw,40611
73
75
  vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_trigger_serialization.py,sha256=dsJr8I9AdPwMOGszirfNDzZP2Ychd94aAKuPXAzknMk,4632
74
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py,sha256=r_YrQLgG29D4CtBNCBEKZLFp7x-pKrqJu6EyuvDsUl4,15903
75
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py,sha256=XzhbQ0J5yPQPfLNyH7lAC_oWTjR4ITKYqmLNzNJ99P0,29903
76
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py,sha256=oDlFnp8oBuU1sd40IG5opLJM5qcuwTE3yjb2rUFQyo4,53920
77
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_default_state_serialization.py,sha256=3GloR_5CwBYIpIkRNqJ6-AvwXe9acwyjU-xz1yN-Xws,8693
78
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py,sha256=8WnzAu4HceKcIcp-Tdnrkdwq9zC6an5-92khTxNm1uk,5978
79
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_generic_node_serialization.py,sha256=jSUfw4iSfyu9-Yift1Lb_oBDC1WnD7FwSPnNzPyQlOI,5632
80
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py,sha256=9GaiCJT__hlO01ORjJ8y6zZa_cNsTR0-5SEOkN-jWzk,7462
76
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py,sha256=xo5RRyv4TTTauy2TWtMXzYFSGa-nvxTa352-xu-pAIw,15815
77
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py,sha256=yX-ICQs8Wf7ksSH71hTbApcE_c-7a_-6AAqRIVkf_Ys,29639
78
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py,sha256=88IQkkTlbWHe1FyV7iwBhWi4iMB154VQm_oXgU0oGsE,53568
79
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_default_state_serialization.py,sha256=I0f24qbterFb20X4N2O6IvdbgR71juE2t8d6ZdkwgnE,8605
80
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py,sha256=2k9GZ_gNa9795v2dTVN6Gvp_wXoa4gTRLnWIRRfxhOY,5890
81
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_generic_node_serialization.py,sha256=kLOnUNn-r1w1JXNQcVKe-Vp-fKhSfuDBuDqrjGkFZ3U,5544
82
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py,sha256=v07cILUzS5iFYDrSOAXK93yz50-FtxLaMYMwoaPOv20,7374
81
83
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_prompt_node_serialization.py,sha256=8NiFJLd9vVK8MheYs7TJ3PqYDmtWVXrUNz40E33Y4gA,659
82
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py,sha256=MCzk2k0jRmbpdKa5ZBid6TYNWbiph9haoY7O_m4rMdA,20586
83
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=_Buk1kTvaOnVWYoC3V7ScuQeLq1_WRAV4wUQzkmbsMQ,16145
84
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py,sha256=p1nkn67kqrp92-27x4BtWAqA-Xpxqo0UU1fI3y1kdR8,8430
85
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py,sha256=mFhF0FFwf3j5wQn25O4EGNl8Akcc2YkkKZstw8nii8c,8690
86
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py,sha256=lFqT2y8szukLNqeZBbR2XxmF2zmzYNlTSdfebQaUj6Q,13024
87
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py,sha256=nU87rbidKEe9NVlTVTxMBvcxtrzKIbmunPzqZH_uf6w,11299
88
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py,sha256=UmnNqIKgwKlJjniBnE9nZ_0Z4AsYIRx6BeOviI6Ucc4,7799
89
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py,sha256=Svtg3nRSbLfbw4VhI_G44zjhoLWLIsDQr9CB5OP9Jws,3956
90
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py,sha256=NIq7pa8EBR0ZmhTc3k_akwGuOKih8mwurkyIbc0dNTg,2857
91
- vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256=-okQGpxcPGd2TbY55aul6cXoTcqZklee-MrM1qztv1E,7530
84
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py,sha256=u2nquKoO3o2xIkU_uFPOb_s5YoLmULiq09vb6Ee0Cqw,21415
85
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=3gZuNM8sT6ovVaeoAvd2JoyKwuxokvowlhH8kwDUoZ8,16559
86
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py,sha256=IIJt7YZBzkhNtbmaMwCX4ENs58QtSIIoBHlMR6OwGU8,8342
87
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py,sha256=mLr_1Ow5NZYSLzzEZPup14LckuT8ivOvq9Lz85pGj0c,8602
88
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py,sha256=K0mECBUyTNX4I468goeaRf93N7Qfizoc1ctCH5_nNys,12936
89
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py,sha256=KkYZc_bZuq1lmDcvUz3QxIqJLpQPCZioD1FHUNsMJY8,11211
90
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py,sha256=aZaqRDrkO3ytcmdM2eKJqHSt60MF070NMj6M2vgzOKc,7711
91
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py,sha256=r748dpS13HtwY7t_KQFExFssxRy0xI2d-wxmhiUHRe0,3850
92
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py,sha256=EL5kfakuoEcwD85dGjhMta-J-PpCHRSDoc80SdbBrQk,2769
93
+ vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256=RmFUDx8dYdfsOE2CGLvdXqNNRtLLpVzXDN8dqZyMcZ8,5822
92
94
  vellum_ee/workflows/display/types.py,sha256=NKtEGFhvgz1i_oAayXFIS06QZautixnS3id5DckCIjg,2637
93
95
  vellum_ee/workflows/display/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
96
  vellum_ee/workflows/display/utils/exceptions.py,sha256=LSwwxCYNxFkf5XMUcFkaZKpQ13OSrI7y_bpEUwbKVk0,169
95
- vellum_ee/workflows/display/utils/expressions.py,sha256=2u2o8Fqr-2C45FII01ej5rt6i8n2EEGiliXugK7buVw,1210
97
+ vellum_ee/workflows/display/utils/expressions.py,sha256=jtFyogkad5i8OKbaragW_C5-J2wXpMroRNqzkq5AJE0,10635
96
98
  vellum_ee/workflows/display/utils/registry.py,sha256=fWIm5Jj-10gNFjgn34iBu4RWv3Vd15ijtSN0V97bpW8,1513
97
- vellum_ee/workflows/display/utils/vellum.py,sha256=VSWB3RA3RWQwQ7nMsU9gLfgpX3_BK9ARBIT36i52r9k,9478
99
+ vellum_ee/workflows/display/utils/vellum.py,sha256=4gm4mPvM7srq5IGytPi41QvO6LPC5NwWPy_sRM1Iicg,5520
98
100
  vellum_ee/workflows/display/vellum.py,sha256=o7mq_vk2Yapu9DDKRz5l76h8EmCAypWGQYe6pryrbB8,3576
99
101
  vellum_ee/workflows/display/workflows/__init__.py,sha256=kapXsC67VJcgSuiBMa86FdePG5A9kMB5Pi4Uy1O2ob4,207
100
- vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=qjdATqHawQ1IWkyQ3aRlQQAFixNsS-X4ewpmKSnSwvI,32001
102
+ vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=MifwBKquksk55O8qxYsxfPgFbiHUkgZ-tQNlO-a25uU,32896
101
103
  vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py,sha256=s6yMO0RxoM8scmfT8TJ-9cwl-WHFe7JSyEJA0alCeEs,1913
102
- vellum_ee/workflows/display/workflows/tests/test_workflow_display.py,sha256=uWBMmd_2BlDpymGoo5FB2LBeFQKHmPWJAPvSPZHk94o,11869
104
+ vellum_ee/workflows/display/workflows/tests/test_workflow_display.py,sha256=ZmbW-_QgKE7Sx3H0KK4wvm48I5HvXs5ITJRsFiriM5w,13810
103
105
  vellum_ee/workflows/display/workflows/vellum_workflow_display.py,sha256=aaKdmWrgEe5YyV4zuDY_4E3y-l59rIHQnNGiPj2OWxQ,359
104
106
  vellum_ee/workflows/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
107
  vellum_ee/workflows/server/virtual_file_loader.py,sha256=7JphJcSO3H85qiC2DpFfBWjC3JjrbRmoynBC6KKHVsA,2710
@@ -130,12 +132,12 @@ vellum/client/README.md,sha256=JkCJjmMZl4jrPj46pkmL9dpK4gSzQQmP5I7z4aME4LY,4749
130
132
  vellum/client/__init__.py,sha256=Z-JHK2jGxhtTtmkLeOaUGGJWIUNYGNVBLvUewC6lp6w,118148
131
133
  vellum/client/core/__init__.py,sha256=SQ85PF84B9MuKnBwHNHWemSGuy-g_515gFYNFhvEE0I,1438
132
134
  vellum/client/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
133
- vellum/client/core/client_wrapper.py,sha256=cnTC1fgCzqUC_BZ21rLn2Wi6ACUHsyWmxx9o2etyN28,1869
135
+ vellum/client/core/client_wrapper.py,sha256=2R_elVxC5Z8J7AjG_3HT1Vmw7m81NGxIOuC5HYXmvCI,1869
134
136
  vellum/client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
135
137
  vellum/client/core/file.py,sha256=X9IbmkZmB2bB_DpmZAO3crWdXagOakAyn6UCOCImCPg,2322
136
138
  vellum/client/core/http_client.py,sha256=R0pQpCppnEtxccGvXl4uJ76s7ro_65Fo_erlNNLp_AI,19228
137
139
  vellum/client/core/jsonable_encoder.py,sha256=qaF1gtgH-kQZb4kJskETwcCsOPUof-NnYVdszHkb-dM,3656
138
- vellum/client/core/pydantic_utilities.py,sha256=6ev3gtER-hjlq7PcPL9XT_YSCdgyCE8ZKHJ9Uc-gHIg,12071
140
+ vellum/client/core/pydantic_utilities.py,sha256=DE9FvWR2EYihzbtOvFJudEExH7XKH_fjSHGm-b5UhJc,12268
139
141
  vellum/client/core/query_encoder.py,sha256=ekulqNd0j8TgD7ox-Qbz7liqX8-KP9blvT9DsRCenYM,2144
140
142
  vellum/client/core/remove_none_from_dict.py,sha256=EU9SGgYidWq7SexuJbNs4-PZ-5Bl3Vppd864mS6vQZw,342
141
143
  vellum/client/core/request_options.py,sha256=5cCGt5AEGgtP5xifDl4oVQUmSjlIA8FmRItAlJawM18,1417
@@ -1536,11 +1538,11 @@ vellum/workflows/inputs/tests/test_inputs.py,sha256=lioA8917mFLYq7Ml69UNkqUjcWbb
1536
1538
  vellum/workflows/logging.py,sha256=_a217XogktV4Ncz6xKFz7WfYmZAzkfVRVuC0rWob8ls,437
1537
1539
  vellum/workflows/nodes/__init__.py,sha256=aVdQVv7Y3Ro3JlqXGpxwaU2zrI06plDHD2aumH5WUIs,1157
1538
1540
  vellum/workflows/nodes/bases/__init__.py,sha256=cniHuz_RXdJ4TQgD8CBzoiKDiPxg62ErdVpCbWICX64,58
1539
- vellum/workflows/nodes/bases/base.py,sha256=tX3xOQIPfnspQPNaOMwGoZ93gM5d5dWeK1YUukzkINI,15158
1541
+ vellum/workflows/nodes/bases/base.py,sha256=c7--RMKBs215xOshoL_tdtvP8i4k1eT9BmRVhQXF5m4,15186
1540
1542
  vellum/workflows/nodes/bases/base_adornment_node.py,sha256=Ao2opOW4kgNoYXFF9Pk7IMpVZdy6luwrjcqEwU5Q9V0,3404
1541
1543
  vellum/workflows/nodes/bases/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1542
1544
  vellum/workflows/nodes/bases/tests/test_base_adornment_node.py,sha256=fXZI9KqpS4XMBrBnIEkK3foHaBVvyHwYcQWWDKay7ic,1148
1543
- vellum/workflows/nodes/bases/tests/test_base_node.py,sha256=6J85q-vtfG-NHzCndMKLk5_sEEDiI52sTGaxefcUCOU,7892
1545
+ vellum/workflows/nodes/bases/tests/test_base_node.py,sha256=hWt90sNvQpUzcttRzQxBBUQXA0A5Mj-Is7awRKYtlNU,8503
1544
1546
  vellum/workflows/nodes/core/__init__.py,sha256=5zDMCmyt1v0HTJzlUBwq3U9L825yZGZhT9JL18-mRR4,455
1545
1547
  vellum/workflows/nodes/core/error_node/__init__.py,sha256=g7RRnlHhqu4qByfLjBwCunmgGA8dI5gNsjS3h6TwlSI,60
1546
1548
  vellum/workflows/nodes/core/error_node/node.py,sha256=MFHU5vITYSK-L9CuMZ49In2ZeNLWnhZD0f8r5dWvb5Y,1270
@@ -1560,9 +1562,9 @@ vellum/workflows/nodes/core/templating_node/__init__.py,sha256=GmyuYo81_A1_Bz6id
1560
1562
  vellum/workflows/nodes/core/templating_node/node.py,sha256=iqBmr2i-f-BqhisNQJiDfewjol0ur7-XpupLStyMJsg,3731
1561
1563
  vellum/workflows/nodes/core/templating_node/tests/test_templating_node.py,sha256=nXkgGDBg4wP36NwykdMEVWwx_xjv8oGT2rYkwuCB_VU,10075
1562
1564
  vellum/workflows/nodes/core/try_node/__init__.py,sha256=JVD4DrldTIqFQQFrubs9KtWCCc0YCAc7Fzol5ZWIWeM,56
1563
- vellum/workflows/nodes/core/try_node/node.py,sha256=XdyOvlwQ3m4h0-_WNtaBl2t_CdlzPXclulkLOtUcX3E,4388
1565
+ vellum/workflows/nodes/core/try_node/node.py,sha256=1DAgNXFTGMRikbsPKclb9S9ZCzNCfeQYYNjbi2UCwds,4685
1564
1566
  vellum/workflows/nodes/core/try_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1565
- vellum/workflows/nodes/core/try_node/tests/test_node.py,sha256=h6eUc3SggvhzBWlOD0PrPUlkoCSQHwjqYn81VkxSIxU,4948
1567
+ vellum/workflows/nodes/core/try_node/tests/test_node.py,sha256=yoGPUdeO8Oa3N66XpwIhVVvGTBYSTQPPNTpwWefZIv4,5763
1566
1568
  vellum/workflows/nodes/displayable/__init__.py,sha256=6F_4DlSwvHuilWnIalp8iDjjDXl0Nmz4QzJV2PYe5RI,1023
1567
1569
  vellum/workflows/nodes/displayable/api_node/__init__.py,sha256=MoxdQSnidIj1Nf_d-hTxlOxcZXaZnsWFDbE-PkTK24o,56
1568
1570
  vellum/workflows/nodes/displayable/api_node/node.py,sha256=cp0nAukcOpM6TcNhbz12h08TMJxp_LM-MLDl1dAzYsk,2534
@@ -1643,7 +1645,7 @@ vellum/workflows/outputs/__init__.py,sha256=AyZ4pRh_ACQIGvkf0byJO46EDnSix1ZCAXfv
1643
1645
  vellum/workflows/outputs/base.py,sha256=1OGHqBJVk7i8cW8uewFWOhIjuMlRRpzCDrGE30ZwDjw,8763
1644
1646
  vellum/workflows/ports/__init__.py,sha256=bZuMt-R7z5bKwpu4uPW7LlJeePOQWmCcDSXe5frUY5g,101
1645
1647
  vellum/workflows/ports/node_ports.py,sha256=2Uo9gwNVCuH86J-GXcpc95QSDh5I-XVvhHJCMSWe-S8,2825
1646
- vellum/workflows/ports/port.py,sha256=eI2SOZPZ5rsC3jMsxW6Rbn0NpaYQsrR7AapiIbbiy8Q,3635
1648
+ vellum/workflows/ports/port.py,sha256=j_qiZlpx-a1cK5E7sxXwPcb_9NS-KUM-JoP8mgqg32k,4073
1647
1649
  vellum/workflows/ports/utils.py,sha256=cWJ9xX1KrHBTiU3xe6t7Rs0yaOy9RV18GMtHaAshAsc,3094
1648
1650
  vellum/workflows/references/__init__.py,sha256=glHFC1VfXmcbNvH5VzFbkT03d8_D7MMcvEcsUBrzLIs,591
1649
1651
  vellum/workflows/references/constant.py,sha256=6yUT4q1sMj1hkI_tzzQ9AYcmeeDYFUNCqUq_W2DN0S8,540
@@ -1679,8 +1681,8 @@ vellum/workflows/types/definition.py,sha256=z81CL_u0FJol-9yUIqoXNTYAARtU8x__c6s-
1679
1681
  vellum/workflows/types/generics.py,sha256=tKXz0LwWJGKw1YGudyl9_yFDrRgU6yYV1yJV1Zv-LTw,1430
1680
1682
  vellum/workflows/types/stack.py,sha256=h7NE0vXR7l9DevFBIzIAk1Zh59K-kECQtDTKOUunwMY,1314
1681
1683
  vellum/workflows/types/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1682
- vellum/workflows/types/tests/test_utils.py,sha256=y2bj4O8-ykPRRRocdD98NdnQz6ydSCoMBp6rECPPqE8,2536
1683
- vellum/workflows/types/utils.py,sha256=mSlcgIr8q_qMCtSCdPxcduRntL_5hk4ptFGq3K0EVgw,5801
1684
+ vellum/workflows/types/tests/test_utils.py,sha256=UnZog59tR577mVwqZRqqWn2fScoOU1H6up0EzS8zYhw,2536
1685
+ vellum/workflows/types/utils.py,sha256=axxHbPLsnjhEOnMZrc5YarFd-P2bnsacBDQGNCvY8OY,6367
1684
1686
  vellum/workflows/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1685
1687
  vellum/workflows/utils/functions.py,sha256=7A4BImhtY__qQpNrF5uPiwLfkj6PSUxYvF7ITigIkxY,4051
1686
1688
  vellum/workflows/utils/names.py,sha256=QLUqfJ1tmSEeUwBKTTiv_Qk3QGbInC2RSmlXfGXc8Wo,380
@@ -1698,8 +1700,8 @@ vellum/workflows/workflows/event_filters.py,sha256=GSxIgwrX26a1Smfd-6yss2abGCnad
1698
1700
  vellum/workflows/workflows/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1699
1701
  vellum/workflows/workflows/tests/test_base_workflow.py,sha256=8P5YIsNMO78_CR1NNK6wkEdkMB4b3Q_Ni1qxh78OnHo,20481
1700
1702
  vellum/workflows/workflows/tests/test_context.py,sha256=VJBUcyWVtMa_lE5KxdhgMu0WYNYnUQUDvTF7qm89hJ0,2333
1701
- vellum_ai-0.14.44.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
1702
- vellum_ai-0.14.44.dist-info/METADATA,sha256=m4i-IppU7qrX6bueYqy1ma0QUBht58aQCd-FP7Lekxc,5484
1703
- vellum_ai-0.14.44.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1704
- vellum_ai-0.14.44.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
1705
- vellum_ai-0.14.44.dist-info/RECORD,,
1703
+ vellum_ai-0.14.45.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
1704
+ vellum_ai-0.14.45.dist-info/METADATA,sha256=BfwTGG-Soly3Rh8Hqs0qan0I50KGBzN7o4hDZfMfdQo,5484
1705
+ vellum_ai-0.14.45.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1706
+ vellum_ai-0.14.45.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
1707
+ vellum_ai-0.14.45.dist-info/RECORD,,