handinger 0.12.1 → 0.13.1

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.
@@ -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
@@ -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.12.1
4
+ version: 0.13.1
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-17 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,131 +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 input
43
- #
44
- # @return [String]
45
- required :input, String
46
-
47
- # @!attribute input_tokens
48
- #
49
- # @return [Integer]
50
- required :input_tokens, Integer, api_name: :inputTokens
51
-
52
- # @!attribute output_text
53
- #
54
- # @return [String]
55
- required :output_text, String, api_name: :outputText
56
-
57
- # @!attribute output_tokens
58
- #
59
- # @return [Integer]
60
- required :output_tokens, Integer, api_name: :outputTokens
61
-
62
- # @!attribute role
63
- #
64
- # @return [String]
65
- required :role, String
66
-
67
- # @!attribute seq
68
- #
69
- # @return [Integer]
70
- required :seq, Integer
71
-
72
- # @!attribute started_at
73
- #
74
- # @return [String]
75
- required :started_at, String, api_name: :startedAt
76
-
77
- # @!attribute status
78
- #
79
- # @return [String]
80
- required :status, String
81
-
82
- # @!attribute structured_output
83
- # Structured JSON payload when the worker is configured with an output schema.
84
- # `null` otherwise.
85
- #
86
- # @return [Hash{Symbol=>Object}, nil]
87
- required :structured_output,
88
- Handinger::Internal::Type::HashOf[Handinger::Internal::Type::Unknown],
89
- api_name: :structuredOutput,
90
- nil?: true
91
-
92
- # @!attribute task_id
93
- #
94
- # @return [String]
95
- required :task_id, String, api_name: :taskId
96
-
97
- # @!method initialize(id:, completed_at:, credits:, duration_ms:, input:, input_tokens:, output_text:, output_tokens:, role:, seq:, started_at:, status:, structured_output:, task_id:)
98
- # Some parameter documentations has been truncated, see
99
- # {Handinger::Models::TaskWithTurns::Turn} for more details.
100
- #
101
- # @param id [String]
102
- #
103
- # @param completed_at [String, nil]
104
- #
105
- # @param credits [Integer]
106
- #
107
- # @param duration_ms [Integer]
108
- #
109
- # @param input [String]
110
- #
111
- # @param input_tokens [Integer]
112
- #
113
- # @param output_text [String]
114
- #
115
- # @param output_tokens [Integer]
116
- #
117
- # @param role [String]
118
- #
119
- # @param seq [Integer]
120
- #
121
- # @param started_at [String]
122
- #
123
- # @param status [String]
124
- #
125
- # @param structured_output [Hash{Symbol=>Object}, nil] Structured JSON payload when the worker is configured with an output schema. `nu
126
- #
127
- # @param task_id [String]
128
- end
129
- end
130
- end
131
- end
@@ -1,153 +0,0 @@
1
- # typed: strong
2
-
3
- module Handinger
4
- module Models
5
- class TaskWithTurns < Handinger::Internal::Type::BaseModel
6
- OrHash =
7
- T.type_alias do
8
- T.any(Handinger::TaskWithTurns, Handinger::Internal::AnyHash)
9
- end
10
-
11
- sig { returns(Handinger::Task) }
12
- attr_reader :task
13
-
14
- sig { params(task: Handinger::Task::OrHash).void }
15
- attr_writer :task
16
-
17
- sig { returns(T::Array[Handinger::TaskWithTurns::Turn]) }
18
- attr_accessor :turns
19
-
20
- sig do
21
- params(
22
- task: Handinger::Task::OrHash,
23
- turns: T::Array[Handinger::TaskWithTurns::Turn::OrHash]
24
- ).returns(T.attached_class)
25
- end
26
- def self.new(task:, turns:)
27
- end
28
-
29
- sig do
30
- override.returns(
31
- {
32
- task: Handinger::Task,
33
- turns: T::Array[Handinger::TaskWithTurns::Turn]
34
- }
35
- )
36
- end
37
- def to_hash
38
- end
39
-
40
- class Turn < Handinger::Internal::Type::BaseModel
41
- OrHash =
42
- T.type_alias do
43
- T.any(Handinger::TaskWithTurns::Turn, Handinger::Internal::AnyHash)
44
- end
45
-
46
- sig { returns(String) }
47
- attr_accessor :id
48
-
49
- sig { returns(T.nilable(String)) }
50
- attr_accessor :completed_at
51
-
52
- sig { returns(Integer) }
53
- attr_accessor :credits
54
-
55
- sig { returns(Integer) }
56
- attr_accessor :duration_ms
57
-
58
- sig { returns(String) }
59
- attr_accessor :input
60
-
61
- sig { returns(Integer) }
62
- attr_accessor :input_tokens
63
-
64
- sig { returns(String) }
65
- attr_accessor :output_text
66
-
67
- sig { returns(Integer) }
68
- attr_accessor :output_tokens
69
-
70
- sig { returns(String) }
71
- attr_accessor :role
72
-
73
- sig { returns(Integer) }
74
- attr_accessor :seq
75
-
76
- sig { returns(String) }
77
- attr_accessor :started_at
78
-
79
- sig { returns(String) }
80
- attr_accessor :status
81
-
82
- # Structured JSON payload when the worker is configured with an output schema.
83
- # `null` otherwise.
84
- sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
85
- attr_accessor :structured_output
86
-
87
- sig { returns(String) }
88
- attr_accessor :task_id
89
-
90
- sig do
91
- params(
92
- id: String,
93
- completed_at: T.nilable(String),
94
- credits: Integer,
95
- duration_ms: Integer,
96
- input: String,
97
- input_tokens: Integer,
98
- output_text: String,
99
- output_tokens: Integer,
100
- role: String,
101
- seq: Integer,
102
- started_at: String,
103
- status: String,
104
- structured_output: T.nilable(T::Hash[Symbol, T.anything]),
105
- task_id: String
106
- ).returns(T.attached_class)
107
- end
108
- def self.new(
109
- id:,
110
- completed_at:,
111
- credits:,
112
- duration_ms:,
113
- input:,
114
- input_tokens:,
115
- output_text:,
116
- output_tokens:,
117
- role:,
118
- seq:,
119
- started_at:,
120
- status:,
121
- # Structured JSON payload when the worker is configured with an output schema.
122
- # `null` otherwise.
123
- structured_output:,
124
- task_id:
125
- )
126
- end
127
-
128
- sig do
129
- override.returns(
130
- {
131
- id: String,
132
- completed_at: T.nilable(String),
133
- credits: Integer,
134
- duration_ms: Integer,
135
- input: String,
136
- input_tokens: Integer,
137
- output_text: String,
138
- output_tokens: Integer,
139
- role: String,
140
- seq: Integer,
141
- started_at: String,
142
- status: String,
143
- structured_output: T.nilable(T::Hash[Symbol, T.anything]),
144
- task_id: String
145
- }
146
- )
147
- end
148
- def to_hash
149
- end
150
- end
151
- end
152
- end
153
- end