cadenya 0.5.0 → 0.6.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: f2d3ccc2b08967b6c09113b9f86077582cecb2ff914643efd624d35f590ee2e9
4
- data.tar.gz: 7e2cfc5c58da2c628a855f586bc46aba2b96c936ac13611c3cb0761b54c0e028
3
+ metadata.gz: '0488a69eb293e3cb4a745c2db7ed2b94aa1b59c82f6e6c1fbee1fa2bf392b216'
4
+ data.tar.gz: b3dcf3ecdfbbbf92bc8fc62e5293c1f5d456d4ff0341b5e26e0e161a3d630730
5
5
  SHA512:
6
- metadata.gz: 577b0a9463ee0830ec2f85033e6e858172101ca5580f398c919c4c45b6c5d5867358fa2c3e1dc18f316040ce50bde17065d18991a7bc053a8d4a4dcae936ac54
7
- data.tar.gz: 623d30dc59554aeb07440ac9c163fc99ff2cb45120c36601a74133b3cb7cb02301f37b5abcf47addf165eacdc2652254846a81d9bf0f2d02ce49d71ac3f091f3
6
+ metadata.gz: '0984e2d2b5c3e8aa4865e9048035a67ff75add28a8def45559155bce5d3c07c3efd685a59f8fd4b9e6f067eeb2379d34aabb07d4a93624e82b33eb816e49c2ea'
7
+ data.tar.gz: ca3bc8d58078c5f0ab8f5968176571bc256433bb230dfdaa4e0abe28b4c673c5ea624bd6038930e7aeb59a8bcf84f8af9c16f4898588430cae636c4ccfb8e985
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.6.0 (2026-06-07)
4
+
5
+ Full Changelog: [v0.5.0...v0.6.0](https://github.com/cadenya/cadenya-ruby/compare/v0.5.0...v0.6.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([28a45e6](https://github.com/cadenya/cadenya-ruby/commit/28a45e61e923a2b1e555c73fe23299d38db83c7e))
10
+
3
11
  ## 0.5.0 (2026-06-07)
4
12
 
5
13
  Full Changelog: [v0.4.0...v0.5.0](https://github.com/cadenya/cadenya-ruby/compare/v0.4.0...v0.5.0)
data/README.md CHANGED
@@ -26,7 +26,7 @@ To use this gem, install via Bundler by adding the following to your application
26
26
  <!-- x-release-please-start-version -->
27
27
 
28
28
  ```ruby
29
- gem "cadenya", "~> 0.5.0"
29
+ gem "cadenya", "~> 0.6.0"
30
30
  ```
31
31
 
32
32
  <!-- x-release-please-end -->
@@ -37,6 +37,13 @@ module Cadenya
37
37
  # @see Cadenya::Models::Model#info
38
38
  class Info < Cadenya::Internal::Type::BaseModel
39
39
  response_only do
40
+ # @!attribute agent_variation_count
41
+ # Number of agent variations currently provisioned on this model. Useful for
42
+ # previewing how many variations a swap would affect.
43
+ #
44
+ # @return [Integer, nil]
45
+ optional :agent_variation_count, Integer, api_name: :agentVariationCount
46
+
40
47
  # @!attribute ai_provider_key
41
48
  # BareMetadata contains the minimal metadata for a resource: the ID and an
42
49
  # optional human-readable name. These are used for reference fields where the full
@@ -55,12 +62,14 @@ module Cadenya
55
62
  optional :provider, enum: -> { Cadenya::Model::Info::Provider }
56
63
  end
57
64
 
58
- # @!method initialize(ai_provider_key: nil, provider: nil)
65
+ # @!method initialize(agent_variation_count: nil, ai_provider_key: nil, provider: nil)
59
66
  # Some parameter documentations has been truncated, see
60
67
  # {Cadenya::Models::Model::Info} for more details.
61
68
  #
62
69
  # ModelInfo carries server-derived, read-only details about a model.
63
70
  #
71
+ # @param agent_variation_count [Integer] Number of agent variations currently provisioned on this model. Useful for
72
+ #
64
73
  # @param ai_provider_key [Cadenya::Models::BareMetadata] BareMetadata contains the minimal metadata for a resource: the ID and an
65
74
  #
66
75
  # @param provider [Symbol, Cadenya::Models::Model::Info::Provider] The AI provider this model routes through (via its provider key).
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cadenya
4
+ module Models
5
+ # @see Cadenya::Resources::Models#swap
6
+ class ModelSwapParams < Cadenya::Internal::Type::BaseModel
7
+ extend Cadenya::Internal::Type::RequestParameters::Converter
8
+ include Cadenya::Internal::Type::RequestParameters
9
+
10
+ # @!attribute workspace_id
11
+ #
12
+ # @return [String]
13
+ required :workspace_id, String
14
+
15
+ # @!attribute model_swaps
16
+ # The swaps to perform.
17
+ #
18
+ # @return [Array<Cadenya::Models::ModelSwapParams::ModelSwap>, nil]
19
+ optional :model_swaps,
20
+ -> { Cadenya::Internal::Type::ArrayOf[Cadenya::ModelSwapParams::ModelSwap] },
21
+ api_name: :modelSwaps
22
+
23
+ # @!method initialize(workspace_id:, model_swaps: nil, request_options: {})
24
+ # @param workspace_id [String]
25
+ #
26
+ # @param model_swaps [Array<Cadenya::Models::ModelSwapParams::ModelSwap>] The swaps to perform.
27
+ #
28
+ # @param request_options [Cadenya::RequestOptions, Hash{Symbol=>Object}]
29
+
30
+ class ModelSwap < Cadenya::Internal::Type::BaseModel
31
+ # @!attribute current_model_id
32
+ # The model variations are currently on. Accepts an id or "external_id:" slug.
33
+ #
34
+ # @return [String, nil]
35
+ optional :current_model_id, String, api_name: :currentModelId
36
+
37
+ # @!attribute next_model_id
38
+ # The model to move variations to. Accepts an id or "external_id:" slug.
39
+ #
40
+ # @return [String, nil]
41
+ optional :next_model_id, String, api_name: :nextModelId
42
+
43
+ # @!method initialize(current_model_id: nil, next_model_id: nil)
44
+ # @param current_model_id [String] The model variations are currently on. Accepts an id or "external_id:" slug.
45
+ #
46
+ # @param next_model_id [String] The model to move variations to. Accepts an id or "external_id:" slug.
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cadenya
4
+ module Models
5
+ # @type [Cadenya::Internal::Type::Converter]
6
+ ModelSwapResponse = Cadenya::Internal::Type::Unknown
7
+ end
8
+ end
@@ -179,6 +179,8 @@ module Cadenya
179
179
 
180
180
  ModelSpec = Cadenya::Models::ModelSpec
181
181
 
182
+ ModelSwapParams = Cadenya::Models::ModelSwapParams
183
+
182
184
  Objective = Cadenya::Models::Objective
183
185
 
184
186
  ObjectiveCancelParams = Cadenya::Models::ObjectiveCancelParams
@@ -113,6 +113,31 @@ module Cadenya
113
113
  )
114
114
  end
115
115
 
116
+ # Reassigns agent variations from one model to another in bulk. Runs
117
+ # asynchronously and returns immediately.
118
+ #
119
+ # @overload swap(workspace_id, model_swaps: nil, request_options: {})
120
+ #
121
+ # @param workspace_id [String] Workspace ID.
122
+ #
123
+ # @param model_swaps [Array<Cadenya::Models::ModelSwapParams::ModelSwap>] The swaps to perform.
124
+ #
125
+ # @param request_options [Cadenya::RequestOptions, Hash{Symbol=>Object}, nil]
126
+ #
127
+ # @return [Object]
128
+ #
129
+ # @see Cadenya::Models::ModelSwapParams
130
+ def swap(workspace_id, params = {})
131
+ parsed, options = Cadenya::ModelSwapParams.dump_request(params)
132
+ @client.request(
133
+ method: :post,
134
+ path: ["v1/workspaces/%1$s/models:swapModelOnVariations", workspace_id],
135
+ body: parsed,
136
+ model: Cadenya::Internal::Type::Unknown,
137
+ options: options
138
+ )
139
+ end
140
+
116
141
  # @api private
117
142
  #
118
143
  # @param client [Cadenya::Client]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Cadenya
4
- VERSION = "0.5.0"
4
+ VERSION = "0.6.0"
5
5
  end
data/lib/cadenya.rb CHANGED
@@ -183,6 +183,8 @@ require_relative "cadenya/models/model_list_params"
183
183
  require_relative "cadenya/models/model_retrieve_params"
184
184
  require_relative "cadenya/models/model_set_status_params"
185
185
  require_relative "cadenya/models/model_spec"
186
+ require_relative "cadenya/models/model_swap_params"
187
+ require_relative "cadenya/models/model_swap_response"
186
188
  require_relative "cadenya/models/objective"
187
189
  require_relative "cadenya/models/objective_cancel_params"
188
190
  require_relative "cadenya/models/objective_compact_params"
@@ -62,6 +62,14 @@ module Cadenya
62
62
  T.any(Cadenya::Model::Info, Cadenya::Internal::AnyHash)
63
63
  end
64
64
 
65
+ # Number of agent variations currently provisioned on this model. Useful for
66
+ # previewing how many variations a swap would affect.
67
+ sig { returns(T.nilable(Integer)) }
68
+ attr_reader :agent_variation_count
69
+
70
+ sig { params(agent_variation_count: Integer).void }
71
+ attr_writer :agent_variation_count
72
+
65
73
  # BareMetadata contains the minimal metadata for a resource: the ID and an
66
74
  # optional human-readable name. These are used for reference fields where the full
67
75
  # metadata (account scoping, timestamps, labels, external IDs) is not needed —
@@ -84,11 +92,15 @@ module Cadenya
84
92
  # ModelInfo carries server-derived, read-only details about a model.
85
93
  sig do
86
94
  params(
95
+ agent_variation_count: Integer,
87
96
  ai_provider_key: Cadenya::BareMetadata::OrHash,
88
97
  provider: Cadenya::Model::Info::Provider::OrSymbol
89
98
  ).returns(T.attached_class)
90
99
  end
91
100
  def self.new(
101
+ # Number of agent variations currently provisioned on this model. Useful for
102
+ # previewing how many variations a swap would affect.
103
+ agent_variation_count: nil,
92
104
  # BareMetadata contains the minimal metadata for a resource: the ID and an
93
105
  # optional human-readable name. These are used for reference fields where the full
94
106
  # metadata (account scoping, timestamps, labels, external IDs) is not needed —
@@ -104,6 +116,7 @@ module Cadenya
104
116
  sig do
105
117
  override.returns(
106
118
  {
119
+ agent_variation_count: Integer,
107
120
  ai_provider_key: Cadenya::BareMetadata,
108
121
  provider: Cadenya::Model::Info::Provider::TaggedSymbol
109
122
  }
@@ -0,0 +1,99 @@
1
+ # typed: strong
2
+
3
+ module Cadenya
4
+ module Models
5
+ class ModelSwapParams < Cadenya::Internal::Type::BaseModel
6
+ extend Cadenya::Internal::Type::RequestParameters::Converter
7
+ include Cadenya::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Cadenya::ModelSwapParams, Cadenya::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :workspace_id
16
+
17
+ # The swaps to perform.
18
+ sig { returns(T.nilable(T::Array[Cadenya::ModelSwapParams::ModelSwap])) }
19
+ attr_reader :model_swaps
20
+
21
+ sig do
22
+ params(
23
+ model_swaps: T::Array[Cadenya::ModelSwapParams::ModelSwap::OrHash]
24
+ ).void
25
+ end
26
+ attr_writer :model_swaps
27
+
28
+ sig do
29
+ params(
30
+ workspace_id: String,
31
+ model_swaps: T::Array[Cadenya::ModelSwapParams::ModelSwap::OrHash],
32
+ request_options: Cadenya::RequestOptions::OrHash
33
+ ).returns(T.attached_class)
34
+ end
35
+ def self.new(
36
+ workspace_id:,
37
+ # The swaps to perform.
38
+ model_swaps: nil,
39
+ request_options: {}
40
+ )
41
+ end
42
+
43
+ sig do
44
+ override.returns(
45
+ {
46
+ workspace_id: String,
47
+ model_swaps: T::Array[Cadenya::ModelSwapParams::ModelSwap],
48
+ request_options: Cadenya::RequestOptions
49
+ }
50
+ )
51
+ end
52
+ def to_hash
53
+ end
54
+
55
+ class ModelSwap < Cadenya::Internal::Type::BaseModel
56
+ OrHash =
57
+ T.type_alias do
58
+ T.any(
59
+ Cadenya::ModelSwapParams::ModelSwap,
60
+ Cadenya::Internal::AnyHash
61
+ )
62
+ end
63
+
64
+ # The model variations are currently on. Accepts an id or "external_id:" slug.
65
+ sig { returns(T.nilable(String)) }
66
+ attr_reader :current_model_id
67
+
68
+ sig { params(current_model_id: String).void }
69
+ attr_writer :current_model_id
70
+
71
+ # The model to move variations to. Accepts an id or "external_id:" slug.
72
+ sig { returns(T.nilable(String)) }
73
+ attr_reader :next_model_id
74
+
75
+ sig { params(next_model_id: String).void }
76
+ attr_writer :next_model_id
77
+
78
+ sig do
79
+ params(current_model_id: String, next_model_id: String).returns(
80
+ T.attached_class
81
+ )
82
+ end
83
+ def self.new(
84
+ # The model variations are currently on. Accepts an id or "external_id:" slug.
85
+ current_model_id: nil,
86
+ # The model to move variations to. Accepts an id or "external_id:" slug.
87
+ next_model_id: nil
88
+ )
89
+ end
90
+
91
+ sig do
92
+ override.returns({ current_model_id: String, next_model_id: String })
93
+ end
94
+ def to_hash
95
+ end
96
+ end
97
+ end
98
+ end
99
+ end
@@ -0,0 +1,7 @@
1
+ # typed: strong
2
+
3
+ module Cadenya
4
+ module Models
5
+ ModelSwapResponse = T.let(T.anything, Cadenya::Internal::Type::Converter)
6
+ end
7
+ end
@@ -145,6 +145,8 @@ module Cadenya
145
145
 
146
146
  ModelSpec = Cadenya::Models::ModelSpec
147
147
 
148
+ ModelSwapParams = Cadenya::Models::ModelSwapParams
149
+
148
150
  Objective = Cadenya::Models::Objective
149
151
 
150
152
  ObjectiveCancelParams = Cadenya::Models::ObjectiveCancelParams
@@ -86,6 +86,24 @@ module Cadenya
86
86
  )
87
87
  end
88
88
 
89
+ # Reassigns agent variations from one model to another in bulk. Runs
90
+ # asynchronously and returns immediately.
91
+ sig do
92
+ params(
93
+ workspace_id: String,
94
+ model_swaps: T::Array[Cadenya::ModelSwapParams::ModelSwap::OrHash],
95
+ request_options: Cadenya::RequestOptions::OrHash
96
+ ).returns(T.anything)
97
+ end
98
+ def swap(
99
+ # Workspace ID.
100
+ workspace_id,
101
+ # The swaps to perform.
102
+ model_swaps: nil,
103
+ request_options: {}
104
+ )
105
+ end
106
+
89
107
  # @api private
90
108
  sig { params(client: Cadenya::Client).returns(T.attached_class) }
91
109
  def self.new(client:)
@@ -30,11 +30,16 @@ module Cadenya
30
30
 
31
31
  type info =
32
32
  {
33
+ agent_variation_count: Integer,
33
34
  ai_provider_key: Cadenya::BareMetadata,
34
35
  provider: Cadenya::Models::Model::Info::provider
35
36
  }
36
37
 
37
38
  class Info < Cadenya::Internal::Type::BaseModel
39
+ attr_reader agent_variation_count: Integer?
40
+
41
+ def agent_variation_count=: (Integer) -> Integer
42
+
38
43
  attr_reader ai_provider_key: Cadenya::BareMetadata?
39
44
 
40
45
  def ai_provider_key=: (Cadenya::BareMetadata) -> Cadenya::BareMetadata
@@ -46,11 +51,13 @@ module Cadenya
46
51
  ) -> Cadenya::Models::Model::Info::provider
47
52
 
48
53
  def initialize: (
54
+ ?agent_variation_count: Integer,
49
55
  ?ai_provider_key: Cadenya::BareMetadata,
50
56
  ?provider: Cadenya::Models::Model::Info::provider
51
57
  ) -> void
52
58
 
53
59
  def to_hash: -> {
60
+ agent_variation_count: Integer,
54
61
  ai_provider_key: Cadenya::BareMetadata,
55
62
  provider: Cadenya::Models::Model::Info::provider
56
63
  }
@@ -0,0 +1,54 @@
1
+ module Cadenya
2
+ module Models
3
+ type model_swap_params =
4
+ {
5
+ workspace_id: String,
6
+ model_swaps: ::Array[Cadenya::ModelSwapParams::ModelSwap]
7
+ }
8
+ & Cadenya::Internal::Type::request_parameters
9
+
10
+ class ModelSwapParams < Cadenya::Internal::Type::BaseModel
11
+ extend Cadenya::Internal::Type::RequestParameters::Converter
12
+ include Cadenya::Internal::Type::RequestParameters
13
+
14
+ attr_accessor workspace_id: String
15
+
16
+ attr_reader model_swaps: ::Array[Cadenya::ModelSwapParams::ModelSwap]?
17
+
18
+ def model_swaps=: (
19
+ ::Array[Cadenya::ModelSwapParams::ModelSwap]
20
+ ) -> ::Array[Cadenya::ModelSwapParams::ModelSwap]
21
+
22
+ def initialize: (
23
+ workspace_id: String,
24
+ ?model_swaps: ::Array[Cadenya::ModelSwapParams::ModelSwap],
25
+ ?request_options: Cadenya::request_opts
26
+ ) -> void
27
+
28
+ def to_hash: -> {
29
+ workspace_id: String,
30
+ model_swaps: ::Array[Cadenya::ModelSwapParams::ModelSwap],
31
+ request_options: Cadenya::RequestOptions
32
+ }
33
+
34
+ type model_swap = { current_model_id: String, next_model_id: String }
35
+
36
+ class ModelSwap < Cadenya::Internal::Type::BaseModel
37
+ attr_reader current_model_id: String?
38
+
39
+ def current_model_id=: (String) -> String
40
+
41
+ attr_reader next_model_id: String?
42
+
43
+ def next_model_id=: (String) -> String
44
+
45
+ def initialize: (
46
+ ?current_model_id: String,
47
+ ?next_model_id: String
48
+ ) -> void
49
+
50
+ def to_hash: -> { current_model_id: String, next_model_id: String }
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,5 @@
1
+ module Cadenya
2
+ module Models
3
+ ModelSwapResponse: Cadenya::Internal::Type::Converter
4
+ end
5
+ end
@@ -139,6 +139,8 @@ module Cadenya
139
139
 
140
140
  class ModelSpec = Cadenya::Models::ModelSpec
141
141
 
142
+ class ModelSwapParams = Cadenya::Models::ModelSwapParams
143
+
142
144
  class Objective = Cadenya::Models::Objective
143
145
 
144
146
  class ObjectiveCancelParams = Cadenya::Models::ObjectiveCancelParams
@@ -28,6 +28,12 @@ module Cadenya
28
28
  ?request_options: Cadenya::request_opts
29
29
  ) -> Cadenya::Model
