cadenya 0.18.0 → 0.19.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: 870caa5861d88c74a29670c427f0582778ef11797b8907256c9abf720b1d351f
4
- data.tar.gz: 4c932d49f6ec3944cf1e6397863a9c09b493bff2532a0e2bbd2c013824005baf
3
+ metadata.gz: 8a1cd1094416300054791cf69e8674033368d3f3c8f780d2b320fdc2f0188aeb
4
+ data.tar.gz: 1e379a7e547aad3305d2862ee4cc916b0d0e2df1543a4ec43df93bb83bca0f33
5
5
  SHA512:
6
- metadata.gz: ec277a7357047b4864a5b3460d7ea70bc8141e860084a73f76b93cb71a0a0b549fb02967bf79e030758d356e2ad19ebaee6f1f8d1d91a8804111dc79311b329b
7
- data.tar.gz: d04915be80453482e4dcac1de5271ead1744caac3b8c903209d2f43d315607afdfdedbcede0b999f6001b87fe2d1af34c1d79584f8c2501300beef2b4c53cc3e
6
+ metadata.gz: 259dd0100c397323f498c42cd3c9af529acd9fa647a039d4c869bd9a64d02ab154750fee6bd7ab5b67c1374c17dbbd85e6c120453f36a6e6045c0b875718ea13
7
+ data.tar.gz: 73baee1a23b48abf85714213080a3acc32f259601e6e21e5e8328ff6ebc95b02a4b4ea11f9a8d4c3f23679fff537c9753966a7e0caeb26afaacc2d0925c87a6b
data/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.19.0 (2026-06-18)
4
+
5
+ Full Changelog: [v0.18.1...v0.19.0](https://github.com/cadenya/cadenya-ruby/compare/v0.18.1...v0.19.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([da7dc73](https://github.com/cadenya/cadenya-ruby/commit/da7dc7340219a440e27f1e41bb140d6a34cac587))
10
+
11
+ ## 0.18.1 (2026-06-17)
12
+
13
+ Full Changelog: [v0.18.0...v0.18.1](https://github.com/cadenya/cadenya-ruby/compare/v0.18.0...v0.18.1)
14
+
15
+ ### Bug Fixes
16
+
17
+ * **client:** send content-type header for requests with an omitted optional body ([bce5290](https://github.com/cadenya/cadenya-ruby/commit/bce5290ac8151e23ce159a2f3557ca1cd1073cf5))
18
+
3
19
  ## 0.18.0 (2026-06-14)
4
20
 
5
21
  Full Changelog: [v0.17.0...v0.18.0](https://github.com/cadenya/cadenya-ruby/compare/v0.17.0...v0.18.0)
data/README.md CHANGED
@@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application
17
17
  <!-- x-release-please-start-version -->
18
18
 
19
19
  ```ruby
20
- gem "cadenya", "~> 0.18.0"
20
+ gem "cadenya", "~> 0.19.0"
21
21
  ```
22
22
 
23
23
  <!-- x-release-please-end -->
@@ -306,7 +306,10 @@ module Cadenya
306
306
  Cadenya::Internal::Util.deep_merge(*[req[:body], opts[:extra_body]].compact)
307
307
  end
308
308
 
309
- headers.delete("content-type") if body.nil?
309
+ # Generated methods always pass `req[:body]` for operations that define a
310
+ # request body, so only elide the content-type header when the operation
311
+ # has no body at all, not when an optional body param was omitted.
312
+ headers.delete("content-type") if body.nil? && !req.key?(:body)
310
313
 
311
314
  url = Cadenya::Internal::Util.join_parsed_uri(
312
315
  @base_url_components,
@@ -3,6 +3,11 @@
3
3
  module Cadenya
4
4
  module Models
5
5
  class ToolSetInfo < Cadenya::Internal::Type::BaseModel
6
+ # @!attribute available_tools
7
+ #
8
+ # @return [Integer, nil]
9
+ optional :available_tools, Integer, api_name: :availableTools
10
+
6
11
  # @!attribute created_by
7
12
  # A profile identifies a user or non-human principal (such as an API key) at the
8
13
  # account level. Profiles are account-scoped and can be granted access to multiple
@@ -11,6 +16,11 @@ module Cadenya
11
16
  # @return [Cadenya::Models::Profile, nil]
12
17
  optional :created_by, -> { Cadenya::Profile }, api_name: :createdBy
13
18
 
19
+ # @!attribute omitted_tools
20
+ #
21
+ # @return [Integer, nil]
22
+ optional :omitted_tools, Integer, api_name: :omittedTools
23
+
14
24
  response_only do
15
25
  # @!attribute agent_count
16
26
  #
@@ -28,16 +38,20 @@ module Cadenya
28
38
  optional :tool_count, Integer, api_name: :toolCount
29
39
  end
30
40
 
31
- # @!method initialize(agent_count: nil, created_by: nil, last_sync: nil, tool_count: nil)
41
+ # @!method initialize(agent_count: nil, available_tools: nil, created_by: nil, last_sync: nil, omitted_tools: nil, tool_count: nil)
32
42
  # Some parameter documentations has been truncated, see
33
43
  # {Cadenya::Models::ToolSetInfo} for more details.
34
44
  #
35
45
  # @param agent_count [Integer]
36
46
  #
47
+ # @param available_tools [Integer]
48
+ #
37
49
  # @param created_by [Cadenya::Models::Profile] A profile identifies a user or non-human principal (such as an API key)
38
50
  #
39
51
  # @param last_sync [Time]
40
52
  #
53
+ # @param omitted_tools [Integer]
54
+ #
41
55
  # @param tool_count [Integer]
42
56
  end
43
57
  end
@@ -37,18 +37,7 @@ module Cadenya
37
37
  # @return [String, nil]
38
38
  optional :request_body_template, String, api_name: :requestBodyTemplate
39
39
 
40
- # @!attribute tool_name
41
- # The tool name (commonly an "operation id" in OpenAPI specs) to call on the HTTP
42
- # adapter. This is used to match the tool spec to the correct endpoint on the HTTP
43
- # adapter. it will be derived from the name of the tool if not provided.
44
- #
45
- # @return [String, nil]
46
- optional :tool_name, String, api_name: :toolName
47
-
48
- # @!method initialize(request_method:, headers: nil, path: nil, query: nil, request_body_content_type: nil, request_body_template: nil, tool_name: nil)
49
- # Some parameter documentations has been truncated, see
50
- # {Cadenya::Models::ToolSets::ConfigHTTP} for more details.
51
- #
40
+ # @!method initialize(request_method:, headers: nil, path: nil, query: nil, request_body_content_type: nil, request_body_template: nil)
52
41
  # @param request_method [Symbol, Cadenya::Models::ToolSets::ConfigHTTP::RequestMethod]
53
42
  #
54
43
  # @param headers [Hash{Symbol=>String}]
@@ -60,8 +49,6 @@ module Cadenya
60
49
  # @param request_body_content_type [String]
61
50
  #
62
51
  # @param request_body_template [String] These are only used when the request method is a POST, PUT, or PATCH
63
- #
64
- # @param tool_name [String] The tool name (commonly an "operation id" in OpenAPI specs) to call on the HTTP
65
52
 
66
53
  # @see Cadenya::Models::ToolSets::ConfigHTTP#request_method
67
54
  module RequestMethod
@@ -3,27 +3,8 @@
3
3
  module Cadenya
4
4
  module Models
5
5
  module ToolSets
6
- class ConfigMcp < Cadenya::Internal::Type::BaseModel
7
- # @!attribute tool_description
8
- #
9
- # @return [String, nil]
10
- optional :tool_description, String, api_name: :toolDescription
11
-
12
- # @!attribute tool_name
13
- #
14
- # @return [String, nil]
15
- optional :tool_name, String, api_name: :toolName
16
-
17
- # @!attribute tool_title
18
- #
19
- # @return [String, nil]
20
- optional :tool_title, String, api_name: :toolTitle
21
-
22
- # @!method initialize(tool_description: nil, tool_name: nil, tool_title: nil)
23
- # @param tool_description [String]
24
- # @param tool_name [String]
25
- # @param tool_title [String]
26
- end
6
+ # @type [Cadenya::Internal::Type::Converter]
7
+ ConfigMcp = Cadenya::Internal::Type::Unknown
27
8
  end
28
9
  end
29
10
  end
@@ -9,19 +9,13 @@ module Cadenya
9
9
  # @return [String, nil]
10
10
  optional :method_, String, api_name: :method
11
11
 
12
- # @!attribute operation_id
13
- #
14
- # @return [String, nil]
15
- optional :operation_id, String, api_name: :operationId
16
-
17
12
  # @!attribute path
18
13
  #
19
14
  # @return [String, nil]
20
15
  optional :path, String
21
16
 
22
- # @!method initialize(method_: nil, operation_id: nil, path: nil)
17
+ # @!method initialize(method_: nil, path: nil)
23
18
  # @param method_ [String]
24
- # @param operation_id [String]
25
19
  # @param path [String]
26
20
  end
27
21
  end
@@ -27,7 +27,16 @@ module Cadenya
27
27
  # @return [Boolean]
28
28
  required :requires_approval, Cadenya::Internal::Type::Boolean, api_name: :requiresApproval
29
29
 
30
- # @!method initialize(config:, description:, parameters:, requires_approval:)
30
+ # @!attribute llm_tool_name
31
+ # The name provided to the LLM, which may differ from the metadata.name on the
32
+ # tool. LLMs have specific length and format requirements, and tool set sources
33
+ # may not comply with them, so Cadenya does its best to format names into a usable
34
+ # format.
35
+ #
36
+ # @return [String, nil]
37
+ optional :llm_tool_name, String, api_name: :llmToolName
38
+
39
+ # @!method initialize(config:, description:, parameters:, requires_approval:, llm_tool_name: nil)
31
40
  # Some parameter documentations has been truncated, see
32
41
  # {Cadenya::Models::ToolSets::ToolSpec} for more details.
33
42
  #
@@ -38,6 +47,8 @@ module Cadenya
38
47
  # @param parameters [Hash{Symbol=>Object}]
39
48
  #
40
49
  # @param requires_approval [Boolean]
50
+ #
51
+ # @param llm_tool_name [String] The name provided to the LLM, which may differ from the metadata.name on the too
41
52
  end
42
53
  end
43
54
  end
@@ -11,8 +11,8 @@ module Cadenya
11
11
 
12
12
  # @!attribute mcp
13
13
  #
14
- # @return [Cadenya::Models::ToolSets::ConfigMcp, nil]
15
- optional :mcp, -> { Cadenya::ToolSets::ConfigMcp }
14
+ # @return [Object, nil]
15
+ optional :mcp, Cadenya::Internal::Type::Unknown
16
16
 
17
17
  # @!attribute openapi
18
18
  #
@@ -25,7 +25,7 @@ module Cadenya
25
25
  # be Http. If the tool is an inline tool, the adapter will be Inline.
26
26
  #
27
27
  # @param http [Cadenya::Models::ToolSets::ConfigHTTP]
28
- # @param mcp [Cadenya::Models::ToolSets::ConfigMcp]
28
+ # @param mcp [Object]
29
29
  # @param openapi [Cadenya::Models::ToolSets::ConfigOpenAPI]
30
30
  end
31
31
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Cadenya
4
- VERSION = "0.18.0"
4
+ VERSION = "0.19.0"
5
5
  end
@@ -6,6 +6,12 @@ module Cadenya
6
6
  OrHash =
7
7
  T.type_alias { T.any(Cadenya::ToolSetInfo, Cadenya::Internal::AnyHash) }
8
8
 
9
+ sig { returns(T.nilable(Integer)) }
10
+ attr_reader :available_tools
11
+
12
+ sig { params(available_tools: Integer).void }
13
+ attr_writer :available_tools
14
+
9
15
  # A profile identifies a user or non-human principal (such as an API key) at the
10
16
  # account level. Profiles are account-scoped and can be granted access to multiple
11
17
  # workspaces.
@@ -15,6 +21,12 @@ module Cadenya
15
21
  sig { params(created_by: Cadenya::Profile::OrHash).void }
16
22
  attr_writer :created_by
17
23
 
24
+ sig { returns(T.nilable(Integer)) }
25
+ attr_reader :omitted_tools
26
+
27
+ sig { params(omitted_tools: Integer).void }
28
+ attr_writer :omitted_tools
29
+
18
30
  sig { returns(T.nilable(Integer)) }
19
31
  attr_reader :agent_count
20
32
 
@@ -36,18 +48,22 @@ module Cadenya
36
48
  sig do
37
49
  params(
38
50
  agent_count: Integer,
51
+ available_tools: Integer,
39
52
  created_by: Cadenya::Profile::OrHash,
40
53
  last_sync: Time,
54
+ omitted_tools: Integer,
41
55
  tool_count: Integer
42
56
  ).returns(T.attached_class)
43
57
  end
44
58
  def self.new(
45
59
  agent_count: nil,
60
+ available_tools: nil,
46
61
  # A profile identifies a user or non-human principal (such as an API key) at the
47
62
  # account level. Profiles are account-scoped and can be granted access to multiple
48
63
  # workspaces.
49
64
  created_by: nil,
50
65
  last_sync: nil,
66
+ omitted_tools: nil,
51
67
  tool_count: nil
52
68
  )
53
69
  end
@@ -56,8 +72,10 @@ module Cadenya
56
72
  override.returns(
57
73
  {
58
74
  agent_count: Integer,
75
+ available_tools: Integer,
59
76
  created_by: Cadenya::Profile,
60
77
  last_sync: Time,
78
+ omitted_tools: Integer,
61
79
  tool_count: Integer
62
80
  }
63
81
  )
@@ -43,15 +43,6 @@ module Cadenya
43
43
  sig { params(request_body_template: String).void }
44
44
  attr_writer :request_body_template
45
45
 
46
- # The tool name (commonly an "operation id" in OpenAPI specs) to call on the HTTP
47
- # adapter. This is used to match the tool spec to the correct endpoint on the HTTP
48
- # adapter. it will be derived from the name of the tool if not provided.
49
- sig { returns(T.nilable(String)) }
50
- attr_reader :tool_name
51
-
52
- sig { params(tool_name: String).void }
53
- attr_writer :tool_name
54
-
55
46
  sig do
56
47
  params(
57
48
  request_method:
@@ -60,8 +51,7 @@ module Cadenya
60
51
  path: String,
61
52
  query: String,
62
53
  request_body_content_type: String,
63
- request_body_template: String,
64
- tool_name: String
54
+ request_body_template: String
65
55
  ).returns(T.attached_class)
66
56
  end
67
57
  def self.new(
@@ -71,11 +61,7 @@ module Cadenya
71
61
  query: nil,
72
62
  request_body_content_type: nil,
73
63
  # These are only used when the request method is a POST, PUT, or PATCH
74
- request_body_template: nil,
75
- # The tool name (commonly an "operation id" in OpenAPI specs) to call on the HTTP
76
- # adapter. This is used to match the tool spec to the correct endpoint on the HTTP
77
- # adapter. it will be derived from the name of the tool if not provided.
78
- tool_name: nil
64
+ request_body_template: nil
79
65
  )
80
66
  end
81
67
 
@@ -88,8 +74,7 @@ module Cadenya
88
74
  path: String,
89
75
  query: String,
90
76
  request_body_content_type: String,
91
- request_body_template: String,
92
- tool_name: String
77
+ request_body_template: String
93
78
  }
94
79
  )
95
80
  end
@@ -3,48 +3,7 @@
3
3
  module Cadenya
4
4
  module Models
5
5
  module ToolSets
6
- class ConfigMcp < Cadenya::Internal::Type::BaseModel
7
- OrHash =
8
- T.type_alias do
9
- T.any(Cadenya::ToolSets::ConfigMcp, Cadenya::Internal::AnyHash)
10
- end
11
-
12
- sig { returns(T.nilable(String)) }
13
- attr_reader :tool_description
14
-
15
- sig { params(tool_description: String).void }
16
- attr_writer :tool_description
17
-
18
- sig { returns(T.nilable(String)) }
19
- attr_reader :tool_name
20
-
21
- sig { params(tool_name: String).void }
22
- attr_writer :tool_name
23
-
24
- sig { returns(T.nilable(String)) }
25
- attr_reader :tool_title
26
-
27
- sig { params(tool_title: String).void }
28
- attr_writer :tool_title
29
-
30
- sig do
31
- params(
32
- tool_description: String,
33
- tool_name: String,
34
- tool_title: String
35
- ).returns(T.attached_class)
36
- end
37
- def self.new(tool_description: nil, tool_name: nil, tool_title: nil)
38
- end
39
-
40
- sig do
41
- override.returns(
42
- { tool_description: String, tool_name: String, tool_title: String }
43
- )
44
- end
45
- def to_hash
46
- end
47
- end
6
+ ConfigMcp = T.let(T.anything, Cadenya::Internal::Type::Converter)
48
7
  end
49
8
  end
50
9
  end
@@ -15,31 +15,17 @@ module Cadenya
15
15
  sig { params(method_: String).void }
16
16
  attr_writer :method_
17
17
 
18
- sig { returns(T.nilable(String)) }
19
- attr_reader :operation_id
20
-
21
- sig { params(operation_id: String).void }
22
- attr_writer :operation_id
23
-
24
18
  sig { returns(T.nilable(String)) }
25
19
  attr_reader :path
26
20
 
27
21
  sig { params(path: String).void }
28
22
  attr_writer :path
29
23
 
30
- sig do
31
- params(method_: String, operation_id: String, path: String).returns(
32
- T.attached_class
33
- )
34
- end
35
- def self.new(method_: nil, operation_id: nil, path: nil)
24
+ sig { params(method_: String, path: String).returns(T.attached_class) }
25
+ def self.new(method_: nil, path: nil)
36
26
  end
37
27
 
38
- sig do
39
- override.returns(
40
- { method_: String, operation_id: String, path: String }
41
- )
42
- end
28
+ sig { override.returns({ method_: String, path: String }) }
43
29
  def to_hash
44
30
  end
45
31
  end
@@ -27,12 +27,23 @@ module Cadenya
27
27
  sig { returns(T::Boolean) }
28
28
  attr_accessor :requires_approval
29
29
 
30
+ # The name provided to the LLM, which may differ from the metadata.name on the
31
+ # tool. LLMs have specific length and format requirements, and tool set sources
32
+ # may not comply with them, so Cadenya does its best to format names into a usable
33
+ # format.
34
+ sig { returns(T.nilable(String)) }
35
+ attr_reader :llm_tool_name
36
+
37
+ sig { params(llm_tool_name: String).void }
38
+ attr_writer :llm_tool_name
39
+
30
40
  sig do
31
41
  params(
32
42
  config: Cadenya::ToolSets::ToolSpecConfig::OrHash,
33
43
  description: String,
34
44
  parameters: T::Hash[Symbol, T.anything],
35
- requires_approval: T::Boolean
45
+ requires_approval: T::Boolean,
46
+ llm_tool_name: String
36
47
  ).returns(T.attached_class)
37
48
  end
38
49
  def self.new(
@@ -42,7 +53,12 @@ module Cadenya
42
53
  config:,
43
54
  description:,
44
55
  parameters:,
45
- requires_approval:
56
+ requires_approval:,
57
+ # The name provided to the LLM, which may differ from the metadata.name on the
58
+ # tool. LLMs have specific length and format requirements, and tool set sources
59
+ # may not comply with them, so Cadenya does its best to format names into a usable
60
+ # format.
61
+ llm_tool_name: nil
46
62
  )
47
63
  end
48
64
 
@@ -52,7 +68,8 @@ module Cadenya
52
68
  config: Cadenya::ToolSets::ToolSpecConfig,
53
69
  description: String,
54
70
  parameters: T::Hash[Symbol, T.anything],
55
- requires_approval: T::Boolean
71
+ requires_approval: T::Boolean,
72
+ llm_tool_name: String
56
73
  }
57
74
  )
58
75
  end
@@ -15,10 +15,10 @@ module Cadenya
15
15
  sig { params(http: Cadenya::ToolSets::ConfigHTTP::OrHash).void }
16
16
  attr_writer :http
17
17
 
18
- sig { returns(T.nilable(Cadenya::ToolSets::ConfigMcp)) }
18
+ sig { returns(T.nilable(T.anything)) }
19
19
  attr_reader :mcp
20
20
 
21
- sig { params(mcp: Cadenya::ToolSets::ConfigMcp::OrHash).void }
21
+ sig { params(mcp: T.anything).void }
22
22
  attr_writer :mcp
23
23
 
24
24
  sig { returns(T.nilable(Cadenya::ToolSets::ConfigOpenAPI)) }
@@ -33,7 +33,7 @@ module Cadenya
33
33
  sig do
34
34
  params(
35
35
  http: Cadenya::ToolSets::ConfigHTTP::OrHash,
36
- mcp: Cadenya::ToolSets::ConfigMcp::OrHash,
36
+ mcp: T.anything,
37
37
  openapi: Cadenya::ToolSets::ConfigOpenAPI::OrHash
38
38
  ).returns(T.attached_class)
39
39
  end
@@ -44,7 +44,7 @@ module Cadenya
44
44
  override.returns(
45
45
  {
46
46
  http: Cadenya::ToolSets::ConfigHTTP,
47
- mcp: Cadenya::ToolSets::ConfigMcp,
47
+ mcp: T.anything,
48
48
  openapi: Cadenya::ToolSets::ConfigOpenAPI
49
49
  }
50
50
  )
@@ -3,16 +3,26 @@ module Cadenya
3
3
  type tool_set_info =
4
4
  {
5
5
  agent_count: Integer,
6
+ available_tools: Integer,
6
7
  created_by: Cadenya::Profile,
7
8
  last_sync: Time,
9
+ omitted_tools: Integer,
8
10
  tool_count: Integer
9
11
  }
10
12
 
11
13
  class ToolSetInfo < Cadenya::Internal::Type::BaseModel
14
+ attr_reader available_tools: Integer?
15
+
16
+ def available_tools=: (Integer) -> Integer
17
+
12
18
  attr_reader created_by: Cadenya::Profile?
13
19
 
14
20
  def created_by=: (Cadenya::Profile) -> Cadenya::Profile
15
21
 
22
+ attr_reader omitted_tools: Integer?
23
+
24
+ def omitted_tools=: (Integer) -> Integer
25
+
16
26
  attr_reader agent_count: Integer?
17
27
 
18
28
  def agent_count=: (Integer) -> Integer
@@ -27,15 +37,19 @@ module Cadenya
27
37
 
28
38
  def initialize: (
29
39
  ?agent_count: Integer,
40
+ ?available_tools: Integer,
30
41
  ?created_by: Cadenya::Profile,
31
42
  ?last_sync: Time,
43
+ ?omitted_tools: Integer,
32
44
  ?tool_count: Integer
33
45
  ) -> void
34
46
 
35
47
  def to_hash: -> {
36
48
  agent_count: Integer,
49
+ available_tools: Integer,
37
50
  created_by: Cadenya::Profile,
38
51
  last_sync: Time,
52
+ omitted_tools: Integer,
39
53
  tool_count: Integer
40
54
  }
41
55
  end
@@ -8,8 +8,7 @@ module Cadenya
8
8
  path: String,
9
9
  query: String,
10
10
  request_body_content_type: String,
11
- request_body_template: String,
12
- tool_name: String
11
+ request_body_template: String
13
12
  }
14
13
 
15
14
  class ConfigHTTP < Cadenya::Internal::Type::BaseModel
@@ -35,18 +34,13 @@ module Cadenya
35
34
 
36
35
  def request_body_template=: (String) -> String
37
36
 
38
- attr_reader tool_name: String?
39
-
40
- def tool_name=: (String) -> String
41
-
42
37
  def initialize: (
43
38
  request_method: Cadenya::Models::ToolSets::ConfigHTTP::request_method,
44
39
  ?headers: ::Hash[Symbol, String],
45
40
  ?path: String,
46
41
  ?query: String,
47
42
  ?request_body_content_type: String,
48
- ?request_body_template: String,
49
- ?tool_name: String
43
+ ?request_body_template: String
50
44
  ) -> void
51
45
 
52
46
  def to_hash: -> {
@@ -55,8 +49,7 @@ module Cadenya
55
49
  path: String,
56
50
  query: String,
57
51
  request_body_content_type: String,
58
- request_body_template: String,
59
- tool_name: String
52
+ request_body_template: String
60
53
  }
61
54
 
62
55
  type request_method =
@@ -1,34 +1,7 @@
1
1
  module Cadenya
2
2
  module Models
3
3
  module ToolSets
4
- type config_mcp =
5
- { tool_description: String, tool_name: String, tool_title: String }
6
-
7
- class ConfigMcp < Cadenya::Internal::Type::BaseModel
8
- attr_reader tool_description: String?
9
-
10
- def tool_description=: (String) -> String
11
-
12
- attr_reader tool_name: String?
13
-
14
- def tool_name=: (String) -> String
15
-
16
- attr_reader tool_title: String?
17
-
18
- def tool_title=: (String) -> String
19
-
20
- def initialize: (
21
- ?tool_description: String,
22
- ?tool_name: String,
23
- ?tool_title: String
24
- ) -> void
25
-
26
- def to_hash: -> {
27
- tool_description: String,
28
- tool_name: String,
29
- tool_title: String
30
- }
31
- end
4
+ ConfigMcp: Cadenya::Internal::Type::Converter
32
5
  end
33
6
  end
34
7
  end
@@ -1,29 +1,20 @@
1
1
  module Cadenya
2
2
  module Models
3
3
  module ToolSets
4
- type config_openapi =
5
- { method_: String, operation_id: String, path: String }
4
+ type config_openapi = { method_: String, path: String }
6
5
 
7
6
  class ConfigOpenAPI < Cadenya::Internal::Type::BaseModel
8
7
  attr_reader method_: String?
9
8
 
10
9
  def method_=: (String) -> String
11
10
 
12
- attr_reader operation_id: String?
13
-
14
- def operation_id=: (String) -> String
15
-
16
11
  attr_reader path: String?
17
12
 
18
13
  def path=: (String) -> String
19
14
 
20
- def initialize: (
21
- ?method_: String,
22
- ?operation_id: String,
23
- ?path: String
24
- ) -> void
15
+ def initialize: (?method_: String, ?path: String) -> void
25
16
 
26
- def to_hash: -> { method_: String, operation_id: String, path: String }
17
+ def to_hash: -> { method_: String, path: String }
27
18
  end
28
19
  end
29
20
  end
@@ -6,7 +6,8 @@ module Cadenya
6
6
  config: Cadenya::ToolSets::ToolSpecConfig,
7
7
  description: String,
8
8
  parameters: ::Hash[Symbol, top],
9
- requires_approval: bool
9
+ requires_approval: bool,
10
+ llm_tool_name: String
10
11
  }
