vellum-ai 0.10.0__py3-none-any.whl → 0.10.2__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- 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 []
|