handinger 0.13.0 → 0.14.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 (33) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/README.md +1 -1
  4. data/lib/handinger/models/task_list_turns_params.rb +20 -0
  5. data/lib/handinger/models/task_retrieve_response.rb +16 -0
  6. data/lib/handinger/models/task_turn_list.rb +22 -0
  7. data/lib/handinger/models/turn.rb +150 -0
  8. data/lib/handinger/models/worker.rb +1 -7
  9. data/lib/handinger/models/workers/schedule_list_response.rb +7 -1
  10. data/lib/handinger/models.rb +5 -1
  11. data/lib/handinger/resources/tasks.rb +23 -3
  12. data/lib/handinger/version.rb +1 -1
  13. data/lib/handinger.rb +4 -1
  14. data/rbi/handinger/models/task_list_turns_params.rbi +35 -0
  15. data/rbi/handinger/models/task_retrieve_response.rbi +29 -0
  16. data/rbi/handinger/models/task_turn_list.rbi +33 -0
  17. data/rbi/handinger/models/turn.rbi +169 -0
  18. data/rbi/handinger/models/worker.rbi +3 -13
  19. data/rbi/handinger/models/workers/schedule_list_response.rbi +6 -1
  20. data/rbi/handinger/models.rbi +5 -1
  21. data/rbi/handinger/resources/tasks.rbi +16 -2
  22. data/sig/handinger/models/task_list_turns_params.rbs +23 -0
  23. data/sig/handinger/models/task_retrieve_response.rbs +13 -0
  24. data/sig/handinger/models/task_turn_list.rbs +15 -0
  25. data/sig/handinger/models/turn.rbs +119 -0
  26. data/sig/handinger/models/worker.rbs +3 -7
  27. data/sig/handinger/models/workers/schedule_list_response.rbs +5 -0
  28. data/sig/handinger/models.rbs +5 -1
  29. data/sig/handinger/resources/tasks.rbs +6 -1
  30. metadata +14 -5
  31. data/lib/handinger/models/task_with_turns.rb +0 -167
  32. data/rbi/handinger/models/task_with_turns.rbi +0 -210
  33. data/sig/handinger/models/task_with_turns.rbs +0 -138
@@ -309,27 +309,17 @@ module Handinger
309
309
  T.any(Handinger::Worker::Usage, Handinger::Internal::AnyHash)
310
310
  end
311
311
 
312
- sig { returns(T.nilable(Integer)) }
313
- attr_reader :credits
314
-
315
- sig { params(credits: Integer).void }
316
- attr_writer :credits
317
-
318
312
  sig { returns(T.nilable(Integer)) }
319
313
  attr_reader :duration_ms
320
314
 
321
315
  sig { params(duration_ms: Integer).void }
322
316
  attr_writer :duration_ms
323
317
 
324
- sig do
325
- params(credits: Integer, duration_ms: Integer).returns(
326
- T.attached_class
327
- )
328
- end
329
- def self.new(credits: nil, duration_ms: nil)
318
+ sig { params(duration_ms: Integer).returns(T.attached_class) }
319
+ def self.new(duration_ms: nil)
330
320
  end
331
321
 
332
- sig { override.returns({ credits: Integer, duration_ms: Integer }) }
322
+ sig { override.returns({ duration_ms: Integer }) }
333
323
  def to_hash
334
324
  end
335
325
  end
@@ -15,6 +15,9 @@ module Handinger
15
15
  sig { returns(T::Array[Handinger::Workers::WorkerSchedule::Variants]) }
16
16
  attr_accessor :schedules
17
17
 
18
+ sig { returns(String) }
19
+ attr_accessor :timezone
20
+
18
21
  sig { returns(String) }
19
22
  attr_accessor :worker_id
20
23
 
@@ -29,16 +32,18 @@ module Handinger
29
32
  Handinger::Workers::WorkerSchedule::Interval::OrHash
30
33
  )
31
34
  ],
35
+ timezone: String,
32
36
  worker_id: String
33
37
  ).returns(T.attached_class)
34
38
  end
35
- def self.new(schedules:, worker_id:)
39
+ def self.new(schedules:, timezone:, worker_id:)
36
40
  end
37
41
 
38
42
  sig do
39
43
  override.returns(
40
44
  {
41
45
  schedules: T::Array[Handinger::Workers::WorkerSchedule::Variants],
46
+ timezone: String,
42
47
  worker_id: String
43
48
  }
44
49
  )
@@ -15,9 +15,13 @@ module Handinger
15
15
 
