vellum-ai 1.7.8__py3-none-any.whl → 1.7.10__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.

Potentially problematic release.


This version of vellum-ai might be problematic. Click here for more details.

Files changed (35) hide show
  1. vellum/client/core/client_wrapper.py +2 -2
  2. vellum/workflows/errors/types.py +3 -0
  3. vellum/workflows/graph/graph.py +4 -1
  4. vellum/workflows/nodes/displayable/bases/base_prompt_node/node.py +14 -5
  5. vellum/workflows/runner/runner.py +17 -5
  6. vellum/workflows/utils/functions.py +1 -1
  7. vellum/workflows/workflows/base.py +2 -2
  8. {vellum_ai-1.7.8.dist-info → vellum_ai-1.7.10.dist-info}/METADATA +1 -1
  9. {vellum_ai-1.7.8.dist-info → vellum_ai-1.7.10.dist-info}/RECORD +35 -35
  10. vellum_ee/assets/node-definitions.json +91 -65
  11. vellum_ee/workflows/display/nodes/base_node_display.py +46 -26
  12. vellum_ee/workflows/display/nodes/vellum/code_execution_node.py +1 -1
  13. vellum_ee/workflows/display/nodes/vellum/conditional_node.py +1 -1
  14. vellum_ee/workflows/display/nodes/vellum/error_node.py +1 -1
  15. vellum_ee/workflows/display/nodes/vellum/final_output_node.py +1 -1
  16. vellum_ee/workflows/display/nodes/vellum/guardrail_node.py +1 -1
  17. vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py +1 -1
  18. vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py +1 -1
  19. vellum_ee/workflows/display/nodes/vellum/map_node.py +1 -1
  20. vellum_ee/workflows/display/nodes/vellum/merge_node.py +1 -1
  21. vellum_ee/workflows/display/nodes/vellum/note_node.py +1 -1
  22. vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py +1 -1
  23. vellum_ee/workflows/display/nodes/vellum/search_node.py +1 -1
  24. vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py +1 -1
  25. vellum_ee/workflows/display/nodes/vellum/templating_node.py +1 -1
  26. vellum_ee/workflows/display/nodes/vellum/tests/test_api_node.py +34 -0
  27. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py +8 -0
  28. vellum_ee/workflows/display/tests/workflow_serialization/test_manual_trigger_serialization.py +33 -70
  29. vellum_ee/workflows/display/tests/workflow_serialization/test_slack_trigger_serialization.py +40 -155
  30. vellum_ee/workflows/display/utils/expressions.py +12 -0
  31. vellum_ee/workflows/display/workflows/base_workflow_display.py +1 -1
  32. vellum_ee/workflows/tests/test_server.py +5 -0
  33. {vellum_ai-1.7.8.dist-info → vellum_ai-1.7.10.dist-info}/LICENSE +0 -0
  34. {vellum_ai-1.7.8.dist-info → vellum_ai-1.7.10.dist-info}/WHEEL +0 -0
  35. {vellum_ai-1.7.8.dist-info → vellum_ai-1.7.10.dist-info}/entry_points.txt +0 -0
@@ -50,6 +50,7 @@ from vellum.workflows.references.execution_count import ExecutionCountReference
50
50
  from vellum.workflows.references.lazy import LazyReference
51
51
  from vellum.workflows.references.output import OutputReference
52
52
  from vellum.workflows.references.state_value import StateValueReference
53
+ from vellum.workflows.references.trigger import TriggerAttributeReference
53
54
  from vellum.workflows.references.vellum_secret import VellumSecretReference
54
55
  from vellum.workflows.references.workflow_input import WorkflowInputReference
55
56
  from vellum.workflows.types.core import JsonArray, JsonObject
@@ -347,6 +348,17 @@ def serialize_value(executable_id: UUID, display_context: "WorkflowDisplayContex
347
348
  "node_id": str(node_class_display.node_id),
348
349
  }
349
350
 
351
+ if isinstance(value, TriggerAttributeReference):
352
+ # Generate trigger ID using the same hash formula as in base_workflow_display.py
353
+ trigger_class = value.trigger_class
354
+ trigger_id = uuid4_from_hash(trigger_class.__qualname__)
355
+
356
+ return {
357
+ "type": "TRIGGER_ATTRIBUTE",
358
+ "trigger_id": str(trigger_id),
359
+ "attribute_id": str(value.id),
360
+ }
361
+
350
362
  if isinstance(value, list):
351
363
  serialized_items = []
352
364
  for item in value:
@@ -474,7 +474,7 @@ class BaseWorkflowDisplay(Generic[WorkflowType]):
474
474
  )
475
475
 
476
476
  # Return as a list with a single trigger object matching Django schema
477
- trigger_id = uuid4_from_hash(f"{trigger_class.__module__} | {trigger_class.__qualname__}")
477
+ trigger_id = uuid4_from_hash(trigger_class.__qualname__)
478
478
 
479
479
  # Serialize trigger attributes like node outputs
480
480
  attribute_references = trigger_class.attribute_references().values()
@@ -145,6 +145,11 @@ class CodeExecutionNode(BaseCodeExecutionNode[BaseState, int]):
145
145
  # AND we get the code execution result
146
146
  assert event.body.outputs == {"final_output": 5.0}
147
147
 
148
+ # AND the workflow definition module is correctly serialized as a list
149
+ serialized_event = event.model_dump(mode="json")
150
+ workflow_definition = serialized_event["body"]["workflow_definition"]
151
+ assert workflow_definition["module"] == [namespace, "workflow"]
152
+
148
153
 
149
154
  def test_load_from_module__simple_code_execution_node_with_try(
150
155
  vellum_client,