vellum-ai 1.8.4__py3-none-any.whl → 1.8.6__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 (56) hide show
  1. vellum/__init__.py +6 -0
  2. vellum/client/core/client_wrapper.py +2 -2
  3. vellum/client/types/__init__.py +6 -0
  4. vellum/client/types/api_actor_type_enum.py +7 -0
  5. vellum/client/types/api_request_parent_context.py +6 -0
  6. vellum/client/types/external_parent_context.py +2 -0
  7. vellum/client/types/integration_trigger_context.py +38 -0
  8. vellum/client/types/node_execution_fulfilled_event.py +2 -0
  9. vellum/client/types/node_execution_initiated_event.py +2 -0
  10. vellum/client/types/node_execution_paused_event.py +2 -0
  11. vellum/client/types/node_execution_rejected_event.py +2 -0
  12. vellum/client/types/node_execution_resumed_event.py +2 -0
  13. vellum/client/types/node_execution_span.py +2 -0
  14. vellum/client/types/node_execution_streaming_event.py +2 -0
  15. vellum/client/types/node_parent_context.py +2 -0
  16. vellum/client/types/parent_context.py +4 -0
  17. vellum/client/types/prompt_deployment_parent_context.py +2 -0
  18. vellum/client/types/scheduled_trigger_context.py +38 -0
  19. vellum/client/types/slim_workflow_execution_read.py +2 -0
  20. vellum/client/types/span_link.py +2 -0
  21. vellum/client/types/workflow_deployment_event_executions_response.py +2 -0
  22. vellum/client/types/workflow_deployment_parent_context.py +2 -0
  23. vellum/client/types/workflow_event_execution_read.py +2 -0
  24. vellum/client/types/workflow_execution_detail.py +2 -0
  25. vellum/client/types/workflow_execution_fulfilled_event.py +2 -0
  26. vellum/client/types/workflow_execution_initiated_event.py +2 -0
  27. vellum/client/types/workflow_execution_paused_event.py +2 -0
  28. vellum/client/types/workflow_execution_rejected_event.py +2 -0
  29. vellum/client/types/workflow_execution_resumed_event.py +2 -0
  30. vellum/client/types/workflow_execution_snapshotted_event.py +2 -0
  31. vellum/client/types/workflow_execution_span.py +2 -0
  32. vellum/client/types/workflow_execution_streaming_event.py +2 -0
  33. vellum/client/types/workflow_parent_context.py +2 -0
  34. vellum/client/types/workflow_sandbox_parent_context.py +2 -0
  35. vellum/types/api_actor_type_enum.py +3 -0
  36. vellum/types/integration_trigger_context.py +3 -0
  37. vellum/types/scheduled_trigger_context.py +3 -0
  38. vellum/workflows/descriptors/base.py +11 -0
  39. vellum/workflows/descriptors/tests/test_utils.py +7 -0
  40. vellum/workflows/events/types.py +2 -0
  41. vellum/workflows/nodes/displayable/tool_calling_node/node.py +15 -1
  42. vellum/workflows/triggers/__init__.py +2 -1
  43. vellum/workflows/triggers/base.py +12 -4
  44. vellum/workflows/triggers/schedule.py +18 -0
  45. vellum/workflows/utils/uuids.py +4 -17
  46. {vellum_ai-1.8.4.dist-info → vellum_ai-1.8.6.dist-info}/METADATA +1 -1
  47. {vellum_ai-1.8.4.dist-info → vellum_ai-1.8.6.dist-info}/RECORD +56 -49
  48. vellum_ee/workflows/display/tests/workflow_serialization/test_manual_trigger_serialization.py +3 -3
  49. vellum_ee/workflows/display/utils/expressions.py +1 -2
  50. vellum_ee/workflows/display/workflows/base_workflow_display.py +4 -4
  51. vellum_ee/workflows/server/virtual_file_loader.py +45 -1
  52. vellum_ee/workflows/tests/test_server.py +0 -64
  53. vellum_ee/workflows/tests/test_virtual_files.py +51 -0
  54. {vellum_ai-1.8.4.dist-info → vellum_ai-1.8.6.dist-info}/LICENSE +0 -0
  55. {vellum_ai-1.8.4.dist-info → vellum_ai-1.8.6.dist-info}/WHEEL +0 -0
  56. {vellum_ai-1.8.4.dist-info → vellum_ai-1.8.6.dist-info}/entry_points.txt +0 -0