16
16
  TaskDeleteParams = Handinger::Models::TaskDeleteParams
17
17
 
18
+ TaskListTurnsParams = Handinger::Models::TaskListTurnsParams
19
+
18
20
  TaskRetrieveParams = Handinger::Models::TaskRetrieveParams
19
21
 
20
- TaskWithTurns = Handinger::Models::TaskWithTurns
22
+ TaskTurnList = Handinger::Models::TaskTurnList
23
+
24
+ Turn = Handinger::Models::Turn
21
25
 
22
26
  UpdateWorker = Handinger::Models::UpdateWorker
23
27
 
@@ -34,12 +34,12 @@ module Handinger
34
34
  )
35
35
  end
36
36
 
37
- # Retrieve a single task and its individual turns.
37
+ # Retrieve a single task.
38
38
  sig do
39
39
  params(
40
40
  task_id: String,
41
41
  request_options: Handinger::RequestOptions::OrHash
42
- ).returns(Handinger::TaskWithTurns)
42
+ ).returns(Handinger::Models::TaskRetrieveResponse)
43
43
  end
44
44
  def retrieve(
45
45
  # Task id returned by the create task endpoint.
@@ -63,6 +63,20 @@ module Handinger
63
63
  )
64
64
  end
65
65
 
66
+ # List the individual turns for a task in execution order.
67
+ sig do
68
+ params(
69
+ task_id: String,
70
+ request_options: Handinger::RequestOptions::OrHash
71
+ ).returns(Handinger::TaskTurnList)
72
+ end
73
+ def list_turns(
74
+ # Task id returned by the create task endpoint.
75
+ task_id,
76
+ request_options: {}
77
+ )
78
+ end
79
+
66
80
  # @api private
67
81
  sig { params(client: Handinger::Client).returns(T.attached_class) }
68
82
  def self.new(client:)
@@ -0,0 +1,23 @@
1
+ module Handinger
2
+ module Models
3
+ type task_list_turns_params =
4
+ { task_id: String } & Handinger::Internal::Type::request_parameters
5
+
6
+ class TaskListTurnsParams < Handinger::Internal::Type::BaseModel
7
+ extend Handinger::Internal::Type::RequestParameters::Converter
8
+ include Handinger::Internal::Type::RequestParameters
9
+
10
+ attr_accessor task_id: String
11
+
12
+ def initialize: (
13
+ task_id: String,
14
+ ?request_options: Handinger::request_opts
15
+ ) -> void
16
+
17
+ def to_hash: -> {
18
+ task_id: String,
19
+ request_options: Handinger::RequestOptions
20
+ }
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,13 @@
1
+ module Handinger
2
+ module Models
3
+ type task_retrieve_response = { task: Handinger::Task }
4
+
5
+ class TaskRetrieveResponse < Handinger::Internal::Type::BaseModel
6
+ attr_accessor task: Handinger::Task
7
+
8
+ def initialize: (task: Handinger::Task) -> void
9
+
10
+ def to_hash: -> { task: Handinger::Task }
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ module Handinger
2
+ module Models
3
+ type task_turn_list = { items: ::Array[Handinger::Turn], task_id: String }
4
+
5
+ class TaskTurnList < Handinger::Internal::Type::BaseModel
6
+ attr_accessor items: ::Array[Handinger::Turn]
7
+
8
+ attr_accessor task_id: String
9
+
10
+ def initialize: (items: ::Array[Handinger::Turn], task_id: String) -> void
11
+
12
+ def to_hash: -> { items: ::Array[Handinger::Turn], task_id: String }
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,119 @@
1
+ module Handinger
2
+ module Models
3
+ type turn =
4
+ {
5
+ id: String,
6
+ completed_at: String?,
7
+ credits: Integer,
8
+ duration_ms: Integer,
9
+ files: ::Array[Handinger::Turn::File],
10
+ input: String,
11
+ input_tokens: Integer,
12
+ output_text: String,
13
+ output_tokens: Integer,
14
+ role: String,
15
+ seq: Integer,
16
+ started_at: String,
17
+ status: String,
18
+ structured_output: ::Hash[Symbol, top]?,
19
+ task_id: String
20
+ }
21
+
22
+ class Turn < Handinger::Internal::Type::BaseModel
23
+ attr_accessor id: String
24
+
25
+ attr_accessor completed_at: String?
26
+
27
+ attr_accessor credits: Integer
28
+
29
+ attr_accessor duration_ms: Integer
30
+
31
+ attr_accessor files: ::Array[Handinger::Turn::File]
32
+
33
+ attr_accessor input: String
34
+
35
+ attr_accessor input_tokens: Integer
36
+
37
+ attr_accessor output_text: String
38
+
39
+ attr_accessor output_tokens: Integer
40
+
41
+ attr_accessor role: String
42
+
43
+ attr_accessor seq: Integer
44
+
45
+ attr_accessor started_at: String
46
+
47
+ attr_accessor status: String
48
+
49
+ attr_accessor structured_output: ::Hash[Symbol, top]?
50
+
51
+ attr_accessor task_id: String
52
+
53
+ def initialize: (
54
+ id: String,
55
+ completed_at: String?,
56
+ credits: Integer,
57
+ duration_ms: Integer,
58
+ files: ::Array[Handinger::Turn::File],
59
+ input: String,
60
+ input_tokens: Integer,
61
+ output_text: String,
62
+ output_tokens: Integer,
63
+ role: String,
64
+ seq: Integer,
65
+ started_at: String,
66
+ status: String,
67
+ structured_output: ::Hash[Symbol, top]?,
68
+ task_id: String
69
+ ) -> void
70
+
71
+ def to_hash: -> {
72
+ id: String,
73
+ completed_at: String?,
74
+ credits: Integer,
75
+ duration_ms: Integer,
76
+ files: ::Array[Handinger::Turn::File],
77
+ input: String,
78
+ input_tokens: Integer,
79
+ output_text: String,
80
+ output_tokens: Integer,
81
+ role: String,
82
+ seq: Integer,
83
+ started_at: String,
84
+ status: String,
85
+ structured_output: ::Hash[Symbol, top]?,
86
+ task_id: String
87
+ }
88
+
89
+ type file =
90
+ { filename: String?, media_type: String, url: String, size: Integer }
91
+
92
+ class File < Handinger::Internal::Type::BaseModel
93
+ attr_accessor filename: String?
94
+
95
+ attr_accessor media_type: String
96
+
97
+ attr_accessor url: String
98
+
99
+ attr_reader size: Integer?
100
+
101
+ def size=: (Integer) -> Integer
102
+
103
+ def initialize: (
104
+ filename: String?,
105
+ media_type: String,
106
+ url: String,
107
+ ?size: Integer
108
+ ) -> void
109
+
110
+ def to_hash: -> {
111
+ filename: String?,
112
+ media_type: String,
113
+ url: String,
114
+ size: Integer
115
+ }
116
+ end
117
+ end
118
+ end
119
+ end
@@ -204,20 +204,16 @@ module Handinger
204
204
  def self?.values: -> ::Array[Handinger::Models::Worker::status]
