vellum-ai 1.3.8__py3-none-any.whl → 1.3.9__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 (33) hide show
  1. vellum/client/core/client_wrapper.py +2 -2
  2. vellum/client/reference.md +71 -0
  3. vellum/client/resources/workflows/client.py +80 -0
  4. vellum/client/resources/workflows/raw_client.py +98 -0
  5. vellum/client/types/vellum_error.py +2 -1
  6. vellum/client/types/vellum_error_request.py +2 -1
  7. vellum/workflows/utils/tests/test_vellum_variables.py +7 -1
  8. vellum/workflows/utils/vellum_variables.py +42 -3
  9. {vellum_ai-1.3.8.dist-info → vellum_ai-1.3.9.dist-info}/METADATA +1 -1
  10. {vellum_ai-1.3.8.dist-info → vellum_ai-1.3.9.dist-info}/RECORD +33 -33
  11. vellum_ee/workflows/display/editor/types.py +2 -0
  12. vellum_ee/workflows/display/nodes/base_node_display.py +42 -14
  13. vellum_ee/workflows/display/nodes/tests/test_base_node_display.py +64 -0
  14. vellum_ee/workflows/display/nodes/vellum/final_output_node.py +1 -1
  15. vellum_ee/workflows/display/nodes/vellum/retry_node.py +1 -1
  16. vellum_ee/workflows/display/nodes/vellum/tests/test_prompt_node.py +12 -12
  17. vellum_ee/workflows/display/nodes/vellum/tests/test_tool_calling_node.py +4 -4
  18. vellum_ee/workflows/display/nodes/vellum/try_node.py +1 -1
  19. vellum_ee/workflows/display/tests/test_base_workflow_display.py +46 -0
  20. vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_attributes_serialization.py +1 -1
  21. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_prompt_node_serialization.py +8 -8
  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_tool_calling_node_inline_workflow_serialization.py +2 -1
  25. vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_serialization.py +2 -1
  26. vellum_ee/workflows/display/utils/events.py +7 -1
  27. vellum_ee/workflows/display/utils/expressions.py +33 -19
  28. vellum_ee/workflows/display/utils/tests/test_events.py +4 -4
  29. vellum_ee/workflows/display/workflows/base_workflow_display.py +1 -1
  30. vellum_ee/workflows/display/workflows/tests/test_workflow_display.py +10 -10
  31. {vellum_ai-1.3.8.dist-info → vellum_ai-1.3.9.dist-info}/LICENSE +0 -0
  32. {vellum_ai-1.3.8.dist-info → vellum_ai-1.3.9.dist-info}/WHEEL +0 -0
  33. {vellum_ai-1.3.8.dist-info → vellum_ai-1.3.9.dist-info}/entry_points.txt +0 -0
@@ -27,10 +27,10 @@ class BaseClientWrapper:
27
27
 
28
28
  def get_headers(self) -> typing.Dict[str, str]:
29
29
  headers: typing.Dict[str, str] = {
30
- "User-Agent": "vellum-ai/1.3.8",
30
+ "User-Agent": "vellum-ai/1.3.9",
31
31
  "X-Fern-Language": "Python",
32
32
  "X-Fern-SDK-Name": "vellum-ai",
33
- "X-Fern-SDK-Version": "1.3.8",
33
+ "X-Fern-SDK-Version": "1.3.9",
34
34
  **(self.get_custom_headers() or {}),
35
35
  }
36
36
  if self._api_version is not None:
@@ -6426,6 +6426,77 @@ client.workflow_sandboxes.list_workflow_sandbox_examples()
6426
6426
  </details>
6427
6427
 
6428
6428
  ## Workflows
6429
+ <details><summary><code>client.workflows.<a href="src/vellum/resources/workflows/client.py">serialize_workflow_files</a>(...)</code></summary>
6430
+ <dl>
6431
+ <dd>
6432
+
6433
+ #### 📝 Description
6434
+
6435
+ <dl>
6436
+ <dd>
6437
+
6438
+ <dl>
6439
+ <dd>
6440
+
6441
+ Serialize files
6442
+ </dd>
6443
+ </dl>
6444
+ </dd>
6445
+ </dl>
6446
+
6447
+ #### 🔌 Usage
6448
+
6449
+ <dl>
6450
+ <dd>
6451
+
6452
+ <dl>
6453
+ <dd>
6454
+
6455
+ ```python
6456
+ from vellum import Vellum
6457
+
6458
+ client = Vellum(
6459
+ api_version="YOUR_API_VERSION",
6460
+ api_key="YOUR_API_KEY",
6461
+ )
6462
+ client.workflows.serialize_workflow_files(
6463
+ files={"files": {"key": "value"}},
6464
+ )
6465
+
6466
+ ```
6467
+ </dd>
6468
+ </dl>
6469
+ </dd>
6470
+ </dl>
6471
+
6472
+ #### ⚙️ Parameters
6473
+
6474
+ <dl>
6475
+ <dd>
6476
+
6477
+ <dl>
6478
+ <dd>
6479
+
6480
+ **files:** `typing.Dict[str, typing.Optional[typing.Any]]`
6481
+
6482
+ </dd>
6483
+ </dl>
6484
+
6485
+ <dl>
6486
+ <dd>
6487
+
6488
+ **request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
6489
+
6490
+ </dd>
6491
+ </dl>
6492
+ </dd>
6493
+ </dl>
6494
+
6495
+
6496
+ </dd>
6497
+ </dl>
6498
+ </details>
6499
+
6429
6500
  ## WorkspaceSecrets
6430
6501
  <details><summary><code>client.workspace_secrets.<a href="src/vellum/resources/workspace_secrets/client.py">retrieve</a>(...)</code></summary>
6431
6502
  <dl>
@@ -136,6 +136,42 @@ class WorkflowsClient:
136
136
  )
137
137
  return _response.data
138
138
 
