vellum-ai 0.10.4__py3-none-any.whl → 0.10.6__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 (56) hide show
  1. vellum/client/core/client_wrapper.py +1 -1
  2. vellum/workflows/nodes/__init__.py +6 -7
  3. vellum/workflows/nodes/bases/base.py +0 -1
  4. vellum/workflows/nodes/core/inline_subworkflow_node/node.py +1 -1
  5. vellum/workflows/nodes/core/templating_node/node.py +5 -1
  6. vellum/workflows/nodes/core/try_node/node.py +65 -27
  7. vellum/workflows/nodes/core/try_node/tests/test_node.py +17 -10
  8. vellum/workflows/nodes/displayable/__init__.py +2 -0
  9. vellum/workflows/nodes/displayable/bases/api_node/node.py +3 -3
  10. vellum/workflows/nodes/displayable/code_execution_node/node.py +5 -2
  11. vellum/workflows/nodes/displayable/final_output_node/node.py +6 -2
  12. vellum/workflows/nodes/displayable/note_node/__init__.py +5 -0
  13. vellum/workflows/nodes/displayable/note_node/node.py +10 -0
  14. vellum/workflows/nodes/displayable/tests/test_inline_text_prompt_node.py +10 -11
  15. vellum/workflows/nodes/utils.py +2 -0
  16. vellum/workflows/outputs/base.py +26 -2
  17. vellum/workflows/runner/runner.py +41 -27
  18. vellum/workflows/types/tests/test_utils.py +9 -0
  19. vellum/workflows/types/utils.py +1 -1
  20. vellum/workflows/utils/vellum_variables.py +13 -1
  21. vellum/workflows/workflows/base.py +24 -1
  22. {vellum_ai-0.10.4.dist-info → vellum_ai-0.10.6.dist-info}/METADATA +8 -6
  23. {vellum_ai-0.10.4.dist-info → vellum_ai-0.10.6.dist-info}/RECORD +56 -51
  24. vellum_cli/CONTRIBUTING.md +66 -0
  25. vellum_cli/README.md +3 -0
  26. vellum_ee/workflows/display/base.py +2 -1
  27. vellum_ee/workflows/display/nodes/base_node_display.py +27 -4
  28. vellum_ee/workflows/display/nodes/vellum/__init__.py +2 -0
  29. vellum_ee/workflows/display/nodes/vellum/api_node.py +3 -3
  30. vellum_ee/workflows/display/nodes/vellum/code_execution_node.py +4 -4
  31. vellum_ee/workflows/display/nodes/vellum/conditional_node.py +86 -41
  32. vellum_ee/workflows/display/nodes/vellum/guardrail_node.py +3 -3
  33. vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py +4 -5
  34. vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py +9 -9
  35. vellum_ee/workflows/display/nodes/vellum/map_node.py +5 -5
  36. vellum_ee/workflows/display/nodes/vellum/note_node.py +32 -0
  37. vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py +5 -5
  38. vellum_ee/workflows/display/nodes/vellum/search_node.py +1 -1
  39. vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py +2 -2
  40. vellum_ee/workflows/display/nodes/vellum/templating_node.py +1 -1
  41. vellum_ee/workflows/display/nodes/vellum/try_node.py +16 -4
  42. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py +7 -3
  43. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py +127 -101
  44. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py +6 -5
  45. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py +77 -64
  46. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py +4 -3
  47. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py +6 -6
  48. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py +6 -6
  49. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py +4 -3
  50. vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py +7 -6
  51. vellum_ee/workflows/display/workflows/base_workflow_display.py +14 -9
  52. vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py +2 -7
  53. vellum_ee/workflows/display/workflows/vellum_workflow_display.py +18 -16
  54. {vellum_ai-0.10.4.dist-info → vellum_ai-0.10.6.dist-info}/LICENSE +0 -0
  55. {vellum_ai-0.10.4.dist-info → vellum_ai-0.10.6.dist-info}/WHEEL +0 -0
  56. {vellum_ai-0.10.4.dist-info → vellum_ai-0.10.6.dist-info}/entry_points.txt +0 -0
@@ -35,11 +35,17 @@ from vellum.workflows.emitters.base import BaseWorkflowEmitter
35
35
  from vellum.workflows.errors import VellumError, VellumErrorCode
36
36
  from vellum.workflows.events.node import (
37
37
  NodeExecutionFulfilledBody,
38
+ NodeExecutionFulfilledEvent,
38
39
  NodeExecutionInitiatedBody,
40
+ NodeExecutionInitiatedEvent,
39
41
  NodeExecutionPausedBody,
42
+ NodeExecutionPausedEvent,
40
43
  NodeExecutionRejectedBody,
44
+ NodeExecutionRejectedEvent,
41
45
  NodeExecutionResumedBody,
46
+ NodeExecutionResumedEvent,
42
47
  NodeExecutionStreamingBody,
48
+ NodeExecutionStreamingEvent,
43
49
  )
44
50
  from vellum.workflows.events.types import WorkflowEventType
