vellum-ai 0.5.0__py3-none-any.whl → 0.5.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
vellum/__init__.py CHANGED
@@ -71,6 +71,7 @@ from .types import (
71
71
  EnvironmentEnum,
72
72
  ErrorEnum,
73
73
  ErrorVariableValue,
74
+ ErrorVellumValue,
74
75
  ExecutePromptApiErrorResponse,
75
76
  ExecutePromptEvent,
76
77
  ExecutePromptEvent_Fulfilled,
@@ -121,6 +122,7 @@ from .types import (
121
122
  FunctionCallChatMessageContentValueRequest,
122
123
  FunctionCallEnum,
123
124
  FunctionCallVariableValue,
125
+ FunctionCallVellumValue,
124
126
  FunctionCall_Fulfilled,
125
127
  FunctionCall_Rejected,
126
128
  GenerateErrorResponse,
@@ -145,6 +147,7 @@ from .types import (
145
147
  JsonEnum,
146
148
  JsonInputRequest,
147
149
  JsonVariableValue,
150
+ JsonVellumValue,
148
151
  LogicalOperator,
149
152
  LogprobsEnum,
150
153
  MetadataFilterConfigRequest,
@@ -206,7 +209,7 @@ from .types import (
206
209
  NodeOutputCompiledArrayValue,
207
210
  NodeOutputCompiledChatHistoryValue,
208
211
  NodeOutputCompiledErrorValue,
209
- NodeOutputCompiledFunctionValue,
212
+ NodeOutputCompiledFunctionCallValue,
210
213
  NodeOutputCompiledJsonValue,
211
214
  NodeOutputCompiledNumberValue,
212
215
  NodeOutputCompiledSearchResultsValue,
@@ -285,6 +288,7 @@ from .types import (
285
288
  StringEnum,
286
289
  StringInputRequest,
287
290
  StringVariableValue,
291
+ StringVellumValue,
288
292
  SubmitCompletionActualRequest,
289
293
  SubmitCompletionActualsErrorResponse,
290
294
  SubmitWorkflowExecutionActualRequest,
@@ -575,6 +579,7 @@ __all__ = [
575
579
  "EnvironmentEnum",
576
580
  "ErrorEnum",
577
581
  "ErrorVariableValue",
582
+ "ErrorVellumValue",
578
583
  "ExecutePromptApiErrorResponse",
579
584
  "ExecutePromptEvent",
580
585
  "ExecutePromptEvent_Fulfilled",
@@ -626,6 +631,7 @@ __all__ = [
626
631
  "FunctionCallChatMessageContentValueRequest",
627
632
  "FunctionCallEnum",
628
633
  "FunctionCallVariableValue",
634
+ "FunctionCallVellumValue",
629
635
  "FunctionCall_Fulfilled",
630
636
  "FunctionCall_Rejected",
631
637
  "GenerateErrorResponse",
@@ -651,6 +657,7 @@ __all__ = [
651
657
  "JsonEnum",
652
658
  "JsonInputRequest",
653
659
  "JsonVariableValue",
660
+ "JsonVellumValue",
654
661
  "LogicalOperator",
655
662
  "LogprobsEnum",
656
663
  "MetadataFilterConfigRequest",
@@ -712,7 +719,7 @@ __all__ = [
712
719
  "NodeOutputCompiledArrayValue",
713
720
  "NodeOutputCompiledChatHistoryValue",
714
721
  "NodeOutputCompiledErrorValue",
715
- "NodeOutputCompiledFunctionValue",
722
+ "NodeOutputCompiledFunctionCallValue",
716
723
  "NodeOutputCompiledJsonValue",
717
724
  "NodeOutputCompiledNumberValue",
718
725
  "NodeOutputCompiledSearchResultsValue",
@@ -792,6 +799,7 @@ __all__ = [
792
799
  "StringEnum",
793
800
  "StringInputRequest",
794
801
  "StringVariableValue",
802
+ "StringVellumValue",
795
803
  "SubmitCompletionActualRequest",
796
804
  "SubmitCompletionActualsErrorResponse",
797
805
  "SubmitWorkflowExecutionActualRequest",
@@ -18,7 +18,7 @@ class BaseClientWrapper:
18
18
  headers: typing.Dict[str, str] = {
19
19
  "X-Fern-Language": "Python",
20
20
  "X-Fern-SDK-Name": "vellum-ai",
21
- "X-Fern-SDK-Version": "0.5.0",
21
+ "X-Fern-SDK-Version": "0.5.2",
22
22
  }
23
23
  headers["X_API_KEY"] = self.api_key
24
24
  return headers
@@ -2,8 +2,10 @@ from __future__ import annotations
2
2
 
3
3
  import logging
4
4
  import time
5
- from typing import Callable, Generator, List
5
+ from functools import cached_property
6
+ from typing import Callable, Generator, List, Any
6
7
 
8
+ from vellum import TestSuiteRunRead, TestSuiteRunMetricOutput_Number
7
9
  from vellum.client import Vellum
8
10
  from vellum.lib.test_suites.constants import (
9
11
  DEFAULT_MAX_POLLING_DURATION_MS,
@@ -11,6 +13,7 @@ from vellum.lib.test_suites.constants import (
11
13
  )
12
14
  from vellum.lib.test_suites.exceptions import TestSuiteRunResultsException
13
15
  from vellum.lib.utils.env import get_api_key
16
+ from vellum.lib.utils.paginator import PaginatedResults, get_all_results
14
17
  from vellum.types import (
15
18
  ExternalTestCaseExecutionRequest,
16
19
  NamedTestCaseVariableValueRequest,
@@ -22,9 +25,6 @@ from vellum.types import (
22
25
  TestSuiteRunState,
23
26
  )
24
27
 
25
- from vellum.lib.utils.paginator import PaginatedResults, get_all_results
26
-
27
-
28
28
  logger = logging.getLogger(__name__)
29
29
 
30
30
 
@@ -116,44 +116,141 @@ class VellumTestSuiteRunResults:
116
116
 
117
117
  def __init__(
118
118
  self,
119
- test_suite_run_id: str,
119
+ test_suite_run: TestSuiteRunRead,
120
120
  *,
121
121
  client: Vellum | None = None,
122
122
  polling_interval: int = DEFAULT_POLLING_INTERVAL_MS,
123
123
  max_polling_duration: int = DEFAULT_MAX_POLLING_DURATION_MS,
124
124
  ) -> None:
125
- self._test_suite_run_id = test_suite_run_id
125
+ self._test_suite_run = test_suite_run
126
126
  self._client = client or Vellum(
127
127
  api_key=get_api_key(),
128
128
  )
129
- self._state = "QUEUED"
130
129
  self._executions: Generator[VellumTestSuiteRunExecution, None, None] | None = (
131
130
  None
132
131
  )
133
132
  self._polling_interval = polling_interval
134
133
  self._max_polling_duration = max_polling_duration
135
134
 
135
+ @property
136
+ def state(self) -> TestSuiteRunState:
137
+ return self._test_suite_run.state
138
+
139
+ @cached_property
140
+ def all_executions(self) -> list[VellumTestSuiteRunExecution]:
141
+ return list(self._get_test_suite_run_executions())
142
+
136
143
  def get_metric_outputs(
137
144
  self, metric_identifier: str | None = None, output_identifier: str | None = None
138
- ) -> Generator[TestSuiteRunMetricOutput, None, None]:
145
+ ) -> List[TestSuiteRunMetricOutput]:
139
146
  """Retrieve a metric's output across all executions by providing the info needed to uniquely identify it."""
140
147
 
141
- executions = self._get_test_suite_run_executions()
142
-
143
- for execution in executions:
144
- yield execution.get_metric_output(
148
+ return [
149
+ execution.get_metric_output(
145
150
  metric_identifier=metric_identifier, output_identifier=output_identifier
146
151
  )
152
+ for execution in self.all_executions
153
+ ]
154
+
155
+ def get_count_metric_outputs(
156
+ self,
157
+ metric_identifier: str | None = None,
158
+ output_identifier: str | None = None,
159
+ *,
160
+ predicate: Callable[[TestSuiteRunMetricOutput], bool] | None = None,
161
+ ) -> int:
162
+ """Returns the count of all metric outputs that match the given criteria."""
163
+
164
+ metric_outputs = self.get_metric_outputs(
165
+ metric_identifier=metric_identifier, output_identifier=output_identifier
166
+ )
167
+
168
+ if predicate is None:
169
+ return len(metric_outputs)
170
+
171
+ return len([output for output in metric_outputs if predicate(output)])
172
+
173
+ def get_numeric_metric_output_values(
174
+ self,
175
+ metric_identifier: str | None = None,
176
+ output_identifier: str | None = None,
177
+ ) -> List[float]:
178
+ """Returns the values of a numeric metric output that match the given criteria."""
179
+
180
+ metric_outputs: list[TestSuiteRunMetricOutput_Number] = []
181
+
182
+ for output in self.get_metric_outputs(
183
+ metric_identifier=metric_identifier, output_identifier=output_identifier
184
+ ):
185
+ if output.type != "NUMBER":
186
+ raise TestSuiteRunResultsException(
187
+ f"Expected a numeric metric output, but got a {output.type} output instead."
188
+ )
189
+
190
+ metric_outputs.append(output)
191
+
192
+ return [output.value for output in metric_outputs]
193
+
194
+ def get_mean_metric_output(
195
+ self, metric_identifier: str | None = None, output_identifier: str | None = None
196
+ ) -> float:
197
+ """Returns the mean of all metric outputs that match the given criteria."""
198
+ output_values = self.get_numeric_metric_output_values(
199
+ metric_identifier=metric_identifier, output_identifier=output_identifier
200
+ )
201
+ return sum(output_values) / len(output_values)
202
+
203
+ def get_min_metric_output(
204
+ self, metric_identifier: str | None = None, output_identifier: str | None = None
205
+ ) -> float:
206
+ """Returns the min value across= all metric outputs that match the given criteria."""
207
+ output_values = self.get_numeric_metric_output_values(
208
+ metric_identifier=metric_identifier, output_identifier=output_identifier
209
+ )
210
+ return min(output_values)
211
+
212
+ def get_max_metric_output(
213
+ self, metric_identifier: str | None = None, output_identifier: str | None = None
214
+ ) -> float:
215
+ """Returns the max value across all metric outputs that match the given criteria."""
216
+ output_values = self.get_numeric_metric_output_values(
217
+ metric_identifier=metric_identifier, output_identifier=output_identifier
218
+ )
219
+ return max(output_values)
220
+
221
+ def wait_until_complete(self) -> None:
222
+ """Wait until the Test Suite Run is no longer in a QUEUED or RUNNING state."""
223
+
224
+ start_time = time.time_ns()
225
+ while True:
226
+ logger.debug("Polling for latest test suite run state...")
227
+ self._refresh_test_suite_run()
228
+ if self.state not in {"QUEUED", "RUNNING"}:
229
+ break
230
+
231
+ current_time = time.time_ns()
232
+ if ((current_time - start_time) / 1e6) > self._max_polling_duration:
233
+ raise TestSuiteRunResultsException(
234
+ "Test suite run timed out polling for executions"
235
+ )
236
+
237
+ time.sleep(self._polling_interval / 1000.0)
238
+
239
+ if self.state == "FAILED":
240
+ raise TestSuiteRunResultsException("Test suite run failed")
147
241
 
148
- def _refresh_test_suite_run_state(self):
149
- test_suite_run = self._client.test_suite_runs.retrieve(self._test_suite_run_id)
150
- self._state = test_suite_run.state
242
+ if self.state == "CANCELLED":
243
+ raise TestSuiteRunResultsException("Test suite run was cancelled")
244
+
245
+ def _refresh_test_suite_run(self):
246
+ test_suite_run = self._client.test_suite_runs.retrieve(self._test_suite_run.id)
247
+ self._test_suite_run = test_suite_run
151
248
 
152
249
  def _list_paginated_executions(
153
250
  self, offset: int | None, limit: int | None
154
251
  ) -> PaginatedResults[TestSuiteRunExecution]:
155
252
  response = self._client.test_suite_runs.list_executions(
156
- self._test_suite_run_id,
253
+ self._test_suite_run.id,
157
254
  offset=offset,
158
255
  limit=limit,
159
256
  expand=[
@@ -175,26 +272,7 @@ class VellumTestSuiteRunResults:
175
272
  if self._executions is not None:
176
273
  return self._executions
177
274
 
178
- start_time = time.time_ns()
179
- while True:
180
- logger.debug("Polling for latest test suite run state...")
181
- self._refresh_test_suite_run_state()
182
- if self._state not in {"QUEUED", "RUNNING"}:
183
- break
184
-
185
- current_time = time.time_ns()
186
- if ((current_time - start_time) / 1e6) > self._max_polling_duration:
187
- raise TestSuiteRunResultsException(
188
- "Test suite run timed out polling for executions"
189
- )
190
-
191
- time.sleep(self._polling_interval / 1000.0)
192
-
193
- if self._state == "FAILED":
194
- raise TestSuiteRunResultsException("Test suite run failed")
195
-
196
- if self._state == "CANCELLED":
197
- raise TestSuiteRunResultsException("Test suite run was cancelled")
275
+ self.wait_until_complete()
198
276
 
199
277
  raw_api_executions = get_all_results(self._list_paginated_executions)
200
278
  self._executions = self._wrap_api_executions(raw_api_executions)
@@ -250,4 +328,4 @@ class VellumTestSuite:
250
328
  ),
251
329
  ),
252
330
  )
253
- return VellumTestSuiteRunResults(test_suite_run.id, client=self.client)
331
+ return VellumTestSuiteRunResults(test_suite_run, client=self.client)
vellum/lib/utils/env.py CHANGED
@@ -6,6 +6,8 @@ from .exceptions import VellumClientException
6
6
  def get_api_key() -> str:
7
7
  api_key = os.environ.get("VELLUM_API_KEY")
8
8
  if api_key is None:
9
- raise VellumClientException("`VELLUM_API_KEY` environment variable id required to be set.")
10
-
9
+ raise VellumClientException(
10
+ "`VELLUM_API_KEY` environment variable is required to be set."
11
+ )
12
+
11
13
  return api_key
@@ -1,2 +1,2 @@
1
1
  class VellumClientException(Exception):
2
- pass
2
+ pass
@@ -12,7 +12,8 @@ class PaginatedResults(Generic[Result]):
12
12
 
13
13
 
14
14
  def get_all_results(
15
- paginated_api: Callable[[int, Union[int, None]], PaginatedResults[Result]], page_size: Union[int, None] = None
15
+ paginated_api: Callable[[int, Union[int, None]], PaginatedResults[Result]],
16
+ page_size: Union[int, None] = None,
16
17
  ) -> Generator[Result, None, None]:
17
18
  offset = 0
18
19
  count = 0
vellum/types/__init__.py CHANGED
@@ -82,6 +82,7 @@ from .entity_status import EntityStatus
82
82
  from .environment_enum import EnvironmentEnum
83
83
  from .error_enum import ErrorEnum
84
84
  from .error_variable_value import ErrorVariableValue
85
+ from .error_vellum_value import ErrorVellumValue
85
86
  from .execute_prompt_api_error_response import ExecutePromptApiErrorResponse
86
87
  from .execute_prompt_event import (
87
88
  ExecutePromptEvent,
@@ -140,6 +141,7 @@ from .function_call_chat_message_content_value import FunctionCallChatMessageCon
140
141
  from .function_call_chat_message_content_value_request import FunctionCallChatMessageContentValueRequest
141
142
  from .function_call_enum import FunctionCallEnum
142
143
  from .function_call_variable_value import FunctionCallVariableValue
144
+ from .function_call_vellum_value import FunctionCallVellumValue
143
145
  from .generate_error_response import GenerateErrorResponse
144
146
  from .generate_options_request import GenerateOptionsRequest
145
147
  from .generate_request import GenerateRequest
@@ -162,6 +164,7 @@ from .initiated_workflow_node_result_event import InitiatedWorkflowNodeResultEve
162
164
  from .json_enum import JsonEnum
163
165
  from .json_input_request import JsonInputRequest
164
166
  from .json_variable_value import JsonVariableValue
167
+ from .json_vellum_value import JsonVellumValue
165
168
  from .logical_operator import LogicalOperator
166
169
  from .logprobs_enum import LogprobsEnum
167
170
  from .metadata_filter_config_request import MetadataFilterConfigRequest
@@ -231,7 +234,7 @@ from .node_input_variable_compiled_value import (
231
234
  from .node_output_compiled_array_value import NodeOutputCompiledArrayValue
232
235
  from .node_output_compiled_chat_history_value import NodeOutputCompiledChatHistoryValue
233
236
  from .node_output_compiled_error_value import NodeOutputCompiledErrorValue
234
- from .node_output_compiled_function_value import NodeOutputCompiledFunctionValue
237
+ from .node_output_compiled_function_call_value import NodeOutputCompiledFunctionCallValue
235
238
  from .node_output_compiled_json_value import NodeOutputCompiledJsonValue
236
239
  from .node_output_compiled_number_value import NodeOutputCompiledNumberValue
237
240
  from .node_output_compiled_search_results_value import NodeOutputCompiledSearchResultsValue
@@ -314,6 +317,7 @@ from .string_chat_message_content_request import StringChatMessageContentRequest
314
317
  from .string_enum import StringEnum
315
318
  from .string_input_request import StringInputRequest
316
319
  from .string_variable_value import StringVariableValue
320
+ from .string_vellum_value import StringVellumValue
317
321
  from .submit_completion_actual_request import SubmitCompletionActualRequest
318
322
  from .submit_completion_actuals_error_response import SubmitCompletionActualsErrorResponse
319
323
  from .submit_workflow_execution_actual_request import (
@@ -614,6 +618,7 @@ __all__ = [
614
618
  "EnvironmentEnum",
615
619
  "ErrorEnum",
616
620
  "ErrorVariableValue",
621
+ "ErrorVellumValue",
617
622
  "ExecutePromptApiErrorResponse",
618
623
  "ExecutePromptEvent",
619
624
  "ExecutePromptEvent_Fulfilled",
@@ -664,6 +669,7 @@ __all__ = [
664
669
  "FunctionCallChatMessageContentValueRequest",
665
670
  "FunctionCallEnum",
666
671
  "FunctionCallVariableValue",
672
+ "FunctionCallVellumValue",
667
673
  "FunctionCall_Fulfilled",
668
674
  "FunctionCall_Rejected",
669
675
  "GenerateErrorResponse",
@@ -688,6 +694,7 @@ __all__ = [
688
694
  "JsonEnum",
689
695
  "JsonInputRequest",
690
696
  "JsonVariableValue",
697
+ "JsonVellumValue",
691
698
  "LogicalOperator",
692
699
  "LogprobsEnum",
693
700
  "MetadataFilterConfigRequest",
@@ -749,7 +756,7 @@ __all__ = [
749
756
  "NodeOutputCompiledArrayValue",
750
757
  "NodeOutputCompiledChatHistoryValue",
751
758
  "NodeOutputCompiledErrorValue",
752
- "NodeOutputCompiledFunctionValue",
759
+ "NodeOutputCompiledFunctionCallValue",
753
760
  "NodeOutputCompiledJsonValue",
754
761
  "NodeOutputCompiledNumberValue",
755
762
  "NodeOutputCompiledSearchResultsValue",
@@ -828,6 +835,7 @@ __all__ = [
828
835
  "StringEnum",
829
836
  "StringInputRequest",
830
837
  "StringVariableValue",
838
+ "StringVellumValue",
831
839
  "SubmitCompletionActualRequest",
832
840
  "SubmitCompletionActualsErrorResponse",
833
841
  "SubmitWorkflowExecutionActualRequest",
@@ -0,0 +1,30 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+
6
+ from ..core.datetime_utils import serialize_datetime
7
+ from ..core.pydantic_utilities import pydantic_v1
8
+ from .vellum_error import VellumError
9
+
10
+
11
+ class ErrorVellumValue(pydantic_v1.BaseModel):
12
+ """
13
+ A value representing an Error.
14
+ """
15
+
16
+ value: typing.Optional[VellumError] = None
17
+
18
+ def json(self, **kwargs: typing.Any) -> str:
19
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
20
+ return super().json(**kwargs_with_defaults)
21
+
22
+ def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
23
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
24
+ return super().dict(**kwargs_with_defaults)
25
+
26
+ class Config:
27
+ frozen = True
28
+ smart_union = True
29
+ extra = pydantic_v1.Extra.allow
30
+ json_encoders = {dt.datetime: serialize_datetime}
@@ -9,7 +9,7 @@ from .function_call import FunctionCall
9
9
 
10
10
 
11
11
  class FunctionCallVariableValue(pydantic_v1.BaseModel):
12
- value: FunctionCall
12
+ value: typing.Optional[FunctionCall] = None
13
13
 
14
14
  def json(self, **kwargs: typing.Any) -> str:
15
15
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -8,9 +8,12 @@ from ..core.pydantic_utilities import pydantic_v1
8
8
  from .function_call import FunctionCall
9
9
 
10
10
 
11
- class NodeOutputCompiledFunctionValue(pydantic_v1.BaseModel):
12
- node_output_id: str
13
- value: typing.Optional[FunctionCall] = None
11
+ class FunctionCallVellumValue(pydantic_v1.BaseModel):
12
+ """
13
+ A value representing a Function Call.
14
+ """
15
+
16
+ value: FunctionCall
14
17
 
15
18
  def json(self, **kwargs: typing.Any) -> str:
16
19
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -0,0 +1,29 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+
6
+ from ..core.datetime_utils import serialize_datetime
7
+ from ..core.pydantic_utilities import pydantic_v1
8
+
9
+
10
+ class JsonVellumValue(pydantic_v1.BaseModel):
11
+ """
12
+ A value representing a JSON object.
13
+ """
14
+
15
+ value: typing.Optional[typing.Dict[str, typing.Any]] = None
16
+
17
+ def json(self, **kwargs: typing.Any) -> str:
18
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
19
+ return super().json(**kwargs_with_defaults)
20
+
21
+ def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
22
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
23
+ return super().dict(**kwargs_with_defaults)
24
+
25
+ class Config:
26
+ frozen = True
27
+ smart_union = True
28
+ extra = pydantic_v1.Extra.allow
29
+ json_encoders = {dt.datetime: serialize_datetime}
@@ -6,11 +6,17 @@ import typing
6
6
  from ..core.datetime_utils import serialize_datetime
7
7
  from ..core.pydantic_utilities import pydantic_v1
8
8
  from .array_variable_value_item import ArrayVariableValueItem
9
+ from .workflow_node_result_event_state import WorkflowNodeResultEventState
9
10
 
10
11
 
11
12
  class NodeOutputCompiledArrayValue(pydantic_v1.BaseModel):
12
- node_output_id: str
13
+ """
14
+ An output returned by a node that is of type ARRAY.
15
+ """
16
+
13
17
  value: typing.Optional[typing.List[ArrayVariableValueItem]] = None
18
+ node_output_id: str
19
+ state: typing.Optional[WorkflowNodeResultEventState] = None
14
20
 
15
21
  def json(self, **kwargs: typing.Any) -> str:
16
22
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -6,11 +6,17 @@ import typing
6
6
  from ..core.datetime_utils import serialize_datetime
7
7
  from ..core.pydantic_utilities import pydantic_v1
8
8
  from .chat_message import ChatMessage
9
+ from .workflow_node_result_event_state import WorkflowNodeResultEventState
9
10
 
10
11
 
11
12
  class NodeOutputCompiledChatHistoryValue(pydantic_v1.BaseModel):
12
- node_output_id: str
13
+ """
14
+ An output returned by a node that is of type CHAT_HISTORY.
15
+ """
16
+
13
17
  value: typing.Optional[typing.List[ChatMessage]] = None
18
+ node_output_id: str
19
+ state: typing.Optional[WorkflowNodeResultEventState] = None
14
20
 
15
21
  def json(self, **kwargs: typing.Any) -> str:
16
22
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -6,11 +6,17 @@ import typing
6
6
  from ..core.datetime_utils import serialize_datetime
7
7
  from ..core.pydantic_utilities import pydantic_v1
8
8
  from .vellum_error import VellumError
9
+ from .workflow_node_result_event_state import WorkflowNodeResultEventState
9
10
 
10
11
 
11
12
  class NodeOutputCompiledErrorValue(pydantic_v1.BaseModel):
12
- node_output_id: str
13
+ """
14
+ An output returned by a node that is of type ERROR.
15
+ """
16
+
13
17
  value: typing.Optional[VellumError] = None
18
+ node_output_id: str
19
+ state: typing.Optional[WorkflowNodeResultEventState] = None
14
20
 
15
21
  def json(self, **kwargs: typing.Any) -> str:
16
22
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -0,0 +1,33 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+
6
+ from ..core.datetime_utils import serialize_datetime
7
+ from ..core.pydantic_utilities import pydantic_v1
8
+ from .function_call import FunctionCall
9
+ from .workflow_node_result_event_state import WorkflowNodeResultEventState
10
+
11
+
12
+ class NodeOutputCompiledFunctionCallValue(pydantic_v1.BaseModel):
13
+ """
14
+ An output returned by a node that is of type FUNCTION_CALL.
15
+ """
16
+
17
+ value: typing.Optional[FunctionCall] = None
18
+ node_output_id: str
19
+ state: typing.Optional[WorkflowNodeResultEventState] = None
20
+
21
+ def json(self, **kwargs: typing.Any) -> str:
22
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
23
+ return super().json(**kwargs_with_defaults)
24
+
25
+ def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
26
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
27
+ return super().dict(**kwargs_with_defaults)
28
+
29
+ class Config:
30
+ frozen = True
31
+ smart_union = True
32
+ extra = pydantic_v1.Extra.allow
33
+ json_encoders = {dt.datetime: serialize_datetime}
@@ -5,11 +5,17 @@ import typing
5
5
 
6
6
  from ..core.datetime_utils import serialize_datetime
7
7
  from ..core.pydantic_utilities import pydantic_v1
8
+ from .workflow_node_result_event_state import WorkflowNodeResultEventState
8
9
 
9
10
 
10
11
  class NodeOutputCompiledJsonValue(pydantic_v1.BaseModel):
11
- node_output_id: str
12
+ """
13
+ An output returned by a node that is of type JSON.
14
+ """
15
+
12
16
  value: typing.Optional[typing.Dict[str, typing.Any]] = None
17
+ node_output_id: str
18
+ state: typing.Optional[WorkflowNodeResultEventState] = None
13
19
 
14
20
  def json(self, **kwargs: typing.Any) -> str:
15
21
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -5,11 +5,17 @@ import typing
5
5
 
6
6
  from ..core.datetime_utils import serialize_datetime
7
7
  from ..core.pydantic_utilities import pydantic_v1
8
+ from .workflow_node_result_event_state import WorkflowNodeResultEventState
8
9
 
9
10
 
10
11
  class NodeOutputCompiledNumberValue(pydantic_v1.BaseModel):
11
- node_output_id: str
12
+ """
13
+ An output returned by a node that is of type NUMBER.
14
+ """
15
+
12
16
  value: typing.Optional[float] = None
17
+ node_output_id: str
18
+ state: typing.Optional[WorkflowNodeResultEventState] = None
13
19
 
14
20
  def json(self, **kwargs: typing.Any) -> str:
15
21
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -6,11 +6,17 @@ import typing
6
6
  from ..core.datetime_utils import serialize_datetime
7
7
  from ..core.pydantic_utilities import pydantic_v1
8
8
  from .search_result import SearchResult
9
+ from .workflow_node_result_event_state import WorkflowNodeResultEventState
9
10
 
10
11
 
11
12
  class NodeOutputCompiledSearchResultsValue(pydantic_v1.BaseModel):
12
- node_output_id: str
13
+ """
14
+ An output returned by a node that is of type SEARCH_RESULTS.
15
+ """
16
+
13
17
  value: typing.Optional[typing.List[SearchResult]] = None
18
+ node_output_id: str
19
+ state: typing.Optional[WorkflowNodeResultEventState] = None
14
20
 
15
21
  def json(self, **kwargs: typing.Any) -> str:
16
22
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -5,11 +5,17 @@ import typing
5
5
 
6
6
  from ..core.datetime_utils import serialize_datetime
7
7
  from ..core.pydantic_utilities import pydantic_v1
8
+ from .workflow_node_result_event_state import WorkflowNodeResultEventState
8
9
 
9
10
 
10
11
  class NodeOutputCompiledStringValue(pydantic_v1.BaseModel):
11
- node_output_id: str
12
+ """
13
+ An output returned by a node that is of type STRING.
14
+ """
15
+
12
16
  value: typing.Optional[str] = None
17
+ node_output_id: str
18
+ state: typing.Optional[WorkflowNodeResultEventState] = None
13
19
 
14
20
  def json(self, **kwargs: typing.Any) -> str:
15
21
  kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
@@ -7,7 +7,7 @@ import typing
7
7
  from .node_output_compiled_array_value import NodeOutputCompiledArrayValue
8
8
  from .node_output_compiled_chat_history_value import NodeOutputCompiledChatHistoryValue
9
9
  from .node_output_compiled_error_value import NodeOutputCompiledErrorValue
10
- from .node_output_compiled_function_value import NodeOutputCompiledFunctionValue
10
+ from .node_output_compiled_function_call_value import NodeOutputCompiledFunctionCallValue
11
11
  from .node_output_compiled_json_value import NodeOutputCompiledJsonValue
12
12
  from .node_output_compiled_number_value import NodeOutputCompiledNumberValue
13
13
  from .node_output_compiled_search_results_value import NodeOutputCompiledSearchResultsValue
@@ -84,7 +84,7 @@ class NodeOutputCompiledValue_Array(NodeOutputCompiledArrayValue):
84
84
  populate_by_name = True
85
85
 
86
86
 
87
- class NodeOutputCompiledValue_FunctionCall(NodeOutputCompiledFunctionValue):
87
+ class NodeOutputCompiledValue_FunctionCall(NodeOutputCompiledFunctionCallValue):
88
88
  type: typing.Literal["FUNCTION_CALL"] = "FUNCTION_CALL"
89
89
 
90
90
  class Config:
@@ -4,13 +4,13 @@ from __future__ import annotations
4
4
 
5
5
  import typing
6
6
 
7
- from .error_variable_value import ErrorVariableValue
8
- from .function_call_variable_value import FunctionCallVariableValue
9
- from .json_variable_value import JsonVariableValue
10
- from .string_variable_value import StringVariableValue
7
+ from .error_vellum_value import ErrorVellumValue
8
+ from .function_call_vellum_value import FunctionCallVellumValue
9
+ from .json_vellum_value import JsonVellumValue
10
+ from .string_vellum_value import StringVellumValue
11
11
 
12
12
 
13
- class PromptOutput_String(StringVariableValue):
13
+ class PromptOutput_String(StringVellumValue):
14
14
  type: typing.Literal["STRING"] = "STRING"
15
15
 
16
16
  class Config:
@@ -20,7 +20,7 @@ class PromptOutput_String(StringVariableValue):
20
20
  populate_by_name = True
21
21
 
22
22
 
23
- class PromptOutput_Json(JsonVariableValue):
23
+ class PromptOutput_Json(JsonVellumValue):
24
24
  type: typing.Literal["JSON"] = "JSON"
25
25
 
26
26
  class Config:
@@ -30,7 +30,7 @@ class PromptOutput_Json(JsonVariableValue):
30
30
  populate_by_name = True
31
31
 
32
32
 
33
- class PromptOutput_Error(ErrorVariableValue):
33
+ class PromptOutput_Error(ErrorVellumValue):
34
34
  type: typing.Literal["ERROR"] = "ERROR"
35
35
 
36
36
  class Config:
@@ -40,7 +40,7 @@ class PromptOutput_Error(ErrorVariableValue):
40
40
  populate_by_name = True
41
41
 
42
42
 
43
- class PromptOutput_FunctionCall(FunctionCallVariableValue):
43
+ class PromptOutput_FunctionCall(FunctionCallVellumValue):
44
44
  type: typing.Literal["FUNCTION_CALL"] = "FUNCTION_CALL"
45
45
 
46
46
  class Config:
@@ -0,0 +1,29 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+
6
+ from ..core.datetime_utils import serialize_datetime
7
+ from ..core.pydantic_utilities import pydantic_v1
8
+
9
+
10
+ class StringVellumValue(pydantic_v1.BaseModel):
11
+ """
12
+ A value representing a string.
13
+ """
14
+
15
+ value: typing.Optional[str] = None
16
+
17
+ def json(self, **kwargs: typing.Any) -> str:
18
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
19
+ return super().json(**kwargs_with_defaults)
20
+
21
+ def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]:
22
+ kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}
23
+ return super().dict(**kwargs_with_defaults)
24
+
25
+ class Config:
26
+ frozen = True
27
+ smart_union = True
28
+ extra = pydantic_v1.Extra.allow
29
+ json_encoders = {dt.datetime: serialize_datetime}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vellum-ai
3
- Version: 0.5.0
3
+ Version: 0.5.2
4
4
  Summary:
5
5
  Requires-Python: >=3.8,<4.0
6
6
  Classifier: Programming Language :: Python :: 3
@@ -1,8 +1,8 @@
1
- vellum/__init__.py,sha256=RpP5FLUDUph2qBCQ-TlpodjRFc1PDGDZCk-JBGj0UBM,35591
1
+ vellum/__init__.py,sha256=2ostXxge8NAc5scrfOy_CJzYTDB3vZ-UqMc6C1_QDb4,35797
2
2
  vellum/client.py,sha256=7JaU104s0u_WhB8QAqIZcMv9IyvU-a0nKVZhTPKiEpw,97089
3
3
  vellum/core/__init__.py,sha256=1pNSKkwyQvMl_F0wohBqmoQAITptg3zlvCwsoSSzy7c,853
4
4
  vellum/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
5
- vellum/core/client_wrapper.py,sha256=YUdARR7B9QqhNV9JOZYVoNyzoORUHfpBag8gvwu-BfA,1697
5
+ vellum/core/client_wrapper.py,sha256=C_FHM-HHkz96oVY21a1pLVEWqbSwaz0w-rVEwzOUL4E,1697
6
6
  vellum/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
7
7
  vellum/core/file.py,sha256=sy1RUGZ3aJYuw998bZytxxo6QdgKmlnlgBaMvwEKCGg,1480
8
8
  vellum/core/http_client.py,sha256=5ok6hqgZDJhg57EHvMnr0BBaHdG50QxFPKaCZ9aVWTc,5059
@@ -20,11 +20,11 @@ vellum/lib/__init__.py,sha256=KTSY0V59WEOr5uNyAei1dDfaAatyXw_Aca5kNjo5mY0,79
20
20
  vellum/lib/test_suites/__init__.py,sha256=hNsLoHSykqXDJP-MwFvu2lExImxo9KEyEJjt_fdAzpE,77
21
21
  vellum/lib/test_suites/constants.py,sha256=Vteml4_csZsMgo_q3-71E3JRCAoN6308TXLu5nfLhmU,116
22
22
  vellum/lib/test_suites/exceptions.py,sha256=6Xacoyv43fJvVf6Dt6Io5a-f9vF12Tx51jzsQRNSqhY,56
23
- vellum/lib/test_suites/resources.py,sha256=rjgPFktL37zNyB0WWErLqjDR1OzmBfjf6Ry6pb97r2A,9197
23
+ vellum/lib/test_suites/resources.py,sha256=hokRS0_wT6IdA_6HkWbrh7iFzFxCtiy8JXbUiGtlwRk,12323
24
24
  vellum/lib/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
- vellum/lib/utils/env.py,sha256=__k8PagSUxW09x2ZMmwFrM_mwy-ky68aqml-e6jaYys,280
26
- vellum/lib/utils/exceptions.py,sha256=h9s9PnHqrTX5ohmZyCXovpWoTB7f3tAd5z_5nP0drCM,48
27
- vellum/lib/utils/paginator.py,sha256=mQwHZEkZHmCNBCctp8zkyEXmcfZtuU5gOL5gC3vNgUA,693
25
+ vellum/lib/utils/env.py,sha256=ySl859lYBfls8hmlaU_RFdquHa_A_7SzaC6KEdFqh1Y,298
26
+ vellum/lib/utils/exceptions.py,sha256=dXMAkzqbHV_AP5FjjbegPlfUE0zQDlpA3qOsoOJUxfg,49
27
+ vellum/lib/utils/paginator.py,sha256=yDvgehocYBDclLt5SewZH4hCIyq0yLHdBzkyPCoYPjs,698
28
28
  vellum/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
29
  vellum/resources/__init__.py,sha256=pqoVsVVIrUG-v6yt4AMtc7F5O-K7wKlvqhQeht9-Ax4,730
30
30
  vellum/resources/deployments/__init__.py,sha256=AE0TcFwLrLBljM0ZDX-pPw4Kqt-1f5JDpIok2HS80QI,157
@@ -58,7 +58,7 @@ vellum/terraform/document_index/__init__.py,sha256=qq2zENI22bUvqGk_a1lmsoTr5O_xC
58
58
  vellum/terraform/provider/__init__.py,sha256=K1yLlTZkYBxhD4bhUV1v23hxDGgbfsAIGsSyeB54dNQ,10298
59
59
  vellum/terraform/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
60
60
  vellum/terraform/versions.json,sha256=STW6Mg3BKDacFmbWHXziHxE90GWncZf4AIzCLiXm_7o,56
61
- vellum/types/__init__.py,sha256=jV2nUg9gA8Q26zG9KL9ygJDDQ3bZOerYBn-0AbOiEKQ,47325
61
+ vellum/types/__init__.py,sha256=m1fh7wzVhKpXcxYmWjnmo78UxekJQh30pCrNjwHAXyA,47652
62
62
  vellum/types/api_node_result.py,sha256=SvYIi1T-N_P3FVjzv9I91PaCT0IN958A3easp5Q7jqE,983
63
63
  vellum/types/api_node_result_data.py,sha256=KFBmmizcEg73GwQMXUtEdJ4e9YGFpRLYAnalwxIcDug,1161
64
64
  vellum/types/array_chat_message_content.py,sha256=vWO6D2eUf9N5wWvu3WPgLIdoKVRWa0tIV8UmGRbgW3c,1030
@@ -99,6 +99,7 @@ vellum/types/entity_status.py,sha256=bY0jEpISwXqFnbWd3PSb3yXEr-ounPXlAO_fyvHV7l8
99
99
  vellum/types/environment_enum.py,sha256=Wcewxp1cpGAMDIAZbTp4Y0GGfvy2Bq_Qu_67f_wBDGA,179
100
100
  vellum/types/error_enum.py,sha256=HF_ubfzqmFQN3vVCDFZALADjHFRChuvkU_-zqjxa3ns,116
101
101
  vellum/types/error_variable_value.py,sha256=x5t2f3jk5zC6KyXYpk_ZgKv_lIRq_-P5hahou9Lohb0,926
102
+ vellum/types/error_vellum_value.py,sha256=LhArYgM0L1o1BkCl_Oym9R1dwRP24lxa_5kEEmTes7w,976
102
103
  vellum/types/execute_prompt_api_error_response.py,sha256=-RA-JhnAyj8_L9zNOCy4RsmmNwsldmIhTo-_mjHX60s,948
103
104
  vellum/types/execute_prompt_event.py,sha256=WBKdWBRgtDYoxMbHC7FjCjCxxTuOgjINonDYQITD1-4,1636
104
105
  vellum/types/execute_prompt_response.py,sha256=HHD1EoPDz78OQA8XYcsopklbzk0fVYk-rXwjwW19n6M,914
@@ -132,7 +133,8 @@ vellum/types/function_call_chat_message_content_request.py,sha256=UOtsUEmAQ66-Un
132
133
  vellum/types/function_call_chat_message_content_value.py,sha256=sckkwTHSa8nvpjvk5Wj9sQ2Ml4AI5UoB6Fj0TJM8Xcg,1013
133
134
  vellum/types/function_call_chat_message_content_value_request.py,sha256=UJPQxmhOtbqGSt1-FfVmNHJG6VsKufu8H9ecStqU5aA,1020
134
135
  vellum/types/function_call_enum.py,sha256=QK__nqbfcaPx1d6paBAoCFth7mWOStqgutY3MIit_cE,131
135
- vellum/types/function_call_variable_value.py,sha256=S3lxBOL9eSI6UAmEciUP67rM7rZm_yYAGgQ1H6-suWQ,912
136
+ vellum/types/function_call_variable_value.py,sha256=3XFxR5zkeo4sc7fB_ot6x6fFT_QC4QKYC9c0cCQENlI,936
137
+ vellum/types/function_call_vellum_value.py,sha256=osdRV9vw_45RafoBZEqInDitGQcxft4eIXcpfAmF1kw,969
136
138
  vellum/types/generate_error_response.py,sha256=Zrnq_Acm_2CfmZkZ60Axgw_uUISOjd6tbJBIkFuj2U0,940
137
139
  vellum/types/generate_options_request.py,sha256=SD-39FB3py_HAZzMTaFyNeDRG0QbPPnayKICo2p9fTk,1079
138
140
  vellum/types/generate_request.py,sha256=PdbtFLB-RfFJatIIB_b1prMWks-LSxChbXVszMIPIuw,1572
@@ -155,6 +157,7 @@ vellum/types/initiated_workflow_node_result_event.py,sha256=21Q_wO3U1qbYuNUAWBaX
155
157
  vellum/types/json_enum.py,sha256=0Se0lTWxLGQe-JdQ8E9KwFt5NWXuI7BkOdWQcFKJg-8,114
156
158
  vellum/types/json_input_request.py,sha256=fpBb3QS-E0a3hZU_mHZ5Yjkwr10-qqbQoMJbfhfGu_4,1048
157
159
  vellum/types/json_variable_value.py,sha256=KdKz67NgVwVHpxXFgSxFPBeGBdjzTwZ_VKe22kcaWjo,904
160
+ vellum/types/json_vellum_value.py,sha256=c_fKVj3ZnjacNEGW8keuoSfsNs7MBSH7PkTNxZuWU4M,959
158
161
  vellum/types/logical_operator.py,sha256=MuuMZ1-gOCDvy1WDQkMFfiBNHsRCqKgJei-b3727sKc,487
159
162
  vellum/types/logprobs_enum.py,sha256=D_458cZX2CAb6dX_ovrQ6HARlJkYcZRadKwsi1Cr-JM,151
160
163
  vellum/types/metadata_filter_config_request.py,sha256=_1CVIxmDmtXezTMWoaqeea9boe8hyCmmAn28u69NEUk,1355
@@ -189,15 +192,15 @@ vellum/types/node_input_compiled_number_value.py,sha256=Kpxo7ryDiOxylmzF1pz6jups
189
192
  vellum/types/node_input_compiled_search_results_value.py,sha256=ejJuUB42LO9l-E12uKa0Ezk_T0nP6q023uuqDEqN4TU,995
190
193
  vellum/types/node_input_compiled_string_value.py,sha256=cEssxmVjvY5SG2OINLYdw8pJPIJrKdEvdUgkU0xz_9k,926
191
194
  vellum/types/node_input_variable_compiled_value.py,sha256=iXSNb6wRYmPOOzQZk8AWB929hedtL_NwFox17MjMT4w,3354
192
- vellum/types/node_output_compiled_array_value.py,sha256=EZF3ddnHZY-W204Ja0iADDjcLVDs8R56va3973W7C7U,1008
193
- vellum/types/node_output_compiled_chat_history_value.py,sha256=ciB6-KSnr_tV-uTQ1dGGqmKXodVanQ3hW2pQNevfiT4,979
194
- vellum/types/node_output_compiled_error_value.py,sha256=ARX1mvBwoxr7bKyeHsoKaKIA6qL32klm7viYaMR58vU,960
195
- vellum/types/node_output_compiled_function_value.py,sha256=Z9zVR29krOBrrZLQ781mBDkGCrh5hKD5N6vdoiVSD9E,966
196
- vellum/types/node_output_compiled_json_value.py,sha256=py5bLrULnF7RH2Dqi5_OwTtDsNuMIWIGjC1HBZzEyro,938
197
- vellum/types/node_output_compiled_number_value.py,sha256=KKtHNa33HH5qQLkJwqM8tHiMZqz_pfcZWOzuUFMZaIQ,917
198
- vellum/types/node_output_compiled_search_results_value.py,sha256=DLjvpU_VT62Flj9OuouUpCV6XZxiXe9HRFR4vkQvyvg,984
199
- vellum/types/node_output_compiled_string_value.py,sha256=iHTueQQe4zs-IQ_FMmYw4yDgWdcyDE_LXwaDb7xbbsc,915
200
- vellum/types/node_output_compiled_value.py,sha256=xR2vnYE0d4Dyek9X-LOA_Cxos3D9qxXdS3rf6xQNjGM,3262
195
+ vellum/types/node_output_compiled_array_value.py,sha256=k0K0jLaKV5383hrx1CX_Lxg4bQLGIcdNvojAXqqWt8Y,1220
196
+ vellum/types/node_output_compiled_chat_history_value.py,sha256=G4uyylyx4pe9wroMruPaw8kFOmwVEzVCGl0xFRd3S_w,1198
197
+ vellum/types/node_output_compiled_error_value.py,sha256=Y9Zk8yJ5HXhNyDb2-iSW5RnTSxDIuLHCgqtt9-1CIkE,1172
198
+ vellum/types/node_output_compiled_function_call_value.py,sha256=-zKACRAG0jNpVWv4wRpJwi4BCoI368C0fglgEmKbnY0,1190
199
+ vellum/types/node_output_compiled_json_value.py,sha256=W8Y4zWV5fYpvdlYUKWHtd3ytH8UbdvuyaU5CZWRTexs,1149
200
+ vellum/types/node_output_compiled_number_value.py,sha256=dZxIdYaqfgM91CcSdqzIFA8_-WDPgCbicNh7FGhVxlk,1130
201
+ vellum/types/node_output_compiled_search_results_value.py,sha256=70JslI-j54Q0BmNhbwWuaLQkvDYggCcZ3pA2E03qfzg,1205
202
+ vellum/types/node_output_compiled_string_value.py,sha256=Ur9u-NZF9QHZSmXyXfyOSJopPW10u5J9idETLPn3b74,1128
203
+ vellum/types/node_output_compiled_value.py,sha256=iTvpjsz9EaahCHrW64awCN7cRo31gsLTXzx36LvHyB4,3275
201
204
  vellum/types/normalized_log_probs.py,sha256=LN6Ap1sDIZ5KZ_F6Xxc89SFAoLlV6sqPjju78wstEVg,1000
202
205
  vellum/types/normalized_token_log_probs.py,sha256=-PYJPYzykDfG9aeXqRselY8XHdIvr0K1s6qnecPCB-k,1008
203
206
  vellum/types/number_enum.py,sha256=M_h5PmC5HxQYpQbfqqyw1DualhKu1QOCU-o1NYTQz_o,118
@@ -215,7 +218,7 @@ vellum/types/prompt_deployment_input_request.py,sha256=o8PCi7TsitddNxiAfDblxaXkJ
215
218
  vellum/types/prompt_execution_meta.py,sha256=io92vwMO3qC7RsCIsyMPFEeY3Sizb2xv6X1TBwKu6eI,1370
216
219
  vellum/types/prompt_node_result.py,sha256=BVRnp6zIKocaPquCln0UtqW2M18j8k_OnHLGWCB25hU,997
217
220
  vellum/types/prompt_node_result_data.py,sha256=WaKh-Nh3vVklvitT3WxwVeMGt0VxAoeypDDW4gvcMpY,988
218
- vellum/types/prompt_output.py,sha256=Df5UnLyBRf79_oUnYiMl9vi_h41yKEDLw1KgkgiX1Uk,1442
221
+ vellum/types/prompt_output.py,sha256=wO0lz1HmPctCMt9lGLTsJRkL20wMXfmya5CxRhakOxU,1418
219
222
  vellum/types/raw_prompt_execution_overrides_request.py,sha256=Hwfjk35PsGSqMfcRwBzwjfpaRiaixTVi8xsG9g9pV3E,1210
220
223
  vellum/types/rejected_enum.py,sha256=ZatbMUdJos2j62CSK7lf2Pzv5xIh92XzRbzcsyc6NJg,122
221
224
  vellum/types/rejected_execute_prompt_event.py,sha256=2giB2PrFd7i2eL3moa9FpGkA4BcR1_gXqnJ9Y5XVmeQ,1159
@@ -254,6 +257,7 @@ vellum/types/string_chat_message_content_request.py,sha256=veTDkbJ39AfdxLUZ1MQPm
254
257
  vellum/types/string_enum.py,sha256=8uLrjmZyaGRDEf7Y6DpJF1e4abJct69wIoq6ZQX6F-s,118
255
258
  vellum/types/string_input_request.py,sha256=2c7ZbrA2r_Au12O-LnfMwY-5rQKzAqQkLVu-jc-qjTI,1026
256
259
  vellum/types/string_variable_value.py,sha256=YGjpJpTVnxywk0mtXisQw8BkIfTS_amY4JPugLQ6dW0,881
260
+ vellum/types/string_vellum_value.py,sha256=UCk0yx0DHUrANEp-rPsXO34dUNRWuzQPcSR2BsVPnlU,931
257
261
  vellum/types/submit_completion_actual_request.py,sha256=D3JNFxE8DHJP7RaSQjDBsJiacOwsd3I8r6-peyNDES0,1825
258
262
  vellum/types/submit_completion_actuals_error_response.py,sha256=f2XlGM5NBdwZLy4oOJN9LrcaHwW31fGtTCmzcJVzUV4,875
259
263
  vellum/types/submit_workflow_execution_actual_request.py,sha256=zR5Di5a9GC2fchGC9qLEXGELitg3UxCoQUqeIyeyLDc,1487
@@ -376,7 +380,7 @@ vellum/types/workflow_result_event_output_data_search_results.py,sha256=gazaUrC5
376
380
  vellum/types/workflow_result_event_output_data_string.py,sha256=aVWIIGbLj4TJJhTTj6WzhbYXQkcZatKuhhNy8UYwXbw,1482
377
381
  vellum/types/workflow_stream_event.py,sha256=KA6Bkk_XA6AIPWR-1vKnwF1A8l_Bm5y0arQCWWWRpsk,911
378
382
  vellum/version.py,sha256=neLt8HBHHUtDF9M5fsyUzHT-pKooEPvceaLDqqIGb0s,77
379
- vellum_ai-0.5.0.dist-info/LICENSE,sha256=CcaljEIoOBaU-wItPH4PmM_mDCGpyuUY0Er1BGu5Ti8,1073
380
- vellum_ai-0.5.0.dist-info/METADATA,sha256=NMcjVbiC1qiFwXV12zgJEaDVbp_Ty7SK85_L1BGTc68,3549
381
- vellum_ai-0.5.0.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
382
- vellum_ai-0.5.0.dist-info/RECORD,,
383
+ vellum_ai-0.5.2.dist-info/LICENSE,sha256=CcaljEIoOBaU-wItPH4PmM_mDCGpyuUY0Er1BGu5Ti8,1073
384
+ vellum_ai-0.5.2.dist-info/METADATA,sha256=eZs04Vzi6mhgnm2pqE2oG5qCcUS5UENyDq5gyKA0LV8,3549
385
+ vellum_ai-0.5.2.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
386
+ vellum_ai-0.5.2.dist-info/RECORD,,