139
+ def serialize_workflow_files(
140
+ self,
141
+ *,
142
+ files: typing.Dict[str, typing.Optional[typing.Any]],
143
+ request_options: typing.Optional[RequestOptions] = None,
144
+ ) -> typing.Dict[str, typing.Optional[typing.Any]]:
145
+ """
146
+ Serialize files
147
+
148
+ Parameters
149
+ ----------
150
+ files : typing.Dict[str, typing.Optional[typing.Any]]
151
+
152
+ request_options : typing.Optional[RequestOptions]
153
+ Request-specific configuration.
154
+
155
+ Returns
156
+ -------
157
+ typing.Dict[str, typing.Optional[typing.Any]]
158
+
159
+
160
+ Examples
161
+ --------
162
+ from vellum import Vellum
163
+
164
+ client = Vellum(
165
+ api_version="YOUR_API_VERSION",
166
+ api_key="YOUR_API_KEY",
167
+ )
168
+ client.workflows.serialize_workflow_files(
169
+ files={"files": {"key": "value"}},
170
+ )
171
+ """
172
+ _response = self._raw_client.serialize_workflow_files(files=files, request_options=request_options)
173
+ return _response.data
174
+
139
175
 
140
176
  class AsyncWorkflowsClient:
141
177
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
@@ -255,3 +291,47 @@ class AsyncWorkflowsClient:
255
291
  request_options=request_options,
256
292
  )
257
293
  return _response.data
294
+
295
+ async def serialize_workflow_files(
296
+ self,
297
+ *,
298
+ files: typing.Dict[str, typing.Optional[typing.Any]],
299
+ request_options: typing.Optional[RequestOptions] = None,
300
+ ) -> typing.Dict[str, typing.Optional[typing.Any]]:
301
+ """
302
+ Serialize files
303
+
304
+ Parameters
305
+ ----------
306
+ files : typing.Dict[str, typing.Optional[typing.Any]]
307
+
308
+ request_options : typing.Optional[RequestOptions]
309
+ Request-specific configuration.
310
+
311
+ Returns
312
+ -------
313
+ typing.Dict[str, typing.Optional[typing.Any]]
314
+
315
+
316
+ Examples
317
+ --------
318
+ import asyncio
319
+
320
+ from vellum import AsyncVellum
321
+
322
+ client = AsyncVellum(
323
+ api_version="YOUR_API_VERSION",
324
+ api_key="YOUR_API_KEY",
325
+ )
326
+
327
+
328
+ async def main() -> None:
329
+ await client.workflows.serialize_workflow_files(
330
+ files={"files": {"key": "value"}},
331
+ )
332
+
333
+
334
+ asyncio.run(main())
335
+ """
336
+ _response = await self._raw_client.serialize_workflow_files(files=files, request_options=request_options)
337
+ return _response.data
@@ -181,6 +181,55 @@ class RawWorkflowsClient:
181
181
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
182
182
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
183
183
 
184
+ def serialize_workflow_files(
185
+ self,
186
+ *,
187
+ files: typing.Dict[str, typing.Optional[typing.Any]],
188
+ request_options: typing.Optional[RequestOptions] = None,
189
+ ) -> HttpResponse[typing.Dict[str, typing.Optional[typing.Any]]]:
190
+ """
191
+ Serialize files
192
+
193
+ Parameters
194
+ ----------
195
+ files : typing.Dict[str, typing.Optional[typing.Any]]
196
+
197
+ request_options : typing.Optional[RequestOptions]
198
+ Request-specific configuration.
199
+
200
+ Returns
201
+ -------
202
+ HttpResponse[typing.Dict[str, typing.Optional[typing.Any]]]
203
+
204
+ """
205
+ _response = self._client_wrapper.httpx_client.request(
206
+ "v1/workflows/serialize",
207
+ base_url=self._client_wrapper.get_environment().default,
208
+ method="POST",
209
+ json={
210
+ "files": files,
211
+ },
212
+ headers={
213
+ "content-type": "application/json",
214
+ },
215
+ request_options=request_options,
216
+ omit=OMIT,
217
+ )
218
+ try:
219
+ if 200 <= _response.status_code < 300:
220
+ _data = typing.cast(
221
+ typing.Dict[str, typing.Optional[typing.Any]],
222
+ parse_obj_as(
223
+ type_=typing.Dict[str, typing.Optional[typing.Any]], # type: ignore
224
+ object_=_response.json(),
225
+ ),
226
+ )
227
+ return HttpResponse(response=_response, data=_data)
228
+ _response_json = _response.json()
229
+ except JSONDecodeError:
230
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
231
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
232
+
184
233
 
185
234
  class AsyncRawWorkflowsClient:
186
235
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
@@ -343,3 +392,52 @@ class AsyncRawWorkflowsClient:
343
392
  except JSONDecodeError:
344
393
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
345
394
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
395
+
396
+ async def serialize_workflow_files(
397
+ self,
398
+ *,
399
+ files: typing.Dict[str, typing.Optional[typing.Any]],
400
+ request_options: typing.Optional[RequestOptions] = None,
401
+ ) -> AsyncHttpResponse[typing.Dict[str, typing.Optional[typing.Any]]]:
402
+ """
403
+ Serialize files
404
+
405
+ Parameters
406
+ ----------
407
+ files : typing.Dict[str, typing.Optional[typing.Any]]
408
+
409
+ request_options : typing.Optional[RequestOptions]
410
+ Request-specific configuration.
411
+
412
+ Returns
413
+ -------
414
+ AsyncHttpResponse[typing.Dict[str, typing.Optional[typing.Any]]]
415
+
416
+ """
417
+ _response = await self._client_wrapper.httpx_client.request(
418
+ "v1/workflows/serialize",
419
+ base_url=self._client_wrapper.get_environment().default,
420
+ method="POST",
421
+ json={
422
+ "files": files,
423
+ },
424
+ headers={
425
+ "content-type": "application/json",
426
+ },
427
+ request_options=request_options,
428
+ omit=OMIT,
429
+ )
430
+ try:
431
+ if 200 <= _response.status_code < 300:
432
+ _data = typing.cast(
433
+ typing.Dict[str, typing.Optional[typing.Any]],
434
+ parse_obj_as(
435
+ type_=typing.Dict[str, typing.Optional[typing.Any]], # type: ignore
436
+ object_=_response.json(),
437
+ ),
438
+ )
439
+ return AsyncHttpResponse(response=_response, data=_data)
440
+ _response_json = _response.json()
441
+ except JSONDecodeError:
442
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
443
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -8,8 +8,9 @@ from .vellum_error_code_enum import VellumErrorCodeEnum
8
8
 