45
51
  from vellum.workflows.events.workflow import (
@@ -55,6 +61,7 @@ from vellum.workflows.events.workflow import (
55
61
  WorkflowExecutionResumedBody,
56
62
  WorkflowExecutionResumedEvent,
57
63
  WorkflowExecutionStreamingBody,
64
+ WorkflowExecutionStreamingEvent,
58
65
  )
59
66
  from vellum.workflows.graph import Graph
60
67
  from vellum.workflows.inputs.base import BaseInputs
@@ -204,7 +211,9 @@ class BaseWorkflow(Generic[WorkflowInputsType, StateType], metaclass=_BaseWorkfl
204
211
  trace_id=uuid4(),
205
212
  span_id=uuid4(),
206
213
  body=WorkflowExecutionRejectedBody(
207
- error=VellumError(code=VellumErrorCode.INTERNAL_ERROR, message="Initiated event was never emitted"),
214
+ error=VellumError(
215
+ code=VellumErrorCode.INTERNAL_ERROR, message="Initiated event was never emitted"
216
+ ),
208
217
  workflow_definition=self.__class__,
209
218
  ),
210
219
  )
@@ -363,3 +372,17 @@ NodeExecutionRejectedBody.model_rebuild()
363
372
  NodeExecutionPausedBody.model_rebuild()
364
373
  NodeExecutionResumedBody.model_rebuild()
365
374
  NodeExecutionStreamingBody.model_rebuild()
375
+
376
+ WorkflowExecutionInitiatedEvent.model_rebuild()
377
+ WorkflowExecutionFulfilledEvent.model_rebuild()
378
+ WorkflowExecutionRejectedEvent.model_rebuild()
379
+ WorkflowExecutionPausedEvent.model_rebuild()
380
+ WorkflowExecutionResumedEvent.model_rebuild()
381
+ WorkflowExecutionStreamingEvent.model_rebuild()
382
+
383
+ NodeExecutionInitiatedEvent.model_rebuild()
384
+ NodeExecutionFulfilledEvent.model_rebuild()
385
+ NodeExecutionRejectedEvent.model_rebuild()
386
+ NodeExecutionPausedEvent.model_rebuild()
387
+ NodeExecutionResumedEvent.model_rebuild()
388
+ NodeExecutionStreamingEvent.model_rebuild()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vellum-ai
3
- Version: 0.10.4
3
+ Version: 0.10.6
4
4
  Summary:
5
5
  License: MIT
6
6
  Requires-Python: >=3.9,<4.0
@@ -63,7 +63,6 @@ Description-Content-Type: text/markdown
63
63
 
64
64
  # Introduction
65
65
 
66
-
67
66
  [Vellum](https://www.vellum.ai/) is the end-to-end development platform for building production-grade AI applications
68
67
 
69
68
  ### Core Features
@@ -85,22 +84,21 @@ Description-Content-Type: text/markdown
85
84
  - [Contributing](#contributing)
86
85
  - [Open-source vs paid](#open-source-vs-paid)
87
86
 
88
-
89
87
  ## Get Started
88
+
90
89
  Most functionality within the SDKs here requires a Vellum account and API key. To sign up, [talk to us](https://www.vellum.ai/landing-pages/request-demo)
91
90
  or visit our [pricing page](https://www.vellum.ai/pricing).
92
91
 
93
92
  Even without a Vellum account, you can use the Workflows SDK to define the control flow of your AI systems. [Learn
94
93
  more below](#workflows-sdk).
95
94
 
96
-
97
-
98
95
  ## Client SDK
96
+
99
97
  The Vellum Client SDK, found within `src/client` is a low-level client used to interact directly with the Vellum API.
100
98
  Learn more and get started by visiting the [Vellum Client SDK README](/src/vellum/client/README.md).
101
99
 
102
-
103
100
  ## Workflows SDK
101
+
104
102
  The Vellum Workflows SDK is a high-level framework for defining and debugging the control flow of AI systems. At
105
103
  it's core, it's a powerful workflow engine with syntactic sugar for intuitively defining graphs, the nodes within,
106
104
  and the relationships between them.
@@ -111,6 +109,9 @@ and debugging via a UI.
111
109
 
112
110
  To learn more and get started, visit the [Vellum Workflows SDK README](/src/vellum/workflows/README.md).
113
111
 
112
+ ## Contributing
113
+
114
+ See the [CONTRIBUTING.md](/CONTRIBUTING.md) for information on how to contribute to the Vellum SDKs.
114
115
 
115
116
  ## Open-Source vs. Paid
116
117
 
@@ -118,3 +119,4 @@ This repo is available under the [MIT expat license](https://github.com/vellum-a
118
119
  for the `ee` directory (which has its [license here](https://github.com/vellum-ai/vellum-python-sdks/blob/main/ee/LICENSE)) if applicable.
119
120
 
120
121
  To learn more, [book a demo](https://www.vellum.ai/landing-pages/request-demo) or see our [pricing page](https://www.vellum.ai/pricing).
122
+
@@ -1,3 +1,5 @@
1
+ vellum_cli/CONTRIBUTING.md,sha256=FtDC7BGxSeMnwCXAUssFsAIElXtmJE-O5Z7BpolcgvI,2935
2
+ vellum_cli/README.md,sha256=2NudRoLzWxNKqnuVy1JuQ7DerIaxWGYkrH8kMd-asIE,90
1
3
  vellum_cli/__init__.py,sha256=t62kIq0vDia8TTJqAmqFpYCo40buWNDQmjIDTOvmwwE,2416
2
4
  vellum_cli/aliased_group.py,sha256=ugW498j0yv4ALJ8vS9MsO7ctDW7Jlir9j6nE_uHAP8c,3363
3
5
  vellum_cli/config.py,sha256=urqMGQUkTntzdx-JV0P32FZVbqRZqgI-yFVmGPVblNI,3613
@@ -11,47 +13,48 @@ vellum_ee/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
13
  vellum_ee/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
14
  vellum_ee/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
15
  vellum_ee/workflows/display/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
- vellum_ee/workflows/display/base.py,sha256=3ZFUYRNKL24fBqXhKpa_Dq2W1a-a86J20dmJYA3H2eY,1755
16
+ vellum_ee/workflows/display/base.py,sha256=yYH86aTPfOy7Zbzj9YBzU-yLUX3GBHVNxKqJFy7_wxk,1797
15
17
  vellum_ee/workflows/display/nodes/__init__.py,sha256=5XOcZJXYUgaLS55QgRJzyQ_W1tpeprjnYAeYVezqoGw,160
16
- vellum_ee/workflows/display/nodes/base_node_display.py,sha256=7szAFzhxfZc3cOtatZhMsH3kIKzoH_Hcx2jolNgPJS8,4679
18
+ vellum_ee/workflows/display/nodes/base_node_display.py,sha256=0ee5qP5uF9WASIocwhZfEi8S2NmPdaGQLlG-kwPb9ZI,5942
17
19
  vellum_ee/workflows/display/nodes/base_node_vellum_display.py,sha256=a62tpKcX0LdyZM2clwoGwpUfH3HMBbX1qiA0FFb_nk4,1649
18
20
  vellum_ee/workflows/display/nodes/get_node_display_class.py,sha256=A036wKuBjhtBGJKdkQSq4v1Rcm0cXHropJxKPuGWAsk,907
19
21
  vellum_ee/workflows/display/nodes/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
22
  vellum_ee/workflows/display/nodes/tests/test_base_node_display.py,sha256=x7UkKR22rnNGjeerHBczZ9_YsK8Us-YFOEbrLylvIxM,1054
21
23
  vellum_ee/workflows/display/nodes/types.py,sha256=St1BB6no528OyELGiyRabWao0GGw6mLhstQAvEACbGk,247
22
24
  vellum_ee/workflows/display/nodes/utils.py,sha256=sloya5TpXsnot1HURc9L51INwflRqUzHxRVnCS9Cd-4,973
23
- vellum_ee/workflows/display/nodes/vellum/__init__.py,sha256=WQ_KbMp__S41AUFDHt9dZU6IQLK9AizdGMi2M6eK2_8,1362
24
- vellum_ee/workflows/display/nodes/vellum/api_node.py,sha256=5mMO1rKDafoPtnFZciuFGGfbu8Ei-j4zRiEDx9oQG4I,8572
25
- vellum_ee/workflows/display/nodes/vellum/code_execution_node.py,sha256=VWFzPYzzNy4dSju0Gyegxx81A9cYjkN-dYqPTK3hCr4,3403
26
- vellum_ee/workflows/display/nodes/vellum/conditional_node.py,sha256=3pVtCukiILTSZPUWuYLIwzwXGBSSUV4q--i0zlYxGKQ,10850
25
+ vellum_ee/workflows/display/nodes/vellum/__init__.py,sha256=jQgm0dsQAlxZ0tYR_cv5pX-6wHMPQfFwmhI3DQ29S9Y,1432
26
+ vellum_ee/workflows/display/nodes/vellum/api_node.py,sha256=awjKut2m7HoEmqewRfdR1dw8ufA0Q5mVG8V8jhaHlKw,8572
27
+ vellum_ee/workflows/display/nodes/vellum/code_execution_node.py,sha256=bAtSJpcKyJW-VLvBEr92lKPpdPH1L_IA02qg78U1uFA,3403
28
+ vellum_ee/workflows/display/nodes/vellum/conditional_node.py,sha256=v9g263oEtyL6ejp5ZfLrVfrcqU9gZwzuUI4yBuOScbI,12983
27
29
  vellum_ee/workflows/display/nodes/vellum/final_output_node.py,sha256=kR_z9ichhBtK_CLetqGjewmFmIFalfSiG2tQlM2T4yM,2772
28
- vellum_ee/workflows/display/nodes/vellum/guardrail_node.py,sha256=CiGZL1nxgK0KxLUgKilpollRYFIqqGHjSGXtvP1miqs,2168
29
- vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py,sha256=NuNoPnvwbdSRkTQA3clLySNSzqkK0nmU4L0zYqgIfFQ,7397
30
- vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py,sha256=FwyEhiOpr1Uho6xJ7fenyaxUuciKV-zU19lT2zc2aQ0,4522
31
- vellum_ee/workflows/display/nodes/vellum/map_node.py,sha256=38_0gZbtWgpBO6EAEnwR8Enz3vP23Ga72StZ__ECqIc,4646
30
+ vellum_ee/workflows/display/nodes/vellum/guardrail_node.py,sha256=lr4d2uV3Lq8d22b5LCKbWMz_nU7Q0fvffcNQ7zx5Ygc,2163
31
+ vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py,sha256=0lX14iOxZhdKSXE6mzBAIw480nNJD_Sz4qo7WZAXYfQ,7391
32
+ vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py,sha256=rZmYQSCtm7bdiJ-ZYMyPpFnEwbNr85a45PXqESvLyus,4696
33
+ vellum_ee/workflows/display/nodes/vellum/map_node.py,sha256=TvUSmq5s2kFqkex8Z5uB65HT2U2MUYmRteAuumR4ySY,4656
32
34
  vellum_ee/workflows/display/nodes/vellum/merge_node.py,sha256=7YmVRNSI6RkK1rvg0b0zDeW2nnBIKir0ERzqqtT08I4,2218
33
- vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py,sha256=busFtdD7Cs6yeHsCeyVEReHkLlt062vP_mG4GAynsNk,3116
34
- vellum_ee/workflows/display/nodes/vellum/search_node.py,sha256=B2WX8C5cx3kYqd3ClyesY0fyeFwfEgb7-iC_gIWgNp4,8440
35
- vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py,sha256=SOGhvY0nUa02aDm5hrMSEAg0qdMxrI4GSB5_bpuTS0o,2671
36
- vellum_ee/workflows/display/nodes/vellum/templating_node.py,sha256=79EYw_C7jef5wbPFtT5F2cjuF9EvUimwEEcL0dX-M9Q,3029
35
+ vellum_ee/workflows/display/nodes/vellum/note_node.py,sha256=gjYEp7DdTtdH-uJvVbMTOEoj8KokB5LQBR_JJulFHj4,1121
36
+ vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py,sha256=LbxpCKr4Ys9A-xtWU119Ry8IP7W3GGinPFWt9QAZAi8,3111
37
+ vellum_ee/workflows/display/nodes/vellum/search_node.py,sha256=SIjtqNf_d-3Ba_ggyghz9Z9Z3bnsnxfiKk-OCvd8BqQ,8435
38
+ vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py,sha256=2Uj4lunoqSKrcZ5oqp2B2k98sZdv5Vys7e5DO66tdz8,2662
39
+ vellum_ee/workflows/display/nodes/vellum/templating_node.py,sha256=7dLAOFyUWjhryu953jJXHd7LWMY7w9VOYuPYnD-dSo4,3024
37
40
  vellum_ee/workflows/display/nodes/vellum/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
41
  vellum_ee/workflows/display/nodes/vellum/tests/test_utils.py,sha256=LmjC0yhXWOIDPnHmQpoMpzLr_VE2_ZpsJhWGSAqaHHY,3809
39
- vellum_ee/workflows/display/nodes/vellum/try_node.py,sha256=5JDFT8rpm4rKjoOvrjrvjyaK-sFVW0_xAZPB4_En-hA,1680
42
+ vellum_ee/workflows/display/nodes/vellum/try_node.py,sha256=m4d6hi6oD-jSW_bjrlN8coVwb6ivC2amPHpePHJ-Htg,2278
40
43
  vellum_ee/workflows/display/nodes/vellum/utils.py,sha256=FqkLA5L6uoNMUHY86CBlr9w9CIH9kkWu6CuIDhqGrXs,3107
41
44
  vellum_ee/workflows/display/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
45
  vellum_ee/workflows/display/tests/workflow_serialization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
46
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_api_node_serialization.py,sha256=bLdJ0VVwAPDRvwaJMiMf0fRCuIWvvuRjAxKzddGPFyA,16871
44
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py,sha256=JnaxdIDMudwgO4zzB0uJlCDYvoD1lZaAxFQ9OYxUFoA,22716
45
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py,sha256=0NxRo7KM_z8A1vgRgPISjCVFbYyKaeWCkgNldCkF6XY,53075
46
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py,sha256=FNmGO1hQjQOOejfSY-ErcMJXxvrxMyR7GZq4UX26UHA,8271
47
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py,sha256=2X8MzxZ3rf1lkx_e7Oez-qp4fvPZrdjulGAEOhbCMnY,21546
48
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=ESalw3PsfGy42w85FJr9VDWg8Rpv9NT25OMHpye27bs,14967
47
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_code_execution_node_serialization.py,sha256=0McMPIPnIwE8iGh7fzFZL3dc6Q7NCQ_wUVFpl14YATo,22846
48
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_conditional_node_serialization.py,sha256=uGTR4g1epQOBKcS4RezFH1Py7-NWFvsuuRq52u2A2o4,54260
49
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py,sha256=IfO5Hmr1W41X2IVq-i6pG7BuevBPZU_s6ASTNVVVkdg,8298
50
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py,sha256=c97A2tFWnNUXi3T4RLsvf3nZkUTPiGSC6XD_x1-ZK_U,22270
51
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=0560oLL81CJu2oowqlchloYrWz5MUF-Eih2WzDTFvvM,14981
49
52
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py,sha256=NUe91w_AHNJmxDaP_51wLuQoaHKgwkq83OXy0fHNsK0,9997
50
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py,sha256=v40e6N3Tl-V0GpKOLmCndMvPvcSqKPht1yAkkeXGaAA,9467
51
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py,sha256=ouWOS8oEOwunsPlxF1ZnAg3cWXCp5XFKWRbO7Jx0bgc,12682
52
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py,sha256=1vK0NTotZ1-n4NSol8bFToFjFgHUkboo8Ue2YdZvUwY,4259
53
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py,sha256=hIpamI86C9tfL0aOPeCRgVGCklQ1WB4XjRb7esSmgas,9493
54
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py,sha256=xK-3iQ05ZItncX6AQSzf4uUn0K2ObBm40wbtvGfgnkQ,12708
55
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py,sha256=fwOTqhvIOus25aPqQTV27wrdBe7WMaDDrzmJsAamGh8,4273
53
56
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py,sha256=Q2ONg1t3YVLlZgp85iOOn7LcWNVvdFxNJE4ibWLZhUg,2879
54
- vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256=sbW8zK1S3JAtTJeinmtqweb0wSQtFMZrVlbzm0nhUIs,9154
57
+ vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256=fgTgwVlkcy_3BvP9khin7HHpQ59wF7npt2_dPWH2lXk,9181
55
58
  vellum_ee/workflows/display/types.py,sha256=BkOADbktn7uixSZbwm-Mv-WdCwGrWSh29sWM8sX5A48,2011
56
59
  vellum_ee/workflows/display/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
60
  vellum_ee/workflows/display/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -60,15 +63,15 @@ vellum_ee/workflows/display/utils/uuids.py,sha256=DFzPv9RCvsKhvdTEIQyfSek2A31D6S
60
63
  vellum_ee/workflows/display/utils/vellum.py,sha256=NbjS_dKEgrwjV71xgxgsVnAn-PTZ67SBPgXMMnTbvfg,5133
61
64
  vellum_ee/workflows/display/vellum.py,sha256=_-lLRZsEitt8fdUID62aiXptWa8rJhyqgL4uy1gDmc4,8783
62
65
  vellum_ee/workflows/display/workflows/__init__.py,sha256=kapXsC67VJcgSuiBMa86FdePG5A9kMB5Pi4Uy1O2ob4,207
63
- vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=Tt_2K9T2KyMuIVn0Hfh1MlZLHpOjetwYsicaIf49ZAo,12447
64
- vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py,sha256=fgngC_HWeNRRJBNaQQAxQNlOsnMS7e5zPyLe9aysn4M,1373
65
- vellum_ee/workflows/display/workflows/vellum_workflow_display.py,sha256=sDhCQJYdSJ4LcR7JBaTUllNhSaedQeD3Oe_ALUE3SiY,16634
66
+ vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=HkakkrNgVFoHlUP7yHlQjHOvii3CZ90iyU1062PfoW4,12819
67
+ vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py,sha256=EN6gXo_uNRrQZtPjenSZHOge2ztz5J9k5tpsmfGulVY,1160
68
+ vellum_ee/workflows/display/workflows/vellum_workflow_display.py,sha256=RxSnupMr7lEAAjiyTC1BGJzH4OtgSi63_-LwE7bil3o,16843
66
69
  vellum/__init__.py,sha256=xiYriEQZVk6SzItzQNOMpGoeO2yFTBGrEJZNHJesm8E,34416
67
70
  vellum/client/README.md,sha256=8cKUE1kSuhz-U87n3-clA7o9_zlP0Avr4qKbvRbdT2k,5984
68
71
  vellum/client/__init__.py,sha256=Fu-wzw_MiTtqAQOFhcFcrLKAPkEfUhf6K4ZuFspfKUw,115305
69
72
  vellum/client/core/__init__.py,sha256=SQ85PF84B9MuKnBwHNHWemSGuy-g_515gFYNFhvEE0I,1438
70
73
  vellum/client/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
71
- vellum/client/core/client_wrapper.py,sha256=k5EK8N1d-FKFlgsJNJtwPgk4x8KEICMhKgvOXBMOF_0,1890
74
+ vellum/client/core/client_wrapper.py,sha256=_3h16IFZNO44Mk4A5auvJ9iLW940O2VFwfgnE-j4910,1890
72
75
  vellum/client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
73
76
  vellum/client/core/file.py,sha256=X9IbmkZmB2bB_DpmZAO3crWdXagOakAyn6UCOCImCPg,2322
74
77
  vellum/client/core/http_client.py,sha256=R0pQpCppnEtxccGvXl4uJ76s7ro_65Fo_erlNNLp_AI,19228
@@ -1227,9 +1230,9 @@ vellum/workflows/graph/tests/test_graph.py,sha256=zeBqfcMIlMS3AJn-t0YitKsa8O0r2f
1227
1230
  vellum/workflows/inputs/__init__.py,sha256=AbFEteIYEvCb14fM3EK7bhM-40-6s494rSlIhQ4Dsss,62
1228
1231
  vellum/workflows/inputs/base.py,sha256=1kMgr0WqCYdWUqgFvgSoAMw2067FAlgwhGXLgbIOrLY,2391
1229
1232
  vellum/workflows/logging.py,sha256=_a217XogktV4Ncz6xKFz7WfYmZAzkfVRVuC0rWob8ls,437
1230
- vellum/workflows/nodes/__init__.py,sha256=l_dOI1T9jjka2fe5s4XYyiturK9ZSoPQwVXBofR-R18,1197
1233
+ vellum/workflows/nodes/__init__.py,sha256=aVdQVv7Y3Ro3JlqXGpxwaU2zrI06plDHD2aumH5WUIs,1157
1231
1234
  vellum/workflows/nodes/bases/__init__.py,sha256=Ll1Ti6t3e_HKtGLsQTHAJevDmfo0QtfgPZUZ9FCRduI,140
1232
- vellum/workflows/nodes/bases/base.py,sha256=-wp4d9akwCOWI9vjaFj3drSfppeF3zokaLme-krFp8M,13641
1235
+ vellum/workflows/nodes/bases/base.py,sha256=2WP30q6OtEK5nA15NljZnyoIPko3fYpf_sStvzNTsrE,13628
1233
1236
  vellum/workflows/nodes/bases/base_subworkflow_node/__init__.py,sha256=0nkHQiFC4IpA1ZGx60XG0BLUWF6hwUpgqmS3ZrlFGhg,80
1234
1237
  vellum/workflows/nodes/bases/base_subworkflow_node/node.py,sha256=vC0gUBQewAUNtP3i2G0-LUpE_kY-r_ijBD_tS1XkQ1E,383
1235
1238
  vellum/workflows/nodes/bases/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1238,7 +1241,7 @@ vellum/workflows/nodes/core/__init__.py,sha256=5zDMCmyt1v0HTJzlUBwq3U9L825yZGZhT
1238
1241
  vellum/workflows/nodes/core/error_node/__init__.py,sha256=g7RRnlHhqu4qByfLjBwCunmgGA8dI5gNsjS3h6TwlSI,60
1239
1242
  vellum/workflows/nodes/core/error_node/node.py,sha256=hqBPHoLnhNrK9ITIaEzpnk47XYDbG6cmObz7oe78Ceg,944
1240
1243
  vellum/workflows/nodes/core/inline_subworkflow_node/__init__.py,sha256=nKNEH1QTl-1PcvmYoqSWEl0-t6gAur8GLTXHzklRQfM,84
1241
- vellum/workflows/nodes/core/inline_subworkflow_node/node.py,sha256=RrThrYAmZDg0IUKRU5tcJRueg3OPZjPvBTpRskt7hPI,3001
1244
+ vellum/workflows/nodes/core/inline_subworkflow_node/node.py,sha256=hXYdhY_4cJVzCDBeFynFflRisgS4nBeFsuz3sFzrMGI,3002
1242
1245
  vellum/workflows/nodes/core/map_node/__init__.py,sha256=MXpZYmGfhsMJHqqlpd64WiJRtbAtAMQz-_3fCU_cLV0,56
1243
1246
  vellum/workflows/nodes/core/map_node/node.py,sha256=aPhV3niv_jWSwrZ2CwiRg0CDOM-09Fa6QqOPYNJMgRc,6206
1244
1247
  vellum/workflows/nodes/core/map_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1250,19 +1253,19 @@ vellum/workflows/nodes/core/retry_node/tests/test_node.py,sha256=zANiu9-d-uIOP9t
1250
1253
  vellum/workflows/nodes/core/templating_node/__init__.py,sha256=GmyuYo81_A1_Bz6id69ozVFS6FKiuDsZTiA3I6MaL2U,70
1251
1254
  vellum/workflows/nodes/core/templating_node/custom_filters.py,sha256=Q0DahYRHP4KfaUXDt9XxN-DFLBrAxlv90yaVqxScoUw,264
1252
1255
  vellum/workflows/nodes/core/templating_node/exceptions.py,sha256=cDp140PP4OnInW4qAvg3KqiSiF70C71UyEAKRBR1Abo,46
1253
- vellum/workflows/nodes/core/templating_node/node.py,sha256=Ed1XMtz_Mzq9Dv08wcsIvGAzIVWrMIAGj-bKExJdXnM,4247
1256
+ vellum/workflows/nodes/core/templating_node/node.py,sha256=SU8zCVLz1Qq4bXoECHssECQBmUwxdeQgFMo7x1nv5Ts,4364
1254
1257
  vellum/workflows/nodes/core/templating_node/render.py,sha256=OpJp0NAH6qcEL6K9lxR0qjpFb75TYNttJR5iCos8tmg,1792
1255
1258
  vellum/workflows/nodes/core/templating_node/tests/test_templating_node.py,sha256=L6F3Gw9doguj1TSKmAns-mzXvoRuRivaCFe3mhjo13E,551
1256
1259
  vellum/workflows/nodes/core/try_node/__init__.py,sha256=JVD4DrldTIqFQQFrubs9KtWCCc0YCAc7Fzol5ZWIWeM,56
1257
- vellum/workflows/nodes/core/try_node/node.py,sha256=ZFySh3S7slWN20rlvukqgmN2TVsG58Lz_p5jdNK_96Q,4162
1260
+ vellum/workflows/nodes/core/try_node/node.py,sha256=ZP7Suh025siA8T4D_1niL_-5lwSHXvY72-cj2x8S2U8,5813
1258
1261
  vellum/workflows/nodes/core/try_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1259
- vellum/workflows/nodes/core/try_node/tests/test_node.py,sha256=Hjf4485svKEtNOnMBfnMP01GKihMRvN9Nkev2TFbHLE,3447
1260
- vellum/workflows/nodes/displayable/__init__.py,sha256=SReuiXngYFlTshz2dWW6JPuLDIM6zT2Pk1YRxiQANIw,975
1262
+ vellum/workflows/nodes/core/try_node/tests/test_node.py,sha256=u06GmVGln5lg-65YYFAmjlKwxuXbP8bKA8Qf_Zbq7ak,3764
1263
+ vellum/workflows/nodes/displayable/__init__.py,sha256=6F_4DlSwvHuilWnIalp8iDjjDXl0Nmz4QzJV2PYe5RI,1023
1261
1264
  vellum/workflows/nodes/displayable/api_node/__init__.py,sha256=MoxdQSnidIj1Nf_d-hTxlOxcZXaZnsWFDbE-PkTK24o,56
1262
1265
  vellum/workflows/nodes/displayable/api_node/node.py,sha256=-m93_KqwaWxbtbNQDWnLZZ-TSHCwd4ir2V542zovaZU,2043
1263
1266
  vellum/workflows/nodes/displayable/bases/__init__.py,sha256=0mWIx3qUrzllV7jqt7wN03vWGMuI1WrrLZeMLT2Cl2c,304
1264
1267
  vellum/workflows/nodes/displayable/bases/api_node/__init__.py,sha256=1jwx4WC358CLA1jgzl_UD-rZmdMm2v9Mps39ndwCD7U,64
1265
- vellum/workflows/nodes/displayable/bases/api_node/node.py,sha256=hfw6y8Pea-lVtBuvHin4YQJTIxttwztpfc286nHvKq0,2493
1268
+ vellum/workflows/nodes/displayable/bases/api_node/node.py,sha256=YQNoO5xgjd44EzOTe0EVAxWgMLoaWGx_68fxgoEBqto,2487
1266
1269
  vellum/workflows/nodes/displayable/bases/base_prompt_node/__init__.py,sha256=Org3xTvgp1pA0uUXFfnJr29D3HzCey2lEdYF4zbIUgo,70
1267
1270
  vellum/workflows/nodes/displayable/bases/base_prompt_node/node.py,sha256=et_cMMclaKizMUDPgCwh9REisJ8hUdq-W3KnLie-tEo,2426
1268
1271
  vellum/workflows/nodes/displayable/bases/inline_prompt_node/__init__.py,sha256=Hl35IAoepRpE-j4cALaXVJIYTYOF3qszyVbxTj4kS1s,82
@@ -1271,7 +1274,7 @@ vellum/workflows/nodes/displayable/bases/inline_prompt_node/node.py,sha256=vbl6L
1271
1274
  vellum/workflows/nodes/displayable/bases/prompt_deployment_node.py,sha256=JjNMiAFgOupUo5EUeHaryG74SCjEECxBZiS8cMECR_c,4378
1272
1275
  vellum/workflows/nodes/displayable/bases/search_node.py,sha256=z8IQg-J46AbRMgFi92M08A220Wf7gU0xE3634ii3T1E,3565
1273
1276
  vellum/workflows/nodes/displayable/code_execution_node/__init__.py,sha256=0FLWMMktpzSnmBMizQglBpcPrP80fzVsoJwJgf822Cg,76
1274
- vellum/workflows/nodes/displayable/code_execution_node/node.py,sha256=zIq2MHlLwxSHpFJiYMUp4F0PWfvbMETWUwHTsXi85W0,7962
1277
+ vellum/workflows/nodes/displayable/code_execution_node/node.py,sha256=8yPoA8yCvk4TODot5Ou09wbonkCfqvPYFc5cOHbwP10,8078
1275
1278
  vellum/workflows/nodes/displayable/code_execution_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1276
1279
  vellum/workflows/nodes/displayable/code_execution_node/tests/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1277
1280
  vellum/workflows/nodes/displayable/code_execution_node/tests/fixtures/main.py,sha256=5QsbmkzSlSbcbWTG_JmIqcP-JNJzOPTKxGzdHos19W4,79
@@ -1280,13 +1283,15 @@ vellum/workflows/nodes/displayable/code_execution_node/utils.py,sha256=R0gVJVwn2
1280
1283
  vellum/workflows/nodes/displayable/conditional_node/__init__.py,sha256=AS_EIqFdU1F9t8aLmbZU-rLh9ry6LCJ0uj0D8F0L5Uw,72
1281
1284
  vellum/workflows/nodes/displayable/conditional_node/node.py,sha256=0IrCyzLksmYYxDwXQb9_E7E5y1rmxgtmXavfeCzSy04,1026
1282
1285
  vellum/workflows/nodes/displayable/final_output_node/__init__.py,sha256=G7VXM4OWpubvSJtVkGmMNeqgb9GkM7qZT838eL18XU4,72
1283
- vellum/workflows/nodes/displayable/final_output_node/node.py,sha256=ExDKZcWQ-cJeI0FbBoNX2ismKAW709GSvSdTpI7dTsA,1741
1286
+ vellum/workflows/nodes/displayable/final_output_node/node.py,sha256=iH3ZPOstPku_rg4h97Xz5FMaHWVRCjypaamAFzoJzJ0,1854
1284
1287
  vellum/workflows/nodes/displayable/guardrail_node/__init__.py,sha256=Ab5eXmOoBhyV4dMWdzh32HLUmnPIBEK_zFCT38C4Fng,68
1285
1288
  vellum/workflows/nodes/displayable/guardrail_node/node.py,sha256=vctOgn1gUYGIClknGciUjmDRFKlcEbIRZYvzgBaMiVo,3918
1286
1289
  vellum/workflows/nodes/displayable/inline_prompt_node/__init__.py,sha256=gSUOoEZLlrx35-tQhSAd3An8WDwBqyiQh-sIebLU9wU,74
1287
1290
  vellum/workflows/nodes/displayable/inline_prompt_node/node.py,sha256=gZSiATdEwka07GkBm1F_CbqZLXNYdFAvFgT0vE2w1zA,1854
1288
1291
  vellum/workflows/nodes/displayable/merge_node/__init__.py,sha256=J8IC08dSH7P76wKlNuxe1sn7toNGtSQdFirUbtPDEs0,60
1289
1292
  vellum/workflows/nodes/displayable/merge_node/node.py,sha256=ZyPvcTgfPOneOm5Dc2kUOoPkwNJqwRPZSj232akXynA,324
1293
+ vellum/workflows/nodes/displayable/note_node/__init__.py,sha256=KWA3P4fyYJ-fOTky8qNGlcOotQ-HeHJ9AjZt6mRQmCE,58
1294
+ vellum/workflows/nodes/displayable/note_node/node.py,sha256=8rwP7RS1OOyQJ-ZuZBXTCtT2ZW8J6eGD59iKmq_pB24,258
1290
1295
  vellum/workflows/nodes/displayable/prompt_deployment_node/__init__.py,sha256=krX1Hds-TSVYZsx0wJFX4wsAKkEFYOX1ifwRGiIM-EA,82
1291
1296
  vellum/workflows/nodes/displayable/prompt_deployment_node/node.py,sha256=zEgOWgahPr-Jozd97xEqhX3ZelcHcMuKPMiOFb1igXE,2321
1292
1297
  vellum/workflows/nodes/displayable/search_node/__init__.py,sha256=hpBpvbrDYf43DElRZFLzieSn8weXiwNiiNOJurERQbs,62
@@ -1294,12 +1299,12 @@ vellum/workflows/nodes/displayable/search_node/node.py,sha256=k7_S5yWFGZrIV1R5Bs
1294
1299
  vellum/workflows/nodes/displayable/subworkflow_deployment_node/__init__.py,sha256=9yYM6001YZeqI1VOk1QuEM_yrffk_EdsO7qaPzINKds,92
1295
1300
  vellum/workflows/nodes/displayable/subworkflow_deployment_node/node.py,sha256=HjKaQ8QaqmdEcwOIg2DoWk__l9cMpR4tYnZ51WQDThk,6714
1296
1301
  vellum/workflows/nodes/displayable/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1297
- vellum/workflows/nodes/displayable/tests/test_inline_text_prompt_node.py,sha256=4ldqjyiQaLTo-yBLqCucbG7C4i3QgY_6OLdlvojH57o,4789
1302
+ vellum/workflows/nodes/displayable/tests/test_inline_text_prompt_node.py,sha256=UwNCIrq2gDpObcosrpiIHFdHZLWarmlS7ez8GanIBDc,4649
1298
1303
  vellum/workflows/nodes/displayable/tests/test_search_node_wth_text_output.py,sha256=AZtodUoX_Fl_ZXDinutAxlsDsfcxEYS0nFL0mcBylW8,6955
1299
1304
  vellum/workflows/nodes/displayable/tests/test_text_prompt_deployment_node.py,sha256=Ee2_1bvWycaVNzKGLsxAcu_3HNvTM_DiwDAeF20ZgBk,2497
1300
- vellum/workflows/nodes/utils.py,sha256=Wb55D2Kzz44_wM8IrTsjyoyBI1vhdFzPEs8tKQtjBw8,773
1305
+ vellum/workflows/nodes/utils.py,sha256=zY0b5WjJtGwVPPLY3ffHUdRREPvyoNwmJDigz5jQRAI,812
1301
1306
  vellum/workflows/outputs/__init__.py,sha256=AyZ4pRh_ACQIGvkf0byJO46EDnSix1ZCAXfvh-ms1QE,94
1302
- vellum/workflows/outputs/base.py,sha256=2khlquCmSBplVSrfcbkbXEujQNm_seq8OTDbIgMKmUE,7159
1307
+ vellum/workflows/outputs/base.py,sha256=aOll71CH_g1RaVO1wl038BqpWH70cD3XXSRxzH0YoRA,8002
1303
1308
  vellum/workflows/ports/__init__.py,sha256=bZuMt-R7z5bKwpu4uPW7LlJeePOQWmCcDSXe5frUY5g,101
1304
1309
  vellum/workflows/ports/node_ports.py,sha256=OMbbwsy6h8wCCycWlll6nfDlEedVjBS7aaYUUYrN1DQ,2763
1305
1310
  vellum/workflows/ports/port.py,sha256=4Y3heJglodE5svzq7om7e-5gqANqnbiqKD3ffQMGLVQ,2463
@@ -1318,7 +1323,7 @@ vellum/workflows/references/workflow_input.py,sha256=epspVRZ9n_nxoTxI5Am3GDd2fpU
1318
1323
  vellum/workflows/resolvers/__init__.py,sha256=eH6hTvZO4IciDaf_cf7aM2vs-DkBDyJPycOQevJxQnI,82
1319
1324
  vellum/workflows/resolvers/base.py,sha256=WHra9LRtlTuB1jmuNqkfVE2JUgB61Cyntn8f0b0WZg4,411
1320
1325
  vellum/workflows/runner/__init__.py,sha256=i1iG5sAhtpdsrlvwgH6B-m49JsINkiWyPWs8vyT-bqM,72
1321
- vellum/workflows/runner/runner.py,sha256=59SSOX8YHcZ7ihZ1NGKDk8k1wMrQV94j3o5Zsv9BK8I,23979
1326
+ vellum/workflows/runner/runner.py,sha256=hjE5n5IKr0mCyiNxtOMpe1mPV13kwhlHtJdMh_yBxBQ,24514
1322
1327
  vellum/workflows/runner/types.py,sha256=mGTTmPjL0-vOVRAnazVuXUTsNoD-X7bFHdhfE1orRBE,583
1323
1328
  vellum/workflows/state/__init__.py,sha256=yUUdR-_Vl7UiixNDYQZ-GEM_kJI9dnOia75TtuNEsnE,60
1324
1329
  vellum/workflows/state/base.py,sha256=gm4pun9BzYaZbW8I1j7EriUIlAzqQkKT3IBbXPh3FkA,12663
@@ -1332,19 +1337,19 @@ vellum/workflows/types/core.py,sha256=llsHFE3XKnVEk_pYoK0s9WUdeninSU5Kmoi7dU4GX0
1332
1337
  vellum/workflows/types/generics.py,sha256=ZkfoRhWs042i5IjA99v2wIhmh1u-Wieo3LzosgGWJVk,600
1333
1338
  vellum/workflows/types/stack.py,sha256=RDSGLkcV612ge8UuAH9TZiEGXxJt0Av2-H5rfzrTVVI,1014
1334
1339
  vellum/workflows/types/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1335
- vellum/workflows/types/tests/test_utils.py,sha256=ucD5JgI_OeqYMDL-sBaHbbUCQqOKvfZYELYq0dCfWHg,2047
1336
- vellum/workflows/types/utils.py,sha256=ErTd_EKMqcTC8jqUuffTg0Dn5oyOWnofHfTg-VqlFqw,5486
1340
+ vellum/workflows/types/tests/test_utils.py,sha256=PhpaFwhrX-TJX409MINh9Y4IEfkDX1OCkSqz6QSXQ9Q,2339
1341
+ vellum/workflows/types/utils.py,sha256=vxMGvd-Ay-Nq3w1lmJKcGsiORDk3hu6Fg8dpCKZxEa8,5496
1337
1342
  vellum/workflows/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1338
1343
  vellum/workflows/utils/names.py,sha256=QLUqfJ1tmSEeUwBKTTiv_Qk3QGbInC2RSmlXfGXc8Wo,380
1339
1344
  vellum/workflows/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1340
1345
  vellum/workflows/utils/tests/test_names.py,sha256=aOqpyvMsOEK_9mg_-yaNxQDW7QQfwqsYs37PseyLhxw,402
1341
1346
  vellum/workflows/utils/tests/test_vellum_variables.py,sha256=lsYgQV4Iq4ECoVdBNQHSRepHEiSIsccB_KJU7Ap-dJk,777
1342
- vellum/workflows/utils/vellum_variables.py,sha256=JA7hhbJ_9m7KEYFaCv5R6FqYeTRWDpUgKUar1601aTQ,2600
1347
+ vellum/workflows/utils/vellum_variables.py,sha256=wbYejKwjy23ITDRfdGW4d181buvCbZityEp5UTJPl28,3123
1343
1348
  vellum/workflows/vellum_client.py,sha256=ODrq_TSl-drX2aezXegf7pizpWDVJuTXH-j6528t75s,683
1344
1349
  vellum/workflows/workflows/__init__.py,sha256=KY45TqvavCCvXIkyCFMEc0dc6jTMOUci93U2DUrlZYc,66
1345
- vellum/workflows/workflows/base.py,sha256=NbQ3jR9veKdfK5S9qPkiJvy16l19YyQxzops_Y09wMw,12872
1346
- vellum_ai-0.10.4.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
1347
- vellum_ai-0.10.4.dist-info/METADATA,sha256=02ud_MZb29bNWRkoShUsfJ1lKb37VJ1qNIxure9-TwE,5011
1348
- vellum_ai-0.10.4.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
1349
- vellum_ai-0.10.4.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
1350
- vellum_ai-0.10.4.dist-info/RECORD,,
1350
+ vellum/workflows/workflows/base.py,sha256=QxIm0zCic8P-y0NNLdqgC1YKTu-3TmMJ-wH1nUylguA,13689
1351
+ vellum_ai-0.10.6.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
1352
+ vellum_ai-0.10.6.dist-info/METADATA,sha256=bYIQ3gBUlMApjanIg9j2P6B47ZUHUlzKZrBXmZlG_Xo,5128
1353
+ vellum_ai-0.10.6.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
1354
+ vellum_ai-0.10.6.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
1355
+ vellum_ai-0.10.6.dist-info/RECORD,,
@@ -0,0 +1,66 @@
1
+ <!-- START doctoc generated TOC please keep comment here to allow auto update -->
2
+ <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
3
+
4
+ - [Vellum CLI](#vellum-cli)
5
+ - [Updating this README](#updating-this-readme)
6
+ - [Development](#development)
7
+ - [vellum pull](#vellum-pull)
8
+ - [Step 1. Run the Codegen Service Locally](#step-1-run-the-codegen-service-locally)
9
+ - [Step 2. Run the Vellum Webserver Locally](#step-2-run-the-vellum-webserver-locally)
10
+ - [Step 3. Run the Vellum CLI Locally](#step-3-run-the-vellum-cli-locally)
11
+
12
+ <!-- END doctoc generated TOC please keep comment here to allow auto update -->
13
+
14
+ # Vellum CLI
15
+
16
+ This contribution guide is for the Vellum CLI, which is the command-line interface connecting Vellum SDKs to the Vellum application.
17
+
18
+ **Note:** This directory is _not_ accepting contributions from anyone besides Vellum employees. Please open an issue for feedback or feature requests.
19
+
20
+ # Updating this README
21
+
22
+ This README is generated using [doctoc](https://github.com/thlorenz/doctoc)
23
+
24
+ To install doctoc, run `npm install -g doctoc`
25
+
26
+ To update the table of contents, run `doctoc README.md`
27
+
28
+ # Development
29
+
30
+ ## vellum pull
31
+
32
+ If you want to run `vellum pull` locally end to end, here are the steps you'll need to follow.
33
+
34
+ ### Step 1. Run the Codegen Service Locally
35
+
36
+ - Pull down the private `vellum-ai/codegen-service` repo [here](https://github.com/vellum-ai/codegen-service)
37
+ - Follow its README to run the service locally. This will spin up a local webserver running on `localhost:5111`.
38
+ - By default, when you run that service, it'll use the latest published `@vellum-ai/vellum-codegen` npm package.
39
+ However, you'll often want to instead point it to the local version defined here in this repo under the `codegen/`
40
+ directory (which is the source of where @vellum-ai/vellum-codegen is published from). The README in the
41
+ codegen-service repo should show you how to do that.
42
+
43
+ ### Step 2. Run the Vellum Webserver Locally
44
+
45
+ - Pull down the private `vellum-ai/vellum` repo [here](https://github.com/vellum-ai/vellum)
46
+ - Follow its README to set up the Vellum backend
47
+ - Run `make run-backend-dev`. This will start up the Vellum backend on `localhost:8000` and have it point to the
48
+ local codegen-service running on `localhost:5111`.
49
+
50
+ ### Step 3. Run the Vellum CLI Locally
51
+
52
+ - From within the root of this repo, run `pip install -e .` to install the Vellum CLI locally.
53
+ - Ensure you have a valid workflow config in your `pyproject.toml` file. For example:
54
+ ```toml
55
+ [[tool.vellum.workflows]]
56
+ module = "examples.basic_rag_workflow"
57
+ workflow_sandbox_id = "<your-workflow-sandbox-id>"
58
+ ```
59
+ - Ensure you have an API key stored in your `.env` file:
60
+ ```
61
+ VELLUM_API_KEY="<your-api-key>"
62
+ ```
63
+ - Run the cli command and point it to the local Vellum backend running on `localhost:8000`. For example:
64
+ ```
65
+ VELLUM_API_URL="http://localhost:8000" vellum pull examples.basic_rag_workflow
66
+ ```
vellum_cli/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # Vellum CLI
2
+
3
+ <!-- TODO: To be generated from the generator repo and shared with docs -->
@@ -1,6 +1,6 @@
1
1
  from dataclasses import dataclass
2
2
  from uuid import UUID
3
- from typing import TypeVar
3
+ from typing import Optional, TypeVar
4
4
 
5
5
 
6
6
  @dataclass
@@ -20,6 +20,7 @@ WorkflowMetaDisplayOverridesType = TypeVar("WorkflowMetaDisplayOverridesType", b
20
20
  @dataclass
21
21
  class WorkflowInputsDisplayOverrides:
22
22
  id: UUID
23
+ color: Optional[str] = None
23
24
 
24
25
 
25
26
  @dataclass
@@ -1,11 +1,8 @@
1
1
  from functools import cached_property
2
2
  import inspect
3
3
  from uuid import UUID
4
- from typing import TYPE_CHECKING, Any, Dict, Generic, Optional, Type, TypeVar, get_args
4
+ from typing import TYPE_CHECKING, Any, Dict, Generic, Optional, Type, TypeVar, get_args, get_origin, cast
5
5
 
6
- from vellum_ee.workflows.display.nodes.types import NodeOutputDisplay, PortDisplay, PortDisplayOverrides
7
- from vellum_ee.workflows.display.utils.uuids import uuid4_from_hash
8
- from vellum_ee.workflows.display.vellum import CodeResourceDefinition, NodeDefinition
9
6
  from vellum.workflows.nodes.bases.base import BaseNode
10
7
  from vellum.workflows.nodes.utils import get_wrapped_node, has_wrapped_node
11
8
  from vellum.workflows.ports import Port
@@ -14,6 +11,9 @@ from vellum.workflows.types.core import JsonObject
14
11
  from vellum.workflows.types.generics import NodeType
15
12
  from vellum.workflows.types.utils import get_original_base
16
13
  from vellum.workflows.utils.names import pascal_to_title_case
14
+ from vellum_ee.workflows.display.nodes.types import NodeOutputDisplay, PortDisplay, PortDisplayOverrides
15
+ from vellum_ee.workflows.display.utils.uuids import uuid4_from_hash
16
+ from vellum_ee.workflows.display.vellum import CodeResourceDefinition, NodeDefinition
17
17
 
18
18
  if TYPE_CHECKING:
19
19
  from vellum_ee.workflows.display.types import WorkflowDisplayContext
@@ -92,6 +92,29 @@ class BaseNodeDisplay(Generic[NodeType]):
92
92
  if node_display_attribute is None:
93
93
  return None
94
94
 
95
+ origin = get_origin(attribute_type)
96
+ args = get_args(attribute_type)
97
+
98
+ if origin is not None:
99
+ # Handle Dict
100
+ if origin is dict and isinstance(node_display_attribute, dict):
101
+ if len(args) == 2:
102
+ key_type, value_type = args
103
+ if all(isinstance(k, key_type) and isinstance(v, value_type) for k, v in
104
+ node_display_attribute.items()):
105
+ return cast(_NodeDisplayAttrType, node_display_attribute)
106
+ raise ValueError(f"Node {cls.__name__} must define an explicit {attribute} of type {attribute_type}.")
107
+
108
+ # Handle List
109
+ elif origin is list and isinstance(node_display_attribute, list):
110
+ if len(args) == 1:
111
+ item_type = args[0]
112
+ if all(isinstance(item, item_type) for item in node_display_attribute):
113
+ return cast(_NodeDisplayAttrType, node_display_attribute)
114
+ raise ValueError(f"Node {cls.__name__} must define an explicit {attribute} of type {attribute_type}.")
115
+
116
+ raise ValueError(f"Node {cls.__name__} must define an explicit {attribute} of type {attribute_type}.")
117
+
95
118
  if isinstance(node_display_attribute, attribute_type):
96
119
  return node_display_attribute
97
120
 
@@ -7,6 +7,7 @@ from .inline_prompt_node import BaseInlinePromptNodeDisplay
7
7
  from .inline_subworkflow_node import BaseInlineSubworkflowNodeDisplay
8
8
  from .map_node import BaseMapNodeDisplay
9
9
  from .merge_node import BaseMergeNodeDisplay
10
+ from .note_node import BaseNoteNodeDisplay
10
11
  from .prompt_deployment_node import BasePromptDeploymentNodeDisplay
11
12
  from .search_node import BaseSearchNodeDisplay
12
13
  from .subworkflow_deployment_node import BaseSubworkflowDeploymentNodeDisplay
@@ -23,6 +24,7 @@ __all__ = [
23
24
  "BaseAPINodeDisplay",
24
25
  "BaseMapNodeDisplay",
25
26
  "BaseMergeNodeDisplay",
27
+ "BaseNoteNodeDisplay",
26
28
  "BaseSearchNodeDisplay",
27
29
  "BaseSubworkflowDeploymentNodeDisplay",
28
30
  "BaseTemplatingNodeDisplay",
@@ -1,13 +1,13 @@
1
1
  from uuid import UUID
2
2
  from typing import Any, ClassVar, Dict, Generic, Optional, TypeVar, cast
3
3
 
4
+ from vellum.workflows.nodes.displayable import APINode
5
+ from vellum.workflows.references.output import OutputReference
6
+ from vellum.workflows.types.core import JsonArray, JsonObject
4
7
  from vellum_ee.workflows.display.nodes.base_node_vellum_display import BaseNodeVellumDisplay
5
8
  from vellum_ee.workflows.display.nodes.utils import raise_if_descriptor
6
9
  from vellum_ee.workflows.display.nodes.vellum.utils import create_node_input
7
10
  from vellum_ee.workflows.display.types import WorkflowDisplayContext
8
- from vellum.workflows.nodes.displayable import APINode
9
- from vellum.workflows.references.output import OutputReference
10
- from vellum.workflows.types.core import JsonArray, JsonObject
11
11
 
12
12
  _APINodeType = TypeVar("_APINodeType", bound=APINode)
13
13
 
@@ -1,14 +1,14 @@
1
1
  from uuid import UUID
2
2
  from typing import ClassVar, Generic, Optional, TypeVar
3
3
 
4
- from vellum_ee.workflows.display.nodes.base_node_vellum_display import BaseNodeVellumDisplay
5
- from vellum_ee.workflows.display.nodes.utils import raise_if_descriptor
6
- from vellum_ee.workflows.display.nodes.vellum.utils import create_node_input
7
- from vellum_ee.workflows.display.types import WorkflowDisplayContext
8
4
  from vellum.workflows.nodes.displayable.code_execution_node import CodeExecutionNode
9
5
  from vellum.workflows.nodes.displayable.code_execution_node.utils import read_file_from_path
10
6
  from vellum.workflows.types.core import JsonObject
11
7
  from vellum.workflows.utils.vellum_variables import primitive_type_to_vellum_variable_type
8
+ from vellum_ee.workflows.display.nodes.base_node_vellum_display import BaseNodeVellumDisplay
9
+ from vellum_ee.workflows.display.nodes.utils import raise_if_descriptor
10
+ from vellum_ee.workflows.display.nodes.vellum.utils import create_node_input
11
+ from vellum_ee.workflows.display.types import WorkflowDisplayContext
12
12
 
13
13
  _CodeExecutionNodeType = TypeVar("_CodeExecutionNodeType", bound=CodeExecutionNode)
14
14