vellum-ai 0.11.0__py3-none-any.whl → 0.11.1__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 (43) hide show
  1. vellum/__init__.py +16 -0
  2. vellum/client/core/client_wrapper.py +1 -1
  3. vellum/client/types/__init__.py +28 -0
  4. vellum/client/types/test_suite_run_exec_config.py +7 -1
  5. vellum/client/types/test_suite_run_exec_config_request.py +8 -0
  6. vellum/client/types/test_suite_run_prompt_sandbox_history_item_exec_config.py +31 -0
  7. vellum/client/types/test_suite_run_prompt_sandbox_history_item_exec_config_data.py +27 -0
  8. vellum/client/types/test_suite_run_prompt_sandbox_history_item_exec_config_data_request.py +27 -0
  9. vellum/client/types/test_suite_run_prompt_sandbox_history_item_exec_config_request.py +31 -0
  10. vellum/client/types/test_suite_run_workflow_sandbox_history_item_exec_config.py +31 -0
  11. vellum/client/types/test_suite_run_workflow_sandbox_history_item_exec_config_data.py +27 -0
  12. vellum/client/types/test_suite_run_workflow_sandbox_history_item_exec_config_data_request.py +27 -0
  13. vellum/client/types/test_suite_run_workflow_sandbox_history_item_exec_config_request.py +31 -0
  14. vellum/types/test_suite_run_prompt_sandbox_history_item_exec_config.py +3 -0
  15. vellum/types/test_suite_run_prompt_sandbox_history_item_exec_config_data.py +3 -0
  16. vellum/types/test_suite_run_prompt_sandbox_history_item_exec_config_data_request.py +3 -0
  17. vellum/types/test_suite_run_prompt_sandbox_history_item_exec_config_request.py +3 -0
  18. vellum/types/test_suite_run_workflow_sandbox_history_item_exec_config.py +3 -0
  19. vellum/types/test_suite_run_workflow_sandbox_history_item_exec_config_data.py +3 -0
  20. vellum/types/test_suite_run_workflow_sandbox_history_item_exec_config_data_request.py +3 -0
  21. vellum/types/test_suite_run_workflow_sandbox_history_item_exec_config_request.py +3 -0
  22. vellum/workflows/context.py +42 -0
  23. vellum/workflows/nodes/core/inline_subworkflow_node/node.py +13 -7
  24. vellum/workflows/nodes/displayable/api_node/node.py +3 -2
  25. vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py +9 -0
  26. vellum/workflows/nodes/displayable/bases/prompt_deployment_node.py +10 -1
  27. vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py +10 -1
  28. vellum/workflows/nodes/displayable/tests/test_text_prompt_deployment_node.py +1 -1
  29. vellum/workflows/runner/runner.py +74 -70
  30. vellum/workflows/workflows/event_filters.py +4 -1
  31. {vellum_ai-0.11.0.dist-info → vellum_ai-0.11.1.dist-info}/METADATA +1 -1
  32. {vellum_ai-0.11.0.dist-info → vellum_ai-0.11.1.dist-info}/RECORD +43 -26
  33. vellum_cli/pull.py +3 -1
  34. vellum_cli/tests/test_pull.py +18 -0
  35. vellum_ee/workflows/display/base.py +1 -0
  36. vellum_ee/workflows/display/nodes/vellum/api_node.py +53 -54
  37. vellum_ee/workflows/display/nodes/vellum/utils.py +26 -6
  38. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py +29 -1
  39. vellum_ee/workflows/display/vellum.py +1 -1
  40. vellum_ee/workflows/display/workflows/vellum_workflow_display.py +10 -7
  41. {vellum_ai-0.11.0.dist-info → vellum_ai-0.11.1.dist-info}/LICENSE +0 -0
  42. {vellum_ai-0.11.0.dist-info → vellum_ai-0.11.1.dist-info}/WHEEL +0 -0
  43. {vellum_ai-0.11.0.dist-info → vellum_ai-0.11.1.dist-info}/entry_points.txt +0 -0
@@ -7,6 +7,7 @@ from uuid import UUID
7
7
  from typing import TYPE_CHECKING, Any, Dict, Generic, Iterable, Iterator, Optional, Sequence, Set, Type, Union
8
8
 
9
9
  from vellum.workflows.constants import UNDEF
10
+ from vellum.workflows.context import execution_context, get_parent_context
10
11
  from vellum.workflows.descriptors.base import BaseDescriptor
11
12
  from vellum.workflows.edges.edge import Edge
12
13
  from vellum.workflows.errors import VellumError, VellumErrorCode
@@ -28,7 +29,7 @@ from vellum.workflows.events.node import (
28
29
  NodeExecutionRejectedBody,
29
30
  NodeExecutionStreamingBody,
30
31
  )
31
- from vellum.workflows.events.types import BaseEvent, ParentContext, WorkflowParentContext
32
+ from vellum.workflows.events.types import BaseEvent, NodeParentContext, ParentContext, WorkflowParentContext
32
33
  from vellum.workflows.events.workflow import (
33
34
  WorkflowExecutionFulfilledBody,
34
35
  WorkflowExecutionInitiatedBody,
@@ -125,7 +126,7 @@ class WorkflowRunner(Generic[StateType]):
125
126
 
126
127
  self._active_nodes_by_execution_id: Dict[UUID, BaseNode[StateType]] = {}
127
128
  self._cancel_signal = cancel_signal
128
- self._parent_context = parent_context
129
+ self._parent_context = get_parent_context() or parent_context
129
130
 
130
131
  setattr(
131
132
  self._initial_state,
@@ -156,6 +157,7 @@ class WorkflowRunner(Generic[StateType]):
156
157
  return event
157
158
 
158
159
  def _run_work_item(self, node: BaseNode[StateType], span_id: UUID) -> None:
160
+ parent_context = get_parent_context()
159
161
  self._workflow_event_inner_queue.put(
160
162
  NodeExecutionInitiatedEvent(
161
163
  trace_id=node.state.meta.trace_id,
@@ -164,19 +166,20 @@ class WorkflowRunner(Generic[StateType]):
164
166
  node_definition=node.__class__,
165
167
  inputs=node._inputs,
166
168
  ),
167
- parent=WorkflowParentContext(
168
- span_id=span_id,
169
- workflow_definition=self.workflow.__class__,
170
- parent=self._parent_context,
171
- type="WORKFLOW",
172
- ),
169
+ parent=parent_context,
173
170
  )
174
171
  )
175
172
 
176
173
  logger.debug(f"Started running node: {node.__class__.__name__}")
177
174
 
178
175
  try:
179
- node_run_response = node.run()
176
+ updated_parent_context = NodeParentContext(
177
+ span_id=span_id,
178
+ node_definition=node.__class__,
179
+ parent=parent_context,
180
+ )
181
+ with execution_context(parent_context=updated_parent_context):
182
+ node_run_response = node.run()
180
183
  ports = node.Ports()
181
184
  if not isinstance(node_run_response, (BaseOutputs, Iterator)):
182
185
  raise NodeException(
@@ -197,6 +200,7 @@ class WorkflowRunner(Generic[StateType]):
197
200
  outputs = node.Outputs()
198
201
 
199
202
  def initiate_node_streaming_output(output: BaseOutput) -> None:
203
+ parent_context = get_parent_context()
200
204
  streaming_output_queues[output.name] = Queue()
201
205
  output_descriptor = OutputReference(
202
206
  name=output.name,
@@ -216,60 +220,49 @@ class WorkflowRunner(Generic[StateType]):
216
220
  output=initiated_output,
217
221
  invoked_ports=initiated_ports,
218
222
  ),
219
- parent=WorkflowParentContext(
220
- span_id=span_id,
221
- workflow_definition=self.workflow.__class__,
222
- parent=self._parent_context,
223
- ),
223
+ parent=parent_context,
224
224
  ),
225
225
  )