30
30
 
31
+ def swap: (
32
+ String workspace_id,
33
+ ?model_swaps: ::Array[Cadenya::ModelSwapParams::ModelSwap],
34
+ ?request_options: Cadenya::request_opts
35
+ ) -> top
36
+
31
37
  def initialize: (client: Cadenya::Client) -> void
32
38
  end
33
39
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cadenya
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cadenya
@@ -213,6 +213,8 @@ files:
213
213
  - lib/cadenya/models/model_retrieve_params.rb
214
214
  - lib/cadenya/models/model_set_status_params.rb
215
215
  - lib/cadenya/models/model_spec.rb
216
+ - lib/cadenya/models/model_swap_params.rb
217
+ - lib/cadenya/models/model_swap_response.rb
216
218
  - lib/cadenya/models/objective.rb
217
219
  - lib/cadenya/models/objective_cancel_params.rb
218
220
  - lib/cadenya/models/objective_compact_params.rb
@@ -520,6 +522,8 @@ files:
520
522
  - rbi/cadenya/models/model_retrieve_params.rbi
521
523
  - rbi/cadenya/models/model_set_status_params.rbi
522
524
  - rbi/cadenya/models/model_spec.rbi
525
+ - rbi/cadenya/models/model_swap_params.rbi
526
+ - rbi/cadenya/models/model_swap_response.rbi
523
527
  - rbi/cadenya/models/objective.rbi
524
528
  - rbi/cadenya/models/objective_cancel_params.rbi
525
529
  - rbi/cadenya/models/objective_compact_params.rbi
@@ -826,6 +830,8 @@ files:
826
830
  - sig/cadenya/models/model_retrieve_params.rbs
827
831
  - sig/cadenya/models/model_set_status_params.rbs
828
832
  - sig/cadenya/models/model_spec.rbs
833
+ - sig/cadenya/models/model_swap_params.rbs
834
+ - sig/cadenya/models/model_swap_response.rbs
829
835
  - sig/cadenya/models/objective.rbs
830
836
  - sig/cadenya/models/objective_cancel_params.rbs
831
837
  - sig/cadenya/models/objective_compact_params.rbs