cadenya 0.22.0 → 0.23.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 (41) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -0
  3. data/README.md +13 -1
  4. data/lib/cadenya/internal/stream.rb +32 -0
  5. data/lib/cadenya/internal/transport/base_client.rb +1 -1
  6. data/lib/cadenya/internal/type/base_stream.rb +83 -0
  7. data/lib/cadenya/models/ai_provider_key_spec.rb +14 -168
  8. data/lib/cadenya/models/{objective_continue_response.rb → objective_event.rb} +2 -2
  9. data/lib/cadenya/models/objective_event_webhook_data.rb +3 -43
  10. data/lib/cadenya/models/objective_stream_events_params.rb +26 -0
  11. data/lib/cadenya/models/unsafe_unwrap_webhook_event.rb +3 -43
  12. data/lib/cadenya/models/unwrap_webhook_event.rb +3 -42
  13. data/lib/cadenya/models.rb +4 -0
  14. data/lib/cadenya/resources/objectives.rb +31 -4
  15. data/lib/cadenya/version.rb +1 -1
  16. data/lib/cadenya.rb +4 -2
  17. data/rbi/cadenya/internal/stream.rbi +18 -0
  18. data/rbi/cadenya/internal/transport/base_client.rbi +18 -2
  19. data/rbi/cadenya/internal/type/base_stream.rbi +75 -0
  20. data/rbi/cadenya/models/ai_provider_key_spec.rbi +24 -363
  21. data/rbi/cadenya/models/{objective_continue_response.rbi → objective_event.rbi} +2 -5
  22. data/rbi/cadenya/models/objective_event_webhook_data.rbi +4 -80
  23. data/rbi/cadenya/models/objective_stream_events_params.rbi +46 -0
  24. data/rbi/cadenya/models/unsafe_unwrap_webhook_event.rbi +4 -78
  25. data/rbi/cadenya/models/unwrap_webhook_event.rbi +4 -77
  26. data/rbi/cadenya/models.rbi +4 -0
  27. data/rbi/cadenya/resources/objectives.rbi +17 -6
  28. data/sig/cadenya/internal/stream.rbs +9 -0
  29. data/sig/cadenya/internal/type/base_stream.rbs +38 -0
  30. data/sig/cadenya/models/ai_provider_key_spec.rbs +11 -161
  31. data/sig/cadenya/models/{objective_continue_response.rbs → objective_event.rbs} +2 -2
  32. data/sig/cadenya/models/objective_event_webhook_data.rbs +4 -42
  33. data/sig/cadenya/models/objective_stream_events_params.rbs +28 -0
  34. data/sig/cadenya/models/unsafe_unwrap_webhook_event.rbs +4 -42
  35. data/sig/cadenya/models/unwrap_webhook_event.rbs +4 -42
  36. data/sig/cadenya/models.rbs +4 -0
  37. data/sig/cadenya/resources/objectives.rbs +8 -2
  38. metadata +13 -7
  39. data/lib/cadenya/models/objective_list_events_response.rb +0 -42
  40. data/rbi/cadenya/models/objective_list_events_response.rbi +0 -72
  41. data/sig/cadenya/models/objective_list_events_response.rbs +0 -39
@@ -89,17 +89,10 @@ module Cadenya
89
89
  sig { params(objective: Cadenya::OperationMetadata::OrHash).void }
90
90
  attr_writer :objective
91
91
 
92
- sig do
93
- returns(Cadenya::ObjectiveEventWebhookData::Data::ObjectiveEvent)
94
- end
92
+ sig { returns(Cadenya::ObjectiveEvent) }
95
93
  attr_reader :objective_event
96
94
 
97
- sig do
98
- params(
99
- objective_event:
100
- Cadenya::ObjectiveEventWebhookData::Data::ObjectiveEvent::OrHash
101
- ).void
102
- end
95
+ sig { params(objective_event: Cadenya::ObjectiveEvent::OrHash).void }
103
96
  attr_writer :objective_event
104
97
 
105
98
  # The webhook data payload with flat top-level keys for agent, variation,
@@ -109,8 +102,7 @@ module Cadenya
109
102
  agent: Cadenya::ResourceMetadata::OrHash,
110
103
  agent_variation: Cadenya::ResourceMetadata::OrHash,
111
104
  objective: Cadenya::OperationMetadata::OrHash,
