vellum-ai 0.9.16rc2__py3-none-any.whl → 0.9.16rc4__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (245) hide show
  1. vellum/plugins/__init__.py +0 -0
  2. vellum/plugins/pydantic.py +74 -0
  3. vellum/plugins/utils.py +19 -0
  4. vellum/plugins/vellum_mypy.py +639 -3
  5. vellum/workflows/README.md +90 -0
  6. vellum/workflows/__init__.py +5 -0
  7. vellum/workflows/constants.py +43 -0
  8. vellum/workflows/descriptors/__init__.py +0 -0
  9. vellum/workflows/descriptors/base.py +339 -0
  10. vellum/workflows/descriptors/tests/test_utils.py +83 -0
  11. vellum/workflows/descriptors/utils.py +90 -0
  12. vellum/workflows/edges/__init__.py +5 -0
  13. vellum/workflows/edges/edge.py +23 -0
  14. vellum/workflows/emitters/__init__.py +5 -0
  15. vellum/workflows/emitters/base.py +14 -0
  16. vellum/workflows/environment/__init__.py +5 -0
  17. vellum/workflows/environment/environment.py +7 -0
  18. vellum/workflows/errors/__init__.py +6 -0
  19. vellum/workflows/errors/types.py +20 -0
  20. vellum/workflows/events/__init__.py +31 -0
  21. vellum/workflows/events/node.py +125 -0
  22. vellum/workflows/events/tests/__init__.py +0 -0
  23. vellum/workflows/events/tests/test_event.py +216 -0
  24. vellum/workflows/events/types.py +52 -0
  25. vellum/workflows/events/utils.py +5 -0
  26. vellum/workflows/events/workflow.py +139 -0
  27. vellum/workflows/exceptions.py +15 -0
  28. vellum/workflows/expressions/__init__.py +0 -0
  29. vellum/workflows/expressions/accessor.py +52 -0
  30. vellum/workflows/expressions/and_.py +32 -0
  31. vellum/workflows/expressions/begins_with.py +31 -0
  32. vellum/workflows/expressions/between.py +38 -0
  33. vellum/workflows/expressions/coalesce_expression.py +41 -0
  34. vellum/workflows/expressions/contains.py +30 -0
  35. vellum/workflows/expressions/does_not_begin_with.py +31 -0
  36. vellum/workflows/expressions/does_not_contain.py +30 -0
  37. vellum/workflows/expressions/does_not_end_with.py +31 -0
  38. vellum/workflows/expressions/does_not_equal.py +25 -0
  39. vellum/workflows/expressions/ends_with.py +31 -0
  40. vellum/workflows/expressions/equals.py +25 -0
  41. vellum/workflows/expressions/greater_than.py +33 -0
  42. vellum/workflows/expressions/greater_than_or_equal_to.py +33 -0
  43. vellum/workflows/expressions/in_.py +31 -0
  44. vellum/workflows/expressions/is_blank.py +24 -0
  45. vellum/workflows/expressions/is_not_blank.py +24 -0
  46. vellum/workflows/expressions/is_not_null.py +21 -0
  47. vellum/workflows/expressions/is_not_undefined.py +22 -0
  48. vellum/workflows/expressions/is_null.py +21 -0
  49. vellum/workflows/expressions/is_undefined.py +22 -0
  50. vellum/workflows/expressions/less_than.py +33 -0
  51. vellum/workflows/expressions/less_than_or_equal_to.py +33 -0
  52. vellum/workflows/expressions/not_between.py +38 -0
  53. vellum/workflows/expressions/not_in.py +31 -0
  54. vellum/workflows/expressions/or_.py +32 -0
  55. vellum/workflows/graph/__init__.py +3 -0
  56. vellum/workflows/graph/graph.py +131 -0
  57. vellum/workflows/graph/tests/__init__.py +0 -0
  58. vellum/workflows/graph/tests/test_graph.py +437 -0
  59. vellum/workflows/inputs/__init__.py +5 -0
  60. vellum/workflows/inputs/base.py +55 -0
  61. vellum/workflows/logging.py +14 -0
  62. vellum/workflows/nodes/__init__.py +46 -0
  63. vellum/workflows/nodes/bases/__init__.py +7 -0
  64. vellum/workflows/nodes/bases/base.py +332 -0
  65. vellum/workflows/nodes/bases/base_subworkflow_node/__init__.py +5 -0
  66. vellum/workflows/nodes/bases/base_subworkflow_node/node.py +10 -0
  67. vellum/workflows/nodes/bases/tests/__init__.py +0 -0
  68. vellum/workflows/nodes/bases/tests/test_base_node.py +125 -0
  69. vellum/workflows/nodes/core/__init__.py +16 -0
  70. vellum/workflows/nodes/core/error_node/__init__.py +5 -0
  71. vellum/workflows/nodes/core/error_node/node.py +26 -0
  72. vellum/workflows/nodes/core/inline_subworkflow_node/__init__.py +5 -0
  73. vellum/workflows/nodes/core/inline_subworkflow_node/node.py +73 -0
  74. vellum/workflows/nodes/core/map_node/__init__.py +5 -0
  75. vellum/workflows/nodes/core/map_node/node.py +147 -0
  76. vellum/workflows/nodes/core/map_node/tests/__init__.py +0 -0
  77. vellum/workflows/nodes/core/map_node/tests/test_node.py +65 -0
  78. vellum/workflows/nodes/core/retry_node/__init__.py +5 -0
  79. vellum/workflows/nodes/core/retry_node/node.py +106 -0
  80. vellum/workflows/nodes/core/retry_node/tests/__init__.py +0 -0
  81. vellum/workflows/nodes/core/retry_node/tests/test_node.py +93 -0
  82. vellum/workflows/nodes/core/templating_node/__init__.py +5 -0
  83. vellum/workflows/nodes/core/templating_node/custom_filters.py +12 -0
  84. vellum/workflows/nodes/core/templating_node/exceptions.py +2 -0
  85. vellum/workflows/nodes/core/templating_node/node.py +123 -0
  86. vellum/workflows/nodes/core/templating_node/render.py +55 -0
  87. vellum/workflows/nodes/core/templating_node/tests/test_templating_node.py +21 -0
  88. vellum/workflows/nodes/core/try_node/__init__.py +5 -0
  89. vellum/workflows/nodes/core/try_node/node.py +110 -0
  90. vellum/workflows/nodes/core/try_node/tests/__init__.py +0 -0
  91. vellum/workflows/nodes/core/try_node/tests/test_node.py +82 -0
  92. vellum/workflows/nodes/displayable/__init__.py +31 -0
  93. vellum/workflows/nodes/displayable/api_node/__init__.py +5 -0
  94. vellum/workflows/nodes/displayable/api_node/node.py +44 -0
  95. vellum/workflows/nodes/displayable/bases/__init__.py +11 -0
  96. vellum/workflows/nodes/displayable/bases/api_node/__init__.py +5 -0
  97. vellum/workflows/nodes/displayable/bases/api_node/node.py +70 -0
  98. vellum/workflows/nodes/displayable/bases/base_prompt_node/__init__.py +5 -0
  99. vellum/workflows/nodes/displayable/bases/base_prompt_node/node.py +60 -0
  100. vellum/workflows/nodes/displayable/bases/inline_prompt_node/__init__.py +5 -0
  101. vellum/workflows/nodes/displayable/bases/inline_prompt_node/constants.py +13 -0
  102. vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py +118 -0
  103. vellum/workflows/nodes/displayable/bases/prompt_deployment_node.py +98 -0
  104. vellum/workflows/nodes/displayable/bases/search_node.py +90 -0
  105. vellum/workflows/nodes/displayable/code_execution_node/__init__.py +5 -0
  106. vellum/workflows/nodes/displayable/code_execution_node/node.py +197 -0
  107. vellum/workflows/nodes/displayable/code_execution_node/tests/__init__.py +0 -0
  108. vellum/workflows/nodes/displayable/code_execution_node/tests/fixtures/__init__.py +0 -0
  109. vellum/workflows/nodes/displayable/code_execution_node/tests/fixtures/main.py +3 -0
  110. vellum/workflows/nodes/displayable/code_execution_node/tests/test_code_execution_node.py +111 -0
  111. vellum/workflows/nodes/displayable/code_execution_node/utils.py +10 -0
  112. vellum/workflows/nodes/displayable/conditional_node/__init__.py +5 -0
  113. vellum/workflows/nodes/displayable/conditional_node/node.py +25 -0
  114. vellum/workflows/nodes/displayable/final_output_node/__init__.py +5 -0
  115. vellum/workflows/nodes/displayable/final_output_node/node.py +43 -0
  116. vellum/workflows/nodes/displayable/guardrail_node/__init__.py +5 -0
  117. vellum/workflows/nodes/displayable/guardrail_node/node.py +97 -0
  118. vellum/workflows/nodes/displayable/inline_prompt_node/__init__.py +5 -0
  119. vellum/workflows/nodes/displayable/inline_prompt_node/node.py +41 -0
  120. vellum/workflows/nodes/displayable/merge_node/__init__.py +5 -0
  121. vellum/workflows/nodes/displayable/merge_node/node.py +10 -0
  122. vellum/workflows/nodes/displayable/prompt_deployment_node/__init__.py +5 -0
  123. vellum/workflows/nodes/displayable/prompt_deployment_node/node.py +45 -0
  124. vellum/workflows/nodes/displayable/search_node/__init__.py +5 -0
  125. vellum/workflows/nodes/displayable/search_node/node.py +26 -0
  126. vellum/workflows/nodes/displayable/subworkflow_deployment_node/__init__.py +5 -0
  127. vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py +156 -0
  128. vellum/workflows/nodes/displayable/tests/__init__.py +0 -0
  129. vellum/workflows/nodes/displayable/tests/test_inline_text_prompt_node.py +148 -0
  130. vellum/workflows/nodes/displayable/tests/test_search_node_wth_text_output.py +134 -0
  131. vellum/workflows/nodes/displayable/tests/test_text_prompt_deployment_node.py +80 -0
  132. vellum/workflows/nodes/utils.py +27 -0
  133. vellum/workflows/outputs/__init__.py +6 -0
  134. vellum/workflows/outputs/base.py +196 -0
  135. vellum/workflows/ports/__init__.py +7 -0
  136. vellum/workflows/ports/node_ports.py +75 -0
  137. vellum/workflows/ports/port.py +75 -0
  138. vellum/workflows/ports/utils.py +40 -0
  139. vellum/workflows/references/__init__.py +17 -0
  140. vellum/workflows/references/environment_variable.py +20 -0
  141. vellum/workflows/references/execution_count.py +20 -0
  142. vellum/workflows/references/external_input.py +49 -0
  143. vellum/workflows/references/input.py +7 -0
  144. vellum/workflows/references/lazy.py +55 -0
  145. vellum/workflows/references/node.py +43 -0
  146. vellum/workflows/references/output.py +78 -0
  147. vellum/workflows/references/state_value.py +23 -0
  148. vellum/workflows/references/vellum_secret.py +15 -0
  149. vellum/workflows/references/workflow_input.py +41 -0
  150. vellum/workflows/resolvers/__init__.py +5 -0
  151. vellum/workflows/resolvers/base.py +15 -0
  152. vellum/workflows/runner/__init__.py +5 -0
  153. vellum/workflows/runner/runner.py +588 -0
  154. vellum/workflows/runner/types.py +18 -0
  155. vellum/workflows/state/__init__.py +5 -0
  156. vellum/workflows/state/base.py +327 -0
  157. vellum/workflows/state/context.py +18 -0
  158. vellum/workflows/state/encoder.py +57 -0
  159. vellum/workflows/state/store.py +28 -0
  160. vellum/workflows/state/tests/__init__.py +0 -0
  161. vellum/workflows/state/tests/test_state.py +113 -0
  162. vellum/workflows/types/__init__.py +0 -0
  163. vellum/workflows/types/core.py +91 -0
  164. vellum/workflows/types/generics.py +14 -0
  165. vellum/workflows/types/stack.py +39 -0
  166. vellum/workflows/types/tests/__init__.py +0 -0
  167. vellum/workflows/types/tests/test_utils.py +76 -0
  168. vellum/workflows/types/utils.py +164 -0
  169. vellum/workflows/utils/__init__.py +0 -0
  170. vellum/workflows/utils/names.py +13 -0
  171. vellum/workflows/utils/tests/__init__.py +0 -0
  172. vellum/workflows/utils/tests/test_names.py +15 -0
  173. vellum/workflows/utils/tests/test_vellum_variables.py +25 -0
  174. vellum/workflows/utils/vellum_variables.py +81 -0
  175. vellum/workflows/vellum_client.py +18 -0
  176. vellum/workflows/workflows/__init__.py +5 -0
  177. vellum/workflows/workflows/base.py +365 -0
  178. {vellum_ai-0.9.16rc2.dist-info → vellum_ai-0.9.16rc4.dist-info}/METADATA +2 -1
  179. {vellum_ai-0.9.16rc2.dist-info → vellum_ai-0.9.16rc4.dist-info}/RECORD +245 -7
  180. vellum_cli/__init__.py +72 -0
  181. vellum_cli/aliased_group.py +103 -0
  182. vellum_cli/config.py +96 -0
  183. vellum_cli/image_push.py +112 -0
  184. vellum_cli/logger.py +36 -0
  185. vellum_cli/pull.py +73 -0
  186. vellum_cli/push.py +121 -0
  187. vellum_cli/tests/test_config.py +100 -0
  188. vellum_cli/tests/test_pull.py +152 -0
  189. vellum_ee/workflows/__init__.py +0 -0
  190. vellum_ee/workflows/display/__init__.py +0 -0
  191. vellum_ee/workflows/display/base.py +73 -0
  192. vellum_ee/workflows/display/nodes/__init__.py +4 -0
  193. vellum_ee/workflows/display/nodes/base_node_display.py +116 -0
  194. vellum_ee/workflows/display/nodes/base_node_vellum_display.py +36 -0
  195. vellum_ee/workflows/display/nodes/get_node_display_class.py +25 -0
  196. vellum_ee/workflows/display/nodes/tests/__init__.py +0 -0
  197. vellum_ee/workflows/display/nodes/tests/test_base_node_display.py +47 -0
  198. vellum_ee/workflows/display/nodes/types.py +18 -0
  199. vellum_ee/workflows/display/nodes/utils.py +33 -0
  200. vellum_ee/workflows/display/nodes/vellum/__init__.py +32 -0
  201. vellum_ee/workflows/display/nodes/vellum/api_node.py +205 -0
  202. vellum_ee/workflows/display/nodes/vellum/code_execution_node.py +71 -0
  203. vellum_ee/workflows/display/nodes/vellum/conditional_node.py +217 -0
  204. vellum_ee/workflows/display/nodes/vellum/final_output_node.py +61 -0
  205. vellum_ee/workflows/display/nodes/vellum/guardrail_node.py +49 -0
  206. vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py +170 -0
  207. vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py +99 -0
  208. vellum_ee/workflows/display/nodes/vellum/map_node.py +100 -0
  209. vellum_ee/workflows/display/nodes/vellum/merge_node.py +48 -0
  210. vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py +68 -0
  211. vellum_ee/workflows/display/nodes/vellum/search_node.py +193 -0
  212. vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py +58 -0
  213. vellum_ee/workflows/display/nodes/vellum/templating_node.py +67 -0
  214. vellum_ee/workflows/display/nodes/vellum/tests/__init__.py +0 -0
  215. vellum_ee/workflows/display/nodes/vellum/tests/test_utils.py +106 -0
  216. vellum_ee/workflows/display/nodes/vellum/try_node.py +38 -0
  217. vellum_ee/workflows/display/nodes/vellum/utils.py +76 -0
  218. vellum_ee/workflows/display/tests/__init__.py +0 -0
  219. vellum_ee/workflows/display/tests/workflow_serialization/__init__.py +0 -0
  220. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py +426 -0
  221. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py +607 -0
  222. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py +1175 -0
  223. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py +235 -0
  224. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py +511 -0
  225. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py +372 -0
  226. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py +272 -0
  227. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py +289 -0
  228. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py +354 -0
  229. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py +123 -0
  230. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py +84 -0
  231. vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py +233 -0
  232. vellum_ee/workflows/display/types.py +46 -0
  233. vellum_ee/workflows/display/utils/__init__.py +0 -0
  234. vellum_ee/workflows/display/utils/tests/__init__.py +0 -0
  235. vellum_ee/workflows/display/utils/tests/test_uuids.py +16 -0
  236. vellum_ee/workflows/display/utils/uuids.py +24 -0
  237. vellum_ee/workflows/display/utils/vellum.py +121 -0
  238. vellum_ee/workflows/display/vellum.py +357 -0
  239. vellum_ee/workflows/display/workflows/__init__.py +5 -0
  240. vellum_ee/workflows/display/workflows/base_workflow_display.py +302 -0
  241. vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py +32 -0
  242. vellum_ee/workflows/display/workflows/vellum_workflow_display.py +386 -0
  243. {vellum_ai-0.9.16rc2.dist-info → vellum_ai-0.9.16rc4.dist-info}/LICENSE +0 -0
  244. {vellum_ai-0.9.16rc2.dist-info → vellum_ai-0.9.16rc4.dist-info}/WHEEL +0 -0
  245. {vellum_ai-0.9.16rc2.dist-info → vellum_ai-0.9.16rc4.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.9.16rc2
3
+ Version: 0.9.16rc4
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=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
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/vellum_mypy.py,sha256=li0SO0S7jaMlyKRxBnIQ83_2qq-bo6X7YJZAa7Fa9Lk,181
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
- vellum_ai-0.9.16rc2.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
1098
- vellum_ai-0.9.16rc2.dist-info/METADATA,sha256=Jn2oNs-I42C610t7_qk9A0AOtzD297kYeWwwaPn-WEQ,4969
1099
- vellum_ai-0.9.16rc2.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
1100
- vellum_ai-0.9.16rc2.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
1101
- vellum_ai-0.9.16rc2.dist-info/RECORD,,
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.9.16rc4.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
1336
+ vellum_ai-0.9.16rc4.dist-info/METADATA,sha256=Qb2LKz9xuN9po3vWcyqkDwCIh3Wtsv5gD3t2MIkZQiM,5000
1337
+ vellum_ai-0.9.16rc4.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
1338
+ vellum_ai-0.9.16rc4.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
1339
+ vellum_ai-0.9.16rc4.dist-info/RECORD,,