cadenya 0.4.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.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +1 -1
  4. data/lib/cadenya/models/ai_provider_key.rb +37 -1
  5. data/lib/cadenya/models/ai_provider_key_list_params.rb +13 -1
  6. data/lib/cadenya/models/ai_provider_key_spec.rb +26 -11
  7. data/lib/cadenya/models/model.rb +65 -1
  8. data/lib/cadenya/models/model_list_params.rb +22 -1
  9. data/lib/cadenya/models/model_swap_params.rb +50 -0
  10. data/lib/cadenya/models/model_swap_response.rb +8 -0
  11. data/lib/cadenya/models.rb +2 -0
  12. data/lib/cadenya/resources/ai_provider_keys.rb +7 -2
  13. data/lib/cadenya/resources/models.rb +39 -2
  14. data/lib/cadenya/version.rb +1 -1
  15. data/lib/cadenya.rb +2 -0
  16. data/rbi/cadenya/models/ai_provider_key.rbi +61 -3
  17. data/rbi/cadenya/models/ai_provider_key_list_params.rbi +13 -0
  18. data/rbi/cadenya/models/ai_provider_key_spec.rbi +60 -18
  19. data/rbi/cadenya/models/model.rbi +115 -3
  20. data/rbi/cadenya/models/model_list_params.rbi +26 -0
  21. data/rbi/cadenya/models/model_swap_params.rbi +99 -0
  22. data/rbi/cadenya/models/model_swap_response.rbi +7 -0
  23. data/rbi/cadenya/models.rbi +2 -0
  24. data/rbi/cadenya/resources/ai_provider_keys.rbi +4 -0
  25. data/rbi/cadenya/resources/models.rbi +26 -0
  26. data/sig/cadenya/models/ai_provider_key.rbs +36 -3
  27. data/sig/cadenya/models/ai_provider_key_list_params.rbs +7 -0
  28. data/sig/cadenya/models/ai_provider_key_spec.rbs +29 -8
  29. data/sig/cadenya/models/model.rbs +59 -3
  30. data/sig/cadenya/models/model_list_params.rbs +14 -0
  31. data/sig/cadenya/models/model_swap_params.rbs +54 -0
  32. data/sig/cadenya/models/model_swap_response.rbs +5 -0
  33. data/sig/cadenya/models.rbs +2 -0
  34. data/sig/cadenya/resources/ai_provider_keys.rbs +1 -0
  35. data/sig/cadenya/resources/models.rbs +8 -0
  36. metadata +7 -1
@@ -16,41 +16,83 @@ module Cadenya
16
16
  sig { params(api_key: String).void }
17
17
  attr_writer :api_key
18
18
 
19
- # The AI provider this key authenticates against. Currently "openrouter".
20
- sig { returns(T.nilable(String)) }
21
- attr_reader :provider
19
+ # OpenRouterConfig holds OpenRouter-specific settings. Empty for now; it exists as
20
+ # the oneof seam so provider-specific options (region, base URL, etc.) can be
21
+ # added later without restructuring the spec.
22
+ sig { returns(T.nilable(T.anything)) }
23
+ attr_reader :openrouter
22
24
 
23
- sig { params(provider: String).void }
24
- attr_writer :provider
25
+ sig { params(openrouter: T.anything).void }
26
+ attr_writer :openrouter
25
27
 
26
- # The provider region. "us" or "eu". Defaults to "us".
27
- sig { returns(T.nilable(String)) }
28
- attr_reader :region
28
+ # The AI provider this key authenticates against.
29
+ sig { returns(T.nilable(Cadenya::AIProviderKeySpec::Provider::OrSymbol)) }
30
+ attr_reader :provider
29
31
 
30
- sig { params(region: String).void }
31
- attr_writer :region
32
+ sig do
33
+ params(provider: Cadenya::AIProviderKeySpec::Provider::OrSymbol).void
34
+ end
35
+ attr_writer :provider
32
36
 
33
37
  sig do
34
- params(api_key: String, provider: String, region: String).returns(
35
- T.attached_class
36
- )
38
+ params(
39
+ api_key: String,
40
+ openrouter: T.anything,
41
+ provider: Cadenya::AIProviderKeySpec::Provider::OrSymbol
42
+ ).returns(T.attached_class)
37
43
  end
