handinger 0.8.0 → 0.8.2

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: c2da95055e66f45cde46af0ef457dd77d4583bd7946d6f3c244fb9281f93b0e4
4
- data.tar.gz: 8735d12d6338850b6ca41a70cff2ab88b6b1f0b67dacc7722743ca79962c6a16
3
+ metadata.gz: a10350d5ac1598c471ad065b5d471a4a7f665e3a9db0e70d1fd91a6f6566647f
4
+ data.tar.gz: 935c3249b83f564c8500949cf6c85a25766d54b67439017ea8053bc79d696491
5
5
  SHA512:
6
- metadata.gz: 06e00886ab79b1ef3daf23fc66b732611f37065f7d8f9585ff18e48c00798430b4264f94bcdc594353bb3e5277ae5e29ca6ad549a8cc38c36e5da2c20ee2161c
7
- data.tar.gz: c6da45cc9db8b1a80166d30c45fc191d15ec6deb62973ae2f563cf911fff0acca95d6df67527d5f4199e74f7c79ab826b3d3ad40ffbc62112f4b8bf459306dbe
6
+ metadata.gz: ac7249bc09d63dccc2ef162de41ddcb86f7ded981837b4039485af5fe214177b58fae34f2e88a17840ad7ccd54d6a60bb2de08274eadca3745c4a4818048a150
7
+ data.tar.gz: 748b50c64d7f68859a34dc894d3253dd2a9f4671614af841686cb62c3a88ed9fc738b1ec534f0c72953fa37c2fec0baf1214d0bfaaaf78347617e62740eb57b0
data/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.8.2 (2026-05-11)
4
+
5
+ Full Changelog: [v0.8.1...v0.8.2](https://github.com/ramensoft/handinger-ruby/compare/v0.8.1...v0.8.2)
6
+
7
+ ### Chores
8
+
9
+ * configure new SDK language ([337e427](https://github.com/ramensoft/handinger-ruby/commit/337e4273d24723fb9cee74d0bb5082b5a7b0a2e9))
10
+
11
+ ## 0.8.1 (2026-05-11)
12
+
13
+ Full Changelog: [v0.8.0...v0.8.1](https://github.com/ramensoft/handinger-ruby/compare/v0.8.0...v0.8.1)
14
+
15
+ ### Bug Fixes
16
+
17
+ * **types:** correct credits, duration, turn count to Integer in task models ([55ea3be](https://github.com/ramensoft/handinger-ruby/commit/55ea3be19918fd7819cbea61322ba8b6c39a1f73))
18
+
3
19
  ## 0.8.0 (2026-05-11)
4
20
 
5
21
  Full Changelog: [v0.7.0...v0.8.0](https://github.com/ramensoft/handinger-ruby/compare/v0.7.0...v0.8.0)
data/README.md CHANGED
@@ -4,6 +4,15 @@ The Handinger Ruby library provides convenient access to the Handinger REST API
4
4
 
5
5
  It is generated with [Stainless](https://www.stainless.com/).
6
6
 
7
+ ## MCP Server
8
+
9
+ Use the Handinger MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.
10
+
11
+ [![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=%40ramensoft%2Fhandinger-mcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkByYW1lbnNvZnQvaGFuZGluZ2VyLW1jcCJdLCJlbnYiOnsiSEFORElOR0VSX0FQSV9LRVkiOiJNeSBBUEkgS2V5In19)
12
+ [![Install in VS Code](https://img.shields.io/badge/_-Add_to_VS_Code-blue?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZmlsbD0iI0VFRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMjM1IDM5Ljg4NGEyLjQ5MSAyLjQ5MSAwIDAgMS0xLjc4MS0uNzNMMTIuNyAyNC43OGwtMy40NiAyLjYyNC0zLjQwNiAyLjU4MmExLjY2NSAxLjY2NSAwIDAgMS0xLjA4Mi4zMzggMS42NjQgMS42NjQgMCAwIDEtMS4wNDYtLjQzMWwtMi4yLTJhMS42NjYgMS42NjYgMCAwIDEgMC0yLjQ2M0w3LjQ1OCAyMCA0LjY3IDE3LjQ1MyAxLjUwNyAxNC41N2ExLjY2NSAxLjY2NSAwIDAgMSAwLTIuNDYzbDIuMi0yYTEuNjY1IDEuNjY1IDAgMCAxIDIuMTMtLjA5N2w2Ljg2MyA1LjIwOUwyOC40NTIuODQ0YTIuNDg4IDIuNDg4IDAgMCAxIDEuODQxLS43MjljLjM1MS4wMDkuNjk5LjA5MSAxLjAxOS4yNDVsOC4yMzYgMy45NjFhMi41IDIuNSAwIDAgMSAxLjQxNSAyLjI1M3YuMDk5LS4wNDVWMzMuMzd2LS4wNDUuMDk1YTIuNTAxIDIuNTAxIDAgMCAxLTEuNDE2IDIuMjU3bC04LjIzNSAzLjk2MWEyLjQ5MiAyLjQ5MiAwIDAgMS0xLjA3Ny4yNDZabS43MTYtMjguOTQ3LTExLjk0OCA5LjA2MiAxMS45NTIgOS4wNjUtLjAwNC0xOC4xMjdaIi8+PC9zdmc+)](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22%40ramensoft%2Fhandinger-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40ramensoft%2Fhandinger-mcp%22%5D%2C%22env%22%3A%7B%22HANDINGER_API_KEY%22%3A%22My%20API%20Key%22%7D%7D)
13
+
14
+ > Note: You may need to set environment variables in your MCP client.
15
+
7
16
  ## Documentation
8
17
 
9
18
  Documentation for releases of this gem can be found [on RubyDoc](https://gemdocs.org/gems/handinger).
@@ -17,7 +26,7 @@ To use this gem, install via Bundler by adding the following to your application
17
26
  <!-- x-release-please-start-version -->
18
27
 
19
28
  ```ruby
20
- gem "handinger", "~> 0.8.0"
29
+ gem "handinger", "~> 0.8.2"
21
30
  ```
22
31
 
23
32
  <!-- x-release-please-end -->
@@ -9,11 +9,15 @@ module Handinger
9
9
  required :input, String
10
10
 
11
11
  # @!attribute budget
12
+ # Compute budget the worker is allowed to spend on the task. Defaults to
13
+ # `standard`.
12
14
  #
13
15
  # @return [Symbol, Handinger::Models::CreateTask::Budget, nil]
14
16
  optional :budget, enum: -> { Handinger::CreateTask::Budget }
15
17
 
16
18
  # @!attribute stream
19
+ # Stream the response as server-sent events instead of waiting for the final
20
+ # payload.
17
21
  #
18
22
  # @return [Boolean, nil]
19
23
  optional :stream, Handinger::Internal::Type::Boolean
@@ -38,14 +42,17 @@ module Handinger
38
42
  #
39
43
  # @param input [String]
40
44
  #
41
- # @param budget [Symbol, Handinger::Models::CreateTask::Budget]
45
+ # @param budget [Symbol, Handinger::Models::CreateTask::Budget] Compute budget the worker is allowed to spend on the task. Defaults to `standard
42
46
  #
43
- # @param stream [Boolean]
47
+ # @param stream [Boolean] Stream the response as server-sent events instead of waiting for the final paylo
44
48
  #
45
49
  # @param task_id [String] Optional client-provided task id. Reuse this id to add turns to an existing task
46
50
  #
47
51
  # @param worker_id [String] Worker id the task belongs to. If omitted, a new worker is created on-the-fly us
48
52
 
53
+ # Compute budget the worker is allowed to spend on the task. Defaults to
54
+ # `standard`.
55
+ #
49
56
  # @see Handinger::Models::CreateTask#budget
50
57
  module Budget
51
58
  extend Handinger::Internal::Type::Enum
@@ -39,6 +39,7 @@ module Handinger
39
39
  required :title, String
40
40
 
41
41
  # @!attribute totals
42
+ # Aggregate credit spend, elapsed wall-clock, and number of turns across the task.
42
43
  #
43
44
  # @return [Handinger::Models::Task::Totals]
44
45
  required :totals, -> { Handinger::Task::Totals }
@@ -60,6 +61,9 @@ module Handinger
60
61
  required :worker_id, String, api_name: :workerId
61
62
 
62
63
  # @!method initialize(id:, completed_at:, created_at:, created_by_user_id:, organization_id:, status:, title:, totals:, triggered_by:, url:, worker_id:)
64
+ # Some parameter documentations has been truncated, see {Handinger::Models::Task}
65
+ # for more details.
66
+ #
63
67
  # @param id [String]
64
68
  #
65
69
  # @param completed_at [String, nil]
@@ -74,7 +78,7 @@ module Handinger
74
78
  #
75
79
  # @param title [String]
76
80
  #
77
- # @param totals [Handinger::Models::Task::Totals]
81
+ # @param totals [Handinger::Models::Task::Totals] Aggregate credit spend, elapsed wall-clock, and number of turns across the task.
78
82
  #
79
83
  # @param triggered_by [Symbol, Handinger::Models::Task::TriggeredBy]
80
84
  #
@@ -100,23 +104,25 @@ module Handinger
100
104
  class Totals < Handinger::Internal::Type::BaseModel
101
105
  # @!attribute credits
102
106
  #
103
- # @return [Float]
104
- required :credits, Float
107
+ # @return [Integer]
108
+ required :credits, Integer
105
109
 
106
110
  # @!attribute duration_ms
107
111
  #
108
- # @return [Float]
109
- required :duration_ms, Float, api_name: :durationMs
112
+ # @return [Integer]
113
+ required :duration_ms, Integer, api_name: :durationMs
110
114
 
111
115
  # @!attribute turn_count
112
116
  #
113
- # @return [Float]
114
- required :turn_count, Float, api_name: :turnCount
117
+ # @return [Integer]
118
+ required :turn_count, Integer, api_name: :turnCount
115
119
 
116
120
  # @!method initialize(credits:, duration_ms:, turn_count:)
117
- # @param credits [Float]
118
- # @param duration_ms [Float]
119
- # @param turn_count [Float]
121
+ # Aggregate credit spend, elapsed wall-clock, and number of turns across the task.
122
+ #
123
+ # @param credits [Integer]
124
+ # @param duration_ms [Integer]
125
+ # @param turn_count [Integer]
120
126
  end
121
127
 
122
128
  # @see Handinger::Models::Task#triggered_by
@@ -31,8 +31,8 @@ module Handinger
31
31
 
32
32
  # @!attribute credits
33
33
  #
34
- # @return [Float]
35
- required :credits, Float
34
+ # @return [Integer]
35
+ required :credits, Integer
36
36
 
37
37
  # @!attribute duration_ms
38
38
  #
@@ -80,6 +80,8 @@ module Handinger
80
80
  required :status, String
81
81
 
82
82
  # @!attribute structured_output
83
+ # Structured JSON payload when the worker is configured with an output schema.
84
+ # `null` otherwise.
83
85
  #
84
86
  # @return [Hash{Symbol=>Object}, nil]
85
87
  required :structured_output,
@@ -93,19 +95,35 @@ module Handinger
93
95
  required :task_id, String, api_name: :taskId
94
96
 
95
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
+ #
96
101
  # @param id [String]
102
+ #
97
103
  # @param completed_at [String, nil]
98
- # @param credits [Float]
104
+ #
105
+ # @param credits [Integer]
106
+ #
99
107
  # @param duration_ms [Integer]
108
+ #
100
109
  # @param input [String]
110
+ #
101
111
  # @param input_tokens [Integer]
112
+ #
102
113
  # @param output_text [String]
114
+ #
103
115
  # @param output_tokens [Integer]
116
+ #
104
117
  # @param role [String]
118
+ #
105
119
  # @param seq [Integer]
120
+ #
106
121
  # @param started_at [String]
122
+ #
107
123
  # @param status [String]
108
- # @param structured_output [Hash{Symbol=>Object}, nil]
124
+ #
125
+ # @param structured_output [Hash{Symbol=>Object}, nil] Structured JSON payload when the worker is configured with an output schema. `nu
126
+ #
109
127
  # @param task_id [String]
110
128
  end
111
129
  end
@@ -16,9 +16,9 @@ module Handinger
16
16
  #
17
17
  # @param input [String]
18
18
  #
19
- # @param budget [Symbol, Handinger::Models::CreateTask::Budget]
19
+ # @param budget [Symbol, Handinger::Models::CreateTask::Budget] Compute budget the worker is allowed to spend on the task. Defaults to `standard
20
20
  #
21
- # @param stream [Boolean]
21
+ # @param stream [Boolean] Stream the response as server-sent events instead of waiting for the final paylo
22
22
  #
23
23
  # @param task_id [String] Optional client-provided task id. Reuse this id to add turns to an existing task
24
24
  #
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Handinger
4
- VERSION = "0.8.0"
4
+ VERSION = "0.8.2"
5
5
  end
@@ -11,12 +11,16 @@ module Handinger
11
11
  sig { returns(String) }
12
12
  attr_accessor :input
13
13
 
14
+ # Compute budget the worker is allowed to spend on the task. Defaults to
15
+ # `standard`.
14
16
  sig { returns(T.nilable(Handinger::CreateTask::Budget::OrSymbol)) }
15
17
  attr_reader :budget
16
18
 
17
19
  sig { params(budget: Handinger::CreateTask::Budget::OrSymbol).void }
18
20
  attr_writer :budget
19
21
 
22
+ # Stream the response as server-sent events instead of waiting for the final
23
+ # payload.
20
24
  sig { returns(T.nilable(T::Boolean)) }
21
25
  attr_reader :stream
22
26
 
@@ -50,7 +54,11 @@ module Handinger
50
54
  end
51
55
  def self.new(
52
56
  input:,
57
+ # Compute budget the worker is allowed to spend on the task. Defaults to
58
+ # `standard`.
53
59
  budget: nil,
60
+ # Stream the response as server-sent events instead of waiting for the final
61
+ # payload.
54
62
  stream: nil,
55
63
  # Optional client-provided task id. Reuse this id to add turns to an existing
56
64
  # task.
@@ -75,6 +83,8 @@ module Handinger
75
83
  def to_hash
76
84
  end
77
85
 
86
+ # Compute budget the worker is allowed to spend on the task. Defaults to
87
+ # `standard`.
78
88
  module Budget
79
89
  extend Handinger::Internal::Type::Enum
80
90
 
@@ -27,6 +27,7 @@ module Handinger
27
27
  sig { returns(String) }
28
28
  attr_accessor :title
29
29
 
30
+ # Aggregate credit spend, elapsed wall-clock, and number of turns across the task.
30
31
  sig { returns(Handinger::Task::Totals) }
31
32
  attr_reader :totals
32
33
 
@@ -66,6 +67,7 @@ module Handinger
66
67
  organization_id:,
67
68
  status:,
68
69
  title:,
70
+ # Aggregate credit spend, elapsed wall-clock, and number of turns across the task.
69
71
  totals:,
70
72
  triggered_by:,
71
73
  # Web URL of the task in the Handinger dashboard.
@@ -119,26 +121,29 @@ module Handinger
119
121
  T.any(Handinger::Task::Totals, Handinger::Internal::AnyHash)
120
122
  end
121
123
 
122
- sig { returns(Float) }
124
+ sig { returns(Integer) }
123
125
  attr_accessor :credits
124
126
 
125
- sig { returns(Float) }
127
+ sig { returns(Integer) }
126
128
  attr_accessor :duration_ms
127
129
 
128
- sig { returns(Float) }
130
+ sig { returns(Integer) }
129
131
  attr_accessor :turn_count
130
132
 
133
+ # Aggregate credit spend, elapsed wall-clock, and number of turns across the task.
131
134
  sig do
132
- params(credits: Float, duration_ms: Float, turn_count: Float).returns(
133
- T.attached_class
134
- )
135
+ params(
136
+ credits: Integer,
137
+ duration_ms: Integer,
138
+ turn_count: Integer
139
+ ).returns(T.attached_class)
135
140
  end
136
141
  def self.new(credits:, duration_ms:, turn_count:)
137
142
  end
138
143
 
139
144
  sig do
140
145
  override.returns(
141
- { credits: Float, duration_ms: Float, turn_count: Float }
146
+ { credits: Integer, duration_ms: Integer, turn_count: Integer }
142
147
  )
143
148
  end
144
149
  def to_hash
@@ -49,7 +49,7 @@ module Handinger
49
49
  sig { returns(T.nilable(String)) }
50
50
  attr_accessor :completed_at
51
51
 
52
- sig { returns(Float) }
52
+ sig { returns(Integer) }
53
53
  attr_accessor :credits
54
54
 
55
55
  sig { returns(Integer) }
@@ -79,6 +79,8 @@ module Handinger
79
79
  sig { returns(String) }
80
80
  attr_accessor :status
81
81
 
82
+ # Structured JSON payload when the worker is configured with an output schema.
83
+ # `null` otherwise.
82
84
  sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
83
85
  attr_accessor :structured_output
84
86
 
@@ -89,7 +91,7 @@ module Handinger
89
91
  params(
90
92
  id: String,
91
93
  completed_at: T.nilable(String),
92
- credits: Float,
94
+ credits: Integer,
93
95
  duration_ms: Integer,
94
96
  input: String,
95
97
  input_tokens: Integer,
@@ -116,6 +118,8 @@ module Handinger
116
118
  seq:,
117
119
  started_at:,
118
120
  status:,
121
+ # Structured JSON payload when the worker is configured with an output schema.
122
+ # `null` otherwise.
119
123
  structured_output:,
120
124
  task_id:
121
125
  )
@@ -126,7 +130,7 @@ module Handinger
126
130
  {
127
131
  id: String,
128
132
  completed_at: T.nilable(String),
129
- credits: Float,
133
+ credits: Integer,
130
134
  duration_ms: Integer,
131
135
  input: String,
132
136
  input_tokens: Integer,
@@ -20,7 +20,11 @@ module Handinger
20
20
  end
21
21
  def create(
22
22
  input:,
23
+ # Compute budget the worker is allowed to spend on the task. Defaults to
24
+ # `standard`.
23
25
  budget: nil,
26
+ # Stream the response as server-sent events instead of waiting for the final
27
+ # payload.
24
28
  stream: nil,
25
29
  # Optional client-provided task id. Reuse this id to add turns to an existing
26
30
  # task.
@@ -80,25 +80,26 @@ module Handinger
80
80
  def self?.values: -> ::Array[Handinger::Models::Task::status]
81
81
  end
82
82
 
83
- type totals = { credits: Float, duration_ms: Float, turn_count: Float }
83
+ type totals =
84
+ { credits: Integer, duration_ms: Integer, turn_count: Integer }
84
85
 
85
86
  class Totals < Handinger::Internal::Type::BaseModel
86
- attr_accessor credits: Float
87
+ attr_accessor credits: Integer
87
88
 
88
- attr_accessor duration_ms: Float
89
+ attr_accessor duration_ms: Integer
89
90
 
90
- attr_accessor turn_count: Float
91
+ attr_accessor turn_count: Integer
91
92
 
92
93
  def initialize: (
93
- credits: Float,
94
- duration_ms: Float,
95
- turn_count: Float
94
+ credits: Integer,
95
+ duration_ms: Integer,
96
+ turn_count: Integer
96
97
  ) -> void
97
98
 
98
99
  def to_hash: -> {
99
- credits: Float,
100
- duration_ms: Float,
101
- turn_count: Float
100
+ credits: Integer,
101
+ duration_ms: Integer,
102
+ turn_count: Integer
102
103
  }
103
104
  end
104
105
 
@@ -22,7 +22,7 @@ module Handinger
22
22
  {
23
23
  id: String,
24
24
  completed_at: String?,
25
- credits: Float,
25
+ credits: Integer,
26
26
  duration_ms: Integer,
27
27
  input: String,
28
28
  input_tokens: Integer,
@@ -41,7 +41,7 @@ module Handinger
41
41
 
42
42
  attr_accessor completed_at: String?
43
43
 
44
- attr_accessor credits: Float
44
+ attr_accessor credits: Integer
45
45
 
46
46
  attr_accessor duration_ms: Integer
47
47
 
@@ -68,7 +68,7 @@ module Handinger
68
68
  def initialize: (
69
69
  id: String,
70
70
  completed_at: String?,
71
- credits: Float,
71
+ credits: Integer,
72
72
  duration_ms: Integer,
73
73
  input: String,
74
74
  input_tokens: Integer,
@@ -85,7 +85,7 @@ module Handinger
85
85
  def to_hash: -> {
86
86
  id: String,
87
87
  completed_at: String?,
88
- credits: Float,
88
+ credits: Integer,
89
89
  duration_ms: Integer,
90
90
  input: String,
91
91
  input_tokens: Integer,
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: handinger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Handinger