vellum-ai 0.14.43__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/node_ports.py +3 -2
- vellum/workflows/ports/port.py +13 -3
- vellum/workflows/ports/utils.py +50 -17
- vellum/workflows/types/tests/test_utils.py +3 -3
- vellum/workflows/types/utils.py +31 -10
- {vellum_ai-0.14.43.dist-info → vellum_ai-0.14.45.dist-info}/METADATA +1 -1
- {vellum_ai-0.14.43.dist-info → vellum_ai-0.14.45.dist-info}/RECORD +48 -46
- 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.43.dist-info → vellum_ai-0.14.45.dist-info}/LICENSE +0 -0
- {vellum_ai-0.14.43.dist-info → vellum_ai-0.14.45.dist-info}/WHEEL +0 -0
- {vellum_ai-0.14.43.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):
|
@@ -2,7 +2,7 @@ from typing import Any, Dict, Iterator, Optional, Set, Tuple, Type
|
|
2
2
|
|
3
3
|
from vellum.workflows.outputs.base import BaseOutput, BaseOutputs
|
4
4
|
from vellum.workflows.ports.port import Port
|
5
|
-
from vellum.workflows.ports.utils import validate_ports
|
5
|
+
from vellum.workflows.ports.utils import get_port_groups, validate_ports
|
6
6
|
from vellum.workflows.state.base import BaseState
|
7
7
|
from vellum.workflows.types.core import ConditionType
|
8
8
|
|
@@ -54,7 +54,8 @@ class NodePorts(metaclass=_NodePortsMeta):
|
|
54
54
|
resolved_condition = port.resolve_condition(state)
|
55
55
|
if resolved_condition:
|
56
56
|
invoked_ports.add(port)
|
57
|
-
|
57
|
+
if len(get_port_groups(all_ports)) <= 1:
|
58
|
+
break
|
58
59
|
|
59
60
|
elif port._condition_type == ConditionType.ELSE and not invoked_ports:
|
60
61
|
invoked_ports.add(port)
|
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
|
+
)
|
vellum/workflows/ports/utils.py
CHANGED
@@ -11,30 +11,63 @@ PORT_TYPE_PRIORITIES = {
|
|
11
11
|
}
|
12
12
|
|
13
13
|
|
14
|
-
def
|
14
|
+
def get_port_groups(ports: List[Port]) -> List[List[ConditionType]]:
|
15
15
|
# We don't want to validate ports with no condition (default ports)
|
16
16
|
port_types = [port._condition_type for port in ports if port._condition_type is not None]
|
17
|
-
sorted_port_types = sorted(port_types, key=lambda port_type: PORT_TYPE_PRIORITIES[port_type])
|
18
17
|
|
19
|
-
|
20
|
-
|
18
|
+
ports_class = f"{ports[0].node_class}.Ports"
|
19
|
+
|
20
|
+
# Check all ports by port groups
|
21
|
+
port_groups: List[List[ConditionType]] = []
|
22
|
+
current_port_group: List[ConditionType] = []
|
23
|
+
|
24
|
+
for port_type in port_types:
|
25
|
+
# Start a new group only if we see an IF
|
26
|
+
if port_type == ConditionType.IF:
|
27
|
+
# Only append the current group if it's not empty and starts with an IF
|
28
|
+
if current_port_group and current_port_group[0] == ConditionType.IF:
|
29
|
+
port_groups.append(current_port_group)
|
30
|
+
current_port_group = [port_type]
|
31
|
+
else:
|
32
|
+
# If we see an ELIF or ELSE without a preceding IF, that's an error
|
33
|
+
if not current_port_group:
|
34
|
+
raise ValueError(f"Class {ports_class} must have ports in the following order: on_if, on_elif, on_else")
|
35
|
+
current_port_group.append(port_type)
|
36
|
+
|
37
|
+
if current_port_group and current_port_group[0] == ConditionType.IF:
|
38
|
+
port_groups.append(current_port_group)
|
39
|
+
elif current_port_group:
|
40
|
+
# If the last group doesn't start with IF, that's an error
|
41
|
+
raise ValueError(f"Class {ports_class} must have ports in the following order: on_if, on_elif, on_else")
|
21
42
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
43
|
+
return port_groups
|
44
|
+
|
45
|
+
|
46
|
+
def validate_ports(ports: List[Port]) -> bool:
|
26
47
|
ports_class = f"{ports[0].node_class}.Ports"
|
48
|
+
port_groups = get_port_groups(ports)
|
49
|
+
# Validate each port group
|
50
|
+
for group in port_groups:
|
51
|
+
# Check that each port group is in the correct order
|
52
|
+
sorted_group = sorted(group, key=lambda port_type: PORT_TYPE_PRIORITIES[port_type])
|
53
|
+
if sorted_group != group:
|
54
|
+
raise ValueError(f"Class {ports_class} must have ports in the following order: on_if, on_elif, on_else")
|
55
|
+
|
56
|
+
# Count the types in this port group
|
57
|
+
counter = Counter(group)
|
58
|
+
number_of_if_ports = counter[ConditionType.IF]
|
59
|
+
number_of_elif_ports = counter[ConditionType.ELIF]
|
60
|
+
number_of_else_ports = counter[ConditionType.ELSE]
|
27
61
|
|
28
|
-
|
29
|
-
|
30
|
-
f"Class {ports_class}
|
31
|
-
)
|
62
|
+
# Apply the rules to each port group
|
63
|
+
if number_of_if_ports != 1:
|
64
|
+
raise ValueError(f"Class {ports_class} must have exactly one on_if condition")
|
32
65
|
|
33
|
-
|
34
|
-
|
66
|
+
if number_of_elif_ports > 0 and number_of_if_ports != 1:
|
67
|
+
raise ValueError(f"Class {ports_class} containing on_elif ports must have exactly one on_if condition")
|
35
68
|
|
36
|
-
|
37
|
-
|
69
|
+
if number_of_else_ports > 1:
|
70
|
+
raise ValueError(f"Class {ports_class} must have at most one on_else condition")
|
38
71
|
|
39
|
-
enforce_single_invoked_conditional_port =
|
72
|
+
enforce_single_invoked_conditional_port = len(port_groups) <= 1
|
40
73
|
return enforce_single_invoked_conditional_port
|
@@ -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
|
@@ -1642,9 +1644,9 @@ vellum/workflows/nodes/utils.py,sha256=ziHJc5uU4foxIvacl0Vg7fEJJ0jiznqqhyvURVj0F
|
|
1642
1644
|
vellum/workflows/outputs/__init__.py,sha256=AyZ4pRh_ACQIGvkf0byJO46EDnSix1ZCAXfvh-ms1QE,94
|
1643
1645
|
vellum/workflows/outputs/base.py,sha256=1OGHqBJVk7i8cW8uewFWOhIjuMlRRpzCDrGE30ZwDjw,8763
|
1644
1646
|
vellum/workflows/ports/__init__.py,sha256=bZuMt-R7z5bKwpu4uPW7LlJeePOQWmCcDSXe5frUY5g,101
|
1645
|
-
vellum/workflows/ports/node_ports.py,sha256=
|
1646
|
-
vellum/workflows/ports/port.py,sha256=
|
1647
|
-
vellum/workflows/ports/utils.py,sha256=
|
1647
|
+
vellum/workflows/ports/node_ports.py,sha256=2Uo9gwNVCuH86J-GXcpc95QSDh5I-XVvhHJCMSWe-S8,2825
|
1648
|
+
vellum/workflows/ports/port.py,sha256=j_qiZlpx-a1cK5E7sxXwPcb_9NS-KUM-JoP8mgqg32k,4073
|
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
|
1650
1652
|
vellum/workflows/references/environment_variable.py,sha256=-gfOcdYwVp9ztSUYz6h2WI2Cg95zqxq5hhFf3Yr7aQg,791
|
@@ -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,,
|