112
- objective_event:
113
- Cadenya::ObjectiveEventWebhookData::Data::ObjectiveEvent::OrHash
105
+ objective_event: Cadenya::ObjectiveEvent::OrHash
114
106
  ).returns(T.attached_class)
115
107
  end
116
108
  def self.new(
@@ -131,80 +123,12 @@ module Cadenya
131
123
  agent: Cadenya::ResourceMetadata,
132
124
  agent_variation: Cadenya::ResourceMetadata,
133
125
  objective: Cadenya::OperationMetadata,
134
- objective_event:
135
- Cadenya::ObjectiveEventWebhookData::Data::ObjectiveEvent
126
+ objective_event: Cadenya::ObjectiveEvent
136
127
  }
137
128
  )
138
129
  end
139
130
  def to_hash
140
131
  end
141
-
142
- class ObjectiveEvent < Cadenya::Internal::Type::BaseModel
143
- OrHash =
144
- T.type_alias do
145
- T.any(
146
- Cadenya::ObjectiveEventWebhookData::Data::ObjectiveEvent,
147
- Cadenya::Internal::AnyHash
148
- )
149
- end
150
-
151
- sig { returns(Cadenya::ObjectiveEventData) }
152
- attr_reader :data
153
-
154
- sig { params(data: Cadenya::ObjectiveEventData::OrHash).void }
155
- attr_writer :data
156
-
157
- # Metadata for ephemeral operations and activities (e.g., objectives, executions,
158
- # runs)
159
- sig { returns(Cadenya::OperationMetadata) }
160
- attr_reader :metadata
161
-
162
- sig { params(metadata: Cadenya::OperationMetadata::OrHash).void }
163
- attr_writer :metadata
164
-
165
- sig { returns(T.nilable(String)) }
166
- attr_reader :context_window_id
167
-
168
- sig { params(context_window_id: String).void }
169
- attr_writer :context_window_id
170
-
171
- sig { returns(T.nilable(Cadenya::ObjectiveEventInfo)) }
172
- attr_reader :info
173
-
174
- sig { params(info: Cadenya::ObjectiveEventInfo::OrHash).void }
175
- attr_writer :info
176
-
177
- sig do
178
- params(
179
- data: Cadenya::ObjectiveEventData::OrHash,
180
- metadata: Cadenya::OperationMetadata::OrHash,
181
- context_window_id: String,
182
- info: Cadenya::ObjectiveEventInfo::OrHash
183
- ).returns(T.attached_class)
184
- end
185
- def self.new(
186
- data:,
187
- # Metadata for ephemeral operations and activities (e.g., objectives, executions,
188
- # runs)
189
- metadata:,
190
- context_window_id: nil,
191
- info: nil
192
- )
193
- end
194
-
195
- sig do
196
- override.returns(
197
- {
198
- data: Cadenya::ObjectiveEventData,
199
- metadata: Cadenya::OperationMetadata,
200
- context_window_id: String,
201
- info: Cadenya::ObjectiveEventInfo
202
- }
203
- )
204
- end
205
- def to_hash
206
- end
207
- end
208
132
  end
209
133
  end
210
134
  end