38
44
  def self.new(
39
45
  # The provider credential. Accepted on create/update; never populated in responses
40
46
  # (the server returns an empty value to avoid leaking it).
41
47
  api_key: nil,
42
- # The AI provider this key authenticates against. Currently "openrouter".
43
- provider: nil,
44
- # The provider region. "us" or "eu". Defaults to "us".
45
- region: nil
48
+ # OpenRouterConfig holds OpenRouter-specific settings. Empty for now; it exists as
49
+ # the oneof seam so provider-specific options (region, base URL, etc.) can be
50
+ # added later without restructuring the spec.
51
+ openrouter: nil,
52
+ # The AI provider this key authenticates against.
53
+ provider: nil
46
54
  )
47
55
  end
48
56
 
49
57
  sig do
50
- override.returns({ api_key: String, provider: String, region: String })
58
+ override.returns(
59
+ {
60
+ api_key: String,
61
+ openrouter: T.anything,
62
+ provider: Cadenya::AIProviderKeySpec::Provider::OrSymbol
63
+ }
64
+ )
51
65
  end
52
66
  def to_hash
53
67
  end
68
+
69
+ # The AI provider this key authenticates against.
70
+ module Provider
71
+ extend Cadenya::Internal::Type::Enum
72
+
73
+ TaggedSymbol =
74
+ T.type_alias { T.all(Symbol, Cadenya::AIProviderKeySpec::Provider) }
75
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
76
+
77
+ AI_PROVIDER_UNSPECIFIED =
78
+ T.let(
79
+ :AI_PROVIDER_UNSPECIFIED,
80
+ Cadenya::AIProviderKeySpec::Provider::TaggedSymbol
81
+ )
82
+ AI_PROVIDER_OPENROUTER =
83
+ T.let(
84
+ :AI_PROVIDER_OPENROUTER,
85
+ Cadenya::AIProviderKeySpec::Provider::TaggedSymbol
86
+ )
87
+
88
+ sig do
89
+ override.returns(
90
+ T::Array[Cadenya::AIProviderKeySpec::Provider::TaggedSymbol]
91
+ )
92
+ end
93
+ def self.values
94
+ end
95
+ end
54
96
  end
55
97
  end
56
98
  end
@@ -20,27 +20,139 @@ module Cadenya
20
20
  sig { params(spec: Cadenya::ModelSpec::OrHash).void }
21
21
  attr_writer :spec
22
22
 
23
+ # ModelInfo carries server-derived, read-only details about a model.
24
+ sig { returns(T.nilable(Cadenya::Model::Info)) }
25
+ attr_reader :info
26
+
27
+ sig { params(info: Cadenya::Model::Info::OrHash).void }
28
+ attr_writer :info
29
+
23
30
  sig do
24
31
  params(
25
32
  metadata: Cadenya::ResourceMetadata::OrHash,
26
- spec: Cadenya::ModelSpec::OrHash
33
+ spec: Cadenya::ModelSpec::OrHash,
34
+ info: Cadenya::Model::Info::OrHash
27
35
  ).returns(T.attached_class)
28
36
  end
29
37
  def self.new(
30
38
  # Standard metadata for persistent, named resources (e.g., agents, tools, prompts)
31
39
  metadata:,
32
40
  # Model specification
33
- spec:
41
+ spec:,
42
+ # ModelInfo carries server-derived, read-only details about a model.
43
+ info: nil
34
44
  )
35
45
  end
36
46
 
37
47
  sig do
38
48
  override.returns(
39
- { metadata: Cadenya::ResourceMetadata, spec: Cadenya::ModelSpec }
49
+ {
50
+ metadata: Cadenya::ResourceMetadata,
51
+ spec: Cadenya::ModelSpec,
52
+ info: Cadenya::Model::Info
53
+ }
40
54
  )
41
55
  end
42
56
  def to_hash
43
57
  end