226
226
 
227
- for output in node_run_response:
228
- invoked_ports = output > ports
229
- if output.is_initiated:
230
- initiate_node_streaming_output(output)
231
- elif output.is_streaming:
232
- if output.name not in streaming_output_queues:
227
+ with execution_context(parent_context=updated_parent_context):
228
+ for output in node_run_response:
229
+ invoked_ports = output > ports
230
+ if output.is_initiated:
233
231
  initiate_node_streaming_output(output)
234
-
235
- streaming_output_queues[output.name].put(output.delta)
236
- self._workflow_event_inner_queue.put(
237
- NodeExecutionStreamingEvent(
238
- trace_id=node.state.meta.trace_id,
239
- span_id=span_id,
240
- body=NodeExecutionStreamingBody(
241
- node_definition=node.__class__,
242
- output=output,
243
- invoked_ports=invoked_ports,
244
- ),
245
- parent=WorkflowParentContext(
232
+ elif output.is_streaming:
233
+ if output.name not in streaming_output_queues:
234
+ initiate_node_streaming_output(output)
235
+
236
+ streaming_output_queues[output.name].put(output.delta)
237
+ self._workflow_event_inner_queue.put(
238
+ NodeExecutionStreamingEvent(
239
+ trace_id=node.state.meta.trace_id,
246
240
  span_id=span_id,
247
- workflow_definition=self.workflow.__class__,
248
- parent=self._parent_context,
241
+ body=NodeExecutionStreamingBody(
242
+ node_definition=node.__class__,
243
+ output=output,
244
+ invoked_ports=invoked_ports,
245
+ ),
246
+ parent=parent_context,
249
247
  ),
250
- ),
251
- )
252
- elif output.is_fulfilled:
253
- if output.name in streaming_output_queues:
254
- streaming_output_queues[output.name].put(UNDEF)
255
-
256
- setattr(outputs, output.name, output.value)
257
- self._workflow_event_inner_queue.put(
258
- NodeExecutionStreamingEvent(
259
- trace_id=node.state.meta.trace_id,
260
- span_id=span_id,
261
- body=NodeExecutionStreamingBody(
262
- node_definition=node.__class__,
263
- output=output,
264
- invoked_ports=invoked_ports,
265
- ),
266
- parent=WorkflowParentContext(
248
+ )
249
+ elif output.is_fulfilled:
250
+ if output.name in streaming_output_queues:
251
+ streaming_output_queues[output.name].put(UNDEF)
252
+
253
+ setattr(outputs, output.name, output.value)
254
+ self._workflow_event_inner_queue.put(
255
+ NodeExecutionStreamingEvent(
256
+ trace_id=node.state.meta.trace_id,
267
257
  span_id=span_id,
268
- workflow_definition=self.workflow.__class__,
269
- parent=self._parent_context,
270
- ),
258
+ body=NodeExecutionStreamingBody(
259
+ node_definition=node.__class__,
260
+ output=output,
261
+ invoked_ports=invoked_ports,
262
+ ),
263
+ parent=parent_context,
264
+ )
271
265
  )
272
- )
273
266
 
274
267
  invoked_ports = ports(outputs, node.state)
275
268
  node.state.meta.node_execution_cache.fulfill_node_execution(node.__class__, span_id)
@@ -291,11 +284,7 @@ class WorkflowRunner(Generic[StateType]):
291
284
  outputs=outputs,
292
285
  invoked_ports=invoked_ports,
293
286
  ),
294
- parent=WorkflowParentContext(
295
- span_id=span_id,
296
- workflow_definition=self.workflow.__class__,
297
- parent=self._parent_context,
298
- ),
287
+ parent=parent_context,
299
288
  )
300
289
  )
301
290
  except NodeException as e:
@@ -328,16 +317,19 @@ class WorkflowRunner(Generic[StateType]):
328
317
  code=VellumErrorCode.INTERNAL_ERROR,
329
318
  ),
330
319
  ),
331
- parent=WorkflowParentContext(
332
- span_id=span_id,
333
- workflow_definition=self.workflow.__class__,
334
- parent=self._parent_context,
335
- ),
320
+ parent=parent_context,
336
321
  ),
337
322
  )
338
323
 
339
324
  logger.debug(f"Finished running node: {node.__class__.__name__}")
340
325
 
326
+ def _context_run_work_item(self, node: BaseNode[StateType], span_id: UUID, parent_context=None) -> None:
327
+ if parent_context is None:
328
+ parent_context = get_parent_context() or self._parent_context
329
+
330
+ with execution_context(parent_context=parent_context):
331
+ self._run_work_item(node, span_id)
332
+
341
333
  def _handle_invoked_ports(self, state: StateType, ports: Optional[Iterable[Port]]) -> None:
342
334
  if not ports:
343
335
  return
@@ -372,13 +364,14 @@ class WorkflowRunner(Generic[StateType]):
372
364
  if not node_class.Trigger.should_initiate(state, all_deps, node_span_id):
373
365
  return
374
366
 
367
+ current_parent = get_parent_context()
375
368
  node = node_class(state=state, context=self.workflow.context)
376
369
  state.meta.node_execution_cache.initiate_node_execution(node_class, node_span_id)
377
370
  self._active_nodes_by_execution_id[node_span_id] = node
378
371
 
379
372
  worker_thread = Thread(
380
- target=self._run_work_item,
381
- kwargs={"node": node, "span_id": node_span_id},
373
+ target=self._context_run_work_item,
374
+ kwargs={"node": node, "span_id": node_span_id, "parent_context": current_parent},
382
375
  )
383
376
  worker_thread.start()