@@ -0,0 +1,46 @@
1
+ # typed: strong
2
+
3
+ module Cadenya
4
+ module Models
5
+ class ObjectiveStreamEventsParams < 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(
12
+ Cadenya::ObjectiveStreamEventsParams,
13
+ Cadenya::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :workspace_id
19
+
20
+ sig { returns(String) }
21
+ attr_accessor :objective_id
22
+
23
+ sig do
24
+ params(
25
+ workspace_id: String,
26
+ objective_id: String,
27
+ request_options: Cadenya::RequestOptions::OrHash
28
+ ).returns(T.attached_class)
29
+ end
30
+ def self.new(workspace_id:, objective_id:, request_options: {})
31
+ end
32
+
33
+ sig do
34
+ override.returns(
35
+ {
36
+ workspace_id: String,
37
+ objective_id: String,
38
+ request_options: Cadenya::RequestOptions
39
+ }
40
+ )
41
+ end
42
+ def to_hash
43
+ end
44
+ end
45
+ end
46
+ end
@@ -87,15 +87,10 @@ module Cadenya
87
87
  sig { params(objective: Cadenya::OperationMetadata::OrHash).void }
88
88
  attr_writer :objective
89
89
 
90
- sig { returns(Cadenya::UnsafeUnwrapWebhookEvent::Data::ObjectiveEvent) }
90
+ sig { returns(Cadenya::ObjectiveEvent) }
91
91
  attr_reader :objective_event
92
92
 
93
- sig do
94
- params(
95
- objective_event:
96
- Cadenya::UnsafeUnwrapWebhookEvent::Data::ObjectiveEvent::OrHash
97
- ).void
98
- end
93
+ sig { params(objective_event: Cadenya::ObjectiveEvent::OrHash).void }
99
94
  attr_writer :objective_event
100
95
 
101
96
  # The webhook data payload with flat top-level keys for agent, variation,
@@ -105,8 +100,7 @@ module Cadenya
105
100
  agent: Cadenya::ResourceMetadata::OrHash,
106
101
  agent_variation: Cadenya::ResourceMetadata::OrHash,
107
102
  objective: Cadenya::OperationMetadata::OrHash,
108
- objective_event:
109
- Cadenya::UnsafeUnwrapWebhookEvent::Data::ObjectiveEvent::OrHash
103
+ objective_event: Cadenya::ObjectiveEvent::OrHash
110
104
  ).returns(T.attached_class)
111
105
  end
112
106
  def self.new(
@@ -127,80 +121,12 @@ module Cadenya
127
121
  agent: Cadenya::ResourceMetadata,
128
122
  agent_variation: Cadenya::ResourceMetadata,
129
123
  objective: Cadenya::OperationMetadata,
130
- objective_event:
131
- Cadenya::UnsafeUnwrapWebhookEvent::Data::ObjectiveEvent
124
+ objective_event: Cadenya::ObjectiveEvent
132
125
  }
133
126
  )
134
127
  end
135
128
  def to_hash
136
129
  end
137
-
138
- class ObjectiveEvent < Cadenya::Internal::Type::BaseModel
139
- OrHash =
140
- T.type_alias do
141
- T.any(
142
- Cadenya::UnsafeUnwrapWebhookEvent::Data::ObjectiveEvent,
143
- Cadenya::Internal::AnyHash
144
- )
145
- end
146
-
147
- sig { returns(Cadenya::ObjectiveEventData) }
148
- attr_reader :data
149
-
150
- sig { params(data: Cadenya::ObjectiveEventData::OrHash).void }
151
- attr_writer :data
152
-
153
- # Metadata for ephemeral operations and activities (e.g., objectives, executions,
154
- # runs)
155
- sig { returns(Cadenya::OperationMetadata) }
156
- attr_reader :metadata
157
-
158
- sig { params(metadata: Cadenya::OperationMetadata::OrHash).void }
159
- attr_writer :metadata
160
-
161
- sig { returns(T.nilable(String)) }
162
- attr_reader :context_window_id
163
-
164
- sig { params(context_window_id: String).void }
165
- attr_writer :context_window_id
166
-
167
- sig { returns(T.nilable(Cadenya::ObjectiveEventInfo)) }
168
- attr_reader :info
169
-
170
- sig { params(info: Cadenya::ObjectiveEventInfo::OrHash).void }
171
- attr_writer :info
172
-
173
- sig do
174
- params(
175
- data: Cadenya::ObjectiveEventData::OrHash,
176
- metadata: Cadenya::OperationMetadata::OrHash,
177
- context_window_id: String,
178
- info: Cadenya::ObjectiveEventInfo::OrHash
179
- ).returns(T.attached_class)
180
- end
181
- def self.new(
182
- data:,
183
- # Metadata for ephemeral operations and activities (e.g., objectives, executions,
184
- # runs)
185
- metadata:,
186
- context_window_id: nil,
187
- info: nil
188
- )
189
- end
190
-
191
- sig do
192
- override.returns(
193
- {
194
- data: Cadenya::ObjectiveEventData,
195
- metadata: Cadenya::OperationMetadata,
196
- context_window_id: String,
197
- info: Cadenya::ObjectiveEventInfo
198
- }
199
- )
200
- end
201
- def to_hash
202
- end
203
- end
204
130
  end
205
131
  end
206
132
  end
@@ -84,15 +84,10 @@ module Cadenya
84
84
  sig { params(objective: Cadenya::OperationMetadata::OrHash).void }
85
85
  attr_writer :objective