58
+
59
+ class Info < Cadenya::Internal::Type::BaseModel
60
+ OrHash =
61
+ T.type_alias do
62
+ T.any(Cadenya::Model::Info, Cadenya::Internal::AnyHash)
63
+ end
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
+
73
+ # BareMetadata contains the minimal metadata for a resource: the ID and an
74
+ # optional human-readable name. These are used for reference fields where the full
75
+ # metadata (account scoping, timestamps, labels, external IDs) is not needed —
76
+ # e.g., the tool references inside an agent variation spec or the tools assigned
77
+ # to an objective. Both fields are server-populated; clients provide IDs through
78
+ # sibling fields rather than by constructing a BareMetadata themselves.
79
+ sig { returns(T.nilable(Cadenya::BareMetadata)) }
80
+ attr_reader :ai_provider_key
81
+
82
+ sig { params(ai_provider_key: Cadenya::BareMetadata::OrHash).void }
83
+ attr_writer :ai_provider_key
84
+
85
+ # The AI provider this model routes through (via its provider key).
86
+ sig { returns(T.nilable(Cadenya::Model::Info::Provider::TaggedSymbol)) }
87
+ attr_reader :provider
88
+
89
+ sig { params(provider: Cadenya::Model::Info::Provider::OrSymbol).void }
90
+ attr_writer :provider
91
+
92
+ # ModelInfo carries server-derived, read-only details about a model.
93
+ sig do
94
+ params(
95
+ agent_variation_count: Integer,
96
+ ai_provider_key: Cadenya::BareMetadata::OrHash,
97
+ provider: Cadenya::Model::Info::Provider::OrSymbol
98
+ ).returns(T.attached_class)
99
+ end
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,
104
+ # BareMetadata contains the minimal metadata for a resource: the ID and an
105
+ # optional human-readable name. These are used for reference fields where the full
106
+ # metadata (account scoping, timestamps, labels, external IDs) is not needed —
107
+ # e.g., the tool references inside an agent variation spec or the tools assigned
108
+ # to an objective. Both fields are server-populated; clients provide IDs through
109
+ # sibling fields rather than by constructing a BareMetadata themselves.
110
+ ai_provider_key: nil,
111
+ # The AI provider this model routes through (via its provider key).
112
+ provider: nil
113
+ )
114
+ end
115
+
116
+ sig do
117
+ override.returns(
118
+ {
119
+ agent_variation_count: Integer,
120
+ ai_provider_key: Cadenya::BareMetadata,
121
+ provider: Cadenya::Model::Info::Provider::TaggedSymbol
122
+ }
123
+ )
124
+ end
125
+ def to_hash
126
+ end
127
+
128
+ # The AI provider this model routes through (via its provider key).
129
+ module Provider
130
+ extend Cadenya::Internal::Type::Enum
131
+
132
+ TaggedSymbol =
133
+ T.type_alias { T.all(Symbol, Cadenya::Model::Info::Provider) }
134
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
135
+
136
+ AI_PROVIDER_UNSPECIFIED =
137
+ T.let(
138
+ :AI_PROVIDER_UNSPECIFIED,
139
+ Cadenya::Model::Info::Provider::TaggedSymbol
140
+ )
141
+ AI_PROVIDER_OPENROUTER =
142
+ T.let(
143
+ :AI_PROVIDER_OPENROUTER,
144
+ Cadenya::Model::Info::Provider::TaggedSymbol
145
+ )
146
+
147
+ sig do
148
+ override.returns(
149
+ T::Array[Cadenya::Model::Info::Provider::TaggedSymbol]
150
+ )
151
+ end
152
+ def self.values
153
+ end
154
+ end
155
+ end
44
156
  end
45
157
  end
46
158
  end
@@ -14,6 +14,14 @@ module Cadenya
14
14
  sig { returns(String) }
15
15
  attr_accessor :workspace_id
16
16
 
17
+ # Filter to models provisioned on a specific AI provider key. Accepts the key's id
18
+ # or an "external_id:"-prefixed slug.
19
+ sig { returns(T.nilable(String)) }
20
+ attr_reader :ai_provider_key_id
21
+
22
+ sig { params(ai_provider_key_id: String).void }
23
+ attr_writer :ai_provider_key_id
24
+
17
25
  # Filter by bundle_key — return only resources owned by this bundle.
18
26
  sig { returns(T.nilable(String)) }
19
27
  attr_reader :bundle_key
@@ -28,6 +36,14 @@ module Cadenya
28
36
  sig { params(cursor: String).void }
29
37
  attr_writer :cursor
30
38
 
39
+ # When true, populate each item's info (e.g. the AI provider), at the cost of
40
+ # extra lookups.
41
+ sig { returns(T.nilable(T::Boolean)) }
42
+ attr_reader :include_info
43
+
44
+ sig { params(include_info: T::Boolean).void }
45
+ attr_writer :include_info
46
+
31
47
  # Maximum number of results to return
32
48
  sig { returns(T.nilable(Integer)) }
33
49
  attr_reader :limit
@@ -66,8 +82,10 @@ module Cadenya
66
82
  sig do
