vellum-ai 0.9.16rc4__py3-none-any.whl → 0.10.1__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. vellum/__init__.py +8 -0
  2. vellum/client/README.md +1 -1
  3. vellum/client/__init__.py +4 -0
  4. vellum/client/core/client_wrapper.py +1 -1
  5. vellum/client/resources/__init__.py +2 -0
  6. vellum/client/resources/deployments/client.py +117 -0
  7. vellum/client/resources/ml_models/__init__.py +2 -0
  8. vellum/client/resources/ml_models/client.py +125 -0
  9. vellum/client/resources/workflow_deployments/client.py +117 -0
  10. vellum/client/types/__init__.py +6 -0
  11. vellum/client/types/deployment_history_item.py +44 -0
  12. vellum/client/types/ml_model_read.py +27 -0
  13. vellum/client/types/workflow_deployment_history_item.py +45 -0
  14. vellum/resources/ml_models/__init__.py +3 -0
  15. vellum/resources/ml_models/client.py +3 -0
  16. vellum/types/deployment_history_item.py +3 -0
  17. vellum/types/ml_model_read.py +3 -0
  18. vellum/types/workflow_deployment_history_item.py +3 -0
  19. vellum/workflows/nodes/__init__.py +4 -3
  20. vellum/workflows/nodes/core/__init__.py +2 -0
  21. vellum/workflows/nodes/displayable/bases/search_node.py +10 -3
  22. vellum/workflows/nodes/displayable/search_node/node.py +12 -5
  23. vellum/workflows/references/execution_count.py +4 -0
  24. {vellum_ai-0.9.16rc4.dist-info → vellum_ai-0.10.1.dist-info}/METADATA +3 -3
  25. {vellum_ai-0.9.16rc4.dist-info → vellum_ai-0.10.1.dist-info}/RECORD +31 -20
  26. vellum_ee/py.typed +0 -0
  27. vellum_ee/workflows/display/utils/vellum.py +16 -11
  28. vellum_ee/workflows/display/vellum.py +10 -1
  29. {vellum_ai-0.9.16rc4.dist-info → vellum_ai-0.10.1.dist-info}/LICENSE +0 -0
  30. {vellum_ai-0.9.16rc4.dist-info → vellum_ai-0.10.1.dist-info}/WHEEL +0 -0
  31. {vellum_ai-0.9.16rc4.dist-info → vellum_ai-0.10.1.dist-info}/entry_points.txt +0 -0
