vellum-ai 0.9.16rc2__py3-none-any.whl → 0.10.0__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- vellum/plugins/__init__.py +0 -0
- vellum/plugins/pydantic.py +74 -0
- vellum/plugins/utils.py +19 -0
- vellum/plugins/vellum_mypy.py +639 -3
- vellum/workflows/README.md +90 -0
- vellum/workflows/__init__.py +5 -0
- vellum/workflows/constants.py +43 -0
- vellum/workflows/descriptors/__init__.py +0 -0
- vellum/workflows/descriptors/base.py +339 -0
- vellum/workflows/descriptors/tests/test_utils.py +83 -0
- vellum/workflows/descriptors/utils.py +90 -0
- vellum/workflows/edges/__init__.py +5 -0
- vellum/workflows/edges/edge.py +23 -0
- vellum/workflows/emitters/__init__.py +5 -0
- vellum/workflows/emitters/base.py +14 -0
- vellum/workflows/environment/__init__.py +5 -0
- vellum/workflows/environment/environment.py +7 -0
- vellum/workflows/errors/__init__.py +6 -0
- vellum/workflows/errors/types.py +20 -0
- vellum/workflows/events/__init__.py +31 -0
- vellum/workflows/events/node.py +125 -0
- vellum/workflows/events/tests/__init__.py +0 -0
- vellum/workflows/events/tests/test_event.py +216 -0
- vellum/workflows/events/types.py +52 -0
- vellum/workflows/events/utils.py +5 -0
- vellum/workflows/events/workflow.py +139 -0
- vellum/workflows/exceptions.py +15 -0
- vellum/workflows/expressions/__init__.py +0 -0
- vellum/workflows/expressions/accessor.py +52 -0
- vellum/workflows/expressions/and_.py +32 -0
- vellum/workflows/expressions/begins_with.py +31 -0
- vellum/workflows/expressions/between.py +38 -0
- vellum/workflows/expressions/coalesce_expression.py +41 -0
- vellum/workflows/expressions/contains.py +30 -0
- vellum/workflows/expressions/does_not_begin_with.py +31 -0
- vellum/workflows/expressions/does_not_contain.py +30 -0
- vellum/workflows/expressions/does_not_end_with.py +31 -0
- vellum/workflows/expressions/does_not_equal.py +25 -0
- vellum/workflows/expressions/ends_with.py +31 -0
- vellum/workflows/expressions/equals.py +25 -0
- vellum/workflows/expressions/greater_than.py +33 -0
- vellum/workflows/expressions/greater_than_or_equal_to.py +33 -0
- vellum/workflows/expressions/in_.py +31 -0
- vellum/workflows/expressions/is_blank.py +24 -0
- vellum/workflows/expressions/is_not_blank.py +24 -0
- vellum/workflows/expressions/is_not_null.py +21 -0
- vellum/workflows/expressions/is_not_undefined.py +22 -0
- vellum/workflows/expressions/is_null.py +21 -0
- vellum/workflows/expressions/is_undefined.py +22 -0
- vellum/workflows/expressions/less_than.py +33 -0
- vellum/workflows/expressions/less_than_or_equal_to.py +33 -0
- vellum/workflows/expressions/not_between.py +38 -0
- vellum/workflows/expressions/not_in.py +31 -0
- vellum/workflows/expressions/or_.py +32 -0
- vellum/workflows/graph/__init__.py +3 -0
- vellum/workflows/graph/graph.py +131 -0
- vellum/workflows/graph/tests/__init__.py +0 -0
- vellum/workflows/graph/tests/test_graph.py +437 -0
- vellum/workflows/inputs/__init__.py +5 -0
- vellum/workflows/inputs/base.py +55 -0
- vellum/workflows/logging.py +14 -0
- vellum/workflows/nodes/__init__.py +46 -0
- vellum/workflows/nodes/bases/__init__.py +7 -0
- vellum/workflows/nodes/bases/base.py +332 -0
- vellum/workflows/nodes/bases/base_subworkflow_node/__init__.py +5 -0
- vellum/workflows/nodes/bases/base_subworkflow_node/node.py +10 -0
- vellum/workflows/nodes/bases/tests/__init__.py +0 -0
- vellum/workflows/nodes/bases/tests/test_base_node.py +125 -0
- vellum/workflows/nodes/core/__init__.py +16 -0
- vellum/workflows/nodes/core/error_node/__init__.py +5 -0
- vellum/workflows/nodes/core/error_node/node.py +26 -0
- vellum/workflows/nodes/core/inline_subworkflow_node/__init__.py +5 -0
- vellum/workflows/nodes/core/inline_subworkflow_node/node.py +73 -0
- vellum/workflows/nodes/core/map_node/__init__.py +5 -0
- vellum/workflows/nodes/core/map_node/node.py +147 -0
- vellum/workflows/nodes/core/map_node/tests/__init__.py +0 -0
- vellum/workflows/nodes/core/map_node/tests/test_node.py +65 -0
- vellum/workflows/nodes/core/retry_node/__init__.py +5 -0
- vellum/workflows/nodes/core/retry_node/node.py +106 -0
- vellum/workflows/nodes/core/retry_node/tests/__init__.py +0 -0
- vellum/workflows/nodes/core/retry_node/tests/test_node.py +93 -0
- vellum/workflows/nodes/core/templating_node/__init__.py +5 -0
- vellum/workflows/nodes/core/templating_node/custom_filters.py +12 -0
- vellum/workflows/nodes/core/templating_node/exceptions.py +2 -0
- vellum/workflows/nodes/core/templating_node/node.py +123 -0
- vellum/workflows/nodes/core/templating_node/render.py +55 -0
- vellum/workflows/nodes/core/templating_node/tests/test_templating_node.py +21 -0
- vellum/workflows/nodes/core/try_node/__init__.py +5 -0
- vellum/workflows/nodes/core/try_node/node.py +110 -0
- vellum/workflows/nodes/core/try_node/tests/__init__.py +0 -0
- vellum/workflows/nodes/core/try_node/tests/test_node.py +82 -0
- vellum/workflows/nodes/displayable/__init__.py +31 -0
- vellum/workflows/nodes/displayable/api_node/__init__.py +5 -0
- vellum/workflows/nodes/displayable/api_node/node.py +44 -0
- vellum/workflows/nodes/displayable/bases/__init__.py +11 -0
- vellum/workflows/nodes/displayable/bases/api_node/__init__.py +5 -0
- vellum/workflows/nodes/displayable/bases/api_node/node.py +70 -0
- vellum/workflows/nodes/displayable/bases/base_prompt_node/__init__.py +5 -0
- vellum/workflows/nodes/displayable/bases/base_prompt_node/node.py +60 -0
- vellum/workflows/nodes/displayable/bases/inline_prompt_node/__init__.py +5 -0
- vellum/workflows/nodes/displayable/bases/inline_prompt_node/constants.py +13 -0
- vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py +118 -0
- vellum/workflows/nodes/displayable/bases/prompt_deployment_node.py +98 -0
- vellum/workflows/nodes/displayable/bases/search_node.py +90 -0
- vellum/workflows/nodes/displayable/code_execution_node/__init__.py +5 -0
- vellum/workflows/nodes/displayable/code_execution_node/node.py +197 -0
- vellum/workflows/nodes/displayable/code_execution_node/tests/__init__.py +0 -0
- vellum/workflows/nodes/displayable/code_execution_node/tests/fixtures/__init__.py +0 -0
- vellum/workflows/nodes/displayable/code_execution_node/tests/fixtures/main.py +3 -0
- vellum/workflows/nodes/displayable/code_execution_node/tests/test_code_execution_node.py +111 -0
- vellum/workflows/nodes/displayable/code_execution_node/utils.py +10 -0
- vellum/workflows/nodes/displayable/conditional_node/__init__.py +5 -0
- vellum/workflows/nodes/displayable/conditional_node/node.py +25 -0
- vellum/workflows/nodes/displayable/final_output_node/__init__.py +5 -0
- vellum/workflows/nodes/displayable/final_output_node/node.py +43 -0
- vellum/workflows/nodes/displayable/guardrail_node/__init__.py +5 -0
- vellum/workflows/nodes/displayable/guardrail_node/node.py +97 -0
- vellum/workflows/nodes/displayable/inline_prompt_node/__init__.py +5 -0
- vellum/workflows/nodes/displayable/inline_prompt_node/node.py +41 -0
- vellum/workflows/nodes/displayable/merge_node/__init__.py +5 -0
- vellum/workflows/nodes/displayable/merge_node/node.py +10 -0
- vellum/workflows/nodes/displayable/prompt_deployment_node/__init__.py +5 -0
- vellum/workflows/nodes/displayable/prompt_deployment_node/node.py +45 -0
- vellum/workflows/nodes/displayable/search_node/__init__.py +5 -0
- vellum/workflows/nodes/displayable/search_node/node.py +26 -0
- vellum/workflows/nodes/displayable/subworkflow_deployment_node/__init__.py +5 -0
- vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py +156 -0
- vellum/workflows/nodes/displayable/tests/__init__.py +0 -0
- vellum/workflows/nodes/displayable/tests/test_inline_text_prompt_node.py +148 -0
- vellum/workflows/nodes/displayable/tests/test_search_node_wth_text_output.py +134 -0
- vellum/workflows/nodes/displayable/tests/test_text_prompt_deployment_node.py +80 -0
- vellum/workflows/nodes/utils.py +27 -0
- vellum/workflows/outputs/__init__.py +6 -0
- vellum/workflows/outputs/base.py +196 -0
- vellum/workflows/ports/__init__.py +7 -0
- vellum/workflows/ports/node_ports.py +75 -0
- vellum/workflows/ports/port.py +75 -0
- vellum/workflows/ports/utils.py +40 -0
- vellum/workflows/references/__init__.py +17 -0
- vellum/workflows/references/environment_variable.py +20 -0
- vellum/workflows/references/execution_count.py +20 -0
- vellum/workflows/references/external_input.py +49 -0
- vellum/workflows/references/input.py +7 -0
- vellum/workflows/references/lazy.py +55 -0
- vellum/workflows/references/node.py +43 -0
- vellum/workflows/references/output.py +78 -0
- vellum/workflows/references/state_value.py +23 -0
- vellum/workflows/references/vellum_secret.py +15 -0
- vellum/workflows/references/workflow_input.py +41 -0
- vellum/workflows/resolvers/__init__.py +5 -0
- vellum/workflows/resolvers/base.py +15 -0
- vellum/workflows/runner/__init__.py +5 -0
- vellum/workflows/runner/runner.py +588 -0
- vellum/workflows/runner/types.py +18 -0
- vellum/workflows/state/__init__.py +5 -0
- vellum/workflows/state/base.py +327 -0
- vellum/workflows/state/context.py +18 -0
- vellum/workflows/state/encoder.py +57 -0
- vellum/workflows/state/store.py +28 -0
- vellum/workflows/state/tests/__init__.py +0 -0
- vellum/workflows/state/tests/test_state.py +113 -0
- vellum/workflows/types/__init__.py +0 -0
- vellum/workflows/types/core.py +91 -0
- vellum/workflows/types/generics.py +14 -0
- vellum/workflows/types/stack.py +39 -0
- vellum/workflows/types/tests/__init__.py +0 -0
- vellum/workflows/types/tests/test_utils.py +76 -0
- vellum/workflows/types/utils.py +164 -0
- vellum/workflows/utils/__init__.py +0 -0
- vellum/workflows/utils/names.py +13 -0
- vellum/workflows/utils/tests/__init__.py +0 -0
- vellum/workflows/utils/tests/test_names.py +15 -0
- vellum/workflows/utils/tests/test_vellum_variables.py +25 -0
- vellum/workflows/utils/vellum_variables.py +81 -0
- vellum/workflows/vellum_client.py +18 -0
- vellum/workflows/workflows/__init__.py +5 -0
- vellum/workflows/workflows/base.py +365 -0
- {vellum_ai-0.9.16rc2.dist-info → vellum_ai-0.10.0.dist-info}/METADATA +2 -1
- {vellum_ai-0.9.16rc2.dist-info → vellum_ai-0.10.0.dist-info}/RECORD +245 -7
- vellum_cli/__init__.py +72 -0
- vellum_cli/aliased_group.py +103 -0
- vellum_cli/config.py +96 -0
- vellum_cli/image_push.py +112 -0
- vellum_cli/logger.py +36 -0
- vellum_cli/pull.py +73 -0
- vellum_cli/push.py +121 -0
- vellum_cli/tests/test_config.py +100 -0
- vellum_cli/tests/test_pull.py +152 -0
- vellum_ee/workflows/__init__.py +0 -0
- vellum_ee/workflows/display/__init__.py +0 -0
- vellum_ee/workflows/display/base.py +73 -0
- vellum_ee/workflows/display/nodes/__init__.py +4 -0
- vellum_ee/workflows/display/nodes/base_node_display.py +116 -0
- vellum_ee/workflows/display/nodes/base_node_vellum_display.py +36 -0
- vellum_ee/workflows/display/nodes/get_node_display_class.py +25 -0
- vellum_ee/workflows/display/nodes/tests/__init__.py +0 -0
- vellum_ee/workflows/display/nodes/tests/test_base_node_display.py +47 -0
- vellum_ee/workflows/display/nodes/types.py +18 -0
- vellum_ee/workflows/display/nodes/utils.py +33 -0
- vellum_ee/workflows/display/nodes/vellum/__init__.py +32 -0
- vellum_ee/workflows/display/nodes/vellum/api_node.py +205 -0
- vellum_ee/workflows/display/nodes/vellum/code_execution_node.py +71 -0
- vellum_ee/workflows/display/nodes/vellum/conditional_node.py +217 -0
- vellum_ee/workflows/display/nodes/vellum/final_output_node.py +61 -0
- vellum_ee/workflows/display/nodes/vellum/guardrail_node.py +49 -0
- vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py +170 -0
- vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py +99 -0
- vellum_ee/workflows/display/nodes/vellum/map_node.py +100 -0
- vellum_ee/workflows/display/nodes/vellum/merge_node.py +48 -0
- vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py +68 -0
- vellum_ee/workflows/display/nodes/vellum/search_node.py +193 -0
- vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py +58 -0
- vellum_ee/workflows/display/nodes/vellum/templating_node.py +67 -0
- vellum_ee/workflows/display/nodes/vellum/tests/__init__.py +0 -0
- vellum_ee/workflows/display/nodes/vellum/tests/test_utils.py +106 -0
- vellum_ee/workflows/display/nodes/vellum/try_node.py +38 -0
- vellum_ee/workflows/display/nodes/vellum/utils.py +76 -0
- vellum_ee/workflows/display/tests/__init__.py +0 -0
- vellum_ee/workflows/display/tests/workflow_serialization/__init__.py +0 -0
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py +426 -0
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py +607 -0
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py +1175 -0
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py +235 -0
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py +511 -0
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py +372 -0
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py +272 -0
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py +289 -0
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py +354 -0
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py +123 -0
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py +84 -0
- vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py +233 -0
- vellum_ee/workflows/display/types.py +46 -0
- vellum_ee/workflows/display/utils/__init__.py +0 -0
- vellum_ee/workflows/display/utils/tests/__init__.py +0 -0
- vellum_ee/workflows/display/utils/tests/test_uuids.py +16 -0
- vellum_ee/workflows/display/utils/uuids.py +24 -0
- vellum_ee/workflows/display/utils/vellum.py +121 -0
- vellum_ee/workflows/display/vellum.py +357 -0
- vellum_ee/workflows/display/workflows/__init__.py +5 -0
- vellum_ee/workflows/display/workflows/base_workflow_display.py +302 -0
- vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py +32 -0
- vellum_ee/workflows/display/workflows/vellum_workflow_display.py +386 -0
- {vellum_ai-0.9.16rc2.dist-info → vellum_ai-0.10.0.dist-info}/LICENSE +0 -0
- {vellum_ai-0.9.16rc2.dist-info → vellum_ai-0.10.0.dist-info}/WHEEL +0 -0
- {vellum_ai-0.9.16rc2.dist-info → vellum_ai-0.10.0.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,365 @@
|
|
1
|
+
# flake8: noqa: E402
|
2
|
+
|
3
|
+
import importlib
|
4
|
+
import inspect
|
5
|
+
|
6
|
+
from vellum.plugins.utils import load_runtime_plugins
|
7
|
+
|
8
|
+
load_runtime_plugins()
|
9
|
+
|
10
|
+
from datetime import datetime
|
11
|
+
from functools import lru_cache
|
12
|
+
from threading import Event as ThreadingEvent
|
13
|
+
from uuid import uuid4
|
14
|
+
from typing import (
|
15
|
+
Any,
|
16
|
+
ClassVar,
|
17
|
+
Dict,
|
18
|
+
Generator,
|
19
|
+
Generic,
|
20
|
+
Iterable,
|
21
|
+
Iterator,
|
22
|
+
List,
|
23
|
+
Optional,
|
24
|
+
Set,
|
25
|
+
Tuple,
|
26
|
+
Type,
|
27
|
+
TypeVar,
|
28
|
+
Union,
|
29
|
+
cast,
|
30
|
+
get_args,
|
31
|
+
)
|
32
|
+
|
33
|
+
from vellum.workflows.edges import Edge
|
34
|
+
from vellum.workflows.emitters.base import BaseWorkflowEmitter
|
35
|
+
from vellum.workflows.errors import VellumError, VellumErrorCode
|
36
|
+
from vellum.workflows.events.node import (
|
37
|
+
NodeExecutionFulfilledBody,
|
38
|
+
NodeExecutionInitiatedBody,
|
39
|
+
NodeExecutionPausedBody,
|
40
|
+
NodeExecutionRejectedBody,
|
41
|
+
NodeExecutionResumedBody,
|
42
|
+
NodeExecutionStreamingBody,
|
43
|
+
)
|
44
|
+
from vellum.workflows.events.types import WorkflowEventType
|
45
|
+
from vellum.workflows.events.workflow import (
|
46
|
+
GenericWorkflowEvent,
|
47
|
+
WorkflowExecutionFulfilledBody,
|
48
|
+
WorkflowExecutionFulfilledEvent,
|
49
|
+
WorkflowExecutionInitiatedBody,
|
50
|
+
WorkflowExecutionInitiatedEvent,
|
51
|
+
WorkflowExecutionPausedBody,
|
52
|
+
WorkflowExecutionPausedEvent,
|
53
|
+
WorkflowExecutionRejectedBody,
|
54
|
+
WorkflowExecutionRejectedEvent,
|
55
|
+
WorkflowExecutionResumedBody,
|
56
|
+
WorkflowExecutionResumedEvent,
|
57
|
+
WorkflowExecutionStreamingBody,
|
58
|
+
)
|
59
|
+
from vellum.workflows.graph import Graph
|
60
|
+
from vellum.workflows.inputs.base import BaseInputs
|
61
|
+
from vellum.workflows.nodes.bases import BaseNode
|
62
|
+
from vellum.workflows.outputs import BaseOutputs
|
63
|
+
from vellum.workflows.resolvers.base import BaseWorkflowResolver
|
64
|
+
from vellum.workflows.runner import WorkflowRunner
|
65
|
+
from vellum.workflows.runner.runner import ExternalInputsArg, RunFromNodeArg
|
66
|
+
from vellum.workflows.state.base import BaseState, StateMeta
|
67
|
+
from vellum.workflows.state.context import WorkflowContext
|
68
|
+
from vellum.workflows.state.store import Store
|
69
|
+
from vellum.workflows.types.generics import StateType, WorkflowInputsType
|
70
|
+
from vellum.workflows.types.utils import get_original_base
|
71
|
+
|
72
|
+
|
73
|
+
class _BaseWorkflowMeta(type):
|
74
|
+
def __new__(mcs, name: str, bases: Tuple[Type, ...], dct: Dict[str, Any]) -> Any:
|
75
|
+
if "graph" not in dct:
|
76
|
+
dct["graph"] = []
|
77
|
+
|
78
|
+
return super().__new__(mcs, name, bases, dct)
|
79
|
+
|
80
|
+
|
81
|
+
class BaseWorkflow(Generic[WorkflowInputsType, StateType], metaclass=_BaseWorkflowMeta):
|
82
|
+
graph: ClassVar[Union[Type[BaseNode], Graph, Set[Type[BaseNode]], Set[Graph]]]
|
83
|
+
emitters: List[BaseWorkflowEmitter]
|
84
|
+
resolvers: List[BaseWorkflowResolver]
|
85
|
+
|
86
|
+
class Outputs(BaseOutputs):
|
87
|
+
pass
|
88
|
+
|
89
|
+
WorkflowEvent = Union[ # type: ignore
|
90
|
+
GenericWorkflowEvent,
|
91
|
+
WorkflowExecutionInitiatedEvent[WorkflowInputsType], # type: ignore[valid-type]
|
92
|
+
WorkflowExecutionFulfilledEvent[Outputs],
|
93
|
+
]
|
94
|
+
|
95
|
+
TerminalWorkflowEvent = Union[
|
96
|
+
WorkflowExecutionFulfilledEvent[Outputs],
|
97
|
+
WorkflowExecutionRejectedEvent,
|
98
|
+
WorkflowExecutionPausedEvent,
|
99
|
+
]
|
100
|
+
|
101
|
+
WorkflowEventStream = Generator[WorkflowEvent, None, None]
|
102
|
+
|
103
|
+
def __init__(
|
104
|
+
self,
|
105
|
+
parent_state: Optional[BaseState] = None,
|
106
|
+
emitters: Optional[List[BaseWorkflowEmitter]] = None,
|
107
|
+
resolvers: Optional[List[BaseWorkflowResolver]] = None,
|
108
|
+
context: Optional[WorkflowContext] = None,
|
109
|
+
):
|
110
|
+
self._parent_state = parent_state
|
111
|
+
self.emitters = emitters or (self.emitters if hasattr(self, "emitters") else [])
|
112
|
+
self.resolvers = resolvers or (self.resolvers if hasattr(self, "resolvers") else [])
|
113
|
+
self._context = context or WorkflowContext()
|
114
|
+
self._store = Store()
|
115
|
+
|
116
|
+
self.validate()
|
117
|
+
|
118
|
+
@property
|
119
|
+
def context(self) -> WorkflowContext:
|
120
|
+
return self._context
|
121
|
+
|
122
|
+
@classmethod
|
123
|
+
def get_subgraphs(cls) -> List[Graph]:
|
124
|
+
original_graph = cls.graph
|
125
|
+
if isinstance(original_graph, Graph):
|
126
|
+
return [original_graph]
|
127
|
+
if isinstance(original_graph, set):
|
128
|
+
return [
|
129
|
+
subgraph if isinstance(subgraph, Graph) else Graph.from_node(subgraph) for subgraph in original_graph
|
130
|
+
]
|
131
|
+
if issubclass(original_graph, BaseNode):
|
132
|
+
return [Graph.from_node(original_graph)]
|
133
|
+
|
134
|
+
raise ValueError(f"Unexpected graph type: {original_graph.__class__}")
|
135
|
+
|
136
|
+
@classmethod
|
137
|
+
def get_edges(cls) -> Iterator[Edge]:
|
138
|
+
"""
|
139
|
+
Returns an iterator over the edges in the workflow. We use a set to
|
140
|
+
ensure uniqueness, and the iterator to preserve order.
|
141
|
+
"""
|
142
|
+
|
143
|
+
edges = set()
|
144
|
+
subgraphs = cls.get_subgraphs()
|
145
|
+
for subgraph in subgraphs:
|
146
|
+
for edge in subgraph.edges:
|
147
|
+
if edge not in edges:
|
148
|
+
edges.add(edge)
|
149
|
+
yield edge
|
150
|
+
|
151
|
+
@classmethod
|
152
|
+
def get_nodes(cls) -> Iterator[Type[BaseNode]]:
|
153
|
+
"""
|
154
|
+
Returns an iterator over the nodes in the workflow. We use a set to
|
155
|
+
ensure uniqueness, and the iterator to preserve order.
|
156
|
+
"""
|
157
|
+
|
158
|
+
nodes = set()
|
159
|
+
for subgraph in cls.get_subgraphs():
|
160
|
+
for node in subgraph.nodes:
|
161
|
+
if node not in nodes:
|
162
|
+
nodes.add(node)
|
163
|
+
yield node
|
164
|
+
|
165
|
+
@classmethod
|
166
|
+
def get_entrypoints(cls) -> Iterable[Type[BaseNode]]:
|
167
|
+
return iter({e for g in cls.get_subgraphs() for e in g.entrypoints})
|
168
|
+
|
169
|
+
def run(
|
170
|
+
self,
|
171
|
+
inputs: Optional[WorkflowInputsType] = None,
|
172
|
+
state: Optional[StateType] = None,
|
173
|
+
entrypoint_nodes: Optional[RunFromNodeArg] = None,
|
174
|
+
external_inputs: Optional[ExternalInputsArg] = None,
|
175
|
+
cancel_signal: Optional[ThreadingEvent] = None,
|
176
|
+
) -> TerminalWorkflowEvent:
|
177
|
+
events = WorkflowRunner(
|
178
|
+
self,
|
179
|
+
inputs=inputs,
|
180
|
+
state=state,
|
181
|
+
entrypoint_nodes=entrypoint_nodes,
|
182
|
+
external_inputs=external_inputs,
|
183
|
+
cancel_signal=cancel_signal,
|
184
|
+
).stream()
|
185
|
+
first_event: Optional[Union[WorkflowExecutionInitiatedEvent, WorkflowExecutionResumedEvent]] = None
|
186
|
+
last_event = None
|
187
|
+
for event in events:
|
188
|
+
if event.name == "workflow.execution.initiated" or event.name == "workflow.execution.resumed":
|
189
|
+
first_event = event
|
190
|
+
last_event = event
|
191
|
+
|
192
|
+
if not last_event:
|
193
|
+
return WorkflowExecutionRejectedEvent(
|
194
|
+
trace_id=uuid4(),
|
195
|
+
span_id=uuid4(),
|
196
|
+
body=WorkflowExecutionRejectedBody(
|
197
|
+
error=VellumError(code=VellumErrorCode.INTERNAL_ERROR, message="No events were emitted"),
|
198
|
+
workflow_definition=self.__class__,
|
199
|
+
),
|
200
|
+
)
|
201
|
+
|
202
|
+
if not first_event:
|
203
|
+
return WorkflowExecutionRejectedEvent(
|
204
|
+
trace_id=uuid4(),
|
205
|
+
span_id=uuid4(),
|
206
|
+
body=WorkflowExecutionRejectedBody(
|
207
|
+
error=VellumError(code=VellumErrorCode.INTERNAL_ERROR, message="Initiated event was never emitted"),
|
208
|
+
workflow_definition=self.__class__,
|
209
|
+
),
|
210
|
+
)
|
211
|
+
|
212
|
+
if (
|
213
|
+
last_event.name == "workflow.execution.rejected"
|
214
|
+
or last_event.name == "workflow.execution.fulfilled"
|
215
|
+
or last_event.name == "workflow.execution.paused"
|
216
|
+
):
|
217
|
+
return last_event
|
218
|
+
|
219
|
+
return WorkflowExecutionRejectedEvent(
|
220
|
+
trace_id=first_event.trace_id,
|
221
|
+
span_id=first_event.span_id,
|
222
|
+
body=WorkflowExecutionRejectedBody(
|
223
|
+
workflow_definition=self.__class__,
|
224
|
+
error=VellumError(
|
225
|
+
code=VellumErrorCode.INTERNAL_ERROR,
|
226
|
+
message=f"Unexpected last event name found: {last_event.name}",
|
227
|
+
),
|
228
|
+
),
|
229
|
+
)
|
230
|
+
|
231
|
+
def stream(
|
232
|
+
self,
|
233
|
+
event_types: Optional[Set[WorkflowEventType]] = None,
|
234
|
+
inputs: Optional[WorkflowInputsType] = None,
|
235
|
+
state: Optional[StateType] = None,
|
236
|
+
entrypoint_nodes: Optional[RunFromNodeArg] = None,
|
237
|
+
external_inputs: Optional[ExternalInputsArg] = None,
|
238
|
+
cancel_signal: Optional[ThreadingEvent] = None,
|
239
|
+
) -> WorkflowEventStream:
|
240
|
+
event_types = event_types or {WorkflowEventType.WORKFLOW}
|
241
|
+
for event in WorkflowRunner(
|
242
|
+
self,
|
243
|
+
inputs=inputs,
|
244
|
+
state=state,
|
245
|
+
entrypoint_nodes=entrypoint_nodes,
|
246
|
+
external_inputs=external_inputs,
|
247
|
+
cancel_signal=cancel_signal,
|
248
|
+
).stream():
|
249
|
+
if WorkflowEventType(event.name.split(".")[0].upper()) in event_types:
|
250
|
+
yield event
|
251
|
+
|
252
|
+
def validate(self) -> None:
|
253
|
+
"""
|
254
|
+
Validates the Workflow, by running through our list of linter rules.
|
255
|
+
"""
|
256
|
+
# TODO: Implement rule that all entrypoints are non empty
|
257
|
+
# https://app.shortcut.com/vellum/story/4327
|
258
|
+
pass
|
259
|
+
|
260
|
+
@classmethod
|
261
|
+
@lru_cache
|
262
|
+
def _get_parameterized_classes(cls) -> Tuple[Type[WorkflowInputsType], Type[StateType]]:
|
263
|
+
original_base = get_original_base(cls)
|
264
|
+
|
265
|
+
inputs_type, state_type = get_args(original_base)
|
266
|
+
|
267
|
+
if isinstance(inputs_type, TypeVar):
|
268
|
+
inputs_type = BaseInputs
|
269
|
+
if isinstance(state_type, TypeVar):
|
270
|
+
state_type = BaseState
|
271
|
+
|
272
|
+
if not issubclass(inputs_type, BaseInputs):
|
273
|
+
raise ValueError(f"Expected first type to be a subclass of BaseInputs, was: {inputs_type}")
|
274
|
+
|
275
|
+
if not issubclass(state_type, BaseState):
|
276
|
+
raise ValueError(f"Expected second type to be a subclass of BaseState, was: {state_type}")
|
277
|
+
|
278
|
+
return (inputs_type, state_type)
|
279
|
+
|
280
|
+
@classmethod
|
281
|
+
def get_inputs_class(cls) -> Type[WorkflowInputsType]:
|
282
|
+
return cls._get_parameterized_classes()[0]
|
283
|
+
|
284
|
+
@classmethod
|
285
|
+
def get_state_class(cls) -> Type[StateType]:
|
286
|
+
return cls._get_parameterized_classes()[1]
|
287
|
+
|
288
|
+
def get_default_inputs(self) -> WorkflowInputsType:
|
289
|
+
return self.get_inputs_class()()
|
290
|
+
|
291
|
+
def get_default_state(self, workflow_inputs: Optional[WorkflowInputsType] = None) -> StateType:
|
292
|
+
return self.get_state_class()(
|
293
|
+
meta=StateMeta(parent=self._parent_state, workflow_inputs=workflow_inputs or self.get_default_inputs())
|
294
|
+
)
|
295
|
+
|
296
|
+
def get_state_at_node(self, node: Type[BaseNode]) -> StateType:
|
297
|
+
event_ts = datetime.min
|
298
|
+
for event in self._store.events:
|
299
|
+
if event.name == "node.execution.initiated" and event.node_definition == node:
|
300
|
+
event_ts = event.timestamp
|
301
|
+
|
302
|
+
most_recent_state_snapshot: Optional[StateType] = None
|
303
|
+
for snapshot in self._store.state_snapshots:
|
304
|
+
if snapshot.meta.updated_ts > event_ts:
|
305
|
+
break
|
306
|
+
|
307
|
+
most_recent_state_snapshot = cast(StateType, snapshot)
|
308
|
+
|
309
|
+
if not most_recent_state_snapshot:
|
310
|
+
return self.get_default_state()
|
311
|
+
|
312
|
+
return most_recent_state_snapshot
|
313
|
+
|
314
|
+
def get_most_recent_state(self) -> StateType:
|
315
|
+
most_recent_state_snapshot: Optional[StateType] = None
|
316
|
+
|
317
|
+
for snapshot in self._store.state_snapshots:
|
318
|
+
next_state = cast(StateType, snapshot)
|
319
|
+
if not most_recent_state_snapshot:
|
320
|
+
most_recent_state_snapshot = next_state
|
321
|
+
elif next_state.meta.updated_ts >= most_recent_state_snapshot.meta.updated_ts:
|
322
|
+
most_recent_state_snapshot = next_state
|
323
|
+
|
324
|
+
if not most_recent_state_snapshot:
|
325
|
+
return self.get_default_state()
|
326
|
+
|
327
|
+
return most_recent_state_snapshot
|
328
|
+
|
329
|
+
@staticmethod
|
330
|
+
def load_from_module(module_path: str) -> Type["BaseWorkflow"]:
|
331
|
+
workflow_path = f"{module_path}.workflow"
|
332
|
+
module = importlib.import_module(workflow_path)
|
333
|
+
|
334
|
+
workflows: List[Type[BaseWorkflow]] = []
|
335
|
+
for name in dir(module):
|
336
|
+
attr = getattr(module, name)
|
337
|
+
if (
|
338
|
+
inspect.isclass(attr)
|
339
|
+
and issubclass(attr, BaseWorkflow)
|
340
|
+
and attr != BaseWorkflow
|
341
|
+
and attr.__module__ == workflow_path
|
342
|
+
):
|
343
|
+
workflows.append(attr)
|
344
|
+
|
345
|
+
if len(workflows) == 0:
|
346
|
+
raise ValueError(f"No workflows found in {module_path}")
|
347
|
+
elif len(workflows) > 1:
|
348
|
+
raise ValueError(f"Multiple workflows found in {module_path}")
|
349
|
+
|
350
|
+
return workflows[0]
|
351
|
+
|
352
|
+
|
353
|
+
WorkflowExecutionInitiatedBody.model_rebuild()
|
354
|
+
WorkflowExecutionFulfilledBody.model_rebuild()
|
355
|
+
WorkflowExecutionRejectedBody.model_rebuild()
|
356
|
+
WorkflowExecutionPausedBody.model_rebuild()
|
357
|
+
WorkflowExecutionResumedBody.model_rebuild()
|
358
|
+
WorkflowExecutionStreamingBody.model_rebuild()
|
359
|
+
|
360
|
+
NodeExecutionInitiatedBody.model_rebuild()
|
361
|
+
NodeExecutionFulfilledBody.model_rebuild()
|
362
|
+
NodeExecutionRejectedBody.model_rebuild()
|
363
|
+
NodeExecutionPausedBody.model_rebuild()
|
364
|
+
NodeExecutionResumedBody.model_rebuild()
|
365
|
+
NodeExecutionStreamingBody.model_rebuild()
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: vellum-ai
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.10.0
|
4
4
|
Summary:
|
5
5
|
License: MIT
|
6
6
|
Requires-Python: >=3.9,<4.0
|
@@ -34,6 +34,7 @@ Requires-Dist: python-dotenv (==1.0.1)
|
|
34
34
|
Requires-Dist: pytz (==2022.6)
|
35
35
|
Requires-Dist: pyyaml (==6.0.1)
|
36
36
|
Requires-Dist: requests (==2.32.3)
|
37
|
+
Requires-Dist: tomli (==2.0.2)
|
37
38
|
Requires-Dist: typing_extensions (>=4.0.0)
|
38
39
|
Description-Content-Type: text/markdown
|
39
40
|
|
@@ -1,5 +1,67 @@
|
|
1
|
-
vellum_cli/__init__.py,sha256=
|
1
|
+
vellum_cli/__init__.py,sha256=i9jXzrSFcTGQJ5SgOv7_BZaMTgX_CSmNr5JoFIaTvJs,2204
|
2
|
+
vellum_cli/aliased_group.py,sha256=ugW498j0yv4ALJ8vS9MsO7ctDW7Jlir9j6nE_uHAP8c,3363
|
3
|
+
vellum_cli/config.py,sha256=urqMGQUkTntzdx-JV0P32FZVbqRZqgI-yFVmGPVblNI,3613
|
4
|
+
vellum_cli/image_push.py,sha256=lCQhkQu-IlIMHNSynmEl5KUzO_dHW27NTAFWnyvPpcs,4419
|
5
|
+
vellum_cli/logger.py,sha256=PuRFa0WCh4sAGFS5aqWB0QIYpS6nBWwPJrIXpWxugV4,1022
|
6
|
+
vellum_cli/pull.py,sha256=nIjb0Ejv9IXDzxjTKj-G8J4V6wCh2gyd0AwXH_lW6TE,3065
|
7
|
+
vellum_cli/push.py,sha256=HhXHqLvWKf3CUZJ3yIm-KeoBkgk73EXqVtGgWYcBcVk,5089
|
8
|
+
vellum_cli/tests/test_config.py,sha256=uvKGDc8BoVyT9_H0Z-g8469zVxomn6Oi3Zj-vK7O_wU,2631
|
9
|
+
vellum_cli/tests/test_pull.py,sha256=osrjSMVs61rsfw6Ui7ZnzxSX4-VI64vKOQS7BY8zfIo,5126
|
2
10
|
vellum_ee/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
|
+
vellum_ee/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
12
|
+
vellum_ee/workflows/display/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
13
|
+
vellum_ee/workflows/display/base.py,sha256=3ZFUYRNKL24fBqXhKpa_Dq2W1a-a86J20dmJYA3H2eY,1755
|
14
|
+
vellum_ee/workflows/display/nodes/__init__.py,sha256=5XOcZJXYUgaLS55QgRJzyQ_W1tpeprjnYAeYVezqoGw,160
|
15
|
+
vellum_ee/workflows/display/nodes/base_node_display.py,sha256=7szAFzhxfZc3cOtatZhMsH3kIKzoH_Hcx2jolNgPJS8,4679
|
16
|
+
vellum_ee/workflows/display/nodes/base_node_vellum_display.py,sha256=a62tpKcX0LdyZM2clwoGwpUfH3HMBbX1qiA0FFb_nk4,1649
|
17
|
+
vellum_ee/workflows/display/nodes/get_node_display_class.py,sha256=A036wKuBjhtBGJKdkQSq4v1Rcm0cXHropJxKPuGWAsk,907
|
18
|
+
vellum_ee/workflows/display/nodes/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
19
|
+
vellum_ee/workflows/display/nodes/tests/test_base_node_display.py,sha256=x7UkKR22rnNGjeerHBczZ9_YsK8Us-YFOEbrLylvIxM,1054
|
20
|
+
vellum_ee/workflows/display/nodes/types.py,sha256=St1BB6no528OyELGiyRabWao0GGw6mLhstQAvEACbGk,247
|
21
|
+
vellum_ee/workflows/display/nodes/utils.py,sha256=sloya5TpXsnot1HURc9L51INwflRqUzHxRVnCS9Cd-4,973
|
22
|
+
vellum_ee/workflows/display/nodes/vellum/__init__.py,sha256=WQ_KbMp__S41AUFDHt9dZU6IQLK9AizdGMi2M6eK2_8,1362
|
23
|
+
vellum_ee/workflows/display/nodes/vellum/api_node.py,sha256=5mMO1rKDafoPtnFZciuFGGfbu8Ei-j4zRiEDx9oQG4I,8572
|
24
|
+
vellum_ee/workflows/display/nodes/vellum/code_execution_node.py,sha256=VWFzPYzzNy4dSju0Gyegxx81A9cYjkN-dYqPTK3hCr4,3403
|
25
|
+
vellum_ee/workflows/display/nodes/vellum/conditional_node.py,sha256=-DoU5wdR4rYYxkCXBGE0re0iOqLTOV-JY4D9UDEYoh8,10130
|
26
|
+
vellum_ee/workflows/display/nodes/vellum/final_output_node.py,sha256=kR_z9ichhBtK_CLetqGjewmFmIFalfSiG2tQlM2T4yM,2772
|
27
|
+
vellum_ee/workflows/display/nodes/vellum/guardrail_node.py,sha256=CiGZL1nxgK0KxLUgKilpollRYFIqqGHjSGXtvP1miqs,2168
|
28
|
+
vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py,sha256=NuNoPnvwbdSRkTQA3clLySNSzqkK0nmU4L0zYqgIfFQ,7397
|
29
|
+
vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py,sha256=FwyEhiOpr1Uho6xJ7fenyaxUuciKV-zU19lT2zc2aQ0,4522
|
30
|
+
vellum_ee/workflows/display/nodes/vellum/map_node.py,sha256=38_0gZbtWgpBO6EAEnwR8Enz3vP23Ga72StZ__ECqIc,4646
|
31
|
+
vellum_ee/workflows/display/nodes/vellum/merge_node.py,sha256=7YmVRNSI6RkK1rvg0b0zDeW2nnBIKir0ERzqqtT08I4,2218
|
32
|
+
vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py,sha256=busFtdD7Cs6yeHsCeyVEReHkLlt062vP_mG4GAynsNk,3116
|
33
|
+
vellum_ee/workflows/display/nodes/vellum/search_node.py,sha256=ycbxwvAykeGqDQ7f1jUm-efsGIBxtEnLL63IpoCuts8,8679
|
34
|
+
vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py,sha256=oOXJmoxvdaqyBF480c5VnqS0JwLqgkmjYcQT8ktGIOg,2535
|
35
|
+
vellum_ee/workflows/display/nodes/vellum/templating_node.py,sha256=2pPnJOXQcHQI4RyXXsaisztXgHZB_PJ-D6re5zX0-WI,3076
|
36
|
+
vellum_ee/workflows/display/nodes/vellum/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
37
|
+
vellum_ee/workflows/display/nodes/vellum/tests/test_utils.py,sha256=LmjC0yhXWOIDPnHmQpoMpzLr_VE2_ZpsJhWGSAqaHHY,3809
|
38
|
+
vellum_ee/workflows/display/nodes/vellum/try_node.py,sha256=5JDFT8rpm4rKjoOvrjrvjyaK-sFVW0_xAZPB4_En-hA,1680
|
39
|
+
vellum_ee/workflows/display/nodes/vellum/utils.py,sha256=FqkLA5L6uoNMUHY86CBlr9w9CIH9kkWu6CuIDhqGrXs,3107
|
40
|
+
vellum_ee/workflows/display/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
41
|
+
vellum_ee/workflows/display/tests/workflow_serialization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
42
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py,sha256=bLdJ0VVwAPDRvwaJMiMf0fRCuIWvvuRjAxKzddGPFyA,16871
|
43
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py,sha256=JnaxdIDMudwgO4zzB0uJlCDYvoD1lZaAxFQ9OYxUFoA,22716
|
44
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py,sha256=ojMpjIq89GqMN8rDSGgjNDReYOD2WvAofRooKVv7TU8,50681
|
45
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py,sha256=FNmGO1hQjQOOejfSY-ErcMJXxvrxMyR7GZq4UX26UHA,8271
|
46
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py,sha256=2X8MzxZ3rf1lkx_e7Oez-qp4fvPZrdjulGAEOhbCMnY,21546
|
47
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=ESalw3PsfGy42w85FJr9VDWg8Rpv9NT25OMHpye27bs,14967
|
48
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py,sha256=NUe91w_AHNJmxDaP_51wLuQoaHKgwkq83OXy0fHNsK0,9997
|
49
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py,sha256=v40e6N3Tl-V0GpKOLmCndMvPvcSqKPht1yAkkeXGaAA,9467
|
50
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py,sha256=ouWOS8oEOwunsPlxF1ZnAg3cWXCp5XFKWRbO7Jx0bgc,12682
|
51
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py,sha256=1vK0NTotZ1-n4NSol8bFToFjFgHUkboo8Ue2YdZvUwY,4259
|
52
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py,sha256=Q2ONg1t3YVLlZgp85iOOn7LcWNVvdFxNJE4ibWLZhUg,2879
|
53
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256=sbW8zK1S3JAtTJeinmtqweb0wSQtFMZrVlbzm0nhUIs,9154
|
54
|
+
vellum_ee/workflows/display/types.py,sha256=BkOADbktn7uixSZbwm-Mv-WdCwGrWSh29sWM8sX5A48,2011
|
55
|
+
vellum_ee/workflows/display/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
56
|
+
vellum_ee/workflows/display/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
57
|
+
vellum_ee/workflows/display/utils/tests/test_uuids.py,sha256=ItjROhaPns8_mlvD17LIBwZKvhe2l0dXEd5oL-JiY64,448
|
58
|
+
vellum_ee/workflows/display/utils/uuids.py,sha256=DFzPv9RCvsKhvdTEIQyfSek2A31D6S_QcmeLPbgrgTY,739
|
59
|
+
vellum_ee/workflows/display/utils/vellum.py,sha256=PZ4J7MZukfLcjGfaWHPZBIcPaLdfqNhvW5a7iFKd1-4,4833
|
60
|
+
vellum_ee/workflows/display/vellum.py,sha256=1-9WyUzkZM46In1wkPHP3wssqFUrRXuWCnV922bBW1M,8543
|
61
|
+
vellum_ee/workflows/display/workflows/__init__.py,sha256=kapXsC67VJcgSuiBMa86FdePG5A9kMB5Pi4Uy1O2ob4,207
|
62
|
+
vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=Tt_2K9T2KyMuIVn0Hfh1MlZLHpOjetwYsicaIf49ZAo,12447
|
63
|
+
vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py,sha256=fgngC_HWeNRRJBNaQQAxQNlOsnMS7e5zPyLe9aysn4M,1373
|
64
|
+
vellum_ee/workflows/display/workflows/vellum_workflow_display.py,sha256=sDhCQJYdSJ4LcR7JBaTUllNhSaedQeD3Oe_ALUE3SiY,16634
|
3
65
|
vellum/__init__.py,sha256=m0Vfy02ACEtGf7LlRkVWFCAVF19SDF47PWJrCKIDsgo,34220
|
4
66
|
vellum/client/README.md,sha256=AnoYNaY6V9DMWIPs3Ntr1ljX5i8INGSmxMwDOWc83fs,5986
|
5
67
|
vellum/client/__init__.py,sha256=GtF36JNWxnFRV348M0-YcGd9N6ES-l0Q5b32rwHCR5E,115031
|
@@ -570,7 +632,10 @@ vellum/evaluations/utils/exceptions.py,sha256=dXMAkzqbHV_AP5FjjbegPlfUE0zQDlpA3q
|
|
570
632
|
vellum/evaluations/utils/paginator.py,sha256=yDvgehocYBDclLt5SewZH4hCIyq0yLHdBzkyPCoYPjs,698
|
571
633
|
vellum/evaluations/utils/typing.py,sha256=qngWnFwrWLUeu1nmixXGj173mwg7BXKTAyQkxK8AtfQ,327
|
572
634
|
vellum/evaluations/utils/uuid.py,sha256=nedyhTNQDS2YvrU5gL3PtvG9cgGH87yKOcpGDJAe44E,214
|
573
|
-
vellum/plugins/
|
635
|
+
vellum/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
636
|
+
vellum/plugins/pydantic.py,sha256=EbI0pJMhUS9rLPSkzmAELfnCHrWCJzOrU06T8ommwdw,2334
|
637
|
+
vellum/plugins/utils.py,sha256=U9ZY9KdE3RRvbcG01hXxu9CvfJD6Fo7nJDgcHjQn0FI,606
|
638
|
+
vellum/plugins/vellum_mypy.py,sha256=jzhp3qH14am9jTIUdWSwwgdZUmcHESsHgizcOXr-Ouw,25130
|
574
639
|
vellum/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
575
640
|
vellum/resources/__init__.py,sha256=sQWK7g_Z4EM7pa7fy6vy3d_DMdTJ4wVcozBn3Lx4Qpo,141
|
576
641
|
vellum/resources/ad_hoc/__init__.py,sha256=UD01D9nS_M7sRKmMbEg4Tv9SlfFj3cWahVxwUEaSLAY,148
|
@@ -1094,8 +1159,181 @@ vellum/types/workflow_result_event_output_data_string.py,sha256=rHEVbN0nyf-xoDoS
|
|
1094
1159
|
vellum/types/workflow_stream_event.py,sha256=PjHGgN0eJm5w-5FJ6__ASC1FU94Gsav_ko5JWkpVvK8,159
|
1095
1160
|
vellum/types/workspace_secret_read.py,sha256=Z6QNXHxVHRdrLXSI31KxngePRwJTVoJYMXVbtPQwrxs,159
|
1096
1161
|
vellum/version.py,sha256=jq-1PlAYxN9AXuaZqbYk9ak27SgE2lw9Ia5gx1b1gVI,76
|
1097
|
-
|
1098
|
-
|
1099
|
-
|
1100
|
-
|
1101
|
-
|
1162
|
+
vellum/workflows/README.md,sha256=MLNm-ihc0ao6I8gwwOhXQQBf0jOf-EsA9C519ALYI1o,3610
|
1163
|
+
vellum/workflows/__init__.py,sha256=CssPsbNvN6rDhoLuqpEv7MMKGa51vE6dvAh6U31Pcio,71
|
1164
|
+
vellum/workflows/constants.py,sha256=Z0W4YlqfSlSgWC11PrVUPs6ZOBeIaQ78E_90J1hohiw,789
|
1165
|
+
vellum/workflows/descriptors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1166
|
+
vellum/workflows/descriptors/base.py,sha256=VyyXtGJ_Hc34AOC8XC_Rw_68L4WMgD5w9Y7r8t8My4E,13814
|
1167
|
+
vellum/workflows/descriptors/tests/test_utils.py,sha256=icwW-YkHD5oR6rn9IH6Rck9yYOsuwnocyJVHoeJFd74,2849
|
1168
|
+
vellum/workflows/descriptors/utils.py,sha256=StqMFQzeeWS70ODqKOwwDucr3PUGl2XOr6C0sERLv8M,2990
|
1169
|
+
vellum/workflows/edges/__init__.py,sha256=wSkmAnz9xyi4vZwtDbKxwlplt2skD7n3NsxkvR_pUus,50
|
1170
|
+
vellum/workflows/edges/edge.py,sha256=N0SnY3gKVuxImPAdCbPMPlHJIXbkQ3fwq_LbJRvVMFc,677
|
1171
|
+
vellum/workflows/emitters/__init__.py,sha256=YyOgaoLtVW8eFNEWODzCYb0HzL0PoSeNRf4diJ1Y0dk,80
|
1172
|
+
vellum/workflows/emitters/base.py,sha256=D5SADKIvnbgKwIBgYm77jaqvpo1o0rz4MmuX_muRqQU,359
|
1173
|
+
vellum/workflows/environment/__init__.py,sha256=wGHslgSEZ7Octe4C-hNtl84EFelNimgmWQoi7px4-uw,71
|
1174
|
+
vellum/workflows/environment/environment.py,sha256=IwcVSwA51jW1JTN_MAN22UbeAtZhiAVa_JRV4rmpAAs,219
|
1175
|
+
vellum/workflows/errors/__init__.py,sha256=BRyo4hKP2ElS4k1YDu8VdY2VhUZjILtHn2sPFf_d7U0,105
|
1176
|
+
vellum/workflows/errors/types.py,sha256=YQy6na_iBkqxl9GHKOcin44m8DMRG5KP9oLV1Lpal1M,541
|
1177
|
+
vellum/workflows/events/__init__.py,sha256=vLwQuykMmbv0izdUvsamouRQKbmKX_r9Poo77jd404w,821
|
1178
|
+
vellum/workflows/events/node.py,sha256=w5A2MCWD8J-qvdmxBRP4r_c_qz6SK4YLjlsoswrYHc0,3697
|
1179
|
+
vellum/workflows/events/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1180
|
+
vellum/workflows/events/tests/test_event.py,sha256=DTPBFYReni83YUCffqFFtgeqo15kfHMnQmd9SOC_mH8,8236
|
1181
|
+
vellum/workflows/events/types.py,sha256=CSoHzgY8ItonZh-zs7UliIaRsA-NkhRHt4v0ModQTr0,1171
|
1182
|
+
vellum/workflows/events/utils.py,sha256=OwtE8dHOCX01jvLyoS1l18tYQ4ob0YJcUhUorKWLJh0,232
|
1183
|
+
vellum/workflows/events/workflow.py,sha256=kPjZTh5hzCsSrVKLkXQNwzxhnUp3X4GkFA5veGatGlQ,4353
|
1184
|
+
vellum/workflows/exceptions.py,sha256=Dc7mxstsaMDRmS91QEOiZCbZ1ZIRacnm0l5lQmC6WkA,401
|
1185
|
+
vellum/workflows/expressions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1186
|
+
vellum/workflows/expressions/accessor.py,sha256=OFvAHAVABr-k7GceIhtzIurV4OuV_yHft7JPRsq87Es,1472
|
1187
|
+
vellum/workflows/expressions/and_.py,sha256=I7lNqrUM3-m_5hmjjiMhaHhJtKcLj39kEFVWPDOqwfo,916
|
1188
|
+
vellum/workflows/expressions/begins_with.py,sha256=Ae-RBz_0Xr1WiX1EP0mSgCOOUo-ji1A85aAGd-4BscY,1012
|
1189
|
+
vellum/workflows/expressions/between.py,sha256=xjc_-TLDN-25tVQ9k9aZciH0wOfqrXV8qNmyGOhimd8,1365
|
1190
|
+
vellum/workflows/expressions/coalesce_expression.py,sha256=Fyx2cvi715hPhi2OEfH3D0gD_smQIa2aDwnjr7q2Ngs,1186
|
1191
|
+
vellum/workflows/expressions/contains.py,sha256=j8iKPxytSC0Ig0e-Ie_1vTZ9kFG-4mS1SZ4L0fUP3K4,1045
|
1192
|
+
vellum/workflows/expressions/does_not_begin_with.py,sha256=CERIru9CGJWGXWmT5QyVC7wbZBJiZu3qNR-cyrJzzec,1026
|
1193
|
+
vellum/workflows/expressions/does_not_contain.py,sha256=Z7_v_j9VlUFiZo8nFfqaSj7eAYy7EHiIILceS8F2ioE,1067
|
1194
|
+
vellum/workflows/expressions/does_not_end_with.py,sha256=WB34F0mEtCtKBQ0hliNVj56vdD_ucWxgjyJSH-pKMkI,1020
|
1195
|
+
vellum/workflows/expressions/does_not_equal.py,sha256=LNiCibRZZIxaIrwotjW3SIsKYHWR7BpOItFI-x5KuKU,764
|
1196
|
+
vellum/workflows/expressions/ends_with.py,sha256=qrnCOfBl-66Hgdz0d_EEej_Md9EMzIYP9NeZBpIP3y0,1006
|
1197
|
+
vellum/workflows/expressions/equals.py,sha256=gbI6BKQR7cLQih226-ge_BFSLprgEjqbdiIxo7WFg_E,758
|
1198
|
+
vellum/workflows/expressions/greater_than.py,sha256=nMi6iAo0vi2hM3JeKfQSCy7DnXbdoyueGEZpGCRImH8,1152
|
1199
|
+
vellum/workflows/expressions/greater_than_or_equal_to.py,sha256=xUDjfsOrJdoWm9K7OafGDGsuyvYS3xbMjyV4umvA50Q,1164
|
1200
|
+
vellum/workflows/expressions/in_.py,sha256=tdDTvePdG4WyRkwmSaA4hsUdFJNiIMlrEG6oRrUskjI,1028
|
1201
|
+
vellum/workflows/expressions/is_blank.py,sha256=u8mGreoZb5t_q2mhhmpD7ytAfFCFUAW9APsDapqUsDY,809
|
1202
|
+
vellum/workflows/expressions/is_not_blank.py,sha256=npXK9KSUm0nWeT6WJ5LLKB3owgBXHr7SpH8j4W0WapI,816
|
1203
|
+
vellum/workflows/expressions/is_not_null.py,sha256=_vIwikSUnk6F3NVukV3-9FwoX38qUpTyvaY2oIBwURg,671
|
1204
|
+
vellum/workflows/expressions/is_not_undefined.py,sha256=8NGwA0wZP_aHRy5qJOtaNhRCJyXKekwBNJalSk6Rdmo,727
|
1205
|
+
vellum/workflows/expressions/is_null.py,sha256=5hj3WcFTxGS9ULcPP5BNJu683l0f5gq85Gvj2Nz6Utg,660
|
1206
|
+
vellum/workflows/expressions/is_undefined.py,sha256=c9Oc1fdp911fQQ8WMG2L-TeUSqz1wF8cOTuLutJKbe8,716
|
1207
|
+
vellum/workflows/expressions/less_than.py,sha256=DTWjbhaegnsCWnFSLNldTQr94Dqg3rqWOgMWI7IVsII,1149
|
1208
|
+
vellum/workflows/expressions/less_than_or_equal_to.py,sha256=IxP1VeXAzXrccdIWT2hm6Fj3Sr-7rPW-DKOHl6MrHjo,1161
|
1209
|
+
vellum/workflows/expressions/not_between.py,sha256=H2huRR95D9Qb7lCHmK7BcK-Ug-E1gA3sMWz9PGcAVZs,1379
|
1210
|
+
vellum/workflows/expressions/not_in.py,sha256=OQkN5G1E6VoTDpoLvx7X3GbohLlqEAYHV0rVVUV7ow4,1049
|
1211
|
+
vellum/workflows/expressions/or_.py,sha256=s-8YdMSSCDS2yijR38kguwok3iqmDMMgDYKV93b4O4s,914
|
1212
|
+
vellum/workflows/graph/__init__.py,sha256=3sHlay5d_-uD7j3QJXiGl0WHFZZ_QScRvgyDhN2GhHY,74
|
1213
|
+
vellum/workflows/graph/graph.py,sha256=etuop6xNRJcK8anQx-I31xaExw604f9wC-lRQFr2Xw8,4571
|
1214
|
+
vellum/workflows/graph/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1215
|
+
vellum/workflows/graph/tests/test_graph.py,sha256=zeBqfcMIlMS3AJn-t0YitKsa8O0r2fDnQ7qBPxexP7k,10620
|
1216
|
+
vellum/workflows/inputs/__init__.py,sha256=AbFEteIYEvCb14fM3EK7bhM-40-6s494rSlIhQ4Dsss,62
|
1217
|
+
vellum/workflows/inputs/base.py,sha256=1kMgr0WqCYdWUqgFvgSoAMw2067FAlgwhGXLgbIOrLY,2391
|
1218
|
+
vellum/workflows/logging.py,sha256=_a217XogktV4Ncz6xKFz7WfYmZAzkfVRVuC0rWob8ls,437
|
1219
|
+
vellum/workflows/nodes/__init__.py,sha256=H9SU1F7xBNMj25SsYfMtny3n-9-9I_J6D_JTaX04d_U,1160
|
1220
|
+
vellum/workflows/nodes/bases/__init__.py,sha256=Ll1Ti6t3e_HKtGLsQTHAJevDmfo0QtfgPZUZ9FCRduI,140
|
1221
|
+
vellum/workflows/nodes/bases/base.py,sha256=-wp4d9akwCOWI9vjaFj3drSfppeF3zokaLme-krFp8M,13641
|
1222
|
+
vellum/workflows/nodes/bases/base_subworkflow_node/__init__.py,sha256=0nkHQiFC4IpA1ZGx60XG0BLUWF6hwUpgqmS3ZrlFGhg,80
|
1223
|
+
vellum/workflows/nodes/bases/base_subworkflow_node/node.py,sha256=vC0gUBQewAUNtP3i2G0-LUpE_kY-r_ijBD_tS1XkQ1E,383
|
1224
|
+
vellum/workflows/nodes/bases/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1225
|
+
vellum/workflows/nodes/bases/tests/test_base_node.py,sha256=t7mayifJU2OpXLTXI2G7gO1gIqlDWXsov7otUM7SEPk,3112
|
1226
|
+
vellum/workflows/nodes/core/__init__.py,sha256=NLOenrFF99WIXWYZTmazjOG3hJeqz8eV0Y2v0BCY_EQ,410
|
1227
|
+
vellum/workflows/nodes/core/error_node/__init__.py,sha256=g7RRnlHhqu4qByfLjBwCunmgGA8dI5gNsjS3h6TwlSI,60
|
1228
|
+
vellum/workflows/nodes/core/error_node/node.py,sha256=hqBPHoLnhNrK9ITIaEzpnk47XYDbG6cmObz7oe78Ceg,944
|
1229
|
+
vellum/workflows/nodes/core/inline_subworkflow_node/__init__.py,sha256=nKNEH1QTl-1PcvmYoqSWEl0-t6gAur8GLTXHzklRQfM,84
|
1230
|
+
vellum/workflows/nodes/core/inline_subworkflow_node/node.py,sha256=FX_m7wppFjXFlYL29us8OY5ghWC2fxxKQLCxec_H85w,2966
|
1231
|
+
vellum/workflows/nodes/core/map_node/__init__.py,sha256=MXpZYmGfhsMJHqqlpd64WiJRtbAtAMQz-_3fCU_cLV0,56
|
1232
|
+
vellum/workflows/nodes/core/map_node/node.py,sha256=6Pgu0O5SF1KepJQDlGczKGDwRD5k4Mr8ERzFR5cGCBs,6183
|
1233
|
+
vellum/workflows/nodes/core/map_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1234
|
+
vellum/workflows/nodes/core/map_node/tests/test_node.py,sha256=RHSZs7t6mW3UWvRrXnHZqaXVdRT2ZquOK_YHJ-gzXsU,1871
|
1235
|
+
vellum/workflows/nodes/core/retry_node/__init__.py,sha256=lN2bIy5a3Uzhs_FYCrooADyYU6ZGShtvLKFWpelwPvo,60
|
1236
|
+
vellum/workflows/nodes/core/retry_node/node.py,sha256=_-InZoRlXFgZ03Zrq-MjUklGFaKTQadTDdV08lE6Jk4,4174
|
1237
|
+
vellum/workflows/nodes/core/retry_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1238
|
+
vellum/workflows/nodes/core/retry_node/tests/test_node.py,sha256=zANiu9-d-uIOP9tiSEFiXiVLRt_BJ76Dh6Obgk2BUsA,3120
|
1239
|
+
vellum/workflows/nodes/core/templating_node/__init__.py,sha256=GmyuYo81_A1_Bz6id69ozVFS6FKiuDsZTiA3I6MaL2U,70
|
1240
|
+
vellum/workflows/nodes/core/templating_node/custom_filters.py,sha256=Q0DahYRHP4KfaUXDt9XxN-DFLBrAxlv90yaVqxScoUw,264
|
1241
|
+
vellum/workflows/nodes/core/templating_node/exceptions.py,sha256=cDp140PP4OnInW4qAvg3KqiSiF70C71UyEAKRBR1Abo,46
|
1242
|
+
vellum/workflows/nodes/core/templating_node/node.py,sha256=Ed1XMtz_Mzq9Dv08wcsIvGAzIVWrMIAGj-bKExJdXnM,4247
|
1243
|
+
vellum/workflows/nodes/core/templating_node/render.py,sha256=OpJp0NAH6qcEL6K9lxR0qjpFb75TYNttJR5iCos8tmg,1792
|
1244
|
+
vellum/workflows/nodes/core/templating_node/tests/test_templating_node.py,sha256=L6F3Gw9doguj1TSKmAns-mzXvoRuRivaCFe3mhjo13E,551
|
1245
|
+
vellum/workflows/nodes/core/try_node/__init__.py,sha256=JVD4DrldTIqFQQFrubs9KtWCCc0YCAc7Fzol5ZWIWeM,56
|
1246
|
+
vellum/workflows/nodes/core/try_node/node.py,sha256=dp1U66KrgsAzieqlrfFcU847gO8U8MJzguik6pOSQ_Y,4127
|
1247
|
+
vellum/workflows/nodes/core/try_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1248
|
+
vellum/workflows/nodes/core/try_node/tests/test_node.py,sha256=SjesqvW81dIFHqy1LszQZ8f2u07uw3Q0stVhLAyJres,2696
|
1249
|
+
vellum/workflows/nodes/displayable/__init__.py,sha256=SReuiXngYFlTshz2dWW6JPuLDIM6zT2Pk1YRxiQANIw,975
|
1250
|
+
vellum/workflows/nodes/displayable/api_node/__init__.py,sha256=MoxdQSnidIj1Nf_d-hTxlOxcZXaZnsWFDbE-PkTK24o,56
|
1251
|
+
vellum/workflows/nodes/displayable/api_node/node.py,sha256=-m93_KqwaWxbtbNQDWnLZZ-TSHCwd4ir2V542zovaZU,2043
|
1252
|
+
vellum/workflows/nodes/displayable/bases/__init__.py,sha256=0mWIx3qUrzllV7jqt7wN03vWGMuI1WrrLZeMLT2Cl2c,304
|
1253
|
+
vellum/workflows/nodes/displayable/bases/api_node/__init__.py,sha256=1jwx4WC358CLA1jgzl_UD-rZmdMm2v9Mps39ndwCD7U,64
|
1254
|
+
vellum/workflows/nodes/displayable/bases/api_node/node.py,sha256=hfw6y8Pea-lVtBuvHin4YQJTIxttwztpfc286nHvKq0,2493
|
1255
|
+
vellum/workflows/nodes/displayable/bases/base_prompt_node/__init__.py,sha256=Org3xTvgp1pA0uUXFfnJr29D3HzCey2lEdYF4zbIUgo,70
|
1256
|
+
vellum/workflows/nodes/displayable/bases/base_prompt_node/node.py,sha256=et_cMMclaKizMUDPgCwh9REisJ8hUdq-W3KnLie-tEo,2426
|
1257
|
+
vellum/workflows/nodes/displayable/bases/inline_prompt_node/__init__.py,sha256=Hl35IAoepRpE-j4cALaXVJIYTYOF3qszyVbxTj4kS1s,82
|
1258
|
+
vellum/workflows/nodes/displayable/bases/inline_prompt_node/constants.py,sha256=fnjiRWLoRlC4Puo5oQcpZD5Hd-EesxsAo9l5tGAkpZQ,270
|
1259
|
+
vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py,sha256=vbl6LRCrmlxFURcFGFMAEBJjgNGPB5q9AnQ8UITxYuI,4869
|
1260
|
+
vellum/workflows/nodes/displayable/bases/prompt_deployment_node.py,sha256=JjNMiAFgOupUo5EUeHaryG74SCjEECxBZiS8cMECR_c,4378
|
1261
|
+
vellum/workflows/nodes/displayable/bases/search_node.py,sha256=3nAynaNB70rV3m2zpxv2WbS8Gx_cmi8MrpsKgRmxJpI,3396
|
1262
|
+
vellum/workflows/nodes/displayable/code_execution_node/__init__.py,sha256=0FLWMMktpzSnmBMizQglBpcPrP80fzVsoJwJgf822Cg,76
|
1263
|
+
vellum/workflows/nodes/displayable/code_execution_node/node.py,sha256=zIq2MHlLwxSHpFJiYMUp4F0PWfvbMETWUwHTsXi85W0,7962
|
1264
|
+
vellum/workflows/nodes/displayable/code_execution_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1265
|
+
vellum/workflows/nodes/displayable/code_execution_node/tests/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1266
|
+
vellum/workflows/nodes/displayable/code_execution_node/tests/fixtures/main.py,sha256=5QsbmkzSlSbcbWTG_JmIqcP-JNJzOPTKxGzdHos19W4,79
|
1267
|
+
vellum/workflows/nodes/displayable/code_execution_node/tests/test_code_execution_node.py,sha256=pvkvMOIL94vDP3KUrQh0OF1lELjEFJ6HIDEz5kUqbzo,3377
|
1268
|
+
vellum/workflows/nodes/displayable/code_execution_node/utils.py,sha256=R0gVJVwn2g3caDr25LBj_mj9JUIbORSS-88MQkvSWQU,215
|
1269
|
+
vellum/workflows/nodes/displayable/conditional_node/__init__.py,sha256=AS_EIqFdU1F9t8aLmbZU-rLh9ry6LCJ0uj0D8F0L5Uw,72
|
1270
|
+
vellum/workflows/nodes/displayable/conditional_node/node.py,sha256=0IrCyzLksmYYxDwXQb9_E7E5y1rmxgtmXavfeCzSy04,1026
|
1271
|
+
vellum/workflows/nodes/displayable/final_output_node/__init__.py,sha256=G7VXM4OWpubvSJtVkGmMNeqgb9GkM7qZT838eL18XU4,72
|
1272
|
+
vellum/workflows/nodes/displayable/final_output_node/node.py,sha256=ExDKZcWQ-cJeI0FbBoNX2ismKAW709GSvSdTpI7dTsA,1741
|
1273
|
+
vellum/workflows/nodes/displayable/guardrail_node/__init__.py,sha256=Ab5eXmOoBhyV4dMWdzh32HLUmnPIBEK_zFCT38C4Fng,68
|
1274
|
+
vellum/workflows/nodes/displayable/guardrail_node/node.py,sha256=vctOgn1gUYGIClknGciUjmDRFKlcEbIRZYvzgBaMiVo,3918
|
1275
|
+
vellum/workflows/nodes/displayable/inline_prompt_node/__init__.py,sha256=gSUOoEZLlrx35-tQhSAd3An8WDwBqyiQh-sIebLU9wU,74
|
1276
|
+
vellum/workflows/nodes/displayable/inline_prompt_node/node.py,sha256=gZSiATdEwka07GkBm1F_CbqZLXNYdFAvFgT0vE2w1zA,1854
|
1277
|
+
vellum/workflows/nodes/displayable/merge_node/__init__.py,sha256=J8IC08dSH7P76wKlNuxe1sn7toNGtSQdFirUbtPDEs0,60
|
1278
|
+
vellum/workflows/nodes/displayable/merge_node/node.py,sha256=ZyPvcTgfPOneOm5Dc2kUOoPkwNJqwRPZSj232akXynA,324
|
1279
|
+
vellum/workflows/nodes/displayable/prompt_deployment_node/__init__.py,sha256=krX1Hds-TSVYZsx0wJFX4wsAKkEFYOX1ifwRGiIM-EA,82
|
1280
|
+
vellum/workflows/nodes/displayable/prompt_deployment_node/node.py,sha256=zEgOWgahPr-Jozd97xEqhX3ZelcHcMuKPMiOFb1igXE,2321
|
1281
|
+
vellum/workflows/nodes/displayable/search_node/__init__.py,sha256=hpBpvbrDYf43DElRZFLzieSn8weXiwNiiNOJurERQbs,62
|
1282
|
+
vellum/workflows/nodes/displayable/search_node/node.py,sha256=DvPyhkuyy3D36OcZm_ZUw4Kc0f_kVQNHG2H0myfQQTE,1067
|
1283
|
+
vellum/workflows/nodes/displayable/subworkflow_deployment_node/__init__.py,sha256=9yYM6001YZeqI1VOk1QuEM_yrffk_EdsO7qaPzINKds,92
|
1284
|
+
vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py,sha256=HjKaQ8QaqmdEcwOIg2DoWk__l9cMpR4tYnZ51WQDThk,6714
|
1285
|
+
vellum/workflows/nodes/displayable/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1286
|
+
vellum/workflows/nodes/displayable/tests/test_inline_text_prompt_node.py,sha256=4ldqjyiQaLTo-yBLqCucbG7C4i3QgY_6OLdlvojH57o,4789
|
1287
|
+
vellum/workflows/nodes/displayable/tests/test_search_node_wth_text_output.py,sha256=AZtodUoX_Fl_ZXDinutAxlsDsfcxEYS0nFL0mcBylW8,6955
|
1288
|
+
vellum/workflows/nodes/displayable/tests/test_text_prompt_deployment_node.py,sha256=Ee2_1bvWycaVNzKGLsxAcu_3HNvTM_DiwDAeF20ZgBk,2497
|
1289
|
+
vellum/workflows/nodes/utils.py,sha256=Wb55D2Kzz44_wM8IrTsjyoyBI1vhdFzPEs8tKQtjBw8,773
|
1290
|
+
vellum/workflows/outputs/__init__.py,sha256=AyZ4pRh_ACQIGvkf0byJO46EDnSix1ZCAXfvh-ms1QE,94
|
1291
|
+
vellum/workflows/outputs/base.py,sha256=2khlquCmSBplVSrfcbkbXEujQNm_seq8OTDbIgMKmUE,7159
|
1292
|
+
vellum/workflows/ports/__init__.py,sha256=bZuMt-R7z5bKwpu4uPW7LlJeePOQWmCcDSXe5frUY5g,101
|
1293
|
+
vellum/workflows/ports/node_ports.py,sha256=OMbbwsy6h8wCCycWlll6nfDlEedVjBS7aaYUUYrN1DQ,2763
|
1294
|
+
vellum/workflows/ports/port.py,sha256=4Y3heJglodE5svzq7om7e-5gqANqnbiqKD3ffQMGLVQ,2463
|
1295
|
+
vellum/workflows/ports/utils.py,sha256=pEjVNJKw9LhD_cFN-o0MWBOW2ejno7jv26qqzjLxwS4,1662
|
1296
|
+
vellum/workflows/references/__init__.py,sha256=tKHT1lePWOmDoPkrS7I2kPml_me9-WQwZmCoQzhU6k8,513
|
1297
|
+
vellum/workflows/references/environment_variable.py,sha256=7FFtiKfc4eyVkkfUbhc666OBNDqvFlMoNQEYmGpEVVE,661
|
1298
|
+
vellum/workflows/references/execution_count.py,sha256=HJwRN-1dd-mucaE7uEwp6FM8whSpziHyiSYOTCCi09E,629
|
1299
|
+
vellum/workflows/references/external_input.py,sha256=ZSnRIjrTwpWuBcInZMvQQzcDgkeZ1r7-C7I4sRpDNy4,1658
|
1300
|
+
vellum/workflows/references/input.py,sha256=3INu-TLTi4dziWmva6LO3WvgDlPzsjayUx61cVvqLJA,325
|
1301
|
+
vellum/workflows/references/lazy.py,sha256=SXwZUCTzUR-R2-uK0XHALtvp1x84l-QkNY-Ds6KynYA,1932
|
1302
|
+
vellum/workflows/references/node.py,sha256=hXN6ZSpcRqJ4s4e7_UMlIU3pw_qNxUBuWGVfiEDJmMI,1414
|
1303
|
+
vellum/workflows/references/output.py,sha256=6F4zIrGykDxBsR6qEXxEKncQV5zV4yHafnHRNkxvklc,2780
|
1304
|
+
vellum/workflows/references/state_value.py,sha256=GN1LMVaPn89pfKHe03zJO5v6uoXyR5E0vQNzYJ3ZhMM,707
|
1305
|
+
vellum/workflows/references/vellum_secret.py,sha256=Od4d19a5yletWMqNfJR5d_mZQUkVcFzj29mE-T9J7yE,480
|
1306
|
+
vellum/workflows/references/workflow_input.py,sha256=epspVRZ9n_nxoTxI5Am3GDd2fpUqVd9FJ61oqm9Gz58,1411
|
1307
|
+
vellum/workflows/resolvers/__init__.py,sha256=eH6hTvZO4IciDaf_cf7aM2vs-DkBDyJPycOQevJxQnI,82
|
1308
|
+
vellum/workflows/resolvers/base.py,sha256=WHra9LRtlTuB1jmuNqkfVE2JUgB61Cyntn8f0b0WZg4,411
|
1309
|
+
vellum/workflows/runner/__init__.py,sha256=i1iG5sAhtpdsrlvwgH6B-m49JsINkiWyPWs8vyT-bqM,72
|
1310
|
+
vellum/workflows/runner/runner.py,sha256=59SSOX8YHcZ7ihZ1NGKDk8k1wMrQV94j3o5Zsv9BK8I,23979
|
1311
|
+
vellum/workflows/runner/types.py,sha256=mGTTmPjL0-vOVRAnazVuXUTsNoD-X7bFHdhfE1orRBE,583
|
1312
|
+
vellum/workflows/state/__init__.py,sha256=yUUdR-_Vl7UiixNDYQZ-GEM_kJI9dnOia75TtuNEsnE,60
|
1313
|
+
vellum/workflows/state/base.py,sha256=gm4pun9BzYaZbW8I1j7EriUIlAzqQkKT3IBbXPh3FkA,12663
|
1314
|
+
vellum/workflows/state/context.py,sha256=tpJoOgmx7bmeNrQeOtavOfqTwBbtJCNDqjJ6ssh4gh8,464
|
1315
|
+
vellum/workflows/state/encoder.py,sha256=jYwC_47gHyMuPRvshWBNJ1SxVXQ1SBCfxvq7iuHjV_g,1688
|
1316
|
+
vellum/workflows/state/store.py,sha256=VYGBQgN1bpd1as5eGiouV_7scg8QsRs4_1aqZAGIsRQ,793
|
1317
|
+
vellum/workflows/state/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1318
|
+
vellum/workflows/state/tests/test_state.py,sha256=BsF_8u_qh4I1iyVrA6ctEUXBnvBsIDvlQJ-tiPjCO2M,3225
|
1319
|
+
vellum/workflows/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1320
|
+
vellum/workflows/types/core.py,sha256=llsHFE3XKnVEk_pYoK0s9WUdeninSU5Kmoi7dU4GX0c,1804
|
1321
|
+
vellum/workflows/types/generics.py,sha256=ZkfoRhWs042i5IjA99v2wIhmh1u-Wieo3LzosgGWJVk,600
|
1322
|
+
vellum/workflows/types/stack.py,sha256=RDSGLkcV612ge8UuAH9TZiEGXxJt0Av2-H5rfzrTVVI,1014
|
1323
|
+
vellum/workflows/types/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1324
|
+
vellum/workflows/types/tests/test_utils.py,sha256=ucD5JgI_OeqYMDL-sBaHbbUCQqOKvfZYELYq0dCfWHg,2047
|
1325
|
+
vellum/workflows/types/utils.py,sha256=ErTd_EKMqcTC8jqUuffTg0Dn5oyOWnofHfTg-VqlFqw,5486
|
1326
|
+
vellum/workflows/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1327
|
+
vellum/workflows/utils/names.py,sha256=QLUqfJ1tmSEeUwBKTTiv_Qk3QGbInC2RSmlXfGXc8Wo,380
|
1328
|
+
vellum/workflows/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1329
|
+
vellum/workflows/utils/tests/test_names.py,sha256=aOqpyvMsOEK_9mg_-yaNxQDW7QQfwqsYs37PseyLhxw,402
|
1330
|
+
vellum/workflows/utils/tests/test_vellum_variables.py,sha256=lsYgQV4Iq4ECoVdBNQHSRepHEiSIsccB_KJU7Ap-dJk,777
|
1331
|
+
vellum/workflows/utils/vellum_variables.py,sha256=JA7hhbJ_9m7KEYFaCv5R6FqYeTRWDpUgKUar1601aTQ,2600
|
1332
|
+
vellum/workflows/vellum_client.py,sha256=ODrq_TSl-drX2aezXegf7pizpWDVJuTXH-j6528t75s,683
|
1333
|
+
vellum/workflows/workflows/__init__.py,sha256=KY45TqvavCCvXIkyCFMEc0dc6jTMOUci93U2DUrlZYc,66
|
1334
|
+
vellum/workflows/workflows/base.py,sha256=NbQ3jR9veKdfK5S9qPkiJvy16l19YyQxzops_Y09wMw,12872
|
1335
|
+
vellum_ai-0.10.0.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
|
1336
|
+
vellum_ai-0.10.0.dist-info/METADATA,sha256=PvmlgbovBSzW_NSBouWBQrW9g6lFtxTR8dhc_cZJW0U,4997
|
1337
|
+
vellum_ai-0.10.0.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
|
1338
|
+
vellum_ai-0.10.0.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
|
1339
|
+
vellum_ai-0.10.0.dist-info/RECORD,,
|