384
377
 
@@ -504,9 +497,16 @@ class WorkflowRunner(Generic[StateType]):
504
497
  for edge in self.workflow.get_edges():
505
498
  self._dependencies[edge.to_node].add(edge.from_port.node_class)
506
499
 
500
+ current_parent = WorkflowParentContext(
501
+ span_id=self._initial_state.meta.span_id,
502
+ workflow_definition=self.workflow.__class__,
503
+ parent=self._parent_context,
504
+ type="WORKFLOW",
505
+ )
507
506
  for node_cls in self._entrypoints:
508
507
  try:
509
- self._run_node_if_ready(self._initial_state, node_cls)
508
+ with execution_context(parent_context=current_parent):
509
+ self._run_node_if_ready(self._initial_state, node_cls)
510
510
  except NodeException as e:
511
511
  self._workflow_event_outer_queue.put(self._reject_workflow_event(e.error))
512
512
  return
@@ -530,7 +530,9 @@ class WorkflowRunner(Generic[StateType]):
530
530
 
531
531
  self._workflow_event_outer_queue.put(event)
532
532
 
533
- rejection_error = self._handle_work_item_event(event)
533
+ with execution_context(parent_context=current_parent):
534
+ rejection_error = self._handle_work_item_event(event)
535
+
534
536
  if rejection_error:
535
537
  break
536
538
 
@@ -539,7 +541,9 @@ class WorkflowRunner(Generic[StateType]):
539
541
  while event := self._workflow_event_inner_queue.get_nowait():
540
542
  self._workflow_event_outer_queue.put(event)
541
543
 
542
- rejection_error = self._handle_work_item_event(event)
544
+ with execution_context(parent_context=current_parent):
545
+ rejection_error = self._handle_work_item_event(event)
546
+
543
547
  if rejection_error:
544
548
  break
545
549
  except Empty:
@@ -46,7 +46,10 @@ def root_workflow_event_filter(workflow_definition: Type["BaseWorkflow"], event:
46
46
  if event.parent.type != "WORKFLOW":
47
47
  return False
48
48
 
49
- return event.parent.workflow_definition == CodeResourceDefinition.encode(workflow_definition)
49
+ event_parent_definition = event.parent.workflow_definition
50
+ current_workflow_definition = CodeResourceDefinition.encode(workflow_definition)
51
+
52
+ return event_parent_definition.model_dump() == current_workflow_definition.model_dump()
50
53
 
51
54
 
52
55
  def all_workflow_event_filter(workflow_definition: Type["BaseWorkflow"], event: "WorkflowEvent") -> bool:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vellum-ai
3
- Version: 0.11.0
3
+ Version: 0.11.1
4
4
  Summary:
5
5
  License: MIT
6
6
  Requires-Python: >=3.9,<4.0
@@ -5,19 +5,19 @@ vellum_cli/aliased_group.py,sha256=ugW498j0yv4ALJ8vS9MsO7ctDW7Jlir9j6nE_uHAP8c,3
5
5
  vellum_cli/config.py,sha256=uEdDqqpy7fh4Thlj2jSszfEmnXA9SGtzNzgR77fBjnY,3612
6
6
  vellum_cli/image_push.py,sha256=SJwhwWJsLjwGNezNVd_oCVpFMfPsAB3dfLWmriZZUtw,4419
7
7
  vellum_cli/logger.py,sha256=PuRFa0WCh4sAGFS5aqWB0QIYpS6nBWwPJrIXpWxugV4,1022
8
- vellum_cli/pull.py,sha256=cPEkTn2oCZtL7I4SPE27afzpxcIrZazFbh-2xdciQfo,3917
8
+ vellum_cli/pull.py,sha256=6wIiorqSx2rmR6atZJHHBuLSviocxK_n0DQxEDGmCzo,4008
9
9
  vellum_cli/push.py,sha256=7arl5Udk9iTVkMIqbUWHE7HqzteTlRe0Ix3cc5RNaHA,5130
10
10
  vellum_cli/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  vellum_cli/tests/conftest.py,sha256=j3P2g5vegxarIi_VoWr1RlGxLYEQPgw3V_p3M6Iyq0U,1007
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
- vellum_cli/tests/test_pull.py,sha256=iRxwrBs5U83JOjbmnrBZPrPyKW-ic4EziuUxI_e-ywI,9680
14
+ vellum_cli/tests/test_pull.py,sha256=PzB259psqyllgxbN7VwH7-wvY0-Z3hvdsqGdCil9vDs,10286
15
15
  vellum_cli/tests/test_push.py,sha256=TBw35SXyFt9PL2OJV2jOPnbq3T0cbSVXGQ5TS77ytgA,5830
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
19
19
  vellum_ee/workflows/display/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
- vellum_ee/workflows/display/base.py,sha256=yYH86aTPfOy7Zbzj9YBzU-yLUX3GBHVNxKqJFy7_wxk,1797
20
+ vellum_ee/workflows/display/base.py,sha256=qwdT0mzR6SMSmF1hNaibvq_UDqrJPRQb1s9JHjYDlRY,1833
21
21
  vellum_ee/workflows/display/nodes/__init__.py,sha256=5XOcZJXYUgaLS55QgRJzyQ_W1tpeprjnYAeYVezqoGw,160
22
22
  vellum_ee/workflows/display/nodes/base_node_display.py,sha256=3W7X1V2Lv0k6djYp60LDu-0lYVMNsEjPXmNmIQ4UW6s,5961
23
23
  vellum_ee/workflows/display/nodes/base_node_vellum_display.py,sha256=HoD3AGCMXKoHyyRJteUYlQ7DR26Srjhlrv4fZlLCyKc,1649
@@ -27,7 +27,7 @@ vellum_ee/workflows/display/nodes/tests/test_base_node_display.py,sha256=0y20AAq
27
27
  vellum_ee/workflows/display/nodes/types.py,sha256=St1BB6no528OyELGiyRabWao0GGw6mLhstQAvEACbGk,247
28
28
  vellum_ee/workflows/display/nodes/utils.py,sha256=sloya5TpXsnot1HURc9L51INwflRqUzHxRVnCS9Cd-4,973
29
29
  vellum_ee/workflows/display/nodes/vellum/__init__.py,sha256=nmPLj8vkbVCS46XQqmHq8Xj8Mr36wCK_vWf26A9KIkw,1505
30
- vellum_ee/workflows/display/nodes/vellum/api_node.py,sha256=JVOoM71OCzzF6I8J-TzPIXPh-P_ezVRtuEngdvVaLJs,8497
30
+ vellum_ee/workflows/display/nodes/vellum/api_node.py,sha256=4SSQGecKWHuoGy5YIGJeOZVHGKwTs_8Y-gf3GvsHb0M,8506
31
31
  vellum_ee/workflows/display/nodes/vellum/code_execution_node.py,sha256=MASV7u0X4eiS3SzRWeBcbWZ_YgNlwwg5cM2vaFWjpqk,3915
32
32
  vellum_ee/workflows/display/nodes/vellum/conditional_node.py,sha256=gUbSP8_oSAMNIb0CGiefd2FMYgoO6wMoG6iA1FakMjk,13293
33
33
  vellum_ee/workflows/display/nodes/vellum/error_node.py,sha256=1pGC_P-y14g0hJRh4GUq99xu48JsfoPMMwtIsI3x3Tk,2078
@@ -45,11 +45,11 @@ vellum_ee/workflows/display/nodes/vellum/templating_node.py,sha256=qPu9TqXSeLYfF
45
45
  vellum_ee/workflows/display/nodes/vellum/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
46
  vellum_ee/workflows/display/nodes/vellum/tests/test_utils.py,sha256=ZUp2fmDF4JTni1NjJOIV8dJoxx22eMBskmBJFsjtEvE,3809
47
47
  vellum_ee/workflows/display/nodes/vellum/try_node.py,sha256=m4d6hi6oD-jSW_bjrlN8coVwb6ivC2amPHpePHJ-Htg,2278
48
- vellum_ee/workflows/display/nodes/vellum/utils.py,sha256=z7QRltAXFRjjJN3R9bMp6v9IryqLMkTNGWqW_BVnXLs,3107
48
+ vellum_ee/workflows/display/nodes/vellum/utils.py,sha256=OlkXZASm1Zb3mLf38gd-NXcijtVn4UFptsRq-OFzArA,3882
49
49
  vellum_ee/workflows/display/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
50
  vellum_ee/workflows/display/tests/test_vellum_workflow_display.py,sha256=TEg3QbdE7rLbEhml9pMWmay--phsekGlfGVhTblxCGE,1727
51
51
  vellum_ee/workflows/display/tests/workflow_serialization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py,sha256=rVQaNmkxOSLLHctR60eCvAaH5a3EP0mVI09U-WWSJKU,16664
52
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py,sha256=e__ae2yepB5vlgVT08sr1DDB8pYjax6VQLo5FtRk-nA,17934
53
53
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py,sha256=0McMPIPnIwE8iGh7fzFZL3dc6Q7NCQ_wUVFpl14YATo,22846
54
54
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py,sha256=d6xWDvi-Uo1KcMHVj_e8TujKhTwMKXAlT8H3P2V0gQU,53693
55
55
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py,sha256=JV9TYz9BPVojWQ8ypGLsSfl9LdntDcxlm9OilP4qv6o,6874
@@ -68,17 +68,17 @@ vellum_ee/workflows/display/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5J
68
68
  vellum_ee/workflows/display/utils/tests/test_uuids.py,sha256=ItjROhaPns8_mlvD17LIBwZKvhe2l0dXEd5oL-JiY64,448
69
69
  vellum_ee/workflows/display/utils/uuids.py,sha256=DFzPv9RCvsKhvdTEIQyfSek2A31D6S_QcmeLPbgrgTY,739
70
70
  vellum_ee/workflows/display/utils/vellum.py,sha256=IlkKrfAAi4BV_HFnsdMFxNJC2-TrPM9ubVHv8ikmbSA,5110
71
- vellum_ee/workflows/display/vellum.py,sha256=_-lLRZsEitt8fdUID62aiXptWa8rJhyqgL4uy1gDmc4,8783
71
+ vellum_ee/workflows/display/vellum.py,sha256=62nPzLxn9cJdffwjL8vJG_1IDXXJrwaNdYeqsLNpbEQ,8800
72
72
  vellum_ee/workflows/display/workflows/__init__.py,sha256=kapXsC67VJcgSuiBMa86FdePG5A9kMB5Pi4Uy1O2ob4,207
73
73
  vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=HkakkrNgVFoHlUP7yHlQjHOvii3CZ90iyU1062PfoW4,12819
74
74
  vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py,sha256=AMxNnTm2z3LIR5rqxoCAfuy37F2FTuSRDVtKUoezO8M,1184
75
- vellum_ee/workflows/display/workflows/vellum_workflow_display.py,sha256=6fWK9UTveEm8HRfnkfdxBXJnqNmL9UV8Wxl6M4VLGuQ,16904
76
- vellum/__init__.py,sha256=67DJaPyfV8hWJkx4pBssBAnlPm3jQMl8VqIn5TtBP3Q,34484
75
+ vellum_ee/workflows/display/workflows/vellum_workflow_display.py,sha256=fFs7NxrCnTRxHYOI7on9ClbRairQUc66BYRom3PeizA,17050
76
+ vellum/__init__.py,sha256=tifpcqdWe2t7wU1HPqltMgM1AyY4Ruf7J06O1Dw2_Po,35436
77
77
  vellum/client/README.md,sha256=JkCJjmMZl4jrPj46pkmL9dpK4gSzQQmP5I7z4aME4LY,4749
78
78
  vellum/client/__init__.py,sha256=o4m7iRZWEV8rP3GkdaztHAjNmjxjWERlarviFoHzuKI,110927
79
79
  vellum/client/core/__init__.py,sha256=SQ85PF84B9MuKnBwHNHWemSGuy-g_515gFYNFhvEE0I,1438
80
80
  vellum/client/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
81
- vellum/client/core/client_wrapper.py,sha256=D9LHJTenWgXKzVFVV7BJIc1uhU5CrvbNZ_9e2YUoOH8,1890
81
+ vellum/client/core/client_wrapper.py,sha256=GdzbbuiX9eXoSlOmj5ppAyjl_-ly0fPbAa8ecCrfSpE,1890
82
82
  vellum/client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
83
83
  vellum/client/core/file.py,sha256=X9IbmkZmB2bB_DpmZAO3crWdXagOakAyn6UCOCImCPg,2322
84
84
  vellum/client/core/http_client.py,sha256=R0pQpCppnEtxccGvXl4uJ76s7ro_65Fo_erlNNLp_AI,19228
@@ -137,7 +137,7 @@ vellum/client/resources/workflows/types/__init__.py,sha256=-uFca4ypncAOvfsg6sjD-
137
137
  vellum/client/resources/workflows/types/workflows_pull_request_format.py,sha256=dOWE_jnDnniIJLoeseeCms23aklghyBkoPmBFzcqqZk,165
138
138
  vellum/client/resources/workspace_secrets/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
139
139
  vellum/client/resources/workspace_secrets/client.py,sha256=h7UzXLyTttPq1t-JZGMg1BWxypxJvBGUdqg7KGT7MK4,8027
140
- vellum/client/types/__init__.py,sha256=l-m0JRpHj7tm8Kzsr7HOIK_O9XnGOVWfQanEOE4Z_yo,52066
140
+ vellum/client/types/__init__.py,sha256=ASrY-2_D-vIek3_WlkFzGDazEJH1UG5qRdd7jsNls8Q,53636
141
141
  vellum/client/types/ad_hoc_execute_prompt_event.py,sha256=bCjujA2XsOgyF3bRZbcEqV2rOIymRgsLoIRtZpB14xg,607
142
142
  vellum/client/types/ad_hoc_expand_meta.py,sha256=1gv-NCsy_6xBYupLvZH979yf2VMdxAU-l0y0ynMKZaw,1331
143
143
  vellum/client/types/ad_hoc_fulfilled_prompt_execution_meta.py,sha256=Bfvf1d_dkmshxRACVM5vcxbH_7AQY23RmrrnPc0ytYY,939
@@ -507,8 +507,8 @@ vellum/client/types/test_suite_run_deployment_release_tag_exec_config.py,sha256=
507
507
  vellum/client/types/test_suite_run_deployment_release_tag_exec_config_data.py,sha256=0kgs_FP8-2YTmufor42V4J5Kbx_Grjo2LcgZgfBiYq0,928
508
508
  vellum/client/types/test_suite_run_deployment_release_tag_exec_config_data_request.py,sha256=cUr9LN4YLxkyMXI3wwemmKZtvxSi9K79kPJrmRyknKc,935
509
509
  vellum/client/types/test_suite_run_deployment_release_tag_exec_config_request.py,sha256=fyBRNbErOr1ixYs84JbvqM9yPEH1D-LDsfGVhIgsdZ4,1192
510
- vellum/client/types/test_suite_run_exec_config.py,sha256=OuaNtd6ulP_Eq1ptz_YstJs5VtBOY3-p1XANEGnVwUA,530
511
- vellum/client/types/test_suite_run_exec_config_request.py,sha256=GNwGzV6SZiZWThoy4lM5JpRyegoqy3ylHjB2Kj5WOXI,612
510
+ vellum/client/types/test_suite_run_exec_config.py,sha256=CwsiCKjkRb2S9YJdQYRtnKU87CzbimPyswBwRriv004,879
511
+ vellum/client/types/test_suite_run_exec_config_request.py,sha256=bXR2LXwc6T7WtgVa0HCkJuDg1H1TFB01CpCdb-hoqWc,1014
512
512
  vellum/client/types/test_suite_run_execution.py,sha256=x0tjfFMSEl5hr1ZAh9r-2m3gQCbhKNZBGu5_6ANLgiU,1091
513
513
  vellum/client/types/test_suite_run_execution_array_output.py,sha256=fnGLAXY6NC8uJKK2500lsRXDvugjfIBJiDAfWDg1sUo,1101
514
514
  vellum/client/types/test_suite_run_execution_chat_history_output.py,sha256=tzeWqczo04aXl-ALhfOHYEabrgOIqmG7E-nA5-l3dME,879
@@ -530,6 +530,10 @@ vellum/client/types/test_suite_run_metric_json_output.py,sha256=DI3mJR5kpi8Hm2n6
530
530
  vellum/client/types/test_suite_run_metric_number_output.py,sha256=8pddeSds6Rrn0xGqyvgPsG1hr1tu6eOiQAp8kkM_aBk,739
531
531
  vellum/client/types/test_suite_run_metric_output.py,sha256=qxEJ6Ii4XOhJpM3tgn6ctRnldysduEIe8tQFnWBEOvQ,578
532
532
  vellum/client/types/test_suite_run_metric_string_output.py,sha256=YXerGfpvJdBtKrzgutSqEfG-N6cZoeOL59qZ5k6DwQA,737
533
+ vellum/client/types/test_suite_run_prompt_sandbox_history_item_exec_config.py,sha256=NUJXSSLxOxVAGOoQj74m5UqjCTCCeEIgbWGP6kM2Fck,1200
534
+ vellum/client/types/test_suite_run_prompt_sandbox_history_item_exec_config_data.py,sha256=IdlTWDda1061PwsHaoGDyB7-2lBVSus7Z8agcdmSOYE,905
535
+ vellum/client/types/test_suite_run_prompt_sandbox_history_item_exec_config_data_request.py,sha256=0XxaQKR-pb__We2EDSoiKTcz3v-nKodIYtnwFXFQ_GM,912
536
+ vellum/client/types/test_suite_run_prompt_sandbox_history_item_exec_config_request.py,sha256=psLq8aL-ygkW-HZZFiYerDrCrTf556RuXbOOAUuMvr8,1229
533
537
  vellum/client/types/test_suite_run_read.py,sha256=3etXdX5ks6H0nuuTLebNl_is2ZKST17wdpLm60YVSf8,1439
534
538
  vellum/client/types/test_suite_run_state.py,sha256=E4f_AfzXBnxhObLLZ12dBzdoYlRm-gaTqkzrZQ_KfCo,197
535
539
  vellum/client/types/test_suite_run_test_suite.py,sha256=Wcmbk1XglVFKiDcqxsW7-c7QtOrIqJBK-vWXKXvORXY,602
@@ -537,6 +541,10 @@ vellum/client/types/test_suite_run_workflow_release_tag_exec_config.py,sha256=0A
537
541
  vellum/client/types/test_suite_run_workflow_release_tag_exec_config_data.py,sha256=Omps96mVTbhyg8ZknhAdtAC4TU4J1OG_Y2yqwlovNbU,941
538
542
  vellum/client/types/test_suite_run_workflow_release_tag_exec_config_data_request.py,sha256=n3rbUAmoqjn-U-C6GJL-zVJJf0n_J-6rLIeH0tm3Ixg,948
539
543
  vellum/client/types/test_suite_run_workflow_release_tag_exec_config_request.py,sha256=tEknB5YPt5zLKTkXnsuWaPRkFPHpIDQImREmlONfMIo,1182
544
+ vellum/client/types/test_suite_run_workflow_sandbox_history_item_exec_config.py,sha256=2scqgAbRo6j7cYV2NZO1VMio5WOwJG_97IxXVqC4G18,1214
545
+ vellum/client/types/test_suite_run_workflow_sandbox_history_item_exec_config_data.py,sha256=FPIw8GlWh5cH6af2_Y7wS98j_Zi9O0G1JIMBsej__i0,915
546
+ vellum/client/types/test_suite_run_workflow_sandbox_history_item_exec_config_data_request.py,sha256=Q8aYzR-AJ18_s7KJfBZeb8jbFxhZVfk1qQvhO7ShGH0,922
547
+ vellum/client/types/test_suite_run_workflow_sandbox_history_item_exec_config_request.py,sha256=1ekG2-FWV-dl2TL0QYZEeHo2qLOMu8G_T-wFt5e04AE,1243
540
548
  vellum/client/types/test_suite_test_case.py,sha256=pd9-fpIxzherUqjM7aIWhDyLuql8ZyNIjfOr9r5BZuQ,1056
541
549
  vellum/client/types/test_suite_test_case_bulk_operation_request.py,sha256=czPKFQBdm-Fil_sx8zxUgR9DJSJfAlL6uB6KcRzwwbU,767
542
550
  vellum/client/types/test_suite_test_case_bulk_result.py,sha256=b_jDXDB0gWAGsWyf04UJhRwVCUe5kTu8S7gh78_yYF0,648
@@ -1090,6 +1098,10 @@ vellum/types/test_suite_run_metric_json_output.py,sha256=mZIXhFS0IoauRhNhwtO_nBe
1090
1098
  vellum/types/test_suite_run_metric_number_output.py,sha256=FRat-EjmPl4eyK307tPnQ8U3prAPsqgXVLdRmYXxaGw,173
1091
1099
  vellum/types/test_suite_run_metric_output.py,sha256=QvexO_ontwejyAQBipmrvTMxJRZrFu5ja_g8HBjDpiI,166
1092
1100
  vellum/types/test_suite_run_metric_string_output.py,sha256=_az-yxsYHgariEfKeFN1UtCyW1rXxCiOsVZj-INNqa8,173
1101
+ vellum/types/test_suite_run_prompt_sandbox_history_item_exec_config.py,sha256=aShS-YpR-mxoj59s1pF1qSx7NWSrUSuDC59kXesT33Y,192
1102
+ vellum/types/test_suite_run_prompt_sandbox_history_item_exec_config_data.py,sha256=5E1ZUYAwlZBAzyurmLsHMhdQJZmI-_neQU49cyDQH_0,197
1103
+ vellum/types/test_suite_run_prompt_sandbox_history_item_exec_config_data_request.py,sha256=7JsZ1nGze0m2o4RvaJOpz6TcqDgCz29HhzzBPGr1eow,205
1104
+ vellum/types/test_suite_run_prompt_sandbox_history_item_exec_config_request.py,sha256=AfTF8F-4oCAHHGOubEUSPXpuauWnRQpseo6DPdhL73k,200
1093
1105
  vellum/types/test_suite_run_read.py,sha256=ivj0ct0muLxYDr-21cErq4JivHp1VcLOif6mGrqsdrc,157
1094
1106
  vellum/types/test_suite_run_state.py,sha256=tagsvfC5Zk4GNWwnVXgVxYOPOxmp30B9gt9T2M7tP_o,158
1095
1107
  vellum/types/test_suite_run_test_suite.py,sha256=4l0wcAcDwR8bZTuGGtK6XS-Kaj-8CorNkjuwII0376k,163
@@ -1097,6 +1109,10 @@ vellum/types/test_suite_run_workflow_release_tag_exec_config.py,sha256=yc9NhLbDb
1097
1109
  vellum/types/test_suite_run_workflow_release_tag_exec_config_data.py,sha256=g1i2knCRKE7ah_u96zvm1zIi5xfZTQFsGTDtCfMGBcE,190
1098
1110
  vellum/types/test_suite_run_workflow_release_tag_exec_config_data_request.py,sha256=e8JSECW9A0LT6Iv6PyAZOiSTczwg_954MYq4kGjn5DY,198
1099
1111
  vellum/types/test_suite_run_workflow_release_tag_exec_config_request.py,sha256=L2bYpTz9AEDwHXT1Ev9qMHLUStjjwP3iJMyTixdroOU,193
1112
+ vellum/types/test_suite_run_workflow_sandbox_history_item_exec_config.py,sha256=PMXrCIw1mn3tvdR-OwYxPToejzu8MNTHubgRwW2Ul68,194
1113
+ vellum/types/test_suite_run_workflow_sandbox_history_item_exec_config_data.py,sha256=vdh41Vg4O1UjQi1BsHBaLsfvxSbWbou73VPAGcSOkCc,199
1114
+ vellum/types/test_suite_run_workflow_sandbox_history_item_exec_config_data_request.py,sha256=An3z8020xLUVjvjJrW-Rqe_CPRQkuiuq740Z1SXB19Y,207
1115
+ vellum/types/test_suite_run_workflow_sandbox_history_item_exec_config_request.py,sha256=9Iuy9vcCv5sCh6J0T2BiBuRc9qFnA7RiJ80s3Ykb_kw,202
1100
1116
  vellum/types/test_suite_test_case.py,sha256=TNoekdgntOikAA6Z32dsc5WFXYz_ooLYZefZMM6ZtJU,158
1101
1117
  vellum/types/test_suite_test_case_bulk_operation_request.py,sha256=QI13SszLsaxUvNFkGU86IOtDg2mgNTck84b6NzhpCro,181
1102
1118
  vellum/types/test_suite_test_case_bulk_result.py,sha256=MEwdm94Lizk0JDtcViQQUVg54ZCEaTPeyX0oN0F3-u8,170
@@ -1185,6 +1201,7 @@ vellum/version.py,sha256=jq-1PlAYxN9AXuaZqbYk9ak27SgE2lw9Ia5gx1b1gVI,76
1185
1201
  vellum/workflows/README.md,sha256=MLNm-ihc0ao6I8gwwOhXQQBf0jOf-EsA9C519ALYI1o,3610
1186
1202
  vellum/workflows/__init__.py,sha256=CssPsbNvN6rDhoLuqpEv7MMKGa51vE6dvAh6U31Pcio,71
1187
1203
  vellum/workflows/constants.py,sha256=Z0W4YlqfSlSgWC11PrVUPs6ZOBeIaQ78E_90J1hohiw,789
1204
+ vellum/workflows/context.py,sha256=R8qdsFbD_0p7B6PWnyvSrZ_aOgMtGw-_uk0P0UAmwLA,1230
1188
1205
  vellum/workflows/descriptors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1189
1206
  vellum/workflows/descriptors/base.py,sha256=VyyXtGJ_Hc34AOC8XC_Rw_68L4WMgD5w9Y7r8t8My4E,13814
1190
1207
  vellum/workflows/descriptors/tests/test_utils.py,sha256=icwW-YkHD5oR6rn9IH6Rck9yYOsuwnocyJVHoeJFd74,2849
@@ -1249,7 +1266,7 @@ vellum/workflows/nodes/core/__init__.py,sha256=5zDMCmyt1v0HTJzlUBwq3U9L825yZGZhT
1249
1266
  vellum/workflows/nodes/core/error_node/__init__.py,sha256=g7RRnlHhqu4qByfLjBwCunmgGA8dI5gNsjS3h6TwlSI,60
1250
1267
  vellum/workflows/nodes/core/error_node/node.py,sha256=hqBPHoLnhNrK9ITIaEzpnk47XYDbG6cmObz7oe78Ceg,944
1251
1268
  vellum/workflows/nodes/core/inline_subworkflow_node/__init__.py,sha256=nKNEH1QTl-1PcvmYoqSWEl0-t6gAur8GLTXHzklRQfM,84
1252
- vellum/workflows/nodes/core/inline_subworkflow_node/node.py,sha256=mWugLOYnVmji-dSf8Rfizs_XKKfKWSskMbn6TRMDbaY,3063
1269
+ vellum/workflows/nodes/core/inline_subworkflow_node/node.py,sha256=kkPb2opZ7J6pIWueU-WU43KXEwKY5GrANldmesRFetI,3469
1253
1270
  vellum/workflows/nodes/core/map_node/__init__.py,sha256=MXpZYmGfhsMJHqqlpd64WiJRtbAtAMQz-_3fCU_cLV0,56
1254
1271
  vellum/workflows/nodes/core/map_node/node.py,sha256=aPhV3niv_jWSwrZ2CwiRg0CDOM-09Fa6QqOPYNJMgRc,6206
1255
1272
  vellum/workflows/nodes/core/map_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1270,7 +1287,7 @@ vellum/workflows/nodes/core/try_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW
1270
1287
  vellum/workflows/nodes/core/try_node/tests/test_node.py,sha256=iD_ZjgB-v7pOYS6VjsqC-FWAFw8xvnEb-xXeau1Cuk0,4053
1271
1288
  vellum/workflows/nodes/displayable/__init__.py,sha256=6F_4DlSwvHuilWnIalp8iDjjDXl0Nmz4QzJV2PYe5RI,1023
1272
1289
  vellum/workflows/nodes/displayable/api_node/__init__.py,sha256=MoxdQSnidIj1Nf_d-hTxlOxcZXaZnsWFDbE-PkTK24o,56
1273
- vellum/workflows/nodes/displayable/api_node/node.py,sha256=mnoncJtxo5YhuFCR3_axpvCqrGQKLShvfU6xJO7Fa8I,2047
1290
+ vellum/workflows/nodes/displayable/api_node/node.py,sha256=ehvJNkI-L_WLn8pszCaRkQuhRDgioCLaX6TT72KM_9E,2111
1274
1291
  vellum/workflows/nodes/displayable/bases/__init__.py,sha256=0mWIx3qUrzllV7jqt7wN03vWGMuI1WrrLZeMLT2Cl2c,304
1275
1292
  vellum/workflows/nodes/displayable/bases/api_node/__init__.py,sha256=1jwx4WC358CLA1jgzl_UD-rZmdMm2v9Mps39ndwCD7U,64
1276
1293
  vellum/workflows/nodes/displayable/bases/api_node/node.py,sha256=_Nybw3NORjKkLBAzLidm08WL_kiNPTH6am-hZ8k2w0Q,2475
@@ -1278,8 +1295,8 @@ vellum/workflows/nodes/displayable/bases/base_prompt_node/__init__.py,sha256=Org
1278
1295
  vellum/workflows/nodes/displayable/bases/base_prompt_node/node.py,sha256=82y-74GBcxQXjEEmQJ7oo803iVjWM_HSN5zRVwGtpWk,2425
1279
1296
  vellum/workflows/nodes/displayable/bases/inline_prompt_node/__init__.py,sha256=Hl35IAoepRpE-j4cALaXVJIYTYOF3qszyVbxTj4kS1s,82
1280
1297
  vellum/workflows/nodes/displayable/bases/inline_prompt_node/constants.py,sha256=fnjiRWLoRlC4Puo5oQcpZD5Hd-EesxsAo9l5tGAkpZQ,270
1281
- vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py,sha256=jlUqNgz58nuSuGPOxJcnwOXQ0_UtESCimPNVHDDQgFI,4868
1282
- vellum/workflows/nodes/displayable/bases/prompt_deployment_node.py,sha256=DP4e62qHrJSB3O27R7OLd7R_2AJST5uI0HYT3kxlaxA,4448
1298
+ vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py,sha256=1_OXDxzh-8m5O5XQzo3Q6RY679JvsN4km2sfzyGuLc0,5394
1299
+ vellum/workflows/nodes/displayable/bases/prompt_deployment_node.py,sha256=MdrAKN8QGPk_JnNjbEBaVVKwVLPE2judbBcWuYJgbkY,4964
1283
1300
  vellum/workflows/nodes/displayable/bases/search_node.py,sha256=S7J8tTW681O4wcWYerGOfH6h-_BlE8-JMJHpW8eCVG0,3564
1284
1301
  vellum/workflows/nodes/displayable/code_execution_node/__init__.py,sha256=0FLWMMktpzSnmBMizQglBpcPrP80fzVsoJwJgf822Cg,76
1285
1302
  vellum/workflows/nodes/displayable/code_execution_node/node.py,sha256=zK-gxWmox8QZ84J11faUmasRozNKDIBv_86Gjq8uj7M,7975
@@ -1305,11 +1322,11 @@ vellum/workflows/nodes/displayable/prompt_deployment_node/node.py,sha256=hqzNnoT
1305
1322
  vellum/workflows/nodes/displayable/search_node/__init__.py,sha256=hpBpvbrDYf43DElRZFLzieSn8weXiwNiiNOJurERQbs,62
1306
1323
  vellum/workflows/nodes/displayable/search_node/node.py,sha256=yhFWulbNmSQoDAwtTSGD4AtKmBbcykezRGRG16xga_0,1311
1307
1324
  vellum/workflows/nodes/displayable/subworkflow_deployment_node/__init__.py,sha256=9yYM6001YZeqI1VOk1QuEM_yrffk_EdsO7qaPzINKds,92
1308
- vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py,sha256=Ed0C2m9NxCf0ZgNQpdiAZWhmLwhWYRgn2VncsCGpzJg,6783
1325
+ vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py,sha256=Y7Gczegn3KQC-wMw11VhwSDMe4kE8p2QIM1ABSYqZFg,7356
1309
1326
  vellum/workflows/nodes/displayable/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1310
1327
  vellum/workflows/nodes/displayable/tests/test_inline_text_prompt_node.py,sha256=9x5y-SHLdW-jcbv_LVLJWALspBzjYDFezc1dpaisRvg,4697
1311
1328
  vellum/workflows/nodes/displayable/tests/test_search_node_wth_text_output.py,sha256=4CMwDtXwTaEvFfDpA6j2iLqc7S6IICSkvVZOobEpeps,6954
1312
- vellum/workflows/nodes/displayable/tests/test_text_prompt_deployment_node.py,sha256=t4ctc6MCwtvOOV4MG-xm-1w1A-ik0--_1es6yJ1qklU,2510
1329
+ vellum/workflows/nodes/displayable/tests/test_text_prompt_deployment_node.py,sha256=KqKJtJ0vuNoPuUPMdILmBTt4a2fBBxxun-nmOI7T8jo,2585
1313
1330
  vellum/workflows/nodes/utils.py,sha256=zY0b5WjJtGwVPPLY3ffHUdRREPvyoNwmJDigz5jQRAI,812
1314
1331
  vellum/workflows/outputs/__init__.py,sha256=AyZ4pRh_ACQIGvkf0byJO46EDnSix1ZCAXfvh-ms1QE,94
1315
1332
  vellum/workflows/outputs/base.py,sha256=a7W6rNSDSawwGAXYjNTF2iHb9lnZu7WFSOagZIyy__k,7976
@@ -1331,7 +1348,7 @@ vellum/workflows/references/workflow_input.py,sha256=epspVRZ9n_nxoTxI5Am3GDd2fpU
1331
1348
  vellum/workflows/resolvers/__init__.py,sha256=eH6hTvZO4IciDaf_cf7aM2vs-DkBDyJPycOQevJxQnI,82
1332
1349
  vellum/workflows/resolvers/base.py,sha256=WHra9LRtlTuB1jmuNqkfVE2JUgB61Cyntn8f0b0WZg4,411
1333
1350
  vellum/workflows/runner/__init__.py,sha256=i1iG5sAhtpdsrlvwgH6B-m49JsINkiWyPWs8vyT-bqM,72
1334
- vellum/workflows/runner/runner.py,sha256=dmhKT0SFX4I9IwRj6fiqsXSkVqxBucrBjjgUXP6uz1o,27282
1351
+ vellum/workflows/runner/runner.py,sha256=TtCB2hLnAU83mmR17qzfHQPfJfpUMqi3Lqq0q1viUIQ,27573
1335
1352
  vellum/workflows/state/__init__.py,sha256=yUUdR-_Vl7UiixNDYQZ-GEM_kJI9dnOia75TtuNEsnE,60
1336
1353
  vellum/workflows/state/base.py,sha256=jpSzF1OQd3-fqi6dMGlNsQl-7JnJxCdzWIigmX8Wz-I,14425
1337
1354
  vellum/workflows/state/context.py,sha256=oXiEdNsWJi1coRB85IreTgUeR6_CrWWBXndtLff9S7M,1272
@@ -1357,9 +1374,9 @@ vellum/workflows/utils/vellum_variables.py,sha256=DsjVj_M_vTafpi5OUDs4KNrmbU2n4L
1357
1374
  vellum/workflows/vellum_client.py,sha256=ODrq_TSl-drX2aezXegf7pizpWDVJuTXH-j6528t75s,683
1358
1375
  vellum/workflows/workflows/__init__.py,sha256=KY45TqvavCCvXIkyCFMEc0dc6jTMOUci93U2DUrlZYc,66
1359
1376
  vellum/workflows/workflows/base.py,sha256=mnI-kZ78yt7u6NFSTUo-tYjDnarP-RJ7uZjwjCn6PCQ,16795
1360
- vellum/workflows/workflows/event_filters.py,sha256=2tbiBzezaEZy75xkvkM2ey7Ys82fnbGE7aQhbL9yzLw,1853
1361
- vellum_ai-0.11.0.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
1362
- vellum_ai-0.11.0.dist-info/METADATA,sha256=ZJJfzfpgisF64Sjr6h_aBXYPzn7TkCowHyY5r2yfFNI,5128
1363
- vellum_ai-0.11.0.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
1364
- vellum_ai-0.11.0.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
1365
- vellum_ai-0.11.0.dist-info/RECORD,,
1377
+ vellum/workflows/workflows/event_filters.py,sha256=-uQcMB7IpPd-idMku8f2QNVhPXPFWo6FZLlGjRf8rCo,1996
1378
+ vellum_ai-0.11.1.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
1379
+ vellum_ai-0.11.1.dist-info/METADATA,sha256=OKYg7BRTEYyEI-8T2G9Clrzq8lFPG6vzw4zgEvr93vk,5128
1380
+ vellum_ai-0.11.1.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
1381
+ vellum_ai-0.11.1.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
1382
+ vellum_ai-0.11.1.dist-info/RECORD,,
vellum_cli/pull.py CHANGED
@@ -19,10 +19,12 @@ def resolve_workflow_config(
19
19
  if module:
20
20
  return next((w for w in config.workflows if w.module == module), None)
21
21
  elif workflow_sandbox_id:
22
- return WorkflowConfig(
22
+ workflow_config = WorkflowConfig(
23
23
  workflow_sandbox_id=workflow_sandbox_id,
24
24
  module=f"workflow_{workflow_sandbox_id.split('-')[0]}",
25
25
  )
26
+ config.workflows.append(workflow_config)
27
+ return workflow_config
26
28
  elif config.workflows:
27
29
  return config.workflows[0]
28
30
 
@@ -1,5 +1,6 @@
1
1
  import pytest
2
2
  import io
3
+ import json
3
4
  import os
4
5
  import tempfile
5
6
  from uuid import uuid4
@@ -113,6 +114,23 @@ def test_pull__sandbox_id_with_no_config(vellum_client):
113
114
  with open(workflow_py) as f:
114
115
  assert f.read() == "print('hello')"
115
116
 
117
+ # AND the vellum.lock.json file is created
118
+ vellum_lock_json = os.path.join(temp_dir, "vellum.lock.json")
119
+ assert os.path.exists(vellum_lock_json)
120
+ with open(vellum_lock_json) as f:
121
+ lock_data = json.loads(f.read())
122
+ assert lock_data == {
123
+ "version": "1.0",
124
+ "workflows": [
125
+ {
126
+ "module": "workflow_87654321",
127
+ "workflow_sandbox_id": "87654321-0000-0000-0000-000000000000",
128
+ "ignore": None,
129
+ "deployments": [],
130
+ }
131
+ ],
132
+ }
133
+
116
134
 
117
135
  def test_pull__sandbox_id_with_other_workflow_configured(vellum_client, mock_module):
118
136
  # GIVEN a pyproject.toml with a workflow configured
@@ -20,6 +20,7 @@ WorkflowMetaDisplayOverridesType = TypeVar("WorkflowMetaDisplayOverridesType", b
20
20
  @dataclass
21
21
  class WorkflowInputsDisplayOverrides:
22
22
  id: UUID
23
+ required: Optional[bool] = None
23
24
  color: Optional[str] = None
24
25
 
25
26