vellum-ai 1.0.5__py3-none-any.whl → 1.0.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.
- vellum/__init__.py +0 -8
- vellum/client/core/client_wrapper.py +2 -2
- vellum/client/types/__init__.py +0 -8
- vellum/client/types/organization_read.py +1 -2
- vellum/workflows/events/context.py +111 -0
- vellum/workflows/integrations/__init__.py +0 -0
- vellum/workflows/integrations/composio_service.py +138 -0
- vellum/workflows/nodes/displayable/bases/api_node/node.py +27 -9
- vellum/workflows/nodes/displayable/bases/api_node/tests/__init__.py +0 -0
- vellum/workflows/nodes/displayable/bases/api_node/tests/test_node.py +47 -0
- vellum/workflows/nodes/displayable/tool_calling_node/tests/test_composio_service.py +63 -58
- vellum/workflows/nodes/displayable/tool_calling_node/utils.py +49 -38
- vellum/workflows/types/definition.py +4 -2
- {vellum_ai-1.0.5.dist-info → vellum_ai-1.0.6.dist-info}/METADATA +1 -3
- {vellum_ai-1.0.5.dist-info → vellum_ai-1.0.6.dist-info}/RECORD +23 -27
- vellum_cli/push.py +11 -2
- vellum_cli/tests/test_push.py +57 -1
- vellum_ee/workflows/display/nodes/vellum/code_execution_node.py +2 -0
- vellum_ee/workflows/display/nodes/vellum/tests/test_code_execution_node.py +16 -0
- vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_composio_serialization.py +3 -0
- vellum/client/types/name_enum.py +0 -7
- vellum/client/types/organization_limit_config.py +0 -25
- vellum/client/types/quota.py +0 -22
- vellum/client/types/vembda_service_tier_enum.py +0 -5
- vellum/types/name_enum.py +0 -3
- vellum/types/organization_limit_config.py +0 -3
- vellum/types/quota.py +0 -3
- vellum/types/vembda_service_tier_enum.py +0 -3
- vellum/workflows/nodes/displayable/tool_calling_node/composio_service.py +0 -83
- {vellum_ai-1.0.5.dist-info → vellum_ai-1.0.6.dist-info}/LICENSE +0 -0
- {vellum_ai-1.0.5.dist-info → vellum_ai-1.0.6.dist-info}/WHEEL +0 -0
- {vellum_ai-1.0.5.dist-info → vellum_ai-1.0.6.dist-info}/entry_points.txt +0 -0
@@ -1,72 +1,65 @@
|
|
1
1
|
import pytest
|
2
2
|
from unittest.mock import Mock, patch
|
3
3
|
|
4
|
-
from vellum.workflows.
|
4
|
+
from vellum.workflows.integrations.composio_service import ComposioService, ConnectionInfo
|
5
5
|
|
6
6
|
|
7
7
|
@pytest.fixture
|
8
|
-
def
|
9
|
-
"""Mock
|
10
|
-
with patch("vellum.workflows.
|
11
|
-
yield
|
8
|
+
def mock_requests():
|
9
|
+
"""Mock requests module"""
|
10
|
+
with patch("vellum.workflows.integrations.composio_service.requests") as mock_requests:
|
11
|
+
yield mock_requests
|
12
12
|
|
13
13
|
|
14
14
|
@pytest.fixture
|
15
15
|
def mock_connected_accounts_response():
|
16
|
-
"""Mock response for connected accounts"""
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
16
|
+
"""Mock response for connected accounts API"""
|
17
|
+
return {
|
18
|
+
"items": [
|
19
|
+
{
|
20
|
+
"id": "conn-123",
|
21
|
+
"toolkit": {"slug": "github"},
|
22
|
+
"status": "ACTIVE",
|
23
|
+
"created_at": "2023-01-01T00:00:00Z",
|
24
|
+
"updated_at": "2023-01-15T10:30:00Z",
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"id": "conn-456",
|
28
|
+
"toolkit": {"slug": "slack"},
|
29
|
+
"status": "ACTIVE",
|
30
|
+
"created_at": "2023-01-01T00:00:00Z",
|
31
|
+
"updated_at": "2023-01-10T08:00:00Z",
|
32
|
+
},
|
33
|
+
]
|
34
|
+
}
|
35
35
|
|
36
36
|
|
37
37
|
@pytest.fixture
|
38
|
-
def
|
39
|
-
"""Mock
|
40
|
-
|
41
|
-
|
38
|
+
def mock_tool_execution_response():
|
39
|
+
"""Mock response for tool execution API"""
|
40
|
+
return {
|
41
|
+
"data": {"items": [], "total": 0},
|
42
|
+
"successful": True,
|
43
|
+
"error": None,
|
44
|
+
}
|
42
45
|
|
43
46
|
|
44
47
|
@pytest.fixture
|
45
|
-
def
|
46
|
-
"""
|
47
|
-
with patch("vellum.workflows.nodes.displayable.tool_calling_node.composio_service.Action") as mock_action_class:
|
48
|
-
# Mock a specific action
|
49
|
-
mock_hackernews_action = Mock()
|
50
|
-
mock_action_class.HACKERNEWS_GET_USER = mock_hackernews_action
|
51
|
-
mock_action_class.GITHUB_GET_USER = Mock()
|
52
|
-
yield mock_action_class
|
53
|
-
|
54
|
-
|
55
|
-
@pytest.fixture
|
56
|
-
def composio_service(mock_composio_client, mock_composio_core_client):
|
57
|
-
"""Create ComposioService with mocked clients"""
|
48
|
+
def composio_service():
|
49
|
+
"""Create ComposioService with test API key"""
|
58
50
|
return ComposioService(api_key="test-key")
|
59
51
|
|
60
52
|
|
61
53
|
class TestComposioAccountService:
|
62
54
|
"""Test suite for ComposioAccountService"""
|
63
55
|
|
64
|
-
def test_get_user_connections_success(
|
65
|
-
self, composio_service, mock_composio_client, mock_connected_accounts_response
|
66
|
-
):
|
56
|
+
def test_get_user_connections_success(self, composio_service, mock_requests, mock_connected_accounts_response):
|
67
57
|
"""Test successful retrieval of user connections"""
|
68
|
-
# GIVEN the
|
69
|
-
|
58
|
+
# GIVEN the requests mock returns a valid response with two connections
|
59
|
+
mock_response = Mock()
|
60
|
+
mock_response.json.return_value = mock_connected_accounts_response
|
61
|
+
mock_response.raise_for_status.return_value = None
|
62
|
+
mock_requests.get.return_value = mock_response
|
70
63
|
|
71
64
|
# WHEN we request user connections
|
72
65
|
result = composio_service.get_user_connections()
|
@@ -86,14 +79,21 @@ class TestComposioAccountService:
|
|
86
79
|
assert result[1].created_at == "2023-01-01T00:00:00Z"
|
87
80
|
assert result[1].updated_at == "2023-01-10T08:00:00Z"
|
88
81
|
|
89
|
-
|
82
|
+
# Verify the correct API endpoint was called
|
83
|
+
mock_requests.get.assert_called_once_with(
|
84
|
+
"https://backend.composio.dev/api/v3/connected_accounts",
|
85
|
+
headers={"x-api-key": "test-key", "Content-Type": "application/json"},
|
86
|
+
params={},
|
87
|
+
timeout=30,
|
88
|
+
)
|
90
89
|
|
91
|
-
def test_get_user_connections_empty_response(self, composio_service,
|
90
|
+
def test_get_user_connections_empty_response(self, composio_service, mock_requests):
|
92
91
|
"""Test handling of empty connections response"""
|
93
|
-
# GIVEN the
|
92
|
+
# GIVEN the requests mock returns an empty response
|
94
93
|
mock_response = Mock()
|
95
|
-
mock_response.
|
96
|
-
|
94
|
+
mock_response.json.return_value = {"items": []}
|
95
|
+
mock_response.raise_for_status.return_value = None
|
96
|
+
mock_requests.get.return_value = mock_response
|
97
97
|
|
98
98
|
# WHEN we request user connections
|
99
99
|
result = composio_service.get_user_connections()
|
@@ -105,18 +105,23 @@ class TestComposioAccountService:
|
|
105
105
|
class TestComposioCoreService:
|
106
106
|
"""Test suite for ComposioCoreService"""
|
107
107
|
|
108
|
-
def test_execute_tool_success(self, composio_service,
|
108
|
+
def test_execute_tool_success(self, composio_service, mock_requests, mock_tool_execution_response):
|
109
109
|
"""Test executing a tool with complex argument structure"""
|
110
110
|
# GIVEN complex arguments and a mock response
|
111
111
|
complex_args = {"filters": {"status": "active"}, "limit": 10, "sort": "created_at"}
|
112
|
-
|
113
|
-
|
112
|
+
mock_response = Mock()
|
113
|
+
mock_response.json.return_value = mock_tool_execution_response
|
114
|
+
mock_response.raise_for_status.return_value = None
|
115
|
+
mock_requests.post.return_value = mock_response
|
114
116
|
|
115
117
|
# WHEN we execute a tool with complex arguments
|
116
118
|
result = composio_service.execute_tool("HACKERNEWS_GET_USER", complex_args)
|
117
119
|
|
118
|
-
# THEN the arguments are passed through correctly
|
119
|
-
|
120
|
-
|
120
|
+
# THEN the arguments are passed through correctly and we get the expected result
|
121
|
+
mock_requests.post.assert_called_once_with(
|
122
|
+
"https://backend.composio.dev/api/v3/tools/execute/HACKERNEWS_GET_USER",
|
123
|
+
headers={"x-api-key": "test-key", "Content-Type": "application/json"},
|
124
|
+
json={"arguments": complex_args},
|
125
|
+
timeout=30,
|
121
126
|
)
|
122
|
-
assert result ==
|
127
|
+
assert result == {"items": [], "total": 0}
|
@@ -1,12 +1,13 @@
|
|
1
1
|
import json
|
2
|
-
import
|
3
|
-
from typing import Any, Callable, Iterator, List, Optional, Type, cast
|
2
|
+
import logging
|
3
|
+
from typing import Any, Callable, Iterator, List, Optional, Type, Union, cast
|
4
4
|
|
5
5
|
from pydash import snake_case
|
6
6
|
|
7
7
|
from vellum import ChatMessage, PromptBlock
|
8
8
|
from vellum.client.types.function_call_chat_message_content import FunctionCallChatMessageContent
|
9
9
|
from vellum.client.types.function_call_chat_message_content_value import FunctionCallChatMessageContentValue
|
10
|
+
from vellum.client.types.function_definition import FunctionDefinition
|
10
11
|
from vellum.client.types.prompt_output import PromptOutput
|
11
12
|
from vellum.client.types.prompt_parameters import PromptParameters
|
12
13
|
from vellum.client.types.string_chat_message_content import StringChatMessageContent
|
@@ -15,11 +16,11 @@ from vellum.workflows.errors.types import WorkflowErrorCode
|
|
15
16
|
from vellum.workflows.exceptions import NodeException
|
16
17
|
from vellum.workflows.expressions.concat import ConcatExpression
|
17
18
|
from vellum.workflows.inputs import BaseInputs
|
19
|
+
from vellum.workflows.integrations.composio_service import ComposioService
|
18
20
|
from vellum.workflows.nodes.bases import BaseNode
|
19
21
|
from vellum.workflows.nodes.core.inline_subworkflow_node.node import InlineSubworkflowNode
|
20
22
|
from vellum.workflows.nodes.displayable.inline_prompt_node.node import InlinePromptNode
|
21
23
|
from vellum.workflows.nodes.displayable.subworkflow_deployment_node.node import SubworkflowDeploymentNode
|
22
|
-
from vellum.workflows.nodes.displayable.tool_calling_node.composio_service import ComposioService
|
23
24
|
from vellum.workflows.nodes.displayable.tool_calling_node.state import ToolCallingState
|
24
25
|
from vellum.workflows.outputs.base import BaseOutput
|
25
26
|
from vellum.workflows.ports.port import Port
|
@@ -33,6 +34,9 @@ from vellum.workflows.types.generics import is_workflow_class
|
|
33
34
|
CHAT_HISTORY_VARIABLE = "chat_history"
|
34
35
|
|
35
36
|
|
37
|
+
logger = logging.getLogger(__name__)
|
38
|
+
|
39
|
+
|
36
40
|
class FunctionCallNodeMixin:
|
37
41
|
"""Mixin providing common functionality for nodes that handle function calls."""
|
38
42
|
|
@@ -176,29 +180,9 @@ class ComposioNode(BaseNode[ToolCallingState], FunctionCallNodeMixin):
|
|
176
180
|
# Extract arguments from function call
|
177
181
|
arguments = self._extract_function_arguments()
|
178
182
|
|
179
|
-
# HACK: Use first Composio API key found in environment variables
|
180
|
-
composio_api_key = None
|
181
|
-
common_env_var_names = ["COMPOSIO_API_KEY", "COMPOSIO_KEY"]
|
182
|
-
|
183
|
-
for env_var_name in common_env_var_names:
|
184
|
-
value = os.environ.get(env_var_name)
|
185
|
-
if value:
|
186
|
-
composio_api_key = value
|
187
|
-
break
|
188
|
-
|
189
|
-
if not composio_api_key:
|
190
|
-
raise NodeException(
|
191
|
-
message=(
|
192
|
-
"No Composio API key found in environment variables. "
|
193
|
-
"Please ensure one of these environment variables is set: "
|
194
|
-
)
|
195
|
-
+ ", ".join(common_env_var_names),
|
196
|
-
code=WorkflowErrorCode.NODE_EXECUTION,
|
197
|
-
)
|
198
|
-
|
199
183
|
try:
|
200
184
|
# Execute using ComposioService
|
201
|
-
composio_service = ComposioService(
|
185
|
+
composio_service = ComposioService()
|
202
186
|
result = composio_service.execute_tool(tool_name=self.composio_tool.action, arguments=arguments)
|
203
187
|
except Exception as e:
|
204
188
|
raise NodeException(
|
@@ -212,21 +196,41 @@ class ComposioNode(BaseNode[ToolCallingState], FunctionCallNodeMixin):
|
|
212
196
|
yield from []
|
213
197
|
|
214
198
|
|
215
|
-
def
|
216
|
-
"""
|
199
|
+
def _hydrate_composio_tool_definition(tool_def: ComposioToolDefinition) -> ComposioToolDefinition:
|
200
|
+
"""Hydrate a ComposioToolDefinition with detailed information from the Composio API.
|
201
|
+
|
202
|
+
Args:
|
203
|
+
tool_def: The basic ComposioToolDefinition to enhance
|
217
204
|
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
205
|
+
Returns:
|
206
|
+
ComposioToolDefinition with detailed parameters and description
|
207
|
+
"""
|
208
|
+
try:
|
209
|
+
composio_service = ComposioService()
|
210
|
+
tool_details = composio_service.get_tool_by_slug(tool_def.action)
|
211
|
+
|
212
|
+
# Extract toolkit information from API response
|
213
|
+
toolkit_info = tool_details.get("toolkit", {})
|
214
|
+
toolkit_slug = (
|
215
|
+
toolkit_info.get("slug", tool_def.toolkit) if isinstance(toolkit_info, dict) else tool_def.toolkit
|
223
216
|
)
|
224
217
|
|
225
|
-
|
226
|
-
|
227
|
-
|
218
|
+
# Create a version of the tool definition with proper field extraction
|
219
|
+
return ComposioToolDefinition(
|
220
|
+
type=tool_def.type,
|
221
|
+
toolkit=toolkit_slug.upper() if toolkit_slug else tool_def.toolkit,
|
222
|
+
action=tool_details.get("slug", tool_def.action),
|
223
|
+
description=tool_details.get("description", tool_def.description),
|
224
|
+
display_name=tool_details.get("name", tool_def.display_name),
|
225
|
+
parameters=tool_details.get("input_parameters", tool_def.parameters),
|
226
|
+
version=tool_details.get("version", tool_def.version),
|
227
|
+
tags=tool_details.get("tags", tool_def.tags),
|
228
|
+
)
|
228
229
|
|
229
|
-
|
230
|
+
except Exception as e:
|
231
|
+
# If hydration fails (including no API key), log and return original
|
232
|
+
logger.warning(f"Failed to enhance Composio tool '{tool_def.action}': {e}")
|
233
|
+
return tool_def
|
230
234
|
|
231
235
|
|
232
236
|
def create_tool_router_node(
|
@@ -240,12 +244,19 @@ def create_tool_router_node(
|
|
240
244
|
if functions and len(functions) > 0:
|
241
245
|
# Create dynamic ports and convert functions in a single loop
|
242
246
|
Ports = type("Ports", (), {})
|
243
|
-
prompt_functions = []
|
247
|
+
prompt_functions: List[Union[Tool, FunctionDefinition]] = []
|
244
248
|
|
245
249
|
for function in functions:
|
246
|
-
# Convert ComposioToolDefinition to wrapper function for prompt layer
|
247
250
|
if isinstance(function, ComposioToolDefinition):
|
248
|
-
|
251
|
+
# Get Composio tool details and hydrate the function definition
|
252
|
+
enhanced_function = _hydrate_composio_tool_definition(function)
|
253
|
+
prompt_functions.append(
|
254
|
+
FunctionDefinition(
|
255
|
+
name=enhanced_function.name,
|
256
|
+
description=enhanced_function.description,
|
257
|
+
parameters=enhanced_function.parameters,
|
258
|
+
)
|
259
|
+
)
|
249
260
|
else:
|
250
261
|
prompt_functions.append(function)
|
251
262
|
|
@@ -2,7 +2,7 @@ import importlib
|
|
2
2
|
import inspect
|
3
3
|
from types import FrameType
|
4
4
|
from uuid import UUID
|
5
|
-
from typing import Annotated, Any, Dict, Literal, Optional, Union
|
5
|
+
from typing import Annotated, Any, Dict, List, Literal, Optional, Union
|
6
6
|
|
7
7
|
from pydantic import BeforeValidator
|
8
8
|
|
@@ -109,8 +109,10 @@ class ComposioToolDefinition(UniversalBaseModel):
|
|
109
109
|
action: str # Specific action like "GITHUB_CREATE_AN_ISSUE"
|
110
110
|
description: str
|
111
111
|
|
112
|
-
# Optional cached metadata
|
113
112
|
display_name: Optional[str] = None
|
113
|
+
parameters: Optional[Dict[str, Any]] = None
|
114
|
+
version: Optional[str] = None
|
115
|
+
tags: Optional[List[str]] = None
|
114
116
|
|
115
117
|
@property
|
116
118
|
def name(self) -> str:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: vellum-ai
|
3
|
-
Version: 1.0.
|
3
|
+
Version: 1.0.6
|
4
4
|
Summary:
|
5
5
|
License: MIT
|
6
6
|
Requires-Python: >=3.9,<4.0
|
@@ -22,8 +22,6 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
22
|
Classifier: Typing :: Typed
|
23
23
|
Requires-Dist: Jinja2 (>=3.1.0,<4.0.0)
|
24
24
|
Requires-Dist: click (>=8.1.7,<9.0.0)
|
25
|
-
Requires-Dist: composio-client (>=1.5.0,<2.0.0)
|
26
|
-
Requires-Dist: composio-core (>=0.7.20,<1.0.0)
|
27
25
|
Requires-Dist: docker (>=7.1.0,<8.0.0)
|
28
26
|
Requires-Dist: httpx (>=0.21.2)
|
29
27
|
Requires-Dist: openai (>=1.0.0,<2.0.0)
|
@@ -8,7 +8,7 @@ vellum_cli/init.py,sha256=WpnMXPItPmh0f0bBGIer3p-e5gu8DUGwSArT_FuoMEw,5093
|
|
8
8
|
vellum_cli/logger.py,sha256=dcM_OmgqXLo93vDYswO5ylyUQQcTfnA5GTd5tbIt3wM,1446
|
9
9
|
vellum_cli/ping.py,sha256=p_BCCRjgPhng6JktuECtkDQLbhopt6JpmrtGoLnLJT8,1161
|
10
10
|
vellum_cli/pull.py,sha256=udYyPlJ6VKDdh78rApNJOZgxHl82fcV6iGnRPSdX1LY,14750
|
11
|
-
vellum_cli/push.py,sha256=
|
11
|
+
vellum_cli/push.py,sha256=d1947A_QwFKSZyDimK6dEK1abf_o8e1uzjpI_A_SCwM,11459
|
12
12
|
vellum_cli/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
13
13
|
vellum_cli/tests/conftest.py,sha256=wx3PlJjVB0HRf5dr2b_idOIw27WPPl0J0FNbhIJJaVk,1689
|
14
14
|
vellum_cli/tests/test_config.py,sha256=uvKGDc8BoVyT9_H0Z-g8469zVxomn6Oi3Zj-vK7O_wU,2631
|
@@ -18,7 +18,7 @@ vellum_cli/tests/test_init.py,sha256=8UOc_ThfouR4ja5cCl_URuLk7ohr9JXfCnG4yka1OUQ
|
|
18
18
|
vellum_cli/tests/test_main.py,sha256=qDZG-aQauPwBwM6A2DIu1494n47v3pL28XakTbLGZ-k,272
|
19
19
|
vellum_cli/tests/test_ping.py,sha256=b3aQLd-N59_8w2rRiWqwpB1rlHaKEYVbAj1Y3hi7A-g,2605
|
20
20
|
vellum_cli/tests/test_pull.py,sha256=hxMbW_j0weDDrkzVGpvLpFcwNQdn-fxTv4wBHeYizzc,49904
|
21
|
-
vellum_cli/tests/test_push.py,sha256=
|
21
|
+
vellum_cli/tests/test_push.py,sha256=H9ZU0_E-I1F98SBvj-I_1ooe3RzOlhMTTmEFg6CRrYY,40384
|
22
22
|
vellum_ee/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
23
23
|
vellum_ee/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
24
24
|
vellum_ee/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -36,7 +36,7 @@ vellum_ee/workflows/display/nodes/utils.py,sha256=sloya5TpXsnot1HURc9L51INwflRqU
|
|
36
36
|
vellum_ee/workflows/display/nodes/vellum/__init__.py,sha256=nUIgH2s0-7IbQRNrBhLPyRNe8YIrx3Yo9HeeW-aXXFk,1668
|
37
37
|
vellum_ee/workflows/display/nodes/vellum/api_node.py,sha256=lGS-C9cd-nlYVZuaXmArJUJFdwPUMLNJwf1bpa7Ufys,9400
|
38
38
|
vellum_ee/workflows/display/nodes/vellum/base_adornment_node.py,sha256=FHhPoGmmny4Xcxi2pm12Sk3ZOREanWEVrOWcjRhncH4,6337
|
39
|
-
vellum_ee/workflows/display/nodes/vellum/code_execution_node.py,sha256=
|
39
|
+
vellum_ee/workflows/display/nodes/vellum/code_execution_node.py,sha256=zG0u5Wvvo8B6yM0JSWtDdLxsULus3VD3cxYVOHRAgAU,4635
|
40
40
|
vellum_ee/workflows/display/nodes/vellum/conditional_node.py,sha256=OEw8QRPliL4P8J6oEZdQH8Oc-0u7aFa_Jqx0RyL6F-M,11656
|
41
41
|
vellum_ee/workflows/display/nodes/vellum/error_node.py,sha256=YhMsi2TG1zSR8E7IpxzzSncOyVLcvqTuGa3mr4RqHd8,2364
|
42
42
|
vellum_ee/workflows/display/nodes/vellum/final_output_node.py,sha256=zo-nalsuayMqeb2GwR2OB9SFK3y2U5aG-rtwrsjdasQ,3089
|
@@ -53,7 +53,7 @@ vellum_ee/workflows/display/nodes/vellum/subworkflow_deployment_node.py,sha256=w
|
|
53
53
|
vellum_ee/workflows/display/nodes/vellum/templating_node.py,sha256=TdIJWh2l8p4tw7ejRexGOFQKnviirUqie3WYwsrVQ4g,3339
|
54
54
|
vellum_ee/workflows/display/nodes/vellum/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
55
55
|
vellum_ee/workflows/display/nodes/vellum/tests/test_api_node.py,sha256=DQAtsabvn6BE6xWwKNHzMOppzoy1-1dssNnrwbHUdRU,1490
|
56
|
-
vellum_ee/workflows/display/nodes/vellum/tests/test_code_execution_node.py,sha256=
|
56
|
+
vellum_ee/workflows/display/nodes/vellum/tests/test_code_execution_node.py,sha256=JFjhOABsFwR1LHZBSU5O7uzPdAuvkOvc0qNDsEH_CSY,6021
|
57
57
|
vellum_ee/workflows/display/nodes/vellum/tests/test_error_node.py,sha256=540FoWMpJ3EN_DPjHsr9ODJWCRVcUa5hZBn-5T2GiHU,1665
|
58
58
|
vellum_ee/workflows/display/nodes/vellum/tests/test_inline_subworkflow_node.py,sha256=SKOYan-dxY4gsO0R4JyQUyWrABHBN8XImKw9Eeo4wGo,3535
|
59
59
|
vellum_ee/workflows/display/nodes/vellum/tests/test_note_node.py,sha256=uiMB0cOxKZzos7YKnj4ef4DFa2bOvZJWIv-hfbUV6Go,1218
|
@@ -94,7 +94,7 @@ vellum_ee/workflows/display/tests/workflow_serialization/test_basic_search_node_
|
|
94
94
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_subworkflow_deployment_serialization.py,sha256=XWrhHg_acLsRHwjstBAii9Pmes9oXFtAUWSAVF1oSBc,11225
|
95
95
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_templating_node_serialization.py,sha256=V8b6gKghLlO7PJI8xeNdnfn8aII0W_IFQvSQBQM62UQ,7721
|
96
96
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_terminal_node_serialization.py,sha256=hDWtKXmGI1CKhTwTNqpu_d5RkE5n7SolMLtgd87KqTI,3856
|
97
|
-
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_composio_serialization.py,sha256=
|
97
|
+
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_composio_serialization.py,sha256=gonapBCyDDt3qc7U02PCuKyPS8f3YiSAZ7QD86CH1Fw,3794
|
98
98
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_inline_workflow_serialization.py,sha256=4t1lkN2nsZF6lFqP6QnskUQWJlhasF8C2_f6atzk8ZY,26298
|
99
99
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_serialization.py,sha256=1hoakUkh5kHZYIfY1moJBZYzXgAafkgWsIf4lmZ12vg,9521
|
100
100
|
vellum_ee/workflows/display/tests/workflow_serialization/test_basic_tool_calling_node_workflow_deployment_serialization.py,sha256=mova0sPD3evHiHIN1O0VynxlCp-uOcEIKve5Pd_oCDg,4069
|
@@ -140,12 +140,12 @@ vellum_ee/workflows/tests/test_display_meta.py,sha256=PkXJVnMZs9GNooDkd59n4YTBAX
|
|
140
140
|
vellum_ee/workflows/tests/test_serialize_module.py,sha256=EVrCRAP0lpvd0GIDlg2tnGfJzDNooNDXPfGFPLAqmbI,1870
|
141
141
|
vellum_ee/workflows/tests/test_server.py,sha256=SsOkS6sGO7uGC4mxvk4iv8AtcXs058P9hgFHzTWmpII,14519
|
142
142
|
vellum_ee/workflows/tests/test_virtual_files.py,sha256=TJEcMR0v2S8CkloXNmCHA0QW0K6pYNGaIjraJz7sFvY,2762
|
143
|
-
vellum/__init__.py,sha256=
|
143
|
+
vellum/__init__.py,sha256=tD6Fm-ml3pDVFPucRvSr5p0uRoEodHXxs6FHATqQU5o,43103
|
144
144
|
vellum/client/README.md,sha256=Dle5iytCXxP1pNeNd7uZyhFo0rl7tp7vU7s8gmi10OQ,4863
|
145
145
|
vellum/client/__init__.py,sha256=KmkyOgReuTsjmXF3WC_dPQ9QqJgYrB3Sr8_LcSUIQyI,125258
|
146
146
|
vellum/client/core/__init__.py,sha256=SQ85PF84B9MuKnBwHNHWemSGuy-g_515gFYNFhvEE0I,1438
|
147
147
|
vellum/client/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
|
148
|
-
vellum/client/core/client_wrapper.py,sha256=
|
148
|
+
vellum/client/core/client_wrapper.py,sha256=QsKeKLYWV6cj1EDrHG6sVVmh4h2ol3aw7P3Lckn25Wk,2383
|
149
149
|
vellum/client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
|
150
150
|
vellum/client/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
|
151
151
|
vellum/client/core/http_client.py,sha256=cKs2w0ybDBk1wHQf-fTALm_MmvaMe3cZKcYJxqmCxkE,19539
|
@@ -215,7 +215,7 @@ vellum/client/resources/workspace_secrets/__init__.py,sha256=FTtvy8EDg9nNNg9WCat
|
|
215
215
|
vellum/client/resources/workspace_secrets/client.py,sha256=l1FOj0f-IB5_oQ7iWiHopFK3lDXBqiaIc9g10W9PHFU,8381
|
216
216
|
vellum/client/resources/workspaces/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
217
217
|
vellum/client/resources/workspaces/client.py,sha256=61eFS8USOtHf4cFoT3dZmAMs6KGAVPbXjAolws2ftsQ,3683
|
218
|
-
vellum/client/types/__init__.py,sha256=
|
218
|
+
vellum/client/types/__init__.py,sha256=rmRNYcVM3VMP28jEp-ChnFQKPgHJxSLoA_07CSL_jyc,65257
|
219
219
|
vellum/client/types/ad_hoc_execute_prompt_event.py,sha256=bCjujA2XsOgyF3bRZbcEqV2rOIymRgsLoIRtZpB14xg,607
|
220
220
|
vellum/client/types/ad_hoc_expand_meta.py,sha256=1gv-NCsy_6xBYupLvZH979yf2VMdxAU-l0y0ynMKZaw,1331
|
221
221
|
vellum/client/types/ad_hoc_fulfilled_prompt_execution_meta.py,sha256=oDG60TpwK1YNSKhRsBbiP2O3ZF9PKR-M9chGIfKw4R4,1004
|
@@ -429,7 +429,6 @@ vellum/client/types/metric_node_result.py,sha256=YdKq1DZiBD1RBtjyMejImylv3BqrwY8
|
|
429
429
|
vellum/client/types/ml_model_read.py,sha256=Vr5KjaS2Tca0GXsltfSYQpuyGYpgIahPEFfS6HfFGSo,706
|
430
430
|
vellum/client/types/ml_model_usage.py,sha256=WcZ2F1hfxyTwe-spOVwv-qJYDjs4hf9sn7BF2abawPo,910
|
431
431
|
vellum/client/types/ml_model_usage_wrapper.py,sha256=Vi7urVmTn1E_aZV6TxnW-qjDayRv7A_6JDk84KqAIa0,645
|
432
|
-
vellum/client/types/name_enum.py,sha256=5y6CNh1LNmWC_CTje_rD-N53Z57PckS9avbCxmqjAMk,210
|
433
432
|
vellum/client/types/named_scenario_input_chat_history_variable_value_request.py,sha256=aVZmAxu-47c34NyhSkfi9tQqIPy29cdJ7Pb4MIgKeNw,862
|
434
433
|
vellum/client/types/named_scenario_input_json_variable_value_request.py,sha256=UgnKv70zFviv1kl4nM7aM7IFA-7xyDOtglW4Y3GBZ28,757
|
435
434
|
vellum/client/types/named_scenario_input_request.py,sha256=Pi8l377OHvKBwvPu9slZ1omf_NJ9S1mCQ5Wr-Ux5KVg,611
|
@@ -501,8 +500,7 @@ vellum/client/types/open_ai_vectorizer_text_embedding_3_small.py,sha256=T_-P7qGj
|
|
501
500
|
vellum/client/types/open_ai_vectorizer_text_embedding_3_small_request.py,sha256=-lwNeWj7ExP-JLncUp1Uyd20FxweVIDu-aEnenPB98A,841
|
502
501
|
vellum/client/types/open_ai_vectorizer_text_embedding_ada_002.py,sha256=c4vNlR6lRvUjq-67M06sroDMNMG_qC4JUBqwmKEJQ2I,812
|
503
502
|
vellum/client/types/open_ai_vectorizer_text_embedding_ada_002_request.py,sha256=FdpkkNBGgRwfqFjBwpfH4t2zKIM0pIYminX2iZQUzvY,841
|
504
|
-
vellum/client/types/
|
505
|
-
vellum/client/types/organization_read.py,sha256=c5Wl5KY6plC7DuPJq6zAK_UTH2XVhT7H8OdEtxLqN98,854
|
503
|
+
vellum/client/types/organization_read.py,sha256=QDFpX4pZCjGSRXZ6FF65SDzRxFqkI87DEEUXtaVoTAs,837
|
506
504
|
vellum/client/types/paginated_container_image_read_list.py,sha256=7lwIgs1q7Z0xDYPGWPnjSNC1kU_peu79CotzaaQfRdA,801
|
507
505
|
vellum/client/types/paginated_deployment_release_tag_read_list.py,sha256=hp7D74CxPY14dEPRZ-fnTCwp63upxkYquL1e74oYXh4,826
|
508
506
|
vellum/client/types/paginated_document_index_read_list.py,sha256=bO7pm3KCZi5LDO17YXgr_lUF9SRdAfMu6wOutX91ANw,797
|
@@ -542,7 +540,6 @@ vellum/client/types/prompt_request_json_input.py,sha256=vLhwvCWL_yjVfDzT4921xK4Q
|
|
542
540
|
vellum/client/types/prompt_request_string_input.py,sha256=8GSFhtN3HeYssbDRY7B5SCh5Qrp67340D9c3oINpCmw,714
|
543
541
|
vellum/client/types/prompt_settings.py,sha256=gITevU-SWiStXFKLfpwG5dQJ-bic5CxnM0OHsT9KR0s,635
|
544
542
|
vellum/client/types/prompt_version_build_config_sandbox.py,sha256=SXU62bAueVpoWo178bLIMYi8aNVpsBGTtOQxHcg6Dmo,678
|
545
|
-
vellum/client/types/quota.py,sha256=3NXzWkznGopK9AdoltadaF-BzfGFbC_WYbvqulweilc,672
|
546
543
|
vellum/client/types/raw_prompt_execution_overrides_request.py,sha256=x4Chkm_NxXySOEyA6s6J_mhhiM91KCcQbu6pQETB8RI,927
|
547
544
|
vellum/client/types/reducto_chunker_config.py,sha256=by_Dj0hZPkLQAf7l1KAudRB8X2XnlfHiRTsyiR-DTRY,654
|
548
545
|
vellum/client/types/reducto_chunker_config_request.py,sha256=RnulU2a_PUtvRE2qhARQhsCkWI--K_MYkobzLNRGEz4,661
|
@@ -740,7 +737,6 @@ vellum/client/types/vellum_variable.py,sha256=BDcccISJsycsrW3E5A5RTIOfxS_83ofkle
|
|
740
737
|
vellum/client/types/vellum_variable_extensions.py,sha256=PsrRo0STOKhxrkSFRrOXCPlf1x5Uxpy3vVMJz02O20E,685
|
741
738
|
vellum/client/types/vellum_variable_type.py,sha256=epYV-PY0NkvUntKzgzqelWMq9Dzmh7Y32c19GB_2mh0,411
|
742
739
|
vellum/client/types/vellum_workflow_execution_event.py,sha256=H8rP3_6a6LTvemoHfsmI2THpTRf8PYrZQcjoeTzf-44,934
|
743
|
-
vellum/client/types/vembda_service_tier_enum.py,sha256=zIQq6j0BNu1niKkK_G4a_hE5kqkZ5s43k4g5Zj2qiAI,161
|
744
740
|
vellum/client/types/workflow_deployment_event_executions_response.py,sha256=_X9hfsfpCf7DaQpfg83AAcbadZxEVi1NKNf2PZ7PRY8,1190
|
745
741
|
vellum/client/types/workflow_deployment_history_item.py,sha256=w5yqAtmYWw8kTljYEVBa8-fLxKsrBA8Img7IC3GjZG4,1226
|
746
742
|
vellum/client/types/workflow_deployment_parent_context.py,sha256=QwGpZnSNX6RCfkjbxmfln8QefrP8lFHkZ1DAC-oj9-Q,1699
|
@@ -1130,7 +1126,6 @@ vellum/types/metric_node_result.py,sha256=Q_bUgbdRnSP26nEcJ-vZD7k2oLIcThN3JjW9hX
|
|
1130
1126
|
vellum/types/ml_model_read.py,sha256=d_CPwZ3bhXtC8c5jwXkuNVvobDqPI-I_byZ6WnVla1Q,151
|
1131
1127
|
vellum/types/ml_model_usage.py,sha256=Q-7_W6GfL8rMnqjhSiZirw8oB60GFc0p_mNYdZdlMjY,152
|
1132
1128
|
vellum/types/ml_model_usage_wrapper.py,sha256=anoup7KWug4Mrt-JhsB_S1zuKcdq9ncXsz3y8t_I52g,160
|
1133
|
-
vellum/types/name_enum.py,sha256=YrE8Nx14GVcIUZgM_ackw2n9qYXTX0wQywYGKUdUOSY,147
|
1134
1129
|
vellum/types/named_scenario_input_chat_history_variable_value_request.py,sha256=Sfwba1cvocP8UR6CCDEjE7HsI5Xs6Dopk1W88Zf1ng8,194
|
1135
1130
|
vellum/types/named_scenario_input_json_variable_value_request.py,sha256=1kZ4Y7TttH8O897rmtkEIMraql5dTIyEVvFZn0I5Py8,186
|
1136
1131
|
vellum/types/named_scenario_input_request.py,sha256=E7TcL4YRw7dcEyMEws3AsiCw7GSHnrXpktBKOoVSytA,166
|
@@ -1202,7 +1197,6 @@ vellum/types/open_ai_vectorizer_text_embedding_3_small.py,sha256=5gsPjLdttszz8Nq
|
|
1202
1197
|
vellum/types/open_ai_vectorizer_text_embedding_3_small_request.py,sha256=kqph8wL-8Cn6vVoJMEYIkFc4kvERvF3pzHjUQxFZAOM,187
|
1203
1198
|
vellum/types/open_ai_vectorizer_text_embedding_ada_002.py,sha256=VTile8qzbXfjXgALK7Lr58U4sWGcEOWJ830gdHNpJhY,179
|
1204
1199
|
vellum/types/open_ai_vectorizer_text_embedding_ada_002_request.py,sha256=345s9jJCbxvgIWb_ejW2pVWOz51d4NnkiyWB4J0qQpE,187
|
1205
|
-
vellum/types/organization_limit_config.py,sha256=wJoKIE_HPe0jbUVQx18QCnNVdAkhK05TAZxu8uSPtQY,163
|
1206
1200
|
vellum/types/organization_read.py,sha256=3VdzuCxr_jNaXSL8P_Imk6vNK6BaJ6b1TX1IHKMiQ_Y,155
|
1207
1201
|
vellum/types/paginated_container_image_read_list.py,sha256=dKnIbX8_sYqWo6tS0W694jojAWKybB8pe9Zw8-hvlo8,173
|
1208
1202
|
vellum/types/paginated_deployment_release_tag_read_list.py,sha256=B-fCqNhU5KiYqIvnrybZr7MZCyOBmihHkrDsEhEzOjg,180
|
@@ -1243,7 +1237,6 @@ vellum/types/prompt_request_json_input.py,sha256=OlXiUPchxe184SWbmIvbmARpY9YWPi8
|
|
1243
1237
|
vellum/types/prompt_request_string_input.py,sha256=1V-fTtuyhEw5H4EpqIkCqX7aHGJivUzzc_LMeszPjnc,165
|
1244
1238
|
vellum/types/prompt_settings.py,sha256=6_AzrH73lBHSDxKxidI6zhDjAeWh_nZcaIGlrzJhypU,153
|
1245
1239
|
vellum/types/prompt_version_build_config_sandbox.py,sha256=thz3Ty7FMZr1NWrrtPS1QN32kPpZo9hg9VIN6c6biuc,173
|
1246
|
-
vellum/types/quota.py,sha256=hhIYDiHDilEV0FJ7LSD-TTzLaDL0kfuJIA9tReithZg,143
|
1247
1240
|
vellum/types/raw_prompt_execution_overrides_request.py,sha256=NvCoHH8ehO0UortbDuDQvwOdxQzXw0_PMGsJc7DtvoA,176
|
1248
1241
|
vellum/types/reducto_chunker_config.py,sha256=6hu2m_WTavxTfKs46BWZGiuOsLE4HYgoP-VdDGS6KTI,160
|
1249
1242
|
vellum/types/reducto_chunker_config_request.py,sha256=KjIZYQu27OIA--0e6RjgUwWmY3iE8s9rlehdhfZRzhQ,168
|
@@ -1441,7 +1434,6 @@ vellum/types/vellum_variable.py,sha256=rmjuD8hMydLF480--5tWlHbvu6qNaz0Hs9bSrJ8DP
|
|
1441
1434
|
vellum/types/vellum_variable_extensions.py,sha256=wwKDv_yxtP7gQmfz5HF3zab-FOLt-0OMUYIsHgvrOC0,164
|
1442
1435
|
vellum/types/vellum_variable_type.py,sha256=d3Zkf0ued1QrO90CMGTUnlyg2xT8nKGM4Nv6-L6W_Pg,158
|
1443
1436
|
vellum/types/vellum_workflow_execution_event.py,sha256=EI7XANl17nOtYskD9b4FmdejkKsK7cFDwe9asr2xGC8,169
|
1444
|
-
vellum/types/vembda_service_tier_enum.py,sha256=IMC8Ftntkplp7lt1OIqPZjFP_1C3t0-EbspoyWXgFQ4,162
|
1445
1437
|
vellum/types/workflow_deployment_event_executions_response.py,sha256=375mHiA7sucHeFSr0LlaLcVgV7F2QicMZaQiOrC5yOg,183
|
1446
1438
|
vellum/types/workflow_deployment_history_item.py,sha256=dp5pwzOVO83KPwAbYeO3NXlKKHswGa0MTGX82nIhAIg,170
|
1447
1439
|
vellum/types/workflow_deployment_parent_context.py,sha256=kB0eeRXagHqRnuDVA9B8aDlvBZVOmQ702JYXD8evh24,172
|
@@ -1551,6 +1543,7 @@ vellum/workflows/environment/environment.py,sha256=Ck3RPKXJvtMGx_toqYQQQF-ZwXm5i
|
|
1551
1543
|
vellum/workflows/errors/__init__.py,sha256=tWGPu5xyAU8gRb8_bl0fL7OfU3wxQ9UH6qVwy4X4P_Q,113
|
1552
1544
|
vellum/workflows/errors/types.py,sha256=nUWuniEfrhdtb-_2GzoDGlYnSJ_yuNUGjVkaKLNr-rM,4049
|
1553
1545
|
vellum/workflows/events/__init__.py,sha256=V4mh766fyA70WvHelm9kfVZGrUgEKcJ9tJt8EepfQYU,832
|
1546
|
+
vellum/workflows/events/context.py,sha256=81367zwg23PUBsrDJyF0rbcswNOIMTwWveAjmqy9GcM,4501
|
1554
1547
|
vellum/workflows/events/node.py,sha256=n3JdlCmeZ6tFTu_x5tu1oSCe5EBE8B1Cy3CzSWK5B08,5453
|
1555
1548
|
vellum/workflows/events/stream.py,sha256=xhXJTZirFi0xad5neAQNogrIQ4h47fpnKbVC3vCM5Js,889
|
1556
1549
|
vellum/workflows/events/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -1603,6 +1596,8 @@ vellum/workflows/inputs/__init__.py,sha256=AbFEteIYEvCb14fM3EK7bhM-40-6s494rSlIh
|
|
1603
1596
|
vellum/workflows/inputs/base.py,sha256=w3owT5B3rLBmIj-v-jL2l-HD4yd3hXK9RmHVd557BpA,5126
|
1604
1597
|
vellum/workflows/inputs/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1605
1598
|
vellum/workflows/inputs/tests/test_inputs.py,sha256=lioA8917mFLYq7Ml69UNkqUjcWbbxkxnpIEJ4FBaYBk,2206
|
1599
|
+
vellum/workflows/integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1600
|
+
vellum/workflows/integrations/composio_service.py,sha256=p3V9l7OlOV1zZK9aIgvfhLiDsxbxeSVZJ3MBSedo7Pw,5008
|
1606
1601
|
vellum/workflows/logging.py,sha256=_a217XogktV4Ncz6xKFz7WfYmZAzkfVRVuC0rWob8ls,437
|
1607
1602
|
vellum/workflows/nodes/__init__.py,sha256=aVdQVv7Y3Ro3JlqXGpxwaU2zrI06plDHD2aumH5WUIs,1157
|
1608
1603
|
vellum/workflows/nodes/bases/__init__.py,sha256=cniHuz_RXdJ4TQgD8CBzoiKDiPxg62ErdVpCbWICX64,58
|
@@ -1640,7 +1635,9 @@ vellum/workflows/nodes/displayable/api_node/tests/__init__.py,sha256=47DEQpj8HBS
|
|
1640
1635
|
vellum/workflows/nodes/displayable/api_node/tests/test_api_node.py,sha256=qp6v-MrgpNVDt16Kp0EOyeQx3LpzflTlaNSL1EYZ1nE,9185
|
1641
1636
|
vellum/workflows/nodes/displayable/bases/__init__.py,sha256=0mWIx3qUrzllV7jqt7wN03vWGMuI1WrrLZeMLT2Cl2c,304
|
1642
1637
|
vellum/workflows/nodes/displayable/bases/api_node/__init__.py,sha256=1jwx4WC358CLA1jgzl_UD-rZmdMm2v9Mps39ndwCD7U,64
|
1643
|
-
vellum/workflows/nodes/displayable/bases/api_node/node.py,sha256=
|
1638
|
+
vellum/workflows/nodes/displayable/bases/api_node/node.py,sha256=jkv803kEPlK4lrzk2oWU0J3t6vyFeQkI9ap9RCb1qt0,6183
|
1639
|
+
vellum/workflows/nodes/displayable/bases/api_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1640
|
+
vellum/workflows/nodes/displayable/bases/api_node/tests/test_node.py,sha256=Z39BZn-QgGNCKcwbOwhMpAopwgX6J3v7ulCA6TKyphE,1587
|
1644
1641
|
vellum/workflows/nodes/displayable/bases/base_prompt_node/__init__.py,sha256=Org3xTvgp1pA0uUXFfnJr29D3HzCey2lEdYF4zbIUgo,70
|
1645
1642
|
vellum/workflows/nodes/displayable/bases/base_prompt_node/node.py,sha256=EJsGaz8Umss6-JWGGYbJp93ZHx3IlZQWAySlHAdNYtY,4466
|
1646
1643
|
vellum/workflows/nodes/displayable/bases/inline_prompt_node/__init__.py,sha256=Hl35IAoepRpE-j4cALaXVJIYTYOF3qszyVbxTj4kS1s,82
|
@@ -1698,14 +1695,13 @@ vellum/workflows/nodes/displayable/tests/test_search_node_error_handling.py,sha2
|
|
1698
1695
|
vellum/workflows/nodes/displayable/tests/test_search_node_wth_text_output.py,sha256=VepO5z1277c1y5N6LLIC31nnWD1aak2m5oPFplfJHHs,6935
|
1699
1696
|
vellum/workflows/nodes/displayable/tests/test_text_prompt_deployment_node.py,sha256=dc3EEn1sOICpr3GdS8eyeFtExaGwWWcw9eHSdkRhQJU,2584
|
1700
1697
|
vellum/workflows/nodes/displayable/tool_calling_node/__init__.py,sha256=3n0-ysmFKsr40CVxPthc0rfJgqVJeZuUEsCmYudLVRg,117
|
1701
|
-
vellum/workflows/nodes/displayable/tool_calling_node/composio_service.py,sha256=C53hgStA-BHe7EFu4j_N650LqsLBOiMovs_nGW8J7nc,2669
|
1702
1698
|
vellum/workflows/nodes/displayable/tool_calling_node/node.py,sha256=BRA6YRCEOk0Nw3DCIT13WY7WCZ7Gx30s-egJe_md0FA,6504
|
1703
1699
|
vellum/workflows/nodes/displayable/tool_calling_node/state.py,sha256=oQg_GAtc349nPB5BL_oeDYYD7q1qSDPAqjj8iA8OoAw,215
|
1704
1700
|
vellum/workflows/nodes/displayable/tool_calling_node/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1705
|
-
vellum/workflows/nodes/displayable/tool_calling_node/tests/test_composio_service.py,sha256=
|
1701
|
+
vellum/workflows/nodes/displayable/tool_calling_node/tests/test_composio_service.py,sha256=UV0vZpU7-_tHcwnIq36WKwHrJXNurU4bdC3rfaw8eoU,4804
|
1706
1702
|
vellum/workflows/nodes/displayable/tool_calling_node/tests/test_node.py,sha256=raY_E5-EgtYNXEPbO2I-Ythe4YeuFdGsXGZ_BAN98uI,7979
|
1707
1703
|
vellum/workflows/nodes/displayable/tool_calling_node/tests/test_utils.py,sha256=aCK4TDcD4TcgoYbOs712qFiNCVRVffCb5HZCZQGDiUc,2449
|
1708
|
-
vellum/workflows/nodes/displayable/tool_calling_node/utils.py,sha256=
|
1704
|
+
vellum/workflows/nodes/displayable/tool_calling_node/utils.py,sha256=fOoAr_TTZ5Sjuc2GSyKz87vnfx-RZ6B7BxtQmPdxqfE,16191
|
1709
1705
|
vellum/workflows/nodes/experimental/README.md,sha256=eF6DfIL8t-HbF9-mcofOMymKrraiBHDLKTlnBa51ZiE,284
|
1710
1706
|
vellum/workflows/nodes/experimental/__init__.py,sha256=jCQgvZEknXKfuNhGSOou4XPfrPqZ1_XBj5F0n0fgiWM,106
|
1711
1707
|
vellum/workflows/nodes/experimental/openai_chat_completion_node/__init__.py,sha256=lsyD9laR9p7kx5-BXGH2gUTM242UhKy8SMV0SR6S2iE,90
|
@@ -1753,7 +1749,7 @@ vellum/workflows/tests/test_undefined.py,sha256=zMCVliCXVNLrlC6hEGyOWDnQADJ2g83y
|
|
1753
1749
|
vellum/workflows/types/__init__.py,sha256=KxUTMBGzuRCfiMqzzsykOeVvrrkaZmTTo1a7SLu8gRM,68
|
1754
1750
|
vellum/workflows/types/code_execution_node_wrappers.py,sha256=3MNIoFZKzVzNS5qFLVuDwMV17QJw72zo7NRf52yMq5A,3074
|
1755
1751
|
vellum/workflows/types/core.py,sha256=6MW_BRLcx4oEJpItQWQa64xfCrsk76suZSsMKKEsJLg,1314
|
1756
|
-
vellum/workflows/types/definition.py,sha256=
|
1752
|
+
vellum/workflows/types/definition.py,sha256=K1evpjoxHpZysx8HBcA-IY0fS_p1afS4QcvG2HZ-r0o,3815
|
1757
1753
|
vellum/workflows/types/generics.py,sha256=8jptbEx1fnJV0Lhj0MpCJOT6yNiEWeTOYOwrEAb5CRU,1576
|
1758
1754
|
vellum/workflows/types/stack.py,sha256=h7NE0vXR7l9DevFBIzIAk1Zh59K-kECQtDTKOUunwMY,1314
|
1759
1755
|
vellum/workflows/types/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -1778,8 +1774,8 @@ vellum/workflows/workflows/event_filters.py,sha256=GSxIgwrX26a1Smfd-6yss2abGCnad
|
|
1778
1774
|
vellum/workflows/workflows/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1779
1775
|
vellum/workflows/workflows/tests/test_base_workflow.py,sha256=ptMntHzVyy8ZuzNgeTuk7hREgKQ5UBdgq8VJFSGaW4Y,20832
|
1780
1776
|
vellum/workflows/workflows/tests/test_context.py,sha256=VJBUcyWVtMa_lE5KxdhgMu0WYNYnUQUDvTF7qm89hJ0,2333
|
1781
|
-
vellum_ai-1.0.
|
1782
|
-
vellum_ai-1.0.
|
1783
|
-
vellum_ai-1.0.
|
1784
|
-
vellum_ai-1.0.
|
1785
|
-
vellum_ai-1.0.
|
1777
|
+
vellum_ai-1.0.6.dist-info/LICENSE,sha256=hOypcdt481qGNISA784bnAGWAE6tyIf9gc2E78mYC3E,1574
|
1778
|
+
vellum_ai-1.0.6.dist-info/METADATA,sha256=EmLX2EVjbQ5g5W-PpqXN-5TPUhFu6L5KXLRLSB0st_s,5554
|
1779
|
+
vellum_ai-1.0.6.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
1780
|
+
vellum_ai-1.0.6.dist-info/entry_points.txt,sha256=HCH4yc_V3J_nDv3qJzZ_nYS8llCHZViCDP1ejgCc5Ak,42
|
1781
|
+
vellum_ai-1.0.6.dist-info/RECORD,,
|
vellum_cli/push.py
CHANGED
@@ -16,6 +16,7 @@ from vellum.resources.workflows.client import OMIT
|
|
16
16
|
from vellum.workflows.vellum_client import create_vellum_client
|
17
17
|
from vellum_cli.config import DEFAULT_WORKSPACE_CONFIG, WorkflowConfig, WorkflowDeploymentConfig, load_vellum_cli_config
|
18
18
|
from vellum_cli.logger import handle_cli_error, load_cli_logger
|
19
|
+
from vellum_ee.workflows.display.nodes.utils import to_kebab_case
|
19
20
|
from vellum_ee.workflows.display.workflows.base_workflow_display import BaseWorkflowDisplay
|
20
21
|
|
21
22
|
|
@@ -131,9 +132,10 @@ def push_command(
|
|
131
132
|
)
|
132
133
|
|
133
134
|
try:
|
135
|
+
module_name = workflow_config.module.split(".")[-1]
|
134
136
|
deployment_config = WorkflowPushDeploymentConfigRequest(
|
135
137
|
label=deployment_label or cli_deployment_config.label,
|
136
|
-
name=deployment_name or cli_deployment_config.name,
|
138
|
+
name=deployment_name or cli_deployment_config.name or to_kebab_case(module_name),
|
137
139
|
description=deployment_description or cli_deployment_config.description,
|
138
140
|
release_tags=release_tags or cli_deployment_config.release_tags,
|
139
141
|
)
|
@@ -274,7 +276,14 @@ Visit at: {base_url}/workflow-sandboxes/{response.workflow_sandbox_id}"""
|
|
274
276
|
workflow_config.workflow_sandbox_id = response.workflow_sandbox_id
|
275
277
|
|
276
278
|
if not workflow_config.deployments and response.workflow_deployment_id:
|
277
|
-
|
279
|
+
stored_deployment_config = WorkflowDeploymentConfig(
|
280
|
+
id=UUID(response.workflow_deployment_id),
|
281
|
+
label=deployment_config.label if deploy else None,
|
282
|
+
name=deployment_config.name if deploy else None,
|
283
|
+
description=deployment_config.description if deploy else None,
|
284
|
+
release_tags=deployment_config.release_tags if deploy else None,
|
285
|
+
)
|
286
|
+
workflow_config.deployments.append(stored_deployment_config)
|
278
287
|
|
279
288
|
config.save()
|
280
289
|
logger.info("Updated vellum.lock.json file.")
|