86
86
 
87
- sig { returns(Cadenya::UnwrapWebhookEvent::Data::ObjectiveEvent) }
87
+ sig { returns(Cadenya::ObjectiveEvent) }
88
88
  attr_reader :objective_event
89
89
 
90
- sig do
91
- params(
92
- objective_event:
93
- Cadenya::UnwrapWebhookEvent::Data::ObjectiveEvent::OrHash
94
- ).void
95
- end
90
+ sig { params(objective_event: Cadenya::ObjectiveEvent::OrHash).void }
96
91
  attr_writer :objective_event
97
92
 
98
93
  # The webhook data payload with flat top-level keys for agent, variation,
@@ -102,8 +97,7 @@ module Cadenya
102
97
  agent: Cadenya::ResourceMetadata::OrHash,
103
98
  agent_variation: Cadenya::ResourceMetadata::OrHash,
104
99
  objective: Cadenya::OperationMetadata::OrHash,
105
- objective_event:
106
- Cadenya::UnwrapWebhookEvent::Data::ObjectiveEvent::OrHash
100
+ objective_event: Cadenya::ObjectiveEvent::OrHash
107
101
  ).returns(T.attached_class)
108
102
  end
109
103
  def self.new(
@@ -124,79 +118,12 @@ module Cadenya
124
118
  agent: Cadenya::ResourceMetadata,
125
119
  agent_variation: Cadenya::ResourceMetadata,
126
120
  objective: Cadenya::OperationMetadata,
127
- objective_event: Cadenya::UnwrapWebhookEvent::Data::ObjectiveEvent
121
+ objective_event: Cadenya::ObjectiveEvent
128
122
  }
129
123
  )
130
124
  end
131
125
  def to_hash
132
126
  end
133
-
134
- class ObjectiveEvent < Cadenya::Internal::Type::BaseModel
135
- OrHash =
136
- T.type_alias do
137
- T.any(
138
- Cadenya::UnwrapWebhookEvent::Data::ObjectiveEvent,
139
- Cadenya::Internal::AnyHash
140
- )
141
- end
142
-
143
- sig { returns(Cadenya::ObjectiveEventData) }
144
- attr_reader :data
145
-
146
- sig { params(data: Cadenya::ObjectiveEventData::OrHash).void }
147
- attr_writer :data
148
-
149
- # Metadata for ephemeral operations and activities (e.g., objectives, executions,
150
- # runs)
151
- sig { returns(Cadenya::OperationMetadata) }
152
- attr_reader :metadata
153
-
154
- sig { params(metadata: Cadenya::OperationMetadata::OrHash).void }
155
- attr_writer :metadata
156
-
157
- sig { returns(T.nilable(String)) }
158
- attr_reader :context_window_id
159
-
160
- sig { params(context_window_id: String).void }
161
- attr_writer :context_window_id
162
-
163
- sig { returns(T.nilable(Cadenya::ObjectiveEventInfo)) }
164
- attr_reader :info
165
-
166
- sig { params(info: Cadenya::ObjectiveEventInfo::OrHash).void }
167
- attr_writer :info
168
-
169
- sig do
170
- params(
171
- data: Cadenya::ObjectiveEventData::OrHash,
172
- metadata: Cadenya::OperationMetadata::OrHash,
173
- context_window_id: String,
174
- info: Cadenya::ObjectiveEventInfo::OrHash
175
- ).returns(T.attached_class)
176
- end
177
- def self.new(
178
- data:,
179
- # Metadata for ephemeral operations and activities (e.g., objectives, executions,
180
- # runs)
181
- metadata:,
182
- context_window_id: nil,
183
- info: nil
184
- )
185
- end
186
-
187
- sig do
188
- override.returns(
189
- {
190
- data: Cadenya::ObjectiveEventData,
191
- metadata: Cadenya::OperationMetadata,
192
- context_window_id: String,
193
- info: Cadenya::ObjectiveEventInfo
194
- }
195
- )
196
- end
197
- def to_hash
198
- end
199
- end
200
127
  end
201
128
  end
202
129
  end
@@ -146,6 +146,8 @@ module Cadenya
146
146
 
147
147
  ObjectiveError = Cadenya::Models::ObjectiveError
148
148
 
149
+ ObjectiveEvent = Cadenya::Models::ObjectiveEvent
150
+
149
151
  ObjectiveEventData = Cadenya::Models::ObjectiveEventData