9
9
 
10
10
  class VellumError(UniversalBaseModel):
11
- message: str
12
11
  code: VellumErrorCodeEnum
12
+ message: str
13
+ raw_data: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
13
14
 
14
15
  if IS_PYDANTIC_V2:
15
16
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -8,8 +8,9 @@ from .vellum_error_code_enum import VellumErrorCodeEnum
8
8
 
9
9
 
10
10
  class VellumErrorRequest(UniversalBaseModel):
11
- message: str
12
11
  code: VellumErrorCodeEnum
12
+ message: str
13
+ raw_data: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
13
14
 
14
15
  if IS_PYDANTIC_V2:
15
16
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -1,7 +1,7 @@
1
1
  import pytest
2
2
  from typing import List, Optional
3
3
 
4
- from vellum import ChatMessage, SearchResult, VellumAudio, VellumDocument, VellumImage
4
+ from vellum import ChatMessage, SearchResult, VellumAudio, VellumDocument, VellumImage, VellumValue
5
5
  from vellum.workflows.types.core import Json
6
6
  from vellum.workflows.utils.vellum_variables import (
7
7
  primitive_type_to_vellum_variable_type,
@@ -30,6 +30,12 @@ from vellum.workflows.utils.vellum_variables import (
30
30
  (Optional[VellumAudio], "AUDIO"),
31
31
  (VellumImage, "IMAGE"),
32
32
  (Optional[VellumImage], "IMAGE"),
33
+ (list[ChatMessage], "CHAT_HISTORY"),
34
+ (Optional[list[ChatMessage]], "CHAT_HISTORY"),
35
+ (list[SearchResult], "SEARCH_RESULTS"),
36
+ (Optional[list[SearchResult]], "SEARCH_RESULTS"),
37
+ (list[VellumValue], "ARRAY"),
38
+ (Optional[list[VellumValue]], "ARRAY"),
33
39
  ],
34
40
  )
35
41
  def test_primitive_type_to_vellum_variable_type(type_, expected):
@@ -1,5 +1,5 @@
1
1
  import typing
2
- from typing import List, Tuple, Type, Union, get_args, get_origin
2
+ from typing import Any, List, Tuple, Type, Union, get_args, get_origin
3
3
 
