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

Sign up to get free protection for your applications and to get access to all the features.
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,,