150
152
 
151
153
  ObjectiveEventInfo = Cadenya::Models::ObjectiveEventInfo
@@ -167,6 +169,8 @@ module Cadenya
167
169
 
168
170
  ObjectiveSecret = Cadenya::Models::ObjectiveSecret
169
171
 
172
+ ObjectiveStreamEventsParams = Cadenya::Models::ObjectiveStreamEventsParams
173
+
170
174
  OperationMetadata = Cadenya::Models::OperationMetadata
171
175
 
172
176
  Page = Cadenya::Models::Page
@@ -184,7 +184,7 @@ module Cadenya
184
184
  message: String,
185
185
  secrets: T::Array[Cadenya::ObjectiveContinueParams::Secret::OrHash],
186
186
  request_options: Cadenya::RequestOptions::OrHash
187
- ).returns(Cadenya::Models::ObjectiveContinueResponse)
187
+ ).returns(Cadenya::ObjectiveEvent)
188
188
  end
189
189
  def continue(
190
190
  # Path param: The ID of the objective. If you have assigned an external ID to the
@@ -248,11 +248,7 @@ module Cadenya
248
248
  sort_order: String,
249
249
  window_id: String,
250
250
  request_options: Cadenya::RequestOptions::OrHash
251
- ).returns(
252
- Cadenya::Internal::CursorPagination[
253
- Cadenya::Models::ObjectiveListEventsResponse
254
- ]
255
- )
251
+ ).returns(Cadenya::Internal::CursorPagination[Cadenya::ObjectiveEvent])
256
252
  end
257
253
  def list_events(
258
254
  # Path param: Objective ID for filtering
@@ -275,6 +271,21 @@ module Cadenya
275
271
  )
276
272
  end
277
273
 
274
+ # Streams events for an objective in real-time using server-sent events (SSE)
275
+ sig do
276
+ params(
277
+ objective_id: String,
278
+ workspace_id: String,
279
+ request_options: Cadenya::RequestOptions::OrHash
280
+ ).returns(Cadenya::Internal::Stream[Cadenya::ObjectiveEvent])
281
+ end
282
+ def stream_events_streaming(
283
+ objective_id,
284
+ workspace_id:,
285
+ request_options: {}
286
+ )
287
+ end
288
+
278
289
  # @api private
279
290
  sig { params(client: Cadenya::Client).returns(T.attached_class) }
280
291
  def self.new(client:)
@@ -0,0 +1,9 @@
1
+ module Cadenya
2
+ module Internal
3
+ class Stream[Elem]
4
+ include Cadenya::Internal::Type::BaseStream[Cadenya::Internal::Util::server_sent_event, Elem]
5
+
6
+ private def iterator: -> Enumerable[Elem]
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,38 @@
1
+ module Cadenya
2
+ module Internal
3
+ module Type
4
+ module BaseStream[Message, Elem]
5
+ include Enumerable[Elem]
6
+
7
+ attr_reader status: Integer
8
+
9
+ attr_reader headers: ::Hash[String, String]
10
+
11
+ def close: -> void
12
+
13
+ private def iterator: -> Enumerable[Elem]
14
+
15
+ def each: { (Elem arg0) -> void } -> void
16
+
17
+ def to_enum: -> Enumerator[Elem]
18
+
19
+ alias enum_for to_enum
20
+
21
+ def initialize: (
22
+ model: Class | Cadenya::Internal::Type::Converter,
23
+ url: URI::Generic,
24
+ status: Integer,
25
+ headers: ::Hash[String, String],
26
+ response: top,
27
+ unwrap: Symbol
28
+ | Integer
29
+ | ::Array[Symbol | Integer]
30
+ | ^(top arg0) -> top,
31
+ stream: Enumerable[Message]
32
+ ) -> void
33
+
34
+ def inspect: -> String
35
+ end
36
+ end
37
+ end
38
+ end
@@ -2,23 +2,19 @@ module Cadenya
2
2
  module Models
3
3
  type ai_provider_key_spec =
4
4
  {
5
- config: Cadenya::AIProviderKeySpec::Config,
6
- credentials: Cadenya::AIProviderKeySpec::Credentials,
5
+ api_key: String,
6
+ openrouter: top,
7
7
  provider: Cadenya::Models::AIProviderKeySpec::provider
8
8
  }