vellum/__init__.py CHANGED
@@ -13,6 +13,7 @@ from .client.types import (
13
13
  AdHocRejectedPromptExecutionMeta,
14
14
  AdHocStreamingPromptExecutionMeta,
15
15
  AddOpenaiApiKeyEnum,
16
+ ApiActorTypeEnum,
16
17
  ApiNodeResult,
17
18
  ApiNodeResultData,
18
19
  ApiRequestParentContext,
@@ -233,6 +234,7 @@ from .client.types import (
233
234
  IntegrationName,
234
235
  IntegrationProvider,
235
236
  IntegrationRead,
237
+ IntegrationTriggerContext,
236
238
  InvokedPort,
237
239
  IterationStateEnum,
238
240
  JinjaPromptBlock,
@@ -425,6 +427,7 @@ from .client.types import (
425
427
  ScenarioInputJsonVariableValue,
426
428
  ScenarioInputStringVariableValue,
427
429
  ScenarioInputVideoVariableValue,
430
+ ScheduledTriggerContext,
428
431
  SearchFiltersRequest,
429
432
  SearchNodeResult,
430
433
  SearchNodeResultData,
@@ -756,6 +759,7 @@ __all__ = [
756
759
  "AdHocRejectedPromptExecutionMeta",
757
760
  "AdHocStreamingPromptExecutionMeta",
758
761
  "AddOpenaiApiKeyEnum",
762
+ "ApiActorTypeEnum",
759
763
  "ApiNodeResult",
760
764
  "ApiNodeResultData",
761
765
  "ApiRequestParentContext",
@@ -982,6 +986,7 @@ __all__ = [
982
986
  "IntegrationName",
983
987
  "IntegrationProvider",
984
988
  "IntegrationRead",
989
+ "IntegrationTriggerContext",
985
990
  "InternalServerError",
986
991
  "InvokedPort",
987
992
  "IterationStateEnum",
@@ -1179,6 +1184,7 @@ __all__ = [
1179
1184
  "ScenarioInputJsonVariableValue",
1180
1185
  "ScenarioInputStringVariableValue",
1181
1186
  "ScenarioInputVideoVariableValue",
1187
+ "ScheduledTriggerContext",
1182
1188
  "SearchFiltersRequest",
1183
1189
  "SearchNodeResult",
1184
1190
  "SearchNodeResultData",
@@ -27,10 +27,10 @@ class BaseClientWrapper:
27
27
 
28
28
  def get_headers(self) -> typing.Dict[str, str]:
29
29
  headers: typing.Dict[str, str] = {
30
- "User-Agent": "vellum-ai/1.8.4",
30
+ "User-Agent": "vellum-ai/1.8.6",
31
31
  "X-Fern-Language": "Python",
32
32
  "X-Fern-SDK-Name": "vellum-ai",
33
- "X-Fern-SDK-Version": "1.8.4",
33
+ "X-Fern-SDK-Version": "1.8.6",
34
34
  **(self.get_custom_headers() or {}),
35
35
  }
36
36
  if self._api_version is not None:
@@ -9,6 +9,7 @@ from .ad_hoc_initiated_prompt_execution_meta import AdHocInitiatedPromptExecutio
9
9
  from .ad_hoc_rejected_prompt_execution_meta import AdHocRejectedPromptExecutionMeta
10
10
  from .ad_hoc_streaming_prompt_execution_meta import AdHocStreamingPromptExecutionMeta
11
11
  from .add_openai_api_key_enum import AddOpenaiApiKeyEnum
12
+ from .api_actor_type_enum import ApiActorTypeEnum
12
13
  from .api_node_result import ApiNodeResult
13
14
  from .api_node_result_data import ApiNodeResultData
14
15
  from .api_request_parent_context import ApiRequestParentContext
@@ -241,6 +242,7 @@ from .integration_credential_access_type import IntegrationCredentialAccessType
241
242
  from .integration_name import IntegrationName
242
243
  from .integration_provider import IntegrationProvider
243
244
  from .integration_read import IntegrationRead
245
+ from .integration_trigger_context import IntegrationTriggerContext
244
246
  from .invoked_port import InvokedPort
245
247
  from .iteration_state_enum import IterationStateEnum
246
248
  from .jinja_prompt_block import JinjaPromptBlock
@@ -433,6 +435,7 @@ from .scenario_input_image_variable_value import ScenarioInputImageVariableValue
433
435
  from .scenario_input_json_variable_value import ScenarioInputJsonVariableValue
434
436
  from .scenario_input_string_variable_value import ScenarioInputStringVariableValue
435
437
  from .scenario_input_video_variable_value import ScenarioInputVideoVariableValue
438
+ from .scheduled_trigger_context import ScheduledTriggerContext
436
439
  from .search_filters_request import SearchFiltersRequest
437
440
  from .search_node_result import SearchNodeResult
438
441
  from .search_node_result_data import SearchNodeResultData
@@ -735,6 +738,7 @@ __all__ = [
735
738
  "AdHocRejectedPromptExecutionMeta",
736
739
  "AdHocStreamingPromptExecutionMeta",
737
740
  "AddOpenaiApiKeyEnum",
741
+ "ApiActorTypeEnum",
738
742
  "ApiNodeResult",
739
743
  "ApiNodeResultData",
740
744
  "ApiRequestParentContext",
@@ -955,6 +959,7 @@ __all__ = [
955
959
  "IntegrationName",
956
960
  "IntegrationProvider",
957
961
  "IntegrationRead",
962
+ "IntegrationTriggerContext",
958
963
  "InvokedPort",
959
964
  "IterationStateEnum",
960
965
  "JinjaPromptBlock",
@@ -1147,6 +1152,7 @@ __all__ = [
1147
1152
  "ScenarioInputJsonVariableValue",
1148
1153
  "ScenarioInputStringVariableValue",
1149
1154
  "ScenarioInputVideoVariableValue",
1155
+ "ScheduledTriggerContext",
1150
1156
  "SearchFiltersRequest",
1151
1157
  "SearchNodeResult",
1152
1158
  "SearchNodeResultData",
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ ApiActorTypeEnum = typing.Union[
6
+ typing.Literal["WORKSPACE_API_KEY", "ENVIRONMENT_API_KEY", "JWT", "SERVICE_TOKEN"], typing.Any
7
+ ]
@@ -6,6 +6,7 @@ import typing
6
6
 
7
7
  import pydantic
8
8
  from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel, update_forward_refs
9
+ from .api_actor_type_enum import ApiActorTypeEnum
9
10
 
10
11
 
11
12
  class ApiRequestParentContext(UniversalBaseModel):
@@ -13,6 +14,9 @@ class ApiRequestParentContext(UniversalBaseModel):
13
14
  links: typing.Optional[typing.List["SpanLink"]] = None
14
15
  type: typing.Literal["API_REQUEST"] = "API_REQUEST"
15
16
  span_id: str
17
+ api_actor_id: typing.Optional[str] = None
18
+ api_actor_type: typing.Optional[ApiActorTypeEnum] = None
19
+ api_actor_label: typing.Optional[str] = None
16
20
 
17
21
  if IS_PYDANTIC_V2:
18
22
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -25,8 +29,10 @@ class ApiRequestParentContext(UniversalBaseModel):
25
29
 
26
30
 
27
31
  from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
32
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
28
33
  from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
29
34
  from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
35
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
30
36
  from .span_link import SpanLink # noqa: E402, F401, I001
31
37
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
32
38
  from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
@@ -25,8 +25,10 @@ class ExternalParentContext(UniversalBaseModel):
25
25
 
26
26
 
27
27
  from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
28
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
28
29
  from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
29
30
  from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
31
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
30
32
  from .span_link import SpanLink # noqa: E402, F401, I001
31
33
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
32
34
  from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
@@ -0,0 +1,38 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from __future__ import annotations
4
+
5
+ import typing
6
+
7
+ import pydantic
8
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel, update_forward_refs
9
+
10
+
11
+ class IntegrationTriggerContext(UniversalBaseModel):
12
+ parent: typing.Optional["ParentContext"] = None
13
+ links: typing.Optional[typing.List["SpanLink"]] = None
14
+ type: typing.Literal["INTEGRATION"] = "INTEGRATION"
15
+ span_id: str
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
25
+
26
+
27
+ from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
28
+ from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
29
+ from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
30
+ from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
31
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
32
+ from .span_link import SpanLink # noqa: E402, F401, I001
33
+ from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
34
+ from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
35
+ from .workflow_sandbox_parent_context import WorkflowSandboxParentContext # noqa: E402, F401, I001
36
+ from .parent_context import ParentContext # noqa: E402, F401, I001
37
+
38
+ update_forward_refs(IntegrationTriggerContext)
@@ -34,8 +34,10 @@ class NodeExecutionFulfilledEvent(UniversalBaseModel):
34
34
 
35
35
  from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
36
36
  from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
37
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
37
38
  from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
38
39
  from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
40
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
39
41
  from .span_link import SpanLink # noqa: E402, F401, I001
40
42
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
41
43
  from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
@@ -34,8 +34,10 @@ class NodeExecutionInitiatedEvent(UniversalBaseModel):
34
34
 
35
35
  from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
36
36
  from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
37
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
37
38
  from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
38
39
  from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
40
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
39
41
  from .span_link import SpanLink # noqa: E402, F401, I001
40
42
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
41
43
  from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
@@ -34,8 +34,10 @@ class NodeExecutionPausedEvent(UniversalBaseModel):
34
34
 
35
35
  from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
36
36
  from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
37
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
37
38
  from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
38
39
  from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
40
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
39
41
  from .span_link import SpanLink # noqa: E402, F401, I001
40
42
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
41
43
  from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
@@ -34,8 +34,10 @@ class NodeExecutionRejectedEvent(UniversalBaseModel):
34
34
 
35
35
  from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
36
36
  from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
37
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
37
38
  from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
38
39
  from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
40
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
39
41
  from .span_link import SpanLink # noqa: E402, F401, I001
40
42
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
41
43
  from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
@@ -34,8 +34,10 @@ class NodeExecutionResumedEvent(UniversalBaseModel):
34
34
 
35
35
  from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
36
36
  from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
37
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
37
38
  from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
38
39
  from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
40
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
39
41
  from .span_link import SpanLink # noqa: E402, F401, I001
40
42
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
41
43
  from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
@@ -34,8 +34,10 @@ class NodeExecutionSpan(UniversalBaseModel):
34
34
 
35
35
  from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
36
36
  from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
37
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
37
38
  from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
38
39
  from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
40
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
39
41
  from .span_link import SpanLink # noqa: E402, F401, I001
40
42
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
41
43
  from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
@@ -34,8 +34,10 @@ class NodeExecutionStreamingEvent(UniversalBaseModel):
34
34
 
35
35
  from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
36
36
  from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
37
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
37
38
  from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
38
39
  from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
40
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
39
41
  from .span_link import SpanLink # noqa: E402, F401, I001
40
42
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
41
43
  from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
@@ -28,7 +28,9 @@ class NodeParentContext(UniversalBaseModel):
28
28
 
29
29
  from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
30
30
  from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
31
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
31
32
  from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
33
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
32
34
  from .span_link import SpanLink # noqa: E402, F401, I001
33
35
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
34
36
  from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
@@ -7,8 +7,10 @@ import typing
7
7
  if typing.TYPE_CHECKING:
8
8
  from .api_request_parent_context import ApiRequestParentContext
9
9
  from .external_parent_context import ExternalParentContext
10
+ from .integration_trigger_context import IntegrationTriggerContext
10
11
  from .node_parent_context import NodeParentContext
11
12
  from .prompt_deployment_parent_context import PromptDeploymentParentContext
13
+ from .scheduled_trigger_context import ScheduledTriggerContext
12
14
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext
13
15
  from .workflow_parent_context import WorkflowParentContext
14
16
  from .workflow_sandbox_parent_context import WorkflowSandboxParentContext
@@ -20,4 +22,6 @@ ParentContext = typing.Union[
20
22
  "PromptDeploymentParentContext",
21
23
  "ApiRequestParentContext",
22
24
  "ExternalParentContext",
25
+ "ScheduledTriggerContext",
26
+ "IntegrationTriggerContext",
23
27
  ]
@@ -34,7 +34,9 @@ class PromptDeploymentParentContext(UniversalBaseModel):
34
34
 
35
35
  from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
36
36
  from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
37
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
37
38
  from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
39
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
38
40
  from .span_link import SpanLink # noqa: E402, F401, I001
39
41
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
40
42
  from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
@@ -0,0 +1,38 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from __future__ import annotations
4
+
5
+ import typing
6
+
7
+ import pydantic
8
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel, update_forward_refs
9
+
10
+
11
+ class ScheduledTriggerContext(UniversalBaseModel):
12
+ parent: typing.Optional["ParentContext"] = None
13
+ links: typing.Optional[typing.List["SpanLink"]] = None
14
+ type: typing.Literal["SCHEDULED"] = "SCHEDULED"
15
+ span_id: str
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
25
+
26
+
27
+ from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
28
+ from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
29
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
30
+ from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
31
+ from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
32
+ from .span_link import SpanLink # noqa: E402, F401, I001
33
+ from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
34
+ from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
35
+ from .workflow_sandbox_parent_context import WorkflowSandboxParentContext # noqa: E402, F401, I001
36
+ from .parent_context import ParentContext # noqa: E402, F401, I001
37
+
38
+ update_forward_refs(ScheduledTriggerContext)
@@ -39,8 +39,10 @@ class SlimWorkflowExecutionRead(UniversalBaseModel):
39
39
  from .array_vellum_value import ArrayVellumValue # noqa: E402, F401, I001
40
40
  from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
41
41
  from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
42
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
42
43
  from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
43
44
  from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
45
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
44
46
  from .span_link import SpanLink # noqa: E402, F401, I001
45
47
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
46
48
  from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
@@ -26,8 +26,10 @@ class SpanLink(UniversalBaseModel):
26
26
 
27
27
  from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
28
28
  from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
29
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
29
30
  from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
30
31
  from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
32
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
31
33
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
32
34
  from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
33
35
  from .workflow_sandbox_parent_context import WorkflowSandboxParentContext # noqa: E402, F401, I001
@@ -26,8 +26,10 @@ class WorkflowDeploymentEventExecutionsResponse(UniversalBaseModel):
26
26
  from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
27
27
  from .array_vellum_value import ArrayVellumValue # noqa: E402, F401, I001
28
28
  from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
29
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
29
30
  from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
30
31
  from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
32
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
31
33
  from .span_link import SpanLink # noqa: E402, F401, I001
32
34
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
33
35
  from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
@@ -34,8 +34,10 @@ class WorkflowDeploymentParentContext(UniversalBaseModel):
34
34
 
35
35
  from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
36
36
  from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
37
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
37
38
  from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
38
39
  from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
40
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
39
41
  from .span_link import SpanLink # noqa: E402, F401, I001
40
42
  from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
41
43
  from .workflow_sandbox_parent_context import WorkflowSandboxParentContext # noqa: E402, F401, I001
@@ -42,8 +42,10 @@ class WorkflowEventExecutionRead(UniversalBaseModel):
42
42
  from .array_vellum_value import ArrayVellumValue # noqa: E402, F401, I001
43
43
  from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
44
44
  from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
45
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
45
46
  from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
46
47
  from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
48
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
47
49
  from .span_link import SpanLink # noqa: E402, F401, I001
48
50
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
49
51
  from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
@@ -37,8 +37,10 @@ class WorkflowExecutionDetail(UniversalBaseModel):
37
37
 
38
38
  from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
39
39
  from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
40
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
40
41
  from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
41
42
  from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
43
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
42
44
  from .span_link import SpanLink # noqa: E402, F401, I001
43
45
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
44
46
  from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
@@ -34,8 +34,10 @@ class WorkflowExecutionFulfilledEvent(UniversalBaseModel):
34
34
 
35
35
  from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
36
36
  from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
37
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
37
38
  from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
38
39
  from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
40
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
39
41
  from .span_link import SpanLink # noqa: E402, F401, I001
40
42
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
41
43
  from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
@@ -34,8 +34,10 @@ class WorkflowExecutionInitiatedEvent(UniversalBaseModel):
34
34
 
35
35
  from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
36
36
  from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
37
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
37
38
  from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
38
39
  from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
40
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
39
41
  from .span_link import SpanLink # noqa: E402, F401, I001
40
42
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
41
43
  from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
@@ -34,8 +34,10 @@ class WorkflowExecutionPausedEvent(UniversalBaseModel):
34
34
 
35
35
  from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
36
36
  from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
37
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
37
38
  from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
38
39
  from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
40
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
39
41
  from .span_link import SpanLink # noqa: E402, F401, I001
40
42
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
41
43
  from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
@@ -34,8 +34,10 @@ class WorkflowExecutionRejectedEvent(UniversalBaseModel):
34
34
 
35
35
  from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
36
36
  from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
37
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
37
38
  from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
38
39
  from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
40
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
39
41
  from .span_link import SpanLink # noqa: E402, F401, I001
40
42
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
41
43
  from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
@@ -34,8 +34,10 @@ class WorkflowExecutionResumedEvent(UniversalBaseModel):
34
34
 
35
35
  from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
36
36
  from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
37
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
37
38
  from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
38
39
  from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
40
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
39
41
  from .span_link import SpanLink # noqa: E402, F401, I001
40
42
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
41
43
  from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
@@ -34,8 +34,10 @@ class WorkflowExecutionSnapshottedEvent(UniversalBaseModel):
34
34
 
35
35
  from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
36
36
  from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
37
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
37
38
  from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
38
39
  from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
40
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
39
41
  from .span_link import SpanLink # noqa: E402, F401, I001
40
42
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
41
43
  from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
@@ -34,8 +34,10 @@ class WorkflowExecutionSpan(UniversalBaseModel):
34
34
 
35
35
  from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
36
36
  from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
37
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
37
38
  from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
38
39
  from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
40
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
39
41
  from .span_link import SpanLink # noqa: E402, F401, I001
40
42
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
41
43
  from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
@@ -34,8 +34,10 @@ class WorkflowExecutionStreamingEvent(UniversalBaseModel):
34
34
 
35
35
  from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
36
36
  from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
37
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
37
38
  from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
38
39
  from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
40
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
39
41
  from .span_link import SpanLink # noqa: E402, F401, I001
40
42
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
41
43
  from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
@@ -28,8 +28,10 @@ class WorkflowParentContext(UniversalBaseModel):
28
28
 
29
29
  from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
30
30
  from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
31
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
31
32
  from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
32
33
  from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
34
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
33
35
  from .span_link import SpanLink # noqa: E402, F401, I001
34
36
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
35
37
  from .workflow_sandbox_parent_context import WorkflowSandboxParentContext # noqa: E402, F401, I001
@@ -29,8 +29,10 @@ class WorkflowSandboxParentContext(UniversalBaseModel):
29
29
 
30
30
  from .api_request_parent_context import ApiRequestParentContext # noqa: E402, F401, I001
31
31
  from .external_parent_context import ExternalParentContext # noqa: E402, F401, I001
32
+ from .integration_trigger_context import IntegrationTriggerContext # noqa: E402, F401, I001
32
33
  from .node_parent_context import NodeParentContext # noqa: E402, F401, I001
33
34
  from .prompt_deployment_parent_context import PromptDeploymentParentContext # noqa: E402, F401, I001
35
+ from .scheduled_trigger_context import ScheduledTriggerContext # noqa: E402, F401, I001
34
36
  from .span_link import SpanLink # noqa: E402, F401, I001
35
37
  from .workflow_deployment_parent_context import WorkflowDeploymentParentContext # noqa: E402, F401, I001
36
38
  from .workflow_parent_context import WorkflowParentContext # noqa: E402, F401, I001
@@ -0,0 +1,3 @@
1
+ # WARNING: This file will be removed in a future release. Please import from "vellum.client" instead.
2
+
3
+ from vellum.client.types.api_actor_type_enum import *
@@ -0,0 +1,3 @@
1
+ # WARNING: This file will be removed in a future release. Please import from "vellum.client" instead.
2
+
3
+ from vellum.client.types.integration_trigger_context import *
@@ -0,0 +1,3 @@
1
+ # WARNING: This file will be removed in a future release. Please import from "vellum.client" instead.
2
+
3
+ from vellum.client.types.scheduled_trigger_context import *
@@ -399,6 +399,17 @@ class BaseDescriptor(Generic[_T]):
399
399
 
400
400
  return AddExpression(lhs=self, rhs=other)
401
401
 
402
+ @overload
403
+ def __add__(self, other: "BaseDescriptor[_O]") -> "AddExpression[_T, _O]": ...
404
+
405
+ @overload
406
+ def __add__(self, other: _O) -> "AddExpression[_T, _O]": ...
407
+
408
+ def __add__(self, other: "Union[BaseDescriptor[_O], _O]") -> "AddExpression[_T, _O]":
409
+ from vellum.workflows.expressions.add import AddExpression
410
+
411
+ return AddExpression(lhs=self, rhs=other)
412
+
402
413
  @overload
403
414
  def minus(self, other: "BaseDescriptor[_O]") -> "MinusExpression[_T, _O]": ...
404
415
 
@@ -125,6 +125,10 @@ class DummyNode(BaseNode[FixtureState]):
125
125
  (ConstantValueReference(b'{"foo": "bar"}').parse_json(), {"foo": "bar"}),
126
126
  (ConstantValueReference(bytearray(b'{"foo": "bar"}')).parse_json(), {"foo": "bar"}),
127
127
  (ConstantValueReference(b'{"key": "\xf0\x9f\x8c\x9f"}').parse_json(), {"key": "🌟"}),
128
+ # Test + operator
129
+ (FixtureState.alpha + FixtureState.beta, 3),
130
+ (FixtureState.gamma + FixtureState.delta, "helloel"),
131
+ (FixtureState.theta + FixtureState.theta, ["baz", "baz"]),
128
132
  ],
129
133
  ids=[
130
134
  "or",
@@ -184,6 +188,9 @@ class DummyNode(BaseNode[FixtureState]):
184
188
  "parse_json_bytes",
185
189
  "parse_json_bytearray",
186
190
  "parse_json_bytes_with_utf8_chars",
191
+ "add_integers",
192
+ "add_strings",
193
+ "add_lists",
187
194
  ],
188
195
  )
189
196
  def test_resolve_value__happy_path(descriptor, expected_value):
@@ -158,6 +158,8 @@ ParentContext = Annotated[
158
158
  WorkflowSandboxParentContext,
159
159
  APIRequestParentContext,
160
160
  ExternalParentContext,
161
+ WorkflowDeploymentScheduledTriggerContext,
162
+ WorkflowDeploymentIntegrationTriggerContext,
161
163
  UnknownParentContext,
162
164
  ],
163
165
  ParentContextDiscriminator(),