vellum-ai 0.14.0__py3-none-any.whl → 0.14.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 (40) hide show
  1. vellum/client/core/client_wrapper.py +1 -1
  2. vellum/prompts/blocks/compilation.py +23 -16
  3. vellum/prompts/blocks/tests/test_compilation.py +29 -0
  4. vellum/utils/templating/render.py +2 -0
  5. vellum/workflows/nodes/core/templating_node/tests/test_templating_node.py +39 -1
  6. vellum/workflows/nodes/utils.py +9 -1
  7. vellum/workflows/state/base.py +21 -1
  8. {vellum_ai-0.14.0.dist-info → vellum_ai-0.14.1.dist-info}/METADATA +1 -1
  9. {vellum_ai-0.14.0.dist-info → vellum_ai-0.14.1.dist-info}/RECORD +40 -37
  10. vellum_ee/workflows/display/base.py +14 -0
  11. vellum_ee/workflows/display/nodes/base_node_display.py +11 -22
  12. vellum_ee/workflows/display/nodes/vellum/tests/test_prompt_node.py +52 -0
  13. vellum_ee/workflows/display/tests/test_vellum_workflow_display.py +1 -0
  14. vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/conftest.py +4 -1
  15. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py +1 -0
  16. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py +3 -0
  17. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py +4 -0
  18. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_default_state_serialization.py +243 -0
  19. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py +1 -0
  20. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_generic_node_serialization.py +1 -0
  21. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py +1 -1
  22. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py +1 -0
  23. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py +1 -0
  24. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py +1 -0
  25. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py +1 -0
  26. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py +1 -1
  27. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py +1 -0
  28. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py +1 -0
  29. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py +1 -0
  30. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py +1 -0
  31. vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py +1 -0
  32. vellum_ee/workflows/display/types.py +5 -1
  33. vellum_ee/workflows/display/utils/expressions.py +26 -0
  34. vellum_ee/workflows/display/utils/vellum.py +5 -0
  35. vellum_ee/workflows/display/vellum.py +14 -0
  36. vellum_ee/workflows/display/workflows/base_workflow_display.py +30 -1
  37. vellum_ee/workflows/display/workflows/vellum_workflow_display.py +41 -0
  38. {vellum_ai-0.14.0.dist-info → vellum_ai-0.14.1.dist-info}/LICENSE +0 -0
  39. {vellum_ai-0.14.0.dist-info → vellum_ai-0.14.1.dist-info}/WHEEL +0 -0
  40. {vellum_ai-0.14.0.dist-info → vellum_ai-0.14.1.dist-info}/entry_points.txt +0 -0
@@ -25,6 +25,8 @@ from vellum_ee.workflows.display.vellum import (
25
25
  EntrypointVellumDisplay,
26
26
  EntrypointVellumDisplayOverrides,
27
27
  NodeDisplayData,
28
+ StateValueVellumDisplay,
29
+ StateValueVellumDisplayOverrides,
28
30
  WorkflowInputsVellumDisplay,
29
31
  WorkflowInputsVellumDisplayOverrides,
30
32
  WorkflowMetaVellumDisplay,
@@ -44,6 +46,8 @@ class VellumWorkflowDisplay(
44
46
  WorkflowMetaVellumDisplayOverrides,
45
47
  WorkflowInputsVellumDisplay,
46
48
  WorkflowInputsVellumDisplayOverrides,
49
+ StateValueVellumDisplay,
50
+ StateValueVellumDisplayOverrides,
47
51
  BaseNodeDisplay,
48
52
  EntrypointVellumDisplay,
49
53
  EntrypointVellumDisplayOverrides,
@@ -76,6 +80,25 @@ class VellumWorkflowDisplay(
76
80
  }
77
81
  )
78
82
 
83
+ state_variables: JsonArray = []
84
+ for state_value, state_value_display in self.display_context.state_value_displays.items():
85
+ default = primitive_to_vellum_value(state_value.instance) if state_value.instance else None
86
+ required = (
87
+ state_value_display.required
88
+ if state_value_display.required is not None
89
+ else type(None) not in state_value.types
90
+ )
91
+ state_variables.append(
92
+ {
93
+ "id": str(state_value_display.id),
94
+ "key": state_value_display.name or state_value.name,
95
+ "type": infer_vellum_variable_type(state_value),
96
+ "default": default.dict() if default else None,
97
+ "required": required,
98
+ "extensions": {"color": state_value_display.color},
99
+ }
100
+ )
101
+
79
102
  nodes: JsonArray = []
80
103
  edges: JsonArray = []
81
104
 
@@ -244,6 +267,7 @@ class VellumWorkflowDisplay(
244
267
  },
245
268
  },
246
269
  "input_variables": input_variables,
270
+ "state_variables": state_variables,
247
271
  "output_variables": output_variables,
248
272
  }
249
273
 
@@ -283,6 +307,23 @@ class VellumWorkflowDisplay(
283
307
 
284
308
  return WorkflowInputsVellumDisplay(id=workflow_input_id, name=name, required=required, color=color)
285
309
 
310
+ def _generate_state_value_display(
311
+ self, state_value: BaseDescriptor, overrides: Optional[StateValueVellumDisplayOverrides] = None
312
+ ) -> StateValueVellumDisplay:
313
+ state_value_id: UUID
314
+ name = None
315
+ required = None
316
+ color = None
317
+ if overrides:
318
+ state_value_id = overrides.id
319
+ name = overrides.name
320
+ required = overrides.required
321
+ color = overrides.color
322
+ else:
323
+ state_value_id = uuid4_from_hash(f"{self.workflow_id}|state_values|id|{state_value.name}")
324
+
325
+ return StateValueVellumDisplay(id=state_value_id, name=name, required=required, color=color)
326
+
286
327
  def _generate_entrypoint_display(
287
328
  self,
288
329
  entrypoint: Type[BaseNode],