9
9
 
10
10
  class AIProviderKeySpec < Cadenya::Internal::Type::BaseModel
11
- attr_reader config: Cadenya::AIProviderKeySpec::Config?
11
+ attr_reader api_key: String?
12
12
 
13
- def config=: (
14
- Cadenya::AIProviderKeySpec::Config
15
- ) -> Cadenya::AIProviderKeySpec::Config
13
+ def api_key=: (String) -> String
16
14
 
17
- attr_reader credentials: Cadenya::AIProviderKeySpec::Credentials?
15
+ attr_reader openrouter: top?
18
16
 
19
- def credentials=: (
20
- Cadenya::AIProviderKeySpec::Credentials
21
- ) -> Cadenya::AIProviderKeySpec::Credentials
17
+ def openrouter=: (top) -> top
22
18
 
23
19
  attr_reader provider: Cadenya::Models::AIProviderKeySpec::provider?
24
20
 
@@ -27,170 +23,24 @@ module Cadenya
27
23
  ) -> Cadenya::Models::AIProviderKeySpec::provider
28
24
 
29
25
  def initialize: (
30
- ?config: Cadenya::AIProviderKeySpec::Config,
31
- ?credentials: Cadenya::AIProviderKeySpec::Credentials,
26
+ ?api_key: String,
27
+ ?openrouter: top,
32
28
  ?provider: Cadenya::Models::AIProviderKeySpec::provider
33
29
  ) -> void
34
30
 
35
31
  def to_hash: -> {
36
- config: Cadenya::AIProviderKeySpec::Config,
37
- credentials: Cadenya::AIProviderKeySpec::Credentials,
32
+ api_key: String,
33
+ openrouter: top,
38
34
  provider: Cadenya::Models::AIProviderKeySpec::provider
39
35
  }
40
36
 
