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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/README.md +1 -1
- data/lib/cadenya/models/ai_provider_key.rb +37 -1
- data/lib/cadenya/models/ai_provider_key_list_params.rb +13 -1
- data/lib/cadenya/models/ai_provider_key_spec.rb +26 -11
- data/lib/cadenya/models/model.rb +65 -1
- data/lib/cadenya/models/model_list_params.rb +22 -1
- data/lib/cadenya/models/model_swap_params.rb +50 -0
- data/lib/cadenya/models/model_swap_response.rb +8 -0
- data/lib/cadenya/models.rb +2 -0
- data/lib/cadenya/resources/ai_provider_keys.rb +7 -2
- data/lib/cadenya/resources/models.rb +39 -2
- data/lib/cadenya/version.rb +1 -1
- data/lib/cadenya.rb +2 -0
- data/rbi/cadenya/models/ai_provider_key.rbi +61 -3
- data/rbi/cadenya/models/ai_provider_key_list_params.rbi +13 -0
- data/rbi/cadenya/models/ai_provider_key_spec.rbi +60 -18
- data/rbi/cadenya/models/model.rbi +115 -3
- data/rbi/cadenya/models/model_list_params.rbi +26 -0
- data/rbi/cadenya/models/model_swap_params.rbi +99 -0
- data/rbi/cadenya/models/model_swap_response.rbi +7 -0
- data/rbi/cadenya/models.rbi +2 -0
- data/rbi/cadenya/resources/ai_provider_keys.rbi +4 -0
- data/rbi/cadenya/resources/models.rbi +26 -0
- data/sig/cadenya/models/ai_provider_key.rbs +36 -3
- data/sig/cadenya/models/ai_provider_key_list_params.rbs +7 -0
- data/sig/cadenya/models/ai_provider_key_spec.rbs +29 -8
- data/sig/cadenya/models/model.rbs +59 -3
- data/sig/cadenya/models/model_list_params.rbs +14 -0
- data/sig/cadenya/models/model_swap_params.rbs +54 -0
- data/sig/cadenya/models/model_swap_response.rbs +5 -0
- data/sig/cadenya/models.rbs +2 -0
- data/sig/cadenya/resources/ai_provider_keys.rbs +1 -0
- data/sig/cadenya/resources/models.rbs +8 -0
- 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
|
-
#
|
|
20
|
-
|
|
21
|
-
|
|
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(
|
|
24
|
-
attr_writer :
|
|
25
|
+
sig { params(openrouter: T.anything).void }
|
|
26
|
+
attr_writer :openrouter
|
|
25
27
|
|
|
26
|
-
# The provider
|
|
27
|
-
sig { returns(T.nilable(
|
|
28
|
-
attr_reader :
|
|
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
|
|
31
|
-
|
|
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(
|
|
35
|
-
|
|
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
|
-
#
|
|
43
|
-
provider
|
|
44
|
-
#
|
|
45
|
-
|
|
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(
|
|
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
|
-
{
|
|
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
|
data/rbi/cadenya/models.rbi
CHANGED
|
@@ -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
|
-
{
|
|
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
|
-
{
|
|
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
|
|
15
|
+
attr_reader openrouter: top?
|
|
12
16
|
|
|
13
|
-
def
|
|
17
|
+
def openrouter=: (top) -> top
|
|
14
18
|
|
|
15
|
-
attr_reader
|
|
19
|
+
attr_reader provider: Cadenya::Models::AIProviderKeySpec::provider?
|
|
16
20
|
|
|
17
|
-
def
|
|
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
|
-
?
|
|
22
|
-
?
|
|
27
|
+
?openrouter: top,
|
|
28
|
+
?provider: Cadenya::Models::AIProviderKeySpec::provider
|
|
23
29
|
) -> void
|
|
24
30
|
|
|
25
|
-
def to_hash: -> {
|
|
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
|