vellum-ai 0.12.8__py3-none-any.whl → 0.12.11__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. vellum/__init__.py +2 -2
  2. vellum/client/__init__.py +14 -4
  3. vellum/client/core/client_wrapper.py +1 -1
  4. vellum/client/types/__init__.py +2 -2
  5. vellum/client/types/function_call.py +0 -2
  6. vellum/client/types/function_call_request.py +0 -2
  7. vellum/client/types/metric_definition_execution.py +6 -0
  8. vellum/client/types/test_suite_run_execution_metric_result.py +6 -0
  9. vellum/client/types/test_suite_run_metric_array_output.py +32 -0
  10. vellum/client/types/test_suite_run_metric_output.py +2 -0
  11. vellum/evaluations/resources.py +1 -1
  12. vellum/prompts/blocks/compilation.py +4 -4
  13. vellum/types/{fulfilled_enum.py → test_suite_run_metric_array_output.py} +1 -1
  14. vellum/workflows/nodes/bases/__init__.py +0 -2
  15. vellum/workflows/nodes/bases/base.py +2 -6
  16. vellum/workflows/nodes/core/inline_subworkflow_node/node.py +13 -7
  17. vellum/workflows/nodes/core/inline_subworkflow_node/tests/__init__.py +0 -0
  18. vellum/workflows/nodes/core/inline_subworkflow_node/tests/test_node.py +41 -0
  19. vellum/workflows/nodes/core/map_node/node.py +1 -1
  20. vellum/workflows/nodes/core/templating_node/node.py +8 -1
  21. vellum/workflows/nodes/core/templating_node/tests/test_templating_node.py +66 -0
  22. vellum/workflows/nodes/core/try_node/node.py +1 -3
  23. vellum/workflows/nodes/core/try_node/tests/test_node.py +1 -1
  24. vellum/workflows/nodes/displayable/bases/api_node/node.py +2 -2
  25. vellum/workflows/nodes/displayable/bases/search_node.py +1 -2
  26. vellum/workflows/nodes/displayable/inline_prompt_node/node.py +17 -10
  27. vellum/workflows/nodes/displayable/inline_prompt_node/tests/test_node.py +13 -3
  28. vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py +4 -2
  29. vellum/workflows/nodes/displayable/tests/test_search_node_wth_text_output.py +1 -2
  30. vellum/workflows/sandbox.py +4 -5
  31. vellum/workflows/state/context.py +5 -4
  32. vellum/workflows/state/encoder.py +4 -0
  33. vellum/workflows/state/tests/test_state.py +19 -0
  34. vellum/workflows/tests/test_sandbox.py +2 -2
  35. vellum/workflows/utils/tests/test_vellum_variables.py +3 -0
  36. vellum/workflows/utils/vellum_variables.py +5 -4
  37. vellum/workflows/workflows/base.py +5 -2
  38. {vellum_ai-0.12.8.dist-info → vellum_ai-0.12.11.dist-info}/METADATA +1 -1
  39. {vellum_ai-0.12.8.dist-info → vellum_ai-0.12.11.dist-info}/RECORD +46 -45
  40. vellum_cli/tests/test_push.py +1 -1
  41. vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py +6 -1
  42. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py +207 -0
  43. vellum/client/types/fulfilled_enum.py +0 -5
  44. vellum/workflows/nodes/bases/base_subworkflow_node/__init__.py +0 -5
  45. vellum/workflows/nodes/bases/base_subworkflow_node/node.py +0 -10
  46. /vellum/{evaluations/utils → utils}/uuid.py +0 -0
  47. {vellum_ai-0.12.8.dist-info → vellum_ai-0.12.11.dist-info}/LICENSE +0 -0
  48. {vellum_ai-0.12.8.dist-info → vellum_ai-0.12.11.dist-info}/WHEEL +0 -0
  49. {vellum_ai-0.12.8.dist-info → vellum_ai-0.12.11.dist-info}/entry_points.txt +0 -0
@@ -12,7 +12,6 @@ from vellum.client.types.initiated_execute_prompt_event import InitiatedExecuteP
12
12
  from vellum.client.types.prompt_output import PromptOutput
13
13
  from vellum.client.types.prompt_request_json_input import PromptRequestJsonInput
14
14
  from vellum.client.types.string_vellum_value import StringVellumValue
15
- from vellum.workflows.nodes.displayable.bases.inline_prompt_node.node import BaseInlinePromptNode
16
15
  from vellum.workflows.nodes.displayable.inline_prompt_node.node import InlinePromptNode
17
16
 
18
17
 
@@ -74,7 +73,7 @@ def test_inline_prompt_node__function_definitions(vellum_adhoc_prompt_client):
74
73
  pass
75
74
 
76
75
  # AND a prompt node with a accepting that function definition
77
- class MyNode(BaseInlinePromptNode):
76
+ class MyNode(InlinePromptNode):
78
77
  ml_model = "gpt-4o"
79
78
  functions = [my_function]
80
79
  prompt_inputs = {}
@@ -99,7 +98,7 @@ def test_inline_prompt_node__function_definitions(vellum_adhoc_prompt_client):
99
98
  vellum_adhoc_prompt_client.adhoc_execute_prompt_stream.side_effect = generate_prompt_events
100
99
 
101
100
  # WHEN the node is run
102
- list(MyNode().run())
101
+ outputs = list(MyNode().run())
103
102
 
104
103
  # THEN the prompt is executed with the correct inputs
105
104
  mock_api = vellum_adhoc_prompt_client.adhoc_execute_prompt_stream
@@ -117,3 +116,14 @@ def test_inline_prompt_node__function_definitions(vellum_adhoc_prompt_client):
117
116
  },
118
117
  ),
119
118
  ]
119
+ assert (
120
+ outputs[-1].value
121
+ == """{
122
+ "arguments": {
123
+ "foo": "hello",
124
+ "bar": 1
125
+ },
126
+ "id": null,
127
+ "name": "my_function"
128
+ }"""
129
+ )
@@ -17,12 +17,13 @@ from vellum.workflows.context import get_parent_context
17
17
  from vellum.workflows.errors import WorkflowErrorCode
18
18
  from vellum.workflows.errors.types import workflow_event_error_to_workflow_error
19
19
  from vellum.workflows.exceptions import NodeException
20
- from vellum.workflows.nodes.bases.base_subworkflow_node.node import BaseSubworkflowNode
20
+ from vellum.workflows.nodes.bases.base import BaseNode
21
21
  from vellum.workflows.outputs.base import BaseOutput
22
+ from vellum.workflows.types.core import EntityInputsInterface
22
23
  from vellum.workflows.types.generics import StateType
23
24
 
24
25
 