41
- type config =
42
- {
43
- openai: Cadenya::AIProviderKeySpec::Config::OpenAI,
44
- openai_compatible: Cadenya::AIProviderKeySpec::Config::OpenAICompatible,
45
- openrouter: Cadenya::AIProviderKeySpec::Config::Openrouter
46
- }
47
-
48
- class Config < Cadenya::Internal::Type::BaseModel
49
- attr_reader openai: Cadenya::AIProviderKeySpec::Config::OpenAI?
50
-
51
- def openai=: (
52
- Cadenya::AIProviderKeySpec::Config::OpenAI
53
- ) -> Cadenya::AIProviderKeySpec::Config::OpenAI
54
-
55
- attr_reader openai_compatible: Cadenya::AIProviderKeySpec::Config::OpenAICompatible?
56
-
57
- def openai_compatible=: (
58
- Cadenya::AIProviderKeySpec::Config::OpenAICompatible
59
- ) -> Cadenya::AIProviderKeySpec::Config::OpenAICompatible
60
-
61
- attr_reader openrouter: Cadenya::AIProviderKeySpec::Config::Openrouter?
62
-
63
- def openrouter=: (
64
- Cadenya::AIProviderKeySpec::Config::Openrouter
65
- ) -> Cadenya::AIProviderKeySpec::Config::Openrouter
66
-
67
- def initialize: (
68
- ?openai: Cadenya::AIProviderKeySpec::Config::OpenAI,
69
- ?openai_compatible: Cadenya::AIProviderKeySpec::Config::OpenAICompatible,
70
- ?openrouter: Cadenya::AIProviderKeySpec::Config::Openrouter
71
- ) -> void
72
-
73
- def to_hash: -> {
74
- openai: Cadenya::AIProviderKeySpec::Config::OpenAI,
75
- openai_compatible: Cadenya::AIProviderKeySpec::Config::OpenAICompatible,
76
- openrouter: Cadenya::AIProviderKeySpec::Config::Openrouter
77
- }
78
-
79
- type openai = { organization_id: String, project_id: String }
80
-
81
- class OpenAI < Cadenya::Internal::Type::BaseModel
82
- attr_reader organization_id: String?
83
-
84
- def organization_id=: (String) -> String
85
-
86
- attr_reader project_id: String?
87
-
88
- def project_id=: (String) -> String
89
-
90
- def initialize: (
91
- ?organization_id: String,
92
- ?project_id: String
93
- ) -> void
94
-
95
- def to_hash: -> { organization_id: String, project_id: String }
96
- end
97
-
98
- type openai_compatible = { base_url: String }
99
-
100
- class OpenAICompatible < Cadenya::Internal::Type::BaseModel
101
- attr_reader base_url: String?
102
-
103
- def base_url=: (String) -> String
104
-
105
- def initialize: (?base_url: String) -> void
106
-
107
- def to_hash: -> { base_url: String }
108
- end
109
-
110
- type openrouter = { region: String }
111
-
112
- class Openrouter < Cadenya::Internal::Type::BaseModel
113
- attr_reader region: String?
114
-
115
- def region=: (String) -> String
116
-
117
- def initialize: (?region: String) -> void
118
-
119
- def to_hash: -> { region: String }
120
- end
121
- end
122
-
123
- type credentials =
124
- {
125
- api_key: Cadenya::AIProviderKeySpec::Credentials::APIKey,
126
- headers: Cadenya::AIProviderKeySpec::Credentials::Headers
127
- }
128
-
129
- class Credentials < Cadenya::Internal::Type::BaseModel
130
- attr_reader api_key: Cadenya::AIProviderKeySpec::Credentials::APIKey?
131
-
132
- def api_key=: (
133
- Cadenya::AIProviderKeySpec::Credentials::APIKey
134
- ) -> Cadenya::AIProviderKeySpec::Credentials::APIKey
135
-
136
- attr_reader headers: Cadenya::AIProviderKeySpec::Credentials::Headers?
137
-
138
- def headers=: (
139
- Cadenya::AIProviderKeySpec::Credentials::Headers
140
- ) -> Cadenya::AIProviderKeySpec::Credentials::Headers
141
-
142
- def initialize: (
143
- ?api_key: Cadenya::AIProviderKeySpec::Credentials::APIKey,
144
- ?headers: Cadenya::AIProviderKeySpec::Credentials::Headers
145
- ) -> void
146
-
147
- def to_hash: -> {
148
- api_key: Cadenya::AIProviderKeySpec::Credentials::APIKey,
149
- headers: Cadenya::AIProviderKeySpec::Credentials::Headers
150
- }
151
-
152
- type api_key = { api_key: String }
153
-
154
- class APIKey < Cadenya::Internal::Type::BaseModel
155
- attr_reader api_key: String?
156
-
157
- def api_key=: (String) -> String
158
-
159
- def initialize: (?api_key: String) -> void
160
-
161
- def to_hash: -> { api_key: String }
162
- end
163
-
164
- type headers = { headers: ::Hash[Symbol, String] }
165
-
166
- class Headers < Cadenya::Internal::Type::BaseModel
167
- attr_reader headers: ::Hash[Symbol, String]?
168
-
169
- def headers=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
170
-
171
- def initialize: (?headers: ::Hash[Symbol, String]) -> void
172
-
173
- def to_hash: -> { headers: ::Hash[Symbol, String] }
174
- end
175
- end
176
-
177
- type provider =
178
- :AI_PROVIDER_UNSPECIFIED
179
- | :AI_PROVIDER_OPENROUTER
180
- | :AI_PROVIDER_OPENAI
181
- | :AI_PROVIDER_ANTHROPIC
182
- | :AI_PROVIDER_GEMINI
183
- | :AI_PROVIDER_OPENAI_COMPATIBLE
37
+ type provider = :AI_PROVIDER_UNSPECIFIED | :AI_PROVIDER_OPENROUTER
184
38
 
185
39
  module Provider
186
40
  extend Cadenya::Internal::Type::Enum
187
41
 
188
42
  AI_PROVIDER_UNSPECIFIED: :AI_PROVIDER_UNSPECIFIED
189
43
  AI_PROVIDER_OPENROUTER: :AI_PROVIDER_OPENROUTER
190
- AI_PROVIDER_OPENAI: :AI_PROVIDER_OPENAI
191
- AI_PROVIDER_ANTHROPIC: :AI_PROVIDER_ANTHROPIC
192
- AI_PROVIDER_GEMINI: :AI_PROVIDER_GEMINI
193
- AI_PROVIDER_OPENAI_COMPATIBLE: :AI_PROVIDER_OPENAI_COMPATIBLE
194
44
 
195
45
  def self?.values: -> ::Array[Cadenya::Models::AIProviderKeySpec::provider]
196
46
  end