205
205
  end
206
206
 
207
- type usage = { credits: Integer, duration_ms: Integer }
207
+ type usage = { duration_ms: Integer }
208
208
 
209
209
  class Usage < Handinger::Internal::Type::BaseModel
210
- attr_reader credits: Integer?
211
-
212
- def credits=: (Integer) -> Integer
213
-
214
210
  attr_reader duration_ms: Integer?
215
211
 
216
212
  def duration_ms=: (Integer) -> Integer
217
213
 
218
- def initialize: (?credits: Integer, ?duration_ms: Integer) -> void
214
+ def initialize: (?duration_ms: Integer) -> void
219
215
 
220
- def to_hash: -> { credits: Integer, duration_ms: Integer }
216
+ def to_hash: -> { duration_ms: Integer }
221
217
  end
222
218
  end
223
219
  end
@@ -4,21 +4,26 @@ module Handinger
4
4
  type schedule_list_response =
5
5
  {
6
6
  schedules: ::Array[Handinger::Models::Workers::worker_schedule],
7
+ timezone: String,
7
8
  worker_id: String
8
9
  }
9
10
 
10
11
  class ScheduleListResponse < Handinger::Internal::Type::BaseModel
11
12
  attr_accessor schedules: ::Array[Handinger::Models::Workers::worker_schedule]
12
13
 
14
+ attr_accessor timezone: String
15
+
13
16
  attr_accessor worker_id: String
14
17
 
15
18
  def initialize: (
16
19
  schedules: ::Array[Handinger::Models::Workers::worker_schedule],
20
+ timezone: String,
17
21
  worker_id: String
18
22
  ) -> void
19
23
 
20
24
  def to_hash: -> {
21
25
  schedules: ::Array[Handinger::Models::Workers::worker_schedule],
26
+ timezone: String,
22
27
  worker_id: String
23
28
  }
24
29
  end
@@ -13,9 +13,13 @@ module Handinger
13
13
 