67
83
  params(
68
84
  workspace_id: String,
85
+ ai_provider_key_id: String,
69
86
  bundle_key: String,
70
87
  cursor: String,
88
+ include_info: T::Boolean,
71
89
  limit: Integer,
72
90
  prefix: String,
73
91
  query: String,
@@ -78,10 +96,16 @@ module Cadenya
78
96
  end
79
97
  def self.new(
80
98
  workspace_id:,
99
+ # Filter to models provisioned on a specific AI provider key. Accepts the key's id
100
+ # or an "external_id:"-prefixed slug.
101
+ ai_provider_key_id: nil,
81
102
  # Filter by bundle_key — return only resources owned by this bundle.
82
103
  bundle_key: nil,
83
104
  # Pagination cursor from previous response
84
105
  cursor: nil,
106
+ # When true, populate each item's info (e.g. the AI provider), at the cost of
107
+ # extra lookups.
108
+ include_info: nil,
85
109
  # Maximum number of results to return
86
110
  limit: nil,
87
111
  # Filter by name prefix
@@ -100,8 +124,10 @@ module Cadenya
100
124
  override.returns(
101
125
  {
102
126
  workspace_id: String,
127
+ ai_provider_key_id: String,
103
128
  bundle_key: String,
104
129
  cursor: String,
130
+ include_info: T::Boolean,
105
131
  limit: Integer,
106
132
  prefix: String,
107
133
  query: String,
@@ -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
@@ -75,6 +75,7 @@ module Cadenya
75
75
  params(
76
76
  workspace_id: String,
77
77
  cursor: String,
78
+ include_info: T::Boolean,
78
79
  limit: Integer,
79
80
  prefix: String,
80
81
  query: String,
@@ -87,6 +88,9 @@ module Cadenya
87
88
  workspace_id,
88
89
  # Pagination cursor from previous response
89
90
  cursor: nil,
91
+ # When true, populate each item's info (model counts), at the cost of extra
92
+ # lookups.
93
+ include_info: nil,
90
94
  # Maximum number of results to return
91
95
  limit: nil,
92
96
  # Filter expression (query param: prefix)
@@ -27,8 +27,10 @@ module Cadenya
27
27
  sig do
28
28
  params(
29
29
  workspace_id: String,
30
+ ai_provider_key_id: String,
30
31
  bundle_key: String,
31
32
  cursor: String,
33
+ include_info: T::Boolean,
32
34
  limit: Integer,
33
35
  prefix: String,
34
36
  query: String,
@@ -40,10 +42,16 @@ module Cadenya
40
42
  def list(
41
43
  # Workspace ID.
42
44
  workspace_id,
45
+ # Filter to models provisioned on a specific AI provider key. Accepts the key's id
46
+ # or an "external_id:"-prefixed slug.
47
+ ai_provider_key_id: nil,
43
48
  # Filter by bundle_key — return only resources owned by this bundle.
44
49
  bundle_key: nil,
45
50
  # Pagination cursor from previous response
46
51
  cursor: nil,
52
+ # When true, populate each item's info (e.g. the AI provider), at the cost of
53
+ # extra lookups.
54
+ include_info: nil,
47
55
  # Maximum number of results to return
48
56
  limit: nil,
49
57
  # Filter by name prefix
@@ -78,6 +86,24 @@ module Cadenya
78
86
  )
79
87
  end
80
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
+
81
107
  # @api private
82
108
  sig { params(client: Cadenya::Client).returns(T.attached_class) }
83
109
  def self.new(client:)
@@ -1,22 +1,55 @@
1
1
  module Cadenya
2
2
  module Models
3
3
  type ai_provider_key =
4
- { metadata: Cadenya::ResourceMetadata, spec: Cadenya::AIProviderKeySpec }
4
+ {
5
+ metadata: Cadenya::ResourceMetadata,
6
+ spec: Cadenya::AIProviderKeySpec,
7
+ info: Cadenya::AIProviderKey::Info
8
+ }
5
9
 
6
10
  class AIProviderKey < Cadenya::Internal::Type::BaseModel
7
11
  attr_accessor metadata: Cadenya::ResourceMetadata
8
12
 
9
13
  attr_accessor spec: Cadenya::AIProviderKeySpec
10
14
 
15
+ attr_reader info: Cadenya::AIProviderKey::Info?
16
+
17
+ def info=: (Cadenya::AIProviderKey::Info) -> Cadenya::AIProviderKey::Info
18
+
11
19
  def initialize: (
12
20
  metadata: Cadenya::ResourceMetadata,
13
- spec: Cadenya::AIProviderKeySpec
21
+ spec: Cadenya::AIProviderKeySpec,
22
+ ?info: Cadenya::AIProviderKey::Info
14
23
  ) -> void
15
24
 
16
25
  def to_hash: -> {
17
26
  metadata: Cadenya::ResourceMetadata,
18
- spec: Cadenya::AIProviderKeySpec
27
+ spec: Cadenya::AIProviderKeySpec,
28
+ info: Cadenya::AIProviderKey::Info
19
29
  }
30
+
31
+ type info =
32
+ { disabled_model_count: Integer, enabled_model_count: Integer }
33
+
34
+ class Info < Cadenya::Internal::Type::BaseModel
35
+ attr_reader disabled_model_count: Integer?
36
+
37
+ def disabled_model_count=: (Integer) -> Integer
38
+
39
+ attr_reader enabled_model_count: Integer?
40
+
41
+ def enabled_model_count=: (Integer) -> Integer
42
+
43
+ def initialize: (
44
+ ?disabled_model_count: Integer,
45
+ ?enabled_model_count: Integer
46
+ ) -> void
47
+
48
+ def to_hash: -> {
49
+ disabled_model_count: Integer,
50
+ enabled_model_count: Integer
51
+ }
52
+ end
20
53
  end
21
54
  end
22
55
  end
@@ -4,6 +4,7 @@ module Cadenya
4
4
  {
5
5
  workspace_id: String,
6
6
  cursor: String,
7
+ include_info: bool,
7
8
  limit: Integer,
8
9
  prefix: String,
9
10
  query: String,
@@ -21,6 +22,10 @@ module Cadenya
21
22
 
22
23
  def cursor=: (String) -> String
23
24
 
25
+ attr_reader include_info: bool?
26
+
27
+ def include_info=: (bool) -> bool
28
+
24
29
  attr_reader limit: Integer?
25
30
 
26
31
  def limit=: (Integer) -> Integer
@@ -40,6 +45,7 @@ module Cadenya
40
45
  def initialize: (
41
46
  workspace_id: String,
42
47
  ?cursor: String,
48
+ ?include_info: bool,
43
49
  ?limit: Integer,
44
50
  ?prefix: String,
45
51
  ?query: String,
@@ -50,6 +56,7 @@ module Cadenya
50
56
  def to_hash: -> {
51
57
  workspace_id: String,
52
58
  cursor: String,
59
+ include_info: bool,
53
60
  limit: Integer,
54
61
  prefix: String,
55
62
  query: String,
@@ -1,28 +1,49 @@
1
1
  module Cadenya
2
2
  module Models
3
3
  type ai_provider_key_spec =
4
- { api_key: String, provider: String, region: String }
4
+ {
5
+ api_key: String,
6
+ openrouter: top,
7
+ provider: Cadenya::Models::AIProviderKeySpec::provider
8
+ }
5
9
 
6
10
  class AIProviderKeySpec < Cadenya::Internal::Type::BaseModel
7
11
  attr_reader api_key: String?
8
12
 
9
13
  def api_key=: (String) -> String
10
14
 
11
- attr_reader provider: String?
15
+ attr_reader openrouter: top?
12
16
 
13
- def provider=: (String) -> String
17
+ def openrouter=: (top) -> top
14
18
 
15
- attr_reader region: String?
19
+ attr_reader provider: Cadenya::Models::AIProviderKeySpec::provider?
16
20
 
17
- def region=: (String) -> String
21
+ def provider=: (
22
+ Cadenya::Models::AIProviderKeySpec::provider
23
+ ) -> Cadenya::Models::AIProviderKeySpec::provider
18
24
 
19
25
  def initialize: (
20
26
  ?api_key: String,
21
- ?provider: String,
22
- ?region: String
27
+ ?openrouter: top,
28
+ ?provider: Cadenya::Models::AIProviderKeySpec::provider
23
29
  ) -> void
24
30
 
25
- def to_hash: -> { api_key: String, provider: String, region: String }
31
+ def to_hash: -> {
32
+ api_key: String,
33
+ openrouter: top,
34
+ provider: Cadenya::Models::AIProviderKeySpec::provider
35
+ }
36
+
37
+ type provider = :AI_PROVIDER_UNSPECIFIED | :AI_PROVIDER_OPENROUTER
38
+
39
+ module Provider
40
+ extend Cadenya::Internal::Type::Enum
41
+
42
+ AI_PROVIDER_UNSPECIFIED: :AI_PROVIDER_UNSPECIFIED
43
+ AI_PROVIDER_OPENROUTER: :AI_PROVIDER_OPENROUTER
44
+
45
+ def self?.values: -> ::Array[Cadenya::Models::AIProviderKeySpec::provider]
46
+ end
26
47
  end
27
48
  end
28
49
  end