vellum-ai 0.8.23__py3-none-any.whl → 0.8.25__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
vellum/__init__.py CHANGED
@@ -99,6 +99,17 @@ from .types import (
99
99
  ExternalTestCaseExecution,
100
100
  ExternalTestCaseExecutionRequest,
101
101
  FinishReasonEnum,
102
+ FolderEntity,
103
+ FolderEntityDocumentIndex,
104
+ FolderEntityDocumentIndexData,
105
+ FolderEntityFolder,
106
+ FolderEntityFolderData,
107
+ FolderEntityPromptSandbox,
108
+ FolderEntityPromptSandboxData,
109
+ FolderEntityTestSuite,
110
+ FolderEntityTestSuiteData,
111
+ FolderEntityWorkflowSandbox,
112
+ FolderEntityWorkflowSandboxData,
102
113
  FulfilledAdHocExecutePromptEvent,
103
114
  FulfilledEnum,
104
115
  FulfilledExecutePromptEvent,
@@ -225,6 +236,7 @@ from .types import (
225
236
  OpenAiVectorizerTextEmbeddingAda002,
226
237
  OpenAiVectorizerTextEmbeddingAda002Request,
227
238
  PaginatedDocumentIndexReadList,
239
+ PaginatedFolderEntityList,
228
240
  PaginatedSlimDeploymentReadList,
229
241
  PaginatedSlimDocumentList,
230
242
  PaginatedSlimWorkflowDeploymentList,
@@ -457,6 +469,7 @@ from .errors import BadRequestError, ForbiddenError, InternalServerError, NotFou
457
469
  from .resources import (
458
470
  DeploymentsListRequestStatus,
459
471
  DocumentIndexesListRequestStatus,
472
+ FolderEntitiesListRequestEntityStatus,
460
473
  WorkflowDeploymentsListRequestStatus,
461
474
  ad_hoc,
462
475
  deployments,
@@ -577,6 +590,18 @@ __all__ = [
577
590
  "ExternalTestCaseExecution",
578
591
  "ExternalTestCaseExecutionRequest",
579
592
  "FinishReasonEnum",
593
+ "FolderEntitiesListRequestEntityStatus",
594
+ "FolderEntity",
595
+ "FolderEntityDocumentIndex",
596
+ "FolderEntityDocumentIndexData",
597
+ "FolderEntityFolder",
598
+ "FolderEntityFolderData",
599
+ "FolderEntityPromptSandbox",
600
+ "FolderEntityPromptSandboxData",
601
+ "FolderEntityTestSuite",
602
+ "FolderEntityTestSuiteData",
603
+ "FolderEntityWorkflowSandbox",
604
+ "FolderEntityWorkflowSandboxData",
580
605
  "ForbiddenError",
581
606
  "FulfilledAdHocExecutePromptEvent",
582
607
  "FulfilledEnum",
@@ -706,6 +731,7 @@ __all__ = [
706
731
  "OpenAiVectorizerTextEmbeddingAda002",
707
732
  "OpenAiVectorizerTextEmbeddingAda002Request",
708
733
  "PaginatedDocumentIndexReadList",
734
+ "PaginatedFolderEntityList",
709
735
  "PaginatedSlimDeploymentReadList",
710
736
  "PaginatedSlimDocumentList",
711
737
  "PaginatedSlimWorkflowDeploymentList",
@@ -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.8.23",
20
+ "X-Fern-SDK-Version": "0.8.25",
21
21
  }
22
22
  headers["X_API_KEY"] = self.api_key
23
23
  return headers
@@ -4,9 +4,10 @@ import logging
4
4
  import time
5
5
  from functools import cached_property
6
6
  from typing import Callable, Generator, List, cast, Iterable
7
+ from uuid import UUID
7
8
 
8
9
  from vellum import TestSuiteRunRead, TestSuiteRunMetricNumberOutput
9
- from vellum.client import Vellum
10
+ from vellum.client import Vellum, OMIT
10
11
  from vellum.lib.test_suites.constants import (
11
12
  DEFAULT_MAX_POLLING_DURATION_MS,
12
13
  DEFAULT_POLLING_INTERVAL_MS,
@@ -14,6 +15,8 @@ from vellum.lib.test_suites.constants import (
14
15
  from vellum.lib.test_suites.exceptions import TestSuiteRunResultsException
15
16
  from vellum.lib.utils.env import get_api_key
16
17
  from vellum.lib.utils.paginator import PaginatedResults, get_all_results
18
+ from vellum.lib.utils.typing import cast_not_optional
19
+ from vellum.lib.utils.uuid import is_valid_uuid
17
20
  from vellum.types import (
18
21
  ExternalTestCaseExecutionRequest,
19
22
  NamedTestCaseVariableValueRequest,
@@ -198,7 +201,9 @@ class VellumTestSuiteRunResults:
198
201
  output_values = self.get_numeric_metric_output_values(
199
202
  metric_identifier=metric_identifier, output_identifier=output_identifier
200
203
  )
201
- return sum(cast(Iterable[float], filter(lambda o: isinstance(o, float), output_values))) / len(output_values)
204
+ return sum(
205
+ cast(Iterable[float], filter(lambda o: isinstance(o, float), output_values))
206
+ ) / len(output_values)
202
207
 
203
208
  def get_min_metric_output(
204
209
  self, metric_identifier: str | None = None, output_identifier: str | None = None
@@ -207,7 +212,9 @@ class VellumTestSuiteRunResults:
207
212
  output_values = self.get_numeric_metric_output_values(
208
213
  metric_identifier=metric_identifier, output_identifier=output_identifier
209
214
  )
210
- return min(cast(Iterable[float], filter(lambda o: isinstance(o, float), output_values)))
215
+ return min(
216
+ cast(Iterable[float], filter(lambda o: isinstance(o, float), output_values))
217
+ )
211
218
 
212
219
  def get_max_metric_output(
213
220
  self, metric_identifier: str | None = None, output_identifier: str | None = None
@@ -216,7 +223,9 @@ class VellumTestSuiteRunResults:
216
223
  output_values = self.get_numeric_metric_output_values(
217
224
  metric_identifier=metric_identifier, output_identifier=output_identifier
218
225
  )
219
- return max(cast(Iterable[float], filter(lambda o: isinstance(o, float), output_values)))
226
+ return max(
227
+ cast(Iterable[float], filter(lambda o: isinstance(o, float), output_values))
228
+ )
220
229
 
221
230
  def wait_until_complete(self) -> None:
222
231
  """Wait until the Test Suite Run is no longer in a QUEUED or RUNNING state."""
@@ -282,16 +291,25 @@ class VellumTestSuiteRunResults:
282
291
  class VellumTestSuite:
283
292
  """A utility class that provides methods for running a Vellum Test Suite and interacting with its results."""
284
293
 
294
+ _test_suite_id: str | None
295
+ _test_suite_name: str | None
296
+
285
297
  def __init__(
286
298
  self,
287
- test_suite_id: str,
299
+ test_suite_identifier: str | UUID,
288
300
  *,
289
301
  client: Vellum | None = None,
290
302
  ) -> None:
291
303
  self.client = client or Vellum(
292
304
  api_key=get_api_key(),
293
305
  )
294
- self._test_suite_id = test_suite_id
306
+
307
+ if is_valid_uuid(test_suite_identifier):
308
+ self._test_suite_id = str(test_suite_identifier)
309
+ self._test_suite_name = None
310
+ else:
311
+ self._test_suite_id = None
312
+ self._test_suite_name = str(test_suite_identifier)
295
313
 
296
314
  def run_external(
297
315
  self,
@@ -305,7 +323,7 @@ class VellumTestSuite:
305
323
  Returns a wrapper that polls the generated Test Suite Run until it's done running and returns its results.
306
324
  """
307
325
  test_cases = self.client.test_suites.list_test_suite_test_cases(
308
- id=self._test_suite_id
326
+ id=cast_not_optional(self._test_suite_id or self._test_suite_name)
309
327
  )
310
328
  executions: List[ExternalTestCaseExecutionRequest] = []
311
329
 
@@ -320,7 +338,8 @@ class VellumTestSuite:
320
338
  )
321
339
 
322
340
  test_suite_run = self.client.test_suite_runs.create(
323
- test_suite_id=self._test_suite_id,
341
+ test_suite_id=self._test_suite_id or OMIT,
342
+ test_suite_name=self._test_suite_name or OMIT,
324
343
  exec_config=TestSuiteRunExternalExecConfigRequest(
325
344
  type="EXTERNAL",
326
345
  data=TestSuiteRunExternalExecConfigDataRequest(
@@ -0,0 +1,10 @@
1
+ from typing import TypeVar, Optional
2
+
3
+ _T = TypeVar("_T")
4
+
5
+
6
+ def cast_not_optional(optional: Optional[_T]) -> _T:
7
+ """Convert an optional to its value for type checking purposes. Raises an AssertionError if passed None."""
8
+ if optional is None:
9
+ raise AssertionError("Not optional check failed")
10
+ return optional
@@ -0,0 +1,10 @@
1
+ from typing import Union
2
+ import uuid
3
+
4
+
5
+ def is_valid_uuid(val: Union[str, uuid.UUID, None]) -> bool:
6
+ try:
7
+ uuid.UUID(str(val))
8
+ return True
9
+ except (ValueError, TypeError):
10
+ return False
@@ -15,11 +15,13 @@ from . import (
15
15
  )
16
16
  from .deployments import DeploymentsListRequestStatus
17
17
  from .document_indexes import DocumentIndexesListRequestStatus
18
+ from .folder_entities import FolderEntitiesListRequestEntityStatus
18
19
  from .workflow_deployments import WorkflowDeploymentsListRequestStatus
19
20
 
20
21
  __all__ = [
21
22
  "DeploymentsListRequestStatus",
22
23
  "DocumentIndexesListRequestStatus",
24
+ "FolderEntitiesListRequestEntityStatus",
23
25
  "WorkflowDeploymentsListRequestStatus",
24
26
  "ad_hoc",
25
27
  "deployments",
@@ -1,2 +1,5 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
+ from .types import FolderEntitiesListRequestEntityStatus
4
+
5
+ __all__ = ["FolderEntitiesListRequestEntityStatus"]
@@ -2,10 +2,13 @@
2
2
 
3
3
  import typing
4
4
  from ...core.client_wrapper import SyncClientWrapper
5
+ from .types.folder_entities_list_request_entity_status import FolderEntitiesListRequestEntityStatus
5
6
  from ...core.request_options import RequestOptions
6
- from ...core.jsonable_encoder import jsonable_encoder
7
+ from ...types.paginated_folder_entity_list import PaginatedFolderEntityList
8
+ from ...core.pydantic_utilities import parse_obj_as
7
9
  from json.decoder import JSONDecodeError
8
10
  from ...core.api_error import ApiError
11
+ from ...core.jsonable_encoder import jsonable_encoder
9
12
  from ...core.client_wrapper import AsyncClientWrapper
10
13
 
11
14
  # this is used as the default value for optional parameters
@@ -16,6 +19,93 @@ class FolderEntitiesClient:
16
19
  def __init__(self, *, client_wrapper: SyncClientWrapper):
17
20
  self._client_wrapper = client_wrapper
18
21
 
22
+ def list(
23
+ self,
24
+ *,
25
+ parent_folder_id: str,
26
+ entity_status: typing.Optional[FolderEntitiesListRequestEntityStatus] = None,
27
+ limit: typing.Optional[int] = None,
28
+ offset: typing.Optional[int] = None,
29
+ ordering: typing.Optional[str] = None,
30
+ request_options: typing.Optional[RequestOptions] = None,
31
+ ) -> PaginatedFolderEntityList:
32
+ """
33
+ List all folder entities within a specified folder.
34
+
35
+ Parameters
36
+ ----------
37
+ parent_folder_id : str
38
+ Filter down to only those entities whose parent folder has the specified ID.
39
+
40
+ To filter by an entity's parent folder, provide the ID of the parent folder. To filter by the root directory, provide
41
+ a string representing the entity type of the root directory. Supported root directories include:
42
+
43
+ - PROMPT_SANDBOX
44
+ - WORKFLOW_SANDBOX
45
+ - DOCUMENT_INDEX
46
+ - TEST_SUITE
47
+
48
+ entity_status : typing.Optional[FolderEntitiesListRequestEntityStatus]
49
+ Filter down to only those objects whose entities have a status matching the status specified.
50
+
51
+ - `ACTIVE` - Active
52
+ - `ARCHIVED` - Archived
53
+
54
+ limit : typing.Optional[int]
55
+ Number of results to return per page.
56
+
57
+ offset : typing.Optional[int]
58
+ The initial index from which to return the results.
59
+
60
+ ordering : typing.Optional[str]
61
+ Which field to use when ordering the results.
62
+
63
+ request_options : typing.Optional[RequestOptions]
64
+ Request-specific configuration.
65
+
66
+ Returns
67
+ -------
68
+ PaginatedFolderEntityList
69
+
70
+
71
+ Examples
72
+ --------
73
+ from vellum import Vellum
74
+
75
+ client = Vellum(
76
+ api_key="YOUR_API_KEY",
77
+ )
78
+ client.folder_entities.list(
79
+ parent_folder_id="parent_folder_id",
80
+ )
81
+ """
82
+ _response = self._client_wrapper.httpx_client.request(
83
+ "v1/folder-entities",
84
+ base_url=self._client_wrapper.get_environment().default,
85
+ method="GET",
86
+ params={
87
+ "entity_status": entity_status,
88
+ "limit": limit,
89
+ "offset": offset,
90
+ "ordering": ordering,
91
+ "parent_folder_id": parent_folder_id,
92
+ },
93
+ request_options=request_options,
94
+ )
95
+ try:
96
+ if 200 <= _response.status_code < 300:
97
+ return typing.cast(
98
+ PaginatedFolderEntityList,
99
+ parse_obj_as(
100
+ type_=PaginatedFolderEntityList, # type: ignore
101
+ object_=_response.json(),
102
+ ),
103
+ )
104
+ _response_json = _response.json()
105
+ except JSONDecodeError:
106
+ raise ApiError(status_code=_response.status_code, body=_response.text)
107
+ raise ApiError(status_code=_response.status_code, body=_response_json)
108
+
19
109
  def add_entity_to_folder(
20
110
  self, folder_id: str, *, entity_id: str, request_options: typing.Optional[RequestOptions] = None
21
111
  ) -> None:
@@ -27,7 +117,13 @@ class FolderEntitiesClient:
27
117
  Parameters
28
118
  ----------
29
119
  folder_id : str
30
- The ID of the folder to which the entity should be added. This can be a UUID of a folder, or the name of a root directory (e.g. "PROMPT_SANDBOX").
120
+ The ID of the folder to which the entity should be added. This can be a UUID of a folder, or the name of a root
121
+ directory. Supported root directories include:
122
+
123
+ - PROMPT_SANDBOX
124
+ - WORKFLOW_SANDBOX
125
+ - DOCUMENT_INDEX
126
+ - TEST_SUITE
31
127
 
32
128
  entity_id : str
33
129
  The ID of the entity you would like to move.
@@ -74,6 +170,101 @@ class AsyncFolderEntitiesClient:
74
170
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
75
171
  self._client_wrapper = client_wrapper
76
172
 
173
+ async def list(
174
+ self,
175
+ *,
176
+ parent_folder_id: str,
177
+ entity_status: typing.Optional[FolderEntitiesListRequestEntityStatus] = None,
178
+ limit: typing.Optional[int] = None,
179
+ offset: typing.Optional[int] = None,
180
+ ordering: typing.Optional[str] = None,
181
+ request_options: typing.Optional[RequestOptions] = None,
182
+ ) -> PaginatedFolderEntityList:
183
+ """
184
+ List all folder entities within a specified folder.
185
+
186
+ Parameters
187
+ ----------
188
+ parent_folder_id : str
189
+ Filter down to only those entities whose parent folder has the specified ID.
190
+
191
+ To filter by an entity's parent folder, provide the ID of the parent folder. To filter by the root directory, provide
192
+ a string representing the entity type of the root directory. Supported root directories include:
193
+
194
+ - PROMPT_SANDBOX
195
+ - WORKFLOW_SANDBOX
196
+ - DOCUMENT_INDEX
197
+ - TEST_SUITE
198
+
199
+ entity_status : typing.Optional[FolderEntitiesListRequestEntityStatus]
200
+ Filter down to only those objects whose entities have a status matching the status specified.
201
+
202
+ - `ACTIVE` - Active
203
+ - `ARCHIVED` - Archived
204
+
205
+ limit : typing.Optional[int]
206
+ Number of results to return per page.
207
+
208
+ offset : typing.Optional[int]
209
+ The initial index from which to return the results.
210
+
211
+ ordering : typing.Optional[str]
212
+ Which field to use when ordering the results.
213
+
214
+ request_options : typing.Optional[RequestOptions]
215
+ Request-specific configuration.
216
+
217
+ Returns
218
+ -------
219
+ PaginatedFolderEntityList
220
+
221
+
222
+ Examples
223
+ --------
224
+ import asyncio
225
+
226
+ from vellum import AsyncVellum
227
+
228
+ client = AsyncVellum(
229
+ api_key="YOUR_API_KEY",
230
+ )
231
+
232
+
233
+ async def main() -> None:
234
+ await client.folder_entities.list(
235
+ parent_folder_id="parent_folder_id",
236
+ )
237
+
238
+
239
+ asyncio.run(main())
240
+ """
241
+ _response = await self._client_wrapper.httpx_client.request(
242
+ "v1/folder-entities",
243
+ base_url=self._client_wrapper.get_environment().default,
244
+ method="GET",
245
+ params={
246
+ "entity_status": entity_status,
247
+ "limit": limit,
248
+ "offset": offset,
249
+ "ordering": ordering,
250
+ "parent_folder_id": parent_folder_id,
251
+ },
252
+ request_options=request_options,
253
+ )
254
+ try:
255
+ if 200 <= _response.status_code < 300:
256
+ return typing.cast(
257
+ PaginatedFolderEntityList,
258
+ parse_obj_as(
259
+ type_=PaginatedFolderEntityList, # type: ignore
260
+ object_=_response.json(),
261
+ ),
262
+ )
263
+ _response_json = _response.json()
264
+ except JSONDecodeError:
265
+ raise ApiError(status_code=_response.status_code, body=_response.text)
266
+ raise ApiError(status_code=_response.status_code, body=_response_json)
267
+
77
268
  async def add_entity_to_folder(
78
269
  self, folder_id: str, *, entity_id: str, request_options: typing.Optional[RequestOptions] = None
79
270
  ) -> None:
@@ -85,7 +276,13 @@ class AsyncFolderEntitiesClient:
85
276
  Parameters
86
277
  ----------
87
278
  folder_id : str
88
- The ID of the folder to which the entity should be added. This can be a UUID of a folder, or the name of a root directory (e.g. "PROMPT_SANDBOX").
279
+ The ID of the folder to which the entity should be added. This can be a UUID of a folder, or the name of a root
280
+ directory. Supported root directories include:
281
+
282
+ - PROMPT_SANDBOX
283
+ - WORKFLOW_SANDBOX
284
+ - DOCUMENT_INDEX
285
+ - TEST_SUITE
89
286
 
90
287
  entity_id : str
91
288
  The ID of the entity you would like to move.
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from .folder_entities_list_request_entity_status import FolderEntitiesListRequestEntityStatus
4
+
5
+ __all__ = ["FolderEntitiesListRequestEntityStatus"]
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ FolderEntitiesListRequestEntityStatus = typing.Union[typing.Literal["ACTIVE", "ARCHIVED"], typing.Any]
vellum/types/__init__.py CHANGED
@@ -106,6 +106,17 @@ from .execution_vellum_value import ExecutionVellumValue
106
106
  from .external_test_case_execution import ExternalTestCaseExecution
107
107
  from .external_test_case_execution_request import ExternalTestCaseExecutionRequest
108
108
  from .finish_reason_enum import FinishReasonEnum
109
+ from .folder_entity import FolderEntity
110
+ from .folder_entity_document_index import FolderEntityDocumentIndex
111
+ from .folder_entity_document_index_data import FolderEntityDocumentIndexData
112
+ from .folder_entity_folder import FolderEntityFolder
113
+ from .folder_entity_folder_data import FolderEntityFolderData
114
+ from .folder_entity_prompt_sandbox import FolderEntityPromptSandbox
115
+ from .folder_entity_prompt_sandbox_data import FolderEntityPromptSandboxData
116
+ from .folder_entity_test_suite import FolderEntityTestSuite
117
+ from .folder_entity_test_suite_data import FolderEntityTestSuiteData
118
+ from .folder_entity_workflow_sandbox import FolderEntityWorkflowSandbox
119
+ from .folder_entity_workflow_sandbox_data import FolderEntityWorkflowSandboxData
109
120
  from .fulfilled_ad_hoc_execute_prompt_event import FulfilledAdHocExecutePromptEvent
110
121
  from .fulfilled_enum import FulfilledEnum
111
122
  from .fulfilled_execute_prompt_event import FulfilledExecutePromptEvent
@@ -236,6 +247,7 @@ from .open_ai_vectorizer_text_embedding_3_small_request import OpenAiVectorizerT
236
247
  from .open_ai_vectorizer_text_embedding_ada_002 import OpenAiVectorizerTextEmbeddingAda002
237
248
  from .open_ai_vectorizer_text_embedding_ada_002_request import OpenAiVectorizerTextEmbeddingAda002Request
238
249
  from .paginated_document_index_read_list import PaginatedDocumentIndexReadList
250
+ from .paginated_folder_entity_list import PaginatedFolderEntityList
239
251
  from .paginated_slim_deployment_read_list import PaginatedSlimDeploymentReadList
240
252
  from .paginated_slim_document_list import PaginatedSlimDocumentList
241
253
  from .paginated_slim_workflow_deployment_list import PaginatedSlimWorkflowDeploymentList
@@ -567,6 +579,17 @@ __all__ = [
567
579
  "ExternalTestCaseExecution",
568
580
  "ExternalTestCaseExecutionRequest",
569
581
  "FinishReasonEnum",
582
+ "FolderEntity",
583
+ "FolderEntityDocumentIndex",
584
+ "FolderEntityDocumentIndexData",
585
+ "FolderEntityFolder",
586
+ "FolderEntityFolderData",
587
+ "FolderEntityPromptSandbox",
588
+ "FolderEntityPromptSandboxData",
589
+ "FolderEntityTestSuite",
590
+ "FolderEntityTestSuiteData",
591
+ "FolderEntityWorkflowSandbox",
592
+ "FolderEntityWorkflowSandboxData",
570
593
  "FulfilledAdHocExecutePromptEvent",
571
594
  "FulfilledEnum",
572
595
  "FulfilledExecutePromptEvent",
@@ -693,6 +716,7 @@ __all__ = [
693
716
  "OpenAiVectorizerTextEmbeddingAda002",
694
717
  "OpenAiVectorizerTextEmbeddingAda002Request",
695
718
  "PaginatedDocumentIndexReadList",
719
+ "PaginatedFolderEntityList",
696
720
  "PaginatedSlimDeploymentReadList",
697
721
  "PaginatedSlimDocumentList",
698
722
  "PaginatedSlimWorkflowDeploymentList",
@@ -0,0 +1,16 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+ from .folder_entity_folder import FolderEntityFolder
5
+ from .folder_entity_prompt_sandbox import FolderEntityPromptSandbox
6
+ from .folder_entity_workflow_sandbox import FolderEntityWorkflowSandbox
7
+ from .folder_entity_document_index import FolderEntityDocumentIndex
8
+ from .folder_entity_test_suite import FolderEntityTestSuite
9
+
10
+ FolderEntity = typing.Union[
11
+ FolderEntityFolder,
12
+ FolderEntityPromptSandbox,
13
+ FolderEntityWorkflowSandbox,
14
+ FolderEntityDocumentIndex,
15
+ FolderEntityTestSuite,
16
+ ]
@@ -0,0 +1,26 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import typing
5
+ from .folder_entity_document_index_data import FolderEntityDocumentIndexData
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ import pydantic
8
+
9
+
10
+ class FolderEntityDocumentIndex(UniversalBaseModel):
11
+ """
12
+ A slim representation of a Document Index, as it exists within a Folder.
13
+ """
14
+
15
+ id: str
16
+ type: typing.Literal["DOCUMENT_INDEX"] = "DOCUMENT_INDEX"
17
+ data: FolderEntityDocumentIndexData
18
+
19
+ if IS_PYDANTIC_V2:
20
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
21
+ else:
22
+
23
+ class Config:
24
+ frozen = True
25
+ smart_union = True
26
+ extra = pydantic.Extra.allow
@@ -0,0 +1,25 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import datetime as dt
5
+ from .entity_status import EntityStatus
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ import typing
8
+ import pydantic
9
+
10
+
11
+ class FolderEntityDocumentIndexData(UniversalBaseModel):
12
+ id: str
13
+ label: str
14
+ created: dt.datetime
15
+ modified: dt.datetime
16
+ status: EntityStatus
17
+
18
+ if IS_PYDANTIC_V2:
19
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
20
+ else:
21
+
22
+ class Config:
23
+ frozen = True
24
+ smart_union = True
25
+ extra = pydantic.Extra.allow
@@ -0,0 +1,26 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import typing
5
+ from .folder_entity_folder_data import FolderEntityFolderData
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ import pydantic
8
+
9
+
10
+ class FolderEntityFolder(UniversalBaseModel):
11
+ """
12
+ A slim representation of a Folder, as it exists within another Folder.
13
+ """
14
+
15
+ id: str
16
+ type: typing.Literal["FOLDER"] = "FOLDER"
17
+ data: FolderEntityFolderData
18
+
19
+ if IS_PYDANTIC_V2:
20
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
21
+ else:
22
+
23
+ class Config:
24
+ frozen = True
25
+ smart_union = True
26
+ extra = pydantic.Extra.allow
@@ -0,0 +1,24 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import datetime as dt
5
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
6
+ import typing
7
+ import pydantic
8
+
9
+
10
+ class FolderEntityFolderData(UniversalBaseModel):
11
+ id: str
12
+ label: str
13
+ created: dt.datetime
14
+ modified: dt.datetime
15
+ has_contents: bool
16
+
17
+ if IS_PYDANTIC_V2:
18
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
19
+ else:
20
+
21
+ class Config:
22
+ frozen = True
23
+ smart_union = True
24
+ extra = pydantic.Extra.allow
@@ -0,0 +1,26 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import typing
5
+ from .folder_entity_prompt_sandbox_data import FolderEntityPromptSandboxData
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ import pydantic
8
+
9
+
10
+ class FolderEntityPromptSandbox(UniversalBaseModel):
11
+ """
12
+ A slim representation of a Prompt Sandbox, as it exists within a Folder.
13
+ """
14
+
15
+ id: str
16
+ type: typing.Literal["PROMPT_SANDBOX"] = "PROMPT_SANDBOX"
17
+ data: FolderEntityPromptSandboxData
18
+
19
+ if IS_PYDANTIC_V2:
20
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
21
+ else:
22
+
23
+ class Config:
24
+ frozen = True
25
+ smart_union = True
26
+ extra = pydantic.Extra.allow
@@ -0,0 +1,26 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import datetime as dt
5
+ from .entity_status import EntityStatus
6
+ import typing
7
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
8
+ import pydantic
9
+
10
+
11
+ class FolderEntityPromptSandboxData(UniversalBaseModel):
12
+ id: str
13
+ label: str
14
+ created: dt.datetime
15
+ modified: dt.datetime
16
+ status: EntityStatus
17
+ last_deployed_on: typing.Optional[dt.datetime] = None
18
+
19
+ if IS_PYDANTIC_V2:
20
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
21
+ else:
22
+
23
+ class Config:
24
+ frozen = True
25
+ smart_union = True
26
+ extra = pydantic.Extra.allow
@@ -0,0 +1,26 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import typing
5
+ from .folder_entity_test_suite_data import FolderEntityTestSuiteData
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ import pydantic
8
+
9
+
10
+ class FolderEntityTestSuite(UniversalBaseModel):
11
+ """
12
+ A slim representation of a Test Suite, as it exists within a Folder.
13
+ """
14
+
15
+ id: str
16
+ type: typing.Literal["TEST_SUITE"] = "TEST_SUITE"
17
+ data: FolderEntityTestSuiteData
18
+
19
+ if IS_PYDANTIC_V2:
20
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
21
+ else:
22
+
23
+ class Config:
24
+ frozen = True
25
+ smart_union = True
26
+ extra = pydantic.Extra.allow
@@ -0,0 +1,25 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import datetime as dt
5
+ from .entity_status import EntityStatus
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ import typing
8
+ import pydantic
9
+
10
+
11
+ class FolderEntityTestSuiteData(UniversalBaseModel):
12
+ id: str
13
+ label: str
14
+ created: dt.datetime
15
+ modified: dt.datetime
16
+ status: EntityStatus
17
+
18
+ if IS_PYDANTIC_V2:
19
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
20
+ else:
21
+
22
+ class Config:
23
+ frozen = True
24
+ smart_union = True
25
+ extra = pydantic.Extra.allow
@@ -0,0 +1,26 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import typing
5
+ from .folder_entity_workflow_sandbox_data import FolderEntityWorkflowSandboxData
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ import pydantic
8
+
9
+
10
+ class FolderEntityWorkflowSandbox(UniversalBaseModel):
11
+ """
12
+ A slim representation of a Workflow Sandbox, as it exists within a Folder.
13
+ """
14
+
15
+ id: str
16
+ type: typing.Literal["WORKFLOW_SANDBOX"] = "WORKFLOW_SANDBOX"
17
+ data: FolderEntityWorkflowSandboxData
18
+
19
+ if IS_PYDANTIC_V2:
20
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
21
+ else:
22
+
23
+ class Config:
24
+ frozen = True
25
+ smart_union = True
26
+ extra = pydantic.Extra.allow
@@ -0,0 +1,26 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import datetime as dt
5
+ from .entity_status import EntityStatus
6
+ import typing
7
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
8
+ import pydantic
9
+
10
+
11
+ class FolderEntityWorkflowSandboxData(UniversalBaseModel):
12
+ id: str
13
+ label: str
14
+ created: dt.datetime
15
+ modified: dt.datetime
16
+ status: EntityStatus
17
+ last_deployed_on: typing.Optional[dt.datetime] = None
18
+
19
+ if IS_PYDANTIC_V2:
20
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
21
+ else:
22
+
23
+ class Config:
24
+ frozen = True
25
+ smart_union = True
26
+ extra = pydantic.Extra.allow
@@ -0,0 +1,23 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import typing
5
+ from .folder_entity import FolderEntity
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ import pydantic
8
+
9
+
10
+ class PaginatedFolderEntityList(UniversalBaseModel):
11
+ count: typing.Optional[int] = None
12
+ next: typing.Optional[str] = None
13
+ previous: typing.Optional[str] = None
14
+ results: typing.Optional[typing.List[FolderEntity]] = None
15
+
16
+ if IS_PYDANTIC_V2:
17
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
18
+ else:
19
+
20
+ class Config:
21
+ frozen = True
22
+ smart_union = True
23
+ extra = pydantic.Extra.allow
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vellum-ai
3
- Version: 0.8.23
3
+ Version: 0.8.25
4
4
  Summary:
5
5
  License: MIT
6
6
  Requires-Python: >=3.8,<4.0
@@ -1,8 +1,8 @@
1
- vellum/__init__.py,sha256=XD7isCfj2AEsRXQ7I_R3dfvqSFpcz3vM_B_3EK_icfk,32600
1
+ vellum/__init__.py,sha256=Xwhije2oWv8vv2_FipbeWUctQ9KqoAik8PONMipyxus,33434
2
2
  vellum/client.py,sha256=cMrzyQ7GUnByOLvgoe9lCf569uk5e17I4TIgA74awKg,114255
3
3
  vellum/core/__init__.py,sha256=SQ85PF84B9MuKnBwHNHWemSGuy-g_515gFYNFhvEE0I,1438
4
4
  vellum/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
5
- vellum/core/client_wrapper.py,sha256=hKafZmB1w1XfuU7lZreKQfuedsRD-_CnQKgB-TC2MEY,1890
5
+ vellum/core/client_wrapper.py,sha256=Kx9aa371E_mOTEMMnK0-ZBcwrYjDsnV-olT344DkZTk,1890
6
6
  vellum/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
7
7
  vellum/core/file.py,sha256=X9IbmkZmB2bB_DpmZAO3crWdXagOakAyn6UCOCImCPg,2322
8
8
  vellum/core/http_client.py,sha256=R0pQpCppnEtxccGvXl4uJ76s7ro_65Fo_erlNNLp_AI,19228
@@ -22,13 +22,15 @@ vellum/lib/__init__.py,sha256=KTSY0V59WEOr5uNyAei1dDfaAatyXw_Aca5kNjo5mY0,79
22
22
  vellum/lib/test_suites/__init__.py,sha256=hNsLoHSykqXDJP-MwFvu2lExImxo9KEyEJjt_fdAzpE,77
23
23
  vellum/lib/test_suites/constants.py,sha256=Vteml4_csZsMgo_q3-71E3JRCAoN6308TXLu5nfLhmU,116
24
24
  vellum/lib/test_suites/exceptions.py,sha256=6Xacoyv43fJvVf6Dt6Io5a-f9vF12Tx51jzsQRNSqhY,56
25
- vellum/lib/test_suites/resources.py,sha256=86LEUe_JsPnjfEjJHcy1i3Hw2PduC6dHy8zJ8JzT1uw,12526
25
+ vellum/lib/test_suites/resources.py,sha256=cn0FqsULHNo84cGhS1-7tvV7-bz77UgFd6Sfxl63Cdo,13137
26
26
  vellum/lib/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
27
  vellum/lib/utils/env.py,sha256=ySl859lYBfls8hmlaU_RFdquHa_A_7SzaC6KEdFqh1Y,298
28
28
  vellum/lib/utils/exceptions.py,sha256=dXMAkzqbHV_AP5FjjbegPlfUE0zQDlpA3qOsoOJUxfg,49
29
29
  vellum/lib/utils/paginator.py,sha256=yDvgehocYBDclLt5SewZH4hCIyq0yLHdBzkyPCoYPjs,698
30
+ vellum/lib/utils/typing.py,sha256=qngWnFwrWLUeu1nmixXGj173mwg7BXKTAyQkxK8AtfQ,327
31
+ vellum/lib/utils/uuid.py,sha256=nedyhTNQDS2YvrU5gL3PtvG9cgGH87yKOcpGDJAe44E,214
30
32
  vellum/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
- vellum/resources/__init__.py,sha256=rrkswsofiS3xbyO4ufcrbY2qrQ_tlQ-Kdby2UiWfGyw,856
33
+ vellum/resources/__init__.py,sha256=202WddnB8daP4pLM4aQEkqvWaqRUBxEN2e5Ju__FyqM,968
32
34
  vellum/resources/ad_hoc/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
33
35
  vellum/resources/ad_hoc/client.py,sha256=TP5Mr94keCqcIi3_1zGEApyPJhvax7NHUb1396X4ypQ,16342
34
36
  vellum/resources/deployments/__init__.py,sha256=AE0TcFwLrLBljM0ZDX-pPw4Kqt-1f5JDpIok2HS80QI,157
@@ -41,8 +43,10 @@ vellum/resources/document_indexes/types/__init__.py,sha256=IoFqKHN_VBdEhC7VL8_6J
41
43
  vellum/resources/document_indexes/types/document_indexes_list_request_status.py,sha256=sfUEB0cvOSmlE2iITqnMVyHv05Zy2fWP4QjCIYqMg0M,178
42
44
  vellum/resources/documents/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
43
45
  vellum/resources/documents/client.py,sha256=TRptBN1FG4wyTYOq0TpmkXlQL63Owbvsa539E1VXs6s,27574
44
- vellum/resources/folder_entities/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
45
- vellum/resources/folder_entities/client.py,sha256=yxkHRAx8frCk-WvgcRD-WzMhA2kxvY_j42S436-j4EQ,4440
46
+ vellum/resources/folder_entities/__init__.py,sha256=QOp7UMMB3a32GrfVaud35ECn4fqPBKXxCyClsDgd6GE,175
47
+ vellum/resources/folder_entities/client.py,sha256=ep5dnfJmEuEyrOSUftEVwKaeXrg1DENEDjO4_nw9yq0,11114
48
+ vellum/resources/folder_entities/types/__init__.py,sha256=cHabrupjC-HL3kj-UZ9WdVzqHoQHCu6QsLFB3wlOs7k,212
49
+ vellum/resources/folder_entities/types/folder_entities_list_request_entity_status.py,sha256=nK9b9fRSeCfjn2V2Hifl1IbhFeVsNkoeXJ8rCAPADFg,183
46
50
  vellum/resources/metric_definitions/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
47
51
  vellum/resources/metric_definitions/client.py,sha256=Q0hrwTmjaUUVYPKM7wqRdWMzQwZszn5i_ons5mAsIXY,6009
48
52
  vellum/resources/sandboxes/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
@@ -68,7 +72,7 @@ vellum/terraform/ml_model/__init__.py,sha256=I8h1Ru-Rb-Hi_HusK6G7nJQZEKQGsAAHMmw
68
72
  vellum/terraform/provider/__init__.py,sha256=-06xKmAmknpohVzw5TD-t1bnUHta8OrQYqvMd04XM-U,12684
69
73
  vellum/terraform/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
70
74
  vellum/terraform/versions.json,sha256=45c7jjRD5i4w9DJQHs5ZqLLVXRnQwP9Rirq3mWY-xEo,56
71
- vellum/types/__init__.py,sha256=Kvyi2Q6clu5iFTXl8cMuYz5Za41tX3flFXfAZiaYz9M,49854
75
+ vellum/types/__init__.py,sha256=0OFQSJe437PosE8l2TDQo1nrA1p5HQkx13Fq2wT1Rg4,51034
72
76
  vellum/types/ad_hoc_execute_prompt_event.py,sha256=bCjujA2XsOgyF3bRZbcEqV2rOIymRgsLoIRtZpB14xg,607
73
77
  vellum/types/ad_hoc_expand_meta_request.py,sha256=hS8PC3hC--OKvRKi2ZFj_RJPQ1bxo2GXno8qJq1kk28,1338
74
78
  vellum/types/ad_hoc_fulfilled_prompt_execution_meta.py,sha256=Bfvf1d_dkmshxRACVM5vcxbH_7AQY23RmrrnPc0ytYY,939
@@ -167,6 +171,17 @@ vellum/types/execution_vellum_value.py,sha256=PpbrbJdSioqaqT2gZ6mx2Ht0Oy8XGyxBDc
167
171
  vellum/types/external_test_case_execution.py,sha256=CzO7IM3uINXQfOHWjEVvRqwRcp5_JWWtyXVxMQGHl_c,1063
168
172
  vellum/types/external_test_case_execution_request.py,sha256=5nZWMZnDPqQSmmcnIM5Cz6VxA6YQrcfmdWw7d2Da3cY,1128
169
173
  vellum/types/finish_reason_enum.py,sha256=KoNjzvXMHDCT0AUhhwGoZ1_7bi4h3fZEFvvHyGyoTP8,169
174
+ vellum/types/folder_entity.py,sha256=v8zNprIbxktOzmncbNXTOJlLTBV5bZqD1Z_AGGHG1_8,578
175
+ vellum/types/folder_entity_document_index.py,sha256=-Tg2qnzGhp2FLnvGrgoVr0ZBEKFmm2TjgYvlII8tkog,839
176
+ vellum/types/folder_entity_document_index_data.py,sha256=UceusLf7dLYDHq4ZlKdP5Wx_ytL5oadOPMtut9AKkrQ,723
177
+ vellum/types/folder_entity_folder.py,sha256=1GWfyHdenyAI2GXiouIbnFhPK4ADqZGFh-6fpp_C6-U,792
178
+ vellum/types/folder_entity_folder_data.py,sha256=JLYkhvRY63-ojNY84lfRTaUg25KjslSE-iNAC2NYCTI,674
179
+ vellum/types/folder_entity_prompt_sandbox.py,sha256=7CGVcK5maoqO7CC7sFfi6F5X0QWdHVbEygqLyci_VDY,839
180
+ vellum/types/folder_entity_prompt_sandbox_data.py,sha256=4u-t-p2-h7Z1SacNOQnEnY3tt-au5WB0hIDrB1HOeKk,781
181
+ vellum/types/folder_entity_test_suite.py,sha256=M5sb7ntUX2VsCyD0AYnz7dalt7G1ejOYQZvsUU33q2w,811
182
+ vellum/types/folder_entity_test_suite_data.py,sha256=RGITy3Pip6NeIb77YGavDWgRr8GLFDB9sXrTU_Dm2OI,719
183
+ vellum/types/folder_entity_workflow_sandbox.py,sha256=gFmkwKZGh5O9-9y4w6VGK1IRsKLf7NZ4SCC-pgucm8M,853
184
+ vellum/types/folder_entity_workflow_sandbox_data.py,sha256=MW0nLAvetgnsm6KWiGcYcKB9llR-UfosSNz0MtokN38,783
170
185
  vellum/types/fulfilled_ad_hoc_execute_prompt_event.py,sha256=19rFjVrzobaaAQhZlP_WGV9f_Rwrz4EPRXbT2aYkaJw,1016
171
186
  vellum/types/fulfilled_enum.py,sha256=MenrGneRMBvsq-n8tkMXAx0wppGWLJgkqdKnfklGP9U,124
172
187
  vellum/types/fulfilled_execute_prompt_event.py,sha256=E-iBwlMWvwQyRfzqPlgtX8KurE3IYsTRd5vWjXtbOmk,994
@@ -293,6 +308,7 @@ vellum/types/open_ai_vectorizer_text_embedding_3_small_request.py,sha256=-lwNeWj
293
308
  vellum/types/open_ai_vectorizer_text_embedding_ada_002.py,sha256=c4vNlR6lRvUjq-67M06sroDMNMG_qC4JUBqwmKEJQ2I,812
294
309
  vellum/types/open_ai_vectorizer_text_embedding_ada_002_request.py,sha256=FdpkkNBGgRwfqFjBwpfH4t2zKIM0pIYminX2iZQUzvY,841
295
310
  vellum/types/paginated_document_index_read_list.py,sha256=bO7pm3KCZi5LDO17YXgr_lUF9SRdAfMu6wOutX91ANw,797
311
+ vellum/types/paginated_folder_entity_list.py,sha256=PElkrxMrnEjL9YGXde_r7RpNQUjzYfaLDlnwO8WFDSo,776
296
312
  vellum/types/paginated_slim_deployment_read_list.py,sha256=H8VKHr-aZP4ACwQJSs7KOrbqaj2nmMmyyvZHe7NRWRc,1048
297
313
  vellum/types/paginated_slim_document_list.py,sha256=8f7L0ZqD9hBU4XTGTdltl0ORuyy2gryPU5UxlmPabq4,776
298
314
  vellum/types/paginated_slim_workflow_deployment_list.py,sha256=b0SGPewaOK5VlvlxymI6BELdqC9W0m823IZK-SaOiIw,1072
@@ -521,7 +537,7 @@ vellum/types/workflow_result_event_output_data_search_results.py,sha256=U34IK7Zv
521
537
  vellum/types/workflow_result_event_output_data_string.py,sha256=tM3kgh6tEhD0dFEb_7UU0-UspeN4pUdINCcCrD64W74,1228
522
538
  vellum/types/workflow_stream_event.py,sha256=Wn3Yzuy9MqWAeo8tEaXDTKDEbJoA8DdYdMVq8EKuhu8,361
523
539
  vellum/version.py,sha256=jq-1PlAYxN9AXuaZqbYk9ak27SgE2lw9Ia5gx1b1gVI,76
524
- vellum_ai-0.8.23.dist-info/LICENSE,sha256=CcaljEIoOBaU-wItPH4PmM_mDCGpyuUY0Er1BGu5Ti8,1073
525
- vellum_ai-0.8.23.dist-info/METADATA,sha256=0-YqyyRiBiY5436OCa3ixRQvA0dakPjZcDpkHwOe4eE,4395
526
- vellum_ai-0.8.23.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
527
- vellum_ai-0.8.23.dist-info/RECORD,,
540
+ vellum_ai-0.8.25.dist-info/LICENSE,sha256=CcaljEIoOBaU-wItPH4PmM_mDCGpyuUY0Er1BGu5Ti8,1073
541
+ vellum_ai-0.8.25.dist-info/METADATA,sha256=ibKMuK7rTEPyv3aQB39XMW7f1iH3mG6iffIxE6bQ1NA,4395
542
+ vellum_ai-0.8.25.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
543
+ vellum_ai-0.8.25.dist-info/RECORD,,