vellum_ai 1.4.2 → 1.5.1
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.
- checksums.yaml +4 -4
- data/lib/requests.rb +2 -2
- data/lib/types_export.rb +6 -0
- data/lib/vellum_ai/integrations/client.rb +201 -0
- data/lib/vellum_ai/types/components_schemas_composio_execute_tool_request.rb +6 -0
- data/lib/vellum_ai/types/components_schemas_composio_execute_tool_response.rb +6 -0
- data/lib/vellum_ai/types/components_schemas_composio_tool_definition.rb +6 -0
- data/lib/vellum_ai/types/composio_execute_tool_request.rb +62 -0
- data/lib/vellum_ai/types/composio_execute_tool_response.rb +62 -0
- data/lib/vellum_ai/types/composio_tool_definition.rb +76 -0
- data/lib/vellum_ai/types/vellum_error_code_enum.rb +4 -0
- data/lib/vellum_ai/types/vellum_sdk_error.rb +11 -2
- data/lib/vellum_ai/types/workflow_event_error.rb +9 -2
- data/lib/vellum_ai.rb +7 -0
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 804fa7350953ecd8d949ee82e50c8ad842054eaf3000ba37ee6535cb3a4ef3e2
|
4
|
+
data.tar.gz: 0aba24f1f0e189d46fd3d4e2240fed23204f85a846df9fdda8e2056e97164742
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 78dc3aaea8243f096c91181eb93553487aaf931e18cab1d06e66d6eb40323cbb1b2ce2848fcd316fe796f80747190be878591a4c857d05441d31b41a73d88dc4
|
7
|
+
data.tar.gz: 583e931049fa403955e1e6a5b790c8f0cf21713ab118bacaf7d72333ba1a10638adae11572fc3844bb707d131f74bc0b1bdf92ec82528cbcbb93307ee3671e8c
|
data/lib/requests.rb
CHANGED
@@ -56,7 +56,7 @@ end
|
|
56
56
|
end
|
57
57
|
# @return [Hash{String => String}]
|
58
58
|
def get_headers
|
59
|
-
headers = { "X-Fern-Language": 'Ruby', "X-Fern-SDK-Name": 'vellum_ai', "X-Fern-SDK-Version": '1.
|
59
|
+
headers = { "X-Fern-Language": 'Ruby', "X-Fern-SDK-Name": 'vellum_ai', "X-Fern-SDK-Version": '1.5.1' }
|
60
60
|
headers["X-API-KEY"] = ((@api_key.is_a? Method) ? @api_key.call : @api_key) unless @api_key.nil?
|
61
61
|
headers
|
62
62
|
end
|
@@ -107,7 +107,7 @@ end
|
|
107
107
|
end
|
108
108
|
# @return [Hash{String => String}]
|
109
109
|
def get_headers
|
110
|
-
headers = { "X-Fern-Language": 'Ruby', "X-Fern-SDK-Name": 'vellum_ai', "X-Fern-SDK-Version": '1.
|
110
|
+
headers = { "X-Fern-Language": 'Ruby', "X-Fern-SDK-Name": 'vellum_ai', "X-Fern-SDK-Version": '1.5.1' }
|
111
111
|
headers["X-API-KEY"] = ((@api_key.is_a? Method) ? @api_key.call : @api_key) unless @api_key.nil?
|
112
112
|
headers
|
113
113
|
end
|
data/lib/types_export.rb
CHANGED
@@ -94,6 +94,9 @@ require_relative "vellum_ai/types/code_executor_response"
|
|
94
94
|
require_relative "vellum_ai/types/code_resource_definition"
|
95
95
|
require_relative "vellum_ai/types/compile_prompt_deployment_expand_meta_request"
|
96
96
|
require_relative "vellum_ai/types/compile_prompt_meta"
|
97
|
+
require_relative "vellum_ai/types/composio_execute_tool_request"
|
98
|
+
require_relative "vellum_ai/types/composio_execute_tool_response"
|
99
|
+
require_relative "vellum_ai/types/composio_tool_definition"
|
97
100
|
require_relative "vellum_ai/types/condition_combinator"
|
98
101
|
require_relative "vellum_ai/types/conditional_node_result"
|
99
102
|
require_relative "vellum_ai/types/conditional_node_result_data"
|
@@ -176,6 +179,8 @@ require_relative "vellum_ai/types/execute_prompt_event"
|
|
176
179
|
require_relative "vellum_ai/types/fulfilled_execute_prompt_response"
|
177
180
|
require_relative "vellum_ai/types/rejected_execute_prompt_response"
|
178
181
|
require_relative "vellum_ai/types/execute_prompt_response"
|
182
|
+
require_relative "vellum_ai/types/components_schemas_composio_execute_tool_request"
|
183
|
+
require_relative "vellum_ai/types/components_schemas_composio_execute_tool_response"
|
179
184
|
require_relative "vellum_ai/types/execute_workflow_response"
|
180
185
|
require_relative "vellum_ai/types/fulfilled_execute_workflow_workflow_result_event"
|
181
186
|
require_relative "vellum_ai/types/rejected_execute_workflow_workflow_result_event"
|
@@ -570,6 +575,7 @@ require_relative "vellum_ai/types/test_suite_test_case_replaced_bulk_result_data
|
|
570
575
|
require_relative "vellum_ai/types/thinking_vellum_value_request"
|
571
576
|
require_relative "vellum_ai/types/token_overlapping_window_chunker_config"
|
572
577
|
require_relative "vellum_ai/types/token_overlapping_window_chunker_config_request"
|
578
|
+
require_relative "vellum_ai/types/components_schemas_composio_tool_definition"
|
573
579
|
require_relative "vellum_ai/types/unit_enum"
|
574
580
|
require_relative "vellum_ai/types/upload_document_response"
|
575
581
|
require_relative "vellum_ai/types/upsert_test_suite_test_case_request"
|
@@ -0,0 +1,201 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require_relative "../../requests"
|
3
|
+
require_relative "../types/components_schemas_composio_tool_definition"
|
4
|
+
require_relative "../types/components_schemas_composio_execute_tool_request"
|
5
|
+
require_relative "../types/components_schemas_composio_execute_tool_response"
|
6
|
+
require "async"
|
7
|
+
require "async"
|
8
|
+
require_relative "../../requests"
|
9
|
+
|
10
|
+
module Vellum
|
11
|
+
class IntegrationsClient
|
12
|
+
# @return [Vellum::RequestClient]
|
13
|
+
attr_reader :request_client
|
14
|
+
|
15
|
+
|
16
|
+
# @param request_client [Vellum::RequestClient]
|
17
|
+
# @return [Vellum::IntegrationsClient]
|
18
|
+
def initialize(request_client:)
|
19
|
+
@request_client = request_client
|
20
|
+
end
|
21
|
+
# @param integration [String] The integration name
|
22
|
+
# @param provider [String] The integration provider name
|
23
|
+
# @param tool_name [String] The tool's unique name, as specified by the integration provider
|
24
|
+
# @param request_options [Vellum::RequestOptions]
|
25
|
+
# @return [Vellum::COMPONENTS_SCHEMAS_COMPOSIO_TOOL_DEFINITION]
|
26
|
+
# @example
|
27
|
+
# api = Vellum::Client.new(
|
28
|
+
# base_url: "https://api.example.com",
|
29
|
+
# environment: Vellum::Environment::PRODUCTION,
|
30
|
+
# api_key: "YOUR_API_KEY"
|
31
|
+
# )
|
32
|
+
# api.integrations.retrieve_integration_tool_definition(
|
33
|
+
# integration: "integration",
|
34
|
+
# provider: "provider",
|
35
|
+
# tool_name: "tool_name"
|
36
|
+
# )
|
37
|
+
def retrieve_integration_tool_definition(integration:, provider:, tool_name:, request_options: nil)
|
38
|
+
response = @request_client.conn.get do | req |
|
39
|
+
unless request_options&.timeout_in_seconds.nil?
|
40
|
+
req.options.timeout = request_options.timeout_in_seconds
|
41
|
+
end
|
42
|
+
unless request_options&.api_key.nil?
|
43
|
+
req.headers["X-API-KEY"] = request_options.api_key
|
44
|
+
end
|
45
|
+
unless request_options&.api_version.nil?
|
46
|
+
req.headers["X-API-Version"] = request_options.api_version
|
47
|
+
else
|
48
|
+
req.headers["X-API-Version"] = "2025-07-30"
|
49
|
+
end
|
50
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
51
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
52
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
53
|
+
end
|
54
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
55
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
56
|
+
end
|
57
|
+
req.url "#{@request_client.get_url(environment: Default, request_options: request_options)}/integrations/v1/providers/#{integration}/integrations/#{provider}/tools/#{tool_name}"
|
58
|
+
end
|
59
|
+
Vellum::ComposioToolDefinition.from_json(json_object: response.body)
|
60
|
+
end
|
61
|
+
# @param integration [String] The integration name
|
62
|
+
# @param provider [String] The integration provider name
|
63
|
+
# @param tool_name [String] The tool's unique name, as specified by the integration provider
|
64
|
+
# @param request [Hash] Request of type Vellum::COMPONENTS_SCHEMAS_COMPOSIO_EXECUTE_TOOL_REQUEST, as a Hash
|
65
|
+
# * :provider (String)
|
66
|
+
# * :arguments (Hash{String => Object})
|
67
|
+
# @param request_options [Vellum::RequestOptions]
|
68
|
+
# @return [Vellum::COMPONENTS_SCHEMAS_COMPOSIO_EXECUTE_TOOL_RESPONSE]
|
69
|
+
# @example
|
70
|
+
# api = Vellum::Client.new(
|
71
|
+
# base_url: "https://api.example.com",
|
72
|
+
# environment: Vellum::Environment::PRODUCTION,
|
73
|
+
# api_key: "YOUR_API_KEY"
|
74
|
+
# )
|
75
|
+
# api.integrations.execute_integration_tool(
|
76
|
+
# integration: "integration",
|
77
|
+
# provider: "provider",
|
78
|
+
# tool_name: "tool_name",
|
79
|
+
# request: { provider: "COMPOSIO", arguments: { "arguments": {"key":"value"} } }
|
80
|
+
# )
|
81
|
+
def execute_integration_tool(integration:, provider:, tool_name:, request:, request_options: nil)
|
82
|
+
response = @request_client.conn.post do | req |
|
83
|
+
unless request_options&.timeout_in_seconds.nil?
|
84
|
+
req.options.timeout = request_options.timeout_in_seconds
|
85
|
+
end
|
86
|
+
unless request_options&.api_key.nil?
|
87
|
+
req.headers["X-API-KEY"] = request_options.api_key
|
88
|
+
end
|
89
|
+
unless request_options&.api_version.nil?
|
90
|
+
req.headers["X-API-Version"] = request_options.api_version
|
91
|
+
else
|
92
|
+
req.headers["X-API-Version"] = "2025-07-30"
|
93
|
+
end
|
94
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
95
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
96
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
97
|
+
end
|
98
|
+
req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
|
99
|
+
req.url "#{@request_client.get_url(environment: Default, request_options: request_options)}/integrations/v1/providers/#{integration}/integrations/#{provider}/tools/#{tool_name}/execute"
|
100
|
+
end
|
101
|
+
Vellum::ComposioExecuteToolResponse.from_json(json_object: response.body)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
class AsyncIntegrationsClient
|
105
|
+
# @return [Vellum::AsyncRequestClient]
|
106
|
+
attr_reader :request_client
|
107
|
+
|
108
|
+
|
109
|
+
# @param request_client [Vellum::RequestClient]
|
110
|
+
# @return [Vellum::AsyncIntegrationsClient]
|
111
|
+
def initialize(request_client:)
|
112
|
+
@request_client = request_client
|
113
|
+
end
|
114
|
+
# @param integration [String] The integration name
|
115
|
+
# @param provider [String] The integration provider name
|
116
|
+
# @param tool_name [String] The tool's unique name, as specified by the integration provider
|
117
|
+
# @param request_options [Vellum::RequestOptions]
|
118
|
+
# @return [Vellum::COMPONENTS_SCHEMAS_COMPOSIO_TOOL_DEFINITION]
|
119
|
+
# @example
|
120
|
+
# api = Vellum::Client.new(
|
121
|
+
# base_url: "https://api.example.com",
|
122
|
+
# environment: Vellum::Environment::PRODUCTION,
|
123
|
+
# api_key: "YOUR_API_KEY"
|
124
|
+
# )
|
125
|
+
# api.integrations.retrieve_integration_tool_definition(
|
126
|
+
# integration: "integration",
|
127
|
+
# provider: "provider",
|
128
|
+
# tool_name: "tool_name"
|
129
|
+
# )
|
130
|
+
def retrieve_integration_tool_definition(integration:, provider:, tool_name:, request_options: nil)
|
131
|
+
Async do
|
132
|
+
response = @request_client.conn.get do | req |
|
133
|
+
unless request_options&.timeout_in_seconds.nil?
|
134
|
+
req.options.timeout = request_options.timeout_in_seconds
|
135
|
+
end
|
136
|
+
unless request_options&.api_key.nil?
|
137
|
+
req.headers["X-API-KEY"] = request_options.api_key
|
138
|
+
end
|
139
|
+
unless request_options&.api_version.nil?
|
140
|
+
req.headers["X-API-Version"] = request_options.api_version
|
141
|
+
else
|
142
|
+
req.headers["X-API-Version"] = "2025-07-30"
|
143
|
+
end
|
144
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
145
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
146
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
147
|
+
end
|
148
|
+
unless request_options.nil? || request_options&.additional_body_parameters.nil?
|
149
|
+
req.body = { **(request_options&.additional_body_parameters || {}) }.compact
|
150
|
+
end
|
151
|
+
req.url "#{@request_client.get_url(environment: Default, request_options: request_options)}/integrations/v1/providers/#{integration}/integrations/#{provider}/tools/#{tool_name}"
|
152
|
+
end
|
153
|
+
Vellum::ComposioToolDefinition.from_json(json_object: response.body)
|
154
|
+
end
|
155
|
+
end
|
156
|
+
# @param integration [String] The integration name
|
157
|
+
# @param provider [String] The integration provider name
|
158
|
+
# @param tool_name [String] The tool's unique name, as specified by the integration provider
|
159
|
+
# @param request [Hash] Request of type Vellum::COMPONENTS_SCHEMAS_COMPOSIO_EXECUTE_TOOL_REQUEST, as a Hash
|
160
|
+
# * :provider (String)
|
161
|
+
# * :arguments (Hash{String => Object})
|
162
|
+
# @param request_options [Vellum::RequestOptions]
|
163
|
+
# @return [Vellum::COMPONENTS_SCHEMAS_COMPOSIO_EXECUTE_TOOL_RESPONSE]
|
164
|
+
# @example
|
165
|
+
# api = Vellum::Client.new(
|
166
|
+
# base_url: "https://api.example.com",
|
167
|
+
# environment: Vellum::Environment::PRODUCTION,
|
168
|
+
# api_key: "YOUR_API_KEY"
|
169
|
+
# )
|
170
|
+
# api.integrations.execute_integration_tool(
|
171
|
+
# integration: "integration",
|
172
|
+
# provider: "provider",
|
173
|
+
# tool_name: "tool_name",
|
174
|
+
# request: { provider: "COMPOSIO", arguments: { "arguments": {"key":"value"} } }
|
175
|
+
# )
|
176
|
+
def execute_integration_tool(integration:, provider:, tool_name:, request:, request_options: nil)
|
177
|
+
Async do
|
178
|
+
response = @request_client.conn.post do | req |
|
179
|
+
unless request_options&.timeout_in_seconds.nil?
|
180
|
+
req.options.timeout = request_options.timeout_in_seconds
|
181
|
+
end
|
182
|
+
unless request_options&.api_key.nil?
|
183
|
+
req.headers["X-API-KEY"] = request_options.api_key
|
184
|
+
end
|
185
|
+
unless request_options&.api_version.nil?
|
186
|
+
req.headers["X-API-Version"] = request_options.api_version
|
187
|
+
else
|
188
|
+
req.headers["X-API-Version"] = "2025-07-30"
|
189
|
+
end
|
190
|
+
req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
|
191
|
+
unless request_options.nil? || request_options&.additional_query_parameters.nil?
|
192
|
+
req.params = { **(request_options&.additional_query_parameters || {}) }.compact
|
193
|
+
end
|
194
|
+
req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
|
195
|
+
req.url "#{@request_client.get_url(environment: Default, request_options: request_options)}/integrations/v1/providers/#{integration}/integrations/#{provider}/tools/#{tool_name}/execute"
|
196
|
+
end
|
197
|
+
Vellum::ComposioExecuteToolResponse.from_json(json_object: response.body)
|
198
|
+
end
|
199
|
+
end
|
200
|
+
end
|
201
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require "ostruct"
|
3
|
+
require "json"
|
4
|
+
|
5
|
+
module Vellum
|
6
|
+
# Payload for executing a Composio tool with provider id and tool arguments.
|
7
|
+
class ComposioExecuteToolRequest
|
8
|
+
# @return [String]
|
9
|
+
attr_reader :provider
|
10
|
+
# @return [Hash{String => Object}]
|
11
|
+
attr_reader :arguments
|
12
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
13
|
+
attr_reader :additional_properties
|
14
|
+
# @return [Object]
|
15
|
+
attr_reader :_field_set
|
16
|
+
protected :_field_set
|
17
|
+
|
18
|
+
OMIT = Object.new
|
19
|
+
|
20
|
+
# @param provider [String]
|
21
|
+
# @param arguments [Hash{String => Object}]
|
22
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
23
|
+
# @return [Vellum::ComposioExecuteToolRequest]
|
24
|
+
def initialize(provider:, arguments:, additional_properties: nil)
|
25
|
+
@provider = provider
|
26
|
+
@arguments = arguments
|
27
|
+
@additional_properties = additional_properties
|
28
|
+
@_field_set = { "provider": provider, "arguments": arguments }
|
29
|
+
end
|
30
|
+
# Deserialize a JSON object to an instance of ComposioExecuteToolRequest
|
31
|
+
#
|
32
|
+
# @param json_object [String]
|
33
|
+
# @return [Vellum::ComposioExecuteToolRequest]
|
34
|
+
def self.from_json(json_object:)
|
35
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
36
|
+
parsed_json = JSON.parse(json_object)
|
37
|
+
provider = parsed_json["provider"]
|
38
|
+
arguments = parsed_json["arguments"]
|
39
|
+
new(
|
40
|
+
provider: provider,
|
41
|
+
arguments: arguments,
|
42
|
+
additional_properties: struct
|
43
|
+
)
|
44
|
+
end
|
45
|
+
# Serialize an instance of ComposioExecuteToolRequest to a JSON object
|
46
|
+
#
|
47
|
+
# @return [String]
|
48
|
+
def to_json
|
49
|
+
@_field_set&.to_json
|
50
|
+
end
|
51
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
52
|
+
# hash and check each fields type against the current object's property
|
53
|
+
# definitions.
|
54
|
+
#
|
55
|
+
# @param obj [Object]
|
56
|
+
# @return [Void]
|
57
|
+
def self.validate_raw(obj:)
|
58
|
+
obj.provider.is_a?(String) != false || raise("Passed value for field obj.provider is not the expected type, validation failed.")
|
59
|
+
obj.arguments.is_a?(Hash) != false || raise("Passed value for field obj.arguments is not the expected type, validation failed.")
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require "ostruct"
|
3
|
+
require "json"
|
4
|
+
|
5
|
+
module Vellum
|
6
|
+
# Response payload with provider id and execution output from a Composio tool.
|
7
|
+
class ComposioExecuteToolResponse
|
8
|
+
# @return [String]
|
9
|
+
attr_reader :provider
|
10
|
+
# @return [Hash{String => Object}]
|
11
|
+
attr_reader :data
|
12
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
13
|
+
attr_reader :additional_properties
|
14
|
+
# @return [Object]
|
15
|
+
attr_reader :_field_set
|
16
|
+
protected :_field_set
|
17
|
+
|
18
|
+
OMIT = Object.new
|
19
|
+
|
20
|
+
# @param provider [String]
|
21
|
+
# @param data [Hash{String => Object}]
|
22
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
23
|
+
# @return [Vellum::ComposioExecuteToolResponse]
|
24
|
+
def initialize(provider:, data:, additional_properties: nil)
|
25
|
+
@provider = provider
|
26
|
+
@data = data
|
27
|
+
@additional_properties = additional_properties
|
28
|
+
@_field_set = { "provider": provider, "data": data }
|
29
|
+
end
|
30
|
+
# Deserialize a JSON object to an instance of ComposioExecuteToolResponse
|
31
|
+
#
|
32
|
+
# @param json_object [String]
|
33
|
+
# @return [Vellum::ComposioExecuteToolResponse]
|
34
|
+
def self.from_json(json_object:)
|
35
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
36
|
+
parsed_json = JSON.parse(json_object)
|
37
|
+
provider = parsed_json["provider"]
|
38
|
+
data = parsed_json["data"]
|
39
|
+
new(
|
40
|
+
provider: provider,
|
41
|
+
data: data,
|
42
|
+
additional_properties: struct
|
43
|
+
)
|
44
|
+
end
|
45
|
+
# Serialize an instance of ComposioExecuteToolResponse to a JSON object
|
46
|
+
#
|
47
|
+
# @return [String]
|
48
|
+
def to_json
|
49
|
+
@_field_set&.to_json
|
50
|
+
end
|
51
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
52
|
+
# hash and check each fields type against the current object's property
|
53
|
+
# definitions.
|
54
|
+
#
|
55
|
+
# @param obj [Object]
|
56
|
+
# @return [Void]
|
57
|
+
def self.validate_raw(obj:)
|
58
|
+
obj.provider.is_a?(String) != false || raise("Passed value for field obj.provider is not the expected type, validation failed.")
|
59
|
+
obj.data.is_a?(Hash) != false || raise("Passed value for field obj.data is not the expected type, validation failed.")
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require "ostruct"
|
3
|
+
require "json"
|
4
|
+
|
5
|
+
module Vellum
|
6
|
+
# Serializer for Composio tool definition response.
|
7
|
+
class ComposioToolDefinition
|
8
|
+
# @return [String]
|
9
|
+
attr_reader :provider
|
10
|
+
# @return [String]
|
11
|
+
attr_reader :name
|
12
|
+
# @return [String]
|
13
|
+
attr_reader :description
|
14
|
+
# @return [Hash{String => Object}]
|
15
|
+
attr_reader :parameters
|
16
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
17
|
+
attr_reader :additional_properties
|
18
|
+
# @return [Object]
|
19
|
+
attr_reader :_field_set
|
20
|
+
protected :_field_set
|
21
|
+
|
22
|
+
OMIT = Object.new
|
23
|
+
|
24
|
+
# @param provider [String]
|
25
|
+
# @param name [String]
|
26
|
+
# @param description [String]
|
27
|
+
# @param parameters [Hash{String => Object}]
|
28
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
29
|
+
# @return [Vellum::ComposioToolDefinition]
|
30
|
+
def initialize(provider:, name:, description:, parameters:, additional_properties: nil)
|
31
|
+
@provider = provider
|
32
|
+
@name = name
|
33
|
+
@description = description
|
34
|
+
@parameters = parameters
|
35
|
+
@additional_properties = additional_properties
|
36
|
+
@_field_set = { "provider": provider, "name": name, "description": description, "parameters": parameters }
|
37
|
+
end
|
38
|
+
# Deserialize a JSON object to an instance of ComposioToolDefinition
|
39
|
+
#
|
40
|
+
# @param json_object [String]
|
41
|
+
# @return [Vellum::ComposioToolDefinition]
|
42
|
+
def self.from_json(json_object:)
|
43
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
44
|
+
parsed_json = JSON.parse(json_object)
|
45
|
+
provider = parsed_json["provider"]
|
46
|
+
name = parsed_json["name"]
|
47
|
+
description = parsed_json["description"]
|
48
|
+
parameters = parsed_json["parameters"]
|
49
|
+
new(
|
50
|
+
provider: provider,
|
51
|
+
name: name,
|
52
|
+
description: description,
|
53
|
+
parameters: parameters,
|
54
|
+
additional_properties: struct
|
55
|
+
)
|
56
|
+
end
|
57
|
+
# Serialize an instance of ComposioToolDefinition to a JSON object
|
58
|
+
#
|
59
|
+
# @return [String]
|
60
|
+
def to_json
|
61
|
+
@_field_set&.to_json
|
62
|
+
end
|
63
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
64
|
+
# hash and check each fields type against the current object's property
|
65
|
+
# definitions.
|
66
|
+
#
|
67
|
+
# @param obj [Object]
|
68
|
+
# @return [Void]
|
69
|
+
def self.validate_raw(obj:)
|
70
|
+
obj.provider.is_a?(String) != false || raise("Passed value for field obj.provider is not the expected type, validation failed.")
|
71
|
+
obj.name.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
|
72
|
+
obj.description.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.")
|
73
|
+
obj.parameters.is_a?(Hash) != false || raise("Passed value for field obj.parameters is not the expected type, validation failed.")
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -4,17 +4,21 @@ module Vellum
|
|
4
4
|
# * `INVALID_REQUEST` - INVALID_REQUEST
|
5
5
|
# * `INVALID_INPUTS` - INVALID_INPUTS
|
6
6
|
# * `PROVIDER_ERROR` - PROVIDER_ERROR
|
7
|
+
# * `PROVIDER_CREDENTIALS_AVAILABLE` - PROVIDER_CREDENTIALS_UNAVAILABLE
|
7
8
|
# * `REQUEST_TIMEOUT` - REQUEST_TIMEOUT
|
8
9
|
# * `INTERNAL_SERVER_ERROR` - INTERNAL_SERVER_ERROR
|
9
10
|
# * `USER_DEFINED_ERROR` - USER_DEFINED_ERROR
|
11
|
+
# * `WORKFLOW_CANCELLED` - WORKFLOW_CANCELLED
|
10
12
|
class VellumErrorCodeEnum
|
11
13
|
|
12
14
|
INVALID_REQUEST = "INVALID_REQUEST"
|
13
15
|
INVALID_INPUTS = "INVALID_INPUTS"
|
14
16
|
PROVIDER_ERROR = "PROVIDER_ERROR"
|
17
|
+
PROVIDER_CREDENTIALS_AVAILABLE = "PROVIDER_CREDENTIALS_AVAILABLE"
|
15
18
|
REQUEST_TIMEOUT = "REQUEST_TIMEOUT"
|
16
19
|
INTERNAL_SERVER_ERROR = "INTERNAL_SERVER_ERROR"
|
17
20
|
USER_DEFINED_ERROR = "USER_DEFINED_ERROR"
|
21
|
+
WORKFLOW_CANCELLED = "WORKFLOW_CANCELLED"
|
18
22
|
|
19
23
|
end
|
20
24
|
end
|
@@ -9,6 +9,8 @@ module Vellum
|
|
9
9
|
attr_reader :message
|
10
10
|
# @return [Vellum::VellumSdkErrorCodeEnum]
|
11
11
|
attr_reader :code
|
12
|
+
# @return [Hash{String => Object}]
|
13
|
+
attr_reader :raw_data
|
12
14
|
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
13
15
|
attr_reader :additional_properties
|
14
16
|
# @return [Object]
|
@@ -19,13 +21,17 @@ module Vellum
|
|
19
21
|
|
20
22
|
# @param message [String]
|
21
23
|
# @param code [Vellum::VellumSdkErrorCodeEnum]
|
24
|
+
# @param raw_data [Hash{String => Object}]
|
22
25
|
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
23
26
|
# @return [Vellum::VellumSdkError]
|
24
|
-
def initialize(message:, code:, additional_properties: nil)
|
27
|
+
def initialize(message:, code:, raw_data: OMIT, additional_properties: nil)
|
25
28
|
@message = message
|
26
29
|
@code = code
|
30
|
+
@raw_data = raw_data if raw_data != OMIT
|
27
31
|
@additional_properties = additional_properties
|
28
|
-
@_field_set = { "message": message, "code": code }
|
32
|
+
@_field_set = { "message": message, "code": code, "raw_data": raw_data }.reject do | _k, v |
|
33
|
+
v == OMIT
|
34
|
+
end
|
29
35
|
end
|
30
36
|
# Deserialize a JSON object to an instance of VellumSdkError
|
31
37
|
#
|
@@ -36,9 +42,11 @@ module Vellum
|
|
36
42
|
parsed_json = JSON.parse(json_object)
|
37
43
|
message = parsed_json["message"]
|
38
44
|
code = parsed_json["code"]
|
45
|
+
raw_data = parsed_json["raw_data"]
|
39
46
|
new(
|
40
47
|
message: message,
|
41
48
|
code: code,
|
49
|
+
raw_data: raw_data,
|
42
50
|
additional_properties: struct
|
43
51
|
)
|
44
52
|
end
|
@@ -57,6 +65,7 @@ module Vellum
|
|
57
65
|
def self.validate_raw(obj:)
|
58
66
|
obj.message.is_a?(String) != false || raise("Passed value for field obj.message is not the expected type, validation failed.")
|
59
67
|
obj.code.is_a?(Vellum::VellumSdkErrorCodeEnum) != false || raise("Passed value for field obj.code is not the expected type, validation failed.")
|
68
|
+
obj.raw_data&.is_a?(Hash) != false || raise("Passed value for field obj.raw_data is not the expected type, validation failed.")
|
60
69
|
end
|
61
70
|
end
|
62
71
|
end
|
@@ -9,6 +9,8 @@ module Vellum
|
|
9
9
|
attr_reader :message
|
10
10
|
# @return [Vellum::WorkflowExecutionEventErrorCode]
|
11
11
|
attr_reader :code
|
12
|
+
# @return [Hash{String => Object}]
|
13
|
+
attr_reader :raw_data
|
12
14
|
# @return [String]
|
13
15
|
attr_reader :stacktrace
|
14
16
|
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
@@ -21,15 +23,17 @@ module Vellum
|
|
21
23
|
|
22
24
|
# @param message [String]
|
23
25
|
# @param code [Vellum::WorkflowExecutionEventErrorCode]
|
26
|
+
# @param raw_data [Hash{String => Object}]
|
24
27
|
# @param stacktrace [String]
|
25
28
|
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
26
29
|
# @return [Vellum::WorkflowEventError]
|
27
|
-
def initialize(message:, code:, stacktrace: OMIT, additional_properties: nil)
|
30
|
+
def initialize(message:, code:, raw_data: OMIT, stacktrace: OMIT, additional_properties: nil)
|
28
31
|
@message = message
|
29
32
|
@code = code
|
33
|
+
@raw_data = raw_data if raw_data != OMIT
|
30
34
|
@stacktrace = stacktrace if stacktrace != OMIT
|
31
35
|
@additional_properties = additional_properties
|
32
|
-
@_field_set = { "message": message, "code": code, "stacktrace": stacktrace }.reject do | _k, v |
|
36
|
+
@_field_set = { "message": message, "code": code, "raw_data": raw_data, "stacktrace": stacktrace }.reject do | _k, v |
|
33
37
|
v == OMIT
|
34
38
|
end
|
35
39
|
end
|
@@ -42,10 +46,12 @@ end
|
|
42
46
|
parsed_json = JSON.parse(json_object)
|
43
47
|
message = parsed_json["message"]
|
44
48
|
code = parsed_json["code"]
|
49
|
+
raw_data = parsed_json["raw_data"]
|
45
50
|
stacktrace = parsed_json["stacktrace"]
|
46
51
|
new(
|
47
52
|
message: message,
|
48
53
|
code: code,
|
54
|
+
raw_data: raw_data,
|
49
55
|
stacktrace: stacktrace,
|
50
56
|
additional_properties: struct
|
51
57
|
)
|
@@ -65,6 +71,7 @@ end
|
|
65
71
|
def self.validate_raw(obj:)
|
66
72
|
obj.message.is_a?(String) != false || raise("Passed value for field obj.message is not the expected type, validation failed.")
|
67
73
|
obj.code.is_a?(Vellum::WorkflowExecutionEventErrorCode) != false || raise("Passed value for field obj.code is not the expected type, validation failed.")
|
74
|
+
obj.raw_data&.is_a?(Hash) != false || raise("Passed value for field obj.raw_data is not the expected type, validation failed.")
|
68
75
|
obj.stacktrace&.is_a?(String) != false || raise("Passed value for field obj.stacktrace is not the expected type, validation failed.")
|
69
76
|
end
|
70
77
|
end
|
data/lib/vellum_ai.rb
CHANGED
@@ -3,6 +3,7 @@ require_relative "environment"
|
|
3
3
|
require_relative "types_export"
|
4
4
|
require_relative "vellum_ai/types/api_version_enum"
|
5
5
|
require_relative "requests"
|
6
|
+
require_relative "vellum_ai/integrations/client"
|
6
7
|
require_relative "vellum_ai/events/client"
|
7
8
|
require_relative "vellum_ai/ad_hoc/client"
|
8
9
|
require_relative "vellum_ai/container_images/client"
|
@@ -50,6 +51,8 @@ require_relative "requests"
|
|
50
51
|
|
51
52
|
module Vellum
|
52
53
|
class Client
|
54
|
+
# @return [Vellum::IntegrationsClient]
|
55
|
+
attr_reader :integrations
|
53
56
|
# @return [Vellum::EventsClient]
|
54
57
|
attr_reader :events
|
55
58
|
# @return [Vellum::AdHocClient]
|
@@ -108,6 +111,7 @@ module Vellum
|
|
108
111
|
api_key: api_key,
|
109
112
|
api_version: api_version
|
110
113
|
)
|
114
|
+
@integrations = Vellum::IntegrationsClient.new(request_client: @request_client)
|
111
115
|
@events = Vellum::EventsClient.new(request_client: @request_client)
|
112
116
|
@ad_hoc = Vellum::AdHocClient.new(request_client: @request_client)
|
113
117
|
@container_images = Vellum::ContainerImagesClient.new(request_client: @request_client)
|
@@ -507,6 +511,8 @@ end
|
|
507
511
|
end
|
508
512
|
end
|
509
513
|
class AsyncClient
|
514
|
+
# @return [Vellum::AsyncIntegrationsClient]
|
515
|
+
attr_reader :integrations
|
510
516
|
# @return [Vellum::AsyncEventsClient]
|
511
517
|
attr_reader :events
|
512
518
|
# @return [Vellum::AsyncAdHocClient]
|
@@ -565,6 +571,7 @@ end
|
|
565
571
|
api_key: api_key,
|
566
572
|
api_version: api_version
|
567
573
|
)
|
574
|
+
@integrations = Vellum::AsyncIntegrationsClient.new(request_client: @async_request_client)
|
568
575
|
@events = Vellum::AsyncEventsClient.new(request_client: @async_request_client)
|
569
576
|
@ad_hoc = Vellum::AsyncAdHocClient.new(request_client: @async_request_client)
|
570
577
|
@container_images = Vellum::AsyncContainerImagesClient.new(request_client: @async_request_client)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vellum_ai
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vellum
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-09-
|
11
|
+
date: 2025-09-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -148,6 +148,7 @@ files:
|
|
148
148
|
- lib/vellum_ai/events/client.rb
|
149
149
|
- lib/vellum_ai/folder_entities/client.rb
|
150
150
|
- lib/vellum_ai/folder_entities/types/folder_entities_list_request_entity_status.rb
|
151
|
+
- lib/vellum_ai/integrations/client.rb
|
151
152
|
- lib/vellum_ai/metric_definitions/client.rb
|
152
153
|
- lib/vellum_ai/ml_models/client.rb
|
153
154
|
- lib/vellum_ai/organizations/client.rb
|
@@ -216,9 +217,15 @@ files:
|
|
216
217
|
- lib/vellum_ai/types/code_resource_definition.rb
|
217
218
|
- lib/vellum_ai/types/compile_prompt_deployment_expand_meta_request.rb
|
218
219
|
- lib/vellum_ai/types/compile_prompt_meta.rb
|
220
|
+
- lib/vellum_ai/types/components_schemas_composio_execute_tool_request.rb
|
221
|
+
- lib/vellum_ai/types/components_schemas_composio_execute_tool_response.rb
|
222
|
+
- lib/vellum_ai/types/components_schemas_composio_tool_definition.rb
|
219
223
|
- lib/vellum_ai/types/components_schemas_pdf_search_result_meta_source.rb
|
220
224
|
- lib/vellum_ai/types/components_schemas_pdf_search_result_meta_source_request.rb
|
221
225
|
- lib/vellum_ai/types/components_schemas_prompt_version_build_config_sandbox.rb
|
226
|
+
- lib/vellum_ai/types/composio_execute_tool_request.rb
|
227
|
+
- lib/vellum_ai/types/composio_execute_tool_response.rb
|
228
|
+
- lib/vellum_ai/types/composio_tool_definition.rb
|
222
229
|
- lib/vellum_ai/types/condition_combinator.rb
|
223
230
|
- lib/vellum_ai/types/conditional_node_result.rb
|
224
231
|
- lib/vellum_ai/types/conditional_node_result_data.rb
|