vellum-ai 1.2.3__py3-none-any.whl → 1.2.5__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.
Files changed (96) hide show
  1. vellum/__init__.py +48 -0
  2. vellum/client/core/client_wrapper.py +2 -2
  3. vellum/client/resources/workflows/client.py +20 -0
  4. vellum/client/resources/workflows/raw_client.py +20 -0
  5. vellum/client/types/__init__.py +48 -0
  6. vellum/client/types/audio_input.py +30 -0
  7. vellum/client/types/code_executor_input.py +8 -0
  8. vellum/client/types/document_input.py +30 -0
  9. vellum/client/types/image_input.py +30 -0
  10. vellum/client/types/named_scenario_input_audio_variable_value_request.py +22 -0
  11. vellum/client/types/named_scenario_input_document_variable_value_request.py +22 -0
  12. vellum/client/types/named_scenario_input_image_variable_value_request.py +22 -0
  13. vellum/client/types/named_scenario_input_request.py +8 -0
  14. vellum/client/types/named_scenario_input_video_variable_value_request.py +22 -0
  15. vellum/client/types/named_test_case_audio_variable_value.py +26 -0
  16. vellum/client/types/named_test_case_audio_variable_value_request.py +26 -0
  17. vellum/client/types/named_test_case_document_variable_value.py +22 -0
  18. vellum/client/types/named_test_case_document_variable_value_request.py +22 -0
  19. vellum/client/types/named_test_case_image_variable_value.py +22 -0
  20. vellum/client/types/named_test_case_image_variable_value_request.py +22 -0
  21. vellum/client/types/named_test_case_variable_value.py +8 -0
  22. vellum/client/types/named_test_case_variable_value_request.py +8 -0
  23. vellum/client/types/named_test_case_video_variable_value.py +22 -0
  24. vellum/client/types/named_test_case_video_variable_value_request.py +22 -0
  25. vellum/client/types/node_execution_span_attributes.py +1 -0
  26. vellum/client/types/scenario_input.py +11 -1
  27. vellum/client/types/scenario_input_audio_variable_value.py +22 -0
  28. vellum/client/types/scenario_input_document_variable_value.py +22 -0
  29. vellum/client/types/scenario_input_image_variable_value.py +22 -0
  30. vellum/client/types/scenario_input_video_variable_value.py +22 -0
  31. vellum/client/types/span_link.py +1 -1
  32. vellum/client/types/span_link_type_enum.py +1 -1
  33. vellum/client/types/test_case_audio_variable_value.py +27 -0
  34. vellum/client/types/test_case_document_variable_value.py +27 -0
  35. vellum/client/types/test_case_image_variable_value.py +27 -0
  36. vellum/client/types/test_case_variable_value.py +8 -0
  37. vellum/client/types/test_case_video_variable_value.py +27 -0
  38. vellum/client/types/video_input.py +30 -0
  39. vellum/client/types/workflow_push_deployment_config_request.py +1 -0
  40. vellum/types/audio_input.py +3 -0
  41. vellum/types/document_input.py +3 -0
  42. vellum/types/image_input.py +3 -0
  43. vellum/types/named_scenario_input_audio_variable_value_request.py +3 -0
  44. vellum/types/named_scenario_input_document_variable_value_request.py +3 -0
  45. vellum/types/named_scenario_input_image_variable_value_request.py +3 -0
  46. vellum/types/named_scenario_input_video_variable_value_request.py +3 -0
  47. vellum/types/named_test_case_audio_variable_value.py +3 -0
  48. vellum/types/named_test_case_audio_variable_value_request.py +3 -0
  49. vellum/types/named_test_case_document_variable_value.py +3 -0
  50. vellum/types/named_test_case_document_variable_value_request.py +3 -0
  51. vellum/types/named_test_case_image_variable_value.py +3 -0
  52. vellum/types/named_test_case_image_variable_value_request.py +3 -0
  53. vellum/types/named_test_case_video_variable_value.py +3 -0
  54. vellum/types/named_test_case_video_variable_value_request.py +3 -0
  55. vellum/types/scenario_input_audio_variable_value.py +3 -0
  56. vellum/types/scenario_input_document_variable_value.py +3 -0
  57. vellum/types/scenario_input_image_variable_value.py +3 -0
  58. vellum/types/scenario_input_video_variable_value.py +3 -0
  59. vellum/types/test_case_audio_variable_value.py +3 -0
  60. vellum/types/test_case_document_variable_value.py +3 -0
  61. vellum/types/test_case_image_variable_value.py +3 -0
  62. vellum/types/test_case_video_variable_value.py +3 -0
  63. vellum/types/video_input.py +3 -0
  64. vellum/workflows/events/tests/test_event.py +9 -0
  65. vellum/workflows/events/types.py +3 -1
  66. vellum/workflows/integrations/tests/test_mcp_service.py +40 -1
  67. vellum/workflows/nodes/core/templating_node/node.py +3 -2
  68. vellum/workflows/nodes/core/templating_node/tests/test_templating_node.py +129 -0
  69. vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py +12 -0
  70. vellum/workflows/nodes/displayable/bases/inline_prompt_node/tests/test_inline_prompt_node.py +41 -0
  71. vellum/workflows/nodes/displayable/bases/utils.py +38 -1
  72. vellum/workflows/nodes/displayable/code_execution_node/utils.py +3 -20
  73. vellum/workflows/nodes/displayable/inline_prompt_node/node.py +3 -26
  74. vellum/workflows/nodes/displayable/prompt_deployment_node/node.py +3 -25
  75. vellum/workflows/nodes/utils.py +26 -1
  76. vellum/workflows/resolvers/base.py +18 -1
  77. vellum/workflows/resolvers/resolver.py +42 -0
  78. vellum/workflows/resolvers/tests/test_resolver.py +59 -0
  79. vellum/workflows/types/definition.py +1 -0
  80. vellum/workflows/utils/functions.py +4 -0
  81. vellum/workflows/utils/tests/test_functions.py +6 -3
  82. vellum/workflows/workflows/base.py +3 -0
  83. {vellum_ai-1.2.3.dist-info → vellum_ai-1.2.5.dist-info}/METADATA +1 -1
  84. {vellum_ai-1.2.3.dist-info → vellum_ai-1.2.5.dist-info}/RECORD +96 -46
  85. vellum_cli/__init__.py +6 -0
  86. vellum_cli/config.py +2 -0
  87. vellum_cli/push.py +3 -0
  88. vellum_cli/tests/test_pull.py +2 -0
  89. vellum_cli/tests/test_push.py +39 -0
  90. vellum_ee/workflows/display/nodes/vellum/tests/test_tool_calling_node.py +2 -0
  91. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_mcp_serialization.py +1 -0
  92. vellum_ee/workflows/display/utils/events.py +19 -1
  93. vellum_ee/workflows/display/utils/tests/test_events.py +42 -0
  94. {vellum_ai-1.2.3.dist-info → vellum_ai-1.2.5.dist-info}/LICENSE +0 -0
  95. {vellum_ai-1.2.3.dist-info → vellum_ai-1.2.5.dist-info}/WHEEL +0 -0
  96. {vellum_ai-1.2.3.dist-info → vellum_ai-1.2.5.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,22 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .vellum_audio_request import VellumAudioRequest
8
+
9
+
10
+ class NamedScenarioInputAudioVariableValueRequest(UniversalBaseModel):
11
+ type: typing.Literal["AUDIO"] = "AUDIO"
12
+ value: VellumAudioRequest
13
+ name: str
14
+
15
+ if IS_PYDANTIC_V2:
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
17
+ else:
18
+
19
+ class Config:
20
+ frozen = True
21
+ smart_union = True
22
+ extra = pydantic.Extra.allow
@@ -0,0 +1,22 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .vellum_document_request import VellumDocumentRequest
8
+
9
+
10
+ class NamedScenarioInputDocumentVariableValueRequest(UniversalBaseModel):
11
+ type: typing.Literal["DOCUMENT"] = "DOCUMENT"
12
+ value: VellumDocumentRequest
13
+ name: str
14
+
15
+ if IS_PYDANTIC_V2:
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
17
+ else:
18
+
19
+ class Config:
20
+ frozen = True
21
+ smart_union = True
22
+ extra = pydantic.Extra.allow
@@ -0,0 +1,22 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .vellum_image_request import VellumImageRequest
8
+
9
+
10
+ class NamedScenarioInputImageVariableValueRequest(UniversalBaseModel):
11
+ type: typing.Literal["IMAGE"] = "IMAGE"
12
+ value: VellumImageRequest
13
+ name: str
14
+
15
+ if IS_PYDANTIC_V2:
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
17
+ else:
18
+
19
+ class Config:
20
+ frozen = True
21
+ smart_union = True
22
+ extra = pydantic.Extra.allow
@@ -2,12 +2,20 @@
2
2
 
3
3
  import typing
4
4
 
5
+ from .named_scenario_input_audio_variable_value_request import NamedScenarioInputAudioVariableValueRequest
5
6
  from .named_scenario_input_chat_history_variable_value_request import NamedScenarioInputChatHistoryVariableValueRequest
7
+ from .named_scenario_input_document_variable_value_request import NamedScenarioInputDocumentVariableValueRequest
8
+ from .named_scenario_input_image_variable_value_request import NamedScenarioInputImageVariableValueRequest
6
9
  from .named_scenario_input_json_variable_value_request import NamedScenarioInputJsonVariableValueRequest
7
10
  from .named_scenario_input_string_variable_value_request import NamedScenarioInputStringVariableValueRequest
11
+ from .named_scenario_input_video_variable_value_request import NamedScenarioInputVideoVariableValueRequest
8
12
 
9
13
  NamedScenarioInputRequest = typing.Union[
10
14
  NamedScenarioInputStringVariableValueRequest,
11
15
  NamedScenarioInputJsonVariableValueRequest,
12
16
  NamedScenarioInputChatHistoryVariableValueRequest,
17
+ NamedScenarioInputAudioVariableValueRequest,
18
+ NamedScenarioInputVideoVariableValueRequest,
19
+ NamedScenarioInputImageVariableValueRequest,
20
+ NamedScenarioInputDocumentVariableValueRequest,
13
21
  ]
@@ -0,0 +1,22 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .vellum_video_request import VellumVideoRequest
8
+
9
+
10
+ class NamedScenarioInputVideoVariableValueRequest(UniversalBaseModel):
11
+ type: typing.Literal["VIDEO"] = "VIDEO"
12
+ value: VellumVideoRequest
13
+ name: str
14
+
15
+ if IS_PYDANTIC_V2:
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
17
+ else:
18
+
19
+ class Config:
20
+ frozen = True
21
+ smart_union = True
22
+ extra = pydantic.Extra.allow
@@ -0,0 +1,26 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .vellum_audio import VellumAudio
8
+
9
+
10
+ class NamedTestCaseAudioVariableValue(UniversalBaseModel):
11
+ """
12
+ Named Test Case value that is of type AUDIO
13
+ """
14
+
15
+ type: typing.Literal["AUDIO"] = "AUDIO"
16
+ value: VellumAudio
17
+ name: str
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
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .vellum_audio_request import VellumAudioRequest
8
+
9
+
10
+ class NamedTestCaseAudioVariableValueRequest(UniversalBaseModel):
11
+ """
12
+ Named Test Case value that is of type AUDIO
13
+ """
14
+
15
+ type: typing.Literal["AUDIO"] = "AUDIO"
16
+ value: VellumAudioRequest
17
+ name: str
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,22 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .vellum_document import VellumDocument
8
+
9
+
10
+ class NamedTestCaseDocumentVariableValue(UniversalBaseModel):
11
+ type: typing.Literal["DOCUMENT"] = "DOCUMENT"
12
+ value: VellumDocument
13
+ name: str
14
+
15
+ if IS_PYDANTIC_V2:
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
17
+ else:
18
+
19
+ class Config:
20
+ frozen = True
21
+ smart_union = True
22
+ extra = pydantic.Extra.allow
@@ -0,0 +1,22 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .vellum_document_request import VellumDocumentRequest
8
+
9
+
10
+ class NamedTestCaseDocumentVariableValueRequest(UniversalBaseModel):
11
+ type: typing.Literal["DOCUMENT"] = "DOCUMENT"
12
+ value: VellumDocumentRequest
13
+ name: str
14
+
15
+ if IS_PYDANTIC_V2:
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
17
+ else:
18
+
19
+ class Config:
20
+ frozen = True
21
+ smart_union = True
22
+ extra = pydantic.Extra.allow
@@ -0,0 +1,22 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .vellum_image import VellumImage
8
+
9
+
10
+ class NamedTestCaseImageVariableValue(UniversalBaseModel):
11
+ type: typing.Literal["IMAGE"] = "IMAGE"
12
+ value: VellumImage
13
+ name: str
14
+
15
+ if IS_PYDANTIC_V2:
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
17
+ else:
18
+
19
+ class Config:
20
+ frozen = True
21
+ smart_union = True
22
+ extra = pydantic.Extra.allow
@@ -0,0 +1,22 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .vellum_image_request import VellumImageRequest
8
+
9
+
10
+ class NamedTestCaseImageVariableValueRequest(UniversalBaseModel):
11
+ type: typing.Literal["IMAGE"] = "IMAGE"
12
+ value: VellumImageRequest
13
+ name: str
14
+
15
+ if IS_PYDANTIC_V2:
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
17
+ else:
18
+
19
+ class Config:
20
+ frozen = True
21
+ smart_union = True
22
+ extra = pydantic.Extra.allow
@@ -3,13 +3,17 @@
3
3
  import typing
4
4
 
5
5
  from .named_test_case_array_variable_value import NamedTestCaseArrayVariableValue
6
+ from .named_test_case_audio_variable_value import NamedTestCaseAudioVariableValue
6
7
  from .named_test_case_chat_history_variable_value import NamedTestCaseChatHistoryVariableValue
8
+ from .named_test_case_document_variable_value import NamedTestCaseDocumentVariableValue
7
9
  from .named_test_case_error_variable_value import NamedTestCaseErrorVariableValue
8
10
  from .named_test_case_function_call_variable_value import NamedTestCaseFunctionCallVariableValue
11
+ from .named_test_case_image_variable_value import NamedTestCaseImageVariableValue
9
12
  from .named_test_case_json_variable_value import NamedTestCaseJsonVariableValue
10
13
  from .named_test_case_number_variable_value import NamedTestCaseNumberVariableValue
11
14
  from .named_test_case_search_results_variable_value import NamedTestCaseSearchResultsVariableValue
12
15
  from .named_test_case_string_variable_value import NamedTestCaseStringVariableValue
16
+ from .named_test_case_video_variable_value import NamedTestCaseVideoVariableValue
13
17
 
14
18
  NamedTestCaseVariableValue = typing.Union[
15
19
  NamedTestCaseStringVariableValue,
@@ -20,4 +24,8 @@ NamedTestCaseVariableValue = typing.Union[
20
24
  NamedTestCaseErrorVariableValue,
21
25
  NamedTestCaseFunctionCallVariableValue,
22
26
  NamedTestCaseArrayVariableValue,
27
+ NamedTestCaseAudioVariableValue,
28
+ NamedTestCaseVideoVariableValue,
29
+ NamedTestCaseImageVariableValue,
30
+ NamedTestCaseDocumentVariableValue,
23
31
  ]
@@ -3,13 +3,17 @@
3
3
  import typing
4
4
 
5
5
  from .named_test_case_array_variable_value_request import NamedTestCaseArrayVariableValueRequest
6
+ from .named_test_case_audio_variable_value_request import NamedTestCaseAudioVariableValueRequest
6
7
  from .named_test_case_chat_history_variable_value_request import NamedTestCaseChatHistoryVariableValueRequest
8
+ from .named_test_case_document_variable_value_request import NamedTestCaseDocumentVariableValueRequest
7
9
  from .named_test_case_error_variable_value_request import NamedTestCaseErrorVariableValueRequest
8
10
  from .named_test_case_function_call_variable_value_request import NamedTestCaseFunctionCallVariableValueRequest
11
+ from .named_test_case_image_variable_value_request import NamedTestCaseImageVariableValueRequest
9
12
  from .named_test_case_json_variable_value_request import NamedTestCaseJsonVariableValueRequest
10
13
  from .named_test_case_number_variable_value_request import NamedTestCaseNumberVariableValueRequest
11
14
  from .named_test_case_search_results_variable_value_request import NamedTestCaseSearchResultsVariableValueRequest
12
15
  from .named_test_case_string_variable_value_request import NamedTestCaseStringVariableValueRequest
16
+ from .named_test_case_video_variable_value_request import NamedTestCaseVideoVariableValueRequest
13
17
 
14
18
  NamedTestCaseVariableValueRequest = typing.Union[
15
19
  NamedTestCaseStringVariableValueRequest,
@@ -20,4 +24,8 @@ NamedTestCaseVariableValueRequest = typing.Union[
20
24
  NamedTestCaseErrorVariableValueRequest,
21
25
  NamedTestCaseFunctionCallVariableValueRequest,
22
26
  NamedTestCaseArrayVariableValueRequest,
27
+ NamedTestCaseAudioVariableValueRequest,
28
+ NamedTestCaseVideoVariableValueRequest,
29
+ NamedTestCaseImageVariableValueRequest,
30
+ NamedTestCaseDocumentVariableValueRequest,
23
31
  ]
@@ -0,0 +1,22 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .vellum_video import VellumVideo
8
+
9
+
10
+ class NamedTestCaseVideoVariableValue(UniversalBaseModel):
11
+ type: typing.Literal["VIDEO"] = "VIDEO"
12
+ value: VellumVideo
13
+ name: str
14
+
15
+ if IS_PYDANTIC_V2:
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
17
+ else:
18
+
19
+ class Config:
20
+ frozen = True
21
+ smart_union = True
22
+ extra = pydantic.Extra.allow
@@ -0,0 +1,22 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .vellum_video_request import VellumVideoRequest
8
+
9
+
10
+ class NamedTestCaseVideoVariableValueRequest(UniversalBaseModel):
11
+ type: typing.Literal["VIDEO"] = "VIDEO"
12
+ value: VellumVideoRequest
13
+ name: str
14
+
15
+ if IS_PYDANTIC_V2:
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
17
+ else:
18
+
19
+ class Config:
20
+ frozen = True
21
+ smart_union = True
22
+ extra = pydantic.Extra.allow
@@ -8,6 +8,7 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
8
 
9
9
  class NodeExecutionSpanAttributes(UniversalBaseModel):
10
10
  label: str
11
+ filepath: typing.Optional[str] = None
11
12
  node_id: str
12
13
 
13
14
  if IS_PYDANTIC_V2:
@@ -2,10 +2,20 @@
2
2
 
3
3
  import typing
4
4
 
5
+ from .scenario_input_audio_variable_value import ScenarioInputAudioVariableValue
5
6
  from .scenario_input_chat_history_variable_value import ScenarioInputChatHistoryVariableValue
7
+ from .scenario_input_document_variable_value import ScenarioInputDocumentVariableValue
8
+ from .scenario_input_image_variable_value import ScenarioInputImageVariableValue
6
9
  from .scenario_input_json_variable_value import ScenarioInputJsonVariableValue
7
10
  from .scenario_input_string_variable_value import ScenarioInputStringVariableValue
11
+ from .scenario_input_video_variable_value import ScenarioInputVideoVariableValue
8
12
 
9
13
  ScenarioInput = typing.Union[
10
- ScenarioInputStringVariableValue, ScenarioInputJsonVariableValue, ScenarioInputChatHistoryVariableValue
14
+ ScenarioInputStringVariableValue,
15
+ ScenarioInputJsonVariableValue,
16
+ ScenarioInputChatHistoryVariableValue,
17
+ ScenarioInputAudioVariableValue,
18
+ ScenarioInputVideoVariableValue,
19
+ ScenarioInputImageVariableValue,
20
+ ScenarioInputDocumentVariableValue,
11
21
  ]
@@ -0,0 +1,22 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .vellum_audio import VellumAudio
8
+
9
+
10
+ class ScenarioInputAudioVariableValue(UniversalBaseModel):
11
+ type: typing.Literal["AUDIO"] = "AUDIO"
12
+ value: VellumAudio
13
+ input_variable_id: str
14
+
15
+ if IS_PYDANTIC_V2:
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
17
+ else:
18
+
19
+ class Config:
20
+ frozen = True
21
+ smart_union = True
22
+ extra = pydantic.Extra.allow
@@ -0,0 +1,22 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .vellum_document import VellumDocument
8
+
9
+
10
+ class ScenarioInputDocumentVariableValue(UniversalBaseModel):
11
+ type: typing.Literal["DOCUMENT"] = "DOCUMENT"
12
+ value: VellumDocument
13
+ input_variable_id: str
14
+
15
+ if IS_PYDANTIC_V2:
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
17
+ else:
18
+
19
+ class Config:
20
+ frozen = True
21
+ smart_union = True
22
+ extra = pydantic.Extra.allow
@@ -0,0 +1,22 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .vellum_image import VellumImage
8
+
9
+
10
+ class ScenarioInputImageVariableValue(UniversalBaseModel):
11
+ type: typing.Literal["IMAGE"] = "IMAGE"
12
+ value: VellumImage
13
+ input_variable_id: str
14
+
15
+ if IS_PYDANTIC_V2:
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
17
+ else:
18
+
19
+ class Config:
20
+ frozen = True
21
+ smart_union = True
22
+ extra = pydantic.Extra.allow
@@ -0,0 +1,22 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .vellum_video import VellumVideo
8
+
9
+
10
+ class ScenarioInputVideoVariableValue(UniversalBaseModel):
11
+ type: typing.Literal["VIDEO"] = "VIDEO"
12
+ value: VellumVideo
13
+ input_variable_id: str
14
+
15
+ if IS_PYDANTIC_V2:
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
17
+ else:
18
+
19
+ class Config:
20
+ frozen = True
21
+ smart_union = True
22
+ extra = pydantic.Extra.allow
@@ -11,7 +11,7 @@ from .span_link_type_enum import SpanLinkTypeEnum
11
11
 
12
12
  class SpanLink(UniversalBaseModel):
13
13
  trace_id: str
14
- type: SpanLinkTypeEnum = "TRIGGERED_BY"
14
+ type: SpanLinkTypeEnum
15
15
  span_context: "ParentContext"
16
16
 
17
17
  if IS_PYDANTIC_V2:
@@ -2,4 +2,4 @@
2
2
 
3
3
  import typing
4
4
 
5
- SpanLinkTypeEnum = typing.Literal["TRIGGERED_BY"]
5
+ SpanLinkTypeEnum = typing.Union[typing.Literal["TRIGGERED_BY", "PREVIOUS_SPAN", "ROOT_SPAN"], typing.Any]
@@ -0,0 +1,27 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .vellum_audio import VellumAudio
8
+
9
+
10
+ class TestCaseAudioVariableValue(UniversalBaseModel):
11
+ """
12
+ An audio value for a variable in a Test Case.
13
+ """
14
+
15
+ variable_id: str
16
+ name: typing.Optional[str] = None
17
+ type: typing.Literal["AUDIO"] = "AUDIO"
18
+ value: VellumAudio
19
+
20
+ if IS_PYDANTIC_V2:
21
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
22
+ else:
23
+
24
+ class Config:
25
+ frozen = True
26
+ smart_union = True
27
+ extra = pydantic.Extra.allow
@@ -0,0 +1,27 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .vellum_document import VellumDocument
8
+
9
+
10
+ class TestCaseDocumentVariableValue(UniversalBaseModel):
11
+ """
12
+ A document value for a variable in a Test Case.
13
+ """
14
+
15
+ variable_id: str
16
+ name: typing.Optional[str] = None
17
+ type: typing.Literal["DOCUMENT"] = "DOCUMENT"
18
+ value: VellumDocument
19
+
20
+ if IS_PYDANTIC_V2:
21
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
22
+ else:
23
+
24
+ class Config:
25
+ frozen = True
26
+ smart_union = True
27
+ extra = pydantic.Extra.allow
@@ -0,0 +1,27 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .vellum_image import VellumImage
8
+
9
+
10
+ class TestCaseImageVariableValue(UniversalBaseModel):
11
+ """
12
+ An image value for a variable in a Test Case.
13
+ """
14
+
15
+ variable_id: str
16
+ name: typing.Optional[str] = None
17
+ type: typing.Literal["IMAGE"] = "IMAGE"
18
+ value: VellumImage
19
+
20
+ if IS_PYDANTIC_V2:
21
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
22
+ else:
23
+
24
+ class Config:
25
+ frozen = True
26
+ smart_union = True
27
+ extra = pydantic.Extra.allow
@@ -3,13 +3,17 @@
3
3
  import typing
4
4
 
5
5
  from .test_case_array_variable_value import TestCaseArrayVariableValue
6
+ from .test_case_audio_variable_value import TestCaseAudioVariableValue
6
7
  from .test_case_chat_history_variable_value import TestCaseChatHistoryVariableValue
8
+ from .test_case_document_variable_value import TestCaseDocumentVariableValue
7
9
  from .test_case_error_variable_value import TestCaseErrorVariableValue
8
10
  from .test_case_function_call_variable_value import TestCaseFunctionCallVariableValue
11
+ from .test_case_image_variable_value import TestCaseImageVariableValue
9
12
  from .test_case_json_variable_value import TestCaseJsonVariableValue
10
13
  from .test_case_number_variable_value import TestCaseNumberVariableValue
11
14
  from .test_case_search_results_variable_value import TestCaseSearchResultsVariableValue
12
15
  from .test_case_string_variable_value import TestCaseStringVariableValue
16
+ from .test_case_video_variable_value import TestCaseVideoVariableValue
13
17
 
14
18
  TestCaseVariableValue = typing.Union[
15
19
  TestCaseStringVariableValue,
@@ -20,4 +24,8 @@ TestCaseVariableValue = typing.Union[
20
24
  TestCaseErrorVariableValue,
21
25
  TestCaseFunctionCallVariableValue,
22
26
  TestCaseArrayVariableValue,
27
+ TestCaseAudioVariableValue,
28
+ TestCaseImageVariableValue,
29
+ TestCaseVideoVariableValue,
30
+ TestCaseDocumentVariableValue,
23
31
  ]
@@ -0,0 +1,27 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .vellum_video import VellumVideo
8
+
9
+
10
+ class TestCaseVideoVariableValue(UniversalBaseModel):
11
+ """
12
+ A video value for a variable in a Test Case.
13
+ """
14
+
15
+ variable_id: str
16
+ name: typing.Optional[str] = None
17
+ type: typing.Literal["VIDEO"] = "VIDEO"
18
+ value: VellumVideo
19
+
20
+ if IS_PYDANTIC_V2:
21
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
22
+ else:
23
+
24
+ class Config:
25
+ frozen = True
26
+ smart_union = True
27
+ extra = pydantic.Extra.allow