vellum-ai 0.10.0__py3-none-any.whl → 0.10.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- vellum/__init__.py +8 -0
- vellum/client/README.md +1 -1
- vellum/client/__init__.py +4 -0
- vellum/client/core/client_wrapper.py +1 -1
- vellum/client/resources/__init__.py +2 -0
- vellum/client/resources/deployments/client.py +117 -0
- vellum/client/resources/ml_models/__init__.py +2 -0
- vellum/client/resources/ml_models/client.py +125 -0
- vellum/client/resources/workflow_deployments/client.py +117 -0
- vellum/client/types/__init__.py +6 -0
- vellum/client/types/deployment_history_item.py +44 -0
- vellum/client/types/ml_model_read.py +27 -0
- vellum/client/types/workflow_deployment_history_item.py +45 -0
- vellum/resources/ml_models/__init__.py +3 -0
- vellum/resources/ml_models/client.py +3 -0
- vellum/types/deployment_history_item.py +3 -0
- vellum/types/ml_model_read.py +3 -0
- vellum/types/workflow_deployment_history_item.py +3 -0
- vellum/workflows/nodes/__init__.py +4 -3
- vellum/workflows/nodes/core/__init__.py +2 -0
- vellum/workflows/nodes/displayable/bases/search_node.py +10 -3
- vellum/workflows/nodes/displayable/search_node/node.py +12 -5
- vellum/workflows/references/execution_count.py +4 -0
- {vellum_ai-0.10.0.dist-info → vellum_ai-0.10.2.dist-info}/METADATA +3 -3
- {vellum_ai-0.10.0.dist-info → vellum_ai-0.10.2.dist-info}/RECORD +36 -25
- vellum_cli/__init__.py +3 -2
- vellum_cli/pull.py +17 -4
- vellum_cli/tests/test_pull.py +18 -0
- vellum_ee/py.typed +0 -0
- vellum_ee/workflows/display/nodes/vellum/conditional_node.py +20 -2
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py +148 -42
- vellum_ee/workflows/display/utils/vellum.py +16 -11
- vellum_ee/workflows/display/vellum.py +10 -1
- {vellum_ai-0.10.0.dist-info → vellum_ai-0.10.2.dist-info}/LICENSE +0 -0
- {vellum_ai-0.10.0.dist-info → vellum_ai-0.10.2.dist-info}/WHEEL +0 -0
- {vellum_ai-0.10.0.dist-info → vellum_ai-0.10.2.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,45 @@
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
2
|
+
|
3
|
+
from __future__ import annotations
|
4
|
+
from ..core.pydantic_utilities import UniversalBaseModel
|
5
|
+
from .array_vellum_value import ArrayVellumValue
|
6
|
+
import datetime as dt
|
7
|
+
import pydantic
|
8
|
+
import typing
|
9
|
+
from .vellum_variable import VellumVariable
|
10
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
11
|
+
from ..core.pydantic_utilities import update_forward_refs
|
12
|
+
|
13
|
+
|
14
|
+
class WorkflowDeploymentHistoryItem(UniversalBaseModel):
|
15
|
+
id: str
|
16
|
+
workflow_deployment_id: str
|
17
|
+
timestamp: dt.datetime
|
18
|
+
label: str = pydantic.Field()
|
19
|
+
"""
|
20
|
+
A human-readable label for the workflow deployment
|
21
|
+
"""
|
22
|
+
|
23
|
+
name: str = pydantic.Field()
|
24
|
+
"""
|
25
|
+
A name that uniquely identifies this workflow deployment within its workspace
|
26
|
+
"""
|
27
|
+
|
28
|
+
input_variables: typing.List[VellumVariable]
|
29
|
+
output_variables: typing.List[VellumVariable]
|
30
|
+
description: typing.Optional[str] = pydantic.Field(default=None)
|
31
|
+
"""
|
32
|
+
A human-readable description of the workflow deployment
|
33
|
+
"""
|
34
|
+
|
35
|
+
if IS_PYDANTIC_V2:
|
36
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
37
|
+
else:
|
38
|
+
|
39
|
+
class Config:
|
40
|
+
frozen = True
|
41
|
+
smart_union = True
|
42
|
+
extra = pydantic.Extra.allow
|
43
|
+
|
44
|
+
|
45
|
+
update_forward_refs(ArrayVellumValue, WorkflowDeploymentHistoryItem=WorkflowDeploymentHistoryItem)
|
@@ -1,5 +1,5 @@
|
|
1
1
|
from vellum.workflows.nodes.bases import BaseNode
|
2
|
-
from vellum.workflows.nodes.core import ErrorNode, InlineSubworkflowNode, MapNode, RetryNode, TemplatingNode
|
2
|
+
from vellum.workflows.nodes.core import (ErrorNode, InlineSubworkflowNode, MapNode, RetryNode, TemplatingNode, TryNode,)
|
3
3
|
from vellum.workflows.nodes.displayable import (
|
4
4
|
APINode,
|
5
5
|
CodeExecutionNode,
|
@@ -26,11 +26,12 @@ __all__ = [
|
|
26
26
|
"MapNode",
|
27
27
|
"RetryNode",
|
28
28
|
"TemplatingNode",
|
29
|
-
|
29
|
+
"TryNode",
|
30
|
+
# Displayable Base Nodes
|
30
31
|
"BaseSearchNode",
|
31
32
|
"BaseInlinePromptNode",
|
32
33
|
"BasePromptDeploymentNode",
|
33
|
-
#
|
34
|
+
# Displayable Nodes
|
34
35
|
"APINode",
|
35
36
|
"CodeExecutionNode",
|
36
37
|
"GuardrailNode",
|
@@ -5,6 +5,7 @@ from .inline_subworkflow_node import InlineSubworkflowNode
|
|
5
5
|
from .map_node import MapNode
|
6
6
|
from .retry_node import RetryNode
|
7
7
|
from .templating_node import TemplatingNode
|
8
|
+
from .try_node import TryNode
|
8
9
|
|
9
10
|
__all__ = [
|
10
11
|
"BaseAPINode",
|
@@ -13,4 +14,5 @@ __all__ = [
|
|
13
14
|
"MapNode",
|
14
15
|
"RetryNode",
|
15
16
|
"TemplatingNode",
|
17
|
+
"TryNode",
|
16
18
|
]
|
@@ -31,9 +31,10 @@ class BaseSearchNode(BaseNode[StateType], Generic[StateType]):
|
|
31
31
|
"""
|
32
32
|
Used to perform a hybrid search against a Document Index in Vellum.
|
33
33
|
|
34
|
-
document_index: Union[UUID, str] - Either the Document Index'
|
35
|
-
|
36
|
-
|
34
|
+
document_index: Union[UUID, str] - Either the UUID or name of the Vellum Document Index that you'd like to search
|
35
|
+
against
|
36
|
+
query: str - The query to search for
|
37
|
+
options: Optional[SearchRequestOptionsRequest] = None - Runtime configuration for the search
|
37
38
|
request_options: Optional[RequestOptions] = None - The request options to use for the search
|
38
39
|
"""
|
39
40
|
|
@@ -64,6 +65,12 @@ class BaseSearchNode(BaseNode[StateType], Generic[StateType]):
|
|
64
65
|
request_options: Optional[RequestOptions] = None
|
65
66
|
|
66
67
|
class Outputs(BaseOutputs):
|
68
|
+
"""
|
69
|
+
The outputs of the SearchNode.
|
70
|
+
|
71
|
+
results: List[SearchResult] - The raw search results
|
72
|
+
"""
|
73
|
+
|
67
74
|
results: List[SearchResult]
|
68
75
|
|
69
76
|
def _perform_search(self) -> SearchResponse:
|
@@ -6,18 +6,25 @@ from vellum.workflows.types.generics import StateType
|
|
6
6
|
|
7
7
|
class SearchNode(BaseSearchNode[StateType]):
|
8
8
|
"""
|
9
|
-
|
9
|
+
Used to perform a hybrid search against a Document Index in Vellum.
|
10
10
|
|
11
|
-
document_index: Union[UUID, str] - Either the Document Index'
|
12
|
-
|
13
|
-
|
11
|
+
document_index: Union[UUID, str] - Either the UUID or name of the Vellum Document Index that you'd like to search
|
12
|
+
against
|
13
|
+
query: str - The query to search for
|
14
|
+
options: Optional[SearchRequestOptionsRequest] = None - Runtime configuration for the search
|
14
15
|
request_options: Optional[RequestOptions] = None - The request options to use for the search
|
15
|
-
chunk_separator: str = "\n\n#####\n\n" -
|
16
|
+
chunk_separator: str = "\n\n#####\n\n" - The separator to use when joining the text of each search result
|
16
17
|
"""
|
17
18
|
|
18
19
|
chunk_separator: ClassVar[str] = "\n\n#####\n\n"
|
19
20
|
|
20
21
|
class Outputs(BaseSearchNode.Outputs):
|
22
|
+
"""
|
23
|
+
The outputs of the SearchNode.
|
24
|
+
|
25
|
+
results: List[SearchResult] - The raw search results
|
26
|
+
text: str - The text of the search results joined by the chunk_separator
|
27
|
+
"""
|
21
28
|
text: str
|
22
29
|
|
23
30
|
def run(self) -> Outputs:
|
@@ -18,3 +18,7 @@ class ExecutionCountReference(BaseDescriptor[int]):
|
|
18
18
|
|
19
19
|
def resolve(self, state: "BaseState") -> int:
|
20
20
|
return state.meta.node_execution_cache.get_execution_count(self._node_class)
|
21
|
+
|
22
|
+
@property
|
23
|
+
def node_class(self) -> Type["BaseNode"]:
|
24
|
+
return self._node_class
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: vellum-ai
|
3
|
-
Version: 0.10.
|
3
|
+
Version: 0.10.2
|
4
4
|
Summary:
|
5
5
|
License: MIT
|
6
6
|
Requires-Python: >=3.9,<4.0
|
@@ -97,7 +97,7 @@ more below](#workflows-sdk).
|
|
97
97
|
|
98
98
|
## Client SDK
|
99
99
|
The Vellum Client SDK, found within `src/client` is a low-level client used to interact directly with the Vellum API.
|
100
|
-
Learn more and get started by visiting the [Vellum Client SDK README](/src/client/README.md).
|
100
|
+
Learn more and get started by visiting the [Vellum Client SDK README](/src/vellum/client/README.md).
|
101
101
|
|
102
102
|
|
103
103
|
## Workflows SDK
|
@@ -109,7 +109,7 @@ The Workflows SDK can be used with or without a Vellum account, but a Vellum acc
|
|
109
109
|
out-of-box nodes and features, including the ability to push and pull your Workflow definition to Vellum for editing
|
110
110
|
and debugging via a UI.
|
111
111
|
|
112
|
-
To learn more and get started, visit the [Vellum Workflows SDK README](/src/workflows/README.md).
|
112
|
+
To learn more and get started, visit the [Vellum Workflows SDK README](/src/vellum/workflows/README.md).
|
113
113
|
|
114
114
|
|
115
115
|
## Open-Source vs. Paid
|
@@ -1,13 +1,14 @@
|
|
1
|
-
vellum_cli/__init__.py,sha256=
|
1
|
+
vellum_cli/__init__.py,sha256=t62kIq0vDia8TTJqAmqFpYCo40buWNDQmjIDTOvmwwE,2416
|
2
2
|
vellum_cli/aliased_group.py,sha256=ugW498j0yv4ALJ8vS9MsO7ctDW7Jlir9j6nE_uHAP8c,3363
|
3
3
|
vellum_cli/config.py,sha256=urqMGQUkTntzdx-JV0P32FZVbqRZqgI-yFVmGPVblNI,3613
|
4
4
|
vellum_cli/image_push.py,sha256=lCQhkQu-IlIMHNSynmEl5KUzO_dHW27NTAFWnyvPpcs,4419
|
5
5
|
vellum_cli/logger.py,sha256=PuRFa0WCh4sAGFS5aqWB0QIYpS6nBWwPJrIXpWxugV4,1022
|
6
|
-
vellum_cli/pull.py,sha256=
|
6
|
+
vellum_cli/pull.py,sha256=op8HQmtiKa4TlrgEvhLiIac0Zhal6LETW22rhSkNHGE,3483
|
7
7
|
vellum_cli/push.py,sha256=HhXHqLvWKf3CUZJ3yIm-KeoBkgk73EXqVtGgWYcBcVk,5089
|
8
8
|
vellum_cli/tests/test_config.py,sha256=uvKGDc8BoVyT9_H0Z-g8469zVxomn6Oi3Zj-vK7O_wU,2631
|
9
|
-
vellum_cli/tests/test_pull.py,sha256=
|
9
|
+
vellum_cli/tests/test_pull.py,sha256=24sHYWNViS-G_UHmPC_-KXb6l3OOs2AiDGv2kKp4AHY,5815
|
10
10
|
vellum_ee/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
|
+
vellum_ee/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
12
|
vellum_ee/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
12
13
|
vellum_ee/workflows/display/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
13
14
|
vellum_ee/workflows/display/base.py,sha256=3ZFUYRNKL24fBqXhKpa_Dq2W1a-a86J20dmJYA3H2eY,1755
|
@@ -22,7 +23,7 @@ vellum_ee/workflows/display/nodes/utils.py,sha256=sloya5TpXsnot1HURc9L51INwflRqU
|
|
22
23
|
vellum_ee/workflows/display/nodes/vellum/__init__.py,sha256=WQ_KbMp__S41AUFDHt9dZU6IQLK9AizdGMi2M6eK2_8,1362
|
23
24
|
vellum_ee/workflows/display/nodes/vellum/api_node.py,sha256=5mMO1rKDafoPtnFZciuFGGfbu8Ei-j4zRiEDx9oQG4I,8572
|
24
25
|
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
|
26
|
+
vellum_ee/workflows/display/nodes/vellum/conditional_node.py,sha256=3pVtCukiILTSZPUWuYLIwzwXGBSSUV4q--i0zlYxGKQ,10850
|
26
27
|
vellum_ee/workflows/display/nodes/vellum/final_output_node.py,sha256=kR_z9ichhBtK_CLetqGjewmFmIFalfSiG2tQlM2T4yM,2772
|
27
28
|
vellum_ee/workflows/display/nodes/vellum/guardrail_node.py,sha256=CiGZL1nxgK0KxLUgKilpollRYFIqqGHjSGXtvP1miqs,2168
|
28
29
|
vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py,sha256=NuNoPnvwbdSRkTQA3clLySNSzqkK0nmU4L0zYqgIfFQ,7397
|
@@ -41,7 +42,7 @@ vellum_ee/workflows/display/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
|
|
41
42
|
vellum_ee/workflows/display/tests/workflow_serialization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
42
43
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py,sha256=bLdJ0VVwAPDRvwaJMiMf0fRCuIWvvuRjAxKzddGPFyA,16871
|
43
44
|
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=
|
45
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py,sha256=0NxRo7KM_z8A1vgRgPISjCVFbYyKaeWCkgNldCkF6XY,53075
|
45
46
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py,sha256=FNmGO1hQjQOOejfSY-ErcMJXxvrxMyR7GZq4UX26UHA,8271
|
46
47
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py,sha256=2X8MzxZ3rf1lkx_e7Oez-qp4fvPZrdjulGAEOhbCMnY,21546
|
47
48
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=ESalw3PsfGy42w85FJr9VDWg8Rpv9NT25OMHpye27bs,14967
|
@@ -56,18 +57,18 @@ vellum_ee/workflows/display/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
|
|
56
57
|
vellum_ee/workflows/display/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
57
58
|
vellum_ee/workflows/display/utils/tests/test_uuids.py,sha256=ItjROhaPns8_mlvD17LIBwZKvhe2l0dXEd5oL-JiY64,448
|
58
59
|
vellum_ee/workflows/display/utils/uuids.py,sha256=DFzPv9RCvsKhvdTEIQyfSek2A31D6S_QcmeLPbgrgTY,739
|
59
|
-
vellum_ee/workflows/display/utils/vellum.py,sha256=
|
60
|
-
vellum_ee/workflows/display/vellum.py,sha256=
|
60
|
+
vellum_ee/workflows/display/utils/vellum.py,sha256=NbjS_dKEgrwjV71xgxgsVnAn-PTZ67SBPgXMMnTbvfg,5133
|
61
|
+
vellum_ee/workflows/display/vellum.py,sha256=_-lLRZsEitt8fdUID62aiXptWa8rJhyqgL4uy1gDmc4,8783
|
61
62
|
vellum_ee/workflows/display/workflows/__init__.py,sha256=kapXsC67VJcgSuiBMa86FdePG5A9kMB5Pi4Uy1O2ob4,207
|
62
63
|
vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=Tt_2K9T2KyMuIVn0Hfh1MlZLHpOjetwYsicaIf49ZAo,12447
|
63
64
|
vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py,sha256=fgngC_HWeNRRJBNaQQAxQNlOsnMS7e5zPyLe9aysn4M,1373
|
64
65
|
vellum_ee/workflows/display/workflows/vellum_workflow_display.py,sha256=sDhCQJYdSJ4LcR7JBaTUllNhSaedQeD3Oe_ALUE3SiY,16634
|
65
|
-
vellum/__init__.py,sha256=
|
66
|
-
vellum/client/README.md,sha256=
|
67
|
-
vellum/client/__init__.py,sha256=
|
66
|
+
vellum/__init__.py,sha256=xiYriEQZVk6SzItzQNOMpGoeO2yFTBGrEJZNHJesm8E,34416
|
67
|
+
vellum/client/README.md,sha256=8cKUE1kSuhz-U87n3-clA7o9_zlP0Avr4qKbvRbdT2k,5984
|
68
|
+
vellum/client/__init__.py,sha256=Fu-wzw_MiTtqAQOFhcFcrLKAPkEfUhf6K4ZuFspfKUw,115305
|
68
69
|
vellum/client/core/__init__.py,sha256=SQ85PF84B9MuKnBwHNHWemSGuy-g_515gFYNFhvEE0I,1438
|
69
70
|
vellum/client/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
|
70
|
-
vellum/client/core/client_wrapper.py,sha256=
|
71
|
+
vellum/client/core/client_wrapper.py,sha256=mQRFKZD2WpUTWabsoFG3brPhS2qJ4398Akys9PcuMV4,1890
|
71
72
|
vellum/client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
|
72
73
|
vellum/client/core/file.py,sha256=X9IbmkZmB2bB_DpmZAO3crWdXagOakAyn6UCOCImCPg,2322
|
73
74
|
vellum/client/core/http_client.py,sha256=R0pQpCppnEtxccGvXl4uJ76s7ro_65Fo_erlNNLp_AI,19228
|
@@ -83,13 +84,13 @@ vellum/client/errors/bad_request_error.py,sha256=_EbO8mWqN9kFZPvIap8qa1lL_EWkRcs
|
|
83
84
|
vellum/client/errors/forbidden_error.py,sha256=QO1kKlhClAPES6zsEK7g9pglWnxn3KWaOCAawWOg6Aw,263
|
84
85
|
vellum/client/errors/internal_server_error.py,sha256=8USCagXyJJ1MOm9snpcXIUt6eNXvrd_aq7Gfcu1vlOI,268
|
85
86
|
vellum/client/errors/not_found_error.py,sha256=tBVCeBC8n3C811WHRj_n-hs3h8MqwR5gp0vLiobk7W8,262
|
86
|
-
vellum/client/resources/__init__.py,sha256=
|
87
|
+
vellum/client/resources/__init__.py,sha256=2B6Oim7PG4IxSUNSzDY1EruQHsaZ7konj3j_WSTydCs,1378
|
87
88
|
vellum/client/resources/ad_hoc/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
88
89
|
vellum/client/resources/ad_hoc/client.py,sha256=6rsCw-oaq35-DVrb7NTyptc2WU9L6Eka99H3fNB0jA8,17749
|
89
90
|
vellum/client/resources/container_images/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
90
91
|
vellum/client/resources/container_images/client.py,sha256=jK1n-NFsdBKCeEKh-EIqvw7R8AG9PP4GxxcoH9F0GYs,15463
|
91
92
|
vellum/client/resources/deployments/__init__.py,sha256=m64MNuPx3qVazOnTNwOY8oEeDrAkNwMJvUEe5xoMDvs,239
|
92
|
-
vellum/client/resources/deployments/client.py,sha256=
|
93
|
+
vellum/client/resources/deployments/client.py,sha256=ssXaHJXBxO_I8JLuijusDVWwsfYadTw3j7o41ICYtrY,38777
|
93
94
|
vellum/client/resources/deployments/types/__init__.py,sha256=29GVdoLOJsADSSSqZwb6CQPeEmPjkKrbsWfru1bemj8,321
|
94
95
|
vellum/client/resources/deployments/types/deployments_list_request_status.py,sha256=CxlQD16KZXme7x31YYCe_3aAgEueutDTeJo5A4Au-aU,174
|
95
96
|
vellum/client/resources/deployments/types/list_deployment_release_tags_request_source.py,sha256=hRGgWMYZL9uKCmD_2dU8-u9RCPUUGItpNn1tUY-NXKY,180
|
@@ -105,6 +106,8 @@ vellum/client/resources/folder_entities/types/__init__.py,sha256=cHabrupjC-HL3kj
|
|
105
106
|
vellum/client/resources/folder_entities/types/folder_entities_list_request_entity_status.py,sha256=nK9b9fRSeCfjn2V2Hifl1IbhFeVsNkoeXJ8rCAPADFg,183
|
106
107
|
vellum/client/resources/metric_definitions/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
107
108
|
vellum/client/resources/metric_definitions/client.py,sha256=w-2IQ-ILDNqws6bWjZj6V9G86qw5zCVLXKq4j3Nebzw,5924
|
109
|
+
vellum/client/resources/ml_models/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
110
|
+
vellum/client/resources/ml_models/client.py,sha256=XIYapTEY6GRNr7V0Kjy5bEeKmrhv9ul8qlQY2A5LFqQ,3872
|
108
111
|
vellum/client/resources/sandboxes/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
109
112
|
vellum/client/resources/sandboxes/client.py,sha256=i-6DHap5k6gFcYS-kWI8ayJFVZxb-GENRft6BJwVam4,17158
|
110
113
|
vellum/client/resources/test_suite_runs/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
@@ -112,7 +115,7 @@ vellum/client/resources/test_suite_runs/client.py,sha256=gCF1ewlUrCsZhnXYOYqdUuD
|
|
112
115
|
vellum/client/resources/test_suites/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
113
116
|
vellum/client/resources/test_suites/client.py,sha256=XOSXVzgcnyescVX02aKdRzLSxY32xS0ULXbwc9XFAE8,25063
|
114
117
|
vellum/client/resources/workflow_deployments/__init__.py,sha256=_duH6m1CDWcfqX6DTBNjO3ar4Xrl-f5PozMaTcT4Kow,251
|
115
|
-
vellum/client/resources/workflow_deployments/client.py,sha256=
|
118
|
+
vellum/client/resources/workflow_deployments/client.py,sha256=H9MhGYZVx1WLHE5j83Sl5HmX-CF6aJFCwQAGDG1n2oI,27149
|
116
119
|
vellum/client/resources/workflow_deployments/types/__init__.py,sha256=W7DKJ1nduwhRckYLvH7wHLdaGH9MXHTZkxwG7FdTngY,340
|
117
120
|
vellum/client/resources/workflow_deployments/types/list_workflow_release_tags_request_source.py,sha256=LPETHLX9Ygha_JRT9oWZAZR6clv-W1tTelXzktkTBX8,178
|
118
121
|
vellum/client/resources/workflow_deployments/types/workflow_deployments_list_request_status.py,sha256=FXVkVmGM6DZ2RpTGnZXWJYiVlLQ-K5fDtX3WMaBPaWk,182
|
@@ -124,7 +127,7 @@ vellum/client/resources/workflows/types/__init__.py,sha256=-uFca4ypncAOvfsg6sjD-
|
|
124
127
|
vellum/client/resources/workflows/types/workflows_pull_request_format.py,sha256=dOWE_jnDnniIJLoeseeCms23aklghyBkoPmBFzcqqZk,165
|
125
128
|
vellum/client/resources/workspace_secrets/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
126
129
|
vellum/client/resources/workspace_secrets/client.py,sha256=h7UzXLyTttPq1t-JZGMg1BWxypxJvBGUdqg7KGT7MK4,8027
|
127
|
-
vellum/client/types/__init__.py,sha256=
|
130
|
+
vellum/client/types/__init__.py,sha256=fY4a4kaOhRGIChnfHFKrEAO-XCEF6m4zfTZNYnH8d24,51959
|
128
131
|
vellum/client/types/ad_hoc_execute_prompt_event.py,sha256=bCjujA2XsOgyF3bRZbcEqV2rOIymRgsLoIRtZpB14xg,607
|
129
132
|
vellum/client/types/ad_hoc_expand_meta.py,sha256=1gv-NCsy_6xBYupLvZH979yf2VMdxAU-l0y0ynMKZaw,1331
|
130
133
|
vellum/client/types/ad_hoc_fulfilled_prompt_execution_meta.py,sha256=Bfvf1d_dkmshxRACVM5vcxbH_7AQY23RmrrnPc0ytYY,939
|
@@ -190,6 +193,7 @@ vellum/client/types/conditional_node_result.py,sha256=vx8xo9F1KoJqOnYPtSevfOcBxK
|
|
190
193
|
vellum/client/types/conditional_node_result_data.py,sha256=yk4E7KHSzmKlweI9ce9eN_iW08V70KGmG1Z0K5455T0,604
|
191
194
|
vellum/client/types/container_image_read.py,sha256=4i2dZkGrmWapW884F5ESVOLWElT5Y_478oB5NbDjAi0,787
|
192
195
|
vellum/client/types/create_test_suite_test_case_request.py,sha256=SYUz7_aZMQlin_c1C0-B0W14YB0kC3cn21oPE4_64Ys,1711
|
196
|
+
vellum/client/types/deployment_history_item.py,sha256=YfcHo4X5OjHXsffndZoAjShYncUN19ZwIm96qKE0G7o,1310
|
193
197
|
vellum/client/types/deployment_provider_payload_response.py,sha256=b0lkt0rK88ARQaMWn9MAHeWtMBsZKofDMlOAUsQvv7g,818
|
194
198
|
vellum/client/types/deployment_provider_payload_response_payload.py,sha256=xHLQnWFN0AZRZdrOiKawwpoKK7BTmnZfp0P7FCc2ZqE,188
|
195
199
|
vellum/client/types/deployment_read.py,sha256=NtXmYsYJOATxkMxeVkSM35XzDVGbva3RWmn5midBd1A,2160
|
@@ -311,6 +315,7 @@ vellum/client/types/metadata_filters_request.py,sha256=Yaiu7rkcrV2bCFk6HrZSjuF6V
|
|
311
315
|
vellum/client/types/metric_definition_execution.py,sha256=xwr5VJTo32k77isUtz2uzHGmtRm6K_VyOlTCbJr0JNU,672
|
312
316
|
vellum/client/types/metric_definition_input.py,sha256=4nmwpPqbeNQYCzLkXCkc-FGV5K2Zfa22xqSUe_L6o5s,331
|
313
317
|
vellum/client/types/metric_node_result.py,sha256=YdKq1DZiBD1RBtjyMejImylv3BqrwY8B_UF4Ij-6_64,660
|
318
|
+
vellum/client/types/ml_model_read.py,sha256=Vr5KjaS2Tca0GXsltfSYQpuyGYpgIahPEFfS6HfFGSo,706
|
314
319
|
vellum/client/types/ml_model_usage.py,sha256=WcZ2F1hfxyTwe-spOVwv-qJYDjs4hf9sn7BF2abawPo,910
|
315
320
|
vellum/client/types/named_scenario_input_chat_history_variable_value_request.py,sha256=aVZmAxu-47c34NyhSkfi9tQqIPy29cdJ7Pb4MIgKeNw,862
|
316
321
|
vellum/client/types/named_scenario_input_json_variable_value_request.py,sha256=UgnKv70zFviv1kl4nM7aM7IFA-7xyDOtglW4Y3GBZ28,757
|
@@ -559,6 +564,7 @@ vellum/client/types/vellum_value_request.py,sha256=Yke9JRiEaAS7i9NiCUMZiECzQOkSe
|
|
559
564
|
vellum/client/types/vellum_variable.py,sha256=LNNNlYbT1VqadO6aUmeir9cXirtxgrIl-R2EalYZ5Uo,1123
|
560
565
|
vellum/client/types/vellum_variable_extensions.py,sha256=PsrRo0STOKhxrkSFRrOXCPlf1x5Uxpy3vVMJz02O20E,685
|
561
566
|
vellum/client/types/vellum_variable_type.py,sha256=SX8PY9l8zui3IaT9BwmOxczmb_WE7S9w37JshEZVemE,371
|
567
|
+
vellum/client/types/workflow_deployment_history_item.py,sha256=4WUPzcthBvEZ7iaisKfEg0soUtHjcTEnL_VUVaKpTyw,1420
|
562
568
|
vellum/client/types/workflow_deployment_read.py,sha256=zBn6JDHemCnmU6M4tMtyxwmxETOPeGKJeg9fmiAEP4w,2363
|
563
569
|
vellum/client/types/workflow_event_error.py,sha256=HIewu_kh3KNPpWegAQArvAGHCp-cBIXqlUAAc_dBZhc,687
|
564
570
|
vellum/client/types/workflow_execution_actual_chat_history_request.py,sha256=L6U8tgM7SiU4qGJMZChFzj6HfHgO-YAlTXfbT7ZIaE4,1993
|
@@ -659,6 +665,8 @@ vellum/resources/folder_entities/types/__init__.py,sha256=tRr24soech0seY3EL7iEAx
|
|
659
665
|
vellum/resources/folder_entities/types/folder_entities_list_request_entity_status.py,sha256=Bv0cgP2-uRPXoBWeRdVzq9fs5yauEIKWF5MU8F-7BFM,206
|
660
666
|
vellum/resources/metric_definitions/__init__.py,sha256=T4lyfF6WVYl3dkj3v728lLzTNuP0JShdbckbQbQmUOw,160
|
661
667
|
vellum/resources/metric_definitions/client.py,sha256=W25D_q4KLdd2tfSGd1oQt84lNqWVmuF67p4WS5BOkk0,167
|
668
|
+
vellum/resources/ml_models/__init__.py,sha256=qIepoIEWDHz3u7i0bW3jnTpdTdfPGhA1LBztQLh7Jrk,151
|
669
|
+
vellum/resources/ml_models/client.py,sha256=RSYFEe1BnFTDBMur2_eR3ZkLZbdWeTGe_OIuMwcsfdw,158
|
662
670
|
vellum/resources/sandboxes/__init__.py,sha256=sycp4Bgvj9GzBGjiXhtmKFjOdBsIoDfMFaQrvDK_lGo,151
|
663
671
|
vellum/resources/sandboxes/client.py,sha256=PBpYOg43HN-9B4YKtPqmE1aFag39ypLc5UWSxixUJjo,158
|
664
672
|
vellum/resources/test_suite_runs/__init__.py,sha256=PfRYjodfN_rYZlUTiBnVXxdwQNcdmI-qT6MCqubd3ug,157
|
@@ -744,6 +752,7 @@ vellum/types/conditional_node_result.py,sha256=zcfDgqzQWXVcqEQi_ozC_7l2to8Y3uNZ5
|
|
744
752
|
vellum/types/conditional_node_result_data.py,sha256=z7Mtn_iKkan2jrGc2Q7fx-anx3ijHSSqnZwAb1w4ouk,166
|
745
753
|
vellum/types/container_image_read.py,sha256=36LQzvJaDGH26wjD6_WxgzwkslgRZihSYXu5n4W7abk,158
|
746
754
|
vellum/types/create_test_suite_test_case_request.py,sha256=D_d6psjOMWx5jr2c7FwNndSH1ay5afdu5QXckqtBmfU,173
|
755
|
+
vellum/types/deployment_history_item.py,sha256=VqJfKFgb_lxUd5Hr1xQtF63FBn7uzHV84L4pla2MER8,161
|
747
756
|
vellum/types/deployment_provider_payload_response.py,sha256=egWSp4Tn_IKsYt-nFzyJxoQ8DAFqnqZFBKioTgsN1DE,174
|
748
757
|
vellum/types/deployment_provider_payload_response_payload.py,sha256=nuzn6G1Tc5h6ZOzF7St4WHU3fH_lMPJoiJu_YXWOVfw,182
|
749
758
|
vellum/types/deployment_read.py,sha256=iJWCAuQLxL3GEMaMvC5SrUUEvVvSIPYWarQZ7yEyjvI,153
|
@@ -865,6 +874,7 @@ vellum/types/metadata_filters_request.py,sha256=Czs4HD9ibSdtX026v3NMur6L6wKOYYkv
|
|
865
874
|
vellum/types/metric_definition_execution.py,sha256=Yx5b1CygziiPLjlZDQF0lVVI7ubRLVJn16vT3N7zmHQ,165
|
866
875
|
vellum/types/metric_definition_input.py,sha256=TwMwjC_MNiLdodsvT52D7aa_wRY-0kT047flY3sFxII,161
|
867
876
|
vellum/types/metric_node_result.py,sha256=Q_bUgbdRnSP26nEcJ-vZD7k2oLIcThN3JjW9hXTRfZo,156
|
877
|
+
vellum/types/ml_model_read.py,sha256=d_CPwZ3bhXtC8c5jwXkuNVvobDqPI-I_byZ6WnVla1Q,151
|
868
878
|
vellum/types/ml_model_usage.py,sha256=Q-7_W6GfL8rMnqjhSiZirw8oB60GFc0p_mNYdZdlMjY,152
|
869
879
|
vellum/types/named_scenario_input_chat_history_variable_value_request.py,sha256=Sfwba1cvocP8UR6CCDEjE7HsI5Xs6Dopk1W88Zf1ng8,194
|
870
880
|
vellum/types/named_scenario_input_json_variable_value_request.py,sha256=1kZ4Y7TttH8O897rmtkEIMraql5dTIyEVvFZn0I5Py8,186
|
@@ -1113,6 +1123,7 @@ vellum/types/vellum_value_request.py,sha256=O8OsytBNQXFlxpsS0b6NLlFPYwd8v2gMXoVG
|
|
1113
1123
|
vellum/types/vellum_variable.py,sha256=rmjuD8hMydLF480--5tWlHbvu6qNaz0Hs9bSrJ8DPEI,153
|
1114
1124
|
vellum/types/vellum_variable_extensions.py,sha256=wwKDv_yxtP7gQmfz5HF3zab-FOLt-0OMUYIsHgvrOC0,164
|
1115
1125
|
vellum/types/vellum_variable_type.py,sha256=d3Zkf0ued1QrO90CMGTUnlyg2xT8nKGM4Nv6-L6W_Pg,158
|
1126
|
+
vellum/types/workflow_deployment_history_item.py,sha256=dp5pwzOVO83KPwAbYeO3NXlKKHswGa0MTGX82nIhAIg,170
|
1116
1127
|
vellum/types/workflow_deployment_read.py,sha256=dDGG27VP0bvC565JzeSOHJ-5Pvs7eCF4R8F9k8316bo,162
|
1117
1128
|
vellum/types/workflow_event_error.py,sha256=n8yzIuTmfxKyGBKellmMhnCgi1d4fPkr0MvjR3sKOAI,158
|
1118
1129
|
vellum/types/workflow_execution_actual_chat_history_request.py,sha256=xR8LHjQtxzZ0PJECgDZ9qEIoPuwb8KY8GEvbsraB_Ak,184
|
@@ -1216,14 +1227,14 @@ vellum/workflows/graph/tests/test_graph.py,sha256=zeBqfcMIlMS3AJn-t0YitKsa8O0r2f
|
|
1216
1227
|
vellum/workflows/inputs/__init__.py,sha256=AbFEteIYEvCb14fM3EK7bhM-40-6s494rSlIhQ4Dsss,62
|
1217
1228
|
vellum/workflows/inputs/base.py,sha256=1kMgr0WqCYdWUqgFvgSoAMw2067FAlgwhGXLgbIOrLY,2391
|
1218
1229
|
vellum/workflows/logging.py,sha256=_a217XogktV4Ncz6xKFz7WfYmZAzkfVRVuC0rWob8ls,437
|
1219
|
-
vellum/workflows/nodes/__init__.py,sha256=
|
1230
|
+
vellum/workflows/nodes/__init__.py,sha256=l_dOI1T9jjka2fe5s4XYyiturK9ZSoPQwVXBofR-R18,1197
|
1220
1231
|
vellum/workflows/nodes/bases/__init__.py,sha256=Ll1Ti6t3e_HKtGLsQTHAJevDmfo0QtfgPZUZ9FCRduI,140
|
1221
1232
|
vellum/workflows/nodes/bases/base.py,sha256=-wp4d9akwCOWI9vjaFj3drSfppeF3zokaLme-krFp8M,13641
|
1222
1233
|
vellum/workflows/nodes/bases/base_subworkflow_node/__init__.py,sha256=0nkHQiFC4IpA1ZGx60XG0BLUWF6hwUpgqmS3ZrlFGhg,80
|
1223
1234
|
vellum/workflows/nodes/bases/base_subworkflow_node/node.py,sha256=vC0gUBQewAUNtP3i2G0-LUpE_kY-r_ijBD_tS1XkQ1E,383
|
1224
1235
|
vellum/workflows/nodes/bases/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1225
1236
|
vellum/workflows/nodes/bases/tests/test_base_node.py,sha256=t7mayifJU2OpXLTXI2G7gO1gIqlDWXsov7otUM7SEPk,3112
|
1226
|
-
vellum/workflows/nodes/core/__init__.py,sha256=
|
1237
|
+
vellum/workflows/nodes/core/__init__.py,sha256=5zDMCmyt1v0HTJzlUBwq3U9L825yZGZhT9JL18-mRR4,455
|
1227
1238
|
vellum/workflows/nodes/core/error_node/__init__.py,sha256=g7RRnlHhqu4qByfLjBwCunmgGA8dI5gNsjS3h6TwlSI,60
|
1228
1239
|
vellum/workflows/nodes/core/error_node/node.py,sha256=hqBPHoLnhNrK9ITIaEzpnk47XYDbG6cmObz7oe78Ceg,944
|
1229
1240
|
vellum/workflows/nodes/core/inline_subworkflow_node/__init__.py,sha256=nKNEH1QTl-1PcvmYoqSWEl0-t6gAur8GLTXHzklRQfM,84
|
@@ -1258,7 +1269,7 @@ vellum/workflows/nodes/displayable/bases/inline_prompt_node/__init__.py,sha256=H
|
|
1258
1269
|
vellum/workflows/nodes/displayable/bases/inline_prompt_node/constants.py,sha256=fnjiRWLoRlC4Puo5oQcpZD5Hd-EesxsAo9l5tGAkpZQ,270
|
1259
1270
|
vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py,sha256=vbl6LRCrmlxFURcFGFMAEBJjgNGPB5q9AnQ8UITxYuI,4869
|
1260
1271
|
vellum/workflows/nodes/displayable/bases/prompt_deployment_node.py,sha256=JjNMiAFgOupUo5EUeHaryG74SCjEECxBZiS8cMECR_c,4378
|
1261
|
-
vellum/workflows/nodes/displayable/bases/search_node.py,sha256=
|
1272
|
+
vellum/workflows/nodes/displayable/bases/search_node.py,sha256=z8IQg-J46AbRMgFi92M08A220Wf7gU0xE3634ii3T1E,3565
|
1262
1273
|
vellum/workflows/nodes/displayable/code_execution_node/__init__.py,sha256=0FLWMMktpzSnmBMizQglBpcPrP80fzVsoJwJgf822Cg,76
|
1263
1274
|
vellum/workflows/nodes/displayable/code_execution_node/node.py,sha256=zIq2MHlLwxSHpFJiYMUp4F0PWfvbMETWUwHTsXi85W0,7962
|
1264
1275
|
vellum/workflows/nodes/displayable/code_execution_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -1279,7 +1290,7 @@ vellum/workflows/nodes/displayable/merge_node/node.py,sha256=ZyPvcTgfPOneOm5Dc2k
|
|
1279
1290
|
vellum/workflows/nodes/displayable/prompt_deployment_node/__init__.py,sha256=krX1Hds-TSVYZsx0wJFX4wsAKkEFYOX1ifwRGiIM-EA,82
|
1280
1291
|
vellum/workflows/nodes/displayable/prompt_deployment_node/node.py,sha256=zEgOWgahPr-Jozd97xEqhX3ZelcHcMuKPMiOFb1igXE,2321
|
1281
1292
|
vellum/workflows/nodes/displayable/search_node/__init__.py,sha256=hpBpvbrDYf43DElRZFLzieSn8weXiwNiiNOJurERQbs,62
|
1282
|
-
vellum/workflows/nodes/displayable/search_node/node.py,sha256=
|
1293
|
+
vellum/workflows/nodes/displayable/search_node/node.py,sha256=k7_S5yWFGZrIV1R5BsFIFSkOvmnbJK39pNmZD8XLCX4,1310
|
1283
1294
|
vellum/workflows/nodes/displayable/subworkflow_deployment_node/__init__.py,sha256=9yYM6001YZeqI1VOk1QuEM_yrffk_EdsO7qaPzINKds,92
|
1284
1295
|
vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py,sha256=HjKaQ8QaqmdEcwOIg2DoWk__l9cMpR4tYnZ51WQDThk,6714
|
1285
1296
|
vellum/workflows/nodes/displayable/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -1295,7 +1306,7 @@ vellum/workflows/ports/port.py,sha256=4Y3heJglodE5svzq7om7e-5gqANqnbiqKD3ffQMGLV
|
|
1295
1306
|
vellum/workflows/ports/utils.py,sha256=pEjVNJKw9LhD_cFN-o0MWBOW2ejno7jv26qqzjLxwS4,1662
|
1296
1307
|
vellum/workflows/references/__init__.py,sha256=tKHT1lePWOmDoPkrS7I2kPml_me9-WQwZmCoQzhU6k8,513
|
1297
1308
|
vellum/workflows/references/environment_variable.py,sha256=7FFtiKfc4eyVkkfUbhc666OBNDqvFlMoNQEYmGpEVVE,661
|
1298
|
-
vellum/workflows/references/execution_count.py,sha256=
|
1309
|
+
vellum/workflows/references/execution_count.py,sha256=JILHqt8ELdc9ct-WsVCA5X-rKiP1rmJODw-XTf4kpHI,722
|
1299
1310
|
vellum/workflows/references/external_input.py,sha256=ZSnRIjrTwpWuBcInZMvQQzcDgkeZ1r7-C7I4sRpDNy4,1658
|
1300
1311
|
vellum/workflows/references/input.py,sha256=3INu-TLTi4dziWmva6LO3WvgDlPzsjayUx61cVvqLJA,325
|
1301
1312
|
vellum/workflows/references/lazy.py,sha256=SXwZUCTzUR-R2-uK0XHALtvp1x84l-QkNY-Ds6KynYA,1932
|
@@ -1332,8 +1343,8 @@ vellum/workflows/utils/vellum_variables.py,sha256=JA7hhbJ_9m7KEYFaCv5R6FqYeTRWDp
|
|
1332
1343
|
vellum/workflows/vellum_client.py,sha256=ODrq_TSl-drX2aezXegf7pizpWDVJuTXH-j6528t75s,683
|
1333
1344
|
vellum/workflows/workflows/__init__.py,sha256=KY45TqvavCCvXIkyCFMEc0dc6jTMOUci93U2DUrlZYc,66
|
1334
1345
|
vellum/workflows/workflows/base.py,sha256=NbQ3jR9veKdfK5S9qPkiJvy16l19YyQxzops_Y09wMw,12872
|
1335
|
-
vellum_ai-0.10.
|
1336
|
-
vellum_ai-0.10.
|
1337
|
-
vellum_ai-0.10.
|
1338
|
-
vellum_ai-0.10.
|
1339
|
-
vellum_ai-0.10.
|
1346
|
+
vellum_ai-0.10.2.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
|
1347
|
+
vellum_ai-0.10.2.dist-info/METADATA,sha256=UPsNCcm_oVqPV4zmvlxPX4hSC_VUjpPJ7z5LcCF4rOY,5011
|
1348
|
+
vellum_ai-0.10.2.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
|
1349
|
+
vellum_ai-0.10.2.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
|
1350
|
+
vellum_ai-0.10.2.dist-info/RECORD,,
|
vellum_cli/__init__.py
CHANGED
@@ -43,9 +43,10 @@ def push(
|
|
43
43
|
@main.command()
|
44
44
|
@click.argument("module", required=False)
|
45
45
|
@click.option("--legacy-module", is_flag=True, help="Pull the workflow as a legacy module")
|
46
|
-
|
46
|
+
@click.option("--include-json", is_flag=True, help="Include the JSON representation of the Workflow in the pull response. Should only be used for debugging purposes.")
|
47
|
+
def pull(module: Optional[str], legacy_module: Optional[bool], include_json: Optional[bool]) -> None:
|
47
48
|
"""Pull Workflow from Vellum"""
|
48
|
-
pull_command(module, legacy_module)
|
49
|
+
pull_command(module, legacy_module, include_json)
|
49
50
|
|
50
51
|
|
51
52
|
@main.group(aliases=["images", "image"])
|
vellum_cli/pull.py
CHANGED
@@ -6,12 +6,14 @@ from typing import Optional
|
|
6
6
|
|
7
7
|
from dotenv import load_dotenv
|
8
8
|
|
9
|
+
from vellum.workflows.vellum_client import create_vellum_client
|
9
10
|
from vellum_cli.config import load_vellum_cli_config
|
10
11
|
from vellum_cli.logger import load_cli_logger
|
11
|
-
from vellum.workflows.vellum_client import create_vellum_client
|
12
12
|
|
13
13
|
|
14
|
-
def pull_command(
|
14
|
+
def pull_command(
|
15
|
+
module: Optional[str], legacy_module: Optional[bool] = None, include_json: Optional[bool] = None
|
16
|
+
) -> None:
|
15
17
|
load_dotenv()
|
16
18
|
logger = load_cli_logger()
|
17
19
|
config = load_vellum_cli_config()
|
@@ -22,7 +24,9 @@ def pull_command(module: Optional[str], legacy_module: Optional[bool] = None) ->
|
|
22
24
|
if len(config.workflows) > 1 and not module:
|
23
25
|
raise ValueError("Multiple workflows found in project to pull. Pulling only a single workflow is supported.")
|
24
26
|
|
25
|
-
workflow_config =
|
27
|
+
workflow_config = (
|
28
|
+
next((w for w in config.workflows if w.module == module), None) if module else config.workflows[0]
|
29
|
+
)
|
26
30
|
if workflow_config is None:
|
27
31
|
raise ValueError(f"No workflow config for '{module}' found in project to push.")
|
28
32
|
|
@@ -31,9 +35,15 @@ def pull_command(module: Optional[str], legacy_module: Optional[bool] = None) ->
|
|
31
35
|
|
32
36
|
logger.info(f"Pulling workflow into {workflow_config.module}")
|
33
37
|
client = create_vellum_client()
|
38
|
+
query_parameters = {}
|
39
|
+
if legacy_module:
|
40
|
+
query_parameters["legacyModule"] = legacy_module
|
41
|
+
if include_json:
|
42
|
+
query_parameters["include_json"] = include_json
|
43
|
+
|
34
44
|
response = client.workflows.pull(
|
35
45
|
workflow_config.workflow_sandbox_id,
|
36
|
-
request_options={"additional_query_parameters":
|
46
|
+
request_options={"additional_query_parameters": query_parameters},
|
37
47
|
)
|
38
48
|
|
39
49
|
zip_bytes = b"".join(response)
|
@@ -70,4 +80,7 @@ def pull_command(module: Optional[str], legacy_module: Optional[bool] = None) ->
|
|
70
80
|
logger.info(f"Writing to {target_file}...")
|
71
81
|
target.write(source.read().decode("utf-8"))
|
72
82
|
|
83
|
+
if include_json:
|
84
|
+
logger.warning("The pulled JSON representation of the Workflow should be used for debugging purposely only. Its schema should be considered unstable and subject to change at any time.")
|
85
|
+
|
73
86
|
logger.info(f"Successfully pulled Workflow into {workflow_config.module}")
|
vellum_cli/tests/test_pull.py
CHANGED
@@ -150,3 +150,21 @@ def test_pull__remove_missing_files__ignore_pattern(vellum_client, mock_module):
|
|
150
150
|
|
151
151
|
# AND the tests/test_workflow.py file is untouched
|
152
152
|
assert os.path.exists(test_file_path)
|
153
|
+
|
154
|
+
|
155
|
+
def test_pull__include_json(vellum_client, mock_module):
|
156
|
+
# GIVEN a module on the user's filesystem
|
157
|
+
_, module = mock_module
|
158
|
+
|
159
|
+
# AND the workflow pull API call returns a zip file
|
160
|
+
vellum_client.workflows.pull.return_value = iter(
|
161
|
+
[zip_file_map({"workflow.py": "print('hello')", "workflow.json": "{}"})]
|
162
|
+
)
|
163
|
+
|
164
|
+
# WHEN the user runs the pull command
|
165
|
+
pull_command(module, include_json=True)
|
166
|
+
|
167
|
+
# THEN the pull api is called with include_json=True
|
168
|
+
vellum_client.workflows.pull.assert_called_once()
|
169
|
+
call_args = vellum_client.workflows.pull.call_args.kwargs
|
170
|
+
assert call_args["request_options"]["additional_query_parameters"] == {"include_json": True}
|
vellum_ee/py.typed
ADDED
File without changes
|
@@ -40,10 +40,16 @@ class RuleIdMap:
|
|
40
40
|
lhs: Optional["RuleIdMap"]
|
41
41
|
rhs: Optional["RuleIdMap"]
|
42
42
|
|
43
|
+
@dataclass
|
44
|
+
class ConditionId:
|
45
|
+
id: UUID
|
46
|
+
rule_group_id: UUID
|
47
|
+
|
43
48
|
|
44
49
|
class BaseConditionalNodeDisplay(BaseNodeVellumDisplay[_ConditionalNodeType], Generic[_ConditionalNodeType]):
|
45
50
|
source_handle_ids: ClassVar[Dict[int, UUID]]
|
46
51
|
rule_ids: ClassVar[List[RuleIdMap]]
|
52
|
+
condition_ids: ClassVar[list[ConditionId]]
|
47
53
|
|
48
54
|
def serialize(self, display_context: WorkflowDisplayContext, **kwargs: Any) -> JsonObject:
|
49
55
|
node = self._node
|
@@ -51,6 +57,13 @@ class BaseConditionalNodeDisplay(BaseNodeVellumDisplay[_ConditionalNodeType], Ge
|
|
51
57
|
|
52
58
|
node_inputs: List[NodeInput] = []
|
53
59
|
source_handle_ids = self._get_source_handle_ids() or {}
|
60
|
+
condition_ids = self._get_condition_ids()
|
61
|
+
|
62
|
+
ports_size = sum(1 for _ in node.Ports)
|
63
|
+
|
64
|
+
if len(condition_ids) > ports_size:
|
65
|
+
raise ValueError(
|
66
|
+
f"Too many defined condition ids. Ports are size {ports_size} but the defined conditions have length {len(condition_ids)}")
|
54
67
|
|
55
68
|
def serialize_rule(
|
56
69
|
descriptor: BaseDescriptor, path: List[int], rule_id_map: Optional[RuleIdMap]
|
@@ -132,7 +145,9 @@ class BaseConditionalNodeDisplay(BaseNodeVellumDisplay[_ConditionalNodeType], Ge
|
|
132
145
|
if port._condition is None or port._condition_type is None:
|
133
146
|
continue
|
134
147
|
|
135
|
-
|
148
|
+
|
149
|
+
condition_id = str(condition_ids[idx].id if condition_ids else uuid4_from_hash(f"{node_id}|conditions|{idx}"))
|
150
|
+
rule_group_id = str(condition_ids[idx].rule_group_id if condition_ids else uuid4_from_hash(f"{condition_id}|rule_group"))
|
136
151
|
source_handle_id = str(source_handle_ids.get(idx) or uuid4_from_hash(f"{node_id}|handles|{idx}"))
|
137
152
|
|
138
153
|
rule_ids = self._get_rule_ids()
|
@@ -145,7 +160,7 @@ class BaseConditionalNodeDisplay(BaseNodeVellumDisplay[_ConditionalNodeType], Ge
|
|
145
160
|
"type": port._condition_type.value,
|
146
161
|
"source_handle_id": source_handle_id,
|
147
162
|
"data": {
|
148
|
-
"id":
|
163
|
+
"id": rule_group_id,
|
149
164
|
"rules": rules,
|
150
165
|
"combinator": "AND",
|
151
166
|
"negated": False,
|
@@ -215,3 +230,6 @@ class BaseConditionalNodeDisplay(BaseNodeVellumDisplay[_ConditionalNodeType], Ge
|
|
215
230
|
|
216
231
|
def _get_rule_ids(self) -> List[RuleIdMap]:
|
217
232
|
return self._get_explicit_node_display_attr("rule_ids", List[RuleIdMap]) or []
|
233
|
+
|
234
|
+
def _get_condition_ids(self)-> List[ConditionId]:
|
235
|
+
return self._get_explicit_node_display_attr("condition_ids", List[ConditionId]) or []
|