25
- class SubworkflowDeploymentNode(BaseSubworkflowNode[StateType], Generic[StateType]):
26
+ class SubworkflowDeploymentNode(BaseNode[StateType], Generic[StateType]):
26
27
  """
27
28
  Used to execute a Workflow Deployment.
28
29
 
@@ -38,6 +39,7 @@ class SubworkflowDeploymentNode(BaseSubworkflowNode[StateType], Generic[StateTyp
38
39
 
39
40
  # Either the Workflow Deployment's UUID or its name.
40
41
  deployment: ClassVar[Union[UUID, str]]
42
+ subworkflow_inputs: ClassVar[EntityInputsInterface] = {}
41
43
 
42
44
  release_tag: str = LATEST_RELEASE_TAG
43
45
  external_id: Optional[str] = OMIT
@@ -118,8 +118,7 @@ witness or missing person.\
118
118
 
119
119
  # AND we should have made the expected call to Vellum search
120
120
  vellum_search_client.assert_called_once_with(
121
- index_id=None,
122
- index_name="vellum-trust-center-policies",
121
+ document_index="vellum-trust-center-policies",
123
122
  query="How often is employee training?",
124
123
  options=SearchRequestOptionsRequest(
125
124
  limit=8,
@@ -1,4 +1,4 @@
1
- from typing import Generic, Sequence, Type
1
+ from typing import Generic, Sequence
2
2
 
3
3
  import dotenv
4
4
 
@@ -9,8 +9,8 @@ from vellum.workflows.types.generics import WorkflowType
9
9
  from vellum.workflows.workflows.event_filters import root_workflow_event_filter
10
10
 
11
11
 
12
- class SandboxRunner(Generic[WorkflowType]):
13
- def __init__(self, workflow: Type[WorkflowType], inputs: Sequence[BaseInputs]):
12
+ class WorkflowSandboxRunner(Generic[WorkflowType]):
13
+ def __init__(self, workflow: WorkflowType, inputs: Sequence[BaseInputs]):
14
14
  if not inputs:
15
15
  raise ValueError("Inputs are required to have at least one defined inputs")
16
16
 
@@ -30,8 +30,7 @@ class SandboxRunner(Generic[WorkflowType]):
30
30
 
31
31
  selected_inputs = self._inputs[index]
32
32
 
33
- workflow = self._workflow()
34
- events = workflow.stream(
33
+ events = self._workflow.stream(
35
34
  inputs=selected_inputs,
36
35
  event_filter=root_workflow_event_filter,
37
36
  )
@@ -13,11 +13,12 @@ if TYPE_CHECKING:
13
13
  class WorkflowContext:
14
14
  def __init__(
15
15
  self,
16
- _vellum_client: Optional[Vellum] = None,
17
- _parent_context: Optional[ParentContext] = None,
16
+ *,
17
+ vellum_client: Optional[Vellum] = None,
18
+ parent_context: Optional[ParentContext] = None,
18
19
  ):
19
- self._vellum_client = _vellum_client
20
- self._parent_context = _parent_context
20
+ self._vellum_client = vellum_client
21
+ self._parent_context = parent_context
21
22
  self._event_queue: Optional[Queue["WorkflowEvent"]] = None
22
23
 
23
24
  @cached_property
@@ -2,6 +2,7 @@ from dataclasses import asdict, is_dataclass
2
2
  from datetime import datetime
3
3
  import enum
4
4
  from json import JSONEncoder
5
+ from queue import Queue
5
6
  from uuid import UUID
6
7
  from typing import Any, Callable, Dict, Type
7
8
 
@@ -44,6 +45,9 @@ class DefaultStateEncoder(JSONEncoder):
44
45
  if isinstance(obj, enum.Enum):
45
46
  return obj.value
46
47
 
48
+ if isinstance(obj, Queue):
49
+ return list(obj.queue)
50
+
47
51
  if is_dataclass(obj):
48
52
  # Technically, obj is DataclassInstance | type[DataclassInstance], but asdict expects a DataclassInstance
49
53
  # in practice, we only ever pass the former
@@ -2,6 +2,7 @@ import pytest
2
2
  from collections import defaultdict
3
3
  from copy import deepcopy
4
4
  import json
5
+ from queue import Queue
5
6
  from typing import Dict
6
7
 
7
8
  from vellum.workflows.nodes.bases import BaseNode
@@ -113,3 +114,21 @@ def test_state_json_serialization__with_node_output_updates():
113
114
 
114
115
  # THEN the state is serialized correctly
115
116
  assert json_state["meta"]["node_outputs"] == {"MockNode.Outputs.baz": "hello"}
117
+
118
+
119
+ def test_state_json_serialization__with_queue():
120
+ # GIVEN an initial state instance
121
+ state = MockState(foo="bar")
122
+
123
+ # AND we add a Node Output queue to state
124
+ queue: Queue[str] = Queue()
125
+ queue.put("test1")
126
+ queue.put("test2")
127
+
128
+ state.meta.node_outputs[MockNode.Outputs.baz] = queue
129
+
130
+ # WHEN we serialize the state
131
+ json_state = json.loads(json.dumps(state, cls=DefaultStateEncoder))
132
+
133
+ # THEN the state is serialized correctly with the queue turned into a list
134
+ assert json_state["meta"]["node_outputs"] == {"MockNode.Outputs.baz": ["test1", "test2"]}
@@ -3,7 +3,7 @@ from typing import List
3
3
 
4
4
  from vellum.workflows.inputs.base import BaseInputs
5
5
  from vellum.workflows.nodes.bases.base import BaseNode
6
- from vellum.workflows.sandbox import SandboxRunner
6
+ from vellum.workflows.sandbox import WorkflowSandboxRunner
7
7
  from vellum.workflows.state.base import BaseState
8
8
  from vellum.workflows.workflows.base import BaseWorkflow
9
9
 
@@ -49,7 +49,7 @@ def test_sandbox_runner__happy_path(mock_logger, run_kwargs, expected_last_log):
49
49
  ]
50
50
 
51
51
  # WHEN we run the sandbox
52
- runner = SandboxRunner(workflow=Workflow, inputs=inputs)
52
+ runner = WorkflowSandboxRunner(workflow=Workflow(), inputs=inputs)
53
53
  runner.run(**run_kwargs)
54
54
 
55
55
  # THEN we see the logs
@@ -2,6 +2,7 @@ import pytest
2
2
  from typing import List, Optional
3
3
 
4
4
  from vellum import ChatMessage, SearchResult
5
+ from vellum.workflows.types.core import Json
5
6
  from vellum.workflows.utils.vellum_variables import primitive_type_to_vellum_variable_type
6
7
 
7
8
 
@@ -18,6 +19,8 @@ from vellum.workflows.utils.vellum_variables import primitive_type_to_vellum_var
18
19
  (Optional[List[ChatMessage]], "CHAT_HISTORY"),
19
20
  (List[SearchResult], "SEARCH_RESULTS"),
20
21
  (Optional[List[SearchResult]], "SEARCH_RESULTS"),
22
+ (Json, "JSON"),
23
+ (Optional[Json], "JSON"),
21
24
  ],
22
25
  )
23
26
  def test_primitive_type_to_vellum_variable_type(type_, expected):
@@ -35,14 +35,15 @@ def primitive_type_to_vellum_variable_type(type_: Union[Type, BaseDescriptor]) -
35
35
  if len(types) != 1:
36
36
  # Check explicitly for our internal JSON type.
37
37
  # Matches the type found at vellum.workflows.utils.vellum_variables.Json
38
- if types == [
38
+ actual_types_with_explicit_ref = [
39
39
  bool,
40
40
  int,
41
41
  float,
42
42
  str,
43
- typing.List[typing.ForwardRef("Json")], # type: ignore [misc]
44
- typing.Dict[str, typing.ForwardRef("Json")], # type: ignore [misc]
45
- ]:
43
+ typing.List[Json],
44
+ typing.Dict[str, Json],
45
+ ]
46
+ if types == actual_types_with_explicit_ref:
46
47
  return "JSON"
47
48
  raise ValueError(f"Expected Descriptor to only have one type, got {types}")
48
49
 
@@ -121,10 +121,11 @@ class BaseWorkflow(Generic[WorkflowInputsType, StateType], metaclass=_BaseWorkfl
121
121
 
122
122
  def __init__(
123
123
  self,
124
+ *,
125
+ context: Optional[WorkflowContext] = None,
124
126
  parent_state: Optional[BaseState] = None,
125
127
  emitters: Optional[List[BaseWorkflowEmitter]] = None,
126
128
  resolvers: Optional[List[BaseWorkflowResolver]] = None,
127
- context: Optional[WorkflowContext] = None,
128
129
  ):
129
130
  self._parent_state = parent_state
130
131
  self.emitters = emitters or (self.emitters if hasattr(self, "emitters") else [])
@@ -188,6 +189,7 @@ class BaseWorkflow(Generic[WorkflowInputsType, StateType], metaclass=_BaseWorkfl
188
189
  def run(
189
190
  self,
190
191
  inputs: Optional[WorkflowInputsType] = None,
192
+ *,
191
193
  state: Optional[StateType] = None,
192
194
  entrypoint_nodes: Optional[RunFromNodeArg] = None,
193
195
  external_inputs: Optional[ExternalInputsArg] = None,
@@ -281,8 +283,9 @@ class BaseWorkflow(Generic[WorkflowInputsType, StateType], metaclass=_BaseWorkfl
281
283
 
282
284
  def stream(
283
285
  self,
284
- event_filter: Optional[Callable[[Type["BaseWorkflow"], WorkflowEvent], bool]] = None,
285
286
  inputs: Optional[WorkflowInputsType] = None,
287
+ *,
288
+ event_filter: Optional[Callable[[Type["BaseWorkflow"], WorkflowEvent], bool]] = None,
286
289
  state: Optional[StateType] = None,
287
290
  entrypoint_nodes: Optional[RunFromNodeArg] = None,
288
291
  external_inputs: Optional[ExternalInputsArg] = None,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vellum-ai
3
- Version: 0.12.8
3
+ Version: 0.12.11
4
4
  Summary:
5
5
  License: MIT
6
6
  Requires-Python: >=3.9,<4.0
@@ -12,7 +12,7 @@ vellum_cli/tests/conftest.py,sha256=eFGwBxib3Nki830lIFintB0b6r4x8T_KMnmzhlTY5x0,
12
12
  vellum_cli/tests/test_config.py,sha256=uvKGDc8BoVyT9_H0Z-g8469zVxomn6Oi3Zj-vK7O_wU,2631
13
13
  vellum_cli/tests/test_main.py,sha256=qDZG-aQauPwBwM6A2DIu1494n47v3pL28XakTbLGZ-k,272
14
14
  vellum_cli/tests/test_pull.py,sha256=Bnf21VjfiRb_j495idz5N8afucagtiktNCtVMvU8tGs,18977
15
- vellum_cli/tests/test_push.py,sha256=V2iGcskh2X3OHj2uV5Vx_BhmtyfmUkyx0lrp8DDOExc,5824
15
+ vellum_cli/tests/test_push.py,sha256=NpwGXuZSzrR7B6hBO1UF9O8im13_LlpSqncVSdzYDiQ,5812
16
16
  vellum_ee/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
17
  vellum_ee/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
18
  vellum_ee/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -34,7 +34,7 @@ vellum_ee/workflows/display/nodes/vellum/error_node.py,sha256=ygTjSjYDI4DtkxADWu
34
34
  vellum_ee/workflows/display/nodes/vellum/final_output_node.py,sha256=t5iJQVoRT5g-v2IiUb4kFYdvUVKch0zn27016pzDZoo,2761
35
35
  vellum_ee/workflows/display/nodes/vellum/guardrail_node.py,sha256=3TJvHX_Uuf_gr94VkYc_zmNH8I5p71ChIeoAbJZ3ddY,2158
36
36
  vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py,sha256=DYhxHgFT06CNCpovO4Z-wFPqCjFKxyl89ygFs8AucRQ,7189
37
- vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py,sha256=x5wiuWbRjxNcPGu8BoBEKHwPeqCpHE-vrGjAdM5TJOs,4721
37
+ vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py,sha256=IqPQdlxLdaMirgDbOSxq17d8bolqqjjRPy4t3YCBhmc,5028
38
38
  vellum_ee/workflows/display/nodes/vellum/map_node.py,sha256=AqUlItgSZij12qRKguKVmDbbaLuDy3Cdom5uOlJPqrc,3640
39
39
  vellum_ee/workflows/display/nodes/vellum/merge_node.py,sha256=jzO63B9KiEAncnBqmz2ZTcxjmEHozMEe7WnfpcpsQYg,3195
40
40
  vellum_ee/workflows/display/nodes/vellum/note_node.py,sha256=9VpC3h0RYOxJuRbjDwidBYlLKakkmlEnDMBh2C7lHcY,1107
@@ -60,6 +60,7 @@ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_s
60
60
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py,sha256=NkpgaTbu6nLr3iwgsSNtiHyiNDCUaFakd1JaoW6CC6Y,9489
61
61
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py,sha256=9R6ELHBn9tsp3cy15q1qp1OByyCxFOVdrM67EwCYY50,12984
62
62
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py,sha256=8bz0vm_EyQKSjnwS5vqqgnjE9ygvm-CaPKcwCfeOrlo,12704
63
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py,sha256=6LrGPS7e9CWpjFq2hpliSzP9kDpZ9KqvBNlNO3sq8cs,8063
63
64
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py,sha256=xG8nKA1iKXxUe1fnD2X6qm7cUGW14iq2P-L16zhcKC8,4271
64
65
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py,sha256=1_02RbghUwhKMr8VtRaPjHOXAX59hgWw1rJ2EDyKs-E,2880
65
66
  vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256=BGCgJ3WWiYK5fWJp_Yz-aWQPli5sIKOhLTVYfG9Tpq8,9177
@@ -71,12 +72,12 @@ vellum_ee/workflows/display/workflows/__init__.py,sha256=kapXsC67VJcgSuiBMa86Fde
71
72
  vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=ydAbFMzcY2LURINZbXYm9BAXZdIa3-7rQ86Kupo7qcA,12804
72
73
  vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py,sha256=AMxNnTm2z3LIR5rqxoCAfuy37F2FTuSRDVtKUoezO8M,1184
73
74
  vellum_ee/workflows/display/workflows/vellum_workflow_display.py,sha256=GhIviEMDWNw1p8z20ta08T5PeNCVJs5p2hrOX1uyNxg,17066
74
- vellum/__init__.py,sha256=QmGeEPXeFxgkZa849KKK3wH3Y641wyt00Rytfay6KiM,35520
75
+ vellum/__init__.py,sha256=FTKuzi4UX1MAYpZnW-JbtU8WgOzUIfolgajVVR96LGs,35552
75
76
  vellum/client/README.md,sha256=JkCJjmMZl4jrPj46pkmL9dpK4gSzQQmP5I7z4aME4LY,4749
76
- vellum/client/__init__.py,sha256=o4m7iRZWEV8rP3GkdaztHAjNmjxjWERlarviFoHzuKI,110927
77
+ vellum/client/__init__.py,sha256=z59nOGe27vMDqsU-ljfULBwC5J4nyrqFunhmo8xnxbU,111521
77
78
  vellum/client/core/__init__.py,sha256=SQ85PF84B9MuKnBwHNHWemSGuy-g_515gFYNFhvEE0I,1438
78
79
  vellum/client/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
79
- vellum/client/core/client_wrapper.py,sha256=oWk19_A_3mvqQM_W3wJgQnObX6YIE918NEp9olVAuEo,1868
80
+ vellum/client/core/client_wrapper.py,sha256=XMPyn7D-uucGK4Ut387xUgRrFjGQOVJfXarC4py5MbY,1869
80
81
  vellum/client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
81
82
  vellum/client/core/file.py,sha256=X9IbmkZmB2bB_DpmZAO3crWdXagOakAyn6UCOCImCPg,2322
82
83
  vellum/client/core/http_client.py,sha256=R0pQpCppnEtxccGvXl4uJ76s7ro_65Fo_erlNNLp_AI,19228
@@ -135,7 +136,7 @@ vellum/client/resources/workflows/types/__init__.py,sha256=-uFca4ypncAOvfsg6sjD-
135
136
  vellum/client/resources/workflows/types/workflows_pull_request_format.py,sha256=dOWE_jnDnniIJLoeseeCms23aklghyBkoPmBFzcqqZk,165
136
137
  vellum/client/resources/workspace_secrets/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
137
138
  vellum/client/resources/workspace_secrets/client.py,sha256=h7UzXLyTttPq1t-JZGMg1BWxypxJvBGUdqg7KGT7MK4,8027
138
- vellum/client/types/__init__.py,sha256=618t1NgjOnUJWFFv5pS4dmOIttrTkHhMNj5F8yRlTpA,53769
139
+ vellum/client/types/__init__.py,sha256=cCh66eGhjb0bVYtwjjQBGpzjt_LT0SiVToraHqVglTg,53821
139
140
  vellum/client/types/ad_hoc_execute_prompt_event.py,sha256=bCjujA2XsOgyF3bRZbcEqV2rOIymRgsLoIRtZpB14xg,607
140
141
  vellum/client/types/ad_hoc_expand_meta.py,sha256=1gv-NCsy_6xBYupLvZH979yf2VMdxAU-l0y0ynMKZaw,1331
141
142
  vellum/client/types/ad_hoc_fulfilled_prompt_execution_meta.py,sha256=Bfvf1d_dkmshxRACVM5vcxbH_7AQY23RmrrnPc0ytYY,939
@@ -255,19 +256,18 @@ vellum/client/types/folder_entity_test_suite_data.py,sha256=RGITy3Pip6NeIb77YGav
255
256
  vellum/client/types/folder_entity_workflow_sandbox.py,sha256=gFmkwKZGh5O9-9y4w6VGK1IRsKLf7NZ4SCC-pgucm8M,853
256
257
  vellum/client/types/folder_entity_workflow_sandbox_data.py,sha256=MW0nLAvetgnsm6KWiGcYcKB9llR-UfosSNz0MtokN38,783
257
258
  vellum/client/types/fulfilled_ad_hoc_execute_prompt_event.py,sha256=19rFjVrzobaaAQhZlP_WGV9f_Rwrz4EPRXbT2aYkaJw,1016
258
- vellum/client/types/fulfilled_enum.py,sha256=MenrGneRMBvsq-n8tkMXAx0wppGWLJgkqdKnfklGP9U,124
259
259
  vellum/client/types/fulfilled_execute_prompt_event.py,sha256=E-iBwlMWvwQyRfzqPlgtX8KurE3IYsTRd5vWjXtbOmk,994
260
260
  vellum/client/types/fulfilled_execute_prompt_response.py,sha256=nKhDk2ZloCuE0uijX5XOE63_cq8PBo4UWs4hK4e3jUE,1227
261
261
  vellum/client/types/fulfilled_execute_workflow_workflow_result_event.py,sha256=kYlTOfJd9SydVSmJ8dr8pdLh7RHOwcFv5UzBYgKlyTw,1147
262
262
  vellum/client/types/fulfilled_prompt_execution_meta.py,sha256=sMWAMqJCh8n_NBtRSM4muiAqKne_W-NCxJVzKy9Q1Ec,934
263
263
  vellum/client/types/fulfilled_workflow_node_result_event.py,sha256=dYZUcyl_nFRFpBA_imaHkp9F7dLi59z2ESq4R7do9mo,1403
264
- vellum/client/types/function_call.py,sha256=nXPEC3nJh8QzjCvyomfm80fyO-Aar60KBOaGfQtZ5D0,804
264
+ vellum/client/types/function_call.py,sha256=3f19emMu06jHo3DlO4pQb_bC7NjKCLjWdLq3gndiCqg,713
265
265
  vellum/client/types/function_call_chat_message_content.py,sha256=qXbrMQeXn_CLjfDzQvv9llmae2wvpoTlUSQWdfMvf-k,831
266
266
  vellum/client/types/function_call_chat_message_content_request.py,sha256=HVGxHs6jc4EBgW7rdJXlF8KRlugY5YHa0ujDrEQqPCo,860
267
267
  vellum/client/types/function_call_chat_message_content_value.py,sha256=DHRZYAMc4Y5MerUS_6CIxQBtORftKn-gBx8Skgivm_A,736
268
268
  vellum/client/types/function_call_chat_message_content_value_request.py,sha256=67EZ3qSR9zO5akOgloswRE0Pv8BcjtWhdTRJIwuQU04,743
269
269
  vellum/client/types/function_call_input.py,sha256=Iiqk2-IX6xUI2UnRj3bum5C0OlQn9jRmBwatUzJQQt8,820
270
- vellum/client/types/function_call_request.py,sha256=eJBIN-wLkkkDUIwAy1nMeWHu3MZ5aJpOXyWtBa39RFA,811
270
+ vellum/client/types/function_call_request.py,sha256=udGEdk66q1zTpEFE2xq-cu6w_ahMpfQv_9lIey9x1G0,720
271
271
  vellum/client/types/function_call_variable_value.py,sha256=VQKCiEtJsmIK3i7CtFV_2ZpxeX70rqpUViXIvAci8L0,702
272
272
  vellum/client/types/function_call_vellum_value.py,sha256=lLJb-S_-S_UXm6una1BMyCbqLpMhbbMcaVIYNO45h5o,759
273
273
  vellum/client/types/function_call_vellum_value_request.py,sha256=oUteuCfWcj7UJbSE_Vywmmva9kyTaeL9iv5WJHabDVs,788
@@ -320,7 +320,7 @@ vellum/client/types/metadata_filter_config_request.py,sha256=eFmoTIVv4RB6DRaxqyD
320
320
  vellum/client/types/metadata_filter_rule_combinator.py,sha256=3Vpp1Mnv3As7efkxWTeV8qd4gdJ6OLoLhz_UeVBHAX8,165
321
321
  vellum/client/types/metadata_filter_rule_request.py,sha256=Pcs0TsU7CRnsEUoH0DWb-c9DTP2UW67lJKXlsTLXV48,1135
322
322
  vellum/client/types/metadata_filters_request.py,sha256=Yaiu7rkcrV2bCFk6HrZSjuF6V-6JYjZTpzxv7_MFe70,345
323
- vellum/client/types/metric_definition_execution.py,sha256=xwr5VJTo32k77isUtz2uzHGmtRm6K_VyOlTCbJr0JNU,672
323
+ vellum/client/types/metric_definition_execution.py,sha256=uLi7Wj1b0f5tjiZWbLGLZMLiNOLZ3ofR57WHne116t8,907
324
324
  vellum/client/types/metric_definition_history_item.py,sha256=oR0m0PG_NGpEBSwJ3n-CFi6TJo3o5Y4D_wfaqpk2VxI,1183
325
325
  vellum/client/types/metric_definition_input.py,sha256=4nmwpPqbeNQYCzLkXCkc-FGV5K2Zfa22xqSUe_L6o5s,331
326
326
  vellum/client/types/metric_node_result.py,sha256=YdKq1DZiBD1RBtjyMejImylv3BqrwY8B_UF4Ij-6_64,660
@@ -515,7 +515,7 @@ vellum/client/types/test_suite_run_execution_error_output.py,sha256=6UXaVzWivUTQ
515
515
  vellum/client/types/test_suite_run_execution_function_call_output.py,sha256=jgAk0xgWnJudZh4VhDNb8HfgUAUHA6I8PK_2ExHW9hE,873
516
516
  vellum/client/types/test_suite_run_execution_json_output.py,sha256=qO-EVGBzKU_zhGYo4hiOrIteymXEc5Hbsea5YC-cnXY,796
517
517
  vellum/client/types/test_suite_run_execution_metric_definition.py,sha256=5Yd7aQK7vr5swpA8ciMwmMb12wismM5vgCOoGLlAFmU,679
518
- vellum/client/types/test_suite_run_execution_metric_result.py,sha256=ANu2cAUOE8mEINWYdaUzYbJ7vXx7KYAhFniQ-emMGzo,924
518
+ vellum/client/types/test_suite_run_execution_metric_result.py,sha256=LfLwTtCmNJp3u_h3MfWbD9UKw9n8eN4QLN_VeKtHWAk,1175
519
519
  vellum/client/types/test_suite_run_execution_number_output.py,sha256=qzD1sny1o6HDZXkGgvXOPclR4-L1VyAfLvQCnLnU_BM,799
520
520
  vellum/client/types/test_suite_run_execution_output.py,sha256=jxZg_EOMwKjCDH0QyrecZyUW5OqCMMsWmk9PIwI8EUs,1171
521
521
  vellum/client/types/test_suite_run_execution_search_results_output.py,sha256=30dcLuSRxFZWZgkU2iPNzKcTsT8tJrD1B91UDSaOp3M,890
@@ -524,10 +524,11 @@ vellum/client/types/test_suite_run_external_exec_config.py,sha256=pznl2aDh12tGMR
524
524
  vellum/client/types/test_suite_run_external_exec_config_data.py,sha256=ukhvRkWY7MxWbj1Im1eqUWdW1AxO_98GX3WAjH77fSQ,1071
525
525
  vellum/client/types/test_suite_run_external_exec_config_data_request.py,sha256=c_ILHYfH55Yoc52oCK4uwtEv4mJxhDXM6YBFJwPh4uA,1142
526
526
  vellum/client/types/test_suite_run_external_exec_config_request.py,sha256=HxBtYYKC7p1pwlNjjeW3smcDrtiRvPx3xXRbWxID1vk,1401
527
+ vellum/client/types/test_suite_run_metric_array_output.py,sha256=U0G8rrhhqpX9_CWPV2Ys6PtzyJT6oRkUV4NOK9O4-qA,1035
527
528
  vellum/client/types/test_suite_run_metric_error_output.py,sha256=trW1KTH4SJafRfDFRyBS7TpzcT88tXkpWEoysij6IXQ,755
528
529
  vellum/client/types/test_suite_run_metric_json_output.py,sha256=DI3mJR5kpi8Hm2n6tx6buySHPwTkkbBbr8Lkk4k6HH4,738
529
530
  vellum/client/types/test_suite_run_metric_number_output.py,sha256=8pddeSds6Rrn0xGqyvgPsG1hr1tu6eOiQAp8kkM_aBk,739
530
- vellum/client/types/test_suite_run_metric_output.py,sha256=qxEJ6Ii4XOhJpM3tgn6ctRnldysduEIe8tQFnWBEOvQ,578
531
+ vellum/client/types/test_suite_run_metric_output.py,sha256=z9A4_ZT9_NIHWHkFZakaf_SMn3Y13WRJ_lWzTCzXZ_U,691
531
532
  vellum/client/types/test_suite_run_metric_string_output.py,sha256=YXerGfpvJdBtKrzgutSqEfG-N6cZoeOL59qZ5k6DwQA,737
532
533
  vellum/client/types/test_suite_run_prompt_sandbox_history_item_exec_config.py,sha256=NUJXSSLxOxVAGOoQj74m5UqjCTCCeEIgbWGP6kM2Fck,1200
533
534
  vellum/client/types/test_suite_run_prompt_sandbox_history_item_exec_config_data.py,sha256=IdlTWDda1061PwsHaoGDyB7-2lBVSus7Z8agcdmSOYE,905
@@ -649,19 +650,18 @@ vellum/errors/not_found_error.py,sha256=gC71YBdPyHR46l3RNTs0v9taVvAY0gWRFrcKpKzb
649
650
  vellum/evaluations/__init__.py,sha256=hNsLoHSykqXDJP-MwFvu2lExImxo9KEyEJjt_fdAzpE,77
650
651
  vellum/evaluations/constants.py,sha256=Vteml4_csZsMgo_q3-71E3JRCAoN6308TXLu5nfLhmU,116
651
652
  vellum/evaluations/exceptions.py,sha256=6Xacoyv43fJvVf6Dt6Io5a-f9vF12Tx51jzsQRNSqhY,56
652
- vellum/evaluations/resources.py,sha256=33IDRHOjrRsC20JHs0BtRlaSYCY9Gg-AkA6qkPjBrWo,12676
653
+ vellum/evaluations/resources.py,sha256=7xS4eYeRLLz44KLMDL0wwIY80wMy2carFREB85k_Avk,12664
653
654
  vellum/evaluations/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
654
655
  vellum/evaluations/utils/env.py,sha256=Xj_nxsoU5ox06EOTjRopR4lrigQI6Le6qbWGltYoEGU,276
655
656
  vellum/evaluations/utils/exceptions.py,sha256=dXMAkzqbHV_AP5FjjbegPlfUE0zQDlpA3qOsoOJUxfg,49
656
657
  vellum/evaluations/utils/paginator.py,sha256=rEED_BJAXAM6tM1yMwHePNzszjq_tTq4NbQvi1jWQ_Q,697
657
- vellum/evaluations/utils/uuid.py,sha256=Ch6wWRgwICxLxJCTl5iE3EdRlZj2zADR-zUMUtjcMWM,214
658
658
  vellum/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
659
659
  vellum/plugins/pydantic.py,sha256=EbI0pJMhUS9rLPSkzmAELfnCHrWCJzOrU06T8ommwdw,2334
660
660
  vellum/plugins/utils.py,sha256=U9ZY9KdE3RRvbcG01hXxu9CvfJD6Fo7nJDgcHjQn0FI,606
661
661
  vellum/plugins/vellum_mypy.py,sha256=VC15EzjTsXOb9uF1bky4rcxePP-0epMVmCsLB2z4Dh8,24816
662
662
  vellum/prompts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
663
663
  vellum/prompts/blocks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
664
- vellum/prompts/blocks/compilation.py,sha256=hBN_ajq77tSkVyUIcDlO-Qu77PSeJ1OzVhp70NmQd2k,7458
664
+ vellum/prompts/blocks/compilation.py,sha256=GVxV0iaVp72RCNMlLtUasfg25jBjbeEu3u97QUSbrQo,7506
665
665
  vellum/prompts/blocks/exceptions.py,sha256=vmk5PV6Vyw9nKjZYQDUDW0LH8MfQNIgFvFb_mFWdIRI,50
666
666
  vellum/prompts/blocks/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
667
667
  vellum/prompts/blocks/tests/test_compilation.py,sha256=0DhMoc4huHR6YnNL-0aBLmWSyUfw2BpRq_gEdKsQmAc,3693
@@ -830,7 +830,6 @@ vellum/types/folder_entity_test_suite_data.py,sha256=FQd58e9hlOBFwDp0DiD-YO_01S6
830
830
  vellum/types/folder_entity_workflow_sandbox.py,sha256=2KybEyswJhuqCL9FCp-LEfm8wkNmky1ROTN4je4T1gk,168
831
831
  vellum/types/folder_entity_workflow_sandbox_data.py,sha256=QIxbRKQAq-O9nVMYOTubkFmWx7rvX-BeV5lwU1d8TCY,173
832
832
  vellum/types/fulfilled_ad_hoc_execute_prompt_event.py,sha256=aC5REbvPJa1Ifnkr8jSY0RXrrNpSTicKz86SCrWZRag,175
833
- vellum/types/fulfilled_enum.py,sha256=UfkMLLR1u2MCMSQEivCED-r65cMFEhWPECskwVm-DAQ,152
834
833
  vellum/types/fulfilled_execute_prompt_event.py,sha256=IVEjlhPZkgnmhND0JXJo33mLCehupk4Cy6CTTaaW18o,168
835
834
  vellum/types/fulfilled_execute_prompt_response.py,sha256=0TmtIHRSLXmOzs-mnCA8txZHWtSP0RAG8ItLUiqDig8,171
836
835
  vellum/types/fulfilled_execute_workflow_workflow_result_event.py,sha256=Xuz7iHzmyUcGuXQ-e-a6qRgeeVmuX7ZZYC1-YYPkwDQ,186
@@ -1099,6 +1098,7 @@ vellum/types/test_suite_run_external_exec_config.py,sha256=y8JNeWgqWTac2Utv7zlXJ
1099
1098
  vellum/types/test_suite_run_external_exec_config_data.py,sha256=18Y2cEVxSlaFjH5pbvWGt8Hikoy4-GF1oPIibQR6l_U,178
1100
1099
  vellum/types/test_suite_run_external_exec_config_data_request.py,sha256=0IgvVC3Rxan9YktlIQ4rqsNRFqngy0U7htWDr6gEGjE,186
1101
1100
  vellum/types/test_suite_run_external_exec_config_request.py,sha256=PdPbkFlqq7ug7-jwhJG45CLbEVW-SCx-oczKrkCHsfM,181
1101
+ vellum/types/test_suite_run_metric_array_output.py,sha256=DeBxH90NXEmlNlQ8qH3uuV-w9AuekFlMY28zUPh2HcI,172
1102
1102
  vellum/types/test_suite_run_metric_error_output.py,sha256=_5HgfGe47snz0qG_C_6Hb_tHMepEUgP0NnVIqKJ0y2Y,172
1103
1103
  vellum/types/test_suite_run_metric_json_output.py,sha256=mZIXhFS0IoauRhNhwtO_nBe_EfZVqar0CKok4JpdWa0,171
1104
1104
  vellum/types/test_suite_run_metric_number_output.py,sha256=FRat-EjmPl4eyK307tPnQ8U3prAPsqgXVLdRmYXxaGw,173
@@ -1210,6 +1210,7 @@ vellum/utils/templating/custom_filters.py,sha256=Q0DahYRHP4KfaUXDt9XxN-DFLBrAxlv
1210
1210
  vellum/utils/templating/exceptions.py,sha256=cDp140PP4OnInW4qAvg3KqiSiF70C71UyEAKRBR1Abo,46
1211
1211
  vellum/utils/templating/render.py,sha256=0vgkwhu2A6o64aT4fUdTSLFCEMbeRjAKAuvv2k2LYGY,1772
1212
1212
  vellum/utils/typing.py,sha256=wx_daFqD69cYkuJTVnvNrpjhqC3uuhbnyJ9_bIwC9OU,327
1213
+ vellum/utils/uuid.py,sha256=Ch6wWRgwICxLxJCTl5iE3EdRlZj2zADR-zUMUtjcMWM,214
1213
1214
  vellum/version.py,sha256=jq-1PlAYxN9AXuaZqbYk9ak27SgE2lw9Ia5gx1b1gVI,76
1214
1215
  vellum/workflows/README.md,sha256=MLNm-ihc0ao6I8gwwOhXQQBf0jOf-EsA9C519ALYI1o,3610
1215
1216
  vellum/workflows/__init__.py,sha256=CssPsbNvN6rDhoLuqpEv7MMKGa51vE6dvAh6U31Pcio,71
@@ -1271,19 +1272,19 @@ vellum/workflows/inputs/__init__.py,sha256=AbFEteIYEvCb14fM3EK7bhM-40-6s494rSlIh
1271
1272
  vellum/workflows/inputs/base.py,sha256=1kMgr0WqCYdWUqgFvgSoAMw2067FAlgwhGXLgbIOrLY,2391
1272
1273
  vellum/workflows/logging.py,sha256=_a217XogktV4Ncz6xKFz7WfYmZAzkfVRVuC0rWob8ls,437
1273
1274
  vellum/workflows/nodes/__init__.py,sha256=aVdQVv7Y3Ro3JlqXGpxwaU2zrI06plDHD2aumH5WUIs,1157
1274
- vellum/workflows/nodes/bases/__init__.py,sha256=Ll1Ti6t3e_HKtGLsQTHAJevDmfo0QtfgPZUZ9FCRduI,140
1275
- vellum/workflows/nodes/bases/base.py,sha256=oqNO8rEeSu86wBuXQ8pGIOCZP7Bc_PdDL1etz_ef2A0,14271
1276
- vellum/workflows/nodes/bases/base_subworkflow_node/__init__.py,sha256=0nkHQiFC4IpA1ZGx60XG0BLUWF6hwUpgqmS3ZrlFGhg,80
1277
- vellum/workflows/nodes/bases/base_subworkflow_node/node.py,sha256=vC0gUBQewAUNtP3i2G0-LUpE_kY-r_ijBD_tS1XkQ1E,383
1275
+ vellum/workflows/nodes/bases/__init__.py,sha256=cniHuz_RXdJ4TQgD8CBzoiKDiPxg62ErdVpCbWICX64,58
1276
+ vellum/workflows/nodes/bases/base.py,sha256=_Ms_Yov6sIsgWnKb0OWnOG7liqgjFSat0y1OIX36hFA,14235
1278
1277
  vellum/workflows/nodes/bases/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1279
1278
  vellum/workflows/nodes/bases/tests/test_base_node.py,sha256=ghpLm_ljNBxWs43GlvIId47hOVwKU50XpvZxmlg6_8g,3439
1280
1279
  vellum/workflows/nodes/core/__init__.py,sha256=5zDMCmyt1v0HTJzlUBwq3U9L825yZGZhT9JL18-mRR4,455
1281
1280
  vellum/workflows/nodes/core/error_node/__init__.py,sha256=g7RRnlHhqu4qByfLjBwCunmgGA8dI5gNsjS3h6TwlSI,60
1282
1281
  vellum/workflows/nodes/core/error_node/node.py,sha256=MFHU5vITYSK-L9CuMZ49In2ZeNLWnhZD0f8r5dWvb5Y,1270
1283
1282
  vellum/workflows/nodes/core/inline_subworkflow_node/__init__.py,sha256=nKNEH1QTl-1PcvmYoqSWEl0-t6gAur8GLTXHzklRQfM,84
1284
- vellum/workflows/nodes/core/inline_subworkflow_node/node.py,sha256=vSlDEKwJsd2YazkWPRXPiNKZtbyhTBhfO3dJxcNiSWE,3059
1283
+ vellum/workflows/nodes/core/inline_subworkflow_node/node.py,sha256=btscTP3T5VzvuNpbzaUlRZ1ahMkTox0Vyv17tI7YFUw,3467
1284
+ vellum/workflows/nodes/core/inline_subworkflow_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1285
+ vellum/workflows/nodes/core/inline_subworkflow_node/tests/test_node.py,sha256=99LLPgHMqohGL-G4KqOSjeVlDR_FH8Rv1gtRii85MC4,1143
1285
1286
  vellum/workflows/nodes/core/map_node/__init__.py,sha256=MXpZYmGfhsMJHqqlpd64WiJRtbAtAMQz-_3fCU_cLV0,56
1286
- vellum/workflows/nodes/core/map_node/node.py,sha256=vubEWObFh6rVUZ9GGHSi7H9b-Y-SHCwEgYkgdb3QTgM,7288
1287
+ vellum/workflows/nodes/core/map_node/node.py,sha256=5Bqi0co1T9Ex_sTlyTDMGahwsUWd9NCO0vTY6UqsZeQ,7286
1287
1288
  vellum/workflows/nodes/core/map_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1288
1289
  vellum/workflows/nodes/core/map_node/tests/test_node.py,sha256=RHSZs7t6mW3UWvRrXnHZqaXVdRT2ZquOK_YHJ-gzXsU,1871
1289
1290
  vellum/workflows/nodes/core/retry_node/__init__.py,sha256=lN2bIy5a3Uzhs_FYCrooADyYU6ZGShtvLKFWpelwPvo,60
@@ -1291,25 +1292,25 @@ vellum/workflows/nodes/core/retry_node/node.py,sha256=IjNcpzFmHyBUjOHEoULLbKf85B
1291
1292
  vellum/workflows/nodes/core/retry_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1292
1293
  vellum/workflows/nodes/core/retry_node/tests/test_node.py,sha256=QXTnHwmJHISxXjvZMeuuEo0iVugVMJyaJoggI8yKXfI,3132
1293
1294
  vellum/workflows/nodes/core/templating_node/__init__.py,sha256=GmyuYo81_A1_Bz6id69ozVFS6FKiuDsZTiA3I6MaL2U,70
1294
- vellum/workflows/nodes/core/templating_node/node.py,sha256=mWNzsa6TLosrD3higKIsiqEv54OIfNY7YzFDkuQgm6k,3964
1295
- vellum/workflows/nodes/core/templating_node/tests/test_templating_node.py,sha256=0BtXeSix7KGIuKzlPFTMLATpNnFPhut1UV_srGptkt0,1120
1295
+ vellum/workflows/nodes/core/templating_node/node.py,sha256=N-NOBd-UY91qO9orCcW4KEbhNvDQivZPA-PCxs-M0RM,4204
1296
+ vellum/workflows/nodes/core/templating_node/tests/test_templating_node.py,sha256=nW_kyJ9RAqz45_kJE_rlhOOvbV4OO3hecP-P-ydQpkw,2845
1296
1297
  vellum/workflows/nodes/core/try_node/__init__.py,sha256=JVD4DrldTIqFQQFrubs9KtWCCc0YCAc7Fzol5ZWIWeM,56
1297
- vellum/workflows/nodes/core/try_node/node.py,sha256=_xkpUNIfHXuwjivMBxdU5DegsNge2ITW5nBifWmBPTY,6670
1298
+ vellum/workflows/nodes/core/try_node/node.py,sha256=e4gavIJ9AHM0JCKOrBIeKC4aHxmJK3j17XTBaipqfpc,6637
1298
1299
  vellum/workflows/nodes/core/try_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1299
- vellum/workflows/nodes/core/try_node/tests/test_node.py,sha256=uqMU7ZPPHI6a-VoWnMSVwTHoRmqCk6w8wzaXogTV_J4,4093
1300
+ vellum/workflows/nodes/core/try_node/tests/test_node.py,sha256=Wc2kLl-MkffsBxl3IiFaqLd16e2Iosxhk7qBnojPvQg,4092
1300
1301
  vellum/workflows/nodes/displayable/__init__.py,sha256=6F_4DlSwvHuilWnIalp8iDjjDXl0Nmz4QzJV2PYe5RI,1023
1301
1302
  vellum/workflows/nodes/displayable/api_node/__init__.py,sha256=MoxdQSnidIj1Nf_d-hTxlOxcZXaZnsWFDbE-PkTK24o,56
1302
1303
  vellum/workflows/nodes/displayable/api_node/node.py,sha256=ehvJNkI-L_WLn8pszCaRkQuhRDgioCLaX6TT72KM_9E,2111
1303
1304
  vellum/workflows/nodes/displayable/bases/__init__.py,sha256=0mWIx3qUrzllV7jqt7wN03vWGMuI1WrrLZeMLT2Cl2c,304
1304
1305
  vellum/workflows/nodes/displayable/bases/api_node/__init__.py,sha256=1jwx4WC358CLA1jgzl_UD-rZmdMm2v9Mps39ndwCD7U,64
1305
- vellum/workflows/nodes/displayable/bases/api_node/node.py,sha256=x0RQVoG1yvokaPfGgf719qd0Lt5qxCvKFqyehYiGyqA,2481
1306
+ vellum/workflows/nodes/displayable/bases/api_node/node.py,sha256=ywPwCxDesgnE86Wjyf2ZyG2Dr2O7xW8D4tPHZB5Se_s,2477
1306
1307
  vellum/workflows/nodes/displayable/bases/base_prompt_node/__init__.py,sha256=Org3xTvgp1pA0uUXFfnJr29D3HzCey2lEdYF4zbIUgo,70
1307
1308
  vellum/workflows/nodes/displayable/bases/base_prompt_node/node.py,sha256=EvylK1rGKpd4iiooEW9O5A9Q8DMTtBwETe_GtQT8M-E,2139
1308
1309
  vellum/workflows/nodes/displayable/bases/inline_prompt_node/__init__.py,sha256=Hl35IAoepRpE-j4cALaXVJIYTYOF3qszyVbxTj4kS1s,82
1309
1310
  vellum/workflows/nodes/displayable/bases/inline_prompt_node/constants.py,sha256=fnjiRWLoRlC4Puo5oQcpZD5Hd-EesxsAo9l5tGAkpZQ,270
1310
1311
  vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py,sha256=fypgmZHgaDtGqSBC8rjYiyryJ0H58LPt_CafLfAprO0,6341
1311
1312
  vellum/workflows/nodes/displayable/bases/prompt_deployment_node.py,sha256=zdpNJoawB5PedsCCfgOGDDoWuif0jNtlV-K9sFL6cNQ,4968
1312
- vellum/workflows/nodes/displayable/bases/search_node.py,sha256=pqiui8G6l_9FLE1HH4rCdFC73Bl7_AIBAmQQMjqe190,3570
1313
+ vellum/workflows/nodes/displayable/bases/search_node.py,sha256=huhfEaolvf8TTzRyFqAyO1t0Vgqt0kcEOcbAChvvix0,3427
1313
1314
  vellum/workflows/nodes/displayable/code_execution_node/__init__.py,sha256=0FLWMMktpzSnmBMizQglBpcPrP80fzVsoJwJgf822Cg,76
1314
1315
  vellum/workflows/nodes/displayable/code_execution_node/node.py,sha256=JgyTgZRSb-gSXL4ccHn4VkPcPZFOkVK5ohPazPqSWFw,8652
1315
1316
  vellum/workflows/nodes/displayable/code_execution_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1324,9 +1325,9 @@ vellum/workflows/nodes/displayable/final_output_node/node.py,sha256=iH3ZPOstPku_
1324
1325
  vellum/workflows/nodes/displayable/guardrail_node/__init__.py,sha256=Ab5eXmOoBhyV4dMWdzh32HLUmnPIBEK_zFCT38C4Fng,68
1325
1326
  vellum/workflows/nodes/displayable/guardrail_node/node.py,sha256=7Ep7Ff7FtFry3Jwxhg_npF_-jT2P6TGKp5MRNnCZ8Tc,3923
1326
1327
  vellum/workflows/nodes/displayable/inline_prompt_node/__init__.py,sha256=gSUOoEZLlrx35-tQhSAd3An8WDwBqyiQh-sIebLU9wU,74
1327
- vellum/workflows/nodes/displayable/inline_prompt_node/node.py,sha256=dTnP1yH1P0NqMw3noxt9XwaDCpX8ZOhuvVYNAn_DdCQ,2119
1328
+ vellum/workflows/nodes/displayable/inline_prompt_node/node.py,sha256=OPjdEK5mL3D2cwL68GiBFlRJ2b0tgatxsfeUEPeQDxI,2146
1328
1329
  vellum/workflows/nodes/displayable/inline_prompt_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1329
- vellum/workflows/nodes/displayable/inline_prompt_node/tests/test_node.py,sha256=P1DUL0wIG-cyA5dqGv7242cFWJXysmombdujKrJtl7k,4669
1330
+ vellum/workflows/nodes/displayable/inline_prompt_node/tests/test_node.py,sha256=eobyGcb4hMdmmyk-CcJPpOAB-NSVMUCleWVSmuHmMiQ,4752
1330
1331
  vellum/workflows/nodes/displayable/merge_node/__init__.py,sha256=J8IC08dSH7P76wKlNuxe1sn7toNGtSQdFirUbtPDEs0,60
1331
1332
  vellum/workflows/nodes/displayable/merge_node/node.py,sha256=ZyPvcTgfPOneOm5Dc2kUOoPkwNJqwRPZSj232akXynA,324
1332
1333
  vellum/workflows/nodes/displayable/note_node/__init__.py,sha256=KWA3P4fyYJ-fOTky8qNGlcOotQ-HeHJ9AjZt6mRQmCE,58
@@ -1336,10 +1337,10 @@ vellum/workflows/nodes/displayable/prompt_deployment_node/node.py,sha256=cpOrqQQ
1336
1337
  vellum/workflows/nodes/displayable/search_node/__init__.py,sha256=hpBpvbrDYf43DElRZFLzieSn8weXiwNiiNOJurERQbs,62
1337
1338
  vellum/workflows/nodes/displayable/search_node/node.py,sha256=yhFWulbNmSQoDAwtTSGD4AtKmBbcykezRGRG16xga_0,1311
1338
1339
  vellum/workflows/nodes/displayable/subworkflow_deployment_node/__init__.py,sha256=9yYM6001YZeqI1VOk1QuEM_yrffk_EdsO7qaPzINKds,92
1339
- vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py,sha256=pnbRCgdzWXrXhm5jDkDDASl5xu5w3DxskC34yJVmWUs,7147
1340
+ vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py,sha256=FgS1ZMnIBliqEMNKX2ChE80bw4IVHEQ6IGiTDvF0RZw,7226
1340
1341
  vellum/workflows/nodes/displayable/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1341
1342
  vellum/workflows/nodes/displayable/tests/test_inline_text_prompt_node.py,sha256=UI_RMmXn9qwB-StnFPvkDd9FctBQAg43wrfouqvPepk,4701
1342
- vellum/workflows/nodes/displayable/tests/test_search_node_wth_text_output.py,sha256=4CMwDtXwTaEvFfDpA6j2iLqc7S6IICSkvVZOobEpeps,6954
1343
+ vellum/workflows/nodes/displayable/tests/test_search_node_wth_text_output.py,sha256=VepO5z1277c1y5N6LLIC31nnWD1aak2m5oPFplfJHHs,6935
1343
1344
  vellum/workflows/nodes/displayable/tests/test_text_prompt_deployment_node.py,sha256=KqKJtJ0vuNoPuUPMdILmBTt4a2fBBxxun-nmOI7T8jo,2585
1344
1345
  vellum/workflows/nodes/experimental/README.md,sha256=eF6DfIL8t-HbF9-mcofOMymKrraiBHDLKTlnBa51ZiE,284
1345
1346
  vellum/workflows/nodes/experimental/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1367,16 +1368,16 @@ vellum/workflows/resolvers/__init__.py,sha256=eH6hTvZO4IciDaf_cf7aM2vs-DkBDyJPyc
1367
1368
  vellum/workflows/resolvers/base.py,sha256=WHra9LRtlTuB1jmuNqkfVE2JUgB61Cyntn8f0b0WZg4,411
1368
1369
  vellum/workflows/runner/__init__.py,sha256=i1iG5sAhtpdsrlvwgH6B-m49JsINkiWyPWs8vyT-bqM,72
1369
1370
  vellum/workflows/runner/runner.py,sha256=RXnLEmSJFbp0u4vKF7rvD2fscuYfcRYkspIJINnvFAI,27607
1370
- vellum/workflows/sandbox.py,sha256=1aL5BoUgJX6dbIN3pqui20Wk3VyzXV16BUaZz-clmFs,2269
1371
+ vellum/workflows/sandbox.py,sha256=GVJzVjMuYzOBnSrboB0_6MMRZWBluAyQ2o7syeaeBd0,2235
1371
1372
  vellum/workflows/state/__init__.py,sha256=yUUdR-_Vl7UiixNDYQZ-GEM_kJI9dnOia75TtuNEsnE,60
1372
1373
  vellum/workflows/state/base.py,sha256=jpSzF1OQd3-fqi6dMGlNsQl-7JnJxCdzWIigmX8Wz-I,14425
1373
- vellum/workflows/state/context.py,sha256=oXiEdNsWJi1coRB85IreTgUeR6_CrWWBXndtLff9S7M,1272
1374
- vellum/workflows/state/encoder.py,sha256=kRrqwD0vFCiSRZR3rg8Sjkh8sDEerQQhlvmdSYQAOl8,1741
1374
+ vellum/workflows/state/context.py,sha256=_NeGQpYo8yNuh0Tfh3OvcB_bG_-GC8b3ZLLl83Pf8-I,1279
1375
+ vellum/workflows/state/encoder.py,sha256=WdUidpOaBDx5lilJl8V8McFDHQYiCLCJR9dmktdzdZY,1836
1375
1376
  vellum/workflows/state/store.py,sha256=VYGBQgN1bpd1as5eGiouV_7scg8QsRs4_1aqZAGIsRQ,793
1376
1377
  vellum/workflows/state/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1377
- vellum/workflows/state/tests/test_state.py,sha256=BQjcdREIK1MPuGhivRUgpynVJLftjEpH9RG3cRKxQEY,3310
1378
+ vellum/workflows/state/tests/test_state.py,sha256=7ap_Z9GJqyonZ1eVXwNyyuhV0AL5XiQ6uYCRhS7PFN4,3921
1378
1379
  vellum/workflows/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1379
- vellum/workflows/tests/test_sandbox.py,sha256=OMN15LuFUV58-XnAhtBiLcEjNt-Pj6bZgetDr8miCiw,1808
1380
+ vellum/workflows/tests/test_sandbox.py,sha256=JKwaluI-lODQo7Ek9sjDstjL_WTdSqUlVik6ZVTfVOA,1826
1380
1381
  vellum/workflows/types/__init__.py,sha256=KxUTMBGzuRCfiMqzzsykOeVvrrkaZmTTo1a7SLu8gRM,68
1381
1382
  vellum/workflows/types/core.py,sha256=D2NcSBwGgWj_mtXZqe3KnEQcb5qd5HzqAwnxwmlCfCw,899
1382
1383
  vellum/workflows/types/generics.py,sha256=ZkfoRhWs042i5IjA99v2wIhmh1u-Wieo3LzosgGWJVk,600
@@ -1391,15 +1392,15 @@ vellum/workflows/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
1391
1392
  vellum/workflows/utils/tests/test_functions.py,sha256=ytdruS55aO2egsb5sAv8_9jf68L1cJoZu2uKV2iamrg,8083
1392
1393
  vellum/workflows/utils/tests/test_names.py,sha256=aOqpyvMsOEK_9mg_-yaNxQDW7QQfwqsYs37PseyLhxw,402
1393
1394
  vellum/workflows/utils/tests/test_uuids.py,sha256=i77ABQ0M3S-aFLzDXHJq_yr5FPkJEWCMBn1HJ3DObrE,437
1394
- vellum/workflows/utils/tests/test_vellum_variables.py,sha256=0ISy1xjY7_rci0Mt_naK0xrmurE1REZLMCgPOCLFKRM,776
1395
+ vellum/workflows/utils/tests/test_vellum_variables.py,sha256=6H-BpmbIEmVRO75QQ3Rfy4bEUMMP2qwGzx2Gp1uXbfw,879
1395
1396
  vellum/workflows/utils/uuids.py,sha256=DFzPv9RCvsKhvdTEIQyfSek2A31D6S_QcmeLPbgrgTY,739
1396
- vellum/workflows/utils/vellum_variables.py,sha256=DsjVj_M_vTafpi5OUDs4KNrmbU2n4LR7fcLhuHb67Z4,3123
1397
+ vellum/workflows/utils/vellum_variables.py,sha256=g5xHYB8etfHE32ek19nP6Anf8NyjhmUtOwO2KmQ5xZU,3111
1397
1398
  vellum/workflows/vellum_client.py,sha256=ODrq_TSl-drX2aezXegf7pizpWDVJuTXH-j6528t75s,683
1398
1399
  vellum/workflows/workflows/__init__.py,sha256=KY45TqvavCCvXIkyCFMEc0dc6jTMOUci93U2DUrlZYc,66
1399
- vellum/workflows/workflows/base.py,sha256=zpspOEdO5Ye_0ZvN-Wkzv9iQSiF1sD201ba8lhbnPbs,17086
1400
+ vellum/workflows/workflows/base.py,sha256=FxK6ZNrQtuqcgZxWXy4_ole1LeeTiZI8VlxavRd3VbA,17119
1400
1401
  vellum/workflows/workflows/event_filters.py,sha256=GSxIgwrX26a1Smfd-6yss2abGCnadGsrSZGa7t7LpJA,2008
1401
- vellum_ai-0.12.8.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
1402
- vellum_ai-0.12.8.dist-info/METADATA,sha256=FI7BG5Gx3Dd3exq5uqBWnHu8kuqFrVpE_9tcdUuYwdk,5160
1403
- vellum_ai-0.12.8.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1404
- vellum_ai-0.12.8.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
1405
- vellum_ai-0.12.8.dist-info/RECORD,,
1402
+ vellum_ai-0.12.11.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
1403
+ vellum_ai-0.12.11.dist-info/METADATA,sha256=JJLnOJAxDsQ4U2evGTWRI8vJiJBvs2lR_rQ-Eno1GSg,5161
1404
+ vellum_ai-0.12.11.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1405
+ vellum_ai-0.12.11.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
1406
+ vellum_ai-0.12.11.dist-info/RECORD,,
@@ -8,7 +8,7 @@ from uuid import uuid4
8
8
  from click.testing import CliRunner
9
9
 
10
10
  from vellum.client.types.workflow_push_response import WorkflowPushResponse
11
- from vellum.evaluations.utils.uuid import is_valid_uuid
11
+ from vellum.utils.uuid import is_valid_uuid
12
12
  from vellum_cli import main as cli_main
13
13
 
14
14
 
@@ -61,6 +61,11 @@ class BaseInlineSubworkflowNodeDisplay(
61
61
  display_context: WorkflowDisplayContext,
62
62
  ) -> Tuple[List[NodeInput], List[VellumVariable]]:
63
63
  subworkflow_inputs = raise_if_descriptor(node.subworkflow_inputs)
64
+ subworkflow_entries = (
65
+ [(variable_name, variable_value) for variable_name, variable_value in subworkflow_inputs.items()]
66
+ if isinstance(subworkflow_inputs, dict)
67
+ else [(variable_ref.name, variable_value) for variable_ref, variable_value in subworkflow_inputs]
68
+ )
64
69
  node_inputs = [
65
70
  create_node_input(
66
71
  node_id=node_id,
@@ -69,7 +74,7 @@ class BaseInlineSubworkflowNodeDisplay(
69
74
  display_context=display_context,
70
75
  input_id=self.workflow_input_ids_by_name.get(variable_name),
71
76
  )
72
- for variable_name, variable_value in subworkflow_inputs.items()
77
+ for variable_name, variable_value in subworkflow_entries
73
78
  ]
74
79
  node_inputs_by_key = {node_input.key: node_input for node_input in node_inputs}
75
80
  workflow_inputs = [