14
14
  class TaskDeleteParams = Handinger::Models::TaskDeleteParams
15
15
 
16
+ class TaskListTurnsParams = Handinger::Models::TaskListTurnsParams
17
+
16
18
  class TaskRetrieveParams = Handinger::Models::TaskRetrieveParams
17
19
 
18
- class TaskWithTurns = Handinger::Models::TaskWithTurns
20
+ class TaskTurnList = Handinger::Models::TaskTurnList
21
+
22
+ class Turn = Handinger::Models::Turn
19
23
 
20
24
  class UpdateWorker = Handinger::Models::UpdateWorker
21
25
 
@@ -12,13 +12,18 @@ module Handinger
12
12
  def retrieve: (
13
13
  String task_id,
14
14
  ?request_options: Handinger::request_opts
15
- ) -> Handinger::TaskWithTurns
15
+ ) -> Handinger::Models::TaskRetrieveResponse
16
16
 
17
17
  def delete: (
18
18
  String task_id,
19
19
  ?request_options: Handinger::request_opts
20
20
  ) -> Handinger::DeleteTaskResponse
21
21
 
22
+ def list_turns: (
23
+ String task_id,
24
+ ?request_options: Handinger::request_opts
25
+ ) -> Handinger::TaskTurnList
26
+
22
27
  def initialize: (client: Handinger::Client) -> void
23
28
  end
24
29
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: handinger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Handinger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-06-23 00:00:00.000000000 Z
11
+ date: 2026-07-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cgi
@@ -76,8 +76,11 @@ files:
76
76
  - lib/handinger/models/task.rb
77
77
  - lib/handinger/models/task_create_params.rb
78
78
  - lib/handinger/models/task_delete_params.rb
79
+ - lib/handinger/models/task_list_turns_params.rb
79
80
  - lib/handinger/models/task_retrieve_params.rb
80
- - lib/handinger/models/task_with_turns.rb
81
+ - lib/handinger/models/task_retrieve_response.rb
82
+ - lib/handinger/models/task_turn_list.rb
83
+ - lib/handinger/models/turn.rb
81
84
  - lib/handinger/models/update_worker.rb
82
85
  - lib/handinger/models/worker.rb
83
86
  - lib/handinger/models/worker_create_params.rb
@@ -135,8 +138,11 @@ files:
135
138
  - rbi/handinger/models/task.rbi
136
139
  - rbi/handinger/models/task_create_params.rbi
137
140
  - rbi/handinger/models/task_delete_params.rbi
141
+ - rbi/handinger/models/task_list_turns_params.rbi
138
142
  - rbi/handinger/models/task_retrieve_params.rbi
139
- - rbi/handinger/models/task_with_turns.rbi
143
+ - rbi/handinger/models/task_retrieve_response.rbi
144
+ - rbi/handinger/models/task_turn_list.rbi
145
+ - rbi/handinger/models/turn.rbi
140
146
  - rbi/handinger/models/update_worker.rbi
141
147
  - rbi/handinger/models/worker.rbi
142
148
  - rbi/handinger/models/worker_create_params.rbi
@@ -193,8 +199,11 @@ files:
193
199
  - sig/handinger/models/task.rbs
194
200
  - sig/handinger/models/task_create_params.rbs
195
201
  - sig/handinger/models/task_delete_params.rbs
202
+ - sig/handinger/models/task_list_turns_params.rbs
196
203
  - sig/handinger/models/task_retrieve_params.rbs
197
- - sig/handinger/models/task_with_turns.rbs
204
+ - sig/handinger/models/task_retrieve_response.rbs
205
+ - sig/handinger/models/task_turn_list.rbs
206
+ - sig/handinger/models/turn.rbs
198
207
  - sig/handinger/models/update_worker.rbs
199
208
  - sig/handinger/models/worker.rbs
200
209
  - sig/handinger/models/worker_create_params.rbs
