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.
- vellum/client/core/client_wrapper.py +1 -1
- vellum/client/core/pydantic_utilities.py +7 -1
- vellum/workflows/nodes/bases/base.py +1 -0
- vellum/workflows/nodes/bases/tests/test_base_node.py +20 -0
- vellum/workflows/nodes/core/try_node/node.py +6 -3
- vellum/workflows/nodes/core/try_node/tests/test_node.py +24 -0
- vellum/workflows/ports/port.py +13 -3
- vellum/workflows/types/tests/test_utils.py +3 -3
- vellum/workflows/types/utils.py +31 -10
- {vellum_ai-0.14.44.dist-info → vellum_ai-0.14.45.dist-info}/METADATA +1 -1
- {vellum_ai-0.14.44.dist-info → vellum_ai-0.14.45.dist-info}/RECORD +46 -44
- vellum_ee/workflows/display/nodes/base_node_display.py +4 -173
- vellum_ee/workflows/display/nodes/vellum/conditional_node.py +1 -1
- vellum_ee/workflows/display/nodes/vellum/final_output_node.py +2 -1
- vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py +4 -1
- vellum_ee/workflows/display/nodes/vellum/retry_node.py +3 -3
- vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py +4 -1
- vellum_ee/workflows/display/nodes/vellum/tests/test_prompt_deployment_node.py +106 -0
- vellum_ee/workflows/display/nodes/vellum/tests/test_subworkflow_deployment_node.py +109 -0
- vellum_ee/workflows/display/nodes/vellum/try_node.py +3 -3
- vellum_ee/workflows/display/tests/test_base_workflow_display.py +1 -0
- vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_adornments_serialization.py +73 -111
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py +0 -1
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py +0 -3
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py +0 -4
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_default_state_serialization.py +0 -1
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py +0 -1
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_generic_node_serialization.py +0 -1
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py +0 -1
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py +18 -2
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py +10 -1
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py +0 -1
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py +2 -3
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py +0 -1
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py +2 -3
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py +0 -1
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py +1 -2
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py +0 -1
- vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py +5 -55
- vellum_ee/workflows/display/utils/expressions.py +221 -1
- vellum_ee/workflows/display/utils/vellum.py +0 -76
- vellum_ee/workflows/display/workflows/base_workflow_display.py +49 -37
- vellum_ee/workflows/display/workflows/tests/test_workflow_display.py +45 -0
- {vellum_ai-0.14.44.dist-info → vellum_ai-0.14.45.dist-info}/LICENSE +0 -0
- {vellum_ai-0.14.44.dist-info → vellum_ai-0.14.45.dist-info}/WHEEL +0 -0
- {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.
|
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
|
-
|
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
|
-
|
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
|
-
|
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):
|
vellum/workflows/ports/port.py
CHANGED
@@ -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)
|
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,
|
87
|
-
(ExampleGenericClass,
|
88
|
-
(ExampleInheritedClass,
|
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):
|
vellum/workflows/types/utils.py
CHANGED
@@ -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) ->
|
105
|
-
#
|
106
|
-
|
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
|
-
#
|
109
|
-
|
109
|
+
# we want to preserve the order of attributes on each class
|
110
|
+
ordered_attr_names: List[str] = []
|
110
111
|
|
111
|
-
for base in
|
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
|
-
|
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
|
-
|
116
|
-
|
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
|
140
|
+
return ordered_attr_names
|
120
141
|
|
121
142
|
|
122
143
|
def deepcopy_with_exclusions(
|
@@ -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=
|
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=
|
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=
|
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=
|
49
|
-
vellum_ee/workflows/display/nodes/vellum/retry_node.py,sha256=
|
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=
|
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=
|
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=
|
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=
|
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=
|
75
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py,sha256=
|
76
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py,sha256=
|
77
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_default_state_serialization.py,sha256=
|
78
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py,sha256=
|
79
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_generic_node_serialization.py,sha256=
|
80
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py,sha256=
|
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=
|
83
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=
|
84
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py,sha256=
|
85
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py,sha256=
|
86
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py,sha256=
|
87
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py,sha256=
|
88
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py,sha256=
|
89
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py,sha256=
|
90
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py,sha256=
|
91
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
1683
|
-
vellum/workflows/types/utils.py,sha256=
|
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.
|
1702
|
-
vellum_ai-0.14.
|
1703
|
-
vellum_ai-0.14.
|
1704
|
-
vellum_ai-0.14.
|
1705
|
-
vellum_ai-0.14.
|
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,,
|