11
12
 
12
13
  class ToolSpec < Cadenya::Internal::Type::BaseModel
@@ -18,18 +19,24 @@ module Cadenya
18
19
 
19
20
  attr_accessor requires_approval: bool
20
21
 
22
+ attr_reader llm_tool_name: String?
23
+
24
+ def llm_tool_name=: (String) -> String
25
+
21
26
  def initialize: (
22
27
  config: Cadenya::ToolSets::ToolSpecConfig,
23
28
  description: String,
24
29
  parameters: ::Hash[Symbol, top],
25
- requires_approval: bool
30
+ requires_approval: bool,
31
+ ?llm_tool_name: String
26
32
  ) -> void
27
33
 
28
34
  def to_hash: -> {
29
35
  config: Cadenya::ToolSets::ToolSpecConfig,
30
36
  description: String,
31
37
  parameters: ::Hash[Symbol, top],
32
- requires_approval: bool
38
+ requires_approval: bool,
39
+ llm_tool_name: String
33
40
  }
34
41
  end
35
42
  end
@@ -4,7 +4,7 @@ module Cadenya
4
4
  type tool_spec_config =
5
5
  {
6
6
  http: Cadenya::ToolSets::ConfigHTTP,
7
- mcp: Cadenya::ToolSets::ConfigMcp,
7
+ mcp: top,
8
8
  openapi: Cadenya::ToolSets::ConfigOpenAPI
9
9
  }
