cadenya 0.22.0 → 0.24.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 +17 -0
- data/README.md +13 -1
- data/lib/cadenya/internal/stream.rb +32 -0
- data/lib/cadenya/internal/transport/base_client.rb +1 -1
- data/lib/cadenya/internal/type/base_stream.rb +83 -0
- data/lib/cadenya/models/{objective_continue_response.rb → objective_event.rb} +2 -2
- data/lib/cadenya/models/objective_event_webhook_data.rb +3 -43
- data/lib/cadenya/models/objective_stream_events_params.rb +26 -0
- data/lib/cadenya/models/unsafe_unwrap_webhook_event.rb +3 -43
- data/lib/cadenya/models/unwrap_webhook_event.rb +3 -42
- data/lib/cadenya/models.rb +4 -0
- data/lib/cadenya/resources/objectives.rb +31 -4
- data/lib/cadenya/version.rb +1 -1
- data/lib/cadenya.rb +4 -2
- data/rbi/cadenya/internal/stream.rbi +18 -0
- data/rbi/cadenya/internal/transport/base_client.rbi +18 -2
- data/rbi/cadenya/internal/type/base_stream.rbi +75 -0
- data/rbi/cadenya/models/{objective_continue_response.rbi → objective_event.rbi} +2 -5
- data/rbi/cadenya/models/objective_event_webhook_data.rbi +4 -80
- data/rbi/cadenya/models/objective_stream_events_params.rbi +46 -0
- data/rbi/cadenya/models/unsafe_unwrap_webhook_event.rbi +4 -78
- data/rbi/cadenya/models/unwrap_webhook_event.rbi +4 -77
- data/rbi/cadenya/models.rbi +4 -0
- data/rbi/cadenya/resources/objectives.rbi +17 -6
- data/sig/cadenya/internal/stream.rbs +9 -0
- data/sig/cadenya/internal/type/base_stream.rbs +38 -0
- data/sig/cadenya/models/{objective_continue_response.rbs → objective_event.rbs} +2 -2
- data/sig/cadenya/models/objective_event_webhook_data.rbs +4 -42
- data/sig/cadenya/models/objective_stream_events_params.rbs +28 -0
- data/sig/cadenya/models/unsafe_unwrap_webhook_event.rbs +4 -42
- data/sig/cadenya/models/unwrap_webhook_event.rbs +4 -42
- data/sig/cadenya/models.rbs +4 -0
- data/sig/cadenya/resources/objectives.rbs +8 -2
- metadata +13 -7
- data/lib/cadenya/models/objective_list_events_response.rb +0 -42
- data/rbi/cadenya/models/objective_list_events_response.rbi +0 -72
- data/sig/cadenya/models/objective_list_events_response.rbs +0 -39
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 56345beed04805e02e3d9160438370098e235277a458b4d99964df96d689d1fa
|
|
4
|
+
data.tar.gz: 48e4a95347381ea29f7f4523d1098af4aab96e1a9a43e5187a6c115120848087
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9e343691120327cdd8c6c1d14df4f15d77344f9a625ec59fff2d743999330aacecb0fad0fe0290ebd8bd2094bce006b60e95e225ef4c1f403700542bfe03feff
|
|
7
|
+
data.tar.gz: 218de860735ffcfcc65da64a9ca06675bfee2a54f45c5588ec400e5d330d9cedd7e9730a3078592ad4924d4698a291c2a26fe0baf79f181bbdc527c6b58d540b
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.24.0 (2026-07-01)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.23.0...v0.24.0](https://github.com/cadenya/cadenya-ruby/compare/v0.23.0...v0.24.0)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* **api:** api update ([2dc6e63](https://github.com/cadenya/cadenya-ruby/commit/2dc6e631c0c63392b148ea3458ce560593bcf27a))
|
|
10
|
+
|
|
11
|
+
## 0.23.0 (2026-07-01)
|
|
12
|
+
|
|
13
|
+
Full Changelog: [v0.22.0...v0.23.0](https://github.com/cadenya/cadenya-ruby/compare/v0.22.0...v0.23.0)
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* Add SSE streaming endpoint for objective events (ENG-344) ([eec699b](https://github.com/cadenya/cadenya-ruby/commit/eec699b38fee3662e2d07d8ca22b321472d88e93))
|
|
18
|
+
* **api:** api update ([d9ebcf1](https://github.com/cadenya/cadenya-ruby/commit/d9ebcf1e47b6bb392dada1aa8e64d230ca342e42))
|
|
19
|
+
|
|
3
20
|
## 0.22.0 (2026-07-01)
|
|
4
21
|
|
|
5
22
|
Full Changelog: [v0.21.0...v0.22.0](https://github.com/cadenya/cadenya-ruby/compare/v0.21.0...v0.22.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.
|
|
20
|
+
gem "cadenya", "~> 0.24.0"
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
<!-- x-release-please-end -->
|
|
@@ -37,6 +37,18 @@ account = cadenya.account.retrieve
|
|
|
37
37
|
puts(account.info)
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
+
### Streaming
|
|
41
|
+
|
|
42
|
+
We provide support for streaming responses using Server-Sent Events (SSE).
|
|
43
|
+
|
|
44
|
+
```ruby
|
|
45
|
+
stream = cadenya.objectives.stream_events_streaming
|
|
46
|
+
|
|
47
|
+
stream.each do |objective|
|
|
48
|
+
puts(objective.data)
|
|
49
|
+
end
|
|
50
|
+
```
|
|
51
|
+
|
|
40
52
|
### Pagination
|
|
41
53
|
|
|
42
54
|
List methods in the Cadenya API are paginated.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Cadenya
|
|
4
|
+
module Internal
|
|
5
|
+
# @generic Elem
|
|
6
|
+
#
|
|
7
|
+
# @example
|
|
8
|
+
# stream.each do |event|
|
|
9
|
+
# puts(event)
|
|
10
|
+
# end
|
|
11
|
+
class Stream
|
|
12
|
+
include Cadenya::Internal::Type::BaseStream
|
|
13
|
+
|
|
14
|
+
# @api private
|
|
15
|
+
#
|
|
16
|
+
# @return [Enumerable<generic<Elem>>]
|
|
17
|
+
private def iterator
|
|
18
|
+
@iterator ||= Cadenya::Internal::Util.chain_fused(@stream) do |y|
|
|
19
|
+
@stream.each do |msg|
|
|
20
|
+
case msg
|
|
21
|
+
in {data: String => data}
|
|
22
|
+
decoded = JSON.parse(data, symbolize_names: true)
|
|
23
|
+
unwrapped = Cadenya::Internal::Util.dig(decoded, @unwrap)
|
|
24
|
+
y << Cadenya::Internal::Type::Converter.coerce(@model, unwrapped)
|
|
25
|
+
else
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -554,7 +554,7 @@ module Cadenya
|
|
|
554
554
|
)
|
|
555
555
|
),
|
|
556
556
|
page: T.nilable(T::Class[Cadenya::Internal::Type::BasePage[Cadenya::Internal::Type::BaseModel]]),
|
|
557
|
-
stream: T.nilable(T::Class[T.anything]),
|
|
557
|
+
stream: T.nilable(T::Class[Cadenya::Internal::Type::BaseStream[T.anything, Cadenya::Internal::Type::BaseModel]]),
|
|
558
558
|
model: T.nilable(Cadenya::Internal::Type::Converter::Input),
|
|
559
559
|
options: T.nilable(Cadenya::RequestOptions::OrHash)
|
|
560
560
|
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Cadenya
|
|
4
|
+
module Internal
|
|
5
|
+
module Type
|
|
6
|
+
# @api private
|
|
7
|
+
#
|
|
8
|
+
# @generic Elem
|
|
9
|
+
#
|
|
10
|
+
# This module provides a base implementation for streaming responses in the SDK.
|
|
11
|
+
#
|
|
12
|
+
# @see https://rubyapi.org/3.2/o/enumerable
|
|
13
|
+
module BaseStream
|
|
14
|
+
include Enumerable
|
|
15
|
+
|
|
16
|
+
# @return [Integer]
|
|
17
|
+
attr_reader :status
|
|
18
|
+
|
|
19
|
+
# @return [Hash{String=>String}]
|
|
20
|
+
attr_reader :headers
|
|
21
|
+
|
|
22
|
+
# @api public
|
|
23
|
+
#
|
|
24
|
+
# @return [void]
|
|
25
|
+
def close = Cadenya::Internal::Util.close_fused!(@iterator)
|
|
26
|
+
|
|
27
|
+
# @api private
|
|
28
|
+
#
|
|
29
|
+
# @return [Enumerable<generic<Elem>>]
|
|
30
|
+
private def iterator = (raise NotImplementedError)
|
|
31
|
+
|
|
32
|
+
# @api public
|
|
33
|
+
#
|
|
34
|
+
# @param blk [Proc]
|
|
35
|
+
#
|
|
36
|
+
# @yieldparam [generic<Elem>]
|
|
37
|
+
# @return [void]
|
|
38
|
+
def each(&blk)
|
|
39
|
+
unless block_given?
|
|
40
|
+
raise ArgumentError.new("A block must be given to ##{__method__}")
|
|
41
|
+
end
|
|
42
|
+
@iterator.each(&blk)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# @api public
|
|
46
|
+
#
|
|
47
|
+
# @return [Enumerator<generic<Elem>>]
|
|
48
|
+
def to_enum = @iterator
|
|
49
|
+
|
|
50
|
+
alias_method :enum_for, :to_enum
|
|
51
|
+
|
|
52
|
+
# @api private
|
|
53
|
+
#
|
|
54
|
+
# @param model [Class, Cadenya::Internal::Type::Converter]
|
|
55
|
+
# @param url [URI::Generic]
|
|
56
|
+
# @param status [Integer]
|
|
57
|
+
# @param headers [Hash{String=>String}]
|
|
58
|
+
# @param response [Net::HTTPResponse]
|
|
59
|
+
# @param unwrap [Symbol, Integer, Array<Symbol, Integer>, Proc]
|
|
60
|
+
# @param stream [Enumerable<Object>]
|
|
61
|
+
def initialize(model:, url:, status:, headers:, response:, unwrap:, stream:)
|
|
62
|
+
@model = model
|
|
63
|
+
@url = url
|
|
64
|
+
@status = status
|
|
65
|
+
@headers = headers
|
|
66
|
+
@response = response
|
|
67
|
+
@unwrap = unwrap
|
|
68
|
+
@stream = stream
|
|
69
|
+
@iterator = iterator
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# @api private
|
|
73
|
+
#
|
|
74
|
+
# @return [String]
|
|
75
|
+
def inspect
|
|
76
|
+
model = Cadenya::Internal::Type::Converter.inspect(@model, depth: 1)
|
|
77
|
+
|
|
78
|
+
"#<#{self.class}[#{model}]:0x#{object_id.to_s(16)}>"
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
module Cadenya
|
|
4
4
|
module Models
|
|
5
5
|
# @see Cadenya::Resources::Objectives#continue
|
|
6
|
-
class
|
|
6
|
+
class ObjectiveEvent < Cadenya::Internal::Type::BaseModel
|
|
7
7
|
# @!attribute data
|
|
8
8
|
#
|
|
9
9
|
# @return [Cadenya::Models::ObjectiveEventData]
|
|
@@ -28,7 +28,7 @@ module Cadenya
|
|
|
28
28
|
|
|
29
29
|
# @!method initialize(data:, metadata:, context_window_id: nil, info: nil)
|
|
30
30
|
# Some parameter documentations has been truncated, see
|
|
31
|
-
# {Cadenya::Models::
|
|
31
|
+
# {Cadenya::Models::ObjectiveEvent} for more details.
|
|
32
32
|
#
|
|
33
33
|
# @param data [Cadenya::Models::ObjectiveEventData]
|
|
34
34
|
#
|
|
@@ -58,10 +58,8 @@ module Cadenya
|
|
|
58
58
|
|
|
59
59
|
# @!attribute objective_event
|
|
60
60
|
#
|
|
61
|
-
# @return [Cadenya::Models::
|
|
62
|
-
required :objective_event,
|
|
63
|
-
-> { Cadenya::ObjectiveEventWebhookData::Data::ObjectiveEvent },
|
|
64
|
-
api_name: :objectiveEvent
|
|
61
|
+
# @return [Cadenya::Models::ObjectiveEvent]
|
|
62
|
+
required :objective_event, -> { Cadenya::ObjectiveEvent }, api_name: :objectiveEvent
|
|
65
63
|
|
|
66
64
|
# @!method initialize(agent:, agent_variation:, objective:, objective_event:)
|
|
67
65
|
# Some parameter documentations has been truncated, see
|
|
@@ -76,45 +74,7 @@ module Cadenya
|
|
|
76
74
|
#
|
|
77
75
|
# @param objective [Cadenya::Models::OperationMetadata] Metadata for ephemeral operations and activities (e.g., objectives, executions,
|
|
78
76
|
#
|
|
79
|
-
# @param objective_event [Cadenya::Models::
|
|
80
|
-
|
|
81
|
-
# @see Cadenya::Models::ObjectiveEventWebhookData::Data#objective_event
|
|
82
|
-
class ObjectiveEvent < Cadenya::Internal::Type::BaseModel
|
|
83
|
-
# @!attribute data
|
|
84
|
-
#
|
|
85
|
-
# @return [Cadenya::Models::ObjectiveEventData]
|
|
86
|
-
required :data, -> { Cadenya::ObjectiveEventData }
|
|
87
|
-
|
|
88
|
-
# @!attribute metadata
|
|
89
|
-
# Metadata for ephemeral operations and activities (e.g., objectives, executions,
|
|
90
|
-
# runs)
|
|
91
|
-
#
|
|
92
|
-
# @return [Cadenya::Models::OperationMetadata]
|
|
93
|
-
required :metadata, -> { Cadenya::OperationMetadata }
|
|
94
|
-
|
|
95
|
-
# @!attribute context_window_id
|
|
96
|
-
#
|
|
97
|
-
# @return [String, nil]
|
|
98
|
-
optional :context_window_id, String, api_name: :contextWindowId
|
|
99
|
-
|
|
100
|
-
# @!attribute info
|
|
101
|
-
#
|
|
102
|
-
# @return [Cadenya::Models::ObjectiveEventInfo, nil]
|
|
103
|
-
optional :info, -> { Cadenya::ObjectiveEventInfo }
|
|
104
|
-
|
|
105
|
-
# @!method initialize(data:, metadata:, context_window_id: nil, info: nil)
|
|
106
|
-
# Some parameter documentations has been truncated, see
|
|
107
|
-
# {Cadenya::Models::ObjectiveEventWebhookData::Data::ObjectiveEvent} for more
|
|
108
|
-
# details.
|
|
109
|
-
#
|
|
110
|
-
# @param data [Cadenya::Models::ObjectiveEventData]
|
|
111
|
-
#
|
|
112
|
-
# @param metadata [Cadenya::Models::OperationMetadata] Metadata for ephemeral operations and activities (e.g., objectives, executions,
|
|
113
|
-
#
|
|
114
|
-
# @param context_window_id [String]
|
|
115
|
-
#
|
|
116
|
-
# @param info [Cadenya::Models::ObjectiveEventInfo]
|
|
117
|
-
end
|
|
77
|
+
# @param objective_event [Cadenya::Models::ObjectiveEvent]
|
|
118
78
|
end
|
|
119
79
|
end
|
|
120
80
|
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Cadenya
|
|
4
|
+
module Models
|
|
5
|
+
# @see Cadenya::Resources::Objectives#stream_events_streaming
|
|
6
|
+
class ObjectiveStreamEventsParams < 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 objective_id
|
|
16
|
+
#
|
|
17
|
+
# @return [String]
|
|
18
|
+
required :objective_id, String
|
|
19
|
+
|
|
20
|
+
# @!method initialize(workspace_id:, objective_id:, request_options: {})
|
|
21
|
+
# @param workspace_id [String]
|
|
22
|
+
# @param objective_id [String]
|
|
23
|
+
# @param request_options [Cadenya::RequestOptions, Hash{Symbol=>Object}]
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -58,10 +58,8 @@ module Cadenya
|
|
|
58
58
|
|
|
59
59
|
# @!attribute objective_event
|
|
60
60
|
#
|
|
61
|
-
# @return [Cadenya::Models::
|
|
62
|
-
required :objective_event,
|
|
63
|
-
-> { Cadenya::UnsafeUnwrapWebhookEvent::Data::ObjectiveEvent },
|
|
64
|
-
api_name: :objectiveEvent
|
|
61
|
+
# @return [Cadenya::Models::ObjectiveEvent]
|
|
62
|
+
required :objective_event, -> { Cadenya::ObjectiveEvent }, api_name: :objectiveEvent
|
|
65
63
|
|
|
66
64
|
# @!method initialize(agent:, agent_variation:, objective:, objective_event:)
|
|
67
65
|
# Some parameter documentations has been truncated, see
|
|
@@ -76,45 +74,7 @@ module Cadenya
|
|
|
76
74
|
#
|
|
77
75
|
# @param objective [Cadenya::Models::OperationMetadata] Metadata for ephemeral operations and activities (e.g., objectives, executions,
|
|
78
76
|
#
|
|
79
|
-
# @param objective_event [Cadenya::Models::
|
|
80
|
-
|
|
81
|
-
# @see Cadenya::Models::UnsafeUnwrapWebhookEvent::Data#objective_event
|
|
82
|
-
class ObjectiveEvent < Cadenya::Internal::Type::BaseModel
|
|
83
|
-
# @!attribute data
|
|
84
|
-
#
|
|
85
|
-
# @return [Cadenya::Models::ObjectiveEventData]
|
|
86
|
-
required :data, -> { Cadenya::ObjectiveEventData }
|
|
87
|
-
|
|
88
|
-
# @!attribute metadata
|
|
89
|
-
# Metadata for ephemeral operations and activities (e.g., objectives, executions,
|
|
90
|
-
# runs)
|
|
91
|
-
#
|
|
92
|
-
# @return [Cadenya::Models::OperationMetadata]
|
|
93
|
-
required :metadata, -> { Cadenya::OperationMetadata }
|
|
94
|
-
|
|
95
|
-
# @!attribute context_window_id
|
|
96
|
-
#
|
|
97
|
-
# @return [String, nil]
|
|
98
|
-
optional :context_window_id, String, api_name: :contextWindowId
|
|
99
|
-
|
|
100
|
-
# @!attribute info
|
|
101
|
-
#
|
|
102
|
-
# @return [Cadenya::Models::ObjectiveEventInfo, nil]
|
|
103
|
-
optional :info, -> { Cadenya::ObjectiveEventInfo }
|
|
104
|
-
|
|
105
|
-
# @!method initialize(data:, metadata:, context_window_id: nil, info: nil)
|
|
106
|
-
# Some parameter documentations has been truncated, see
|
|
107
|
-
# {Cadenya::Models::UnsafeUnwrapWebhookEvent::Data::ObjectiveEvent} for more
|
|
108
|
-
# details.
|
|
109
|
-
#
|
|
110
|
-
# @param data [Cadenya::Models::ObjectiveEventData]
|
|
111
|
-
#
|
|
112
|
-
# @param metadata [Cadenya::Models::OperationMetadata] Metadata for ephemeral operations and activities (e.g., objectives, executions,
|
|
113
|
-
#
|
|
114
|
-
# @param context_window_id [String]
|
|
115
|
-
#
|
|
116
|
-
# @param info [Cadenya::Models::ObjectiveEventInfo]
|
|
117
|
-
end
|
|
77
|
+
# @param objective_event [Cadenya::Models::ObjectiveEvent]
|
|
118
78
|
end
|
|
119
79
|
end
|
|
120
80
|
end
|
|
@@ -58,10 +58,8 @@ module Cadenya
|
|
|
58
58
|
|
|
59
59
|
# @!attribute objective_event
|
|
60
60
|
#
|
|
61
|
-
# @return [Cadenya::Models::
|
|
62
|
-
required :objective_event,
|
|
63
|
-
-> { Cadenya::UnwrapWebhookEvent::Data::ObjectiveEvent },
|
|
64
|
-
api_name: :objectiveEvent
|
|
61
|
+
# @return [Cadenya::Models::ObjectiveEvent]
|
|
62
|
+
required :objective_event, -> { Cadenya::ObjectiveEvent }, api_name: :objectiveEvent
|
|
65
63
|
|
|
66
64
|
# @!method initialize(agent:, agent_variation:, objective:, objective_event:)
|
|
67
65
|
# Some parameter documentations has been truncated, see
|
|
@@ -76,44 +74,7 @@ module Cadenya
|
|
|
76
74
|
#
|
|
77
75
|
# @param objective [Cadenya::Models::OperationMetadata] Metadata for ephemeral operations and activities (e.g., objectives, executions,
|
|
78
76
|
#
|
|
79
|
-
# @param objective_event [Cadenya::Models::
|
|
80
|
-
|
|
81
|
-
# @see Cadenya::Models::UnwrapWebhookEvent::Data#objective_event
|
|
82
|
-
class ObjectiveEvent < Cadenya::Internal::Type::BaseModel
|
|
83
|
-
# @!attribute data
|
|
84
|
-
#
|
|
85
|
-
# @return [Cadenya::Models::ObjectiveEventData]
|
|
86
|
-
required :data, -> { Cadenya::ObjectiveEventData }
|
|
87
|
-
|
|
88
|
-
# @!attribute metadata
|
|
89
|
-
# Metadata for ephemeral operations and activities (e.g., objectives, executions,
|
|
90
|
-
# runs)
|
|
91
|
-
#
|
|
92
|
-
# @return [Cadenya::Models::OperationMetadata]
|
|
93
|
-
required :metadata, -> { Cadenya::OperationMetadata }
|
|
94
|
-
|
|
95
|
-
# @!attribute context_window_id
|
|
96
|
-
#
|
|
97
|
-
# @return [String, nil]
|
|
98
|
-
optional :context_window_id, String, api_name: :contextWindowId
|
|
99
|
-
|
|
100
|
-
# @!attribute info
|
|
101
|
-
#
|
|
102
|
-
# @return [Cadenya::Models::ObjectiveEventInfo, nil]
|
|
103
|
-
optional :info, -> { Cadenya::ObjectiveEventInfo }
|
|
104
|
-
|
|
105
|
-
# @!method initialize(data:, metadata:, context_window_id: nil, info: nil)
|
|
106
|
-
# Some parameter documentations has been truncated, see
|
|
107
|
-
# {Cadenya::Models::UnwrapWebhookEvent::Data::ObjectiveEvent} for more details.
|
|
108
|
-
#
|
|
109
|
-
# @param data [Cadenya::Models::ObjectiveEventData]
|
|
110
|
-
#
|
|
111
|
-
# @param metadata [Cadenya::Models::OperationMetadata] Metadata for ephemeral operations and activities (e.g., objectives, executions,
|
|
112
|
-
#
|
|
113
|
-
# @param context_window_id [String]
|
|
114
|
-
#
|
|
115
|
-
# @param info [Cadenya::Models::ObjectiveEventInfo]
|
|
116
|
-
end
|
|
77
|
+
# @param objective_event [Cadenya::Models::ObjectiveEvent]
|
|
117
78
|
end
|
|
118
79
|
end
|
|
119
80
|
end
|
data/lib/cadenya/models.rb
CHANGED
|
@@ -183,6 +183,8 @@ module Cadenya
|
|
|
183
183
|
|
|
184
184
|
ObjectiveError = Cadenya::Models::ObjectiveError
|
|
185
185
|
|
|
186
|
+
ObjectiveEvent = Cadenya::Models::ObjectiveEvent
|
|
187
|
+
|
|
186
188
|
ObjectiveEventData = Cadenya::Models::ObjectiveEventData
|
|
187
189
|
|
|
188
190
|
ObjectiveEventInfo = Cadenya::Models::ObjectiveEventInfo
|
|
@@ -203,6 +205,8 @@ module Cadenya
|
|
|
203
205
|
|
|
204
206
|
ObjectiveSecret = Cadenya::Models::ObjectiveSecret
|
|
205
207
|
|
|
208
|
+
ObjectiveStreamEventsParams = Cadenya::Models::ObjectiveStreamEventsParams
|
|
209
|
+
|
|
206
210
|
OperationMetadata = Cadenya::Models::OperationMetadata
|
|
207
211
|
|
|
208
212
|
Page = Cadenya::Models::Page
|
|
@@ -222,7 +222,7 @@ module Cadenya
|
|
|
222
222
|
#
|
|
223
223
|
# @param request_options [Cadenya::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
224
224
|
#
|
|
225
|
-
# @return [Cadenya::Models::
|
|
225
|
+
# @return [Cadenya::Models::ObjectiveEvent]
|
|
226
226
|
#
|
|
227
227
|
# @see Cadenya::Models::ObjectiveContinueParams
|
|
228
228
|
def continue(objective_id, params)
|
|
@@ -235,7 +235,7 @@ module Cadenya
|
|
|
235
235
|
method: :post,
|
|
236
236
|
path: ["v1/workspaces/%1$s/objectives/%2$s:continue", workspace_id, objective_id],
|
|
237
237
|
body: parsed,
|
|
238
|
-
model: Cadenya::
|
|
238
|
+
model: Cadenya::ObjectiveEvent,
|
|
239
239
|
options: options
|
|
240
240
|
)
|
|
241
241
|
end
|
|
@@ -299,7 +299,7 @@ module Cadenya
|
|
|
299
299
|
#
|
|
300
300
|
# @param request_options [Cadenya::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
301
301
|
#
|
|
302
|
-
# @return [Cadenya::Internal::CursorPagination<Cadenya::Models::
|
|
302
|
+
# @return [Cadenya::Internal::CursorPagination<Cadenya::Models::ObjectiveEvent>]
|
|
303
303
|
#
|
|
304
304
|
# @see Cadenya::Models::ObjectiveListEventsParams
|
|
305
305
|
def list_events(objective_id, params)
|
|
@@ -319,7 +319,34 @@ module Cadenya
|
|
|
319
319
|
window_id: "windowId"
|
|
320
320
|
),
|
|
321
321
|
page: Cadenya::Internal::CursorPagination,
|
|
322
|
-
model: Cadenya::
|
|
322
|
+
model: Cadenya::ObjectiveEvent,
|
|
323
|
+
options: options
|
|
324
|
+
)
|
|
325
|
+
end
|
|
326
|
+
|
|
327
|
+
# Streams events for an objective in real-time using server-sent events (SSE)
|
|
328
|
+
#
|
|
329
|
+
# @overload stream_events_streaming(objective_id, workspace_id:, request_options: {})
|
|
330
|
+
#
|
|
331
|
+
# @param objective_id [String]
|
|
332
|
+
# @param workspace_id [String]
|
|
333
|
+
# @param request_options [Cadenya::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
334
|
+
#
|
|
335
|
+
# @return [Cadenya::Internal::Stream<Cadenya::Models::ObjectiveEvent>]
|
|
336
|
+
#
|
|
337
|
+
# @see Cadenya::Models::ObjectiveStreamEventsParams
|
|
338
|
+
def stream_events_streaming(objective_id, params)
|
|
339
|
+
parsed, options = Cadenya::ObjectiveStreamEventsParams.dump_request(params)
|
|
340
|
+
workspace_id =
|
|
341
|
+
parsed.delete(:workspace_id) do
|
|
342
|
+
raise ArgumentError.new("missing required path argument #{_1}")
|
|
343
|
+
end
|
|
344
|
+
@client.request(
|
|
345
|
+
method: :get,
|
|
346
|
+
path: ["v1/workspaces/%1$s/objectives/%2$s/events:stream", workspace_id, objective_id],
|
|
347
|
+
headers: {"accept" => "text/event-stream", "accept-encoding" => "identity"},
|
|
348
|
+
stream: Cadenya::Internal::Stream,
|
|
349
|
+
model: Cadenya::ObjectiveEvent,
|
|
323
350
|
options: options
|
|
324
351
|
)
|
|
325
352
|
end
|
data/lib/cadenya/version.rb
CHANGED
data/lib/cadenya.rb
CHANGED
|
@@ -45,6 +45,7 @@ require_relative "cadenya/internal/type/array_of"
|
|
|
45
45
|
require_relative "cadenya/internal/type/hash_of"
|
|
46
46
|
require_relative "cadenya/internal/type/base_model"
|
|
47
47
|
require_relative "cadenya/internal/type/base_page"
|
|
48
|
+
require_relative "cadenya/internal/type/base_stream"
|
|
48
49
|
require_relative "cadenya/internal/type/request_parameters"
|
|
49
50
|
require_relative "cadenya/internal"
|
|
50
51
|
require_relative "cadenya/request_options"
|
|
@@ -53,6 +54,7 @@ require_relative "cadenya/errors"
|
|
|
53
54
|
require_relative "cadenya/internal/transport/base_client"
|
|
54
55
|
require_relative "cadenya/internal/transport/pooled_net_requester"
|
|
55
56
|
require_relative "cadenya/client"
|
|
57
|
+
require_relative "cadenya/internal/stream"
|
|
56
58
|
require_relative "cadenya/internal/cursor_pagination"
|
|
57
59
|
require_relative "cadenya/models/account"
|
|
58
60
|
require_relative "cadenya/models/account_info"
|
|
@@ -177,16 +179,15 @@ require_relative "cadenya/models/objective_config_snapshot"
|
|
|
177
179
|
require_relative "cadenya/models/objective_context_window"
|
|
178
180
|
require_relative "cadenya/models/objective_context_window_data"
|
|
179
181
|
require_relative "cadenya/models/objective_continue_params"
|
|
180
|
-
require_relative "cadenya/models/objective_continue_response"
|
|
181
182
|
require_relative "cadenya/models/objective_create_params"
|
|
182
183
|
require_relative "cadenya/models/objective_error"
|
|
184
|
+
require_relative "cadenya/models/objective_event"
|
|
183
185
|
require_relative "cadenya/models/objective_event_data"
|
|
184
186
|
require_relative "cadenya/models/objective_event_info"
|
|
185
187
|
require_relative "cadenya/models/objective_event_webhook_data"
|
|
186
188
|
require_relative "cadenya/models/objective_info"
|
|
187
189
|
require_relative "cadenya/models/objective_list_context_windows_params"
|
|
188
190
|
require_relative "cadenya/models/objective_list_events_params"
|
|
189
|
-
require_relative "cadenya/models/objective_list_events_response"
|
|
190
191
|
require_relative "cadenya/models/objective_list_params"
|
|
191
192
|
require_relative "cadenya/models/objective_retrieve_params"
|
|
192
193
|
require_relative "cadenya/models/objectives/feedback_create_params"
|
|
@@ -215,6 +216,7 @@ require_relative "cadenya/models/objectives/tool_call_list_params"
|
|
|
215
216
|
require_relative "cadenya/models/objectives/tool_call_retrieve_params"
|
|
216
217
|
require_relative "cadenya/models/objectives/tool_list_params"
|
|
217
218
|
require_relative "cadenya/models/objective_secret"
|
|
219
|
+
require_relative "cadenya/models/objective_stream_events_params"
|
|
218
220
|
require_relative "cadenya/models/operation_metadata"
|
|
219
221
|
require_relative "cadenya/models/page"
|
|
220
222
|
require_relative "cadenya/models/profile"
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Cadenya
|
|
4
|
+
module Internal
|
|
5
|
+
class Stream
|
|
6
|
+
Message =
|
|
7
|
+
type_member(:in) { { fixed: Cadenya::Internal::Util::ServerSentEvent } }
|
|
8
|
+
Elem = type_member(:out)
|
|
9
|
+
|
|
10
|
+
include Cadenya::Internal::Type::BaseStream
|
|
11
|
+
|
|
12
|
+
# @api private
|
|
13
|
+
sig { override.returns(T::Enumerable[Elem]) }
|
|
14
|
+
private def iterator
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -49,7 +49,15 @@ module Cadenya
|
|
|
49
49
|
]
|
|
50
50
|
]
|
|
51
51
|
),
|
|
52
|
-
stream:
|
|
52
|
+
stream:
|
|
53
|
+
T.nilable(
|
|
54
|
+
T::Class[
|
|
55
|
+
Cadenya::Internal::Type::BaseStream[
|
|
56
|
+
T.anything,
|
|
57
|
+
Cadenya::Internal::Type::BaseModel
|
|
58
|
+
]
|
|
59
|
+
]
|
|
60
|
+
),
|
|
53
61
|
model: T.nilable(Cadenya::Internal::Type::Converter::Input),
|
|
54
62
|
options: T.nilable(Cadenya::RequestOptions::OrHash)
|
|
55
63
|
}
|
|
@@ -268,7 +276,15 @@ module Cadenya
|
|
|
268
276
|
]
|
|
269
277
|
]
|
|
270
278
|
),
|
|
271
|
-
stream:
|
|
279
|
+
stream:
|
|
280
|
+
T.nilable(
|
|
281
|
+
T::Class[
|
|
282
|
+
Cadenya::Internal::Type::BaseStream[
|
|
283
|
+
T.anything,
|
|
284
|
+
Cadenya::Internal::Type::BaseModel
|
|
285
|
+
]
|
|
286
|
+
]
|
|
287
|
+
),
|
|
272
288
|
model: T.nilable(Cadenya::Internal::Type::Converter::Input),
|
|
273
289
|
options: T.nilable(Cadenya::RequestOptions::OrHash)
|
|
274
290
|
).returns(T.anything)
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Cadenya
|
|
4
|
+
module Internal
|
|
5
|
+
module Type
|
|
6
|
+
# @api private
|
|
7
|
+
#
|
|
8
|
+
# This module provides a base implementation for streaming responses in the SDK.
|
|
9
|
+
module BaseStream
|
|
10
|
+
include Enumerable
|
|
11
|
+
|
|
12
|
+
Message = type_member(:in)
|
|
13
|
+
Elem = type_member(:out)
|
|
14
|
+
|
|
15
|
+
sig { returns(Integer) }
|
|
16
|
+
attr_reader :status
|
|
17
|
+
|
|
18
|
+
sig { returns(T::Hash[String, String]) }
|
|
19
|
+
attr_reader :headers
|
|
20
|
+
|
|
21
|
+
sig { void }
|
|
22
|
+
def close
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# @api private
|
|
26
|
+
sig { overridable.returns(T::Enumerable[Elem]) }
|
|
27
|
+
private def iterator
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
sig { params(blk: T.proc.params(arg0: Elem).void).void }
|
|
31
|
+
def each(&blk)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
sig { returns(T::Enumerator[Elem]) }
|
|
35
|
+
def to_enum
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# @api private
|
|
39
|
+
sig do
|
|
40
|
+
params(
|
|
41
|
+
model:
|
|
42
|
+
T.any(T::Class[T.anything], Cadenya::Internal::Type::Converter),
|
|
43
|
+
url: URI::Generic,
|
|
44
|
+
status: Integer,
|
|
45
|
+
headers: T::Hash[String, String],
|
|
46
|
+
response: Net::HTTPResponse,
|
|
47
|
+
unwrap:
|
|
48
|
+
T.any(
|
|
49
|
+
Symbol,
|
|
50
|
+
Integer,
|
|
51
|
+
T::Array[T.any(Symbol, Integer)],
|
|
52
|
+
T.proc.params(arg0: T.anything).returns(T.anything)
|
|
53
|
+
),
|
|
54
|
+
stream: T::Enumerable[Message]
|
|
55
|
+
).void
|
|
56
|
+
end
|
|
57
|
+
def initialize(
|
|
58
|
+
model:,
|
|
59
|
+
url:,
|
|
60
|
+
status:,
|
|
61
|
+
headers:,
|
|
62
|
+
response:,
|
|
63
|
+
unwrap:,
|
|
64
|
+
stream:
|
|
65
|
+
)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# @api private
|
|
69
|
+
sig { returns(String) }
|
|
70
|
+
def inspect
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|