4
4
  from vellum import (
5
5
  ChatMessage,
@@ -86,6 +86,11 @@ def primitive_type_to_vellum_variable_type(type_: Union[Type, BaseDescriptor]) -
86
86
  return "DOCUMENT"
87
87
  elif _is_type_optionally_in(type_, (VellumError, VellumErrorRequest)):
88
88
  return "ERROR"
89
+
90
+ builtin_list_type = _builtin_list_to_vellum_type(type_)
91
+ if builtin_list_type:
92
+ return builtin_list_type
93
+
89
94
  elif _is_type_optionally_in(type_, (List[ChatMessage], List[ChatMessageRequest])):
90
95
  return "CHAT_HISTORY"
91
96
  elif _is_type_optionally_in(type_, (List[SearchResult], List[SearchResultRequest])):
@@ -128,7 +133,7 @@ def vellum_variable_type_to_openapi_type(vellum_type: VellumVariableType) -> str
128
133
  return "object"
129
134
 
130
135
 
131
- def _is_type_optionally_equal(type_: Type, target_type: Type) -> bool:
136
+ def _is_type_optionally_equal(type_: Type, target_type: Any) -> bool:
132
137
  if type_ == target_type:
133
138
  return True
134
139
 
@@ -147,7 +152,7 @@ def _is_type_optionally_equal(type_: Type, target_type: Type) -> bool:
147
152
  return _is_type_optionally_equal(source_type, target_type)
148
153
 
149
154
 
150
- def _is_type_optionally_in(type_: Type, target_types: Tuple[Type, ...]) -> bool:
155
+ def _is_type_optionally_in(type_: Type, target_types: Tuple[Any, ...]) -> bool:
151
156
  return any(_is_type_optionally_equal(type_, target_type) for target_type in target_types)
152
157
 
153
158
 
@@ -181,3 +186,37 @@ def _is_subtype(source_type: Type, target_type: Type) -> bool:
181
186
  return True
182
187
 
183
188
  return False
189
+
190
+
191
+ def _unwrap_optional(type_: Type) -> Type:
192
+ origin = get_origin(type_)
193
+ if origin is typing.Union:
194
+ args = get_args(type_)
195
+ if len(args) == 2:
196
+ if args[1] is type(None):
197
+ return args[0]
198
+ if args[0] is type(None):
199
+ return args[1]
200
+ return type_
201
+
202
+
203
+ def _builtin_list_to_vellum_type(type_: Type) -> Union[str, None]:
204
+ candidate = _unwrap_optional(type_)
205
+ origin = get_origin(candidate)
206
+ if origin in (list, typing.List):
207
+ args = get_args(candidate)
208
+ if len(args) == 1:
209
+ item_type = args[0]
210
+ if _is_type_optionally_equal(item_type, ChatMessage) or _is_type_optionally_equal(
211
+ item_type, ChatMessageRequest
212
+ ):
213
+ return "CHAT_HISTORY"
214
+ if _is_type_optionally_equal(item_type, SearchResult) or _is_type_optionally_equal(
215
+ item_type, SearchResultRequest
216
+ ):
217
+ return "SEARCH_RESULTS"
218
+ if _is_type_optionally_equal(item_type, VellumValue) or _is_type_optionally_equal(
219
+ item_type, VellumValueRequest
220
+ ):
221
+ return "ARRAY"
222
+ return None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vellum-ai
3
- Version: 1.3.8
3
+ Version: 1.3.9
4
4
  Summary:
5
5
  License: MIT
6
6
  Requires-Python: >=3.9,<4.0
@@ -27,13 +27,13 @@ vellum_ee/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
27
27
  vellum_ee/workflows/display/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
28
  vellum_ee/workflows/display/base.py,sha256=R3f2T8FlZrXn2FawAmpVuLB3fKFWw11mCUulWAyIKA0,1912
29
29
  vellum_ee/workflows/display/editor/__init__.py,sha256=MSAgY91xCEg2neH5d8jXx5wRdR962ftZVa6vO9BGq9k,167
30
- vellum_ee/workflows/display/editor/types.py,sha256=JXpd8E7dsInbDp5T7ra0-T6XvdQB9RAHhZ1Lc8_0Fk4,601
30
+ vellum_ee/workflows/display/editor/types.py,sha256=rmaNXkNZUNRgK-mJJ_g1-Fm3OGxoQfqEB7zn-zzgJtc,664
31
31
  vellum_ee/workflows/display/exceptions.py,sha256=Oys39dHoW-s-1dnlRSZxTntMq8_macj-b2CT_6dqzJs,355
32
32
  vellum_ee/workflows/display/nodes/__init__.py,sha256=jI1aPBQf8DkmrYoZ4O-wR1duqZByOf5mDFmo_wFJPE4,307
33
- vellum_ee/workflows/display/nodes/base_node_display.py,sha256=98vszulLRvYz0kAh7ZEOeWOqzMtlpnOZM2lAViOUieA,18393
33
+ vellum_ee/workflows/display/nodes/base_node_display.py,sha256=TVzb7NMGsid4HMss7iAeUwdxYXJ7-cW5KBiQXmFA2ns,19453
34
34
  vellum_ee/workflows/display/nodes/get_node_display_class.py,sha256=jI_kUi9LnNLDpY63QtlC4TfN8P571VN4LpzH0I1ZtLk,1149
35
35
  vellum_ee/workflows/display/nodes/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
- vellum_ee/workflows/display/nodes/tests/test_base_node_display.py,sha256=Cg5Ker3amAn2wraeNW4t_puvIZdvRB-P8XIL-p4GGL0,3571
36
+ vellum_ee/workflows/display/nodes/tests/test_base_node_display.py,sha256=JLa9nlG38dLfCo1Y8ISsJ21hrfDyy4-ae3pZ9H01yFs,5578
37
37
  vellum_ee/workflows/display/nodes/types.py,sha256=St1BB6no528OyELGiyRabWao0GGw6mLhstQAvEACbGk,247
38
38
  vellum_ee/workflows/display/nodes/utils.py,sha256=sloya5TpXsnot1HURc9L51INwflRqUzHxRVnCS9Cd-4,973
39
39
  vellum_ee/workflows/display/nodes/vellum/__init__.py,sha256=nUIgH2s0-7IbQRNrBhLPyRNe8YIrx3Yo9HeeW-aXXFk,1668
@@ -42,7 +42,7 @@ vellum_ee/workflows/display/nodes/vellum/base_adornment_node.py,sha256=FHhPoGmmn
42
42
  vellum_ee/workflows/display/nodes/vellum/code_execution_node.py,sha256=GfwA2Tn0OpdIUiPW9tD2dyv33e3M8yhGt9VfOeN81bU,5146
43
43
  vellum_ee/workflows/display/nodes/vellum/conditional_node.py,sha256=dtO9A-rjbDEJrywwrOxwEXahqrW-S493OIDHOti9Sjs,11498
44
44
  vellum_ee/workflows/display/nodes/vellum/error_node.py,sha256=8tSb8qGVoRIELubu0qPeoDlt1LpiIqc6d9_30GWRd_k,2266
45
- vellum_ee/workflows/display/nodes/vellum/final_output_node.py,sha256=eeu8i01HbLDvO3KwHnAfaMrYKiEchNAdDdjufjCi6OU,2991
45
+ vellum_ee/workflows/display/nodes/vellum/final_output_node.py,sha256=z4oeTgKnMGVaGig8XOZm5B_xYL4H7zweYlFweCbhnyA,3000
46
46
  vellum_ee/workflows/display/nodes/vellum/guardrail_node.py,sha256=9_AslWjzj4RHH2sq3SIaq9FU0NCg7ex5TIWrNMybqXg,2173
47
47
  vellum_ee/workflows/display/nodes/vellum/inline_prompt_node.py,sha256=20tahU75zKImm6sAwLIYA9VEC6aNATjZdwA2beNnCIk,11949
48
48
  vellum_ee/workflows/display/nodes/vellum/inline_subworkflow_node.py,sha256=qy_EtBIAHIhju68PA-skm-WbFnaNEuDoxkSMWRl2SpQ,5870
@@ -50,7 +50,7 @@ vellum_ee/workflows/display/nodes/vellum/map_node.py,sha256=kwLqptup7bzYUDkGDbpc
50
50
  vellum_ee/workflows/display/nodes/vellum/merge_node.py,sha256=xMHaPfTSZWYprQenlHm2g47u0a5O9Me_dhAjfqo8nKQ,3116
51
51
  vellum_ee/workflows/display/nodes/vellum/note_node.py,sha256=6PcAFA_EJn7vEMdqgoRjYTLHwnXCrJv80B10zuUx4jE,1026
52
52
  vellum_ee/workflows/display/nodes/vellum/prompt_deployment_node.py,sha256=uo4YZRV48iX4peGAA1xkGniSPrepywvW_gS7codt-VQ,3378
53
- vellum_ee/workflows/display/nodes/vellum/retry_node.py,sha256=3tkrZu7LczrD6KwdtU3g3xGOyVR3KKSbG5_H3Lbqvho,3274
53
+ vellum_ee/workflows/display/nodes/vellum/retry_node.py,sha256=NtCvRblVJDSpbm9qCNZ-zgJ-iKEc5tOrQbbtwjrDr_Q,3283
54
54
  vellum_ee/workflows/display/nodes/vellum/search_node.py,sha256=RMBW2cKbwCBPXqrkEo8zAHlMltotZJz3S8QjWnBgiEg,12161
55
55
  vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py,sha256=n6gaTWOkiycUExbO5Vk_ZYNXRW6_V4LNfXdxPDevWIs,2800
56
56
  vellum_ee/workflows/display/nodes/vellum/templating_node.py,sha256=NwyFvpkk87nBI5KbncAVQZdyimvN2q4Ko7hDg7jmbnA,3181
@@ -61,23 +61,23 @@ vellum_ee/workflows/display/nodes/vellum/tests/test_error_node.py,sha256=540FoWM
61
61
  vellum_ee/workflows/display/nodes/vellum/tests/test_inline_subworkflow_node.py,sha256=SKOYan-dxY4gsO0R4JyQUyWrABHBN8XImKw9Eeo4wGo,3535
62
62
  vellum_ee/workflows/display/nodes/vellum/tests/test_note_node.py,sha256=uiMB0cOxKZzos7YKnj4ef4DFa2bOvZJWIv-hfbUV6Go,1218
63
63
  vellum_ee/workflows/display/nodes/vellum/tests/test_prompt_deployment_node.py,sha256=54oatuBB98Dfbr08NqZU8ZNhfQdJWhODIwjsegPPJJw,6376
64
- vellum_ee/workflows/display/nodes/vellum/tests/test_prompt_node.py,sha256=h3rXIfB349w11cMgNpqEWCI3ucTsTb30cWskXN8FoV0,14053
64
+ vellum_ee/workflows/display/nodes/vellum/tests/test_prompt_node.py,sha256=kXp0ZqTXEsEvSs2emM1a5C0-y6KZKhj0iWTCNtZ_8m8,14053
65
65
  vellum_ee/workflows/display/nodes/vellum/tests/test_retry_node.py,sha256=WyqX_g-jN4BOVHIto_HDRVb-uWCmDTaiCwHho4uYKOM,1954
66
66
  vellum_ee/workflows/display/nodes/vellum/tests/test_search_node.py,sha256=KvByxgbUkVyfPIVxTUBUk6a92JiJMi8eReZWxzfPExU,3864
67
67
  vellum_ee/workflows/display/nodes/vellum/tests/test_subworkflow_deployment_node.py,sha256=BUzHJgjdWnPeZxjFjHfDBKnbFjYjnbXPjc-1hne1B2Y,3965
68
68
  vellum_ee/workflows/display/nodes/vellum/tests/test_templating_node.py,sha256=LSk2gx9TpGXbAqKe8dggQW8yJZqj-Cf0EGJFeGGlEcw,3321
69
- vellum_ee/workflows/display/nodes/vellum/tests/test_tool_calling_node.py,sha256=0D1q5yyt5fr1sC2UgBC-1OWXvGcwRx40xvpM7qXyDIA,24819
69
+ vellum_ee/workflows/display/nodes/vellum/tests/test_tool_calling_node.py,sha256=GGEthHhl819cs5QJGNL47bC6wdQpkf-S_EXYhtahQJA,24819
70
70
  vellum_ee/workflows/display/nodes/vellum/tests/test_try_node.py,sha256=Khjsb53PKpZuyhKoRMgKAL45eGp5hZqXvHmVeQWRw4w,2289
71
71
  vellum_ee/workflows/display/nodes/vellum/tests/test_utils.py,sha256=rHybfUAWwa0LlstQTNthGb-zYXrUCLADFtn_4SGsbw8,4807
72
- vellum_ee/workflows/display/nodes/vellum/try_node.py,sha256=47fOnSCEFnY8th9m2yTYlgnoUuzgyRZdjg-SXwn--lk,4079
72
+ vellum_ee/workflows/display/nodes/vellum/try_node.py,sha256=SspL3yL8e1HvqwDJ7Vt11ZOYxEjT2jbmEFKs8M57VvE,4088
73
73
  vellum_ee/workflows/display/nodes/vellum/utils.py,sha256=oICunzyaXPs0tYnW5zH1r93Bx35MSH7mcD-n0DEWRok,4978
74
74
  vellum_ee/workflows/display/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
- vellum_ee/workflows/display/tests/test_base_workflow_display.py,sha256=fh-F7TmzOSiWEBwhtd3Nm_Ix9v5W4LhMNhiIxT7G100,15990
75
+ vellum_ee/workflows/display/tests/test_base_workflow_display.py,sha256=-LYQw5nWqTehhlCN0IxfurPNFyGQJB4KnlxwJzQozFI,17624
76
76
  vellum_ee/workflows/display/tests/workflow_serialization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
77
  vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
78
  vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/conftest.py,sha256=Y-ajeT65b5varmrZCw6L3hir4hJCFq-eO0jZfRcrs7g,1886
79
79
  vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_adornments_serialization.py,sha256=bD9AtBo7Pz1Drbh420NR0VSiHBfExw_UtNRPCiAqki0,13967
80
- vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_attributes_serialization.py,sha256=xEGh4RXGMR06M5s6rD6GjsloNslsRaH4UhIg7Djyw7Q,25144
80
+ vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_attributes_serialization.py,sha256=TwJ8N8H2gJJ-gQ5YURNoCBrykN4pKxlrloEtkRHPlzY,25144
81
81
  vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_outputs_serialization.py,sha256=O1CIKMmRTaMaT3IhjwCAiMz1ZThPg9lAUbSiZkx_E8c,6321
82
82
  vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_ports_serialization.py,sha256=fPXcX-tWQ0UMuEyOFAylgi7pWiE7lZWk9vrShlTExik,40053
83
83
  vellum_ee/workflows/display/tests/workflow_serialization/generic_nodes/test_trigger_serialization.py,sha256=FLvcD8eoABHUPv08oSpIp_P-65sw2gl4whMXEJJj4f8,6785
@@ -88,9 +88,9 @@ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_default_stat
88
88
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_error_node_serialization.py,sha256=03Mk8OE3kWcoZW9lNBe7v4KThCYN-pXg5Rjbkfx-jOQ,6031
89
89
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_generic_node_serialization.py,sha256=-T0cd2jx1bC0ZNtAESF78fnYD_0nOqo8zMMLwRHUTRM,6227
90
90
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_guardrail_node_serialization.py,sha256=LnZp1YXDn-AaaxiYgxrhCQeH-rLgmlu_r_lvM65EQ5w,7517
91
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_prompt_node_serialization.py,sha256=9w90pk1DzX2PDRML401bZpD9hdTW53Dw5oGb58mxpiw,26358
92
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py,sha256=yKmOyunzt5_0cUcqhvCmV2pu81TTkshVi_uN3yt76Wc,21816
93
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=W4--Ldih7mRMnfyJ9G7kdyeoKkeebSu_5d33TJQzShU,16735
91
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_prompt_node_serialization.py,sha256=-A9CAnzIhPMn44l_dwZcofBXBPNFa-oHke9p0w3W5PA,26358
92
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_inline_subworkflow_serialization.py,sha256=gn7kisqAEG9JCZ18V88qMGvlcsTulSwpWvvEwjCfh6Y,21871
93
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_map_node_serialization.py,sha256=ALNOn5BdcWxw0myi6pXi5IwWtTE9H2CGrodP1BANuAg,16790
94
94
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_merge_node_serialization.py,sha256=UnfWTfKN8DrOLpjCfWMgENJBjgNLWcRVfexbwERKY-c,8501
95
95
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_prompt_deployment_serialization.py,sha256=SGlBiwohTTuf7oXqO3R1lP6u7gPea8Elt1CpZU_W9Bk,21482
96
96
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_serialization.py,sha256=JKfYNBCmy7n6v2fd6NyYGHI1_TJRlfDNWiZMvHrdCWU,13079
@@ -98,10 +98,10 @@ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_
98
98
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py,sha256=ddPa8gNBYH2tWk92ymngY7M8n74J-8CEre50HISP_-g,7877
99
99
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py,sha256=A7Ef8P1-Nyvsb97bumKT9W2R1LuZaY9IKFV-7iRueog,4010
100
100
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_composio_serialization.py,sha256=oVXCjkU0G56QJmqnd_xIwF3D9bhJwALFibM2wmRhwUk,3739
101
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_inline_workflow_serialization.py,sha256=Sg82qV5NCzQDy-RD90hA6QaHgFHOq6ESNkbWXygsnNw,26367
101
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_inline_workflow_serialization.py,sha256=1GiF3XgJ85vE05_nZFo66snNuqTt0p1c22gNI9c_BXY,26442
102
102
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_mcp_serialization.py,sha256=QhQbijeCnFeX1i3SMjHJg2WVAEt5JEO3dhFRv-mofdA,2458
103
103
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_parent_input.py,sha256=__LX4cuzbyZp_1wc-SI8X_J0tnhOkCEmRVUWLKI5aQM,4578
104
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_serialization.py,sha256=cKaxme5vUIvKa8aBU7xdeFxXF9wVZ5fW3T5Ie5vToU0,10152
104
+ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_serialization.py,sha256=VB5c6U0GRUxPm9FbzgKYIpoZfoIU9szAWUQJ5L-4Lug,10187
105
105
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_workflow_deployment_serialization.py,sha256=XIZZr5POo2NLn2uEWm9EC3rejeBMoO4X-JtzTH6mvp4,4074
106
106
  vellum_ee/workflows/display/tests/workflow_serialization/test_basic_try_node_serialization.py,sha256=pLCyMScV88DTBXRH7jXaXOEA1GBq8NIipCUFwIAWnwI,2771
107
107
  vellum_ee/workflows/display/tests/workflow_serialization/test_complex_terminal_node_serialization.py,sha256=exT7U-axwtYgFylagScflSQLJEND51qIAx2UATju6JM,6023
@@ -111,19 +111,19 @@ vellum_ee/workflows/display/tests/workflow_serialization/test_workflow_input_par
111
111
  vellum_ee/workflows/display/types.py,sha256=cyZruu4sXAdHjwuFc7dydM4DcFNf-pp_CmulXItxac4,3679
112
112
  vellum_ee/workflows/display/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
113
113
  vellum_ee/workflows/display/utils/auto_layout.py,sha256=f4GiLn_LazweupfqTpubcdtdfE_vrOcmZudSsnYIY9E,3906
114
- vellum_ee/workflows/display/utils/events.py,sha256=MEG2BT6GgAzkbv1dMaFpov5OShtaAZeAb1-g3xDFsAM,1826
114
+ vellum_ee/workflows/display/utils/events.py,sha256=DE33uoKW78BZtITJ6L22dMZN3KR1BuZBVC98C_gIyzU,1943
115
115
  vellum_ee/workflows/display/utils/exceptions.py,sha256=LSwwxCYNxFkf5XMUcFkaZKpQ13OSrI7y_bpEUwbKVk0,169
116
- vellum_ee/workflows/display/utils/expressions.py,sha256=80TcSWhT249cvT_NRobwelWCLWKgeFQEpXCvjFq0fwY,19743
116
+ vellum_ee/workflows/display/utils/expressions.py,sha256=UoZKiZy2Rhx5Hp2e2J2ipSdQCIQfkAOL_tIxHqLCrAM,20299
117
117
  vellum_ee/workflows/display/utils/registry.py,sha256=1qXiBTdsnro6FeCX0FGBEK7CIf6wa--Jt50iZ_nEp_M,3460
118
118
  vellum_ee/workflows/display/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
119
119
  vellum_ee/workflows/display/utils/tests/test_auto_layout.py,sha256=vfXI769418s9vda5Gb5NFBH747WMOwSgHRXeLCTLVm8,2356
120
- vellum_ee/workflows/display/utils/tests/test_events.py,sha256=Qze6wEmFJx23_sKQhX-i329apWgMeS9zTptWlRca6Ko,4528
120
+ vellum_ee/workflows/display/utils/tests/test_events.py,sha256=42IEBnMbaQrH8gigw5hXIt_kG3rVvrSMop9QYiL2xDs,4586
121
121
  vellum_ee/workflows/display/utils/vellum.py,sha256=sZwU0KdmZZTKWW62SyxJTl2tC8tN6p_BpZ-lDoinV-U,5670
122
122
  vellum_ee/workflows/display/vellum.py,sha256=J2mdJZ1sdLW535DDUkq_Vm8Z572vhuxHxVZF9deKSdk,391
123
123
  vellum_ee/workflows/display/workflows/__init__.py,sha256=JTB9ObEV3l4gGGdtfBHwVJtTTKC22uj-a-XjTVwXCyA,148
124
- vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=HEwhGlQ6AllU_SpGSVCYgRc0RXev4iuHxXX3Rl18Xzs,43674
124
+ vellum_ee/workflows/display/workflows/base_workflow_display.py,sha256=4aC042Fmy9h-QUD6Z6inLbrR-7wE0t_V3NMb44Y0wek,43692
125
125
  vellum_ee/workflows/display/workflows/get_vellum_workflow_display_class.py,sha256=gxz76AeCqgAZ9D2lZeTiZzxY9eMgn3qOSfVgiqYcOh8,2028
126
- vellum_ee/workflows/display/workflows/tests/test_workflow_display.py,sha256=pb7BTH-ivRnya1LQU3j-MApWk_m8POpPNOdD0oEK82A,37847
126
+ vellum_ee/workflows/display/workflows/tests/test_workflow_display.py,sha256=OKf_WVoPkYPrielOz8CyI5AjWt9MS2nSbWQKpF7HSLI,37847
127
127
  vellum_ee/workflows/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
128
  vellum_ee/workflows/server/virtual_file_loader.py,sha256=7JphJcSO3H85qiC2DpFfBWjC3JjrbRmoynBC6KKHVsA,2710
129
129
  vellum_ee/workflows/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -155,7 +155,7 @@ vellum/client/README.md,sha256=flqu57ubZNTfpq60CdLtJC9gp4WEkyjb_n_eZ4OYf9w,6497
155
155
  vellum/client/__init__.py,sha256=T5Ht_w-Mk_9nzGqdadhQB8V20M0vYj7am06ut0A3P1o,73401
156
156
  vellum/client/core/__init__.py,sha256=lTcqUPXcx4112yLDd70RAPeqq6tu3eFMe1pKOqkW9JQ,1562
157
157
  vellum/client/core/api_error.py,sha256=44vPoTyWN59gonCIZMdzw7M1uspygiLnr3GNFOoVL2Q,614
158
- vellum/client/core/client_wrapper.py,sha256=3jamH9TZmnQVnQ_3AONYmIgWDW0mHBDzFiOfpCYnSXk,2840
158
+ vellum/client/core/client_wrapper.py,sha256=yiW8T6LXnqj5RVczNfHBZ2L3TMA_MWurdCwV6hFZPw8,2840
159
159
  vellum/client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
160
160
  vellum/client/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
161
161
  vellum/client/core/force_multipart.py,sha256=awxh5MtcRYe74ehY8U76jzv6fYM_w_D3Rur7KQQzSDk,429
@@ -176,7 +176,7 @@ vellum/client/errors/not_found_error.py,sha256=YrqVM0oc3qkQbFbmmm6xr300VGfUNxMSy
176
176
  vellum/client/errors/too_many_requests_error.py,sha256=SJJemdgUlQHV_VpxK8UfFNexgZebNT5_MTOeQs6oVgc,397
177
177
  vellum/client/errors/unauthorized_error.py,sha256=waPl5Swiqsk3FQK-Lljzx4KDh4RPZ0wL6BLHjM8onQ8,394
178
178
  vellum/client/raw_client.py,sha256=cmMR0t87iUYvkIE9L4g0dcCmw3uUQNze9rD9CBv5rzs,113481
179
- vellum/client/reference.md,sha256=IS1XNL62s3_Xz49ncvPJVZNvOMKyi36AYp2gYBt7xx8,95967
179
+ vellum/client/reference.md,sha256=2t9tdvJPj80W63POYe4Eyw1zoioJQmSwspbZIaJgX5o,96761
180
180
  vellum/client/resources/__init__.py,sha256=R10JFtO6U6QRvNubrmDIjncT7e5q4AiOKjXSK4wFuXc,1609
181
181
  vellum/client/resources/ad_hoc/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
182
182
  vellum/client/resources/ad_hoc/client.py,sha256=v5I_YzJaaPezsE4KVuMSUXJISstKuJ_9-VUeXakIJhw,14353
@@ -242,8 +242,8 @@ vellum/client/resources/workflow_sandboxes/raw_client.py,sha256=iQpaFR-D96ygLLh4
242
242
  vellum/client/resources/workflow_sandboxes/types/__init__.py,sha256=mZxwNpOmBfllmNZrhp8e_M62hUFI73B2fNlvgG8vi3Y,232
243
243
  vellum/client/resources/workflow_sandboxes/types/list_workflow_sandbox_examples_request_tag.py,sha256=TEwWit20W3X-zWPPLAhmUG05UudG9gaBSJ4Q4-rNJws,188
244
244
  vellum/client/resources/workflows/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
245
- vellum/client/resources/workflows/client.py,sha256=QggcuBCRJ5LdiROPT45F8bLZL9kFcWkPm9PBN_3wA1E,8275
246
- vellum/client/resources/workflows/raw_client.py,sha256=R0uLlLudu-YNiqIhieBcj1wQIVkBvNEa8E7Bk-szGTI,13558
245
+ vellum/client/resources/workflows/client.py,sha256=vEu33ooKfiZs-Uj0xxAwKweABoXBgI39TIN0HSuq0J4,10433
246
+ vellum/client/resources/workflows/raw_client.py,sha256=4-4YRpl2v0AOzgZl1E-fVOX18VVsa-he8d3imTEtWdo,17187
247
247
  vellum/client/resources/workspace_secrets/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
248
248
  vellum/client/resources/workspace_secrets/client.py,sha256=rKyHM9EJalA0adkQ0SDN5CmXjiddgVCO73y7Q4qqRP0,5722
249
249
  vellum/client/resources/workspace_secrets/raw_client.py,sha256=ZfiNd1NisolmK07QPyojW_KFlIWpnjVNLA8Aq5JC-zQ,7832
@@ -800,9 +800,9 @@ vellum/client/types/vellum_audio_request.py,sha256=vtkd49BVlLrY9UF3Yk52P5sDbtdY7
800
800
  vellum/client/types/vellum_code_resource_definition.py,sha256=XdueTR342BDjevZ3ktJJI99RqRED4A5SUOyzPt2K6us,661
801
801
  vellum/client/types/vellum_document.py,sha256=qwXqMS2Eud2a5KmF8QHhU_vJzDX0g5cesrCpmBqREsA,604
802
802
  vellum/client/types/vellum_document_request.py,sha256=P9vA7ZDNeaHNlMqyzfl-ZD4bpdf-xA5mH8R1QuOAmOY,611
803
- vellum/client/types/vellum_error.py,sha256=C2nOwYaKh1DdQE32y45SkD8kLnEPvWQlm8khYdsRjS4,607
803
+ vellum/client/types/vellum_error.py,sha256=G4WSD-w_skoDDnsAt-TtImt-hZT-Sc8LjHvERBUVnhE,691
804
804
  vellum/client/types/vellum_error_code_enum.py,sha256=OtW7fuM3RrRIDHbbJtk2FxPf70JjP4XYCBdc6lKPIVA,330
805
- vellum/client/types/vellum_error_request.py,sha256=1kIZ_pAOBQlESbwZK-t5uRuYZp0U1X7sfpWIUYZOYTQ,614
805
+ vellum/client/types/vellum_error_request.py,sha256=7l4Ux6wj3C9BdSXUPBrtxECsAirmvaLU42Y23VqncBU,698
806
806
  vellum/client/types/vellum_image.py,sha256=LAGUYBDsT0bmMOqgbaeCTCy2w4zAeHEyUIgPtmdjjJ4,601
807
807
  vellum/client/types/vellum_image_request.py,sha256=6DoI2AdJIG8NShHSslpHvsFUw5PwIMconjlHSipOP5Q,608
808
808
  vellum/client/types/vellum_node_execution_event.py,sha256=-MXat2wAZx4sx3JRp7gwJIOInPNwPMDpZmXtP8NC3O8,736
@@ -1971,9 +1971,9 @@ vellum/workflows/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
1971
1971
  vellum/workflows/utils/tests/test_functions.py,sha256=TlNhD0OBJ-aeYn4qUqmApuajkx9sJx0lIQRMfT8Xf0w,23688
1972
1972
  vellum/workflows/utils/tests/test_names.py,sha256=DnRRnuORxQXx9ESegCzkxiWcHy2_bBi7lXgbFi3FZK8,757
1973
1973
  vellum/workflows/utils/tests/test_uuids.py,sha256=i77ABQ0M3S-aFLzDXHJq_yr5FPkJEWCMBn1HJ3DObrE,437
1974
- vellum/workflows/utils/tests/test_vellum_variables.py,sha256=vbnKgm41aB5OXlO-ZIPbhQ6xDiZkT8KMxCLqz4zocWY,1791
1974
+ vellum/workflows/utils/tests/test_vellum_variables.py,sha256=X7b-bbN3bFRx0WG31bowcaOgsXxEPYnh2sgpsqgKIsQ,2096
1975
1975
  vellum/workflows/utils/uuids.py,sha256=IaZQANz7fhF7la0_J1O50Y6D2PIYv_taRDTRzBT9aWw,1284
1976
- vellum/workflows/utils/vellum_variables.py,sha256=YHLNiQGWDNssGH1FQoG9Z1jUFZ-zYebWqTLBG4cS-Fg,5837
1976
+ vellum/workflows/utils/vellum_variables.py,sha256=Tgv09yYROgq8QZbrKKIOEdg0IQ8Vfgz_vRjY4tYzaTQ,7152
1977
1977
  vellum/workflows/utils/zip.py,sha256=HVg_YZLmBOTXKaDV3Xhaf3V6sYnfqqZXQ8CpuafkbPY,1181
1978
1978
  vellum/workflows/vellum_client.py,sha256=xkfoucodxNK5JR2-lbRqZx3xzDgExWkP6kySrpi_Ubc,1079
1979
1979
  vellum/workflows/workflows/__init__.py,sha256=KY45TqvavCCvXIkyCFMEc0dc6jTMOUci93U2DUrlZYc,66
@@ -1982,8 +1982,8 @@ vellum/workflows/workflows/event_filters.py,sha256=GSxIgwrX26a1Smfd-6yss2abGCnad
1982
1982
  vellum/workflows/workflows/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1983
1983
  vellum/workflows/workflows/tests/test_base_workflow.py,sha256=ptMntHzVyy8ZuzNgeTuk7hREgKQ5UBdgq8VJFSGaW4Y,20832
1984
1984
  vellum/workflows/workflows/tests/test_context.py,sha256=VJBUcyWVtMa_lE5KxdhgMu0WYNYnUQUDvTF7qm89hJ0,2333
1985
- vellum_ai-1.3.8.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
1986
- vellum_ai-1.3.8.dist-info/METADATA,sha256=KV_O-jG8Vwr7C8sWo7lhOV_jCflTi2AJQJKTBkxftN8,5547
1987
- vellum_ai-1.3.8.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1988
- vellum_ai-1.3.8.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
1989
- vellum_ai-1.3.8.dist-info/RECORD,,
1985
+ vellum_ai-1.3.9.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
1986
+ vellum_ai-1.3.9.dist-info/METADATA,sha256=uOjA8lJ-F41325oLMigUN2TZ7A4Kuyi9d-fsQ6rRRB4,5547
1987
+ vellum_ai-1.3.9.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1988
+ vellum_ai-1.3.9.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
1989
+ vellum_ai-1.3.9.dist-info/RECORD,,
@@ -21,3 +21,5 @@ class NodeDisplayData(UniversalBaseModel):
21
21
  width: Optional[int] = None
22
22
  height: Optional[int] = None
23
23
  comment: Optional[NodeDisplayComment] = None
24
+ icon: Optional[str] = None
25
+ color: Optional[str] = None