vellum_ai 1.4.1 → 1.5.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 40d3af379d99e4ff7cefe267c5014510448e35c020315233fd56df982c6451eb
4
- data.tar.gz: 4cecad16e0466bfb31fc4ccadff9049675a59aa6af303c81cd2f2ddaa1a9595e
3
+ metadata.gz: 8e60ae37842581fd4ea419c7da0603b367c854a819751390c851e18410e969c6
4
+ data.tar.gz: 2e72bae00cd3fadf6c6e98705f45157cf997f3a7e1438d27cdc80047c21eb2c8
5
5
  SHA512:
6
- metadata.gz: a1e612d77066a827d45ceb7a4ab908fb03627b631010b1506ef8283bff230232652ccc613679f4dd8cee06f262e5a2760ab4d379d75511188e9db61d90c02bbe
7
- data.tar.gz: b98f111171a6d2a692fa89fbff46617e00f244ba733a3bfb45888b50f809d7e34357926ee112db5c2be2e50563775109c1a1967dc390dc564fecdd1cc56ad895
6
+ metadata.gz: 8e6af35db088428aba10b275967031234771c0423e4e6f3e40d484eef422df7cc01cc4f392ed1017e1e35241acf49f51f64cdfb07fd4dcfb664c08d497c69a7f
7
+ data.tar.gz: ea4fe6ac45e0e888e9e03c2d289054ca0e1e7bd78686594c1ece91202cbd346a10126f830e2bab66fde76df46517be3f92f42944dcc52b79ce1a436783fadad7
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.4.1' }
59
+ headers = { "X-Fern-Language": 'Ruby', "X-Fern-SDK-Name": 'vellum_ai', "X-Fern-SDK-Version": '1.5.0' }
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.4.1' }
110
+ headers = { "X-Fern-Language": 'Ruby', "X-Fern-SDK-Name": 'vellum_ai', "X-Fern-SDK-Version": '1.5.0' }
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,6 @@
1
+ # frozen_string_literal: true
2
+ require_relative "composio_execute_tool_request"
3
+
4
+ module Vellum
5
+ COMPONENTS_SCHEMAS_COMPOSIO_EXECUTE_TOOL_REQUEST = Vellum::ComposioExecuteToolRequest
6
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+ require_relative "composio_execute_tool_response"
3
+
4
+ module Vellum
5
+ COMPONENTS_SCHEMAS_COMPOSIO_EXECUTE_TOOL_RESPONSE = Vellum::ComposioExecuteToolResponse
6
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+ require_relative "composio_tool_definition"
3
+
4
+ module Vellum
5
+ COMPONENTS_SCHEMAS_COMPOSIO_TOOL_DEFINITION = Vellum::ComposioToolDefinition
6
+ 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.1
4
+ version: 1.5.0
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-17 00:00:00.000000000 Z
11
+ date: 2025-09-23 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