vellum-ai 1.7.3__py3-none-any.whl → 1.7.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 (42) hide show
  1. vellum/__init__.py +2 -0
  2. vellum/client/core/client_wrapper.py +2 -2
  3. vellum/client/core/pydantic_utilities.py +8 -1
  4. vellum/client/reference.md +95 -0
  5. vellum/client/resources/workflow_deployments/client.py +111 -0
  6. vellum/client/resources/workflow_deployments/raw_client.py +121 -0
  7. vellum/client/types/__init__.py +2 -0
  8. vellum/client/types/paginated_workflow_deployment_release_list.py +30 -0
  9. vellum/client/types/vellum_error_code_enum.py +2 -0
  10. vellum/client/types/vellum_sdk_error_code_enum.py +2 -0
  11. vellum/client/types/workflow_execution_event_error_code.py +2 -0
  12. vellum/plugins/pydantic.py +1 -0
  13. vellum/types/paginated_workflow_deployment_release_list.py +3 -0
  14. vellum/workflows/edges/__init__.py +2 -0
  15. vellum/workflows/edges/trigger_edge.py +67 -0
  16. vellum/workflows/errors/types.py +3 -0
  17. vellum/workflows/events/tests/test_event.py +41 -0
  18. vellum/workflows/events/workflow.py +15 -3
  19. vellum/workflows/exceptions.py +9 -1
  20. vellum/workflows/graph/graph.py +93 -0
  21. vellum/workflows/graph/tests/test_graph.py +167 -0
  22. vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py +11 -1
  23. vellum/workflows/nodes/displayable/tool_calling_node/node.py +1 -1
  24. vellum/workflows/nodes/displayable/tool_calling_node/utils.py +1 -1
  25. vellum/workflows/ports/port.py +11 -0
  26. vellum/workflows/runner/runner.py +44 -6
  27. vellum/workflows/triggers/__init__.py +4 -0
  28. vellum/workflows/triggers/base.py +125 -0
  29. vellum/workflows/triggers/manual.py +37 -0
  30. vellum/workflows/types/core.py +2 -1
  31. vellum/workflows/workflows/base.py +9 -9
  32. {vellum_ai-1.7.3.dist-info → vellum_ai-1.7.5.dist-info}/METADATA +1 -1
  33. {vellum_ai-1.7.3.dist-info → vellum_ai-1.7.5.dist-info}/RECORD +42 -35
  34. vellum_ee/assets/node-definitions.json +1 -1
  35. vellum_ee/workflows/display/base.py +26 -1
  36. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_inline_workflow_serialization.py +1 -1
  37. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_serialization.py +1 -1
  38. vellum_ee/workflows/display/tests/workflow_serialization/test_manual_trigger_serialization.py +113 -0
  39. vellum_ee/workflows/display/workflows/base_workflow_display.py +63 -10
  40. {vellum_ai-1.7.3.dist-info → vellum_ai-1.7.5.dist-info}/LICENSE +0 -0
  41. {vellum_ai-1.7.3.dist-info → vellum_ai-1.7.5.dist-info}/WHEEL +0 -0
  42. {vellum_ai-1.7.3.dist-info → vellum_ai-1.7.5.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,125 @@
1
+ from abc import ABC, ABCMeta
2
+ from typing import TYPE_CHECKING, Any, Type, cast
3
+
4
+ if TYPE_CHECKING:
5
+ from vellum.workflows.graph.graph import Graph, GraphTarget
6
+
7
+
8
+ class BaseTriggerMeta(ABCMeta):
9
+ """
10
+ Metaclass for BaseTrigger that enables class-level >> operator.
11
+
12
+ This allows triggers to be used at the class level, similar to nodes:
13
+ ManualTrigger >> MyNode # Class-level, no instantiation
14
+ """
15
+
16
+ def __rshift__(cls, other: "GraphTarget") -> "Graph": # type: ignore[misc]
17
+ """
18
+ Enable Trigger class >> Node syntax (class-level only).
19
+
20
+ Args:
21
+ other: The target to connect to - can be a Node, Graph, or set of Nodes
22
+
23
+ Returns:
24
+ Graph: A graph object with trigger edges
25
+
26
+ Examples:
27
+ ManualTrigger >> MyNode
28
+ ManualTrigger >> {NodeA, NodeB}
29
+ ManualTrigger >> (NodeA >> NodeB)
30
+ """
31
+ from vellum.workflows.edges.trigger_edge import TriggerEdge
32
+ from vellum.workflows.graph.graph import Graph
33
+ from vellum.workflows.nodes.bases.base import BaseNode as BaseNodeClass
34
+
35
+ # Cast cls to the proper type for TriggerEdge
36
+ trigger_cls = cast("Type[BaseTrigger]", cls)
37
+
38
+ if isinstance(other, set):
39
+ # Trigger >> {NodeA, NodeB}
40
+ trigger_edges = []
41
+ graph_items = []
42
+ for item in other:
43
+ if isinstance(item, type) and issubclass(item, BaseNodeClass):
44
+ trigger_edges.append(TriggerEdge(trigger_cls, item))
45
+ elif isinstance(item, Graph):
46
+ # Trigger >> {Graph1, Graph2}
47
+ graph_items.append(item)
48
+ for entrypoint in item.entrypoints:
49
+ trigger_edges.append(TriggerEdge(trigger_cls, entrypoint))
50
+ else:
51
+ raise TypeError(
52
+ f"Cannot connect trigger to {type(item).__name__}. " f"Expected BaseNode or Graph in set."
53
+ )
54
+
55
+ result_graph = Graph.from_trigger_edges(trigger_edges)
56
+
57
+ for graph_item in graph_items:
58
+ result_graph._extend_edges(graph_item.edges)
59
+ result_graph._terminals.update(graph_item._terminals)
60
+ for existing_trigger_edge in graph_item._trigger_edges:
61
+ if existing_trigger_edge not in result_graph._trigger_edges:
62
+ result_graph._trigger_edges.append(existing_trigger_edge)
63
+
64
+ return result_graph
65
+
66
+ elif isinstance(other, Graph):
67
+ # Trigger >> Graph
68
+ edges = [TriggerEdge(trigger_cls, entrypoint) for entrypoint in other.entrypoints]
69
+ result_graph = Graph.from_trigger_edges(edges)
70
+ # Also include the edges from the original graph
71
+ result_graph._extend_edges(other.edges)
72
+ result_graph._terminals = other._terminals
73
+ return result_graph
74
+
75
+ elif isinstance(other, type) and issubclass(other, BaseNodeClass):
76
+ # Trigger >> Node
77
+ edge = TriggerEdge(trigger_cls, other)
78
+ return Graph.from_trigger_edge(edge)
79
+
80
+ else:
81
+ raise TypeError(
82
+ f"Cannot connect trigger to {type(other).__name__}. " f"Expected BaseNode, Graph, or set of BaseNodes."
83
+ )
84
+
85
+ def __rrshift__(cls, other: Any) -> "Graph":
86
+ """
87
+ Prevent Node >> Trigger class syntax.
88
+
89
+ Raises:
90
+ TypeError: Always, as this operation is not allowed
91
+ """
92
+ raise TypeError(
93
+ f"Cannot create edge targeting trigger {cls.__name__}. "
94
+ f"Triggers must be at the start of a graph path, not as targets. "
95
+ f"Did you mean: {cls.__name__} >> {other.__name__ if hasattr(other, '__name__') else other}?"
96
+ )
97
+
98
+
99
+ class BaseTrigger(ABC, metaclass=BaseTriggerMeta):
100
+ """
101
+ Base class for workflow triggers - first-class graph elements.
102
+
103
+ Triggers define how and when a workflow execution is initiated. They are integrated
104
+ into the workflow graph using the >> operator and can connect to nodes at the class level.
105
+
106
+ Examples:
107
+ # Class-level usage (consistent with nodes)
108
+ ManualTrigger >> MyNode
109
+ ManualTrigger >> {NodeA, NodeB}
110
+ ManualTrigger >> (NodeA >> NodeB)
111
+
112
+ Subclass Hierarchy:
113
+ - ManualTrigger: Explicit workflow invocation (default)
114
+ - IntegrationTrigger: External service triggers (base for Slack, GitHub, etc.)
115
+ - ScheduledTrigger: Time-based triggers with cron/interval schedules
116
+
117
+ Important:
118
+ Triggers can only appear at the start of graph paths. Attempting to create
119
+ edges targeting triggers (Node >> Trigger) will raise a TypeError.
120
+
121
+ Note:
122
+ Like nodes, triggers work at the class level only. Do not instantiate triggers.
123
+ """
124
+
125
+ pass
@@ -0,0 +1,37 @@
1
+ from vellum.workflows.triggers.base import BaseTrigger
2
+
3
+
4
+ class ManualTrigger(BaseTrigger):
5
+ """
6
+ Default trigger representing explicit workflow invocation.
7
+
8
+ ManualTrigger is used when workflows are explicitly invoked via:
9
+ - workflow.run() method calls
10
+ - workflow.stream() method calls
11
+ - API calls to execute the workflow
12
+
13
+ This is the default trigger for all workflows. When no trigger is specified
14
+ in a workflow's graph definition, ManualTrigger is implicitly added.
15
+
16
+ Examples:
17
+ # Explicit ManualTrigger (equivalent to implicit)
18
+ class MyWorkflow(BaseWorkflow):
19
+ graph = ManualTrigger >> MyNode
20
+
21
+ # Implicit ManualTrigger (normalized to above)
22
+ class MyWorkflow(BaseWorkflow):
23
+ graph = MyNode
24
+
25
+ Characteristics:
26
+ - Provides no trigger-specific inputs
27
+ - Always ready to execute when invoked
28
+ - Simplest trigger type with no configuration
29
+ - Default behavior for backward compatibility
30
+
31
+ Comparison with other triggers:
32
+ - IntegrationTrigger: Responds to external events (webhooks, API calls)
33
+ - ScheduledTrigger: Executes based on time/schedule configuration
34
+ - ManualTrigger: Executes when explicitly called
35
+ """
36
+
37
+ pass
@@ -1,4 +1,5 @@
1
1
  from enum import Enum
2
+ from multiprocessing.synchronize import Event as MultiprocessingEvent
2
3
  from threading import Event as ThreadingEvent
3
4
  from typing import ( # type: ignore[attr-defined]
4
5
  Any,
@@ -16,7 +17,7 @@ JsonArray = List["Json"]
16
17
  JsonObject = Dict[str, "Json"]
17
18
  Json = Union[None, bool, int, float, str, JsonArray, JsonObject]
18
19
 
19
- CancelSignal = ThreadingEvent
20
+ CancelSignal = Union[ThreadingEvent, MultiprocessingEvent]
20
21
 
21
22
  # Unions and Generics inherit from `_GenericAlias` instead of `type`
22
23
  # In future versions of python, we'll see `_UnionGenericAlias`
@@ -4,7 +4,6 @@ from functools import lru_cache
4
4
  import importlib
5
5
  import inspect
6
6
  import logging
7
- from threading import Event as ThreadingEvent
8
7
  from uuid import UUID, uuid4
9
8
  from typing import (
10
9
  Any,
@@ -76,6 +75,7 @@ from vellum.workflows.runner.runner import ExternalInputsArg, RunFromNodeArg
76
75
  from vellum.workflows.state.base import BaseState, StateMeta
77
76
  from vellum.workflows.state.context import WorkflowContext
78
77
  from vellum.workflows.state.store import Store
78
+ from vellum.workflows.types import CancelSignal
79
79
  from vellum.workflows.types.generics import InputsType, StateType
80
80
  from vellum.workflows.types.utils import get_original_base
81
81
  from vellum.workflows.utils.uuids import uuid4_from_hash
@@ -227,12 +227,12 @@ class BaseWorkflow(Generic[InputsType, StateType], BaseExecutable, metaclass=_Ba
227
227
  WorkflowEvent = Union[ # type: ignore
228
228
  GenericWorkflowEvent,
229
229
  WorkflowExecutionInitiatedEvent[InputsType, StateType], # type: ignore[valid-type]
230
- WorkflowExecutionFulfilledEvent[Outputs],
230
+ WorkflowExecutionFulfilledEvent[Outputs, StateType], # type: ignore[valid-type]
231
231
  WorkflowExecutionSnapshottedEvent[StateType], # type: ignore[valid-type]
232
232
  ]
233
233
 
234
234
  TerminalWorkflowEvent = Union[
235
- WorkflowExecutionFulfilledEvent[Outputs],
235
+ WorkflowExecutionFulfilledEvent[Outputs, StateType], # type: ignore[valid-type]
236
236
  WorkflowExecutionRejectedEvent,
237
237
  WorkflowExecutionPausedEvent,
238
238
  ]
@@ -374,7 +374,7 @@ class BaseWorkflow(Generic[InputsType, StateType], BaseExecutable, metaclass=_Ba
374
374
  entrypoint_nodes: Optional[RunFromNodeArg] = None,
375
375
  external_inputs: Optional[ExternalInputsArg] = None,
376
376
  previous_execution_id: Optional[Union[str, UUID]] = None,
377
- cancel_signal: Optional[ThreadingEvent] = None,
377
+ cancel_signal: Optional[CancelSignal] = None,
378
378
  node_output_mocks: Optional[MockNodeExecutionArg] = None,
379
379
  max_concurrency: Optional[int] = None,
380
380
  ) -> TerminalWorkflowEvent:
@@ -402,8 +402,8 @@ class BaseWorkflow(Generic[InputsType, StateType], BaseExecutable, metaclass=_Ba
402
402
  previous_execution_id: Optional[Union[str, UUID]] = None
403
403
  The execution ID of the previous execution to resume from.
404
404
 
405
- cancel_signal: Optional[ThreadingEvent] = None
406
- A threading event that can be used to cancel the Workflow Execution.
405
+ cancel_signal: Optional[CancelSignal] = None
406
+ A cancel signal that can be used to cancel the Workflow Execution.
407
407
 
408
408
  node_output_mocks: Optional[MockNodeExecutionArg] = None
409
409
  A list of Outputs to mock for Nodes during Workflow Execution. Each mock can include a `when_condition`
@@ -493,7 +493,7 @@ class BaseWorkflow(Generic[InputsType, StateType], BaseExecutable, metaclass=_Ba
493
493
  entrypoint_nodes: Optional[RunFromNodeArg] = None,
494
494
  external_inputs: Optional[ExternalInputsArg] = None,
495
495
  previous_execution_id: Optional[Union[str, UUID]] = None,
496
- cancel_signal: Optional[ThreadingEvent] = None,
496
+ cancel_signal: Optional[CancelSignal] = None,
497
497
  node_output_mocks: Optional[MockNodeExecutionArg] = None,
498
498
  max_concurrency: Optional[int] = None,
499
499
  ) -> WorkflowEventStream:
@@ -522,8 +522,8 @@ class BaseWorkflow(Generic[InputsType, StateType], BaseExecutable, metaclass=_Ba
522
522
  previous_execution_id: Optional[Union[str, UUID]] = None
523
523
  The execution ID of the previous execution to resume from.
524
524
 
525
- cancel_signal: Optional[ThreadingEvent] = None
526
- A threading event that can be used to cancel the Workflow Execution.
525
+ cancel_signal: Optional[CancelSignal] = None
526
+ A cancel signal that can be used to cancel the Workflow Execution.
527
527
 
528
528
  node_output_mocks: Optional[MockNodeExecutionArg] = None
529
529
  A list of Outputs to mock for Nodes during Workflow Execution. Each mock can include a `when_condition`
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vellum-ai
3
- Version: 1.7.3
3
+ Version: 1.7.5
4
4
  Summary:
5
5
  License: MIT
6
6
  Requires-Python: >=3.9,<4.0
@@ -22,12 +22,12 @@ vellum_cli/tests/test_ping.py,sha256=b3aQLd-N59_8w2rRiWqwpB1rlHaKEYVbAj1Y3hi7A-g
22
22
  vellum_cli/tests/test_pull.py,sha256=e2XHzcHIx9k-FyuNAl7wMSNsSSebPGyP6U05JGcddFs,49447
23
23
  vellum_cli/tests/test_push.py,sha256=2MjkNKr_9Guv5Exjsm3L1BeVXmPkKUcCSiKnp90HgW4,41996
24
24
  vellum_ee/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
- vellum_ee/assets/node-definitions.json,sha256=UkHixt8WAnHmupooOrtpxYCaNG-5pRon1c8QUlc0Vhk,30754
25
+ vellum_ee/assets/node-definitions.json,sha256=Mm3c1nfEa1QjWWzNvIJlhahDcY4SM3wQm8og_x3jyd8,30755
26
26
  vellum_ee/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
27
  vellum_ee/scripts/generate_node_definitions.py,sha256=FOYQsXIqU45I0OAcsyZUGODF9JK44yunf58rR6YaAdA,3303
28
28
  vellum_ee/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
29
  vellum_ee/workflows/display/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
- vellum_ee/workflows/display/base.py,sha256=R3f2T8FlZrXn2FawAmpVuLB3fKFWw11mCUulWAyIKA0,1912
30
+ vellum_ee/workflows/display/base.py,sha256=BrXRr3WMDJitXe9hcq6EDE3MZvuRnEZuCsIswiAyYYk,2606
31
31
  vellum_ee/workflows/display/editor/__init__.py,sha256=MSAgY91xCEg2neH5d8jXx5wRdR962ftZVa6vO9BGq9k,167
32
32
  vellum_ee/workflows/display/editor/types.py,sha256=rmaNXkNZUNRgK-mJJ_g1-Fm3OGxoQfqEB7zn-zzgJtc,664
33
33
  vellum_ee/workflows/display/exceptions.py,sha256=_FDhK-lfuBPHY2GSywp70ewM0k55Ji5Bp-wZlEZenz4,112
@@ -101,15 +101,16 @@ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_
101
101
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py,sha256=ddPa8gNBYH2tWk92ymngY7M8n74J-8CEre50HISP_-g,7877
102
102
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py,sha256=A7Ef8P1-Nyvsb97bumKT9W2R1LuZaY9IKFV-7iRueog,4010
103
103
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_composio_serialization.py,sha256=oVXCjkU0G56QJmqnd_xIwF3D9bhJwALFibM2wmRhwUk,3739
104
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_inline_workflow_serialization.py,sha256=K7r5hivC3-599oqbkLgj5WMBcrix1znmuhAxs0w0EAE,26692
104
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_inline_workflow_serialization.py,sha256=0yMgPwl-A5GLcQCLr8faK2Z0HMONKnA0GnRTddbSch8,26693
105
105
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_mcp_serialization.py,sha256=QhQbijeCnFeX1i3SMjHJg2WVAEt5JEO3dhFRv-mofdA,2458
106
106
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_parent_input.py,sha256=__LX4cuzbyZp_1wc-SI8X_J0tnhOkCEmRVUWLKI5aQM,4578
107
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_serialization.py,sha256=5yaoN5aM6VZZtsleQcSWpbNyWLE1nTnMF6KbLmCrlc8,10437
107
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_serialization.py,sha256=xe9n2GKt6Pwf9antW0OUp34EJjxeJT6K-szE0PukHOo,10438
108
108
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_vellum_integration_serialization.py,sha256=zvLgIIgKTjAV5ObvqfoR7U-HSdOnGgOKxcCLoq5-Jvk,2851
109
109
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_workflow_deployment_serialization.py,sha256=XIZZr5POo2NLn2uEWm9EC3rejeBMoO4X-JtzTH6mvp4,4074
110
110
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py,sha256=pLCyMScV88DTBXRH7jXaXOEA1GBq8NIipCUFwIAWnwI,2771
111
111
  vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256=exT7U-axwtYgFylagScflSQLJEND51qIAx2UATju6JM,6023
112
112
  vellum_ee/workflows/display/tests/workflow_serialization/test_final_output_node_map_reference_serialization.py,sha256=vl3pxUJlrYRA8zzFJ-gRm7fe-5fviLNSIsUC7imnMqk,3502
113
+ vellum_ee/workflows/display/tests/workflow_serialization/test_manual_trigger_serialization.py,sha256=MQiZZfMtCps-_Me-SqH3TnC7sh52ApcF0_6ctoYZ63g,3798
113
114
  vellum_ee/workflows/display/tests/workflow_serialization/test_terminal_node_any_serialization.py,sha256=4WAmSEJZlDBLPhsD1f4GwY9ahB9F6qJKGnL6j7ZYlzQ,1740
114
115
  vellum_ee/workflows/display/tests/workflow_serialization/test_web_search_node_serialization.py,sha256=vbDFBrWUPeeW7cxjNA6SXrsHlYcbOAhlQ4C45Vdnr1c,3428
115
116
  vellum_ee/workflows/display/tests/workflow_serialization/test_workflow_input_parameterization_error.py,sha256=vAdmn3YTBDpo55znbydQxsgg9ASqHcvsUPwiBR_7wfo,1461
@@ -126,7 +127,7 @@ vellum_ee/workflows/display/utils/tests/test_events.py,sha256=42IEBnMbaQrH8gigw5
126
127
  vellum_ee/workflows/display/utils/vellum.py,sha256=Bt7kdLdXoBsHn5dVEY2uKcF542VL09jwu8J_30rl2vk,6413
127
128
  vellum_ee/workflows/display/vellum.py,sha256=J2mdJZ1sdLW535DDUkq_Vm8Z572vhuxHxVZF9deKSdk,391
128
129
  vellum_ee/workflows/display/workflows/__init__.py,sha256=JTB9ObEV3l4gGGdtfBHwVJtTTKC22uj-a-XjTVwXCyA,148
129
- vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=uP3pqSloGjmUYBvVfKP0skZXJnqZxm7TEVxSLdrzU5c,44682
130
+ vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=qek7zT4V6XoqmU3seVZwrNzGNVb0CKU4GmEK8VLrWbc,46651
130
131
  vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py,sha256=gxz76AeCqgAZ9D2lZeTiZzxY9eMgn3qOSfVgiqYcOh8,2028
131
132
  vellum_ee/workflows/display/workflows/tests/test_workflow_display.py,sha256=lg-c_3P3ldtqWq2VFsk_2Mkn3pVdXWuT59QpH7QwXVs,39764
132
133
  vellum_ee/workflows/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -155,19 +156,19 @@ vellum_ee/workflows/tests/test_registry.py,sha256=B8xRIuEyLWfSqrYoPldNQXhKPfe50P
155
156
  vellum_ee/workflows/tests/test_serialize_module.py,sha256=zleQTcGZa5_nzwu4zpFoqEHhk7pb64hGrhObR4anhPQ,4471
156
157
  vellum_ee/workflows/tests/test_server.py,sha256=DtQdVlRlfIvq0L9mSs0SncI0jHgDAq05HQCLj29aiZo,24728
157
158
  vellum_ee/workflows/tests/test_virtual_files.py,sha256=TJEcMR0v2S8CkloXNmCHA0QW0K6pYNGaIjraJz7sFvY,2762
158
- vellum/__init__.py,sha256=KGWwGtZMz-k9i8L1eHVnlEByJBSH31hAcCIVLNYB9Q0,49412
159
+ vellum/__init__.py,sha256=6dkyRHmIKuQPzL_z3QLVUrbkAF-HJKDhDSMCnf4ZsKw,49502
159
160
  vellum/client/README.md,sha256=flqu57ubZNTfpq60CdLtJC9gp4WEkyjb_n_eZ4OYf9w,6497
160
161
  vellum/client/__init__.py,sha256=rMnKRqL5-356SBc-rfm56MkO87PuAi2mtcfBszcJU1M,74316
161
162
  vellum/client/core/__init__.py,sha256=lTcqUPXcx4112yLDd70RAPeqq6tu3eFMe1pKOqkW9JQ,1562
162
163
  vellum/client/core/api_error.py,sha256=44vPoTyWN59gonCIZMdzw7M1uspygiLnr3GNFOoVL2Q,614
163
- vellum/client/core/client_wrapper.py,sha256=_OdpOQxXZT7UdFB0twb2X_9YF8z4xjZfVD-9hV_mXao,2840
164
+ vellum/client/core/client_wrapper.py,sha256=1YhfnMUVmjKkdmg9jR46ZTIffeCPF5RezCBeInW45hc,2840
164
165
  vellum/client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
165
166
  vellum/client/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
166
167
  vellum/client/core/force_multipart.py,sha256=awxh5MtcRYe74ehY8U76jzv6fYM_w_D3Rur7KQQzSDk,429
167
168
  vellum/client/core/http_client.py,sha256=QurkBvCZZz2Z1d8znp4M2YbOXebBUPcPXRhPIS84Wvk,21214
168
169
  vellum/client/core/http_response.py,sha256=4uOAtXXFTyFXHLXeQWSfQST9PGcOCRAdHVgGTxdyg84,1334
169
170
  vellum/client/core/jsonable_encoder.py,sha256=hGgcEEeX11sqxxsll7h15pO3pTNVxk_n79Kcn0laoWA,3655
170
- vellum/client/core/pydantic_utilities.py,sha256=8evivb_gxrY5VwrEgid4u-HnSmVtkAO5y-B65qYcACU,11403
171
+ vellum/client/core/pydantic_utilities.py,sha256=y9CLy3XanCrFf-pJL11IieMQ9ntPIJG45xnFjTLfVUs,11784
171
172
  vellum/client/core/query_encoder.py,sha256=ekulqNd0j8TgD7ox-Qbz7liqX8-KP9blvT9DsRCenYM,2144
172
173
  vellum/client/core/remove_none_from_dict.py,sha256=EU9SGgYidWq7SexuJbNs4-PZ-5Bl3Vppd864mS6vQZw,342
173
174
  vellum/client/core/request_options.py,sha256=h0QUNCFVdCW_7GclVySCAY2w4NhtXVBUCmHgmzaxpcg,1681
@@ -181,7 +182,7 @@ vellum/client/errors/not_found_error.py,sha256=YrqVM0oc3qkQbFbmmm6xr300VGfUNxMSy
181
182
  vellum/client/errors/too_many_requests_error.py,sha256=SJJemdgUlQHV_VpxK8UfFNexgZebNT5_MTOeQs6oVgc,397
182
183
  vellum/client/errors/unauthorized_error.py,sha256=waPl5Swiqsk3FQK-Lljzx4KDh4RPZ0wL6BLHjM8onQ8,394
183
184
  vellum/client/raw_client.py,sha256=cmMR0t87iUYvkIE9L4g0dcCmw3uUQNze9rD9CBv5rzs,113481
184
- vellum/client/reference.md,sha256=gAIp6dXDNddILqc5zicSGiZvtK0kP--WM6FThRxpmCA,106191
185
+ vellum/client/reference.md,sha256=lqfW5v1s-z4Amy07JcxQTF_YiLVlkbZH6bG4Hgn2Uyc,107432
185
186
  vellum/client/resources/__init__.py,sha256=JlNoSZYFGxLTuzPvmMV1b8IWDYjlDL4BaBbq9TgfGUE,1765
186
187
  vellum/client/resources/ad_hoc/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
187
188
  vellum/client/resources/ad_hoc/client.py,sha256=v5I_YzJaaPezsE4KVuMSUXJISstKuJ_9-VUeXakIJhw,14353
@@ -242,8 +243,8 @@ vellum/client/resources/test_suites/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-C
242
243
  vellum/client/resources/test_suites/client.py,sha256=xo197bXk84jj6gEieRmJuhqBbQ8IB-VMNLki7gdqhlo,20753
243
244
  vellum/client/resources/test_suites/raw_client.py,sha256=XfDqmJa7fngPsHAirTSSNBMHy2O4mKOaNS16IL567L8,22335
244
245
  vellum/client/resources/workflow_deployments/__init__.py,sha256=MVnGG7CkZA7F8p__MGerey22DTg6oYqfay77mdlDjBc,271
245
- vellum/client/resources/workflow_deployments/client.py,sha256=AolU-CJ7gKKTkVekNp9qZM5EyQQlsQyDtwJplwHIHLs,27328
246
- vellum/client/resources/workflow_deployments/raw_client.py,sha256=LvOUJmHV7EVk734DQGH65XbTtIPGLFzWzaOaXLHU7Ss,37533
246
+ vellum/client/resources/workflow_deployments/client.py,sha256=As_QCQU-aU7qfMniqPsCfo3NKHfCNFy5AG-KlDi5nS8,30647
247
+ vellum/client/resources/workflow_deployments/raw_client.py,sha256=Lye7Y1YEgW4Kx5MQJhktUfLkxvgYVNqBcCZjY7v-PN8,42159
247
248
  vellum/client/resources/workflow_deployments/types/__init__.py,sha256=2Lrjd-cX_h9gZEgxsF7e9nhCWUcTNXQyEaOjytC1NEM,360
248
249
  vellum/client/resources/workflow_deployments/types/list_workflow_release_tags_request_source.py,sha256=LPETHLX9Ygha_JRT9oWZAZR6clv-W1tTelXzktkTBX8,178
249
250
  vellum/client/resources/workflow_deployments/types/workflow_deployments_list_request_status.py,sha256=FXVkVmGM6DZ2RpTGnZXWJYiVlLQ-K5fDtX3WMaBPaWk,182
@@ -266,7 +267,7 @@ vellum/client/resources/workspaces/client.py,sha256=36KYa2FDu6h65q2GscUFOJs4qKei
266
267
  vellum/client/resources/workspaces/raw_client.py,sha256=M3Ewk1ZfEZ44EeTvBtBNoNKi5whwfLY-1GR07SyfDTI,3517
267
268
  vellum/client/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
268
269
  vellum/client/tests/test_utils.py,sha256=zk8z45-2xrm9sZ2hq8PTqY8MXmXtPqMqYK0VBBX0GHg,1176
269
- vellum/client/types/__init__.py,sha256=HEMxdgVYEgkUl7Fd6Xkai_kWAHVoqZBPa3a1qOaB2Dg,74785
270
+ vellum/client/types/__init__.py,sha256=mviyigR9JByvGdgCOqfY6DyrExvkCnN6PXBEMRsY3pw,74926
270
271
  vellum/client/types/ad_hoc_execute_prompt_event.py,sha256=B69EesIH6fpNsdoiJaSG9zF1Sl17FnjoTu4CBkUSoHk,608
271
272
  vellum/client/types/ad_hoc_expand_meta.py,sha256=Kajcj3dKKed5e7uZibRnE3ZonK_bB2JPM-3aLjLfUp4,1295
272
273
  vellum/client/types/ad_hoc_fulfilled_prompt_execution_meta.py,sha256=5kD6ZcbU8P8ynK0lMD8Mh7vHzvQt06ziMyphvWYg6FU,968
@@ -614,6 +615,7 @@ vellum/client/types/paginated_slim_tool_definition_list.py,sha256=XhtwDClmShV_LT
614
615
  vellum/client/types/paginated_slim_workflow_deployment_list.py,sha256=mIQZ1FT3qQTGG-8eMRvnSAm_u9ixlGk7b80nxoVBxCI,973
615
616
  vellum/client/types/paginated_test_suite_run_execution_list.py,sha256=sYg7pO_vCUoT0xH_a8mQAUWd8A-xEI0EEfmFKbv9U-c,921
616
617
  vellum/client/types/paginated_test_suite_test_case_list.py,sha256=gDVdq10b5u3NEzMZrjpioVDBLMKmHcsRXBi-IX2ZBL8,901
618
+ vellum/client/types/paginated_workflow_deployment_release_list.py,sha256=0THeQdJlr-hBLZIcCFHs8oPZUzmTUMhmNpWMhTb0q7c,988
617
619
  vellum/client/types/paginated_workflow_release_tag_read_list.py,sha256=QhnPPpYE5T_0Kzl6QJ9YWcsc4WYf74px_KOiQTWRqNY,782
618
620
  vellum/client/types/paginated_workflow_sandbox_example_list.py,sha256=GHWCQdTYmFeoN0lxdreN0RldKcUa2Duazlfke2cLOc4,781
619
621
  vellum/client/types/parent_context.py,sha256=U4eS717FDcsTPO37ckQs2axtzei-eyivwfjSmGYSOjU,890
@@ -841,13 +843,13 @@ vellum/client/types/vellum_code_resource_definition.py,sha256=XdueTR342BDjevZ3kt
841
843
  vellum/client/types/vellum_document.py,sha256=qwXqMS2Eud2a5KmF8QHhU_vJzDX0g5cesrCpmBqREsA,604
842
844
  vellum/client/types/vellum_document_request.py,sha256=P9vA7ZDNeaHNlMqyzfl-ZD4bpdf-xA5mH8R1QuOAmOY,611
843
845
  vellum/client/types/vellum_error.py,sha256=G4WSD-w_skoDDnsAt-TtImt-hZT-Sc8LjHvERBUVnhE,691
844
- vellum/client/types/vellum_error_code_enum.py,sha256=kaqf7PNViS1cELE571Ql2-Xueh058MPzq_jvqLiMH48,404
846
+ vellum/client/types/vellum_error_code_enum.py,sha256=aqRRPpcpagYMJ-TDBb-V9xyj2cubwP9ygNO4NaO1Y8s,477
845
847
  vellum/client/types/vellum_error_request.py,sha256=7l4Ux6wj3C9BdSXUPBrtxECsAirmvaLU42Y23VqncBU,698
846
848
  vellum/client/types/vellum_image.py,sha256=LAGUYBDsT0bmMOqgbaeCTCy2w4zAeHEyUIgPtmdjjJ4,601
847
849
  vellum/client/types/vellum_image_request.py,sha256=6DoI2AdJIG8NShHSslpHvsFUw5PwIMconjlHSipOP5Q,608
848
850
  vellum/client/types/vellum_node_execution_event.py,sha256=-MXat2wAZx4sx3JRp7gwJIOInPNwPMDpZmXtP8NC3O8,736
849
851
  vellum/client/types/vellum_sdk_error.py,sha256=oURNuw5zH4HqV6Ygw0MgVWH2DcuxekWvS_ZXA8tU31I,704
850
- vellum/client/types/vellum_sdk_error_code_enum.py,sha256=a2K6XJvl72tNn82zyx5QpzYGgLfYWVBKY-o8jeDqKoM,504
852
+ vellum/client/types/vellum_sdk_error_code_enum.py,sha256=zyPoP7V-uooGdBlVjanveQbaiHRumjAXsHwH_Stg8gU,577
851
853
  vellum/client/types/vellum_secret.py,sha256=04WlBWphqiJSUKM2NeJE32IDt-ZpVO_LOXkpXvBh3f0,519
852
854
  vellum/client/types/vellum_span.py,sha256=dmZOBXlDeXx4eLvBJBiOp07xuyjhisgXgnvYFSmctYE,259
853
855
  vellum/client/types/vellum_value.py,sha256=douOrlRh2ko1gmN8oDjsaoAEtyDcfq-OV_GThW92GNk,1188
@@ -884,7 +886,7 @@ vellum/client/types/workflow_execution_actual_chat_history_request.py,sha256=E3V
884
886
  vellum/client/types/workflow_execution_actual_json_request.py,sha256=jLsQxdg7SVyUkdu_Gyo3iDKgZcQnO5hsP0PHPsiGwrg,1895
885
887
  vellum/client/types/workflow_execution_actual_string_request.py,sha256=syFCXeB4MwjKblXfSBNfCSG4dJIR8Ww937gTcmTPh1w,1859
886
888
  vellum/client/types/workflow_execution_detail.py,sha256=R1tONdNarehoqk7zsK0D2wCSJEe9WauZmKHp5yKVLB8,2186
887
- vellum/client/types/workflow_execution_event_error_code.py,sha256=QzRLZ0dteptDmt3n5_vw26zGgDrpvcR4vRa_mtl2sMI,495
889
+ vellum/client/types/workflow_execution_event_error_code.py,sha256=8VL4wHTEy-AdQhApnOsz2L2wXcuo5LBqgUAVnaQ-pXM,568
888
890
  vellum/client/types/workflow_execution_event_type.py,sha256=ESKqV3ItoAlqBooruf-i0AnmEh_GvCySZ0Co3r9Bvt0,170
889
891
  vellum/client/types/workflow_execution_fulfilled_body.py,sha256=Auu-rzrIdxEkXgPHXe-BynwEWxL_R68E_VrLFCHueFA,710
890
892
  vellum/client/types/workflow_execution_fulfilled_event.py,sha256=eZ_DtDmRK-S2Q0LEJHlGS_FPd-UVvpgetRXqvWlSh4M,1925
@@ -988,7 +990,7 @@ vellum/evaluations/utils/env.py,sha256=Xj_nxsoU5ox06EOTjRopR4lrigQI6Le6qbWGltYoE
988
990
  vellum/evaluations/utils/exceptions.py,sha256=dXMAkzqbHV_AP5FjjbegPlfUE0zQDlpA3qOsoOJUxfg,49
989
991
  vellum/evaluations/utils/paginator.py,sha256=rEED_BJAXAM6tM1yMwHePNzszjq_tTq4NbQvi1jWQ_Q,697
990
992
  vellum/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
991
- vellum/plugins/pydantic.py,sha256=SamPlRZ8V9kuxEfMkOPKjhMMLa5Q3wYJ3Z-F_IfKtvA,3911
993
+ vellum/plugins/pydantic.py,sha256=-AV02TCdI3Uk4cgB2jO-YhQcRqvylb3g-h1ytKaRwvg,3981
992
994
  vellum/plugins/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
993
995
  vellum/plugins/tests/test_pydantic.py,sha256=S6bLqs3Y5DGA012QV_7f6hk4e6Bz-iJ9py9DEKuo4fM,746
994
996
  vellum/plugins/utils.py,sha256=cPmxE9R2CK1bki2jKE8rB-G9zMf2pzHjSPDHFPXwd3Q,878
@@ -1434,6 +1436,7 @@ vellum/types/paginated_slim_tool_definition_list.py,sha256=oA5StUVXoYK1nxXYKy2b3
1434
1436
  vellum/types/paginated_slim_workflow_deployment_list.py,sha256=3QgvxRFqcOw9z-cl0CBaHrREc8pxkPxUYreINh-indg,177
1435
1437
  vellum/types/paginated_test_suite_run_execution_list.py,sha256=XEr928_4w9Rw9_q6dshxPWfXXptLdRlDp-frKIIcdYQ,177
1436
1438
  vellum/types/paginated_test_suite_test_case_list.py,sha256=LoyXDEr2yXrkniJ25HctBWvhqKQ987XItukUwPYUIhQ,173
1439
+ vellum/types/paginated_workflow_deployment_release_list.py,sha256=Y4DCce-APrZNMIMz1db6ZAUmaCJdWMvuTmRImpii09k,180
1437
1440
  vellum/types/paginated_workflow_release_tag_read_list.py,sha256=XUeQn_6JPJ6K2qts-NZIEEZF94C3U2AosStc2k57eWY,178
1438
1441
  vellum/types/paginated_workflow_sandbox_example_list.py,sha256=FlPNK6QtzQL9yD-k_qpQrE8yMARrJRjk5aGf6ZTbGyY,177
1439
1442
  vellum/types/parent_context.py,sha256=z50nvSfKqZKrX-q6u5Ex3h6WzdM6_hb-9dBHWdTQ5AA,152
@@ -1796,15 +1799,16 @@ vellum/workflows/descriptors/base.py,sha256=v3WG2d_pekYtVK3Y2FSdVhf_XwNUnvXgSWuh
1796
1799
  vellum/workflows/descriptors/exceptions.py,sha256=Rv2uMiaO2a2SADhJzl_VHhV6dqwAhZAzaJPoThP7SZc,653
1797
1800
  vellum/workflows/descriptors/tests/test_utils.py,sha256=HJ5DoRz0sJvViGxyZ_FtytZjxN2J8xTkGtaVwCy6Q90,6928
1798
1801
  vellum/workflows/descriptors/utils.py,sha256=Z7kuhwb_D_kfcwKIAr1xI_AqYH6WFoZBYuslKQWZBFU,4399
1799
- vellum/workflows/edges/__init__.py,sha256=wSkmAnz9xyi4vZwtDbKxwlplt2skD7n3NsxkvR_pUus,50
1802
+ vellum/workflows/edges/__init__.py,sha256=auViJbvYiR1gzgGlhMv1fPDMvgXGOwa5g-YZn97fvUo,107
1800
1803
  vellum/workflows/edges/edge.py,sha256=N0SnY3gKVuxImPAdCbPMPlHJIXbkQ3fwq_LbJRvVMFc,677
1804
+ vellum/workflows/edges/trigger_edge.py,sha256=tyOqENGuKbxw_zn-f5rFSe6E3sWe2bRIZE4txvG7odE,2160
1801
1805
  vellum/workflows/emitters/__init__.py,sha256=d9QFOI3eVg6rzpSFLvrjkDYXWikf1tcp3ruTRa2Boyc,143
1802
1806
  vellum/workflows/emitters/base.py,sha256=4hClzI-ue0kWiEnZ1T1zvGz2ZWnoWLCVF-seqHBMUC8,1144
1803
1807
  vellum/workflows/emitters/vellum_emitter.py,sha256=t4ixrN0NNXrydMP9PVKYvcOMxoMqsg5v5pL7mzLE59k,4925
1804
1808
  vellum/workflows/environment/__init__.py,sha256=TJz0m9dwIs6YOwCTeuN0HHsU-ecyjc1OJXx4AFy83EQ,121
1805
1809
  vellum/workflows/environment/environment.py,sha256=Ck3RPKXJvtMGx_toqYQQQF-ZwXm5ijVwJpEPTeIJ4_Q,471
1806
1810
  vellum/workflows/errors/__init__.py,sha256=tWGPu5xyAU8gRb8_bl0fL7OfU3wxQ9UH6qVwy4X4P_Q,113
1807
- vellum/workflows/errors/types.py,sha256=AW1lkWeC2MlAHf-N-KcYiyiWa0IKhVD_N2WSqFyY3-s,4642
1811
+ vellum/workflows/errors/types.py,sha256=N43BsnhnYZvuPql-Xu86Y6QQ07BxKv5ypD2lq4eugpk,4749
1808
1812
  vellum/workflows/events/__init__.py,sha256=V4mh766fyA70WvHelm9kfVZGrUgEKcJ9tJt8EepfQYU,832
1809
1813
  vellum/workflows/events/context.py,sha256=vCfMIPmz4j9Om36rRWa35A_JU_VccWWS52_mZkkqxak,3345
1810
1814
  vellum/workflows/events/exception_handling.py,sha256=2okFtCzrOzaCP-HEwBPMvHn-evlyyE1zRkmIYjR__jQ,1975
@@ -1813,10 +1817,10 @@ vellum/workflows/events/relational_threads.py,sha256=zmLrBCBYpdpQV0snKH3HleST-_h
1813
1817
  vellum/workflows/events/stream.py,sha256=xhXJTZirFi0xad5neAQNogrIQ4h47fpnKbVC3vCM5Js,889
1814
1818
  vellum/workflows/events/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1815
1819
  vellum/workflows/events/tests/test_basic_workflow.py,sha256=Pj6orHsXz37jWC5FARi0Sx2Gjf99Owri2Cvr6Chb79k,1765
1816
- vellum/workflows/events/tests/test_event.py,sha256=jsC8APdrddLs5ejk9NO0waPLLslsJlBMIvN0M_vpAHI,19692
1820
+ vellum/workflows/events/tests/test_event.py,sha256=a-_vwiKhZWTxmRvDPB-aveWuGBOMqr5nY9t6uFmtL-o,21431
1817
1821
  vellum/workflows/events/types.py,sha256=mVrqAH9Hs9SpXm08Hcxdyap_ImQPwGsxRr56rSNMP34,5043
1818
- vellum/workflows/events/workflow.py,sha256=kLSWFXiDZH0TELWoDjQ_kHVomFnw8MVVUPDGIzgyosw,8997
1819
- vellum/workflows/exceptions.py,sha256=nb05hAh-afzZ9hek7vhegq-zDtmHopv-4No3aZ-gKO4,1941
1822
+ vellum/workflows/events/workflow.py,sha256=uoSnZFyG-oHvmvmAA3LYRJOMc_vOrbfa64stnSzNePs,9494
1823
+ vellum/workflows/exceptions.py,sha256=cizNaHgmGdIoYSV3Mn6_HlpUvs2Nq9KgpX1ewMZdBa0,2157
1820
1824
  vellum/workflows/executable.py,sha256=um-gLJMVYfGJwGJfZIPlCRHhHIYm6pn8PUEfeqrNx5k,218
1821
1825
  vellum/workflows/expressions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1822
1826
  vellum/workflows/expressions/accessor.py,sha256=3lu1-_-dBfZdJvtX-q66jbmRAZtqIfdsh_3_JNuzg1E,4462
@@ -1863,9 +1867,9 @@ vellum/workflows/expressions/tests/test_length.py,sha256=pQA1tYSwqxE6euclboY024N
1863
1867
  vellum/workflows/expressions/tests/test_minus.py,sha256=pq7dvdRGNhSSn95LGNzRErsYUsFk5SpOKHDcSR5QToc,1632
1864
1868
  vellum/workflows/expressions/tests/test_parse_json.py,sha256=zpB_qE5_EwWQL7ULQUJm0o1PRSfWZdAqZNW6Ah13oJE,1059
1865
1869
  vellum/workflows/graph/__init__.py,sha256=3sHlay5d_-uD7j3QJXiGl0WHFZZ_QScRvgyDhN2GhHY,74
1866
- vellum/workflows/graph/graph.py,sha256=vkpteMc2a61IFGHlrA50J4ntVj6m3agcyWrXGQEbjHc,11280
1870
+ vellum/workflows/graph/graph.py,sha256=lUqREmkROzRtyw1ncRnN7CR9vbztJYR1IgR3hHIG9Xw,14537
1867
1871
  vellum/workflows/graph/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1868
- vellum/workflows/graph/tests/test_graph.py,sha256=0Pov0sCsxjzUDL9wy7xy9jFD-F2GsMJnZVEVFXzQGdM,15433
1872
+ vellum/workflows/graph/tests/test_graph.py,sha256=OLGkEQh-B1CucwSf4nOP79RFXB4R2isHo3LFlr-24yA,20132
1869
1873
  vellum/workflows/inputs/__init__.py,sha256=02pj0IbJkN1AxTreswK39cNi45tA8GWcAAdRJve4cuM,116
1870
1874
  vellum/workflows/inputs/base.py,sha256=79Dw3jiSnCVFeySg6rMFPIqPfErmGKY0XPhpW0dSY-E,5454
1871
1875
  vellum/workflows/inputs/dataset_row.py,sha256=Szdb_RKysCEBRfy4B5LoXoPiTZPEFp_0_RqRZUZRGbU,1076
@@ -1966,7 +1970,7 @@ vellum/workflows/nodes/displayable/search_node/node.py,sha256=1dGCB1kb7MvX3fUJ5z
1966
1970
  vellum/workflows/nodes/displayable/search_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1967
1971
  vellum/workflows/nodes/displayable/search_node/tests/test_node.py,sha256=WVZR3BI_CvxBG9hulv0-tcAc_gW5ozs0nH4uVNRJa2U,8863
1968
1972
  vellum/workflows/nodes/displayable/subworkflow_deployment_node/__init__.py,sha256=9yYM6001YZeqI1VOk1QuEM_yrffk_EdsO7qaPzINKds,92
1969
- vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py,sha256=ZBGOuzAEeMFR7zhIOtXc3Vvv8I4TKZaCFzm_narFc18,13803
1973
+ vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py,sha256=SZIdk7aBmKKFgPYsxZaHIjT6p5W9HBYT1lj5yE4oax8,14169
1970
1974
  vellum/workflows/nodes/displayable/subworkflow_deployment_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1971
1975
  vellum/workflows/nodes/displayable/subworkflow_deployment_node/tests/test_node.py,sha256=c98nMPogZ6iN_pTvVUMTB3J72Hj--H-XVgvvRXhdSQE,19085
1972
1976
  vellum/workflows/nodes/displayable/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1975,13 +1979,13 @@ vellum/workflows/nodes/displayable/tests/test_search_node_error_handling.py,sha2
1975
1979
  vellum/workflows/nodes/displayable/tests/test_search_node_wth_text_output.py,sha256=VepO5z1277c1y5N6LLIC31nnWD1aak2m5oPFplfJHHs,6935
1976
1980
  vellum/workflows/nodes/displayable/tests/test_text_prompt_deployment_node.py,sha256=Bjv-wZyFgNaVZb9KEMMZd9lFoLzbPEPjEMpANizMZw4,2413
1977
1981
  vellum/workflows/nodes/displayable/tool_calling_node/__init__.py,sha256=3n0-ysmFKsr40CVxPthc0rfJgqVJeZuUEsCmYudLVRg,117
1978
- vellum/workflows/nodes/displayable/tool_calling_node/node.py,sha256=pwK9q1blgRv9Mz_LY-fv_hxHfOOkuKxJ6AgRlorUrXk,8420
1982
+ vellum/workflows/nodes/displayable/tool_calling_node/node.py,sha256=rvCGtnCM1bFkwm_2osk1kuIPkUdlLgB4xDxx3yMlQ0Q,8421
1979
1983
  vellum/workflows/nodes/displayable/tool_calling_node/state.py,sha256=CcBVb_YtwfSSka4ze678k6-qwmzMSfjfVP8_Y95feSo,302
1980
1984
  vellum/workflows/nodes/displayable/tool_calling_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1981
1985
  vellum/workflows/nodes/displayable/tool_calling_node/tests/test_composio_service.py,sha256=in1fbEz5x1tx3uKv9YXdvOncsHucNL8Ro6Go7lBuuOQ,8962
1982
1986
  vellum/workflows/nodes/displayable/tool_calling_node/tests/test_node.py,sha256=Idjtlly6GTotNa4isXJ23RxKzQA2oE10MOm793aipLA,13892
1983
1987
  vellum/workflows/nodes/displayable/tool_calling_node/tests/test_utils.py,sha256=EmKFA-ELdTzlK0xMqWnuSZPoGNLYCwk6b0amTqirZo0,11305
1984
- vellum/workflows/nodes/displayable/tool_calling_node/utils.py,sha256=yIo7xwI43M8wQO8UN4uYxWBWafgcC9e8Ucsp6PZDva4,24518
1988
+ vellum/workflows/nodes/displayable/tool_calling_node/utils.py,sha256=VfrW8OZfw6NNxY9xP_jhST8FaRX2xpl-eGNVR3YGClI,24519
1985
1989
  vellum/workflows/nodes/displayable/web_search_node/__init__.py,sha256=8FOnEP-n-U68cvxTlJW9wphIAGHq5aqjzLM-DoSSXnU,61
1986
1990
  vellum/workflows/nodes/displayable/web_search_node/node.py,sha256=NQYux2bOtuBF5E4tn-fXi5y3btURPRrNqMSM9MAZYI4,5091
1987
1991
  vellum/workflows/nodes/displayable/web_search_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1999,7 +2003,7 @@ vellum/workflows/outputs/__init__.py,sha256=AyZ4pRh_ACQIGvkf0byJO46EDnSix1ZCAXfv
1999
2003
  vellum/workflows/outputs/base.py,sha256=zy02zr9DmG3j7Xp3Q8xiOiXFF_c7uNh76jf2LiMS-qE,10132
2000
2004
  vellum/workflows/ports/__init__.py,sha256=bZuMt-R7z5bKwpu4uPW7LlJeePOQWmCcDSXe5frUY5g,101
2001
2005
  vellum/workflows/ports/node_ports.py,sha256=SM9uLAaoaE1HwR-Uqwf2v5zZK5iFnphKs6mE5Ls7ldE,2877
2002
- vellum/workflows/ports/port.py,sha256=zaY02b-Fe0Mb16i7vLT2ouu5uMjept1nlhnqYdGDU-s,4111
2006
+ vellum/workflows/ports/port.py,sha256=L4VrUXT-77a1nN9dC4kuukur5kz2gleEpskaWT1MIRc,4627
2003
2007
  vellum/workflows/ports/tests/test_port.py,sha256=WEE83wct8C01Lq_asSbS0MfL5BLA2avsS0UqJMye4OU,1215
2004
2008
  vellum/workflows/ports/utils.py,sha256=gD8iijX8D3tjx1Tj2FW8-QIubCphTqW_gqROt6w6MOM,3790
2005
2009
  vellum/workflows/references/__init__.py,sha256=glHFC1VfXmcbNvH5VzFbkT03d8_D7MMcvEcsUBrzLIs,591
@@ -2021,7 +2025,7 @@ vellum/workflows/resolvers/resolver.py,sha256=3uEYscB_2PHTazc0Y9SzOe_yiQZhVLfey1
2021
2025
  vellum/workflows/resolvers/tests/test_resolver.py,sha256=PnUGzsulo1It_LjjhHsRNiILvvl5G_IaK8ZX56zKC28,6204
2022
2026
  vellum/workflows/resolvers/types.py,sha256=Hndhlk69g6EKLh_LYg5ILepW5U_h_BYNllfzhS9k8p4,237
2023
2027
  vellum/workflows/runner/__init__.py,sha256=i1iG5sAhtpdsrlvwgH6B-m49JsINkiWyPWs8vyT-bqM,72
2024
- vellum/workflows/runner/runner.py,sha256=NWmjGn8Unv3GjA-DF6e7sAEJhZptWqYqNOohZ4gy8Ko,44199
2028
+ vellum/workflows/runner/runner.py,sha256=nq-DsIZWLSofsMxZnDZZgV_MUod5Baz6mrEs7cgYPQY,45795
2025
2029
  vellum/workflows/sandbox.py,sha256=mezSZmilR_fwR8164n8CEfzlMeQ55IqfapHp4ftImvQ,3212
2026
2030
  vellum/workflows/state/__init__.py,sha256=yUUdR-_Vl7UiixNDYQZ-GEM_kJI9dnOia75TtuNEsnE,60
2027
2031
  vellum/workflows/state/base.py,sha256=A8s0PC8UvFjPpkHDY6u-yIeb2KHjoAmu-GW-GYrDl0E,24654
@@ -2035,9 +2039,12 @@ vellum/workflows/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
2035
2039
  vellum/workflows/tests/test_dataset_row.py,sha256=S8aIiYU9TRzJ8GTl5qCjnJ-fuHdxatHJFGLlKTVHPr4,4174
2036
2040
  vellum/workflows/tests/test_sandbox.py,sha256=JKwaluI-lODQo7Ek9sjDstjL_WTdSqUlVik6ZVTfVOA,1826
2037
2041
  vellum/workflows/tests/test_undefined.py,sha256=zMCVliCXVNLrlC6hEGyOWDnQADJ2g83yc5FIM33zuo8,353
2042
+ vellum/workflows/triggers/__init__.py,sha256=yMSJHI_UbD_CnHJn2VHiX6qcdkyZ0BU8BS6fFQBbgZs,158
2043
+ vellum/workflows/triggers/base.py,sha256=HIZkKPdb9GOYjpGzk2DoSqkxsUyjBnzmsLyhVTWm1iE,4857
2044
+ vellum/workflows/triggers/manual.py,sha256=PgbZ92gcK25yz6REXm98zWic1QBfhxLKfGCeHpZEUx4,1266
2038
2045
  vellum/workflows/types/__init__.py,sha256=fZ3Xxly7YSsu4kCIYD5aYpYucNM97zTyInb9CA24mf0,102
2039
2046
  vellum/workflows/types/code_execution_node_wrappers.py,sha256=fewX9bqF_4TZuK-gZYIn12s31-k03vHMGRpvFAPm11Y,3206
2040
- vellum/workflows/types/core.py,sha256=B8d5spKNlHfXu5sWo72Jl1l1IOYdHaKGqgEr_lvBUqA,1027
2047
+ vellum/workflows/types/core.py,sha256=R7snCd7ci4tiRuHi5ALGh_5DIIF0T9eze3sf6EnJN-c,1126
2041
2048
  vellum/workflows/types/definition.py,sha256=Qof2MAjSNB0AN2XkSKmk-owuY59YcxDVHYpno6-StPA,8058
2042
2049
  vellum/workflows/types/generics.py,sha256=8jptbEx1fnJV0Lhj0MpCJOT6yNiEWeTOYOwrEAb5CRU,1576
2043
2050
  vellum/workflows/types/stack.py,sha256=h7NE0vXR7l9DevFBIzIAk1Zh59K-kECQtDTKOUunwMY,1314
@@ -2060,13 +2067,13 @@ vellum/workflows/utils/vellum_variables.py,sha256=X3lZn-EoWengRWBWRhTNW7hqbj7LkV
2060
2067
  vellum/workflows/utils/zip.py,sha256=HVg_YZLmBOTXKaDV3Xhaf3V6sYnfqqZXQ8CpuafkbPY,1181
2061
2068
  vellum/workflows/vellum_client.py,sha256=3iDR7VV_NgLSm1iZQCKDvrmfEaX1bOJiU15QrxyHpv0,1237
2062
2069
  vellum/workflows/workflows/__init__.py,sha256=KY45TqvavCCvXIkyCFMEc0dc6jTMOUci93U2DUrlZYc,66
2063
- vellum/workflows/workflows/base.py,sha256=7LVmHbewLLQiOX1QAlZoKnuwTNgubn34Kn_QC6jKNnA,29993
2070
+ vellum/workflows/workflows/base.py,sha256=Fb5Bw1ZdysIoex-P7gOqRKqHrpYgj3qYIdeFqv6_y1k,30061
2064
2071
  vellum/workflows/workflows/event_filters.py,sha256=GSxIgwrX26a1Smfd-6yss2abGCnadGsrSZGa7t7LpJA,2008
2065
2072
  vellum/workflows/workflows/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2066
2073
  vellum/workflows/workflows/tests/test_base_workflow.py,sha256=Boa-_m9ii2Qsa1RvVM-VYniF7zCpzGgEGy-OnPZkrHg,23941
2067
2074
  vellum/workflows/workflows/tests/test_context.py,sha256=VJBUcyWVtMa_lE5KxdhgMu0WYNYnUQUDvTF7qm89hJ0,2333
2068
- vellum_ai-1.7.3.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
2069
- vellum_ai-1.7.3.dist-info/METADATA,sha256=CeGDMnbsse5v1VkYVs8u9mZ7GzXcny1eQ_J5GBNOZwg,5547
2070
- vellum_ai-1.7.3.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
2071
- vellum_ai-1.7.3.dist-info/entry_points.txt,sha256=xVavzAKN4iF_NbmhWOlOkHluka0YLkbN_pFQ9pW3gLI,117
2072
- vellum_ai-1.7.3.dist-info/RECORD,,
2075
+ vellum_ai-1.7.5.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
2076
+ vellum_ai-1.7.5.dist-info/METADATA,sha256=ShJgnNyDKIuEsE07Cut9gBsA8vALEZ4XkdDUeuOn7Ms,5547
2077
+ vellum_ai-1.7.5.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
2078
+ vellum_ai-1.7.5.dist-info/entry_points.txt,sha256=xVavzAKN4iF_NbmhWOlOkHluka0YLkbN_pFQ9pW3gLI,117
2079
+ vellum_ai-1.7.5.dist-info/RECORD,,
@@ -862,7 +862,7 @@
862
862
  "type": "CONSTANT_VALUE",
863
863
  "value": {
864
864
  "type": "NUMBER",
865
- "value": 5.0
865
+ "value": 25.0
866
866
  }
867
867
  }
868
868
  },
@@ -1,6 +1,7 @@
1
1
  from dataclasses import dataclass, field
2
+ from enum import Enum
2
3
  from uuid import UUID
3
- from typing import Optional, Type
4
+ from typing import TYPE_CHECKING, Dict, Optional, Type
4
5
 
5
6
  from pydantic import Field
6
7
 
@@ -9,6 +10,30 @@ from vellum.workflows.utils.uuids import uuid4_from_hash
9
10
  from vellum.workflows.workflows.base import BaseWorkflow
10
11
  from vellum_ee.workflows.display.editor.types import NodeDisplayData
11
12
 
13
+ if TYPE_CHECKING:
14
+ from vellum.workflows.triggers.base import BaseTrigger
15
+
16
+
17
+ class WorkflowTriggerType(Enum):
18
+ MANUAL = "MANUAL"
19
+
20
+
21
+ def get_trigger_type_mapping() -> Dict[Type["BaseTrigger"], WorkflowTriggerType]:
22
+ """
23
+ Get mapping from trigger classes to their WorkflowTriggerType enum values.
24
+
25
+ This is a function to avoid circular imports - it imports trigger classes
26
+ only when called, not at module load time.
27
+
28
+ Returns:
29
+ Dictionary mapping trigger classes to their enum types
30
+ """
31
+ from vellum.workflows.triggers.manual import ManualTrigger
32
+
33
+ return {
34
+ ManualTrigger: WorkflowTriggerType.MANUAL,
35
+ }
36
+
12
37
 
13
38
  class WorkflowDisplayDataViewport(UniversalBaseModel):
14
39
  x: float = 0.0
@@ -435,7 +435,7 @@ def test_serialize_workflow():
435
435
  {
436
436
  "id": "1668419e-a193-43a5-8a97-3394e89bf278",
437
437
  "name": "max_prompt_iterations",
438
- "value": {"type": "CONSTANT_VALUE", "value": {"type": "NUMBER", "value": 5.0}},
438
+ "value": {"type": "CONSTANT_VALUE", "value": {"type": "NUMBER", "value": 25.0}},
439
439
  },
440
440
  {
441
441
  "id": "f92dc3ec-a19a-4491-a98a-2b2df322e2e3",
@@ -204,7 +204,7 @@ def test_serialize_workflow():
204
204
  {
205
205
  "id": "1668419e-a193-43a5-8a97-3394e89bf278",
206
206
  "name": "max_prompt_iterations",
207
- "value": {"type": "CONSTANT_VALUE", "value": {"type": "NUMBER", "value": 5.0}},
207
+ "value": {"type": "CONSTANT_VALUE", "value": {"type": "NUMBER", "value": 25.0}},
208
208
  },
209
209
  {
210
210
  "id": "f92dc3ec-a19a-4491-a98a-2b2df322e2e3",