10
10
 
@@ -15,9 +15,9 @@ module Cadenya
15
15
  Cadenya::ToolSets::ConfigHTTP
16
16
  ) -> Cadenya::ToolSets::ConfigHTTP
17
17
 
18
- attr_reader mcp: Cadenya::ToolSets::ConfigMcp?
18
+ attr_reader mcp: top?
19
19
 
20
- def mcp=: (Cadenya::ToolSets::ConfigMcp) -> Cadenya::ToolSets::ConfigMcp
20
+ def mcp=: (top) -> top
21
21
 
22
22
  attr_reader openapi: Cadenya::ToolSets::ConfigOpenAPI?
23
23
 
@@ -27,13 +27,13 @@ module Cadenya
27
27
 
28
28
  def initialize: (
29
29
  ?http: Cadenya::ToolSets::ConfigHTTP,
30
- ?mcp: Cadenya::ToolSets::ConfigMcp,
30
+ ?mcp: top,
31
31
  ?openapi: Cadenya::ToolSets::ConfigOpenAPI
32
32
  ) -> void
33
33
 
34
34
  def to_hash: -> {
35
35
  http: Cadenya::ToolSets::ConfigHTTP,
36
- mcp: Cadenya::ToolSets::ConfigMcp,
36
+ mcp: top,
37
37
  openapi: Cadenya::ToolSets::ConfigOpenAPI
38
38
  }
39
39
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cadenya
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.0
4
+ version: 0.19.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cadenya
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-06-14 00:00:00.000000000 Z
11
+ date: 2026-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cgi