@@ -1,167 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Handinger
4
- module Models
5
- # @see Handinger::Resources::Tasks#retrieve
6
- class TaskWithTurns < Handinger::Internal::Type::BaseModel
7
- # @!attribute task
8
- #
9
- # @return [Handinger::Models::Task]
10
- required :task, -> { Handinger::Task }
11
-
12
- # @!attribute turns
13
- #
14
- # @return [Array<Handinger::Models::TaskWithTurns::Turn>]
15
- required :turns, -> { Handinger::Internal::Type::ArrayOf[Handinger::TaskWithTurns::Turn] }
16
-
17
- # @!method initialize(task:, turns:)
18
- # @param task [Handinger::Models::Task]
19
- # @param turns [Array<Handinger::Models::TaskWithTurns::Turn>]
20
-
21
- class Turn < Handinger::Internal::Type::BaseModel
22
- # @!attribute id
23
- #
24
- # @return [String]
25
- required :id, String
26
-
27
- # @!attribute completed_at
28
- #
29
- # @return [String, nil]
30
- required :completed_at, String, api_name: :completedAt, nil?: true
31
-
32
- # @!attribute credits
33
- #
34
- # @return [Integer]
35
- required :credits, Integer
36
-
37
- # @!attribute duration_ms
38
- #
39
- # @return [Integer]
40
- required :duration_ms, Integer, api_name: :durationMs
41
-
42
- # @!attribute files
43
- # Files published by this turn.
44
- #
45
- # @return [Array<Handinger::Models::TaskWithTurns::Turn::File>]
46
- required :files, -> { Handinger::Internal::Type::ArrayOf[Handinger::TaskWithTurns::Turn::File] }
47
-
48
- # @!attribute input
49
- #
50
- # @return [String]
51
- required :input, String
52
-
53
- # @!attribute input_tokens
54
- #
55
- # @return [Integer]
56
- required :input_tokens, Integer, api_name: :inputTokens
57
-
58
- # @!attribute output_text
59
- #
60
- # @return [String]
61
- required :output_text, String, api_name: :outputText
62
-
63
- # @!attribute output_tokens
64
- #
65
- # @return [Integer]
66
- required :output_tokens, Integer, api_name: :outputTokens
67
-
68
- # @!attribute role
69
- #
70
- # @return [String]
71
- required :role, String
72
-
73
- # @!attribute seq
74
- #
75
- # @return [Integer]
76
- required :seq, Integer
77
-
78
- # @!attribute started_at
79
- #
80
- # @return [String]
81
- required :started_at, String, api_name: :startedAt
82
-
83
- # @!attribute status
84
- #
85
- # @return [String]
86
- required :status, String
87
-
88
- # @!attribute structured_output
89
- # Structured JSON payload when the worker is configured with an output schema.
90
- # `null` otherwise.
91
- #
92
- # @return [Hash{Symbol=>Object}, nil]
93
- required :structured_output,
94
- Handinger::Internal::Type::HashOf[Handinger::Internal::Type::Unknown],
95
- api_name: :structuredOutput,
96
- nil?: true
97
-
98
- # @!attribute task_id
99
- #
100
- # @return [String]
101
- required :task_id, String, api_name: :taskId
102
-
103
- # @!method initialize(id:, completed_at:, credits:, duration_ms:, files:, input:, input_tokens:, output_text:, output_tokens:, role:, seq:, started_at:, status:, structured_output:, task_id:)
104
- # Some parameter documentations has been truncated, see
105
- # {Handinger::Models::TaskWithTurns::Turn} for more details.
106
- #
107
- # @param id [String]
108
- #
109
- # @param completed_at [String, nil]
110
- #
111
- # @param credits [Integer]
112
- #
113
- # @param duration_ms [Integer]
114
- #
115
- # @param files [Array<Handinger::Models::TaskWithTurns::Turn::File>] Files published by this turn.
116
- #
117
- # @param input [String]
118
- #
119
- # @param input_tokens [Integer]
120
- #
121
- # @param output_text [String]
122
- #
123
- # @param output_tokens [Integer]
124
- #
125
- # @param role [String]
126
- #
127
- # @param seq [Integer]
128
- #
129
- # @param started_at [String]
130
- #
131
- # @param status [String]
132
- #
133
- # @param structured_output [Hash{Symbol=>Object}, nil] Structured JSON payload when the worker is configured with an output schema. `nu
134
- #
135
- # @param task_id [String]
136
-
137
- class File < Handinger::Internal::Type::BaseModel
138
- # @!attribute filename
139
- #
140
- # @return [String, nil]
141
- required :filename, String, nil?: true
142
-
143
- # @!attribute media_type
144
- #
145
- # @return [String]
146
- required :media_type, String, api_name: :mediaType
147
-
148
- # @!attribute url
149
- #
150
- # @return [String]
151
- required :url, String
152
-
153
- # @!attribute size
154
- #
155
- # @return [Integer, nil]
156
- optional :size, Integer
157
-
158
- # @!method initialize(filename:, media_type:, url:, size: nil)
159
- # @param filename [String, nil]
160
- # @param media_type [String]
161
- # @param url [String]
162
- # @param size [Integer]
163
- end
164
- end
165
- end
166
- end
167
- end