vellum/__init__.py CHANGED
@@ -66,6 +66,7 @@ from .types import (
66
66
  ConditionalNodeResultData,
67
67
  ContainerImageRead,
68
68
  CreateTestSuiteTestCaseRequest,
69
+ DeploymentHistoryItem,
69
70
  DeploymentProviderPayloadResponse,
70
71
  DeploymentProviderPayloadResponsePayload,
71
72
  DeploymentRead,
@@ -187,6 +188,7 @@ from .types import (
187
188
  MetricDefinitionExecution,
188
189
  MetricDefinitionInput,
189
190
  MetricNodeResult,
191
+ MlModelRead,
190
192
  MlModelUsage,
191
193
  NamedScenarioInputChatHistoryVariableValueRequest,
192
194
  NamedScenarioInputJsonVariableValueRequest,
@@ -435,6 +437,7 @@ from .types import (
435
437
  VellumVariable,
436
438
  VellumVariableExtensions,
437
439
  VellumVariableType,
440
+ WorkflowDeploymentHistoryItem,
438
441
  WorkflowDeploymentRead,
439
442
  WorkflowEventError,
440
443
  WorkflowExecutionActualChatHistoryRequest,
@@ -497,6 +500,7 @@ from .resources import (
497
500
  documents,
498
501
  folder_entities,
499
502
  metric_definitions,
503
+ ml_models,
500
504
  sandboxes,
501
505
  test_suite_runs,
502
506
  test_suites,
@@ -577,6 +581,7 @@ __all__ = [
577
581
  "ConditionalNodeResultData",
578
582
  "ContainerImageRead",
579
583
  "CreateTestSuiteTestCaseRequest",
584
+ "DeploymentHistoryItem",
580
585
  "DeploymentProviderPayloadResponse",
581
586
  "DeploymentProviderPayloadResponsePayload",
582
587
  "DeploymentRead",
@@ -705,6 +710,7 @@ __all__ = [
705
710
  "MetricDefinitionExecution",
706
711
  "MetricDefinitionInput",
707
712
  "MetricNodeResult",
713
+ "MlModelRead",
708
714
  "MlModelUsage",
709
715
  "NamedScenarioInputChatHistoryVariableValueRequest",
710
716
  "NamedScenarioInputJsonVariableValueRequest",
@@ -956,6 +962,7 @@ __all__ = [
956
962
  "VellumVariable",
957
963
  "VellumVariableExtensions",
958
964
  "VellumVariableType",
965
+ "WorkflowDeploymentHistoryItem",
959
966
  "WorkflowDeploymentRead",
960
967
  "WorkflowDeploymentsListRequestStatus",
961
968
  "WorkflowEventError",
@@ -1011,6 +1018,7 @@ __all__ = [
1011
1018
  "documents",
1012
1019
  "folder_entities",
1013
1020
  "metric_definitions",
1021
+ "ml_models",
1014
1022
  "sandboxes",
1015
1023
  "test_suite_runs",
1016
1024
  "test_suites",
vellum/client/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Vellum Python Library
2
2
 
3
- [![fern shield](https://img.shields.io/badge/%F0%9F%8C%BF-Built%20with%20Fern-brightgreen)](https://buildwithfern.com?utm_source=github&utm_medium=github&utm_campaign=readme&utm_source=https%3A%2F%2Fgithub.com%2Fvellum-ai%2Fvellum-client-python)
3
+ [![fern shield](https://img.shields.io/badge/%F0%9F%8C%BF-Built%20with%20Fern-brightgreen)](https://buildwithfern.com?utm_source=github&utm_medium=github&utm_campaign=readme&utm_source=https%3A%2F%2Fgithub.com%2Fvellum-ai%2Fvellum-python-sdks)
4
4
  [![pypi](https://img.shields.io/pypi/v/vellum-ai)](https://pypi.python.org/pypi/vellum-ai)
5
5
 
6
6
  The Vellum Python library provides convenient access to the Vellum API from Python.
vellum/client/__init__.py CHANGED
@@ -11,6 +11,7 @@ from .resources.document_indexes.client import DocumentIndexesClient
11
11
  from .resources.documents.client import DocumentsClient
12
12
  from .resources.folder_entities.client import FolderEntitiesClient
13
13
  from .resources.metric_definitions.client import MetricDefinitionsClient
14
+ from .resources.ml_models.client import MlModelsClient
14
15
  from .resources.sandboxes.client import SandboxesClient
15
16
  from .resources.test_suite_runs.client import TestSuiteRunsClient
16
17
  from .resources.test_suites.client import TestSuitesClient
@@ -59,6 +60,7 @@ from .resources.document_indexes.client import AsyncDocumentIndexesClient
59
60
  from .resources.documents.client import AsyncDocumentsClient
60
61
  from .resources.folder_entities.client import AsyncFolderEntitiesClient
61
62
  from .resources.metric_definitions.client import AsyncMetricDefinitionsClient
63
+ from .resources.ml_models.client import AsyncMlModelsClient
62
64
  from .resources.sandboxes.client import AsyncSandboxesClient
63
65
  from .resources.test_suite_runs.client import AsyncTestSuiteRunsClient
64
66
  from .resources.test_suites.client import AsyncTestSuitesClient
@@ -132,6 +134,7 @@ class Vellum:
132
134
  self.documents = DocumentsClient(client_wrapper=self._client_wrapper)
133
135
  self.folder_entities = FolderEntitiesClient(client_wrapper=self._client_wrapper)
134
136
  self.metric_definitions = MetricDefinitionsClient(client_wrapper=self._client_wrapper)
137
+ self.ml_models = MlModelsClient(client_wrapper=self._client_wrapper)
135
138
  self.sandboxes = SandboxesClient(client_wrapper=self._client_wrapper)
136
139
  self.test_suite_runs = TestSuiteRunsClient(client_wrapper=self._client_wrapper)
137
140
  self.test_suites = TestSuitesClient(client_wrapper=self._client_wrapper)
@@ -1451,6 +1454,7 @@ class AsyncVellum:
1451
1454
  self.documents = AsyncDocumentsClient(client_wrapper=self._client_wrapper)
1452
1455
  self.folder_entities = AsyncFolderEntitiesClient(client_wrapper=self._client_wrapper)
1453
1456
  self.metric_definitions = AsyncMetricDefinitionsClient(client_wrapper=self._client_wrapper)
1457
+ self.ml_models = AsyncMlModelsClient(client_wrapper=self._client_wrapper)
1454
1458
  self.sandboxes = AsyncSandboxesClient(client_wrapper=self._client_wrapper)
1455
1459
  self.test_suite_runs = AsyncTestSuiteRunsClient(client_wrapper=self._client_wrapper)
1456
1460
  self.test_suites = AsyncTestSuitesClient(client_wrapper=self._client_wrapper)
@@ -17,7 +17,7 @@ class BaseClientWrapper:
17
17
  headers: typing.Dict[str, str] = {
18
18
  "X-Fern-Language": "Python",
19
19
  "X-Fern-SDK-Name": "vellum-ai",
20
- "X-Fern-SDK-Version": "0.9.17",
20
+ "X-Fern-SDK-Version": "0.10.1",
21
21
  }
22
22
  headers["X_API_KEY"] = self.api_key
23
23
  return headers
@@ -8,6 +8,7 @@ from . import (
8
8
  documents,
9
9
  folder_entities,
10
10
  metric_definitions,
11
+ ml_models,
11
12
  sandboxes,
12
13
  test_suite_runs,
13
14
  test_suites,
@@ -37,6 +38,7 @@ __all__ = [
37
38
  "documents",
38
39
  "folder_entities",
39
40
  "metric_definitions",
41
+ "ml_models",
40
42
  "sandboxes",
41
43
  "test_suite_runs",
42
44
  "test_suites",
@@ -10,6 +10,7 @@ from json.decoder import JSONDecodeError
10
10
  from ...core.api_error import ApiError
11
11
  from ...types.deployment_read import DeploymentRead
12
12
  from ...core.jsonable_encoder import jsonable_encoder
13
+ from ...types.deployment_history_item import DeploymentHistoryItem
13
14
  from .types.list_deployment_release_tags_request_source import ListDeploymentReleaseTagsRequestSource
14
15
  from ...types.paginated_deployment_release_tag_read_list import PaginatedDeploymentReleaseTagReadList
15
16
  from ...types.deployment_release_tag_read import DeploymentReleaseTagRead
@@ -148,6 +149,60 @@ class DeploymentsClient:
148
149
  raise ApiError(status_code=_response.status_code, body=_response.text)
149
150
  raise ApiError(status_code=_response.status_code, body=_response_json)
150
151
 
152
+ def deployment_history_item_retrieve(
153
+ self, history_id_or_release_tag: str, id: str, *, request_options: typing.Optional[RequestOptions] = None
154
+ ) -> DeploymentHistoryItem:
155
+ """
156
+ Retrieve a specific Deployment History Item by either its UUID or the name of a Release Tag that points to it.
157
+
158
+ Parameters
159
+ ----------
160
+ history_id_or_release_tag : str
161
+ Either the UUID of Deployment History Item you'd like to retrieve, or the name of a Release Tag that's pointing to the Deployment History Item you'd like to retrieve.
162
+
163
+ id : str
164
+ A UUID string identifying this deployment.
165
+
166
+ request_options : typing.Optional[RequestOptions]
167
+ Request-specific configuration.
168
+
169
+ Returns
170
+ -------
171
+ DeploymentHistoryItem
172
+
173
+
174
+ Examples
175
+ --------
176
+ from vellum import Vellum
177
+
178
+ client = Vellum(
179
+ api_key="YOUR_API_KEY",
180
+ )
181
+ client.deployments.deployment_history_item_retrieve(
182
+ history_id_or_release_tag="history_id_or_release_tag",
183
+ id="id",
184
+ )
185
+ """
186
+ _response = self._client_wrapper.httpx_client.request(
187
+ f"v1/deployments/{jsonable_encoder(id)}/history/{jsonable_encoder(history_id_or_release_tag)}",
188
+ base_url=self._client_wrapper.get_environment().default,
189
+ method="GET",
190
+ request_options=request_options,
191
+ )
192
+ try:
193
+ if 200 <= _response.status_code < 300:
194
+ return typing.cast(
195
+ DeploymentHistoryItem,
196
+ parse_obj_as(
197
+ type_=DeploymentHistoryItem, # type: ignore
198
+ object_=_response.json(),
199
+ ),
200
+ )
201
+ _response_json = _response.json()
202
+ except JSONDecodeError:
203
+ raise ApiError(status_code=_response.status_code, body=_response.text)
204
+ raise ApiError(status_code=_response.status_code, body=_response_json)
205
+
151
206
  def list_deployment_release_tags(
152
207
  self,
153
208
  id: str,
@@ -614,6 +669,68 @@ class AsyncDeploymentsClient:
614
669
  raise ApiError(status_code=_response.status_code, body=_response.text)
615
670
  raise ApiError(status_code=_response.status_code, body=_response_json)
616
671
 
672
+ async def deployment_history_item_retrieve(
673
+ self, history_id_or_release_tag: str, id: str, *, request_options: typing.Optional[RequestOptions] = None
674
+ ) -> DeploymentHistoryItem:
675
+ """
676
+ Retrieve a specific Deployment History Item by either its UUID or the name of a Release Tag that points to it.
677
+
678
+ Parameters
679
+ ----------
680
+ history_id_or_release_tag : str
681
+ Either the UUID of Deployment History Item you'd like to retrieve, or the name of a Release Tag that's pointing to the Deployment History Item you'd like to retrieve.
682
+
683
+ id : str
684
+ A UUID string identifying this deployment.
685
+
686
+ request_options : typing.Optional[RequestOptions]
687
+ Request-specific configuration.
688
+
689
+ Returns
690
+ -------
691
+ DeploymentHistoryItem
692
+
693
+
694
+ Examples
695
+ --------
696
+ import asyncio
697
+
698
+ from vellum import AsyncVellum
699
+
700
+ client = AsyncVellum(
701
+ api_key="YOUR_API_KEY",
702
+ )
703
+
704
+
705
+ async def main() -> None:
706
+ await client.deployments.deployment_history_item_retrieve(
707
+ history_id_or_release_tag="history_id_or_release_tag",
708
+ id="id",
709
+ )
710
+
711
+
712
+ asyncio.run(main())
713
+ """
714
+ _response = await self._client_wrapper.httpx_client.request(
715
+ f"v1/deployments/{jsonable_encoder(id)}/history/{jsonable_encoder(history_id_or_release_tag)}",
716
+ base_url=self._client_wrapper.get_environment().default,
717
+ method="GET",
718
+ request_options=request_options,
719
+ )
720
+ try:
721
+ if 200 <= _response.status_code < 300:
722
+ return typing.cast(
723
+ DeploymentHistoryItem,
724
+ parse_obj_as(
725
+ type_=DeploymentHistoryItem, # type: ignore
726
+ object_=_response.json(),
727
+ ),
728
+ )
729
+ _response_json = _response.json()
730
+ except JSONDecodeError:
731
+ raise ApiError(status_code=_response.status_code, body=_response.text)
732
+ raise ApiError(status_code=_response.status_code, body=_response_json)
733
+
617
734
  async def list_deployment_release_tags(
618
735
  self,
619
736
  id: str,
@@ -0,0 +1,2 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
@@ -0,0 +1,125 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ...core.client_wrapper import SyncClientWrapper
4
+ import typing
5
+ from ...core.request_options import RequestOptions
6
+ from ...types.ml_model_read import MlModelRead
7
+ from ...core.jsonable_encoder import jsonable_encoder
8
+ from ...core.pydantic_utilities import parse_obj_as
9
+ from json.decoder import JSONDecodeError
10
+ from ...core.api_error import ApiError
11
+ from ...core.client_wrapper import AsyncClientWrapper
12
+
13
+
14
+ class MlModelsClient:
15
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
16
+ self._client_wrapper = client_wrapper
17
+
18
+ def retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> MlModelRead:
19
+ """
20
+ Retrieve details about an ML Model
21
+
22
+ Parameters
23
+ ----------
24
+ id : str
25
+ Either the ML Model's ID, its unique name, or its ID in the workspace.
26
+
27
+ request_options : typing.Optional[RequestOptions]
28
+ Request-specific configuration.
29
+
30
+ Returns
31
+ -------
32
+ MlModelRead
33
+
34
+
35
+ Examples
36
+ --------
37
+ from vellum import Vellum
38
+
39
+ client = Vellum(
40
+ api_key="YOUR_API_KEY",
41
+ )
42
+ client.ml_models.retrieve(
43
+ id="id",
44
+ )
45
+ """
46
+ _response = self._client_wrapper.httpx_client.request(
47
+ f"v1/ml-models/{jsonable_encoder(id)}",
48
+ base_url=self._client_wrapper.get_environment().default,
49
+ method="GET",
50
+ request_options=request_options,
51
+ )
52
+ try:
53
+ if 200 <= _response.status_code < 300:
54
+ return typing.cast(
55
+ MlModelRead,
56
+ parse_obj_as(
57
+ type_=MlModelRead, # type: ignore
58
+ object_=_response.json(),
59
+ ),
60
+ )
61
+ _response_json = _response.json()
62
+ except JSONDecodeError:
63
+ raise ApiError(status_code=_response.status_code, body=_response.text)
64
+ raise ApiError(status_code=_response.status_code, body=_response_json)
65
+
66
+
67
+ class AsyncMlModelsClient:
68
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
69
+ self._client_wrapper = client_wrapper
70
+
71
+ async def retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> MlModelRead:
72
+ """
73
+ Retrieve details about an ML Model
74
+
75
+ Parameters
76
+ ----------
77
+ id : str
78
+ Either the ML Model's ID, its unique name, or its ID in the workspace.
79
+
80
+ request_options : typing.Optional[RequestOptions]
81
+ Request-specific configuration.
82
+
83
+ Returns
84
+ -------
85
+ MlModelRead
86
+
87
+
88
+ Examples
89
+ --------
90
+ import asyncio
91
+
92
+ from vellum import AsyncVellum
93
+
94
+ client = AsyncVellum(
95
+ api_key="YOUR_API_KEY",
96
+ )
97
+
98
+
99
+ async def main() -> None:
100
+ await client.ml_models.retrieve(
101
+ id="id",
102
+ )
103
+
104
+
105
+ asyncio.run(main())
106
+ """
107
+ _response = await self._client_wrapper.httpx_client.request(
108
+ f"v1/ml-models/{jsonable_encoder(id)}",
109
+ base_url=self._client_wrapper.get_environment().default,
110
+ method="GET",
111
+ request_options=request_options,
112
+ )
113
+ try:
114
+ if 200 <= _response.status_code < 300:
115
+ return typing.cast(
116
+ MlModelRead,
117
+ parse_obj_as(
118
+ type_=MlModelRead, # type: ignore
119
+ object_=_response.json(),
120
+ ),
121
+ )
122
+ _response_json = _response.json()
123
+ except JSONDecodeError:
124
+ raise ApiError(status_code=_response.status_code, body=_response.text)
125
+ raise ApiError(status_code=_response.status_code, body=_response_json)
@@ -10,6 +10,7 @@ from json.decoder import JSONDecodeError
10
10
  from ...core.api_error import ApiError
11
11
  from ...types.workflow_deployment_read import WorkflowDeploymentRead
12
12
  from ...core.jsonable_encoder import jsonable_encoder
13
+ from ...types.workflow_deployment_history_item import WorkflowDeploymentHistoryItem
13
14
  from .types.list_workflow_release_tags_request_source import ListWorkflowReleaseTagsRequestSource
14
15
  from ...types.paginated_workflow_release_tag_read_list import PaginatedWorkflowReleaseTagReadList
15
16
  from ...types.workflow_release_tag_read import WorkflowReleaseTagRead
@@ -140,6 +141,60 @@ class WorkflowDeploymentsClient:
140
141
  raise ApiError(status_code=_response.status_code, body=_response.text)
141
142
  raise ApiError(status_code=_response.status_code, body=_response_json)
142
143
 
144
+ def workflow_deployment_history_item_retrieve(
145
+ self, history_id_or_release_tag: str, id: str, *, request_options: typing.Optional[RequestOptions] = None
146
+ ) -> WorkflowDeploymentHistoryItem:
147
+ """
148
+ Retrieve a specific Workflow Deployment History Item by either its UUID or the name of a Release Tag that points to it.
149
+
150
+ Parameters
151
+ ----------
152
+ history_id_or_release_tag : str
153
+ Either the UUID of Workflow Deployment History Item you'd like to retrieve, or the name of a Release Tag that's pointing to the Workflow Deployment History Item you'd like to retrieve.
154
+
155
+ id : str
156
+ A UUID string identifying this workflow deployment.
157
+
158
+ request_options : typing.Optional[RequestOptions]
159
+ Request-specific configuration.
160
+
161
+ Returns
162
+ -------
163
+ WorkflowDeploymentHistoryItem
164
+
165
+
166
+ Examples
167
+ --------
168
+ from vellum import Vellum
169
+
170
+ client = Vellum(
171
+ api_key="YOUR_API_KEY",
172
+ )
173
+ client.workflow_deployments.workflow_deployment_history_item_retrieve(
174
+ history_id_or_release_tag="history_id_or_release_tag",
175
+ id="id",
176
+ )
177
+ """
178
+ _response = self._client_wrapper.httpx_client.request(
179
+ f"v1/workflow-deployments/{jsonable_encoder(id)}/history/{jsonable_encoder(history_id_or_release_tag)}",
180
+ base_url=self._client_wrapper.get_environment().default,
181
+ method="GET",
182
+ request_options=request_options,
183
+ )
184
+ try:
185
+ if 200 <= _response.status_code < 300:
186
+ return typing.cast(
187
+ WorkflowDeploymentHistoryItem,
188
+ parse_obj_as(
189
+ type_=WorkflowDeploymentHistoryItem, # type: ignore
190
+ object_=_response.json(),
191
+ ),
192
+ )
193
+ _response_json = _response.json()
194
+ except JSONDecodeError:
195
+ raise ApiError(status_code=_response.status_code, body=_response.text)
196
+ raise ApiError(status_code=_response.status_code, body=_response_json)
197
+
143
198
  def list_workflow_release_tags(
144
199
  self,
145
200
  id: str,
@@ -474,6 +529,68 @@ class AsyncWorkflowDeploymentsClient:
474
529
  raise ApiError(status_code=_response.status_code, body=_response.text)
475
530
  raise ApiError(status_code=_response.status_code, body=_response_json)
476
531
 
532
+ async def workflow_deployment_history_item_retrieve(
533
+ self, history_id_or_release_tag: str, id: str, *, request_options: typing.Optional[RequestOptions] = None
534
+ ) -> WorkflowDeploymentHistoryItem:
535
+ """
536
+ Retrieve a specific Workflow Deployment History Item by either its UUID or the name of a Release Tag that points to it.
537
+
538
+ Parameters
539
+ ----------
540
+ history_id_or_release_tag : str
541
+ Either the UUID of Workflow Deployment History Item you'd like to retrieve, or the name of a Release Tag that's pointing to the Workflow Deployment History Item you'd like to retrieve.
542
+
543
+ id : str
544
+ A UUID string identifying this workflow deployment.
545
+
546
+ request_options : typing.Optional[RequestOptions]
547
+ Request-specific configuration.
548
+
549
+ Returns
550
+ -------
551
+ WorkflowDeploymentHistoryItem
552
+
553
+
554
+ Examples
555
+ --------
556
+ import asyncio
557
+
558
+ from vellum import AsyncVellum
559
+
560
+ client = AsyncVellum(
561
+ api_key="YOUR_API_KEY",
562
+ )
563
+
564
+
565
+ async def main() -> None:
566
+ await client.workflow_deployments.workflow_deployment_history_item_retrieve(
567
+ history_id_or_release_tag="history_id_or_release_tag",
568
+ id="id",
569
+ )
570
+
571
+
572
+ asyncio.run(main())
573
+ """
574
+ _response = await self._client_wrapper.httpx_client.request(
575
+ f"v1/workflow-deployments/{jsonable_encoder(id)}/history/{jsonable_encoder(history_id_or_release_tag)}",
576
+ base_url=self._client_wrapper.get_environment().default,
577
+ method="GET",
578
+ request_options=request_options,
579
+ )
580
+ try:
581
+ if 200 <= _response.status_code < 300:
582
+ return typing.cast(
583
+ WorkflowDeploymentHistoryItem,
584
+ parse_obj_as(
585
+ type_=WorkflowDeploymentHistoryItem, # type: ignore
586
+ object_=_response.json(),
587
+ ),
588
+ )
589
+ _response_json = _response.json()
590
+ except JSONDecodeError:
591
+ raise ApiError(status_code=_response.status_code, body=_response.text)
592
+ raise ApiError(status_code=_response.status_code, body=_response_json)
593
+
477
594
  async def list_workflow_release_tags(
478
595
  self,
479
596
  id: str,
@@ -73,6 +73,7 @@ from .conditional_node_result import ConditionalNodeResult
73
73
  from .conditional_node_result_data import ConditionalNodeResultData
74
74
  from .container_image_read import ContainerImageRead
75
75
  from .create_test_suite_test_case_request import CreateTestSuiteTestCaseRequest
76
+ from .deployment_history_item import DeploymentHistoryItem
76
77
  from .deployment_provider_payload_response import DeploymentProviderPayloadResponse
77
78
  from .deployment_provider_payload_response_payload import DeploymentProviderPayloadResponsePayload
78
79
  from .deployment_read import DeploymentRead
@@ -198,6 +199,7 @@ from .metadata_filters_request import MetadataFiltersRequest
198
199
  from .metric_definition_execution import MetricDefinitionExecution
199
200
  from .metric_definition_input import MetricDefinitionInput
200
201
  from .metric_node_result import MetricNodeResult
202
+ from .ml_model_read import MlModelRead
201
203
  from .ml_model_usage import MlModelUsage
202
204
  from .named_scenario_input_chat_history_variable_value_request import NamedScenarioInputChatHistoryVariableValueRequest
203
205
  from .named_scenario_input_json_variable_value_request import NamedScenarioInputJsonVariableValueRequest
@@ -450,6 +452,7 @@ from .vellum_value_request import VellumValueRequest
450
452
  from .vellum_variable import VellumVariable
451
453
  from .vellum_variable_extensions import VellumVariableExtensions
452
454
  from .vellum_variable_type import VellumVariableType
455
+ from .workflow_deployment_history_item import WorkflowDeploymentHistoryItem
453
456
  from .workflow_deployment_read import WorkflowDeploymentRead
454
457
  from .workflow_event_error import WorkflowEventError
455
458
  from .workflow_execution_actual_chat_history_request import WorkflowExecutionActualChatHistoryRequest
@@ -562,6 +565,7 @@ __all__ = [
562
565
  "ConditionalNodeResultData",
563
566
  "ContainerImageRead",
564
567
  "CreateTestSuiteTestCaseRequest",
568
+ "DeploymentHistoryItem",
565
569
  "DeploymentProviderPayloadResponse",
566
570
  "DeploymentProviderPayloadResponsePayload",
567
571
  "DeploymentRead",
@@ -683,6 +687,7 @@ __all__ = [
683
687
  "MetricDefinitionExecution",
684
688
  "MetricDefinitionInput",
685
689
  "MetricNodeResult",
690
+ "MlModelRead",
686
691
  "MlModelUsage",
687
692
  "NamedScenarioInputChatHistoryVariableValueRequest",
688
693
  "NamedScenarioInputJsonVariableValueRequest",
@@ -931,6 +936,7 @@ __all__ = [
931
936
  "VellumVariable",
932
937
  "VellumVariableExtensions",
933
938
  "VellumVariableType",
939
+ "WorkflowDeploymentHistoryItem",
934
940
  "WorkflowDeploymentRead",
935
941
  "WorkflowEventError",
936
942
  "WorkflowExecutionActualChatHistoryRequest",
@@ -0,0 +1,44 @@
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 DeploymentHistoryItem(UniversalBaseModel):
15
+ id: str
16
+ deployment_id: str
17
+ timestamp: dt.datetime
18
+ label: str = pydantic.Field()
19
+ """
20
+ A human-readable label for the deployment
21
+ """
22
+
23
+ name: str = pydantic.Field()
24
+ """
25
+ A name that uniquely identifies this deployment within its workspace
26
+ """
27
+
28
+ input_variables: typing.List[VellumVariable]
29
+ description: typing.Optional[str] = pydantic.Field(default=None)
30
+ """
31
+ A human-readable description of the deployment
32
+ """
33
+
34
+ if IS_PYDANTIC_V2:
35
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
36
+ else:
37
+
38
+ class Config:
39
+ frozen = True
40
+ smart_union = True
41
+ extra = pydantic.Extra.allow
42
+
43
+
44
+ update_forward_refs(ArrayVellumValue, DeploymentHistoryItem=DeploymentHistoryItem)
@@ -0,0 +1,27 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import pydantic
5
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
6
+ import typing
7
+
8
+
9
+ class MlModelRead(UniversalBaseModel):
10
+ """
11
+ An ML Model that your Workspace has access to.
12
+ """
13
+
14
+ id: str
15
+ name: str = pydantic.Field()
16
+ """
17
+ The unique name of the ML Model.
18
+ """
19
+
20
+ if IS_PYDANTIC_V2:
21
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
22
+ else:
23
+
24
+ class Config:
25
+ frozen = True
26
+ smart_union = True
27
+ extra = pydantic.Extra.allow
@@ -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)
@@ -0,0 +1,3 @@
1
+ # WARNING: This file will be removed in a future release. Please import from "vellum.client" instead.
2
+
3
+ from vellum.client.resources.ml_models import *
@@ -0,0 +1,3 @@
1
+ # WARNING: This file will be removed in a future release. Please import from "vellum.client" instead.
2
+
3
+ from vellum.client.resources.ml_models.client import *
@@ -0,0 +1,3 @@
1
+ # WARNING: This file will be removed in a future release. Please import from "vellum.client" instead.
2
+
3
+ from vellum.client.types.deployment_history_item import *
@@ -0,0 +1,3 @@
1
+ # WARNING: This file will be removed in a future release. Please import from "vellum.client" instead.
2
+
3
+ from vellum.client.types.ml_model_read import *
@@ -0,0 +1,3 @@
1
+ # WARNING: This file will be removed in a future release. Please import from "vellum.client" instead.
2
+
3
+ from vellum.client.types.workflow_deployment_history_item import *
@@ -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
- # Vellum Base Nodes
29
+ "TryNode",
30
+ # Displayable Base Nodes
30
31
  "BaseSearchNode",
31
32
  "BaseInlinePromptNode",
32
33
  "BasePromptDeploymentNode",
33
- # Vellum Nodes
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's UUID or its name.
35
- query: str - The query to search for.
36
- options: Optional[SearchRequestOptionsRequest] = None - The request options to use for the search
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
- A SearchNode that outputs the text of the search results concatenated as a single string.
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's UUID or its name.
12
- query: str - The query to search for.
13
- options: Optional[SearchRequestOptionsRequest] = None - The request options to use for the search
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" - Used to separate the text of each search result.
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.9.16rc4
3
+ Version: 0.10.1
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
@@ -8,6 +8,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
9
  vellum_cli/tests/test_pull.py,sha256=osrjSMVs61rsfw6Ui7ZnzxSX4-VI64vKOQS7BY8zfIo,5126
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
@@ -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=PZ4J7MZukfLcjGfaWHPZBIcPaLdfqNhvW5a7iFKd1-4,4833
60
- vellum_ee/workflows/display/vellum.py,sha256=1-9WyUzkZM46In1wkPHP3wssqFUrRXuWCnV922bBW1M,8543
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=m0Vfy02ACEtGf7LlRkVWFCAVF19SDF47PWJrCKIDsgo,34220
66
- vellum/client/README.md,sha256=AnoYNaY6V9DMWIPs3Ntr1ljX5i8INGSmxMwDOWc83fs,5986
67
- vellum/client/__init__.py,sha256=GtF36JNWxnFRV348M0-YcGd9N6ES-l0Q5b32rwHCR5E,115031
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=NtV_hNY-B4o5zusMKm-k1hGGkREthVEruxrnaFbHBs8,1890
71
+ vellum/client/core/client_wrapper.py,sha256=KTpqKvCVAPkVRUzzAODEnMHWvg_Pq-qDtpBSZW5qBxU,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=6tqe3AwLJGLW38iua0Tje0n3uz3a4vkqMFxbUJGRs98,1346
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=sG_Qyc9ks1oFHsBoIJgBnZId-__W5-3T_i8A9elHUzI,34520
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=dtXQWS0qC8jaV8LdpZ88Ss-JISXI5lLp7UGRUkFXKMY,22667
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=bkZN7uoG71R0R34OWEp-fjl4XQUiHkUQsp-TIFco_dQ,51700
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=H9SU1F7xBNMj25SsYfMtny3n-9-9I_J6D_JTaX04d_U,1160
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=NLOenrFF99WIXWYZTmazjOG3hJeqz8eV0Y2v0BCY_EQ,410
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=3nAynaNB70rV3m2zpxv2WbS8Gx_cmi8MrpsKgRmxJpI,3396
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=DvPyhkuyy3D36OcZm_ZUw4Kc0f_kVQNHG2H0myfQQTE,1067
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=HJwRN-1dd-mucaE7uEwp6FM8whSpziHyiSYOTCCi09E,629
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.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,,
1346
+ vellum_ai-0.10.1.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
1347
+ vellum_ai-0.10.1.dist-info/METADATA,sha256=O42wdOBlrjLWVYPaen5pKq9eyquqvkNWdl1-m3TjrI4,5011
1348
+ vellum_ai-0.10.1.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
1349
+ vellum_ai-0.10.1.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
1350
+ vellum_ai-0.10.1.dist-info/RECORD,,
vellum_ee/py.typed ADDED
File without changes
@@ -4,11 +4,20 @@ import typing
4
4
  from typing import Any, List, Union, cast
5
5
 
6
6
  from vellum import ChatMessage, SearchResult, SearchResultRequest, VellumVariableType
7
-
7
+ from vellum.workflows.descriptors.base import BaseDescriptor
8
+ from vellum.workflows.references import OutputReference, WorkflowInputReference
9
+ from vellum.workflows.references.execution_count import ExecutionCountReference
10
+ from vellum.workflows.references.node import NodeReference
11
+ from vellum.workflows.references.vellum_secret import VellumSecretReference
12
+ from vellum.workflows.types.core import VellumValuePrimitive
13
+ from vellum.workflows.utils.vellum_variables import primitive_type_to_vellum_variable_type
14
+ from vellum.workflows.vellum_client import create_vellum_client
8
15
  from vellum_ee.workflows.display.types import WorkflowDisplayContext
9
16
  from vellum_ee.workflows.display.vellum import (
10
17
  ChatHistoryVellumValue,
11
18
  ConstantValuePointer,
19
+ ExecutionCounterData,
20
+ ExecutionCounterPointer,
12
21
  InputVariableData,
13
22
  InputVariablePointer,
14
23
  JsonVellumValue,
@@ -22,13 +31,6 @@ from vellum_ee.workflows.display.vellum import (
22
31
  WorkspaceSecretData,
23
32
  WorkspaceSecretPointer,
24
33
  )
25
- from vellum.workflows.descriptors.base import BaseDescriptor
26
- from vellum.workflows.references import OutputReference, WorkflowInputReference
27
- from vellum.workflows.references.node import NodeReference
28
- from vellum.workflows.references.vellum_secret import VellumSecretReference
29
- from vellum.workflows.types.core import VellumValuePrimitive
30
- from vellum.workflows.utils.vellum_variables import primitive_type_to_vellum_variable_type
31
- from vellum.workflows.vellum_client import create_vellum_client
32
34
 
33
35
  _T = typing.TypeVar("_T")
34
36
 
@@ -61,13 +63,12 @@ def create_node_input_value_pointer_rule(
61
63
  upstream_node, output_display = display_context.node_output_displays[value]
62
64
  upstream_node_display = display_context.node_displays[upstream_node]
63
65
  return NodeOutputPointer(
64
- type="NODE_OUTPUT",
65
66
  data=NodeOutputData(node_id=str(upstream_node_display.node_id), output_id=str(output_display.id)),
66
67
  )
67
68
  if isinstance(value, WorkflowInputReference):
68
69
  workflow_input_display = display_context.workflow_input_displays[value]
69
70
  return InputVariablePointer(
70
- type="INPUT_VARIABLE", data=InputVariableData(input_variable_id=str(workflow_input_display.id))
71
+ data=InputVariableData(input_variable_id=str(workflow_input_display.id))
71
72
  )
72
73
  if isinstance(value, VellumSecretReference):
73
74
  # TODO: Pass through the name instead of retrieving the ID
@@ -77,12 +78,16 @@ def create_node_input_value_pointer_rule(
77
78
  id=value.name,
78
79
  )
79
80
  return WorkspaceSecretPointer(
80
- type="WORKSPACE_SECRET",
81
81
  data=WorkspaceSecretData(
82
82
  type="STRING",
83
83
  workspace_secret_id=str(workspace_secret.id),
84
84
  ),
85
85
  )
86
+ if isinstance(value, ExecutionCountReference):
87
+ node_class_display = display_context.node_displays[value.node_class]
88
+ return ExecutionCounterPointer(
89
+ data=ExecutionCounterData(node_id=str(node_class_display.node_id)),
90
+ )
86
91
 
87
92
  if not isinstance(value, BaseDescriptor):
88
93
  vellum_value = primitive_to_vellum_value(value)
@@ -7,7 +7,6 @@ from pydantic import Field
7
7
 
8
8
  from vellum import ChatMessage, PromptParameters, SearchResult, SearchResultRequest, VellumVariable, VellumVariableType
9
9
  from vellum.core import UniversalBaseModel
10
-
11
10
  from vellum_ee.workflows.display.base import (
12
11
  EdgeDisplay,
13
12
  EdgeDisplayOverrides,
@@ -211,11 +210,21 @@ class WorkspaceSecretPointer(UniversalBaseModel):
211
210
  data: WorkspaceSecretData
212
211
 
213
212
 
213
+ class ExecutionCounterData(UniversalBaseModel):
214
+ node_id: str
215
+
216
+
217
+ class ExecutionCounterPointer(UniversalBaseModel):
218
+ type: Literal["EXECUTION_COUNTER"] = "EXECUTION_COUNTER"
219
+ data: ExecutionCounterData
220
+
221
+
214
222
  NodeInputValuePointerRule = Union[
215
223
  NodeOutputPointer,
216
224
  InputVariablePointer,
217
225
  ConstantValuePointer,
218
226
  WorkspaceSecretPointer,
227
+ ExecutionCounterPointer,
219
228
  ]
220
229
 
221
230