handinger 0.12.1 → 0.13.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f2031c5f448c9fe88ec00aca80a617c9a615b6c4bdba6c92ec6571a9d13b7fe5
4
- data.tar.gz: 750e8fdacbc62754fde586ef760b5e985509dd257ee78993435f7f0f6dd384f8
3
+ metadata.gz: 9b96d81d9398bdd5ea67ae91d9bcf3b3e3d498c52280ba116e6eb6a3f3273fbe
4
+ data.tar.gz: 85ffb7daef655eae2825d41ffd079355198db1f4dc3f616a6d6e5e523bc7c255
5
5
  SHA512:
6
- metadata.gz: f5b48117d32135846d6c341ee044db8be296df0b0eb672b9ffbae5bcf9dfe6432ce72dbde3e020f8fd9c7dfd19ffd96fd97eceb9e15e8f68e717b6f23c3cd0fe
7
- data.tar.gz: 5f03e07b7b20b39a6f4c8dcbd35afdd206e8d21a77150fa0e60b8152007d45dace54da9b0ad15115a0d5f99ac75483cc57896e92be1639624ad07d5e92f5598e
6
+ metadata.gz: 8c54723c88d55fc9f17e389d88014c7c925255d00e361e2d08cbf4a8a4552619b5df03228747f96ab216fbb1632432d4c15d5d0f31e12ce134efb041ca189b5d
7
+ data.tar.gz: 0c9665fed05a9e941cf1f0cac4d2d40297fb1074c114c8cf5e3647e67f76540e0c52195e79b9af3d984a83ab61a9ed8af6dba6a7d60aecf0f56248ebf46b86c2
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.13.0 (2026-06-23)
4
+
5
+ Full Changelog: [v0.12.1...v0.13.0](https://github.com/ramensoft/handinger-ruby/compare/v0.12.1...v0.13.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** add files field and File model to TaskWithTurns::Turn ([0428e6c](https://github.com/ramensoft/handinger-ruby/commit/0428e6c7c8e66cf90fe2c5151ab0555787139ef9))
10
+
3
11
  ## 0.12.1 (2026-06-17)
4
12
 
5
13
  Full Changelog: [v0.12.0...v0.12.1](https://github.com/ramensoft/handinger-ruby/compare/v0.12.0...v0.12.1)
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 "handinger", "~> 0.12.1"
20
+ gem "handinger", "~> 0.13.0"
21
21
  ```
22
22
 
23
23
  <!-- x-release-please-end -->
@@ -39,6 +39,12 @@ module Handinger
39
39
  # @return [Integer]
40
40
  required :duration_ms, Integer, api_name: :durationMs
41
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
+
42
48
  # @!attribute input
43
49
  #
44
50
  # @return [String]
@@ -94,7 +100,7 @@ module Handinger
94
100
  # @return [String]
95
101
  required :task_id, String, api_name: :taskId
96
102
 
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:)
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:)
98
104
  # Some parameter documentations has been truncated, see
99
105
  # {Handinger::Models::TaskWithTurns::Turn} for more details.
100
106
  #
@@ -106,6 +112,8 @@ module Handinger
106
112
  #
107
113
  # @param duration_ms [Integer]
108
114
  #
115
+ # @param files [Array<Handinger::Models::TaskWithTurns::Turn::File>] Files published by this turn.
116
+ #
109
117
  # @param input [String]
110
118
  #
111
119
  # @param input_tokens [Integer]
@@ -125,6 +133,34 @@ module Handinger
125
133
  # @param structured_output [Hash{Symbol=>Object}, nil] Structured JSON payload when the worker is configured with an output schema. `nu
126
134
  #
127
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
128
164
  end
129
165
  end
130
166
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Handinger
4
- VERSION = "0.12.1"
4
+ VERSION = "0.13.0"
5
5
  end
@@ -55,6 +55,10 @@ module Handinger
55
55
  sig { returns(Integer) }
56
56
  attr_accessor :duration_ms
57
57
 
58
+ # Files published by this turn.
59
+ sig { returns(T::Array[Handinger::TaskWithTurns::Turn::File]) }
60
+ attr_accessor :files
61
+
58
62
  sig { returns(String) }
59
63
  attr_accessor :input
60
64
 
@@ -93,6 +97,7 @@ module Handinger
93
97
  completed_at: T.nilable(String),
94
98
  credits: Integer,
95
99
  duration_ms: Integer,
100
+ files: T::Array[Handinger::TaskWithTurns::Turn::File::OrHash],
96
101
  input: String,
97
102
  input_tokens: Integer,
98
103
  output_text: String,
@@ -110,6 +115,8 @@ module Handinger
110
115
  completed_at:,
111
116
  credits:,
112
117
  duration_ms:,
118
+ # Files published by this turn.
119
+ files:,
113
120
  input:,
114
121
  input_tokens:,
115
122
  output_text:,
@@ -132,6 +139,7 @@ module Handinger
132
139
  completed_at: T.nilable(String),
133
140
  credits: Integer,
134
141
  duration_ms: Integer,
142
+ files: T::Array[Handinger::TaskWithTurns::Turn::File],
135
143
  input: String,
136
144
  input_tokens: Integer,
137
145
  output_text: String,
@@ -147,6 +155,55 @@ module Handinger
147
155
  end
148
156
  def to_hash
149
157
  end
158
+
159
+ class File < Handinger::Internal::Type::BaseModel
160
+ OrHash =
161
+ T.type_alias do
162
+ T.any(
163
+ Handinger::TaskWithTurns::Turn::File,
164
+ Handinger::Internal::AnyHash
165
+ )
166
+ end
167
+
168
+ sig { returns(T.nilable(String)) }
169
+ attr_accessor :filename
170
+
171
+ sig { returns(String) }
172
+ attr_accessor :media_type
173
+
174
+ sig { returns(String) }
175
+ attr_accessor :url
176
+
177
+ sig { returns(T.nilable(Integer)) }
178
+ attr_reader :size
179
+
180
+ sig { params(size: Integer).void }
181
+ attr_writer :size
182
+
183
+ sig do
184
+ params(
185
+ filename: T.nilable(String),
186
+ media_type: String,
187
+ url: String,
188
+ size: Integer
189
+ ).returns(T.attached_class)
190
+ end
191
+ def self.new(filename:, media_type:, url:, size: nil)
192
+ end
193
+
194
+ sig do
195
+ override.returns(
196
+ {
197
+ filename: T.nilable(String),
198
+ media_type: String,
199
+ url: String,
200
+ size: Integer
201
+ }
202
+ )
203
+ end
204
+ def to_hash
205
+ end
206
+ end
150
207
  end
151
208
  end
152
209
  end
@@ -24,6 +24,7 @@ module Handinger
24
24
  completed_at: String?,
25
25
  credits: Integer,
26
26
  duration_ms: Integer,
27
+ files: ::Array[Handinger::TaskWithTurns::Turn::File],
27
28
  input: String,
28
29
  input_tokens: Integer,
29
30
  output_text: String,
@@ -45,6 +46,8 @@ module Handinger
45
46
 
46
47
  attr_accessor duration_ms: Integer
47
48
 
49
+ attr_accessor files: ::Array[Handinger::TaskWithTurns::Turn::File]
50
+
48
51
  attr_accessor input: String
49
52
 
50
53
  attr_accessor input_tokens: Integer
@@ -70,6 +73,7 @@ module Handinger
70
73
  completed_at: String?,
71
74
  credits: Integer,
72
75
  duration_ms: Integer,
76
+ files: ::Array[Handinger::TaskWithTurns::Turn::File],
73
77
  input: String,
74
78
  input_tokens: Integer,
75
79
  output_text: String,
@@ -87,6 +91,7 @@ module Handinger
87
91
  completed_at: String?,
88
92
  credits: Integer,
89
93
  duration_ms: Integer,
94
+ files: ::Array[Handinger::TaskWithTurns::Turn::File],
90
95
  input: String,
91
96
  input_tokens: Integer,
92
97
  output_text: String,
@@ -98,6 +103,35 @@ module Handinger
98
103
  structured_output: ::Hash[Symbol, top]?,
99
104
  task_id: String
100
105
  }
106
+
107
+ type file =
108
+ { filename: String?, media_type: String, url: String, size: Integer }
109
+
110
+ class File < Handinger::Internal::Type::BaseModel
111
+ attr_accessor filename: String?
112
+
113
+ attr_accessor media_type: String
114
+
115
+ attr_accessor url: String
116
+
117
+ attr_reader size: Integer?
118
+
119
+ def size=: (Integer) -> Integer
120
+
121
+ def initialize: (
122
+ filename: String?,
123
+ media_type: String,
124
+ url: String,
125
+ ?size: Integer
126
+ ) -> void
127
+
128
+ def to_hash: -> {
129
+ filename: String?,
130
+ media_type: String,
131
+ url: String,
132
+ size: Integer
133
+ }
134
+ end
101
135
  end
102
136
  end
103
137
  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.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-17 00:00:00.000000000 Z
11
+ date: 2026-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cgi